wherdr 1.3.0 → 1.3.2

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 (141) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BB3uOVbO.js → 8ksjcuDu.js} +51 -41
  3. package/.output/public/_nuxt/{AgentView.DE2GDt4O.css → AgentView.C4YOwvZG.css} +1 -1
  4. package/.output/public/_nuxt/B7QP1TFs.js +23 -0
  5. package/.output/public/_nuxt/{Bta8at9w.js → BOpBIziZ.js} +2 -2
  6. package/.output/public/_nuxt/BWXdFfeg.js +17 -0
  7. package/.output/public/_nuxt/COFCNFpG.js +83 -0
  8. package/.output/public/_nuxt/{C3BWhslt.js → Cd8j9O5w.js} +1 -1
  9. package/.output/public/_nuxt/CkZ8t6uB.js +1 -0
  10. package/.output/public/_nuxt/{OAXEskzA.js → D4Yz4rat.js} +4 -4
  11. package/.output/public/_nuxt/{C3P2P5Mv.js → D7sxNXx1.js} +1 -1
  12. package/.output/public/_nuxt/DViwOclv.js +1 -0
  13. package/.output/public/_nuxt/DoD7Qb5P.js +30 -0
  14. package/.output/public/_nuxt/DyBZDSCV.js +2 -0
  15. package/.output/public/_nuxt/builds/latest.json +1 -1
  16. package/.output/public/_nuxt/builds/meta/7afbf062-5369-4002-b20d-7a582ff6e0f1.json +1 -0
  17. package/.output/public/_nuxt/{entry.SHBiCXBL.css → entry.Crt1r4l3.css} +1 -1
  18. package/.output/public/_nuxt/hePW80VL.js +1 -0
  19. package/.output/public/sw.js +1 -1
  20. package/.output/server/chunks/_/branding.mjs +1 -1
  21. package/.output/server/chunks/_/package.mjs +96 -0
  22. package/.output/server/chunks/_/plugins.mjs +11 -3
  23. package/.output/server/chunks/_/projectBoard.mjs +1 -1
  24. package/.output/server/chunks/_/projectsPlugin.mjs +1 -1
  25. package/.output/server/chunks/_/selfupdate.mjs +82 -0
  26. package/.output/server/chunks/_/updates.mjs +50 -0
  27. package/.output/server/chunks/_/worktrees.mjs +1 -1
  28. package/.output/server/chunks/_/ws.mjs +1 -1
  29. package/.output/server/chunks/nitro/nitro.mjs +1728 -917
  30. package/.output/server/chunks/raw/bump-homebrew.mjs +7 -0
  31. package/.output/server/chunks/raw/herdr-plugin.mjs +1 -1
  32. package/.output/server/chunks/routes/api/_..._.mjs +5 -1
  33. package/.output/server/chunks/routes/api/agents.post.mjs +5 -1
  34. package/.output/server/chunks/routes/api/ask-tab.post.mjs +5 -1
  35. package/.output/server/chunks/routes/api/attach.post.mjs +5 -1
  36. package/.output/server/chunks/routes/api/auth/disable.post.mjs +5 -1
  37. package/.output/server/chunks/routes/api/auth/lock-all.post.mjs +5 -1
  38. package/.output/server/chunks/routes/api/auth/lock.post.mjs +5 -1
  39. package/.output/server/chunks/routes/api/auth/login/options.post.mjs +5 -1
  40. package/.output/server/chunks/routes/api/auth/login/verify.post.mjs +5 -1
  41. package/.output/server/chunks/routes/api/auth/max-session.post.mjs +5 -1
  42. package/.output/server/chunks/routes/api/auth/register/options.post.mjs +5 -1
  43. package/.output/server/chunks/routes/api/auth/register/verify.post.mjs +5 -1
  44. package/.output/server/chunks/routes/api/auth/status.get.mjs +5 -1
  45. package/.output/server/chunks/routes/api/changes.get.mjs +5 -1
  46. package/.output/server/chunks/routes/api/chat/image.get.mjs +5 -1
  47. package/.output/server/chunks/routes/api/chat.get.mjs +5 -1
  48. package/.output/server/chunks/routes/api/choose.post.mjs +5 -1
  49. package/.output/server/chunks/routes/api/claude-statusline.post.mjs +5 -1
  50. package/.output/server/chunks/routes/api/close/status.get.mjs +5 -1
  51. package/.output/server/chunks/routes/api/close.post.mjs +5 -1
  52. package/.output/server/chunks/routes/api/codex-update.post.mjs +5 -1
  53. package/.output/server/chunks/routes/api/commands.get.mjs +5 -1
  54. package/.output/server/chunks/routes/api/config.get.mjs +5 -1
  55. package/.output/server/chunks/routes/api/dirs.get.mjs +5 -1
  56. package/.output/server/chunks/routes/api/dismiss.post.mjs +5 -1
  57. package/.output/server/chunks/routes/api/effort.post.mjs +5 -1
  58. package/.output/server/chunks/routes/api/efforts.get.mjs +5 -1
  59. package/.output/server/chunks/routes/api/file.post.mjs +5 -1
  60. package/.output/server/chunks/routes/api/gitroot.get.mjs +5 -1
  61. package/.output/server/chunks/routes/api/health.get.mjs +36 -0
  62. package/.output/server/chunks/routes/api/index.get.mjs +5 -1
  63. package/.output/server/chunks/routes/api/input.post.mjs +5 -1
  64. package/.output/server/chunks/routes/api/interrupt.post.mjs +5 -1
  65. package/.output/server/chunks/routes/api/isgit.get.mjs +5 -1
  66. package/.output/server/chunks/routes/api/machine/awake.get.mjs +5 -1
  67. package/.output/server/chunks/routes/api/machine/awake.post.mjs +5 -1
  68. package/.output/server/chunks/routes/api/machine/order.get.mjs +5 -1
  69. package/.output/server/chunks/routes/api/machine/order.post.mjs +5 -1
  70. package/.output/server/chunks/routes/api/machine/rename.post.mjs +5 -1
  71. package/.output/server/chunks/routes/api/menu.post.mjs +5 -1
  72. package/.output/server/chunks/routes/api/model.post.mjs +5 -1
  73. package/.output/server/chunks/routes/api/models.get.mjs +5 -1
  74. package/.output/server/chunks/routes/api/nav.post.mjs +5 -1
  75. package/.output/server/chunks/routes/api/onboarding.get.mjs +5 -1
  76. package/.output/server/chunks/routes/api/onboarding.post.mjs +5 -1
  77. package/.output/server/chunks/routes/api/phone.get.mjs +5 -6
  78. package/.output/server/chunks/routes/api/phone.post.mjs +5 -6
  79. package/.output/server/chunks/routes/api/plugins/actions.get.mjs +5 -1
  80. package/.output/server/chunks/routes/api/plugins/invoke.post.mjs +5 -1
  81. package/.output/server/chunks/routes/api/plugins/profiles.get.mjs +5 -1
  82. package/.output/server/chunks/routes/api/plugins/projects.get.mjs +5 -1
  83. package/.output/server/chunks/routes/api/plugins/projects.post.mjs +5 -1
  84. package/.output/server/chunks/routes/api/plugins/thread-limits.get.mjs +6 -2
  85. package/.output/server/chunks/routes/api/plugins/thread-limits.post.mjs +6 -2
  86. package/.output/server/chunks/routes/api/project/report.get.mjs +5 -1
  87. package/.output/server/chunks/routes/api/prompt.post.mjs +6 -2
  88. package/.output/server/chunks/routes/api/push/quiet.post.mjs +6 -2
  89. package/.output/server/chunks/routes/api/push/subscribe.post.mjs +6 -2
  90. package/.output/server/chunks/routes/api/push/test.post.mjs +6 -2
  91. package/.output/server/chunks/routes/api/push/unsubscribe.post.mjs +6 -2
  92. package/.output/server/chunks/routes/api/quotas.get.mjs +6 -2
  93. package/.output/server/chunks/routes/api/rename.post.mjs +5 -1
  94. package/.output/server/chunks/routes/api/requeue.post.mjs +6 -2
  95. package/.output/server/chunks/routes/api/restart.get.mjs +5 -1
  96. package/.output/server/chunks/routes/api/restart.post.mjs +5 -1
  97. package/.output/server/chunks/routes/api/reveal.post.mjs +5 -1
  98. package/.output/server/chunks/routes/api/screen-key.post.mjs +6 -2
  99. package/.output/server/chunks/routes/api/screen.get.mjs +12 -6
  100. package/.output/server/chunks/routes/api/search.get.mjs +6 -2
  101. package/.output/server/chunks/routes/api/seen.post.mjs +6 -2
  102. package/.output/server/chunks/routes/api/sessions.get.mjs +6 -2
  103. package/.output/server/chunks/routes/api/sessions.post.mjs +6 -2
  104. package/.output/server/chunks/routes/api/space.post.mjs +6 -2
  105. package/.output/server/chunks/routes/api/state.get.mjs +6 -2
  106. package/.output/server/chunks/routes/api/unqueue.post.mjs +6 -2
  107. package/.output/server/chunks/routes/api/update/status.get.mjs +38 -0
  108. package/.output/server/chunks/routes/api/update.get.mjs +11 -50
  109. package/.output/server/chunks/routes/api/update.post.mjs +41 -0
  110. package/.output/server/chunks/routes/api/upload.post.mjs +5 -1
  111. package/.output/server/chunks/routes/api/worktrees/remove.post.mjs +5 -1
  112. package/.output/server/chunks/routes/api/worktrees.get.mjs +5 -1
  113. package/.output/server/chunks/routes/favicon.ico.get.mjs +5 -1
  114. package/.output/server/chunks/routes/icons/_name_.get.mjs +6 -2
  115. package/.output/server/chunks/routes/renderer.mjs +7 -3
  116. package/.output/server/chunks/routes/uploads/_...name_.get.mjs +6 -2
  117. package/.output/server/chunks/routes/ws/_..._.mjs +6 -2
  118. package/.output/server/chunks/routes/ws/events.mjs +6 -2
  119. package/.output/server/chunks/routes/ws/mirror.mjs +6 -2
  120. package/.output/server/chunks/routes/ws/term.mjs +8 -4
  121. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  122. package/.output/server/index.mjs +6 -2
  123. package/.output/server/package.json +1 -1
  124. package/README.md +216 -45
  125. package/bin/lib/brew.mjs +86 -0
  126. package/bin/lib/commands.mjs +74 -16
  127. package/bin/lib/core.mjs +23 -3
  128. package/bin/lib/tailnet.d.mts +12 -3
  129. package/bin/lib/tailnet.mjs +103 -25
  130. package/bin/lib/updater.mjs +267 -0
  131. package/package.json +2 -1
  132. package/.output/public/_nuxt/01adBkx4.js +0 -1
  133. package/.output/public/_nuxt/BJsf0WRn.js +0 -2
  134. package/.output/public/_nuxt/BpQH8Ho1.js +0 -1
  135. package/.output/public/_nuxt/Cc2bsOcu.js +0 -83
  136. package/.output/public/_nuxt/DKmoLFfn.js +0 -30
  137. package/.output/public/_nuxt/DLLQgP0d.js +0 -1
  138. package/.output/public/_nuxt/DcCZr0Ya.js +0 -17
  139. package/.output/public/_nuxt/DsD2R-37.js +0 -23
  140. package/.output/public/_nuxt/builds/meta/ff11fc8b-1e70-4261-a76e-a52155efb196.json +0 -1
  141. package/.output/server/chunks/_/phone.mjs +0 -343
@@ -0,0 +1,267 @@
1
+ // One-tap update (Update button of the app, server/utils/selfupdate.ts): runs
2
+ // detached from the server it replaces, so it outlives the restart. Installs
3
+ // the new version, restarts wherdr, waits for /api/health to report the new
4
+ // version, and goes back to the previous one when it does not. Progress goes
5
+ // to <wherdr dir>/update.json (read by the server for the app) and
6
+ // <wherdr dir>/update.log.
7
+ //
8
+ // node updater.mjs <plan.json>
9
+ //
10
+ // The server copies this file out of the package before running it (npm and
11
+ // Homebrew replace the package folder): it imports Node built-ins only.
12
+ import { spawn } from 'node:child_process'
13
+ import { appendFileSync, cpSync, existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from 'node:fs'
14
+ import path from 'node:path'
15
+ import { pathToFileURL } from 'node:url'
16
+
17
+ // Plan (written by the server):
18
+ // kind plugin | npm-global | brew
19
+ // from, to installed and target versions
20
+ // root package folder of the running wherdr (holds bin/ and .output/)
21
+ // dir wherdr folder (~/wherdr): state, log, pid file
22
+ // runtime node (or bun) running the server
23
+ // serverPid pid of the server to replace
24
+ // port, host where it answers
25
+ // registry npm registry (npm_config_registry, default registry.npmjs.org)
26
+ // healthMs how long the new version has to answer (default 60 s)
27
+
28
+ export const HEALTH_MS = 60_000
29
+
30
+ const healthHost = host => !host || host === '0.0.0.0' || host === '::' ? '127.0.0.1' : host.includes(':') ? `[${host}]` : host
31
+ export const healthUrl = plan => `http://${healthHost(plan.host)}:${plan.port}/api/health`
32
+
33
+ // --------------------------------------------------------------- drivers
34
+ // What each install mode does to install, put in place and go back. `io.run`
35
+ // throws on a non-zero exit (the message ends with the command's output).
36
+
37
+ function pluginDriver(plan, io) {
38
+ const staged = `${plan.root}.new`
39
+ const previous = `${plan.root}.prev`
40
+ return {
41
+ // The npm package of the target version, unpacked next to the running copy.
42
+ async install() {
43
+ const tgz = path.join(plan.dir, 'update', `wherdr-${plan.to}.tgz`)
44
+ await io.download(`${plan.registry.replace(/\/$/, '')}/wherdr/-/wherdr-${plan.to}.tgz`, tgz)
45
+ io.rm(staged)
46
+ io.mkdir(staged)
47
+ await io.run('tar', ['-xzf', tgz, '-C', staged, '--strip-components=1'])
48
+ io.rm(tgz)
49
+ if (!io.exists(path.join(staged, '.output', 'server', 'index.mjs'))) throw new Error(`wherdr ${plan.to}: the package has no built server`)
50
+ // The panel's QR code package (the plugin install copies it the same way).
51
+ const qr = path.join(plan.root, 'node_modules', 'qrcode-terminal')
52
+ if (io.exists(qr)) io.copy(qr, path.join(staged, 'node_modules', 'qrcode-terminal'))
53
+ },
54
+ // Server stopped: the previous copy is kept as <root>.prev.
55
+ async activate() {
56
+ io.rm(previous)
57
+ io.rename(plan.root, previous)
58
+ io.rename(staged, plan.root)
59
+ },
60
+ async rollback() {
61
+ if (!io.exists(previous)) throw new Error(`no previous copy to go back to (${previous})`)
62
+ io.rm(plan.root)
63
+ io.rename(previous, plan.root)
64
+ },
65
+ start: () => cliStart(plan, io),
66
+ }
67
+ }
68
+
69
+ function npmDriver(plan, io) {
70
+ const local = path.join(path.dirname(plan.runtime), 'npm')
71
+ const npm = io.exists(local) ? local : 'npm'
72
+ const install = version => io.run(npm, ['install', '--global', `wherdr@${version}`, '--no-audit', '--no-fund'])
73
+ return {
74
+ install: () => install(plan.to),
75
+ async activate() {},
76
+ rollback: () => install(plan.from),
77
+ start: () => cliStart(plan, io),
78
+ }
79
+ }
80
+
81
+ // <prefix>/Cellar/wherdr/<version>/libexec/lib/node_modules/wherdr (the
82
+ // formula's npm install) → <prefix> and the keg <prefix>/Cellar/wherdr/<version>.
83
+ function brewDriver(plan, io) {
84
+ const m = /^(.*)[\\/]Cellar[\\/]wherdr[\\/][^\\/]+/.exec(plan.root)
85
+ if (!m) throw new Error(`not a Homebrew keg: ${plan.root}`)
86
+ const keg = m[0]
87
+ const prefix = m[1]
88
+ const brew = path.join(prefix, 'bin', 'brew')
89
+ const opt = path.join(prefix, 'opt', 'wherdr')
90
+ // The old keg stays in the Cellar for the way back.
91
+ const env = { HOMEBREW_NO_INSTALL_CLEANUP: '1', HOMEBREW_NO_ENV_HINTS: '1' }
92
+ const optVersion = () => path.basename(io.realpath(opt))
93
+ return {
94
+ async install() {
95
+ await io.run(brew, ['upgrade', 'wherdr'], env)
96
+ const now = optVersion()
97
+ if (now !== plan.to && !now.startsWith(`${plan.to}_`)) throw new Error(`Homebrew installed ${now}, not ${plan.to}: its formula may not offer ${plan.to} yet`)
98
+ },
99
+ async activate() {},
100
+ // `brew link` (and opt/, which brew services runs) follows the newest keg:
101
+ // the keg that does not start is removed, then the previous one is linked.
102
+ // Homebrew then sees the previous version installed, and the update offered again.
103
+ async rollback() {
104
+ if (!io.exists(keg)) throw new Error(`the previous Homebrew version (${keg}) was removed: reinstall it with brew install wherdr`)
105
+ const failed = io.realpath(opt)
106
+ await io.run(brew, ['unlink', 'wherdr'], env)
107
+ if (failed !== keg && path.dirname(failed) === path.dirname(keg)) io.rm(failed)
108
+ await io.run(brew, ['link', '--overwrite', 'wherdr'], env)
109
+ },
110
+ start: () => io.run(brew, ['services', 'restart', 'wherdr'], env),
111
+ }
112
+ }
113
+
114
+ // `wherdr start` of the package now in place: the pid file, or the login service.
115
+ function cliStart(plan, io) {
116
+ return io.run(plan.runtime, [path.join(plan.root, 'bin', 'wherdr.mjs'), 'start'])
117
+ }
118
+
119
+ export function driverFor(plan, io) {
120
+ if (plan.kind === 'plugin') return pluginDriver(plan, io)
121
+ if (plan.kind === 'npm-global') return npmDriver(plan, io)
122
+ if (plan.kind === 'brew') return brewDriver(plan, io)
123
+ throw new Error(`no one-tap update for ${plan.kind}`)
124
+ }
125
+
126
+ // ---------------------------------------------------------- state machine
127
+ // installing → restarting → checking → done; a failed install leaves the old
128
+ // server running (failed); a new version that does not start or answer goes
129
+ // back: rolling-back → rolled-back (or failed when the old one does not come back).
130
+ export async function runUpdate(plan, io) {
131
+ const d = driverFor(plan, io)
132
+ const healthMs = plan.healthMs ?? HEALTH_MS
133
+ io.log(`update ${plan.from} → ${plan.to} (${plan.kind}, ${plan.root})`)
134
+ io.state('installing')
135
+ try { await d.install() } catch (e) {
136
+ io.log(`install failed: ${e.message}`)
137
+ io.state('failed', `The update could not be installed: ${e.message}. Still on ${plan.from}.`)
138
+ return 'failed'
139
+ }
140
+ io.state('restarting')
141
+ let reason = ''
142
+ try {
143
+ await io.stopServer()
144
+ await d.activate()
145
+ await d.start()
146
+ io.state('checking')
147
+ if (await io.healthy(plan.to, healthMs)) {
148
+ io.log(`wherdr ${plan.to} answers: done`)
149
+ io.state('done')
150
+ return 'done'
151
+ }
152
+ reason = `wherdr ${plan.to} did not answer within ${Math.round(healthMs / 1000)} s`
153
+ } catch (e) { reason = e.message }
154
+ io.log(`${reason}: going back to ${plan.from}`)
155
+ io.state('rolling-back', reason)
156
+ try {
157
+ await io.stopServer()
158
+ await d.rollback()
159
+ await d.start()
160
+ if (await io.healthy(plan.from, healthMs)) {
161
+ io.log(`wherdr ${plan.from} answers again: rolled back`)
162
+ io.state('rolled-back', `wherdr ${plan.to} did not start (${reason}). Rolled back to ${plan.from}.`)
163
+ return 'rolled-back'
164
+ }
165
+ throw new Error(`wherdr ${plan.from} did not answer either`)
166
+ } catch (e) {
167
+ io.log(`rollback failed: ${e.message}`)
168
+ io.state('failed', `wherdr ${plan.to} did not start (${reason}), and going back to ${plan.from} failed: ${e.message}. See ${path.join(plan.dir, 'update.log')}.`)
169
+ return 'failed'
170
+ }
171
+ }
172
+
173
+ // ------------------------------------------------------------- real I/O
174
+ const sleep = ms => new Promise(r => setTimeout(r, ms))
175
+
176
+ function alive(pid) {
177
+ try { process.kill(pid, 0); return true } catch { return false }
178
+ }
179
+
180
+ export function realIo(plan, now = Date.now) {
181
+ const stateFile = path.join(plan.dir, 'update.json')
182
+ const logFile = path.join(plan.dir, 'update.log')
183
+ const startedAt = now()
184
+ const log = (line) => { try { appendFileSync(logFile, `${new Date().toISOString()} ${line}\n`) } catch {} }
185
+ // The commands see the runtime first on the PATH (npm's `#!/usr/bin/env node`).
186
+ const PATH = `${path.dirname(plan.runtime)}${path.delimiter}${process.env.PATH || ''}`
187
+ return {
188
+ log,
189
+ state(state, message) {
190
+ const job = { state, from: plan.from, to: plan.to, mode: plan.kind, startedAt, updatedAt: now(), ...(message ? { message } : {}) }
191
+ writeFileSync(`${stateFile}.tmp`, `${JSON.stringify(job)}\n`)
192
+ renameSync(`${stateFile}.tmp`, stateFile)
193
+ },
194
+ run(cmd, args, env = {}) {
195
+ log(`$ ${[cmd, ...args].join(' ')}`)
196
+ const { promise, resolve, reject } = Promise.withResolvers()
197
+ const child = spawn(cmd, args, { cwd: plan.dir, env: { ...process.env, PATH, ...env }, stdio: ['ignore', 'pipe', 'pipe'] })
198
+ let out = ''
199
+ const keep = (b) => { out = (out + b).slice(-4000); try { appendFileSync(logFile, b) } catch {} }
200
+ child.stdout.on('data', keep)
201
+ child.stderr.on('data', keep)
202
+ child.on('error', e => reject(new Error(`${path.basename(cmd)}: ${e.message}`)))
203
+ child.on('close', (code) => {
204
+ if (code === 0) return resolve(out)
205
+ // The lines that say what went wrong (`wherdr: …`, `Error: …`), not a stack trace.
206
+ const lines = out.split('\n').map(l => l.trim()).filter(Boolean)
207
+ const why = lines.filter(l => /^(wherdr: |error\b|\w*Error: )/i.test(l)).slice(0, 2)
208
+ const tail = (why.length ? why : lines.slice(-1)).join(' / ')
209
+ reject(new Error(`${path.basename(cmd)} ${args[0]} exited with ${code}${tail ? `: ${tail}` : ''}`))
210
+ })
211
+ return promise
212
+ },
213
+ async download(url, file) {
214
+ log(`GET ${url}`)
215
+ const res = await fetch(url, { signal: AbortSignal.timeout(180_000) })
216
+ if (!res.ok) throw new Error(`${url} answered ${res.status}`)
217
+ mkdirSync(path.dirname(file), { recursive: true })
218
+ writeFileSync(file, Buffer.from(await res.arrayBuffer()))
219
+ },
220
+ // The server being replaced, then whatever `wherdr start` left (pid file).
221
+ async stopServer() {
222
+ const pids = [plan.serverPid]
223
+ try { pids.push(Number(readFileSync(path.join(plan.dir, 'wherdr.pid'), 'utf8').trim())) } catch {}
224
+ for (const pid of new Set(pids.filter(p => p && p !== process.pid && alive(p)))) {
225
+ log(`stopping pid ${pid}`)
226
+ try { process.kill(pid, 'SIGTERM') } catch {}
227
+ for (let i = 0; i < 40 && alive(pid); i++) await sleep(250)
228
+ if (alive(pid)) try { process.kill(pid, 'SIGKILL') } catch {}
229
+ }
230
+ rmSync(path.join(plan.dir, 'wherdr.pid'), { force: true })
231
+ },
232
+ async healthy(version, ms) {
233
+ const until = now() + ms
234
+ const get = async (url) => {
235
+ const res = await fetch(url, { signal: AbortSignal.timeout(3000) })
236
+ return { status: res.status, body: res.ok ? await res.json().catch(() => null) : null }
237
+ }
238
+ while (now() < until) {
239
+ try {
240
+ const health = await get(healthUrl(plan))
241
+ if (health.body?.version === version) return true
242
+ // Versions up to 1.3.1 have no /api/health: their version is in
243
+ // /api/update (unless the app is locked).
244
+ if (health.body?.version === undefined && (await get(healthUrl(plan).replace(/health$/, 'update'))).body?.current === version) return true
245
+ } catch {}
246
+ await sleep(1000)
247
+ }
248
+ return false
249
+ },
250
+ exists: p => existsSync(p),
251
+ rm: p => rmSync(p, { recursive: true, force: true }),
252
+ mkdir: p => mkdirSync(p, { recursive: true }),
253
+ rename: (a, b) => renameSync(a, b),
254
+ copy: (a, b) => cpSync(a, b, { recursive: true }),
255
+ realpath: p => realpathSync(p),
256
+ }
257
+ }
258
+
259
+ if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
260
+ const plan = JSON.parse(readFileSync(process.argv[2], 'utf8'))
261
+ const io = realIo(plan)
262
+ runUpdate(plan, io).then(r => process.exit(r === 'done' ? 0 : 1), (e) => {
263
+ io.log(`updater crashed: ${e?.stack || e}`)
264
+ try { io.state('failed', `The updater crashed: ${e?.message || e}`) } catch {}
265
+ process.exit(1)
266
+ })
267
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wherdr",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Unofficial mobile web client (PWA) to drive the coding agents running in Herdr",
@@ -33,6 +33,7 @@
33
33
  "scripts": {
34
34
  "dev": "nuxt dev",
35
35
  "build": "nuxt build",
36
+ "build:demo": "VITE_WHERDR_DEMO=1 nuxt generate",
36
37
  "start": "HOST=${HOST:-127.0.0.1} PORT=${PORT:-7683} node .output/server/index.mjs",
37
38
  "typecheck": "nuxt typecheck",
38
39
  "test": "vitest run",
@@ -1 +0,0 @@
1
- import{A as e,B as t,Et as n,Hn as r,M as i,Mn as a,N as o,Ot as s,P as c,Pt as l,St as u,U as d,V as f,b as p,dr as m,hr as h,j as g,mr as _,nn as v,sn as ee,w as te}from"./SiL1FJ5s.js";import{_t as y,vt as b}from"./CWwyK2XK.js";import{Dt as x,Ft as S,Gt as C,Jt as w,St as ne,Ut as re,_ as ie,an as ae,bt as oe,ft as se,lt as ce,mt as T,tn as le,vt as ue,y as de,zt as fe}from"./DcCZr0Ya.js";import{f as pe,p as me,u as he}from"./Ci8N4mWR.js";import{B as ge,C as _e,Cr as E,F as ve,G as D,H as O,I as ye,Ln as k,Sn as be,T as A,Un as j,V as xe,_ as Se,_n as Ce,b as M,bn as we,gn as Te,hn as Ee,hr as N,lr as P,mr as F,o as De,wt as Oe,xn as ke,xt as Ae,yn as je}from"./Cc2bsOcu.js";import{L as I,M as Me,N as Ne,P as L,V as Pe}from"./BJsf0WRn.js";import{i as Fe,n as Ie,r as Le,t as Re}from"./BB3uOVbO.js";import{l as R,m as ze,p as z}from"#entry";var B=[`data-pane`],V={class:`plan-cell-head`},H={class:`plan-cell-title`},Be=[`title`],Ve={key:0,class:`plan-cell-detail`},U={key:1,class:`plan-cell-line`},W={key:2,class:`plan-cell-choices`},G=[`disabled`,`onClick`],He={class:`n`},Ue={class:`l`},We=Object.assign(d({__name:`PlanCell`,props:{pane:{},focused:{type:Boolean},fresh:{type:Boolean}},emits:[`open`],setup(t,{emit:n}){let i=t,u=n,d=a(!1),_=e(()=>i.pane.status===`blocked`&&i.pane.prompt?.options?.length?i.pane.prompt:null),te=e(()=>R(_.value,3)),C=e(()=>k(i.pane)),w=e(()=>C.value&&j(C.value)||(_.value?_.value.question:i.pane.preview)||(i.pane.agent?``:N(i.pane.cwd)));async function ne(e,t){d.value=!0,await x(i.pane.id,e,t)||(d.value=!1)}return v(()=>i.pane.prompt,()=>{d.value=!1}),(e,n)=>{let i=z,a=ze,v=Ie,x=I;return s(),c(`div`,{class:m([`plan-cell`,[(`statusKey`in e?e.statusKey:r(S))(t.pane),{stale:(`paneStale`in e?e.paneStale:r(D))(t.pane),fresh:t.fresh}]]),role:`button`,tabindex:`0`,"data-pane":t.pane.id,onClick:n[0]||=e=>u(`open`),onKeydown:n[1]||=y(b(e=>u(`open`),[`self`]),[`enter`])},[f(v,{items:()=>(`paneItems`in e?e.paneItems:r(T))(t.pane),title:(`paneTitle`in e?e.paneTitle:r(F))(t.pane),"manual-press":``},{default:ee(()=>[g(`div`,V,[f(i,{agent:t.pane.agent},null,8,[`agent`]),g(`span`,H,h((`paneTitle`in e?e.paneTitle:r(F))(t.pane)),1),t.focused?(s(),c(`span`,{key:0,class:`plan-cell-focus`,title:(`t`in e?e.t:r(E))(`Active pane in Herdr`)},null,8,Be)):o(``,!0),f(a,{items:()=>(`paneItems`in e?e.paneItems:r(T))(t.pane),title:(`paneTitle`in e?e.paneTitle:r(F))(t.pane),size:`sm`,label:(`t`in e?e.t:r(E))(`Pane options`)},null,8,[`items`,`title`,`label`])])]),_:1},8,[`items`,`title`]),f(x,{pane:t.pane,model:``},null,8,[`pane`]),r(_)?.detail?(s(),c(`code`,Ve,h((`detailLine`in e?e.detailLine:r(L))(r(_).detail)),1)):o(``,!0),r(w)?(s(),c(`p`,U,h(r(w)),1)):o(``,!0),r(te).length?(s(),c(`div`,W,[(s(!0),c(p,null,l(r(te),n=>(s(),c(`button`,{key:n.i,type:`button`,disabled:r(d)||!(`eventsOpen`in e?e.eventsOpen:r(_e))||(`offlineView`in e?e.offlineView:r(O))||(`paneStale`in e?e.paneStale:r(D))(t.pane),onClick:b(e=>ne(n.i,n.label),[`stop`])},[g(`span`,He,h(n.i+1),1),g(`span`,Ue,h(n.label),1)],8,G))),128))])):o(``,!0)],42,B)}}}),{__name:`PlanCell`});function Ge(e,t,n,r,i){return e?`open`:t&&n&&(i||r)?`unavailable`:`loading`}var Ke={id:`tabview`,class:`view`},qe={class:`top bar tab-top`},Je={class:`tab-head`},Ye={class:`tab-title`},Xe={class:`tab-meta`},Ze={class:`tab-meta-tab`},Qe={key:0},$e=[`title`],et={class:`machine-inline-name`},tt={key:2,class:`chat-empty`},nt={key:3,class:`chat-empty`},rt=[`onPointerdown`],it=[`aria-orientation`,`aria-label`,`aria-valuenow`,`onPointerdown`,`onKeydown`],at={key:5,class:`plan-wrap`},ot=[`onPointerdown`],st=[`aria-orientation`,`aria-label`,`onPointerdown`],ct=Object.assign(d({__name:`TabView`,props:{tabId:{}},setup(d){let y=d,b=pe(),x=me();u(()=>{M.value||(Se.value=null)});let S=e(()=>w(y.tabId)),_e=e(()=>S.value&&Oe(C(S.value.tab.workspace).length).headerAdd),D=e(()=>S.value?A.value.workspaces.find(e=>e.id===S.value.tab.workspace):void 0),k=e(()=>new Map((S.value?.panes||[]).map(e=>[e.id,e]))),j=a(null),N=e(()=>j.value||S.value?.layout||null),I=e(()=>N.value?we(N.value).filter(e=>k.value.has(e.pane)):[]),L=e(()=>!O.value&&oe(y.tabId)),R=e(()=>L.value&&N.value?Ee(N.value):[]),z=e(()=>ge.value&&S.value?ve(S.value.tab.machine):void 0),B=(e,t)=>e||String(t),V=a(!!S.value),H=a(!1),Be=setTimeout(()=>{H.value=!0},4e3);n(()=>clearTimeout(Be)),v(S,e=>{e&&(V.value=!0)});let Ve=e(()=>Ge(!!S.value,A.value.ok,A.value.ready!==!1,H.value,V.value)===`unavailable`&&!fe(y.tabId)),U=a(null),W=e(()=>String(b.query.pane||``));v([S,W],([e,t],n)=>{if(!e)return;let r=e.panes.map(e=>e.id);if(t&&r.includes(t)&&(t!==n?.[1]||!n?.[0]?.panes.some(e=>e.id===t))){U.value=t;return}U.value&&r.includes(U.value)||(U.value=r.includes(t)?t:e.layout.focused&&r.includes(e.layout.focused)?e.layout.focused:r[0]||null)},{immediate:!0});function G(e){U.value!==e&&(U.value=e,x.replace({query:{pane:e}}))}function He(e){let t=M.value&&S.value&&U.value?Ae(e):0,n=t?je(S.value.layout,U.value,t):null;n&&(e.preventDefault(),e.stopPropagation(),G(n))}u(()=>window.addEventListener(`keydown`,He,!0)),n(()=>window.removeEventListener(`keydown`,He,!0));let Ue=()=>[...ne(y.tabId),...de()],ct=e(()=>S.value?`${E(`Tab`)} ${B(S.value.tab.label,S.value.tab.number)}`:void 0),K=a(null),q=a(null),lt={center:`Swap`,left:`Place left`,right:`Place right`,up:`Place above`,down:`Place below`};function ut(e,t){let n=K.value?.getBoundingClientRect();return n&&n.width>0&&n.height>0?{px:(e-n.left)/n.width*100,py:(t-n.top)/n.height*100}:null}function dt(e,t,n){L.value&&(q.value={pane:e,pointer:t.pointerId,touch:t.pointerType!==`mouse`,x0:t.clientX,y0:t.clientY,x:t.clientX,y:t.clientY,started:n,over:null,side:null},window.addEventListener(`pointermove`,ft),window.addEventListener(`pointerup`,pt),window.addEventListener(`pointercancel`,mt),window.addEventListener(`keydown`,ht,!0))}function ft(e){let t=q.value;if(!t||e.pointerId!==t.pointer||(t.x=e.clientX,t.y=e.clientY,!t.started&&Math.hypot(t.x-t.x0,t.y-t.y0)>5&&(t.started=!0),!t.started))return;e.preventDefault();let n=ut(t.x,t.y),r=n&&I.value.find(e=>e.pane!==t.pane&&n.px>=e.left&&n.px<=e.left+e.width&&n.py>=e.top&&n.py<=e.top+e.height),i=r&&n?Ce(r,n.px,n.py):null,a=r&&i&&S.value&&Te(S.value.layout,t.pane,r.pane,i);((a?r.pane:null)!==t.over||(a?i:null)!==t.side)&&(t.over=a?r.pane:null,t.side=a?i:null)}function J(){q.value=null,window.removeEventListener(`pointermove`,ft),window.removeEventListener(`pointerup`,pt),window.removeEventListener(`pointercancel`,mt),window.removeEventListener(`keydown`,ht,!0)}function pt(e){let t=q.value;if(!t||e.pointerId!==t.pointer)return;let n=k.value.get(t.pane);if(t.touch&&X.suppressClick(),J(),t.touch&&bt&&Math.hypot(t.x-t.x0,t.y-t.y0)<=5)return xt(t.pane);t.started&&n&&t.over&&t.side&&ce(n,t.over,t.side)}function mt(e){q.value&&e.pointerId===q.value.pointer&&(q.value.touch&&X.suppressClick(),J())}function ht(e){e.key===`Escape`&&(e.preventDefault(),J())}n(()=>{J(),$()});let Y=e(()=>{let e=q.value,t=e?.started&&e.over&&e.side?I.value.find(t=>t.pane===e.over):null;if(!t||!e?.side)return null;let{left:n,top:r,width:i,height:a}=t,o={left:{width:i/2},right:{left:n+i/2,width:i/2},up:{height:a/2},down:{top:r+a/2,height:a/2},center:{}}[e.side];return{side:e.side,label:E(lt[e.side]),style:Object.fromEntries(Object.entries({left:n,top:r,width:i,height:a,...o}).map(([e,t])=>[e,`${t}%`]))}}),gt=e(()=>{let e=q.value,t=e?.started?k.value.get(e.pane):null;if(!t||!e)return null;let n=Math.max(4,Math.min(e.touch?e.x-20:e.x+12,window.innerWidth-250)),r=Math.max(4,e.touch?e.y-56:e.y+14);return{title:F(t),style:{transform:`translate(${n}px, ${r}px)`}}});function _t(e,t){t.button===0&&t.target?.closest?.(`.cell-grip`)&&(t.preventDefault(),dt(e,t,!1))}let vt=null,yt=``,bt=!1;function xt(e){let t=k.value.get(e);t&&(P(),ie(T(t),F(t)))}let X=Ne({onPress:()=>{if(vt){if(!L.value)return bt?xt(yt):void 0;P(),dt(yt,vt,!0)}}});function St(e,t){vt=t,yt=e,bt=!!t.target?.closest?.(`.plan-cell-head`)&&!Le(t.target),X.down(t)}function Ct(e){X.move(e)}let Z=null,Q=a(null);function wt(e,t){if(t.button!==0||!S.value)return;t.preventDefault(),t.stopPropagation();let n=t.currentTarget;n.setPointerCapture?.(t.pointerId),Z={d:e,pointer:t.pointerId,ratio:e.ratio,el:n},Q.value=e.path,n.addEventListener(`pointermove`,Tt),n.addEventListener(`pointerup`,Et),n.addEventListener(`pointercancel`,$)}function Tt(e){let t=Z,n=ut(e.clientX,e.clientY);t&&e.pointerId===t.pointer&&n&&S.value&&(t.ratio=ke(S.value.layout,t.d,t.d.direction===`right`?n.px:n.py),j.value=be(S.value.layout,t.d.path,t.ratio))}function Et(e){let t=Z;t&&e.pointerId===t.pointer&&($(),Math.abs(t.ratio-t.d.ratio)>=.005&&ue(y.tabId,t.d.path,t.ratio))}function $(){let e=Z;Z=null,Q.value=null,j.value=null,e&&(e.el.removeEventListener(`pointermove`,Tt),e.el.removeEventListener(`pointerup`,Et),e.el.removeEventListener(`pointercancel`,$))}function Dt(e,t){let n={ArrowLeft:-1,ArrowUp:-1,ArrowRight:1,ArrowDown:1}[t.key];if(!n||!S.value||e.direction===`right`!=(t.key===`ArrowLeft`||t.key===`ArrowRight`))return;t.preventDefault();let r=ke(S.value.layout,e,e.start+e.size*(e.ratio+n*.05));r!==e.ratio&&ue(y.tabId,e.path,r)}let Ot=e=>e.direction===`right`?{left:`${e.at}%`,top:`${e.from}%`,height:`${e.span}%`}:{top:`${e.at}%`,left:`${e.from}%`,width:`${e.span}%`};function kt(e){X.swallowClick()||(P(),he(re(e)))}return(e,n)=>{let a=Fe,u=le,v=ae,y=Me,b=ze,x=Ie,C=Pe,w=Re,ne=We;return s(),c(`section`,Ke,[r(S)?(s(),i(a,{key:0,workspace:r(S).tab.workspace,current:d.tabId},null,8,[`workspace`,`current`])):o(``,!0),f(x,{items:Ue,title:r(ct),disabled:!r(S)},{default:ee(()=>[g(`header`,qe,[f(u,{icon:`i-lucide-chevron-left`,color:`neutral`,variant:`ghost`,size:`lg`,class:`icon-btn back tab-back`,"aria-label":(`t`in e?e.t:r(E))(`Back`),to:`/`},null,8,[`aria-label`]),g(`div`,Je,[g(`div`,Ye,[r(D)?.worktree?(s(),i(v,{key:0,name:`i-lucide-git-branch`,class:`tab-title-branch`})):o(``,!0),t(h(r(D)?.label||`—`),1)]),g(`div`,Xe,[g(`span`,Ze,h((`t`in e?e.t:r(E))(`Tab`))+` `+h(r(S)?B(r(S).tab.label,r(S).tab.number):``),1),r(S)?(s(),c(`span`,Qe,h(`${r(S).panes.length} pane${r(S).panes.length>1?`s`:``}`),1)):o(``,!0),r(S)?.layout.zoomed?(s(),c(`span`,{key:1,class:`tab-meta-zoom`,title:(`t`in e?e.t:r(E))(`A pane is zoomed in Herdr`)},`zoom`,8,$e)):o(``,!0),r(z)?(s(),c(`span`,{key:2,class:m([`tab-meta-machine`,r(z).status])},[f(v,{name:r(z).local?`i-lucide-server`:`i-lucide-laptop`},null,8,[`name`]),g(`span`,et,h((`machineName`in e?e.machineName:r(ye))(r(z).key)),1),r(z).local?(s(),i(y,{key:0})):o(``,!0)],2)):o(``,!0)])]),r(_e)&&r(S)?(s(),i(u,{key:0,icon:`i-lucide-plus`,color:`neutral`,variant:`ghost`,size:`lg`,class:`icon-btn`,"aria-label":(`t`in e?e.t:r(E))(`New tab`),title:(`t`in e?e.t:r(E))(`New tab`),disabled:`offlineView`in e?e.offlineView:r(O),onClick:n[0]||=t=>(`newTab`in e?e.newTab:r(se))(r(S).tab.workspace)},null,8,[`aria-label`,`title`,`disabled`])):o(``,!0),r(S)?(s(),i(b,{key:1,items:Ue,size:`lg`,title:r(ct),label:(`t`in e?e.t:r(E))(`Tab options`)},null,8,[`title`,`label`])):o(``,!0)])]),_:1},8,[`title`,`disabled`]),!(`desk`in e?e.desk:r(M))&&((`netDown`in e?e.netDown:r(xe))||(`offlineView`in e?e.offlineView:r(O)))?(s(),i(C,{key:1,label:(`offlineView`in e?e.offlineView:r(O))?(`t`in e?e.t:r(E))(`Last known state`):void 0,at:`cachedAt`in e?e.cachedAt:r(De)},null,8,[`label`,`at`])):o(``,!0),r(Ve)?(s(),c(`div`,tt,[f(v,{name:`i-lucide-layout-panel-left`,class:`chat-empty-icon`}),g(`p`,null,h((`t`in e?e.t:r(E))(`This tab is unavailable.`)),1),f(u,{color:`neutral`,variant:`outline`,to:`/`},{default:ee(()=>[t(h((`t`in e?e.t:r(E))(`Back`)),1)]),_:1})])):r(S)?r(S)&&(`desk`in e?e.desk:r(M))?(s(),c(`div`,{key:4,ref_key:`area`,ref:K,class:m([`split`,{dragging:r(q)?.started,resizing:r(Q)!=null}])},[(s(!0),c(p,null,l(r(I),e=>(s(),c(`div`,{key:e.pane,class:m([`split-box`,{"drag-src":r(q)?.started&&r(q).pane===e.pane}]),style:_({left:`${e.left}%`,top:`${e.top}%`,width:`${e.width}%`,height:`${e.height}%`}),onPointerdown:t=>_t(e.pane,t)},[f(w,{cell:``,grip:r(L),"pane-id":e.pane,active:e.pane===r(U),onActivate:t=>G(e.pane)},null,8,[`grip`,`pane-id`,`active`,`onActivate`])],46,rt))),128)),r(Y)?(s(),c(`div`,{key:0,class:m([`drop-zone`,r(Y).side]),style:_(r(Y).style)},[g(`span`,null,h(r(Y).label),1)],6)):o(``,!0),(s(!0),c(p,null,l(r(R),t=>(s(),c(`div`,{key:t.path,class:m([`divider`,[t.direction,{on:r(Q)===t.path}]]),style:_(Ot(t)),role:`separator`,tabindex:`0`,"aria-orientation":t.direction===`right`?`vertical`:`horizontal`,"aria-label":(`t`in e?e.t:r(E))(`Resize`),"aria-valuenow":Math.round(t.ratio*100),"aria-valuemin":`5`,"aria-valuemax":`95`,onPointerdown:e=>wt(t,e),onKeydown:e=>Dt(t,e)},null,46,it))),128))],2)):r(S)?(s(),c(`div`,at,[g(`div`,{ref_key:`area`,ref:K,class:m([`plan`,{dragging:r(q)?.started,resizing:r(Q)!=null,movable:r(L)}])},[(s(!0),c(p,null,l(r(I),e=>(s(),c(`div`,{key:e.pane,class:m([`plan-box`,{"drag-src":r(q)?.started&&r(q).pane===e.pane}]),style:_({left:`${e.left}%`,top:`${e.top}%`,width:`${e.width}%`,height:`${e.height}%`}),onPointerdown:t=>St(e.pane,t),onPointermove:Ct,onPointerup:n[1]||=(...e)=>r(X).cancel&&r(X).cancel(...e),onPointercancel:n[2]||=(...e)=>r(X).cancel&&r(X).cancel(...e)},[f(ne,{pane:r(k).get(e.pane),focused:r(S).layout.focused===e.pane&&r(I).length>1,fresh:r(W)===e.pane,onOpen:t=>kt(e.pane)},null,8,[`pane`,`focused`,`fresh`,`onOpen`])],46,ot))),128)),r(Y)?(s(),c(`div`,{key:0,class:m([`drop-zone`,r(Y).side]),style:_(r(Y).style)},[g(`span`,null,h(r(Y).label),1)],6)):o(``,!0),(s(!0),c(p,null,l(r(R),t=>(s(),c(`div`,{key:t.path,class:m([`divider`,[t.direction,{on:r(Q)===t.path}]]),style:_(Ot(t)),role:`separator`,"aria-orientation":t.direction===`right`?`vertical`:`horizontal`,"aria-label":(`t`in e?e.t:r(E))(`Resize`),onPointerdown:e=>wt(t,e)},null,46,st))),128))],2)])):o(``,!0):(s(),c(`div`,nt,h((`t`in e?e.t:r(E))(`Loading…`)),1)),(s(),i(te,{to:`body`},[r(gt)?(s(),c(`div`,{key:0,class:`drag-ghost`,style:_(r(gt).style)},h(r(gt).title),5)):o(``,!0)]))])}}}),{__name:`TabView`}),K=d({__name:`[tab]`,setup(t){let n=pe(),a=e(()=>String(n.params.tab||``));return(e,t)=>{let n=ct;return s(),i(n,{key:r(a),"tab-id":r(a)},null,8,[`tab-id`])}}});export{K as default};
@@ -1,2 +0,0 @@
1
- import{$ as e,A as t,An as n,B as r,Dn as i,Et as a,Ft as o,Gt as s,Hn as c,M as l,Mn as u,N as d,Ot as f,P as p,Pt as m,Qt as h,R as g,Rn as _,Rt as v,St as y,U as b,V as x,Yt as S,Zt as C,an as ee,b as w,ct as te,dr as T,ft as E,hr as D,ht as O,j as k,ln as A,mr as ne,mt as j,nn as M,pr as N,pt as re,rn as P,sn as F,wn as ie,zn as I}from"./SiL1FJ5s.js";import{_t as ae,gt as oe,vt as se}from"./CWwyK2XK.js";import{Bn as L,Cn as R,Dn as ce,En as le,Fn as ue,Ft as de,Hn as z,In as B,It as fe,Kn as pe,Ln as me,Mn as he,Nn as ge,Pn as _e,Qt as ve,Rn as V,Tn as ye,Un as be,Vn as H,Wn as xe,Xt as Se,Yn as Ce,Zn as we,_n as Te,_r as U,an as W,ar as Ee,cn as De,cr as Oe,dn as ke,dr as Ae,en as je,fn as Me,gn as Ne,gr as G,hn as Pe,in as Fe,ir as Ie,jn as Le,ln as Re,lr as ze,mn as K,nn as Be,on as Ve,or as He,pn as Ue,qn as We,rn as Ge,rr as q,sn as Ke,sr as qe,tn as Je,ur as Ye,vn as Xe,wn as Ze,xn as Qe,zn as J}from"./DcCZr0Ya.js";import{m as $e}from"./Ci8N4mWR.js";import{c as et}from"./Bta8at9w.js";import{Cr as tt,N as nt,O as rt,V as it,bn as at,br as ot,gr as st,nt as ct,vr as lt,wr as Y,xr as ut}from"./Cc2bsOcu.js";import{t as dt}from"./BDNMzG2s.js";function ft(e,t){return t?.label?.trim()||ot(e)}function pt(e,t){let n=lt(e.title).replace(/\s*\|\s*\S+$/,``).trim();return!n||/^\S+@\S+:/.test(n)||[e.agent,e.name,`Claude Code`,`Claude`,`Codex`,`Gemini CLI`,`OpenCode`,`Kimi`].some(e=>e&&e.trim().toLocaleLowerCase()===n.toLocaleLowerCase())||n.toLocaleLowerCase()===ft(e,t).toLocaleLowerCase()?``:n}var mt=[`INPUT`,`TEXTAREA`];function ht(e,t,n,r={}){if(!t||r.enableIgnoredElement&&mt.includes(t.nodeName))return null;let{arrowKeyOptions:i=`both`,attributeName:a=`[data-reka-collection-item]`,itemsArray:o=[],loop:s=!0,dir:c=`ltr`,preventScroll:l=!0,focus:u=!1}=r,[d,f,p,m,h,g]=[e.key===`ArrowRight`,e.key===`ArrowLeft`,e.key===`ArrowUp`,e.key===`ArrowDown`,e.key===`Home`,e.key===`End`],_=p||m,v=d||f;if(!h&&!g&&(!_&&!v||i===`vertical`&&v||i===`horizontal`&&_))return null;let y=n?Array.from(n.querySelectorAll(a)):o;if(!y.length)return null;l&&e.preventDefault();let b=null;return v||_?b=gt(y,t,{goForward:_?m:c===`ltr`?d:f,loop:s}):h?b=y.at(0)||null:g&&(b=y.at(-1)||null),u&&b?.focus(),b}function gt(e,t,n,r=e.includes(t)?e.length:e.length+1){if(--r===0)return null;let i=e.indexOf(t),a;if(a=i===-1?n.goForward?0:e.length-1:n.goForward?i+1:i-1,!n.loop&&(a<0||a>=e.length))return null;let o=e[(a+e.length)%e.length];return o?o.hasAttribute(`disabled`)&&o.getAttribute(`disabled`)!==`false`?gt(e,o,n,r):o:null}var _t=Ee(()=>{let e=u(new Map),n=u(),r=t(()=>{for(let t of e.value.values())if(t)return!0;return!1}),i=pe({scrollBody:u(!0)}),a=null,o=()=>{document.body.style.paddingRight=``,document.body.style.marginRight=``,xe.layersWithOutsidePointerEventsDisabled.size===0&&(document.body.style.pointerEvents=``),document.documentElement.style.removeProperty(`--scrollbar-width`),document.body.style.overflow=n.value??``,qe&&a?.(),n.value=void 0};return M(r,(e,t)=>{if(!He)return;if(!e){t&&o();return}n.value===void 0&&(n.value=document.body.style.overflow);let s=window.innerWidth-document.documentElement.clientWidth,c={padding:s,margin:0},l=i.scrollBody?.value?typeof i.scrollBody.value==`object`?$e({padding:i.scrollBody.value.padding===!0?s:i.scrollBody.value.padding,margin:i.scrollBody.value.margin===!0?s:i.scrollBody.value.margin},c):c:{padding:0,margin:0};s>0&&(document.body.style.paddingRight=typeof l.padding==`number`?`${l.padding}px`:String(l.padding),document.body.style.marginRight=typeof l.margin==`number`?`${l.margin}px`:String(l.margin),document.documentElement.style.setProperty(`--scrollbar-width`,`${s}px`),document.body.style.overflow=`hidden`),qe&&(a=we(document,`touchmove`,e=>bt(e),{passive:!1})),O(()=>{r.value&&(document.body.style.pointerEvents=`none`,document.body.style.overflow=`hidden`)})},{immediate:!0,flush:`sync`}),e});function vt(e){let n=Math.random().toString(36).substring(2,7),r=_t();r.value.set(n,e??!1);let i=t({get:()=>r.value.get(n)??!1,set:e=>r.value.set(n,e)});return Ae(()=>{r.value.delete(n)}),i}function yt(e){let t=window.getComputedStyle(e);if(t.overflowX===`scroll`||t.overflowY===`scroll`||t.overflowX===`auto`&&e.clientWidth<e.scrollWidth||t.overflowY===`auto`&&e.clientHeight<e.scrollHeight)return!0;{let t=e.parentNode;return!(t instanceof Element)||t.tagName===`BODY`?!1:yt(t)}}function bt(e){let t=e||window.event,n=t.target;return n instanceof Element&&yt(n)?!1:t.touches.length>1||(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}var xt=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Bopomofo}]/u,St=/android/i;function Ct(){return typeof navigator<`u`&&St.test(navigator.userAgent)}function wt(e){let n=u(!1),r=u(!0),i=u(!1),a=t(()=>n.value&&r.value);function o(){n.value=!0,r.value=!0,i.value=!1}function s(e){e.data&&(xt.test(e.data)?(r.value=!0,i.value=!0):Ct()&&!i.value&&(r.value=!1))}function c(t){O(()=>{n.value=!1,e?.(t)})}return{isComposing:n,shouldDeferInput:a,handleCompositionStart:o,handleCompositionUpdate:s,handleCompositionEnd:c}}function Tt(e){let n=t(()=>c(e)),r=t(()=>new Intl.Collator(`en`,{usage:`search`,...n.value}));return{startsWith:(e,t)=>t.length===0||(e=e.normalize(`NFC`),t=t.normalize(`NFC`),r.value.compare(e.slice(0,t.length),t)===0),endsWith:(e,t)=>t.length===0||(e=e.normalize(`NFC`),t=t.normalize(`NFC`),r.value.compare(e.slice(-t.length),t)===0),contains:(e,t)=>{if(t.length===0)return!0;e=e.normalize(`NFC`),t=t.normalize(`NFC`);let n=0,i=t.length;for(;n+i<=e.length;n++){let a=e.slice(n,n+i);if(r.value.compare(t,a)===0)return!0}return!1}}}var Et=0;function Dt(){P(e=>{if(!He)return;let t=document.querySelectorAll(`[data-reka-focus-guard]`);document.body.insertAdjacentElement(`afterbegin`,t[0]??Ot()),document.body.insertAdjacentElement(`beforeend`,t[1]??Ot()),Et++,e(()=>{Et===1&&document.querySelectorAll(`[data-reka-focus-guard]`).forEach(e=>e.remove()),Et--})})}function Ot(){let e=document.createElement(`span`);return e.setAttribute(`data-reka-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var kt=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},At=new WeakMap,jt=new WeakMap,Mt={},Nt=0,Pt=function(e){return e&&(e.host||Pt(e.parentNode))},Ft=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Pt(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},It=function(e,t,n,r){var i=Ft(t,Array.isArray(e)?e:[e]);Mt[n]||(Mt[n]=new WeakMap);var a=Mt[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(At.get(e)||0)+1,l=(a.get(e)||0)+1;At.set(e,c),a.set(e,l),o.push(e),c===1&&i&&jt.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),Nt++,function(){o.forEach(function(e){var t=At.get(e)-1,i=a.get(e)-1;At.set(e,t),a.set(e,i),t||(jt.has(e)||e.removeAttribute(r),jt.delete(e)),i||e.removeAttribute(n)}),Nt--,Nt||(At=new WeakMap,At=new WeakMap,jt=new WeakMap,Mt={})}},Lt=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||kt(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),It(r,i,n,`aria-hidden`)):function(){return null}};function Rt(e){let t;M(()=>Ce(e),e=>{let n=!1;try{n=!!e?.closest(`[popover]:not(:popover-open)`)}catch{}e&&!n?t=Lt(e):t&&t()}),a(()=>{t&&t()})}function zt(e){let t=Ye(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=G(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=Vt(n.map(e=>e.textValue),t.value,i?.textValue),o=n.find(e=>e.textValue===a);return o&&o.ref.focus(),o?.ref}},resetTypeahead:()=>{t.value=``}}}function Bt(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Vt(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Bt(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}var[X,Ht]=U(`DialogRoot`),Ut=b({inheritAttrs:!1,__name:`DialogRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=q(n,`open`,t,{defaultValue:n.defaultOpen,passive:n.open===void 0}),i=u(),a=u(),{modal:s,unmountOnHide:l}=I(n);return Ht({open:r,modal:s,unmountOnHide:l,openModal:()=>{r.value=!0},onOpenChange:e=>{r.value=e},onOpenToggle:()=>{r.value=!r.value},contentId:``,titleId:``,descriptionId:``,triggerElement:i,contentElement:a}),(e,t)=>o(e.$slots,`default`,{open:c(r),close:()=>r.value=!1})}}),Wt=b({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e;H();let n=X();return(e,r)=>(f(),l(c(B),j(t,{type:e.as===`button`?`button`:void 0,onClick:r[0]||=e=>c(n).onOpenChange(!1)}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`type`]))}}),Gt=Ie(()=>u([]));function Kt(){let e=Gt();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=qt(e.value,t),e.value.unshift(t)},remove(t){e.value=qt(e.value,t),e.value[0]?.resume()}}}function qt(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var Jt=`focusScope.autoFocusOnMount`,Yt=`focusScope.autoFocusOnUnmount`,Xt={bubbles:!1,cancelable:!0};function Zt(e,{select:t=!1}={}){let n=G();for(let r of e)if(Z(r,{select:t}),G()!==n)return!0}function Qt(e){let t=$t(e);return[en(t,e),en(t.reverse(),e)]}function $t(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function en(e,t){for(let n of e)if(!tn(n,{upTo:t}))return n}function tn(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function nn(e){return e instanceof HTMLInputElement&&`select`in e}function Z(e,{select:t=!1}={}){if(e&&e.focus){let n=G();e.focus({preventScroll:!0}),e!==n&&nn(e)&&t&&e.select()}}var rn=b({__name:`FocusScope`,props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},present:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`mountAutoFocus`,`unmountAutoFocus`],setup(e,{emit:t}){let r=e,i=t,{currentRef:a,currentElement:s}=H(),d=u(null),p=Kt(),m=n({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});P(e=>{if(!He)return;let t=s.value;if(!r.trapped)return;function n(e){if(m.paused||!t)return;let n=e.target;t.contains(n)?d.value=n:Z(d.value,{select:!0})}function i(e){if(m.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||Z(d.value,{select:!0}))}function a(e){let n=d.value;if(n===null||!e.some(e=>e.removedNodes.length>0))return;let r=G();r&&t.contains(r)||t.contains(n)||Z(t)}document.addEventListener(`focusin`,n),document.addEventListener(`focusout`,i);let o=new MutationObserver(a);t&&o.observe(t,{childList:!0,subtree:!0}),e(()=>{document.removeEventListener(`focusin`,n),document.removeEventListener(`focusout`,i),o.disconnect()})});function h(e,t){let n=new CustomEvent(Jt,Xt),r=e=>i(`mountAutoFocus`,e);e.addEventListener(Jt,r),e.dispatchEvent(n),e.removeEventListener(Jt,r),n.defaultPrevented||(Zt($t(e),{select:!0}),G()===t&&Z(e))}P(async e=>{let t=s.value;if(await O(),!t)return;r.present!==!1&&p.add(m);let n=G();!t.contains(n)&&r.present!==!1&&h(t,n),e(()=>{let e=new CustomEvent(Yt,Xt),r=e=>{i(`unmountAutoFocus`,e)};t.addEventListener(Yt,r),t.dispatchEvent(e),t.setAttribute(`data-focus-scope-unmounting`,``),setTimeout(()=>{e.defaultPrevented||Z(n??document.body,{select:!0}),t.removeEventListener(Yt,r),p.remove(m),t.removeAttribute(`data-focus-scope-unmounting`)},0)})}),M(()=>r.present,async(e,t)=>{if(!He)return;if(e===!1&&t===!0){p.remove(m);return}if(e!==!0||t!==!1)return;p.add(m),await O();let n=s.value;if(!n)return;let r=G();n.contains(r)||h(n,r)});function g(e){if(!r.loop&&!r.trapped||m.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=G();if(t&&n){let t=e.currentTarget,[i,a]=Qt(t);i&&a?!e.shiftKey&&n===a?(e.preventDefault(),r.loop&&Z(i,{select:!0})):e.shiftKey&&n===i&&(e.preventDefault(),r.loop&&Z(a,{select:!0})):n===t&&e.preventDefault()}}return(e,t)=>(f(),l(c(B),{ref_key:`currentRef`,ref:a,tabindex:`-1`,"as-child":e.asChild,as:e.as,onKeydown:g},{default:F(()=>[o(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}}),an=`menu.itemSelect`,on=[`Enter`,` `],sn=[`ArrowDown`,`PageUp`,`Home`],cn=[`ArrowUp`,`PageDown`,`End`],ln=[...sn,...cn],un={ltr:[...on,`ArrowRight`],rtl:[...on,`ArrowLeft`]},dn={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]};function fn(e){return e?`open`:`closed`}function pn(e){return e===`indeterminate`}function mn(e){return pn(e)?`indeterminate`:e?`checked`:`unchecked`}function hn(e){let t=G();for(let n of e)if(n===t||(n.focus(),G()!==t))return}function gn(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function _n(e,t){return t?gn({x:e.clientX,y:e.clientY},t):!1}function vn(e){return e.pointerType===`mouse`}var yn=b({__name:`DialogContentImpl`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=X(),{forwardRef:a,currentElement:s}=H();return i.titleId||=V(void 0,`reka-dialog-title`),i.descriptionId||=V(void 0,`reka-dialog-description`),y(()=>{i.contentElement=s,G()!==document.body&&(i.triggerElement.value=G())}),(e,t)=>(f(),l(c(rn),{"as-child":``,loop:``,trapped:n.trapFocus,present:n.present,onMountAutoFocus:t[5]||=e=>r(`openAutoFocus`,e),onUnmountAutoFocus:t[6]||=e=>r(`closeAutoFocus`,e)},{default:F(()=>[x(c(_e),j({id:c(i).contentId,ref:c(a),as:e.as,"as-child":e.asChild,present:n.present,"disable-outside-pointer-events":e.disableOutsidePointerEvents,role:`dialog`,"aria-describedby":c(i).descriptionId,"aria-labelledby":c(i).titleId,"data-state":c(fn)(c(i).open.value)},e.$attrs,{onDismiss:t[0]||=e=>c(i).onOpenChange(!1),onEscapeKeyDown:t[1]||=e=>r(`escapeKeyDown`,e),onFocusOutside:t[2]||=e=>r(`focusOutside`,e),onInteractOutside:t[3]||=e=>r(`interactOutside`,e),onPointerDownOutside:t[4]||=e=>r(`pointerDownOutside`,e)}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`id`,`as`,`as-child`,`present`,`disable-outside-pointer-events`,`aria-describedby`,`aria-labelledby`,`data-state`])]),_:3},8,[`trapped`,`present`]))}}),bn=b({__name:`DialogContentModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=n,a=X(),s=z(i),{forwardRef:u,currentElement:d}=H();Rt(t(()=>r.present?d.value:void 0));let p=t(()=>{let{present:e,...t}=r;return t});return M(()=>r.present,(e,t)=>{!e&&t&&a.triggerElement.value?.focus()}),(e,t)=>(f(),l(yn,j({...p.value,...c(s)},{ref:c(u),present:e.present,"trap-focus":c(a).open.value,"disable-outside-pointer-events":r.disableOutsidePointerEvents,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(e.preventDefault(),c(a).triggerElement.value?.focus())},onPointerDownOutside:t[1]||=e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()},onFocusOutside:t[2]||=e=>{e.preventDefault()}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`present`,`trap-focus`,`disable-outside-pointer-events`]))}}),xn=b({__name:`DialogContentNonModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=z(n);H();let a=X(),s=u(!1),d=u(!1),p=t(()=>{let{present:e,...t}=r;return t});return M(()=>r.present,(e,t)=>{!e&&t&&(s.value||a.triggerElement.value?.focus(),s.value=!1,d.value=!1)}),(e,t)=>(f(),l(yn,j({...p.value,...c(i)},{present:e.present,"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:t[0]||=e=>{e.defaultPrevented||(s.value||c(a).triggerElement.value?.focus(),e.preventDefault()),s.value=!1,d.value=!1},onInteractOutside:t[1]||=e=>{e.defaultPrevented||(s.value=!0,e.detail.originalEvent.type===`pointerdown`&&(d.value=!0));let t=e.target;c(a).triggerElement.value?.contains(t)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&d.value&&e.preventDefault()}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`present`]))}}),Sn=b({__name:`DialogContent`,props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:void 0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=X(),a=z(r),{forwardRef:s}=H();return(e,t)=>(f(),l(c(me),{present:e.forceMount||c(i).open.value,"force-mount":e.forceMount||!c(i).unmountOnHide.value},{default:F(({present:t})=>[c(i).modal.value?A((f(),l(bn,j({key:0,ref:c(s),present:c(i).unmountOnHide.value||t},{...n,...c(a),...e.$attrs}),{default:F(()=>[o(e.$slots,`default`)]),_:2},1040,[`present`])),[[oe,c(i).unmountOnHide.value||t]]):A((f(),l(xn,j({key:1,ref:c(s),present:c(i).unmountOnHide.value||t},{...n,...c(a),...e.$attrs}),{default:F(()=>[o(e.$slots,`default`)]),_:2},1040,[`present`])),[[oe,c(i).unmountOnHide.value||t]])]),_:3},8,[`present`,`force-mount`]))}}),Cn=b({__name:`DialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let t=e;H();let n=X();return(e,r)=>(f(),l(c(B),j(t,{id:c(n).descriptionId}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`id`]))}}),wn=b({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1},present:{type:Boolean,required:!1,default:!0}},setup(e){let t=e,n=X(),r=vt(t.present);return M(()=>t.present,e=>r.value=e),H(),(e,t)=>(f(),l(c(B),{as:e.as,"as-child":e.asChild,"data-state":c(n).open.value?`open`:`closed`,style:{"pointer-events":`auto`},onPointerdown:t[0]||=se(()=>{},[`left`,`self`,`prevent`])},{default:F(()=>[o(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`]))}}),Tn=b({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=X(),{forwardRef:n}=H();return(e,r)=>c(t)?.modal.value?(f(),l(c(me),{key:0,present:e.forceMount||c(t).open.value,"force-mount":e.forceMount||!c(t).unmountOnHide.value},{default:F(({present:r})=>[A(x(wn,j(e.$attrs,{ref:c(n),as:e.as,"as-child":e.asChild,present:c(t).unmountOnHide.value||r}),{default:F(()=>[o(e.$slots,`default`)]),_:2},1040,[`as`,`as-child`,`present`]),[[oe,c(t).unmountOnHide.value||r]])]),_:3},8,[`present`,`force-mount`])):d(`v-if`,!0)}}),En=b({__name:`DialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(t){let n=t;return(t,r)=>(f(),l(c(ge),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Dn=b({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let t=e,n=X();return H(),(e,r)=>(f(),l(c(B),j(t,{id:c(n).titleId}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`id`]))}}),On=b({__name:`DialogTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=X(),{forwardRef:r,currentElement:i}=H();return n.contentId||=V(void 0,`reka-dialog-content`),y(()=>{n.triggerElement.value=i.value}),(e,i)=>(f(),l(c(B),j(t,{ref:c(r),type:e.as===`button`?`button`:void 0,"aria-haspopup":`dialog`,"aria-expanded":c(n).open.value||!1,"aria-controls":c(n).open.value?c(n).contentId:void 0,"data-state":c(n).open.value?`open`:`closed`,onClick:c(n).onOpenToggle}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`type`,`aria-expanded`,`aria-controls`,`data-state`,`onClick`]))}}),kn=b({__name:`MenuAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return(t,r)=>(f(),l(c(le),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),An=b({__name:`MenuArrow`,props:{width:{type:Number,required:!1},height:{type:Number,required:!1},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return(t,r)=>(f(),l(c(R),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}});function jn(){let e=u(!1);return y(()=>{we(`keydown`,()=>{e.value=!0},{capture:!0,passive:!0}),we([`pointerdown`,`pointermove`],()=>{e.value=!1},{capture:!0,passive:!0})}),e}var Mn=Ee(jn),[Nn,Pn]=U([`MenuRoot`,`MenuSub`],`MenuContext`),[Fn,In]=U(`MenuRoot`),Ln=b({__name:`MenuRoot`,props:{open:{type:Boolean,required:!1,default:!1},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,{modal:i,dir:a}=I(n),s=be(a),d=q(n,`open`,r),p=u(),m=Mn();return Pn({open:d,onOpenChange:e=>{d.value=e},content:p,onContentChange:e=>{p.value=e}}),In({onClose:()=>{d.value=!1},isUsingKeyboardRef:m,dir:s,modal:i}),(e,t)=>(f(),l(c(ce),null,{default:F(()=>[o(e.$slots,`default`)]),_:3}))}}),[Rn,zn]=U(`MenuContent`),Bn=b({__name:`MenuContentImpl`,props:E({loop:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},disableOutsideScroll:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Ze}),emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,i=Nn(),s=Fn(),{trapFocus:d,disableOutsidePointerEvents:p,loop:m}=I(n);Dt(),vt(p.value);let h=u(``),g=u(0),_=u(0),v=u(null),y=u(`right`),b=u(0),S=u(null),C=u(),{forwardRef:ee,currentElement:w}=H(),{handleTypeaheadSearch:te}=zt(),T=u();function E(e){let t=ht(e,T.value||G(),w.value,{loop:m.value,arrowKeyOptions:`vertical`,dir:s?.dir.value,focus:!1,attributeName:`[data-reka-collection-item]:not([data-disabled])`});t&&(T.value=t,t.scrollIntoView({block:`nearest`}))}function D(){T.value&&T.value.click()}let O=u(),k=u();M(T,e=>{if(k.value&&(e===void 0||e!==k.value.trigger.value)){if(e===void 0)return;k.value.onOpenChange(!1),k.value=void 0}}),M(w,e=>{i.onContentChange(e)}),a(()=>{window.clearTimeout(g.value)});function A(e){return y.value===v.value?.side&&_n(e,v.value?.area)}async function ne(e){r(`openAutoFocus`,e),!e.defaultPrevented&&(e.preventDefault(),w.value?.focus({preventScroll:!0}))}function j(e){if(e.defaultPrevented)return;let t=e.target,n=t.closest(`[data-reka-menu-content]`)===e.currentTarget,r=[`input`,`textarea`].includes(t.tagName.toLowerCase()),i=e.ctrlKey||e.altKey||e.metaKey,a=e.key.length===1,o=ht(e,G(),w.value,{loop:m.value,arrowKeyOptions:`vertical`,dir:s?.dir.value,focus:!0,attributeName:`[data-reka-collection-item]:not([data-disabled])`});if(o)return o?.focus();if(e.code===`Space`)return;let c=C.value?.getItems()??[];if(n&&(e.key===`Tab`&&s.modal.value&&e.preventDefault(),!i&&a&&!r&&te(e.key,c)),e.target!==w.value||!ln.includes(e.key))return;e.preventDefault();let l=[...c.map(e=>e.ref)];cn.includes(e.key)&&l.reverse(),hn(l)}function N(e){e?.currentTarget?.contains?.(e.target)||(window.clearTimeout(g.value),h.value=``)}function re(e){if(!vn(e))return;let t=e.target,n=b.value!==e.clientX;if((e?.currentTarget)?.contains(t)&&n){let t=e.clientX>b.value?`right`:`left`;y.value=t,b.value=e.clientX}}function P(e){vn(e)&&O.value&&O.value.focus()}return zn({onItemEnter:e=>!!A(e),onItemLeave:e=>A(e)?!0:([`INPUT`,`TEXTAREA`].includes(G()?.tagName||``)||w.value?.focus(),S.value=null,!1),onTriggerLeave:e=>!!A(e),searchRef:h,highlightedElement:T,onKeydownNavigation:E,onKeydownEnter:D,filterElement:O,onFilterElementChange:e=>{O.value=e},activeSubmenuContext:k,pointerGraceTimerRef:_,onPointerGraceIntentChange:e=>{v.value=e}}),(e,t)=>(f(),l(c(rn),{"as-child":``,trapped:c(d),onMountAutoFocus:ne,onUnmountAutoFocus:t[7]||=e=>r(`closeAutoFocus`,e)},{default:F(()=>[x(c(_e),{"as-child":``,"disable-outside-pointer-events":c(p),onEscapeKeyDown:t[2]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[3]||=e=>r(`pointerDownOutside`,e),onFocusOutside:t[4]||=e=>r(`focusOutside`,e),onInteractOutside:t[5]||=e=>r(`interactOutside`,e),onDismiss:t[6]||=e=>r(`dismiss`)},{default:F(()=>[x(c(Qe),{ref_key:`rovingFocusGroupRef`,ref:C,"current-tab-stop-id":S.value,"onUpdate:currentTabStopId":t[0]||=e=>S.value=e,"as-child":``,orientation:`vertical`,dir:c(s).dir.value,loop:c(m),onEntryFocus:t[1]||=e=>{r(`entryFocus`,e),c(s).isUsingKeyboardRef.value||e.preventDefault()}},{default:F(()=>[x(c(ye),{ref:c(ee),role:`menu`,as:e.as,"as-child":e.asChild,"aria-orientation":`vertical`,"data-reka-menu-content":``,"data-state":c(fn)(c(i).open.value),dir:c(s).dir.value,side:e.side,"side-offset":e.sideOffset,align:e.align,"align-offset":e.alignOffset,"avoid-collisions":e.avoidCollisions,"collision-boundary":e.collisionBoundary,"collision-padding":e.collisionPadding,"arrow-padding":e.arrowPadding,"prioritize-position":e.prioritizePosition,"position-strategy":e.positionStrategy,"update-position-strategy":e.updatePositionStrategy,sticky:e.sticky,"hide-when-detached":e.hideWhenDetached,reference:e.reference,onKeydown:j,onBlur:N,onPointermove:re,onPointerenter:P},{default:F(()=>[o(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`,`dir`,`side`,`side-offset`,`align`,`align-offset`,`avoid-collisions`,`collision-boundary`,`collision-padding`,`arrow-padding`,`prioritize-position`,`position-strategy`,`update-position-strategy`,`sticky`,`hide-when-detached`,`reference`])]),_:3},8,[`current-tab-stop-id`,`dir`,`loop`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),Vn=b({inheritAttrs:!1,__name:`MenuItemImpl`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,r=Rn(),{forwardRef:i,currentElement:a}=H(),{CollectionItem:s}=he(),d=u(!1),p=t(()=>d.value||a.value!=null&&r.highlightedElement.value===a.value);async function m(e){if(!e.defaultPrevented&&vn(e)){if(n.disabled)r.onItemLeave(e);else if(!r.onItemEnter(e)){let t=e.currentTarget;r.highlightedElement.value=t,[`INPUT`,`TEXTAREA`].includes(G()?.tagName||``)||t.focus({preventScroll:!0})}}}async function h(e){await O(),!e.defaultPrevented&&vn(e)&&r.highlightedElement.value===a.value&&!r.onItemLeave(e)&&r.highlightedElement.value===a.value&&(r.highlightedElement.value=void 0)}return(e,t)=>(f(),l(c(s),{value:{textValue:e.textValue}},{default:F(()=>[x(c(B),j({ref:c(i),role:`menuitem`,tabindex:`-1`},e.$attrs,{as:e.as,"as-child":e.asChild,"aria-disabled":e.disabled||void 0,"data-disabled":e.disabled?``:void 0,"data-highlighted":p.value?``:void 0,onPointermove:m,onPointerleave:h,onFocus:t[0]||=async t=>{await O(),!(t.defaultPrevented||e.disabled)&&(d.value=!0,c(r).highlightedElement.value=t.currentTarget)},onBlur:t[1]||=async e=>{await O(),!e.defaultPrevented&&(d.value=!1)}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`aria-disabled`,`data-disabled`,`data-highlighted`])]),_:3},8,[`value`]))}}),Hn=b({__name:`MenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{forwardRef:i,currentElement:a}=H(),s=Fn(),d=Rn(),p=u(!1);async function m(){let e=a.value;if(!n.disabled&&e){let e=new CustomEvent(an,{bubbles:!0,cancelable:!0});r(`select`,e),await O(),e.defaultPrevented?p.value=!1:s.onClose()}}return(e,t)=>(f(),l(Vn,j(n,{ref:c(i),onClick:m,onPointerdown:t[0]||=()=>{p.value=!0},onPointerup:t[1]||=async e=>{await O(),!e.defaultPrevented&&(p.value||e.currentTarget?.click())},onKeydown:t[2]||=async t=>{let n=c(d).searchRef.value!==``;e.disabled||n&&t.key===` `||c(on).includes(t.key)&&(t.currentTarget?.click(),t.preventDefault())}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16))}}),[Un,Wn]=U([`MenuCheckboxItem`,`MenuRadioItem`],`MenuItemIndicatorContext`),Gn=b({__name:`MenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=Un({modelValue:u(!1)});return(e,n)=>(f(),l(c(me),{present:e.forceMount||c(pn)(c(t).modelValue.value)||c(t).modelValue.value===!0},{default:F(()=>[x(c(B),{as:e.as,"as-child":e.asChild,"data-state":c(mn)(c(t).modelValue.value)},{default:F(()=>[o(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`])]),_:3},8,[`present`]))}}),Kn=b({__name:`MenuCheckboxItem`,props:{modelValue:{type:[Boolean,String],required:!1,default:!1},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`,`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=Oe(n,[`modelValue`]),a=L(i),s=q(n,`modelValue`,r);return Wn({modelValue:s}),(e,t)=>(f(),l(Hn,j({role:`menuitemcheckbox`},c(a),{"aria-checked":c(pn)(c(s))?`mixed`:c(s),"data-state":c(mn)(c(s)),onSelect:t[0]||=async e=>{r(`select`,e),c(pn)(c(s))?s.value=!0:s.value=!c(s)}}),{default:F(()=>[o(e.$slots,`default`,{modelValue:c(s)})]),_:3},16,[`aria-checked`,`data-state`]))}}),qn=b({__name:`MenuRootContentModal`,props:{loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=J(n,r),a=Nn(),{forwardRef:s,currentElement:u}=H();return Rt(u),(e,t)=>(f(),l(Bn,j(c(i),{ref:c(s),"trap-focus":c(a).open.value,"disable-outside-pointer-events":c(a).open.value,"disable-outside-scroll":!0,onDismiss:t[0]||=e=>c(a).onOpenChange(!1),onFocusOutside:t[1]||=se(e=>r(`focusOutside`,e),[`prevent`])}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`trap-focus`,`disable-outside-pointer-events`]))}}),Jn=b({__name:`MenuRootContentNonModal`,props:{loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t),r=Nn();return(e,t)=>(f(),l(Bn,j(c(n),{"trap-focus":!1,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,onDismiss:t[0]||=e=>c(r).onOpenChange(!1)}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16))}}),Yn=b({__name:`MenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t),r=Nn(),i=Fn();return(e,t)=>(f(),l(c(me),{present:e.forceMount||c(r).open.value},{default:F(()=>[c(i).modal.value?(f(),l(qn,N(j({key:0},{...e.$attrs,...c(n)})),{default:F(()=>[o(e.$slots,`default`)]),_:3},16)):(f(),l(Jn,N(j({key:1},{...e.$attrs,...c(n)})),{default:F(()=>[o(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),[Xn,Zn]=U(`MenuGroup`),Qn=b({__name:`MenuGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=V(void 0,`reka-menu-group`);return Zn({id:n}),(e,r)=>(f(),l(c(B),j({role:`group`},t,{"aria-labelledby":c(n)}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`aria-labelledby`]))}}),$n=b({__name:`MenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=Xn({id:``});return(e,r)=>(f(),l(c(B),j(t,{id:c(n).id||void 0}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`id`]))}}),er=b({__name:`MenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(t){let n=t;return(t,r)=>(f(),l(c(ge),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),[tr,nr]=U(`MenuRadioGroup`),rr=b({__name:`MenuRadioGroup`,props:{modelValue:{type:null,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,i=n,a=Oe(r,[`modelValue`]),s=L(a),u=q(r,`modelValue`,i);return nr({modelValue:u,onValueChange:e=>{u.value=e}}),(t,n)=>(f(),l(Qn,N(e(c(s))),{default:F(()=>[o(t.$slots,`default`,{modelValue:c(u)})]),_:3},16))}}),ir=b({__name:`MenuRadioItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:n}){let r=e,i=n,a=Oe(r,[`value`]),s=L(a),{value:u}=I(r),d=tr(),p=t(()=>d.modelValue.value===u?.value);return Wn({modelValue:p}),(e,t)=>(f(),l(Hn,j({role:`menuitemradio`},c(s),{"aria-checked":p.value,"data-state":c(mn)(p.value),onSelect:t[0]||=async e=>{i(`select`,e),c(d).onValueChange(c(u))}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`aria-checked`,`data-state`]))}}),ar=b({__name:`MenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(f(),l(c(B),j(t,{role:`separator`,"aria-orientation":`horizontal`}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16))}}),[or,sr]=U(`MenuSub`),cr=b({__name:`MenuSub`,props:{open:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=q(n,`open`,t,{defaultValue:!1,passive:n.open===void 0}),i=Nn(),a=u(),s=u();return P(e=>{i?.open.value===!1&&(r.value=!1),e(()=>r.value=!1)}),Pn({open:r,onOpenChange:e=>{r.value=e},content:s,onContentChange:e=>{s.value=e}}),sr({triggerId:``,contentId:``,trigger:a,onTriggerChange:e=>{a.value=e}}),(e,t)=>(f(),l(c(ce),null,{default:F(()=>[o(e.$slots,`default`)]),_:3}))}}),lr=b({__name:`MenuSubContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1,default:!0},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t),r=Nn(),i=Fn(),a=or(),s=Rn(),{forwardRef:u,currentElement:d}=H();return a.contentId||=V(void 0,`reka-menu-sub-content`),(e,t)=>(f(),l(c(me),{present:e.forceMount||c(r).open.value},{default:F(()=>[x(Bn,j(c(n),{id:c(a).contentId,ref:c(u),"aria-labelledby":c(a).triggerId,align:`start`,side:c(i).dir.value===`rtl`?`left`:`right`,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,"trap-focus":!1,onOpenAutoFocus:t[0]||=se(e=>{c(i).isUsingKeyboardRef.value&&c(d)?.focus()},[`prevent`]),onCloseAutoFocus:t[1]||=se(()=>{},[`prevent`]),onFocusOutside:t[2]||=e=>{if(e.defaultPrevented)return;let t=c(s).filterElement.value?.contains(e.target);e.target!==c(a).trigger.value&&!t&&c(r).onOpenChange(!1)},onEscapeKeyDown:t[3]||=e=>{c(i).onClose(),e.preventDefault()},onKeydown:t[4]||=e=>{let t=e.currentTarget?.contains(e.target),n=c(dn)[c(i).dir.value].includes(e.key);t&&n&&(c(r).onOpenChange(!1),c(s).filterElement.value?(c(s).filterElement.value.focus(),c(s).highlightedElement.value=c(a).trigger.value,c(a).trigger.value?.scrollIntoView({block:`nearest`})):c(a).trigger.value?.focus(),e.preventDefault())}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`,`side`])]),_:3},8,[`present`]))}}),ur=b({__name:`MenuSubTrigger`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=Nn(),r=Fn(),i=or(),s=Rn();M(n.open,e=>{e?s.activeSubmenuContext.value={onOpenChange:n.onOpenChange,trigger:i.trigger}:s.activeSubmenuContext.value?.trigger.value===i.trigger.value&&(s.activeSubmenuContext.value=void 0)});let d=u(null);i.triggerId||=V(void 0,`reka-menu-sub-trigger`);function p(){d.value&&window.clearTimeout(d.value),d.value=null}a(()=>{p()});function m(e){vn(e)&&(s.onItemEnter(e)||!t.disabled&&!n.open.value&&!d.value&&(s.onPointerGraceIntentChange(null),d.value=window.setTimeout(()=>{n.onOpenChange(!0),p()},100)))}async function h(e){if(!vn(e))return;p();let t=n.content.value?.getBoundingClientRect();if(t?.width){let r=n.content.value?.dataset.side,i=r===`right`,a=i?-5:5,o=t[i?`left`:`right`],c=t[i?`right`:`left`];s.onPointerGraceIntentChange({area:[{x:e.clientX+a,y:e.clientY},{x:o,y:t.top},{x:c,y:t.top},{x:c,y:t.bottom},{x:o,y:t.bottom}],side:r}),window.clearTimeout(s.pointerGraceTimerRef.value),s.pointerGraceTimerRef.value=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(e))return;s.onPointerGraceIntentChange(null)}}async function g(e){let i=s.searchRef.value!==``;t.disabled||i&&e.key===` `||un[r.dir.value].includes(e.key)&&(n.onOpenChange(!0),await O(),n.content.value?.focus(),e.preventDefault())}return(e,r)=>(f(),l(kn,{"as-child":``},{default:F(()=>[x(Vn,j(t,{id:c(i).triggerId,ref:e=>{e&&c(i)?.onTriggerChange(e?.$el)},"aria-haspopup":`menu`,"aria-expanded":c(n).open.value,"aria-controls":c(i).contentId,"data-state":c(fn)(c(n).open.value),onClick:r[0]||=async e=>{t.disabled||e.defaultPrevented||(e.currentTarget?.focus(),c(n).open.value||c(n).onOpenChange(!0))},onPointermove:m,onPointerleave:h,onKeydown:g}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`id`,`aria-expanded`,`aria-controls`,`data-state`])]),_:3}))}}),dr=b({__name:`ContextMenuArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(An),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),fr=b({__name:`ContextMenuCheckboxItem`,props:{modelValue:{type:[Boolean,String],required:!1},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`,`update:modelValue`],setup(t,{emit:n}){let r=t,i=z(n);return H(),(t,n)=>(f(),l(c(Kn),N(e({...r,...c(i)})),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),[pr,mr]=U(`ContextMenuRoot`),hr=b({inheritAttrs:!1,__name:`ContextMenuRoot`,props:{pressOpenDelay:{type:Number,required:!1,default:700},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,{dir:i,modal:a,pressOpenDelay:s}=I(n);H();let d=be(i),p=u(!1);return mr({open:p,onOpenChange:e=>{p.value=e},dir:d,modal:a,triggerElement:u(),pressOpenDelay:s}),M(p,e=>{r(`update:open`,e)}),(e,t)=>(f(),l(c(Ln),{open:p.value,"onUpdate:open":t[0]||=e=>p.value=e,dir:c(d),modal:c(a)},{default:F(()=>[o(e.$slots,`default`)]),_:3},8,[`open`,`dir`,`modal`]))}}),gr=b({__name:`ContextMenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},sideFlip:{type:Boolean,required:!1},alignOffset:{type:Number,required:!1,default:0},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1,default:!0},collisionBoundary:{type:null,required:!1,default:()=>[]},collisionPadding:{type:[Number,Object],required:!1,default:0},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1,default:`partial`},hideWhenDetached:{type:Boolean,required:!1,default:!1},positionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t);H();let r=pr(),i=u(!1);return(e,t)=>(f(),l(c(Yn),j(c(n),{side:`right`,"side-offset":2,align:`start`,"update-position-strategy":`always`,style:{"--reka-context-menu-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-context-menu-content-available-width":`var(--reka-popper-available-width)`,"--reka-context-menu-content-available-height":`var(--reka-popper-available-height)`,"--reka-context-menu-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-context-menu-trigger-height":`var(--reka-popper-anchor-height)`},onCloseAutoFocus:t[0]||=e=>{!e.defaultPrevented&&i.value&&e.preventDefault(),i.value=!1},onInteractOutside:t[1]||=e=>{e.detail.originalEvent.button===2&&e.target===c(r).triggerElement.value&&e.preventDefault(),!e.defaultPrevented&&!c(r).modal.value&&(i.value=!0)}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16))}}),_r=b({__name:`ContextMenuGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(Qn),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),vr=b({__name:`ContextMenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(t,{emit:n}){let r=t,i=z(n);return H(),(t,n)=>(f(),l(c(Hn),N(e({...r,...c(i)})),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),yr=b({__name:`ContextMenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(Gn),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),br=b({__name:`ContextMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c($n),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),xr=b({__name:`ContextMenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(t){let n=t;return(t,r)=>(f(),l(c(er),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Sr=b({__name:`ContextMenuRadioGroup`,props:{modelValue:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,i=z(n);return H(),(t,n)=>(f(),l(c(rr),N(e({...r,...c(i)})),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Cr=b({__name:`ContextMenuRadioItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(t,{emit:n}){let r=t,i=z(n);return H(),(t,n)=>(f(),l(c(ir),N(e({...r,...c(i)})),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),wr=b({__name:`ContextMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(ar),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Tr=b({__name:`ContextMenuSub`,props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;H();let i=q(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});return(e,t)=>(f(),l(c(cr),{open:c(i),"onUpdate:open":t[0]||=e=>ie(i)?i.value=e:null},{default:F(()=>[o(e.$slots,`default`,{open:c(i)})]),_:3},8,[`open`]))}}),Er=b({__name:`ContextMenuSubContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t);return H(),(e,t)=>(f(),l(c(lr),j(c(n),{style:{"--reka-context-menu-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-context-menu-content-available-width":`var(--reka-popper-available-width)`,"--reka-context-menu-content-available-height":`var(--reka-popper-available-height)`,"--reka-context-menu-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-context-menu-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16))}}),Dr=b({__name:`ContextMenuSubTrigger`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(ur),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}});function Or(e){return e.pointerType!==`mouse`}var kr=b({inheritAttrs:!1,__name:`ContextMenuTrigger`,props:{disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{disabled:n}=I(e),{forwardRef:r,currentElement:i}=H(),a=pr(),s=u({x:0,y:0}),l=t(()=>({getBoundingClientRect:()=>({width:0,height:0,left:s.value.x,right:s.value.x,top:s.value.y,bottom:s.value.y,...s.value})})),d=u(0);function m(){window.clearTimeout(d.value)}function h(e){s.value={x:e.clientX,y:e.clientY},a.onOpenChange(!0)}async function g(e){n.value||(await O(),e.defaultPrevented||(m(),h(e),e.preventDefault()))}async function _(e){n.value||(await O(),Or(e)&&!e.defaultPrevented&&(m(),d.value=window.setTimeout(h,a.pressOpenDelay.value,e)))}async function v(e){n.value||(await O(),Or(e)&&!e.defaultPrevented&&m())}return y(()=>{i.value&&(a.triggerElement.value=i.value)}),(e,t)=>(f(),p(w,null,[x(c(kn),{as:`template`,reference:l.value},null,8,[`reference`]),x(c(B),j({ref:c(r),as:e.as,"as-child":e.asChild,"data-state":c(a).open.value?`open`:`closed`,"data-disabled":c(n)?``:void 0,style:{WebkitTouchCallout:`none`,pointerEvents:`auto`}},e.$attrs,{onContextmenu:g,onPointerdown:_,onPointermove:v,onPointercancel:v,onPointerup:v}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`data-state`,`data-disabled`])],64))}}),Ar=b({__name:`DropdownMenuArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(An),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),jr=b({__name:`DropdownMenuCheckboxItem`,props:{modelValue:{type:[Boolean,String],required:!1},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`,`update:modelValue`],setup(t,{emit:n}){let r=t,i=z(n);return H(),(t,n)=>(f(),l(c(Kn),N(e({...r,...c(i)})),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),[Mr,Nr]=U(`DropdownMenuRoot`),Pr=b({__name:`DropdownMenuRoot`,props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0},dir:{type:String,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t;H();let i=q(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),a=u(),{modal:s,dir:d}=I(n),p=be(d);return Nr({open:i,onOpenChange:e=>{i.value=e},onOpenToggle:()=>{i.value=!i.value},triggerId:``,triggerElement:a,contentId:``,modal:s,dir:p}),(e,t)=>(f(),l(c(Ln),{open:c(i),"onUpdate:open":t[0]||=e=>ie(i)?i.value=e:null,dir:c(p),modal:c(s)},{default:F(()=>[o(e.$slots,`default`,{open:c(i)})]),_:3},8,[`open`,`dir`,`modal`]))}}),Fr=b({__name:`DropdownMenuContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t);H();let r=Mr(),i=u(!1);function a(e){e.defaultPrevented||(i.value||setTimeout(()=>{r.triggerElement.value?.focus()},0),i.value=!1,e.preventDefault())}return r.contentId||=V(void 0,`reka-dropdown-menu-content`),(e,t)=>(f(),l(c(Yn),j(c(n),{id:c(r).contentId,"aria-labelledby":c(r)?.triggerId,style:{"--reka-dropdown-menu-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-dropdown-menu-content-available-width":`var(--reka-popper-available-width)`,"--reka-dropdown-menu-content-available-height":`var(--reka-popper-available-height)`,"--reka-dropdown-menu-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-dropdown-menu-trigger-height":`var(--reka-popper-anchor-height)`},onCloseAutoFocus:a,onInteractOutside:t[0]||=e=>{if(e.defaultPrevented)return;let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,a=t.button===2||n;(!c(r).modal.value||a)&&(i.value=!0),c(r).triggerElement.value?.contains(e.target)&&e.preventDefault()}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`]))}}),Ir=b({__name:`DropdownMenuFilter`,props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`input`}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=e,i=q(r,`modelValue`,n,{defaultValue:``,passive:r.modelValue===void 0}),s=Fn(),d=Rn(),p=or(null);M(i,e=>{d.searchRef.value=e??``},{immediate:!0});let{primitiveElement:m,currentElement:h}=ue(),g=t(()=>r.disabled||!1),_=u();ee(()=>_.value=d.highlightedElement.value?.id),y(()=>{d.onFilterElementChange(h.value),setTimeout(()=>{r.autoFocus&&(!p||s.isUsingKeyboardRef.value)&&h.value?.focus()},1)}),a(()=>{d.onFilterElementChange(void 0),d.searchRef.value=``});let{isComposing:v,shouldDeferInput:b,handleCompositionStart:x,handleCompositionUpdate:S,handleCompositionEnd:C}=wt(e=>{let t=e.target;t&&(i.value=t.value,d.searchRef.value=t.value)});function w(e){if(g.value||b.value)return;let t=e.target;i.value=t.value,d.searchRef.value=t.value}function te(e){if(!g.value){if(v.value){e.stopPropagation();return}[`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key)?(e.preventDefault(),d.onKeydownNavigation(e)):e.key===`Enter`?(e.preventDefault(),d.onKeydownEnter(e)):e.key===`Escape`&&i.value&&(e.stopPropagation(),i.value=``,d.searchRef.value=``)}}return(e,t)=>(f(),l(c(B),{ref_key:`primitiveElement`,ref:m,as:e.as,"as-child":e.asChild,value:c(i),disabled:g.value?``:void 0,"data-disabled":g.value?``:void 0,"aria-disabled":g.value?!0:void 0,"aria-activedescendant":_.value,type:`text`,role:`searchbox`,onInput:w,onKeydown:te,onCompositionstart:c(x),onCompositionupdate:c(S),onCompositionend:c(C)},{default:F(()=>[o(e.$slots,`default`,{modelValue:c(i)})]),_:3},8,[`as`,`as-child`,`value`,`disabled`,`data-disabled`,`aria-disabled`,`aria-activedescendant`,`onCompositionstart`,`onCompositionupdate`,`onCompositionend`]))}}),Lr=b({__name:`DropdownMenuGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(Qn),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Rr=b({__name:`DropdownMenuItem`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(t,{emit:n}){let r=t,i=z(n);return H(),(t,n)=>(f(),l(c(Hn),N(e({...r,...c(i)})),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),zr=b({__name:`DropdownMenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(Gn),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Br=b({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c($n),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Vr=b({__name:`DropdownMenuPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(t){let n=t;return(t,r)=>(f(),l(c(er),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Hr=b({__name:`DropdownMenuRadioGroup`,props:{modelValue:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,i=z(n);return H(),(t,n)=>(f(),l(c(rr),N(e({...r,...c(i)})),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Ur=b({__name:`DropdownMenuRadioItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(t,{emit:n}){let r=J(t,n);return H(),(t,n)=>(f(),l(c(ir),N(e(c(r))),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Wr=b({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(ar),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Gr=b({__name:`DropdownMenuSub`,props:{defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=q(n,`open`,t,{passive:n.open===void 0,defaultValue:n.defaultOpen??!1});return H(),(e,t)=>(f(),l(c(cr),{open:c(r),"onUpdate:open":t[0]||=e=>ie(r)?r.value=e:null},{default:F(()=>[o(e.$slots,`default`,{open:c(r)})]),_:3},8,[`open`]))}}),Kr=b({__name:`DropdownMenuSubContent`,props:{forceMount:{type:Boolean,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=J(e,t);return H(),(e,t)=>(f(),l(c(lr),j(c(n),{style:{"--reka-dropdown-menu-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-dropdown-menu-content-available-width":`var(--reka-popper-available-width)`,"--reka-dropdown-menu-content-available-height":`var(--reka-popper-available-height)`,"--reka-dropdown-menu-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-dropdown-menu-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:F(()=>[o(e.$slots,`default`)]),_:3},16))}}),qr=b({__name:`DropdownMenuSubTrigger`,props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return H(),(t,r)=>(f(),l(c(ur),N(e(n)),{default:F(()=>[o(t.$slots,`default`)]),_:3},16))}}),Jr=b({__name:`DropdownMenuTrigger`,props:{disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Mr(),{forwardRef:r,currentElement:i}=H();return y(()=>{n.triggerElement=i}),n.triggerId||=V(void 0,`reka-dropdown-menu-trigger`),(e,i)=>(f(),l(c(kn),{"as-child":``},{default:F(()=>[x(c(B),{id:c(n).triggerId,ref:c(r),type:e.as===`button`?`button`:void 0,"as-child":t.asChild,as:e.as,"aria-haspopup":`menu`,"aria-expanded":c(n).open.value,"aria-controls":c(n).open.value?c(n).contentId:void 0,"data-disabled":e.disabled?``:void 0,disabled:e.disabled,"data-state":c(n).open.value?`open`:`closed`,onClick:i[0]||=async t=>{!e.disabled&&t.button===0&&t.ctrlKey===!1&&(c(n)?.onOpenToggle(),await O(),c(n).open.value&&t.preventDefault())},onKeydown:i[1]||=ae(t=>{e.disabled||([`Enter`,` `].includes(t.key)&&c(n).onOpenToggle(),t.key===`ArrowDown`&&c(n).onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(t.key)&&t.preventDefault())},[`enter`,`space`,`arrow-down`])},{default:F(()=>[o(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as-child`,`as`,`aria-expanded`,`aria-controls`,`data-disabled`,`disabled`,`data-state`])]),_:3}))}}),Q={Root:hr,Trigger:kr,Portal:xr,Content:gr,Arrow:dr,Item:vr,Group:_r,Separator:wr,CheckboxItem:fr,ItemIndicator:yr,Label:br,RadioGroup:Sr,RadioItem:Cr,Sub:Tr,SubContent:Er,SubTrigger:Dr},$={Root:Pr,Trigger:Jr,Portal:Vr,Content:Fr,Arrow:Ar,Item:Rr,Group:Lr,Separator:Wr,CheckboxItem:jr,ItemIndicator:zr,Label:Br,RadioGroup:Hr,RadioItem:Ur,Sub:Gr,SubContent:Kr,SubTrigger:qr,Filter:Ir};function Yr(){let{contains:e,startsWith:t}=Tt({sensitivity:`base`});function n(n,r){return e(n,r)?e(r,n)?0:t(n,r)?1:2:null}function r(e,t,r){if(typeof e!=`object`||!e)return n(String(e),t);let i=null;for(let a of r){let r=K(e,a);if(r==null)continue;let o=Array.isArray(r)?r.map(String):[String(r)];for(let e of o){let r=n(e,t);if(r!==null&&(i===null||r<i)&&(i=r),i===0)return 0}}return i}function i(e,t,n){if(!t)return e;let i=[];for(let a of e){let e=r(a,t,n);e!==null&&i.push({item:a,score:e})}return i.sort((e,t)=>e.score-t.score),i.map(({item:e})=>e)}function a(e,t,n){return t?e.map(e=>{let i=[];for(let a of e){if(a==null)continue;if(n.isStructural?.(a)){i.push({item:a,score:-1});continue}let e=r(a,t,n.fields);e!==null&&i.push({item:a,score:e})}return i.sort((e,t)=>e.score-t.score),i.map(({item:e})=>e)}).filter(e=>e.some(e=>!n.isStructural?.(e))):e}return{score:n,scoreItem:r,filter:i,filterGroups:a}}function Xr(e){return(t,n)=>Zr(t,n,c(e))}function Zr(e,t,n){return K(n,`messages.${e}`,e).replace(/\{(\w+)\}/g,(e,n)=>`${t?.[n]??`{${n}}`}`)}function Qr(e){return{lang:t(()=>c(e).name),code:t(()=>c(e).code),dir:t(()=>c(e).dir),locale:ie(e)?e:u(e),t:Xr(e)}}function $r(e){return $e(e,{dir:`ltr`})}var ei=$r({name:`English`,code:`en`,messages:{alert:{close:`Close`},authForm:{hidePassword:`Hide password`,showPassword:`Show password`,submit:`Continue`},banner:{close:`Close`},calendar:{nextMonth:`Next month`,nextYear:`Next year`,prevMonth:`Previous month`,prevYear:`Previous year`},carousel:{dots:`Choose slide to display`,goto:`Go to slide {slide}`,next:`Next`,prev:`Prev`},chatPrompt:{placeholder:`Type your message here…`},chatPromptSubmit:{label:`Send prompt`},colorMode:{dark:`Dark`,light:`Light`,switchToDark:`Switch to dark mode`,switchToLight:`Switch to light mode`,system:`System`},commandPalette:{back:`Back`,close:`Close`,noData:`No data`,noMatch:`No matching data`,placeholder:`Type a command or search…`},contentSearch:{links:`Links`,search:`Results`,theme:`Theme`},contentSearchButton:{label:`Search…`},contentToc:{title:`On this page`},dropdownMenu:{noMatch:`No matching data`,search:`Search…`},dashboardSearch:{theme:`Theme`},dashboardSearchButton:{label:`Search…`},dashboardSidebarCollapse:{collapse:`Collapse sidebar`,expand:`Expand sidebar`},dashboardSidebarToggle:{close:`Close sidebar`,open:`Open sidebar`},drawer:{close:`Close`},error:{clear:`Back to home`},fileUpload:{removeFile:`Remove {filename}`},header:{close:`Close menu`,open:`Open menu`},inputMenu:{create:`Create "{label}"`,noData:`No data`,noMatch:`No matching data`},inputNumber:{decrement:`Decrement`,increment:`Increment`},listbox:{noData:`No data`,noMatch:`No matching data`,search:`Search…`},modal:{close:`Close`},pricingTable:{caption:`Pricing plan comparison`},prose:{codeCollapse:{closeText:`Collapse`,name:`code`,openText:`Expand`},collapsible:{closeText:`Hide`,name:`properties`,openText:`Show`},pre:{copy:`Copy code to clipboard`},prompt:{copy:`Copy prompt`,openIn:`Open in {name}`}},chatReasoning:{thinking:`Thinking…`,thought:`Thought`,thoughtFor:`Thought for {duration}`},sidebar:{close:`Close`,toggle:`Toggle`},selectMenu:{create:`Create "{label}"`,noData:`No data`,noMatch:`No matching data`,search:`Search…`},slideover:{close:`Close`},table:{noData:`No data`},toast:{close:`Close`}}}),ti=Symbol.for(`nuxt-ui.locale-context`),ni=Ee(e=>{let n=e||_(te(ti,ei));return Qr(t(()=>n.value||ei))}),ri={__name:`UDropdownMenuContent`,props:{items:{type:null,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},sub:{type:Boolean,required:!1},labelKey:{type:null,required:!0},descriptionKey:{type:null,required:!0},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0},size:{type:null,required:!1},filter:{type:[Boolean,Object],required:!1},filterFields:{type:Array,required:!1},ignoreFilter:{type:Boolean,required:!1},searchTerm:{type:String,required:!1},class:{type:null,required:!1},ui:{type:null,required:!0},uiOverride:{type:null,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1}},emits:[`update:searchTerm`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(n,{emit:i}){let a=n,s=i,h=C(),{t:y,dir:b}=ni(),S=et(),{filterGroups:ee}=Yr(),te=u(``),E=t({get:()=>a.searchTerm??te.value,set:e=>{te.value=e,s(`update:searchTerm`,e)}}),O=_(()=>$e(a.filter,{placeholder:y(`dropdownMenu.search`),variant:`none`})),A=je(_(()=>a.portal)),ne=J(Oe(a,`sub`,`items`,`portal`,`labelKey`,`descriptionKey`,`checkedIcon`,`loadingIcon`,`externalIcon`,`size`,`filter`,`filterFields`,`ignoreFilter`,`searchTerm`,`class`,`ui`,`uiOverride`),s),M=()=>Xe(h,[`default`]),[re,P]=We(),ie=t(()=>b.value===`rtl`?S.ui.icons.chevronLeft:S.ui.icons.chevronRight),I=t(()=>a.items?.length?Pe(a.items)?a.items:[a.items]:[]),ae=e=>!!e.type&&[`label`,`separator`].includes(e.type),oe=t(()=>{if(!a.filter||a.ignoreFilter||!E.value)return I.value;let e=Array.isArray(a.filterFields)&&a.filterFields.length?a.filterFields:[a.labelKey];return ee(I.value,E.value,{fields:e,isStructural:ae})}),L=t(()=>oe.value.some(e=>e.some(e=>!ae(e))));return(t,i)=>(f(),p(w,null,[x(c(re),null,{default:F(({item:e,active:i,index:s})=>[o(t.$slots,e.slot||`item`,{item:e,index:s,ui:n.ui},()=>[o(t.$slots,e.slot?`${e.slot}-leading`:`item-leading`,{item:e,active:i,index:s,ui:n.ui},()=>[e.loading?(f(),l(W,{key:0,name:n.loadingIcon||c(S).ui.icons.loading,"data-slot":`itemLeadingIcon`,class:T(n.ui.itemLeadingIcon({class:[n.uiOverride?.itemLeadingIcon,e.ui?.itemLeadingIcon],color:e?.color,loading:!0}))},null,8,[`name`,`class`])):e.icon?(f(),l(W,{key:1,name:e.icon,"data-slot":`itemLeadingIcon`,class:T(n.ui.itemLeadingIcon({class:[n.uiOverride?.itemLeadingIcon,e.ui?.itemLeadingIcon],color:e?.color,active:i}))},null,8,[`name`,`class`])):e.avatar?(f(),l(Fe,j({key:2,size:e.ui?.itemLeadingAvatarSize||n.uiOverride?.itemLeadingAvatarSize||n.ui.itemLeadingAvatarSize()},e.avatar,{"data-slot":`itemLeadingAvatar`,class:n.ui.itemLeadingAvatar({class:[n.uiOverride?.itemLeadingAvatar,e.ui?.itemLeadingAvatar],active:i})}),null,16,[`size`,`class`])):d(``,!0)]),c(K)(e,a.labelKey)||h[e.slot?`${e.slot}-label`:`item-label`]||c(K)(e,a.descriptionKey)||h[e.slot?`${e.slot}-description`:`item-description`]?(f(),p(`span`,{key:0,"data-slot":`itemWrapper`,class:T(n.ui.itemWrapper({class:[n.uiOverride?.itemWrapper,e.ui?.itemWrapper]}))},[k(`span`,{"data-slot":`itemLabel`,class:T(n.ui.itemLabel({class:[n.uiOverride?.itemLabel,e.ui?.itemLabel],active:i}))},[o(t.$slots,e.slot?`${e.slot}-label`:`item-label`,{item:e,active:i,index:s},()=>[r(D(c(K)(e,a.labelKey)),1)]),e.target===`_blank`&&n.externalIcon!==!1?(f(),l(W,{key:0,name:typeof n.externalIcon==`string`?n.externalIcon:c(S).ui.icons.external,"data-slot":`itemLabelExternalIcon`,class:T(n.ui.itemLabelExternalIcon({class:[n.uiOverride?.itemLabelExternalIcon,e.ui?.itemLabelExternalIcon],color:e?.color,active:i}))},null,8,[`name`,`class`])):d(``,!0)],2),c(K)(e,a.descriptionKey)||h[e.slot?`${e.slot}-description`:`item-description`]?(f(),p(`span`,{key:0,"data-slot":`itemDescription`,class:T(n.ui.itemDescription({class:[n.uiOverride?.itemDescription,e.ui?.itemDescription]}))},[o(t.$slots,e.slot?`${e.slot}-description`:`item-description`,{item:e,active:i,index:s},()=>[r(D(c(K)(e,a.descriptionKey)),1)])],2)):d(``,!0)],2)):d(``,!0),k(`span`,{"data-slot":`itemTrailing`,class:T(n.ui.itemTrailing({class:[n.uiOverride?.itemTrailing,e.ui?.itemTrailing]}))},[o(t.$slots,e.slot?`${e.slot}-trailing`:`item-trailing`,{item:e,active:i,index:s,ui:n.ui},()=>[e.children?.length?(f(),l(W,{key:0,name:ie.value,"data-slot":`itemTrailingIcon`,class:T(n.ui.itemTrailingIcon({class:[n.uiOverride?.itemTrailingIcon,e.ui?.itemTrailingIcon],color:e?.color,active:i}))},null,8,[`name`,`class`])):e.kbds?.length?(f(),p(`span`,{key:1,"data-slot":`itemTrailingKbds`,class:T(n.ui.itemTrailingKbds({class:[n.uiOverride?.itemTrailingKbds,e.ui?.itemTrailingKbds]}))},[(f(!0),p(w,null,m(e.kbds,(t,r)=>(f(),l(ve,j({key:r,size:e.ui?.itemTrailingKbdsSize||n.uiOverride?.itemTrailingKbdsSize||n.ui.itemTrailingKbdsSize()},{ref_for:!0},typeof t==`string`?{value:t}:t),null,16,[`size`]))),128))],2)):d(``,!0)]),x(c($).ItemIndicator,{"as-child":``},{default:F(()=>[x(W,{name:n.checkedIcon||c(S).ui.icons.check,"data-slot":`itemTrailingIcon`,class:T(n.ui.itemTrailingIcon({class:[n.uiOverride?.itemTrailingIcon,e.ui?.itemTrailingIcon],color:e?.color}))},null,8,[`name`,`class`])]),_:2},1024)],2)])]),_:3}),x(c($).Portal,N(e(c(A))),{default:F(()=>[x(c(Re),null,{default:F(()=>[(f(),l(v(n.sub?c($).SubContent:c($).Content),j({"data-slot":`content`,class:n.ui.content({class:[n.uiOverride?.content,a.class]})},c(ne)),{default:F(()=>[n.filter?(f(),l(c($).Filter,{key:0,modelValue:E.value,"onUpdate:modelValue":i[1]||=e=>E.value=e,"as-child":``},{default:F(()=>[x(Se,j({autofocus:``,autocomplete:`off`,size:n.size},O.value,{"data-slot":`input`,class:n.ui.input({class:n.uiOverride?.input}),onChange:i[0]||=se(()=>{},[`stop`])}),null,16,[`size`,`class`])]),_:1},8,[`modelValue`])):d(``,!0),o(t.$slots,`content-top`,{sub:n.sub??!1}),!E.value||L.value?(f(),p(`div`,{key:1,role:`presentation`,"data-slot":`viewport`,class:T(n.ui.viewport({class:n.uiOverride?.viewport}))},[(f(!0),p(w,null,m(oe.value,(e,r)=>(f(),l(c($).Group,{key:`group-${r}`,"data-slot":`group`,class:T(n.ui.group({class:n.uiOverride?.group}))},{default:F(()=>[(f(!0),p(w,null,m(e,(e,i)=>(f(),p(w,{key:`group-${r}-${i}`},[e.type===`label`?(f(),l(c($).Label,{key:0,"data-slot":`label`,class:T(n.ui.label({class:[n.uiOverride?.label,e.ui?.label,e.class]}))},{default:F(()=>[x(c(P),{item:e,index:i},null,8,[`item`,`index`])]),_:2},1032,[`class`])):e.type===`separator`?(f(),l(c($).Separator,{key:1,"data-slot":`separator`,class:T(n.ui.separator({class:[n.uiOverride?.separator,e.ui?.separator,e.class]}))},null,8,[`class`])):e?.children?.length?(f(),l(c($).Sub,{key:2,open:e.open,"default-open":e.defaultOpen},{default:F(()=>[x(c($).SubTrigger,{as:`button`,type:`button`,disabled:e.disabled,"text-value":c(K)(e,a.labelKey),"data-slot":`item`,class:T(n.ui.item({class:[n.uiOverride?.item,e.ui?.item,e.class],color:e?.color}))},{default:F(()=>[x(c(P),{item:e,index:i},null,8,[`item`,`index`])]),_:2},1032,[`disabled`,`text-value`,`class`]),x(ri,j({sub:``,class:e.ui?.content,ui:n.ui,"ui-override":n.uiOverride,portal:n.portal,items:e.children,align:`start`,"align-offset":-4,"side-offset":3,"label-key":n.labelKey,"description-key":n.descriptionKey,"checked-icon":n.checkedIcon,"loading-icon":n.loadingIcon,"external-icon":n.externalIcon,size:n.size,filter:e.filter,"filter-fields":e.filterFields||n.filterFields,"ignore-filter":e.ignoreFilter??n.ignoreFilter},{ref_for:!0},e.content),g({_:2},[m(M(),(e,n)=>({name:n,fn:F(e=>[o(t.$slots,n,j({ref_for:!0},e))])}))]),1040,[`class`,`ui`,`ui-override`,`portal`,`items`,`label-key`,`description-key`,`checked-icon`,`loading-icon`,`external-icon`,`size`,`filter`,`filter-fields`,`ignore-filter`])]),_:2},1032,[`open`,`default-open`])):e.type===`checkbox`?(f(),l(c($).CheckboxItem,{key:3,"model-value":e.checked,disabled:e.disabled,"text-value":c(K)(e,a.labelKey),"data-slot":`item`,class:T(n.ui.item({class:[n.uiOverride?.item,e.ui?.item,e.class],color:e?.color})),"onUpdate:modelValue":e.onUpdateChecked,onSelect:e.onSelect},{default:F(()=>[x(c(P),{item:e,index:i},null,8,[`item`,`index`])]),_:2},1032,[`model-value`,`disabled`,`text-value`,`class`,`onUpdate:modelValue`,`onSelect`])):(f(),l(Be,j({key:4,ref_for:!0},c(Ve)(e),{custom:``}),{default:F(({active:t,...r})=>[x(c($).Item,{"as-child":``,disabled:e.disabled,"text-value":c(K)(e,a.labelKey),onSelect:e.onSelect},{default:F(()=>[x(Ge,j({ref_for:!0},r,{"data-slot":`item`,class:n.ui.item({class:[n.uiOverride?.item,e.ui?.item,e.class],color:e?.color,active:t})}),{default:F(()=>[x(c(P),{item:e,active:t,index:i},null,8,[`item`,`active`,`index`])]),_:2},1040,[`class`])]),_:2},1032,[`disabled`,`text-value`,`onSelect`])]),_:2},1040))],64))),128))]),_:2},1032,[`class`]))),128))],2)):d(``,!0),E.value&&!L.value?(f(),p(`div`,{key:2,"data-slot":`empty`,class:T(n.ui.empty({class:n.uiOverride?.empty}))},[o(t.$slots,`empty`,{searchTerm:E.value},()=>[r(D(c(y)(`dropdownMenu.noMatch`,{searchTerm:E.value})),1)])],2)):d(``,!0),o(t.$slots,`default`),o(t.$slots,`content-bottom`,{sub:n.sub??!1})]),_:3},16,[`class`]))]),_:3})]),_:3},16)],64))}},ii={slots:{content:`min-w-32 max-h-(--reka-dropdown-menu-content-available-height) bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)] origin-(--reka-dropdown-menu-content-transform-origin) flex flex-col`,input:`border-b border-default`,empty:`text-center text-muted`,viewport:`relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1`,arrow:`fill-bg stroke-default`,group:`p-1 isolate`,label:`w-full flex items-center font-semibold text-highlighted`,separator:`-mx-1 my-1 h-px bg-border`,item:`group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75`,itemLeadingIcon:`shrink-0`,itemLeadingAvatar:`shrink-0`,itemLeadingAvatarSize:``,itemTrailing:`ms-auto inline-flex gap-1.5 items-center`,itemTrailingIcon:`shrink-0`,itemTrailingKbds:`hidden lg:inline-flex items-center shrink-0`,itemTrailingKbdsSize:``,itemWrapper:`flex-1 flex flex-col text-start min-w-0`,itemLabel:`truncate`,itemDescription:`truncate text-muted`,itemLabelExternalIcon:`inline-block size-3 align-top text-dimmed`},variants:{color:{primary:``,neutral:``,success:``,warning:``,error:``,info:``},active:{true:{item:`text-highlighted before:bg-elevated`,itemLeadingIcon:`text-default`},false:{item:[`text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50`,`transition-colors before:transition-colors`],itemLeadingIcon:[`text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default`,`transition-colors`]}},loading:{true:{itemLeadingIcon:`animate-spin`}},size:{xs:{label:`p-1 text-xs gap-1`,item:`p-1 text-xs gap-1`,empty:`p-2 text-xs`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemTrailingIcon:`size-4`,itemTrailingKbds:`gap-0.5`,itemTrailingKbdsSize:`sm`},sm:{label:`p-1.5 text-xs gap-1.5`,item:`p-1.5 text-xs gap-1.5`,empty:`p-2.5 text-xs`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemTrailingIcon:`size-4`,itemTrailingKbds:`gap-0.5`,itemTrailingKbdsSize:`sm`},md:{label:`p-1.5 text-sm gap-1.5`,item:`p-1.5 text-sm gap-1.5`,empty:`p-2.5 text-sm`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemTrailingIcon:`size-5`,itemTrailingKbds:`gap-0.5`,itemTrailingKbdsSize:`md`},lg:{label:`p-2 text-sm gap-2`,item:`p-2 text-sm gap-2`,empty:`p-3 text-sm`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemTrailingIcon:`size-5`,itemTrailingKbds:`gap-1`,itemTrailingKbdsSize:`md`},xl:{label:`p-2 text-base gap-2`,item:`p-2 text-base gap-2`,empty:`p-3 text-base`,itemLeadingIcon:`size-6`,itemLeadingAvatarSize:`xs`,itemTrailingIcon:`size-6`,itemTrailingKbds:`gap-1`,itemTrailingKbdsSize:`lg`}}},compoundVariants:[{color:`primary`,active:!1,class:{item:`text-primary data-highlighted:text-primary data-highlighted:before:bg-primary/10 data-[state=open]:before:bg-primary/10`,itemLeadingIcon:`text-primary/75 group-data-highlighted:text-primary group-data-[state=open]:text-primary`}},{color:`neutral`,active:!1,class:{item:`text-neutral data-highlighted:text-neutral data-highlighted:before:bg-neutral/10 data-[state=open]:before:bg-neutral/10`,itemLeadingIcon:`text-neutral/75 group-data-highlighted:text-neutral group-data-[state=open]:text-neutral`}},{color:`success`,active:!1,class:{item:`text-success data-highlighted:text-success data-highlighted:before:bg-success/10 data-[state=open]:before:bg-success/10`,itemLeadingIcon:`text-success/75 group-data-highlighted:text-success group-data-[state=open]:text-success`}},{color:`warning`,active:!1,class:{item:`text-warning data-highlighted:text-warning data-highlighted:before:bg-warning/10 data-[state=open]:before:bg-warning/10`,itemLeadingIcon:`text-warning/75 group-data-highlighted:text-warning group-data-[state=open]:text-warning`}},{color:`error`,active:!1,class:{item:`text-error data-highlighted:text-error data-highlighted:before:bg-error/10 data-[state=open]:before:bg-error/10`,itemLeadingIcon:`text-error/75 group-data-highlighted:text-error group-data-[state=open]:text-error`}},{color:`info`,active:!1,class:{item:`text-info data-highlighted:text-info data-highlighted:before:bg-info/10 data-[state=open]:before:bg-info/10`,itemLeadingIcon:`text-info/75 group-data-highlighted:text-info group-data-[state=open]:text-info`}},{color:`primary`,active:!0,class:{item:`text-primary before:bg-primary/10`,itemLeadingIcon:`text-primary`}},{color:`neutral`,active:!0,class:{item:`text-neutral before:bg-neutral/10`,itemLeadingIcon:`text-neutral`}},{color:`success`,active:!0,class:{item:`text-success before:bg-success/10`,itemLeadingIcon:`text-success`}},{color:`warning`,active:!0,class:{item:`text-warning before:bg-warning/10`,itemLeadingIcon:`text-warning`}},{color:`error`,active:!0,class:{item:`text-error before:bg-error/10`,itemLeadingIcon:`text-error`}},{color:`info`,active:!0,class:{item:`text-info before:bg-info/10`,itemLeadingIcon:`text-info`}}],defaultVariants:{size:`md`}},ai={__name:`UDropdownMenu`,props:re({size:{type:null,required:!1},items:{type:null,required:!1},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},labelKey:{type:null,required:!1,default:`label`},descriptionKey:{type:null,required:!1,default:`description`},filter:{type:[Boolean,Object],required:!1,default:!1},filterFields:{type:Array,required:!1},ignoreFilter:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},{searchTerm:{type:String,default:``},searchTermModifiers:{}}),emits:re([`update:open`],[`update:searchTerm`]),setup(n,{emit:r}){let i=n,a=r,s=C(),u=S(n,`searchTerm`,{type:String,default:``}),p=Ue(`dropdownMenu`,i),h=et(),v=Me(ze(p,`defaultOpen`,`open`,`modal`),a),y=_(()=>$e(p.content,{side:`bottom`,sideOffset:8,collisionPadding:8})),b=_(()=>$e(p.arrow,{rounded:!0})),ee=()=>Xe(s,[`default`]),w=t(()=>Ke({extend:ii,...h.ui?.dropdownMenu||{}})({size:p.size}));return(t,n)=>(f(),l(c(Pr),N(e(c(v))),{default:F(({open:r})=>[s.default?(f(),l(c(Jr),{key:0,"as-child":``,class:T(c(p).class),disabled:c(p).disabled},{default:F(()=>[o(t.$slots,`default`,{open:r})]),_:2},1032,[`class`,`disabled`])):d(``,!0),x(ri,j({"search-term":u.value,"onUpdate:searchTerm":n[0]||=e=>u.value=e,class:w.value.content({class:[!s.default&&c(p).class,c(p).ui?.content]}),ui:w.value,"ui-override":c(p).ui},y.value,{items:c(p).items,portal:c(p).portal,"label-key":c(p).labelKey,"description-key":c(p).descriptionKey,"checked-icon":c(p).checkedIcon,"loading-icon":c(p).loadingIcon,"external-icon":c(p).externalIcon,size:c(p).size,filter:c(p).filter,"filter-fields":c(p).filterFields,"ignore-filter":c(p).ignoreFilter}),g({default:F(()=>[c(p).arrow?(f(),l(c(Ar),j({key:0},b.value,{"data-slot":`arrow`,class:w.value.arrow({class:c(p).ui?.arrow})}),null,16,[`class`])):d(``,!0)]),_:2},[m(ee(),(n,r)=>({name:r,fn:F(n=>[o(t.$slots,r,N(e(n)))])}))]),1040,[`search-term`,`class`,`ui`,`ui-override`,`items`,`portal`,`label-key`,`description-key`,`checked-icon`,`loading-icon`,`external-icon`,`size`,`filter`,`filter-fields`,`ignore-filter`])]),_:3},16))}},oi={class:`offline-note`,role:`status`},si={class:`offline-note-text`},ci=Object.assign(b({__name:`OfflineNote`,props:{label:{},at:{},dateStyle:{}},setup(e){let n=e,r=t(()=>n.label?n.at?`${n.label} · ${new Date(n.at).toLocaleString(ut,{dateStyle:n.dateStyle||`short`,timeStyle:`short`})}`:n.label:rt.value?Y(`Lost connection to ${rt.value} — reconnecting…`,`Connexion à ${rt.value} perdue — reconnexion…`):Y(`Lost connection to the server — reconnecting…`,`Connexion au serveur perdue — reconnexion…`));return(e,t)=>{let n=W;return f(),p(`div`,oi,[x(n,{name:`i-lucide-wifi-off`}),k(`span`,si,D(c(r)),1),(`netDown`in e?e.netDown:c(it))&&!(`locked`in e?e.locked:c(nt))?(f(),p(`button`,{key:0,type:`button`,class:`offline-retry`,onClick:t[0]||=(...t)=>(`retryEvents`in e?e.retryEvents:c(ct))&&(`retryEvents`in e?e.retryEvents:c(ct))(...t)},D((`t`in e?e.t:c(tt))(`Retry`)),1)):d(``,!0)])}}}),{__name:`OfflineNote`}),li={claude:`i-herdr-claude-code`,codex:`i-herdr-codex`,omp:`i-herdr-omp`,gemini:`i-lucide-sparkles`,opencode:`i-lucide-code-xml`,kimi:`i-lucide-moon-star`},ui=e=>e&&Object.hasOwn(li,e)?li[e]:null,di={__name:`UContextMenuContent`,props:{items:{type:null,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},sub:{type:Boolean,required:!1},labelKey:{type:null,required:!0},descriptionKey:{type:null,required:!0},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0},class:{type:null,required:!1},ui:{type:null,required:!0},uiOverride:{type:null,required:!1},loop:{type:Boolean,required:!1},memoDependencies:{type:Array,required:!1},sideFlip:{type:Boolean,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`closeAutoFocus`],setup(n,{emit:i}){let a=n,s=i,u=C(),{dir:h}=ni(),y=et(),b=je(_(()=>a.portal)),S=J(Oe(a,`sub`,`items`,`portal`,`labelKey`,`descriptionKey`,`checkedIcon`,`loadingIcon`,`externalIcon`,`class`,`ui`,`uiOverride`),s),ee=()=>Xe(u,[`default`]),[te,E]=We(),O=t(()=>h.value===`rtl`?y.ui.icons.chevronLeft:y.ui.icons.chevronRight),A=t(()=>a.items?.length?Pe(a.items)?a.items:[a.items]:[]);return(t,i)=>(f(),p(w,null,[x(c(te),null,{default:F(({item:e,active:i,index:s})=>[o(t.$slots,e.slot||`item`,{item:e,index:s,ui:n.ui},()=>[o(t.$slots,e.slot?`${e.slot}-leading`:`item-leading`,{item:e,active:i,index:s,ui:n.ui},()=>[e.loading?(f(),l(W,{key:0,name:n.loadingIcon||c(y).ui.icons.loading,"data-slot":`itemLeadingIcon`,class:T(n.ui.itemLeadingIcon({class:[n.uiOverride?.itemLeadingIcon,e.ui?.itemLeadingIcon],color:e?.color,loading:!0}))},null,8,[`name`,`class`])):e.icon?(f(),l(W,{key:1,name:e.icon,"data-slot":`itemLeadingIcon`,class:T(n.ui.itemLeadingIcon({class:[n.uiOverride?.itemLeadingIcon,e.ui?.itemLeadingIcon],color:e?.color,active:i}))},null,8,[`name`,`class`])):e.avatar?(f(),l(Fe,j({key:2,size:e.ui?.itemLeadingAvatarSize||n.uiOverride?.itemLeadingAvatarSize||n.ui.itemLeadingAvatarSize()},e.avatar,{"data-slot":`itemLeadingAvatar`,class:n.ui.itemLeadingAvatar({class:[n.uiOverride?.itemLeadingAvatar,e.ui?.itemLeadingAvatar],active:i})}),null,16,[`size`,`class`])):d(``,!0)]),c(K)(e,a.labelKey)||u[e.slot?`${e.slot}-label`:`item-label`]||c(K)(e,a.descriptionKey)||u[e.slot?`${e.slot}-description`:`item-description`]?(f(),p(`span`,{key:0,"data-slot":`itemWrapper`,class:T(n.ui.itemWrapper({class:[n.uiOverride?.itemWrapper,e.ui?.itemWrapper]}))},[k(`span`,{"data-slot":`itemLabel`,class:T(n.ui.itemLabel({class:[n.uiOverride?.itemLabel,e.ui?.itemLabel],active:i}))},[o(t.$slots,e.slot?`${e.slot}-label`:`item-label`,{item:e,active:i,index:s},()=>[r(D(c(K)(e,a.labelKey)),1)]),e.target===`_blank`&&n.externalIcon!==!1?(f(),l(W,{key:0,name:typeof n.externalIcon==`string`?n.externalIcon:c(y).ui.icons.external,"data-slot":`itemLabelExternalIcon`,class:T(n.ui.itemLabelExternalIcon({class:[n.uiOverride?.itemLabelExternalIcon,e.ui?.itemLabelExternalIcon],color:e?.color,active:i}))},null,8,[`name`,`class`])):d(``,!0)],2),c(K)(e,a.descriptionKey)||u[e.slot?`${e.slot}-description`:`item-description`]?(f(),p(`span`,{key:0,"data-slot":`itemDescription`,class:T(n.ui.itemDescription({class:[n.uiOverride?.itemDescription,e.ui?.itemDescription]}))},[o(t.$slots,e.slot?`${e.slot}-description`:`item-description`,{item:e,active:i,index:s},()=>[r(D(c(K)(e,a.descriptionKey)),1)])],2)):d(``,!0)],2)):d(``,!0),k(`span`,{"data-slot":`itemTrailing`,class:T(n.ui.itemTrailing({class:[n.uiOverride?.itemTrailing,e.ui?.itemTrailing]}))},[o(t.$slots,e.slot?`${e.slot}-trailing`:`item-trailing`,{item:e,active:i,index:s,ui:n.ui},()=>[e.children?.length?(f(),l(W,{key:0,name:O.value,"data-slot":`itemTrailingIcon`,class:T(n.ui.itemTrailingIcon({class:[n.uiOverride?.itemTrailingIcon,e.ui?.itemTrailingIcon],color:e?.color,active:i}))},null,8,[`name`,`class`])):e.kbds?.length?(f(),p(`span`,{key:1,"data-slot":`itemTrailingKbds`,class:T(n.ui.itemTrailingKbds({class:[n.uiOverride?.itemTrailingKbds,e.ui?.itemTrailingKbds]}))},[(f(!0),p(w,null,m(e.kbds,(t,r)=>(f(),l(ve,j({key:r,size:e.ui?.itemTrailingKbdsSize||n.uiOverride?.itemTrailingKbdsSize||n.ui.itemTrailingKbdsSize()},{ref_for:!0},typeof t==`string`?{value:t}:t),null,16,[`size`]))),128))],2)):d(``,!0)]),x(c(Q).ItemIndicator,{"as-child":``},{default:F(()=>[x(W,{name:n.checkedIcon||c(y).ui.icons.check,"data-slot":`itemTrailingIcon`,class:T(n.ui.itemTrailingIcon({class:[n.uiOverride?.itemTrailingIcon,e.ui?.itemTrailingIcon],color:e?.color}))},null,8,[`name`,`class`])]),_:2},1024)],2)])]),_:3}),x(c(Q).Portal,N(e(c(b))),{default:F(()=>[x(c(Re),null,{default:F(()=>[(f(),l(v(n.sub?c(Q).SubContent:c(Q).Content),j({"data-slot":`content`,class:n.ui.content({class:[n.uiOverride?.content,a.class]})},c(S)),{default:F(()=>[o(t.$slots,`content-top`,{sub:n.sub??!1}),k(`div`,{role:`presentation`,"data-slot":`viewport`,class:T(n.ui.viewport({class:n.uiOverride?.viewport}))},[(f(!0),p(w,null,m(A.value,(e,r)=>(f(),l(c(Q).Group,{key:`group-${r}`,"data-slot":`group`,class:T(n.ui.group({class:n.uiOverride?.group}))},{default:F(()=>[(f(!0),p(w,null,m(e,(e,i)=>(f(),p(w,{key:`group-${r}-${i}`},[e.type===`label`?(f(),l(c(Q).Label,{key:0,"data-slot":`label`,class:T(n.ui.label({class:[n.uiOverride?.label,e.ui?.label,e.class]}))},{default:F(()=>[x(c(E),{item:e,index:i},null,8,[`item`,`index`])]),_:2},1032,[`class`])):e.type===`separator`?(f(),l(c(Q).Separator,{key:1,"data-slot":`separator`,class:T(n.ui.separator({class:[n.uiOverride?.separator,e.ui?.separator,e.class]}))},null,8,[`class`])):e?.children?.length?(f(),l(c(Q).Sub,{key:2,open:e.open,"default-open":e.defaultOpen},{default:F(()=>[x(c(Q).SubTrigger,{as:`button`,type:`button`,disabled:e.disabled,"text-value":c(K)(e,a.labelKey),"data-slot":`item`,class:T(n.ui.item({class:[n.uiOverride?.item,e.ui?.item,e.class],color:e?.color}))},{default:F(()=>[x(c(E),{item:e,index:i},null,8,[`item`,`index`])]),_:2},1032,[`disabled`,`text-value`,`class`]),x(di,j({sub:``,class:e.ui?.content,ui:n.ui,"ui-override":n.uiOverride,portal:n.portal,items:e.children,"align-offset":-4,"label-key":n.labelKey,"description-key":n.descriptionKey,"checked-icon":n.checkedIcon,"loading-icon":n.loadingIcon,"external-icon":n.externalIcon},{ref_for:!0},e.content),g({_:2},[m(ee(),(e,n)=>({name:n,fn:F(e=>[o(t.$slots,n,j({ref_for:!0},e))])}))]),1040,[`class`,`ui`,`ui-override`,`portal`,`items`,`label-key`,`description-key`,`checked-icon`,`loading-icon`,`external-icon`])]),_:2},1032,[`open`,`default-open`])):e.type===`checkbox`?(f(),l(c(Q).CheckboxItem,{key:3,"model-value":e.checked,disabled:e.disabled,"text-value":c(K)(e,a.labelKey),"data-slot":`item`,class:T(n.ui.item({class:[n.uiOverride?.item,e.ui?.item,e.class],color:e?.color})),"onUpdate:modelValue":e.onUpdateChecked,onSelect:e.onSelect},{default:F(()=>[x(c(E),{item:e,index:i},null,8,[`item`,`index`])]),_:2},1032,[`model-value`,`disabled`,`text-value`,`class`,`onUpdate:modelValue`,`onSelect`])):(f(),l(Be,j({key:4,ref_for:!0},c(Ve)(e),{custom:``}),{default:F(({active:t,...r})=>[x(c(Q).Item,{"as-child":``,disabled:e.disabled,"text-value":c(K)(e,a.labelKey),onSelect:e.onSelect},{default:F(()=>[x(Ge,j({ref_for:!0},r,{"data-slot":`item`,class:n.ui.item({class:[n.uiOverride?.item,e.ui?.item,e.class],active:t,color:e?.color})}),{default:F(()=>[x(c(E),{item:e,active:t,index:i},null,8,[`item`,`active`,`index`])]),_:2},1040,[`class`])]),_:2},1032,[`disabled`,`text-value`,`onSelect`])]),_:2},1040))],64))),128))]),_:2},1032,[`class`]))),128))],2),o(t.$slots,`default`),o(t.$slots,`content-bottom`,{sub:n.sub??!1})]),_:3},16,[`class`]))]),_:3})]),_:3},16)],64))}},fi={slots:{content:`min-w-32 max-h-(--reka-context-menu-content-available-height) bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)] origin-(--reka-context-menu-content-transform-origin) flex flex-col`,viewport:`relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1`,group:`p-1 isolate`,label:`w-full flex items-center font-semibold text-highlighted`,separator:`-mx-1 my-1 h-px bg-border`,item:`group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75`,itemLeadingIcon:`shrink-0`,itemLeadingAvatar:`shrink-0`,itemLeadingAvatarSize:``,itemTrailing:`ms-auto inline-flex gap-1.5 items-center`,itemTrailingIcon:`shrink-0`,itemTrailingKbds:`hidden lg:inline-flex items-center shrink-0`,itemTrailingKbdsSize:``,itemWrapper:`flex-1 flex flex-col text-start min-w-0`,itemLabel:`truncate`,itemDescription:`truncate text-muted`,itemLabelExternalIcon:`inline-block size-3 align-top text-dimmed`},variants:{color:{primary:``,neutral:``,success:``,warning:``,error:``,info:``},active:{true:{item:`text-highlighted before:bg-elevated`,itemLeadingIcon:`text-default`},false:{item:[`text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50`,`transition-colors before:transition-colors`],itemLeadingIcon:[`text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default`,`transition-colors`]}},loading:{true:{itemLeadingIcon:`animate-spin`}},size:{xs:{label:`p-1 text-xs gap-1`,item:`p-1 text-xs gap-1`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemTrailingIcon:`size-4`,itemTrailingKbds:`gap-0.5`,itemTrailingKbdsSize:`sm`},sm:{label:`p-1.5 text-xs gap-1.5`,item:`p-1.5 text-xs gap-1.5`,itemLeadingIcon:`size-4`,itemLeadingAvatarSize:`3xs`,itemTrailingIcon:`size-4`,itemTrailingKbds:`gap-0.5`,itemTrailingKbdsSize:`sm`},md:{label:`p-1.5 text-sm gap-1.5`,item:`p-1.5 text-sm gap-1.5`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemTrailingIcon:`size-5`,itemTrailingKbds:`gap-0.5`,itemTrailingKbdsSize:`md`},lg:{label:`p-2 text-sm gap-2`,item:`p-2 text-sm gap-2`,itemLeadingIcon:`size-5`,itemLeadingAvatarSize:`2xs`,itemTrailingIcon:`size-5`,itemTrailingKbds:`gap-1`,itemTrailingKbdsSize:`md`},xl:{label:`p-2 text-base gap-2`,item:`p-2 text-base gap-2`,itemLeadingIcon:`size-6`,itemLeadingAvatarSize:`xs`,itemTrailingIcon:`size-6`,itemTrailingKbds:`gap-1`,itemTrailingKbdsSize:`lg`}}},compoundVariants:[{color:`primary`,active:!1,class:{item:`text-primary data-highlighted:text-primary data-highlighted:before:bg-primary/10 data-[state=open]:before:bg-primary/10`,itemLeadingIcon:`text-primary/75 group-data-highlighted:text-primary group-data-[state=open]:text-primary`}},{color:`neutral`,active:!1,class:{item:`text-neutral data-highlighted:text-neutral data-highlighted:before:bg-neutral/10 data-[state=open]:before:bg-neutral/10`,itemLeadingIcon:`text-neutral/75 group-data-highlighted:text-neutral group-data-[state=open]:text-neutral`}},{color:`success`,active:!1,class:{item:`text-success data-highlighted:text-success data-highlighted:before:bg-success/10 data-[state=open]:before:bg-success/10`,itemLeadingIcon:`text-success/75 group-data-highlighted:text-success group-data-[state=open]:text-success`}},{color:`warning`,active:!1,class:{item:`text-warning data-highlighted:text-warning data-highlighted:before:bg-warning/10 data-[state=open]:before:bg-warning/10`,itemLeadingIcon:`text-warning/75 group-data-highlighted:text-warning group-data-[state=open]:text-warning`}},{color:`error`,active:!1,class:{item:`text-error data-highlighted:text-error data-highlighted:before:bg-error/10 data-[state=open]:before:bg-error/10`,itemLeadingIcon:`text-error/75 group-data-highlighted:text-error group-data-[state=open]:text-error`}},{color:`info`,active:!1,class:{item:`text-info data-highlighted:text-info data-highlighted:before:bg-info/10 data-[state=open]:before:bg-info/10`,itemLeadingIcon:`text-info/75 group-data-highlighted:text-info group-data-[state=open]:text-info`}},{color:`primary`,active:!0,class:{item:`text-primary before:bg-primary/10`,itemLeadingIcon:`text-primary`}},{color:`neutral`,active:!0,class:{item:`text-neutral before:bg-neutral/10`,itemLeadingIcon:`text-neutral`}},{color:`success`,active:!0,class:{item:`text-success before:bg-success/10`,itemLeadingIcon:`text-success`}},{color:`warning`,active:!0,class:{item:`text-warning before:bg-warning/10`,itemLeadingIcon:`text-warning`}},{color:`error`,active:!0,class:{item:`text-error before:bg-error/10`,itemLeadingIcon:`text-error`}},{color:`info`,active:!0,class:{item:`text-info before:bg-info/10`,itemLeadingIcon:`text-info`}}],defaultVariants:{size:`md`}},pi={__name:`UContextMenu`,props:{size:{type:null,required:!1},items:{type:null,required:!1},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},content:{type:Object,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},labelKey:{type:null,required:!1,default:`label`},descriptionKey:{type:null,required:!1,default:`description`},disabled:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},pressOpenDelay:{type:Number,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(n,{emit:r}){let i=n,a=r,s=C(),u=Ue(`contextMenu`,i),p=et(),h=Me(ze(u,`modal`),a),v=_(()=>u.content),y=()=>Xe(s,[`default`]),b=t(()=>Ke({extend:fi,...p.ui?.contextMenu||{}})({size:u.size}));return(t,n)=>(f(),l(c(hr),N(e(c(h))),{default:F(()=>[s.default?(f(),l(c(kr),{key:0,"as-child":``,disabled:c(u).disabled,class:T(c(u).class)},{default:F(()=>[o(t.$slots,`default`)]),_:3},8,[`disabled`,`class`])):d(``,!0),x(di,j({class:b.value.content({class:[!s.default&&c(u).class,c(u).ui?.content]}),ui:b.value,"ui-override":c(u).ui},v.value,{items:c(u).items,portal:c(u).portal,"label-key":c(u).labelKey,"description-key":c(u).descriptionKey,"checked-icon":c(u).checkedIcon,"loading-icon":c(u).loadingIcon,"external-icon":c(u).externalIcon}),g({_:2},[m(y(),(n,r)=>({name:r,fn:F(n=>[o(t.$slots,r,N(e(n)))])}))]),1040,[`class`,`ui`,`ui-override`,`items`,`portal`,`label-key`,`description-key`,`checked-icon`,`loading-icon`,`external-icon`])]),_:3},16))}},mi={class:`tabmap`,"aria-hidden":`true`},hi=Object.assign(b({__name:`TabMap`,props:{layout:{},panes:{},current:{}},setup(e){let n=e,r=t(()=>new Map(n.panes.map(e=>[e.id,e]))),i=t(()=>at(n.layout).map(e=>{let t=r.value.get(e.pane);return{...e,status:t?de(t):`shell`}}));return(t,n)=>(f(),p(`span`,mi,[(f(!0),p(w,null,m(c(i),t=>(f(),p(`i`,{key:t.pane,class:T([t.status,{cur:t.pane===e.current}]),style:ne({left:`${t.left}%`,top:`${t.top}%`,width:`${t.width}%`,height:`${t.height}%`})},null,6))),128))]))}}),{__name:`TabMap`}),gi={class:`pill-source`},_i={class:`pill-model`},vi={key:0,class:`pill-effort`},yi={key:1,class:`pill unknown`},bi=Object.assign(b({__name:`StatusPill`,props:{pane:{},kind:{type:Boolean},model:{type:Boolean},source:{}},setup(e){return(t,n)=>e.pane?(f(),p(`span`,{key:0,class:T([`pill`,(`statusKey`in t?t.statusKey:c(de))(e.pane)])},[n[3]||=k(`i`,null,null,-1),r(D((`statusLabel`in t?t.statusLabel:c(fe))(e.pane)),1),e.source?(f(),p(w,{key:0},[n[0]||=k(`span`,{class:`sep`},`·`,-1),k(`span`,gi,D(e.source),1)],64)):d(``,!0),e.kind&&e.pane.agent?(f(),p(w,{key:1},[n[1]||=k(`span`,{class:`sep`},`·`,-1),k(`span`,{class:T([`pill-kind`,e.pane.agent])},D(e.pane.agent),3)],64)):d(``,!0),e.model&&e.pane.model?(f(),p(w,{key:2},[n[2]||=k(`span`,{class:`sep`},`·`,-1),k(`span`,_i,D(e.pane.model.label),1),e.pane.model.effort?(f(),p(`span`,vi,D(e.pane.model.effort),1)):d(``,!0)],64)):d(``,!0)],2)):(f(),p(`span`,yi,[n[4]||=k(`i`,null,null,-1),r(D((`t`in t?t.t:c(tt))(`Closed`)),1)]))}}),{__name:`StatusPill`});function xi(e){return[e.added?`+${e.added}`:``,e.removed?`−${e.removed}`:``].filter(Boolean).join(` `)}function Si(e){if(!e)return``;if(e.file)return[e.file.split(`, `).map(e=>e.split(`/`).pop()).join(`, `),xi(e)].filter(Boolean).join(` `);let t=(e.command||``).replace(/\s*\\\n\s*/g,` `).split(`
2
- `).find(e=>e.trim());return t?`$ ${t.trim()}`:e.description||e.tool}function Ci(e,t){return t?/^(?:\s*\d+\s*)?\+/.test(e)&&!/^\+\+\+/.test(e)?`add`:/^(?:\s*\d+\s*)?-/.test(e)&&!/^---/.test(e)?`del`:null:null}function wi({delay:e=450,slop:t=8,onPress:n}){let r=null,i=0,a=0,o=0,s=e=>e.preventDefault(),c=typeof document>`u`?null:document,l=()=>{c?.removeEventListener(`selectstart`,s),setTimeout(()=>c?.removeEventListener(`selectstart`,s),0)},u=()=>{r&&clearTimeout(r),r=null,l()};return{down(t){u(),(t.pointerType===`touch`||t.pointerType===`pen`)&&(i=t.clientX,a=t.clientY,c?.addEventListener(`selectstart`,s),r=setTimeout(()=>{r=null,o=Date.now(),c?.getSelection?.()?.removeAllRanges(),n(),setTimeout(l,800)},e))},move(e){r&&Math.hypot(e.clientX-i,e.clientY-a)>t&&u()},cancel:u,suppressClick:()=>{o=Date.now()},swallowClick:()=>Date.now()-o<800}}var Ti={},Ei={class:`machine-local-badge`};function Di(e,t){return f(),p(`span`,Ei,D((`t`in e?e.t:c(tt))(`LOCAL`)),1)}var Oi=Object.assign(dt(Ti,[[`render`,Di]]),{__name:`MachineLocalBadge`});function ki(e,t={}){let n=e.detail.originalEvent,r=n.target;if(!r?.isConnected){e.preventDefault();return}t.scrollable&&(n.offsetX>r.clientWidth||n.offsetY>r.clientHeight)&&e.preventDefault()}var Ai={slots:{overlay:`fixed inset-0`,content:`bg-default divide-y divide-default flex flex-col focus:outline-none`,header:`flex items-center gap-1.5 p-4 sm:px-6 min-h-(--ui-header-height)`,wrapper:``,body:`flex-1 p-4 sm:p-6`,footer:`flex items-center gap-1.5 p-4 sm:px-6`,title:`text-highlighted font-semibold`,description:`mt-1 text-muted text-sm`,close:`absolute top-4 end-4`},variants:{transition:{true:{overlay:`data-[state=open]:animate-[fade-in_200ms_var(--ease-out)] data-[state=closed]:animate-[fade-out_200ms_var(--ease-out)]`,content:`data-[state=open]:animate-[scale-in_200ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_200ms_var(--ease-out)]`}},fullscreen:{true:{content:`inset-0`},false:{content:`w-[calc(100vw-2rem)] max-w-lg rounded-lg shadow-lg ring ring-default`}},overlay:{true:{overlay:`bg-elevated/75`}},scrollable:{true:{overlay:`overflow-y-auto`,content:`relative`},false:{content:`fixed`,body:`overflow-y-auto`}}},compoundVariants:[{scrollable:!0,fullscreen:!1,class:{overlay:`grid place-items-center p-4 sm:py-8`}},{scrollable:!1,fullscreen:!1,class:{content:`top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-hidden`}}]},ji={__name:`UModal`,props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},scrollable:{type:Boolean,required:!1},transition:{type:Boolean,required:!1,default:!0},fullscreen:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0},unmountOnHide:{type:Boolean,required:!1}},emits:[`leave`,`after:leave`,`enter`,`after:enter`,`close:prevent`,`update:open`],setup(n,{emit:i}){let a=n,u=i,m=C(),h=Ue(`modal`,a),{t:g}=ni(),v=et(),y=Me(ze(h,`open`,`defaultOpen`,`modal`,`unmountOnHide`),u),b=je(_(()=>h.portal)),S=_(()=>h.content),ee=t(()=>h.dismissible?{pointerDownOutside:e=>ki(e,{scrollable:h.scrollable})}:[`interactOutside`,`escapeKeyDown`].reduce((e,t)=>(e[t]=e=>{e.preventDefault(),u(`close:prevent`)},e),{})),[te,E]=We(),O=t(()=>Ke({extend:Ai,...v.ui?.modal||{}})({transition:h.transition,fullscreen:h.fullscreen,overlay:h.overlay,scrollable:h.scrollable}));return(t,n)=>(f(),l(c(Ut),N(e(c(y))),{default:F(({open:e,close:i})=>[x(c(te),null,{default:F(()=>[x(c(Sn),j({"data-slot":`content`,class:O.value.content({class:[!m.default&&c(h).class,c(h).ui?.content]})},S.value,{onEnter:n[0]||=e=>!c(h).scrollable&&u(`enter`),onAfterEnter:n[1]||=e=>!c(h).scrollable&&u(`after:enter`),onLeave:n[2]||=e=>!c(h).scrollable&&u(`leave`),onAfterLeave:n[3]||=e=>!c(h).scrollable&&u(`after:leave`)},s(ee.value)),{default:F(()=>[!c(h).title&&!m.title||!c(h).description&&!m.description||m.content?(f(),l(c(Le),{key:0},{default:F(()=>[!c(h).title&&!m.title?(f(),l(c(Dn),{key:0})):m.content?(f(),l(c(Dn),{key:1},{default:F(()=>[o(t.$slots,`title`,{},()=>[r(D(c(h).title),1)])]),_:3})):d(``,!0),!c(h).description&&!m.description?(f(),l(c(Cn),{key:2})):m.content?(f(),l(c(Cn),{key:3},{default:F(()=>[o(t.$slots,`description`,{},()=>[r(D(c(h).description),1)])]),_:3})):d(``,!0)]),_:3})):d(``,!0),o(t.$slots,`content`,{close:i},()=>[m.header||c(h).title||m.title||c(h).description||m.description||c(h).close||m.close?(f(),p(`div`,{key:0,"data-slot":`header`,class:T(O.value.header({class:c(h).ui?.header}))},[o(t.$slots,`header`,{close:i},()=>[c(h).title||m.title||c(h).description||m.description?(f(),p(`div`,{key:0,"data-slot":`wrapper`,class:T(O.value.wrapper({class:c(h).ui?.wrapper}))},[c(h).title||m.title?(f(),l(c(Dn),{key:0,"data-slot":`title`,class:T(O.value.title({class:c(h).ui?.title}))},{default:F(()=>[o(t.$slots,`title`,{},()=>[r(D(c(h).title),1)])]),_:3},8,[`class`])):d(``,!0),c(h).description||m.description?(f(),l(c(Cn),{key:1,"data-slot":`description`,class:T(O.value.description({class:c(h).ui?.description}))},{default:F(()=>[o(t.$slots,`description`,{},()=>[r(D(c(h).description),1)])]),_:3},8,[`class`])):d(``,!0)],2)):d(``,!0),o(t.$slots,`actions`),c(h).close||m.close?(f(),l(c(Wt),{key:1,"as-child":``},{default:F(()=>[o(t.$slots,`close`,{ui:O.value},()=>[c(h).close?(f(),l(Je,j({key:0,icon:c(h).closeIcon||c(v).ui.icons.close,color:`neutral`,variant:`ghost`,"aria-label":c(g)(`modal.close`)},typeof c(h).close==`object`?c(h).close:{},{"data-slot":`close`,class:O.value.close({class:c(h).ui?.close})}),null,16,[`icon`,`aria-label`,`class`])):d(``,!0)])]),_:2},1024)):d(``,!0)])],2)):d(``,!0),m.body?(f(),p(`div`,{key:1,"data-slot":`body`,class:T(O.value.body({class:c(h).ui?.body}))},[o(t.$slots,`body`,{close:i})],2)):d(``,!0),m.footer?(f(),p(`div`,{key:2,"data-slot":`footer`,class:T(O.value.footer({class:c(h).ui?.footer}))},[o(t.$slots,`footer`,{close:i})],2)):d(``,!0)])]),_:2},1040,[`class`])]),_:2},1024),m.default?(f(),l(c(On),{key:0,"as-child":``,class:T(c(h).class)},{default:F(()=>[o(t.$slots,`default`,{open:e})]),_:2},1032,[`class`])):d(``,!0),x(c(En),j(c(b),{"force-mount":c(b).disabled&&c(h).unmountOnHide===!1||void 0}),{default:F(()=>[x(c(Re),null,{default:F(()=>[c(h).scrollable?(f(),l(c(Tn),{key:0,"data-slot":`overlay`,class:T(O.value.overlay({class:c(h).ui?.overlay})),onEnter:n[4]||=e=>u(`enter`),onAfterEnter:n[5]||=e=>u(`after:enter`),onLeave:n[6]||=e=>u(`leave`),onAfterLeave:n[7]||=e=>u(`after:leave`)},{default:F(()=>[x(c(E))]),_:1},8,[`class`])):(f(),p(w,{key:1},[c(h).overlay?(f(),l(c(Tn),{key:0,"data-slot":`overlay`,class:T(O.value.overlay({class:c(h).ui?.overlay}))},null,8,[`class`])):d(``,!0),x(c(E))],64))]),_:1})]),_:1},16,[`force-mount`])]),_:3},16))}},Mi=.25;function Ni(e){return e>0?e:-Math.sqrt(-e)*2}function Pi(e,t,n){return e<=8?!1:t>=.5||e>=Math.min(120,n*Mi)}var Fi=[`aria-label`],Ii={class:`hw-sheet-title`,"aria-hidden":`true`},Li={key:2,"data-slot":`footer`,class:`hw-sheet-foot`},Ri=Object.assign(b({__name:`AppSheet`,props:re({title:{},tall:{type:Boolean},wide:{type:Boolean},full:{type:Boolean},screen:{type:Boolean}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:re([`closed`],[`update:open`]),setup(e,{emit:n}){let r=S(e,`open`),i=e,a=n,s=C();M(r,(e,t)=>{t&&!e&&a(`closed`)});let u=t(()=>({overlay:`hw-scrim${i.screen?` screen`:``}`,content:`hw-sheet${i.tall?` tall`:``}${i.wide?` wide`:``}${i.full?` full`:``}${i.screen?` screen`:``}`})),m=null;function h(e,t){if(i.screen||e.touches.length!==1||!matchMedia(`(max-width: 899px)`).matches)return;let n=e.currentTarget,r=n.closest(`.hw-sheet`);if(!r||!t&&n.scrollTop>0)return;let a=e.touches[0].clientY;m={sheet:r,fromHandle:t,y0:a,y:a,t:e.timeStamp,v:0,dragging:!1}}function g(e){if(!m)return;let t=e.touches[0].clientY,n=t-m.y0;if(!m.dragging&&(n<-8&&!m.fromHandle?m=null:n>8&&(m.dragging=!0,m.sheet.style.transition=`none`),!m?.dragging))return;e.preventDefault();let r=e.timeStamp-m.t;r>0&&(m.v=(t-m.y)/r),m.y=t,m.t=e.timeStamp,m.sheet.style.transform=`translateY(${Ni(n)}px)`}function _(e){let t=m;if(m=null,t?.dragging){if(e.preventDefault(),Pi(t.y-t.y0,t.v,t.sheet.offsetHeight)){t.sheet.style.transition=``,r.value=!1;return}t.sheet.style.transition=`transform .2s cubic-bezier(.2, .8, .2, 1)`,t.sheet.style.transform=``}}return(t,n)=>{let i=Je,a=ji;return f(),l(a,{open:r.value,"onUpdate:open":n[5]||=e=>r.value=e,title:e.title,ui:c(u)},{content:F(()=>[e.screen?d(``,!0):(f(),p(`button`,{key:0,type:`button`,class:`hw-sheet-handle`,"aria-label":(`tl`in t?t.tl:c(Y))(`Close`,`Fermer`),onClick:n[0]||=e=>r.value=!1,onTouchstartPassive:n[1]||=e=>h(e,!0),onTouchmove:g,onTouchend:_,onTouchcancel:_},null,40,Fi)),e.title?(f(),p(`div`,{key:1,"data-slot":`header`,class:`hw-sheet-head`,onTouchstartPassive:n[3]||=e=>h(e,!0),onTouchmove:g,onTouchend:_,onTouchcancel:_},[k(`span`,Ii,D(e.title),1),x(i,{icon:`i-lucide-x`,color:`neutral`,variant:`ghost`,"data-slot":`close`,class:`hw-sheet-close`,"aria-label":(`tl`in t?t.tl:c(Y))(`Close`,`Fermer`),onClick:n[2]||=e=>r.value=!1},null,8,[`aria-label`])],32)):d(``,!0),k(`div`,{"data-slot":`body`,class:`hw-sheet-body`,onTouchstartPassive:n[4]||=e=>h(e,!1),onTouchmove:g,onTouchend:_,onTouchcancel:_},[o(t.$slots,`default`)],32),s.footer?(f(),p(`div`,Li,[o(t.$slots,`footer`)])):d(``,!0)]),_:3},8,[`open`,`title`,`ui`])}}}),{__name:`AppSheet`}),zi=.5,Bi=`projectSideWidth`;function Vi(e,t){let n=Math.max(260,Math.floor(t*zi));return Math.round(Math.min(n,Math.max(260,e)))}function Hi(){try{let e=Number(localStorage.getItem(Bi));return Number.isFinite(e)&&e>=260?Math.round(e):null}catch{return null}}function Ui(e){try{e===null?localStorage.removeItem(Bi):localStorage.setItem(Bi,String(e))}catch{}}var Wi=.45,Gi=`listWidth`;function Ki(e,t){let n=Math.max(280,Math.min(560,Math.floor(t*Wi)));return Math.round(Math.min(n,Math.max(280,e)))}function qi(e){return`clamp(280px, ${e}px, ${Wi*100}vw)`}function Ji(){try{let e=Number(localStorage.getItem(Gi));return Number.isFinite(e)&&e>=280&&e<=560?Math.round(e):null}catch{return null}}function Yi(e){try{e===null?localStorage.removeItem(Gi):localStorage.setItem(Gi,String(e))}catch{}}var Xi=`listCollapsed`;function Zi(){try{return localStorage.getItem(Xi)===`1`}catch{return!1}}function Qi(e){try{e?localStorage.setItem(Xi,`1`):localStorage.removeItem(Xi)}catch{}}var $i={slots:{root:`relative inline-flex items-center`,base:[`w-full rounded-md border-0 appearance-none placeholder:text-dimmed disabled:cursor-not-allowed disabled:opacity-75`,`transition-colors`],leading:`absolute start-0 flex items-start`,leadingIcon:`shrink-0 text-dimmed`,leadingAvatar:`shrink-0`,leadingAvatarSize:``,trailing:`absolute end-0 flex items-start`,trailingIcon:`shrink-0 text-dimmed`},variants:{fieldGroup:{horizontal:{root:`group has-focus-visible:z-[1]`,base:`group-not-only:group-first:rounded-e-none group-not-only:group-last:rounded-s-none group-not-last:group-not-first:rounded-none`},vertical:{root:`group has-focus-visible:z-[1]`,base:`group-not-only:group-first:rounded-b-none group-not-only:group-last:rounded-t-none group-not-last:group-not-first:rounded-none`}},size:{xs:{base:`px-2 py-1 text-sm/4 gap-1`,leading:`ps-2 inset-y-1`,trailing:`pe-2 inset-y-1`,leadingIcon:`size-4`,leadingAvatarSize:`3xs`,trailingIcon:`size-4`},sm:{base:`px-2.5 py-1.5 text-sm/4 gap-1.5`,leading:`ps-2.5 inset-y-1.5`,trailing:`pe-2.5 inset-y-1.5`,leadingIcon:`size-4`,leadingAvatarSize:`3xs`,trailingIcon:`size-4`},md:{base:`px-2.5 py-1.5 text-base/5 gap-1.5`,leading:`ps-2.5 inset-y-1.5`,trailing:`pe-2.5 inset-y-1.5`,leadingIcon:`size-5`,leadingAvatarSize:`2xs`,trailingIcon:`size-5`},lg:{base:`px-3 py-2 text-base/5 gap-2`,leading:`ps-3 inset-y-2`,trailing:`pe-3 inset-y-2`,leadingIcon:`size-5`,leadingAvatarSize:`2xs`,trailingIcon:`size-5`},xl:{base:`px-3 py-2 text-base gap-2`,leading:`ps-3 inset-y-2`,trailing:`pe-3 inset-y-2`,leadingIcon:`size-6`,leadingAvatarSize:`xs`,trailingIcon:`size-6`}},variant:{outline:`text-highlighted bg-default ring ring-inset ring-accented`,soft:`text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50`,subtle:`text-highlighted bg-elevated ring ring-inset ring-accented`,ghost:`text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent`,none:`text-highlighted bg-transparent focus:outline-none`},color:{primary:``,neutral:``,success:``,warning:``,error:``,info:``},leading:{true:``},trailing:{true:``},loading:{true:``},highlight:{true:``},fixed:{false:``},type:{file:`file:me-1.5 file:font-medium file:text-muted file:outline-none`},autoresize:{true:{base:`resize-none`}}},compoundVariants:[{color:`primary`,variant:[`outline`,`subtle`],class:`outline-primary/25 focus-visible:outline-3 focus-visible:ring-primary`},{color:`neutral`,variant:[`outline`,`subtle`],class:`outline-neutral/25 focus-visible:outline-3 focus-visible:ring-neutral`},{color:`success`,variant:[`outline`,`subtle`],class:`outline-success/25 focus-visible:outline-3 focus-visible:ring-success`},{color:`warning`,variant:[`outline`,`subtle`],class:`outline-warning/25 focus-visible:outline-3 focus-visible:ring-warning`},{color:`error`,variant:[`outline`,`subtle`],class:`outline-error/25 focus-visible:outline-3 focus-visible:ring-error`},{color:`info`,variant:[`outline`,`subtle`],class:`outline-info/25 focus-visible:outline-3 focus-visible:ring-info`},{color:`primary`,variant:[`soft`,`ghost`],class:`outline-primary/25 focus-visible:outline-3`},{color:`neutral`,variant:[`soft`,`ghost`],class:`outline-neutral/25 focus-visible:outline-3`},{color:`success`,variant:[`soft`,`ghost`],class:`outline-success/25 focus-visible:outline-3`},{color:`warning`,variant:[`soft`,`ghost`],class:`outline-warning/25 focus-visible:outline-3`},{color:`error`,variant:[`soft`,`ghost`],class:`outline-error/25 focus-visible:outline-3`},{color:`info`,variant:[`soft`,`ghost`],class:`outline-info/25 focus-visible:outline-3`},{color:`primary`,highlight:!0,class:`ring ring-inset ring-primary`},{color:`neutral`,highlight:!0,class:`ring ring-inset ring-neutral`},{color:`success`,highlight:!0,class:`ring ring-inset ring-success`},{color:`warning`,highlight:!0,class:`ring ring-inset ring-warning`},{color:`error`,highlight:!0,class:`ring ring-inset ring-error`},{color:`info`,highlight:!0,class:`ring ring-inset ring-info`},{color:`neutral`,variant:[`outline`,`subtle`],class:`outline-inverted/25 focus-visible:outline-3 focus-visible:ring-inverted`},{color:`neutral`,variant:[`soft`,`ghost`],class:`outline-inverted/25 focus-visible:outline-3`},{color:`neutral`,highlight:!0,class:`ring ring-inset ring-inverted`},{leading:!0,size:`xs`,class:`ps-7`},{leading:!0,size:`sm`,class:`ps-8`},{leading:!0,size:`md`,class:`ps-9`},{leading:!0,size:`lg`,class:`ps-10`},{leading:!0,size:`xl`,class:`ps-11`},{trailing:!0,size:`xs`,class:`pe-7`},{trailing:!0,size:`sm`,class:`pe-8`},{trailing:!0,size:`md`,class:`pe-9`},{trailing:!0,size:`lg`,class:`pe-10`},{trailing:!0,size:`xl`,class:`pe-11`},{loading:!0,leading:!0,class:{leadingIcon:`animate-spin`}},{loading:!0,leading:!1,trailing:!0,class:{trailingIcon:`animate-spin`}},{fixed:!1,size:`xs`,class:`md:text-xs`},{fixed:!1,size:`sm`,class:`md:text-xs`},{fixed:!1,size:`md`,class:`md:text-sm`},{fixed:!1,size:`lg`,class:`md:text-sm`}],defaultVariants:{size:`md`,color:`primary`,variant:`outline`}},ea=[`id`,`value`,`name`,`rows`,`placeholder`,`disabled`,`required`],ta=Object.assign({inheritAttrs:!1},{__name:`UTextarea`,props:{as:{type:null,required:!1},id:{type:String,required:!1},name:{type:String,required:!1},placeholder:{type:String,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},required:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autofocusDelay:{type:Number,required:!1,default:0},autoresize:{type:Boolean,required:!1},autoresizeDelay:{type:Number,required:!1,default:0},disabled:{type:Boolean,required:!1},rows:{type:Number,required:!1,default:3},maxrows:{type:Number,required:!1,default:0},highlight:{type:Boolean,required:!1},fixed:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1},modelModifiers:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1}},emits:[`update:modelValue`,`blur`,`change`],setup(e,{expose:n,emit:r}){let a=e,s=r,u=C(),m=Ue(`textarea`,a),g=q(m,`modelValue`,s,{defaultValue:m.defaultValue}),_=et(),{emitFormFocus:v,emitFormBlur:b,emitFormInput:x,emitFormChange:S,size:ee,color:w,id:te,name:E,highlight:D,disabled:A,ariaAttrs:ne}=De(a,{deferInputValidation:!0}),N=t(()=>w.value??m.color),re=t(()=>D.value??m.highlight),P=t(()=>ee.value??m.size),ie=t(()=>A.value??m.disabled),{isLeading:I,isTrailing:ae,leadingIconName:oe,trailingIconName:se}=ke(m),L=t(()=>Ke({extend:$i,..._.ui?.textarea||{}})({color:N.value,variant:m.variant,size:P.value,loading:m.loading,highlight:re.value,fixed:m.fixed,autoresize:m.autoresize,leading:I.value||!!m.avatar||!!u.leading,trailing:ae.value||!!u.trailing})),R=h(`textareaRef`);function ce(e){m.modelModifiers?.trim&&(typeof e==`string`||e==null)&&(e=e?.trim()??null),m.modelModifiers?.number&&(e=Te(e)),m.modelModifiers?.nullable&&Ne(e)&&(e=null),m.modelModifiers?.optional&&!m.modelModifiers?.nullable&&e!==null&&Ne(e)&&(e=void 0),g.value=e,x()}function le(e){fe(),m.modelModifiers?.lazy||ce(e.target.value)}function ue(e){let t=e.target.value;m.modelModifiers?.lazy&&ce(t),m.modelModifiers?.trim&&(e.target.value=t.trim()),S(),s(`change`,e)}function de(e){b(),s(`blur`,e)}function z(){m.autofocus&&R.value?.focus()}function fe(){if(m.autoresize&&R.value){R.value.rows=m.rows;let e=R.value.style.overflow;R.value.style.overflow=`hidden`;let t=window.getComputedStyle(R.value),n=Number.parseInt(t.paddingTop)+Number.parseInt(t.paddingBottom),r=Number.parseInt(t.lineHeight),{scrollHeight:i}=R.value,a=(i-n)/r;a>m.rows&&(R.value.rows=m.maxrows?Math.min(a,m.maxrows):a),R.value.style.overflow=e}}M(g,()=>{O(fe)});let pe,me;return y(()=>{pe=setTimeout(()=>{z()},m.autofocusDelay),me=setTimeout(async()=>{await O(),fe()},m.autoresizeDelay)}),i(()=>{clearTimeout(pe),clearTimeout(me)}),n({textareaRef:R,autoResize:fe}),(e,t)=>(f(),l(c(B),{as:c(m).as,"data-slot":e.$attrs[`data-slot`]??`root`,class:T(L.value.root({class:[c(m).ui?.root,c(m).class]}))},{default:F(()=>[k(`textarea`,j({id:c(te),ref_key:`textareaRef`,ref:R,value:c(g),name:c(E),rows:c(m).rows,placeholder:c(m).placeholder,class:L.value.base({class:c(m).ui?.base}),disabled:ie.value,required:c(m).required},{...e.$attrs,...c(ne)},{"data-slot":`base`,onInput:le,onBlur:de,onChange:ue,onFocus:t[0]||=(...e)=>c(v)&&c(v)(...e)}),null,16,ea),o(e.$slots,`default`,{ui:L.value}),c(I)||c(m).avatar||u.leading?(f(),p(`span`,{key:0,"data-slot":`leading`,class:T(L.value.leading({class:c(m).ui?.leading}))},[o(e.$slots,`leading`,{ui:L.value},()=>[c(I)&&c(oe)?(f(),l(W,{key:0,name:c(oe),"data-slot":`leadingIcon`,class:T(L.value.leadingIcon({class:c(m).ui?.leadingIcon}))},null,8,[`name`,`class`])):c(m).avatar?(f(),l(Fe,j({key:1,size:c(m).ui?.leadingAvatarSize||L.value.leadingAvatarSize()},c(m).avatar,{"data-slot":`leadingAvatar`,class:L.value.leadingAvatar({class:c(m).ui?.leadingAvatar})}),null,16,[`size`,`class`])):d(``,!0)])],2)):d(``,!0),c(ae)||u.trailing?(f(),p(`span`,{key:1,"data-slot":`trailing`,class:T(L.value.trailing({class:c(m).ui?.trailing}))},[o(e.$slots,`trailing`,{ui:L.value},()=>[c(se)?(f(),l(W,{key:0,name:c(se),"data-slot":`trailingIcon`,class:T(L.value.trailingIcon({class:c(m).ui?.trailingIcon}))},null,8,[`name`,`class`])):d(``,!0)])],2)):d(``,!0)]),_:3},8,[`as`,`data-slot`,`class`]))}});function na(e,t=9){let n=Math.max(0,Math.floor(e));return n<=t?{shown:n,more:0}:{shown:t-1,more:n-(t-1)}}function ra(e,t,n){return n<=0?0:Math.min(n-1,Math.max(0,e+t))}function ia(e,t){let n=Math.abs(e),r=Math.abs(t);return Math.max(n,r)<10?null:n>r*1.3?`x`:`y`}function aa(e,t,n){let r=Math.abs(e),i=r>=Math.max(60,n*.25),a=r>=36&&r/Math.max(t,1)>.45;return!i&&!a?0:e<0?1:-1}function oa(e,t){return Math.round(t?e*.55:e*.18)}var sa={image:20971520,pdf:31457280,notebook:20971520,text:10485760};Math.max(...Object.values(sa));var ca=8192,la={archive:`zip.tar.gz.tgz.bz2.tbz.xz.txz.zst.7z.rar.lz.lzma.z.cab.jar.war.ear.dmg.iso.img.pkg.deb.rpm.apk.ipa.xip.whl.nupkg.crx`.split(`.`),video:[`mp4`,`mov`,`m4v`,`avi`,`mkv`,`webm`,`wmv`,`flv`,`mpg`,`mpeg`,`3gp`,`ogv`,`mts`],audio:[`mp3`,`wav`,`m4a`,`aac`,`flac`,`ogg`,`oga`,`opus`,`aif`,`aiff`,`wma`,`mid`,`midi`,`caf`],office:[`doc`,`docx`,`xls`,`xlsx`,`xlsm`,`ppt`,`pptx`,`odt`,`ods`,`odp`,`pages`,`numbers`,`key`,`epub`],executable:[`exe`,`dll`,`so`,`dylib`,`bin`,`app`,`msi`,`class`,`o`,`a`,`lib`,`obj`,`wasm`,`pyc`,`pyo`,`elf`,`com`,`scr`]},ua=new Map;for(let[e,t]of Object.entries(la))for(let n of t)ua.set(n,e);var da=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`heic`,`heif`,`bmp`,`avif`]);function fa(e){let t=String(e||``).split(/[\\/]/).pop()||``,n=t.lastIndexOf(`.`);return n>0?t.slice(n+1).toLowerCase():``}function pa(e){if(e.includes(0))return!1;for(let t=0;t<=3&&t<e.length;t++)try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e.subarray(0,e.length-t)),!0}catch{}return e.length===0}var ma=e=>e.length>=5&&String.fromCharCode(...e.subarray(0,5))===`%PDF-`;function ha(e,t,n){let r=fa(e),i=String(t||``).toLowerCase(),a=ua.get(r);return a?{refused:a}:i.startsWith(`video/`)?{refused:`video`}:i.startsWith(`audio/`)?{refused:`audio`}:r===`pdf`||i===`application/pdf`?ma(n)?{kind:`pdf`}:{refused:`binary`}:r!==`svg`&&i!==`image/svg+xml`&&(da.has(r)||i.startsWith(`image/`))?{kind:`image`}:pa(n)?{kind:r===`ipynb`?`notebook`:`text`}:{refused:`binary`}}function ga(e,t){return t!==`pdf`||e===`claude`}function _a(e,t,n){if(!t.size)return{ok:!1,reason:`empty`};let r=ha(t.name,t.type,n);return`refused`in r?{ok:!1,reason:r.refused}:ga(e,r.kind)?t.size>sa[r.kind]?{ok:!1,reason:`too_large`,kind:r.kind}:{ok:!0,kind:r.kind}:{ok:!1,reason:r.kind===`pdf`?`pdf`:`binary`,kind:r.kind}}function va(e){return(String(e||``).split(`/`).pop()||``).replace(/^\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}-\d{3}Z-[0-9a-f]{6}-/,``)}var ya=/^@?(\/\S*\/\.cache\/herdr-web\/files\/[^\s/]+)$/;function ba(e){let t=ya.exec(String(e||``).trim());return t?{path:t[1],name:va(t[1])}:null}var xa=e=>ba(e)!==null;function Sa(e,t){let n=fa(e);return t===`pdf`||n===`pdf`?`i-lucide-file-text`:t===`notebook`||n===`ipynb`?`i-lucide-notebook-pen`:t===`image`?`i-lucide-file-image`:[`json`,`yaml`,`yml`,`toml`,`xml`,`csv`,`tsv`,`ini`,`env`].includes(n)?`i-lucide-file-json`:[`md`,`txt`,`rst`,`log`,`adoc`,``].includes(n)?`i-lucide-file-type`:`i-lucide-file-code`}function Ca(e){return e<1024?`${e} B`:e<1048576?`${Math.round(e/1024)} KB`:`${(e/1024/1024).toFixed(+(e<10485760))} MB`}function wa(e){return!!(e&&e.types&&Array.from(e.types).includes(`Files`))}async function Ta(e,t){let n={images:[],files:[],refused:[]};for(let r of e){let e=new Uint8Array(await r.slice(0,ca).arrayBuffer()),i=_a(t,{name:r.name,type:r.type,size:r.size},e);i.ok?i.kind===`image`?n.images.push(r):n.files.push({file:r,kind:i.kind}):n.refused.push({file:r,reason:i.reason,kind:i.kind})}return n}function Ea(e,t,n){switch(e){case`archive`:return Y(`${t} can’t read archives — extract the files first`,`${t} ne lit pas les archives — décompresse d’abord`);case`video`:return Y(`${t} can’t read videos`,`${t} ne lit pas les vidéos`);case`audio`:return Y(`${t} can’t read audio files`,`${t} ne lit pas les fichiers audio`);case`office`:return Y(`${t} can’t read Office documents — export to PDF or text`,`${t} ne lit pas les documents Office — exporte en PDF ou en texte`);case`executable`:return Y(`${t} can’t read programs`,`${t} ne lit pas les programmes`);case`pdf`:return Y(`${t} can’t read PDFs (Claude Code can)`,`${t} ne lit pas les PDF (Claude Code oui)`);case`too_large`:{let e=Ca(sa[n||`text`]);return Y(`too large (${e} max)`,`trop gros (${e} max)`)}case`empty`:return Y(`empty file`,`fichier vide`);default:return Y(`${t} can’t read this binary file`,`${t} ne lit pas ce fichier binaire`)}}function Da(e,t){return t===`dragenter`?e+1:t===`dragleave`?Math.max(0,e-1):t===`drop`?0:e}function Oa(e,t,n){let r=Math.max(0,Math.round(n||e)),i=Math.max(0,Math.round(t||0));return{height:r,top:i,bottom:Math.max(0,Math.round(e-i-r))}}var ka=u(!1),Aa=u(0),ja=u(0),Ma=u(0),Na={orient:``,h:0};function Pa(){let e=window.visualViewport,t=e?e.height:window.innerHeight,n=e?e.offsetTop:0,r=screen.width>screen.height||innerWidth>innerHeight?`l`:`p`;r!==Na.orient&&(Na.orient=r,Na.h=0),Na.h=Math.max(Na.h,t,window.innerHeight);let i=Na.h-t>120;ka.value=i,Aa.value=t,ja.value=n,document.body.classList.toggle(`kb`,i);let a=Oa(window.innerHeight,n,t),o=document.documentElement.style;o.setProperty(`--vv-h`,`${a.height}px`),o.setProperty(`--vv-top`,`${a.top}px`),o.setProperty(`--vv-bottom`,`${a.bottom}px`),Ma.value++}function Fa(){let e=document.createElement(`div`);e.style.cssText=`position:fixed;padding-top:env(safe-area-inset-top);visibility:hidden`,document.body.append(e);let t=parseFloat(getComputedStyle(e).paddingTop)||0;e.remove();let n=screen.height>screen.width,r=window.visualViewport&&innerHeight-window.visualViewport.height>120,i=screen.height-innerHeight;document.body.classList.toggle(`short-bottom`,st&&n&&!r&&t>20&&i>=t-4)}var Ia=!1;function La(){Ia||(Ia=!0,Fa(),Pa(),window.addEventListener(`resize`,Fa),window.addEventListener(`resize`,Pa),window.visualViewport&&(window.visualViewport.addEventListener(`resize`,Pa),window.visualViewport.addEventListener(`scroll`,Pa)))}export{Ui as A,ui as B,Vi as C,Hi as D,Ji as E,xi as F,ei as G,ai as H,Ci as I,$t as J,$r as K,bi as L,Oi as M,wi as N,Qi as O,Si as P,hi as R,Ki as S,Zi as T,ti as U,ci as V,ni as W,ft as X,pt as Y,oa as _,Aa as a,na as b,Da as c,Sa as d,fa as f,ia as g,ba as h,Ma as i,Ri as j,Yi as k,Ea as l,xa as m,ka as n,ja as o,Ca as p,Zt as q,Pa as r,wa as s,La as t,Ta as u,aa as v,qi as w,ta as x,ra as y,pi as z};