wherdr 1.3.4 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/072bjdot.js +2 -0
- package/.output/public/_nuxt/8FAMamJX.js +1 -0
- package/.output/public/_nuxt/{AgentView.DzFWBd2A.css → AgentView.CfD2RWZY.css} +1 -1
- package/.output/public/_nuxt/BDNMzG2s.js +1 -0
- package/.output/public/_nuxt/BX8KVYfd.js +1 -0
- package/.output/public/_nuxt/{CJKsMzIp.js → BYZVrreW.js} +1 -1
- package/.output/public/_nuxt/C2aT0CgA.js +62 -0
- package/.output/public/_nuxt/CanLPS0U.js +105 -0
- package/.output/public/_nuxt/DGXKTg7D.js +31 -0
- package/.output/public/_nuxt/{DMLmW6JM.js → DOsw6KCR.js} +41 -42
- package/.output/public/_nuxt/DTiR5P9E.js +25 -0
- package/.output/public/_nuxt/{w7Rm7unj.js → DYKfeNM-.js} +1 -1
- package/.output/public/_nuxt/DZ7VvF3e.js +1 -0
- package/.output/public/_nuxt/DZGKxROq.js +6 -0
- package/.output/public/_nuxt/DeLLm2j1.js +23 -0
- package/.output/public/_nuxt/DumNBIyF.js +1 -0
- package/.output/public/_nuxt/ScQ9FtVj.js +1 -0
- package/.output/public/_nuxt/TS7GZUPU.js +9 -0
- package/.output/public/_nuxt/board.DK5EU4sL.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/b6ed1ddd-d6d6-4137-beab-2548b20dd998.json +1 -0
- package/.output/public/_nuxt/entry.BhiYrGAW.css +2 -0
- package/.output/public/_nuxt/settings.Cdb21nNw.css +1 -0
- package/.output/public/sw.js +1 -1
- package/.output/server/chunks/_/branding.mjs +1 -1
- package/.output/server/chunks/_/changes.mjs +4 -4
- package/.output/server/chunks/_/fileDownload.mjs +278 -0
- package/.output/server/chunks/_/files.mjs +44 -17
- package/.output/server/chunks/_/machineOrder.mjs +1 -1
- package/.output/server/chunks/_/onboarding.mjs +1 -1
- package/.output/server/chunks/_/package.mjs +9 -3
- package/.output/server/chunks/_/plugins.mjs +92 -125
- package/.output/server/chunks/_/restart.mjs +1 -1
- package/.output/server/chunks/_/selfupdate.mjs +1 -1
- package/.output/server/chunks/_/updates.mjs +1 -1
- package/.output/server/chunks/_/worktrees.mjs +1 -1
- package/.output/server/chunks/_/ws.mjs +43 -6
- package/.output/server/chunks/nitro/nitro.mjs +14073 -10658
- package/.output/server/chunks/raw/check-doc-links.mjs +5 -0
- package/.output/server/chunks/raw/check-leaks.mjs +1 -1
- package/.output/server/chunks/raw/check-release-notes.mjs +5 -0
- package/.output/server/chunks/raw/herdr-plugin.mjs +1 -1
- package/.output/server/chunks/raw/install-claude-statusline.mjs +1 -1
- package/.output/server/chunks/raw/prerelease-summary.mjs +5 -0
- package/.output/server/chunks/raw/prerelease.mjs +7 -0
- package/.output/server/chunks/raw/reveal.mjs +1 -1
- package/.output/server/chunks/raw/test-affected.mjs +5 -0
- package/.output/server/chunks/routes/api/_..._.mjs +6 -5
- package/.output/server/chunks/routes/api/agents.post.mjs +6 -5
- package/.output/server/chunks/routes/api/ask-tab.post.mjs +6 -5
- package/.output/server/chunks/routes/api/attach.post.mjs +6 -5
- package/.output/server/chunks/routes/api/auth/disable.post.mjs +6 -5
- package/.output/server/chunks/routes/api/auth/lock-all.post.mjs +6 -5
- package/.output/server/chunks/routes/api/auth/lock.post.mjs +6 -5
- package/.output/server/chunks/routes/api/auth/login/options.post.mjs +6 -5
- package/.output/server/chunks/routes/api/auth/login/verify.post.mjs +6 -5
- package/.output/server/chunks/routes/api/auth/max-session.post.mjs +6 -5
- package/.output/server/chunks/routes/api/auth/register/options.post.mjs +6 -5
- package/.output/server/chunks/routes/api/auth/register/verify.post.mjs +6 -5
- package/.output/server/chunks/routes/api/auth/status.get.mjs +6 -5
- package/.output/server/chunks/routes/api/changes.get.mjs +7 -6
- package/.output/server/chunks/routes/api/chat/image.get.mjs +7 -6
- package/.output/server/chunks/routes/api/chat.get.mjs +20 -7
- package/.output/server/chunks/routes/api/choose.post.mjs +31 -17
- package/.output/server/chunks/routes/api/claude-setup.post.mjs +42 -0
- package/.output/server/chunks/routes/api/claude-statusline.post.mjs +7 -6
- package/.output/server/chunks/routes/api/clear-queued-input.post.mjs +42 -0
- package/.output/server/chunks/routes/api/close/status.get.mjs +7 -6
- package/.output/server/chunks/routes/api/close.post.mjs +6 -5
- package/.output/server/chunks/routes/api/codex-update.post.mjs +7 -6
- package/.output/server/chunks/routes/api/commands.get.mjs +7 -6
- package/.output/server/chunks/routes/api/config.get.mjs +10 -13
- package/.output/server/chunks/routes/api/dirs.get.mjs +7 -6
- package/.output/server/chunks/routes/api/dismiss-stopped.post.mjs +7 -6
- package/.output/server/chunks/routes/api/dismiss.post.mjs +7 -6
- package/.output/server/chunks/routes/api/effort.post.mjs +7 -6
- package/.output/server/chunks/routes/api/efforts.get.mjs +7 -6
- package/.output/server/chunks/routes/api/file.post.mjs +7 -6
- package/.output/server/chunks/routes/api/files/download.get.mjs +12 -31
- package/.output/server/chunks/routes/api/files/download.head.mjs +41 -0
- package/.output/server/chunks/routes/api/files/read.get.mjs +8 -7
- package/.output/server/chunks/routes/api/files.get.mjs +7 -6
- package/.output/server/chunks/routes/api/health.get.mjs +6 -5
- package/.output/server/chunks/routes/api/input.post.mjs +7 -6
- package/.output/server/chunks/routes/api/interrupt.post.mjs +24 -21
- package/.output/server/chunks/routes/api/isgit.get.mjs +8 -8
- package/.output/server/chunks/routes/api/machine/awake.get.mjs +7 -6
- package/.output/server/chunks/routes/api/machine/awake.post.mjs +7 -6
- package/.output/server/chunks/routes/api/machine/order.get.mjs +6 -5
- package/.output/server/chunks/routes/api/machine/order.post.mjs +6 -5
- package/.output/server/chunks/routes/api/machine/reconnect.post.mjs +40 -0
- package/.output/server/chunks/routes/api/machine/rename.post.mjs +7 -6
- package/.output/server/chunks/routes/api/machine/status.post.mjs +39 -0
- package/.output/server/chunks/routes/api/menu-left.post.mjs +40 -0
- package/.output/server/chunks/routes/api/menu.post.mjs +7 -6
- package/.output/server/chunks/routes/api/model.post.mjs +7 -6
- package/.output/server/chunks/routes/api/models.get.mjs +7 -6
- package/.output/server/chunks/routes/api/nav.post.mjs +7 -6
- package/.output/server/chunks/routes/api/onboarding.get.mjs +6 -5
- package/.output/server/chunks/routes/api/onboarding.post.mjs +6 -5
- package/.output/server/chunks/routes/api/phone.get.mjs +8 -10
- package/.output/server/chunks/routes/api/phone.post.mjs +8 -10
- package/.output/server/chunks/routes/api/plugins/actions.get.mjs +6 -10
- package/.output/server/chunks/routes/api/plugins/invoke.post.mjs +6 -10
- package/.output/server/chunks/routes/api/plugins/projects.get.mjs +10 -9
- package/.output/server/chunks/routes/api/plugins/projects.post.mjs +11 -8
- package/.output/server/chunks/routes/api/prompt.post.mjs +22 -13
- package/.output/server/chunks/routes/api/push/quiet.post.mjs +7 -6
- package/.output/server/chunks/routes/api/push/subscribe.post.mjs +7 -7
- package/.output/server/chunks/routes/api/push/test.post.mjs +7 -6
- package/.output/server/chunks/routes/api/push/unsubscribe.post.mjs +7 -6
- package/.output/server/chunks/routes/api/quotas.get.mjs +7 -6
- package/.output/server/chunks/routes/api/rename.post.mjs +6 -5
- package/.output/server/chunks/routes/api/requeue.post.mjs +7 -6
- package/.output/server/chunks/routes/api/restart.get.mjs +6 -5
- package/.output/server/chunks/routes/api/restart.post.mjs +6 -5
- package/.output/server/chunks/routes/api/reveal.post.mjs +91 -8
- package/.output/server/chunks/routes/api/screen-key.post.mjs +7 -6
- package/.output/server/chunks/routes/api/screen.get.mjs +7 -6
- package/.output/server/chunks/routes/api/search.get.mjs +7 -6
- package/.output/server/chunks/routes/api/seen.post.mjs +7 -6
- package/.output/server/chunks/routes/api/sessions.get.mjs +7 -6
- package/.output/server/chunks/routes/api/sessions.post.mjs +7 -6
- package/.output/server/chunks/routes/api/settings-tab.post.mjs +7 -6
- package/.output/server/chunks/routes/api/{plugins/thread-limits.get.mjs → settings.get.mjs} +10 -9
- package/.output/server/chunks/routes/api/settings.post.mjs +40 -0
- package/.output/server/chunks/routes/api/space.post.mjs +34 -18
- package/.output/server/chunks/routes/api/state.get.mjs +7 -6
- package/.output/server/chunks/routes/api/tasks/action.post.mjs +39 -0
- package/.output/server/chunks/routes/api/{plugins/profiles.get.mjs → tasks/add.post.mjs} +12 -16
- package/.output/server/chunks/routes/api/tasks/after.post.mjs +39 -0
- package/.output/server/chunks/routes/api/tasks/approve.post.mjs +39 -0
- package/.output/server/chunks/routes/api/{project/report.get.mjs → tasks/archived.get.mjs} +12 -14
- package/.output/server/chunks/routes/api/{index.get.mjs → tasks/autopilot.get.mjs} +13 -14
- package/.output/server/chunks/routes/api/tasks/autopilot.post.mjs +39 -0
- package/.output/server/chunks/routes/api/{gitroot.get.mjs → tasks/board-settings.get.mjs} +12 -14
- package/.output/server/chunks/routes/api/tasks/board-settings.post.mjs +39 -0
- package/.output/server/chunks/routes/api/tasks/coordinator.get.mjs +40 -0
- package/.output/server/chunks/routes/api/tasks/coordinator.post.mjs +39 -0
- package/.output/server/chunks/routes/api/tasks/details.get.mjs +40 -0
- package/.output/server/chunks/routes/api/tasks/limit.post.mjs +39 -0
- package/.output/server/chunks/routes/api/tasks/links.get.mjs +39 -0
- package/.output/server/chunks/routes/api/tasks/models.get.mjs +40 -0
- package/.output/server/chunks/routes/api/tasks/pick.post.mjs +39 -0
- package/.output/server/chunks/routes/api/tasks/question.post.mjs +39 -0
- package/.output/server/chunks/routes/api/tasks/scheduled.get.mjs +40 -0
- package/.output/server/chunks/routes/api/{project → tasks}/settings.get.mjs +10 -12
- package/.output/server/chunks/routes/api/tasks/start.get.mjs +40 -0
- package/.output/server/chunks/routes/api/tasks/tell.post.mjs +39 -0
- package/.output/server/chunks/routes/api/tasks.get.mjs +39 -0
- package/.output/server/chunks/routes/api/unqueue.post.mjs +7 -6
- package/.output/server/chunks/routes/api/update/status.get.mjs +6 -5
- package/.output/server/chunks/routes/api/update.get.mjs +8 -10
- package/.output/server/chunks/routes/api/update.post.mjs +8 -10
- package/.output/server/chunks/routes/api/upload.post.mjs +7 -6
- package/.output/server/chunks/routes/api/worktrees/remove.post.mjs +6 -5
- package/.output/server/chunks/routes/api/worktrees.get.mjs +6 -5
- package/.output/server/chunks/routes/favicon.ico.get.mjs +6 -5
- package/.output/server/chunks/routes/icons/_name_.get.mjs +7 -6
- package/.output/server/chunks/routes/renderer.mjs +8 -7
- package/.output/server/chunks/routes/uploads/_...name_.get.mjs +7 -6
- package/.output/server/chunks/routes/ws/_..._.mjs +7 -6
- package/.output/server/chunks/routes/ws/events.mjs +9 -7
- package/.output/server/chunks/routes/ws/term.mjs +7 -6
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +7 -6
- package/.output/server/package.json +1 -1
- package/README.md +44 -1445
- package/bin/lib/commands.mjs +44 -9
- package/bin/lib/panel.mjs +3 -11
- package/bin/lib/service.mjs +41 -2
- package/bin/lib/skill.mjs +1 -1
- package/bin/lib/tailnet.d.mts +6 -3
- package/bin/lib/tailnet.mjs +70 -32
- package/bin/lib/userpath.d.mts +14 -0
- package/bin/lib/userpath.mjs +142 -0
- package/docs/README.md +58 -0
- package/docs/RELEASING.md +174 -0
- package/docs/board.md +169 -0
- package/docs/command.md +58 -0
- package/docs/configuration.md +39 -0
- package/docs/conversation.md +132 -0
- package/docs/development.md +38 -0
- package/docs/devices.md +58 -0
- package/docs/files.md +29 -0
- package/docs/herdr-projects-1x.md +278 -0
- package/docs/home.md +52 -0
- package/docs/installation.md +174 -0
- package/docs/machines.md +74 -0
- package/docs/migrate-from-1.x-docker.md +160 -0
- package/docs/networks.md +154 -0
- package/docs/notifications.md +83 -0
- package/docs/overview.md +71 -0
- package/docs/phone.md +26 -0
- package/docs/plugins.md +109 -0
- package/docs/quick-start.md +89 -0
- package/docs/quotas.md +65 -0
- package/docs/release-notes-2.0.0.md +84 -0
- package/docs/security.md +117 -0
- package/docs/terminal.md +15 -0
- package/docs/troubleshooting.md +45 -0
- package/package.json +9 -3
- package/skills/wherdr/SKILL.md +24 -173
- package/.output/public/_nuxt/BEJHMUrj.js +0 -1
- package/.output/public/_nuxt/BOtcEDnA.js +0 -1
- package/.output/public/_nuxt/BUaYhQ2r.js +0 -6
- package/.output/public/_nuxt/CJNhn9sA.js +0 -36
- package/.output/public/_nuxt/COCvtdHN.js +0 -89
- package/.output/public/_nuxt/Cl45J6_Q.js +0 -1
- package/.output/public/_nuxt/CndPDbMI.js +0 -2
- package/.output/public/_nuxt/Ctbx58Um.js +0 -23
- package/.output/public/_nuxt/Dl1PHLOB.js +0 -1
- package/.output/public/_nuxt/Nhex3_iH.js +0 -1
- package/.output/public/_nuxt/OpWX45i7.js +0 -89
- package/.output/public/_nuxt/builds/meta/4994f3a4-4126-4f57-a9e5-c7ebb25850bc.json +0 -1
- package/.output/public/_nuxt/dTj21DMs.js +0 -1
- package/.output/public/_nuxt/entry.BohTWE-n.css +0 -2
- package/.output/public/_nuxt/kwSoIiM7.js +0 -1
- package/.output/public/_nuxt/mkEwYka4.js +0 -1
- package/.output/server/chunks/_/pluginPolicy.mjs +0 -93
- package/.output/server/chunks/_/projectBoard.mjs +0 -363
- package/.output/server/chunks/_/projectDocs.mjs +0 -106
- package/.output/server/chunks/_/projectInbox.mjs +0 -135
- package/.output/server/chunks/_/projectThreads.mjs +0 -46
- package/.output/server/chunks/_/projectThreads2.mjs +0 -61
- package/.output/server/chunks/_/projectsActions.mjs +0 -143
- package/.output/server/chunks/_/projectsPlugin.mjs +0 -30
- package/.output/server/chunks/_/projectsPlugin2.mjs +0 -57
- package/.output/server/chunks/_/reveal.mjs +0 -115
- package/.output/server/chunks/raw/dev.wherdr.open.mjs +0 -7
- package/.output/server/chunks/raw/docker-entrypoint.mjs +0 -7
- package/.output/server/chunks/raw/install-host-open.mjs +0 -7
- package/.output/server/chunks/raw/wherdr-open.mjs +0 -7
- package/.output/server/chunks/routes/api/board.get.mjs +0 -148
- package/.output/server/chunks/routes/api/plugins/thread-limits.post.mjs +0 -45
- package/.output/server/chunks/routes/api/project/inbox.get.mjs +0 -44
- package/.output/server/chunks/routes/api/project/inbox.post.mjs +0 -44
- package/.output/server/chunks/routes/api/project/memory.get.mjs +0 -43
- package/.output/server/chunks/routes/api/project/routines.get.mjs +0 -44
- package/.output/server/chunks/routes/api/project/thread.get.mjs +0 -45
- package/.output/server/chunks/routes/api/project/thread.post.mjs +0 -47
- package/bin/install-docker-skill.sh +0 -20
package/skills/wherdr/SKILL.md
CHANGED
|
@@ -1,186 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wherdr
|
|
3
|
-
description:
|
|
3
|
+
description: Handle messages from wherdr 2.0's Board for herdr-projects 1.x. Use as the Coordinator or a task's agent when a message may come from the Board.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# wherdr
|
|
6
|
+
# wherdr and herdr-projects
|
|
7
7
|
|
|
8
|
-
wherdr shows the
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
wherdr shows the user's Herdr agents on their phone and computer. Its **Board** shows the
|
|
9
|
+
herdr-projects work board (1.2.1 or later) of every machine, in the board's own five groups:
|
|
10
|
+
needs you, ready to approve, working, to do, done (Done is hidden until the user shows it, so
|
|
11
|
+
the user may not see a finished task there). wherdr reads the board through the
|
|
12
|
+
herdr-projects command line (`list --json`, `details <id> --json`); it never edits the
|
|
13
|
+
board's files.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
panel expects. Write task lines and badges in the user's language.
|
|
15
|
+
## What reaches you from the Board
|
|
17
16
|
|
|
18
|
-
wherdr
|
|
19
|
-
|
|
20
|
-
support yet, and its first run moves `~/.herdr-projects`: never install it, and never run
|
|
21
|
-
`herdr-projects update` on a 0.2 installed from `eliasstravik/herdr-projects` (it would
|
|
22
|
-
install 1.x). Ask the user first.
|
|
17
|
+
wherdr adds no message format of its own. What the user does on the Board goes through the
|
|
18
|
+
ordinary herdr-projects commands, as if typed on the machine:
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
```markdown
|
|
27
|
-
## To test
|
|
28
|
-
- [ ] Swipe between panes on the phone [b:green(ready to test)] [b:gray(t-0042)](t-0042)
|
|
29
|
-
|
|
30
|
-
## In progress
|
|
31
|
-
- [ ] Fix the quota shown for Codex [b:red(bug)] (agent → t-0043)
|
|
32
|
-
|
|
33
|
-
## In queue
|
|
34
|
-
- [ ] Dark mode for the settings
|
|
35
|
-
|
|
36
|
-
## Backlog
|
|
37
|
-
- [ ] Export a conversation as Markdown
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
- Each `## Title` is a list; each `- [ ] text` (or `- text`) line under it is a task.
|
|
41
|
-
`- [x]` marks it done. `#` headings, `###` subheadings, indented lines (task details) and
|
|
42
|
-
fenced code blocks are ignored.
|
|
43
|
-
- The last `(…)` of a line is the owner (`me`, `agent`, a name, `agent → t-NNNN`): read,
|
|
44
|
-
never shown.
|
|
45
|
-
- Lists are shown in a fixed order (the order below), whatever their order in the file.
|
|
46
|
-
Unknown titles are shown after Backlog, without buttons. Only lists present in the file
|
|
47
|
-
are shown (plus In progress when threads are open, and Done). Add or remove a list only
|
|
48
|
-
when the user asks.
|
|
49
|
-
|
|
50
|
-
## Lists the panel recognizes
|
|
51
|
-
|
|
52
|
-
Titles are matched case- and accent-insensitively; any of these names works.
|
|
53
|
-
|
|
54
|
-
| List | Accepted titles | Meaning | Buttons |
|
|
55
|
-
|---|---|---|---|
|
|
56
|
-
| To test | À tester, To test, Testing, To verify, À vérifier, Test | Deployed, ready for the user to check. | Confirm, Problem, Question |
|
|
57
|
-
| To decide | À décider, To decide, Decision(s), Decide, Question(s) | Questions only the user can settle. | Question, Answer |
|
|
58
|
-
| To review | À relire, Relire, Relecture, To review, Review(s), Code review, PR(s), Pull request(s), À valider, To validate | Pull requests for the user to review; put the PR link in a badge or in the text. | Reviewed, Comment |
|
|
59
|
-
| In progress | En cours, In progress, Doing, Ongoing, WIP, Active | Only what a thread is really doing now. Open threads are shown here live. | Add info (on a thread) |
|
|
60
|
-
| In queue | En file, En file d'attente, File d'attente, File, In queue, Queue, Queued, Up next | Decided work: launch the first task as soon as a thread slot frees, in list order. | Up, Down, Launch now, Clarify, Remove from queue |
|
|
61
|
-
| Blocked | Bloqué(e)(s), Blocked, On hold, En attente, Waiting, Stuck | Waiting for something external. Optional reason: `— blocked by: <reason>` (`— bloqué par : …`). | Unblock, Clarify |
|
|
62
|
-
| To do | À faire, Todo, To do, To dos, Todos, Next, Prochainement, Soon | Soon, in the user's priority order. Never launched without a request. | Up, Down, Queue, Launch now, Clarify, Back to backlog |
|
|
63
|
-
| Backlog | Backlog, Later, Plus tard, Idées, Ideas, Someday, Un jour | Everything else. Never launched without a request. | Launch, Clarify |
|
|
64
|
-
| Done | Fait(s), Done, Terminé(e)(s), Finished, Complete(d) | Filled by the panel with threads marked done; you may leave it out. | — |
|
|
65
|
-
|
|
66
|
-
Rules:
|
|
67
|
-
|
|
68
|
-
- **To test** holds only what is deployed and ready. Work being fixed goes back to In
|
|
69
|
-
progress; waiting work goes to In queue.
|
|
70
|
-
- **No duplicates across lists.** When the user asks for a change to a feature that is in
|
|
71
|
-
To test, remove its To test line; one line comes back to To test once the change is
|
|
72
|
-
deployed (feature and change tested together).
|
|
73
|
-
- **In queue** contract: whenever a thread slot frees (a thread is marked done), launch the
|
|
74
|
-
first In queue task and move it to In progress, as long as the project and the machine
|
|
75
|
-
have a free slot. The In queue header shows the thread slots in use
|
|
76
|
-
(`max_parallel_threads` of `PROJECT.md`).
|
|
77
|
-
|
|
78
|
-
## Global thread limit per machine
|
|
79
|
-
|
|
80
|
-
The user can set a maximum of threads per machine, across all projects, in wherdr
|
|
81
|
-
(Settings › Plugins › herdr-projects). wherdr then writes `.wherdr-limits.json` in the
|
|
82
|
-
herdr-projects folder (the parent of the project folder):
|
|
83
|
-
|
|
84
|
-
```json
|
|
85
|
-
{ "updated": "…", "this": "Server", "machines": { "Server": { "max": 2, "open": 2, "free": 0, "threads": ["shop/t-0012"] } } }
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Before starting a thread, read `machines[this].free` (or `machines["<machine>"]` for a
|
|
89
|
-
thread on another machine; `max: null` means no global limit). When `free` is `0`, wait,
|
|
90
|
-
even if the project still has slots. File missing or out of date: count the open threads of
|
|
91
|
-
every project with `herdr-projects overview`. Go beyond a limit only when the user says so.
|
|
92
|
-
|
|
93
|
-
## `(agent → t-NNNN)`
|
|
94
|
-
|
|
95
|
-
Write an In progress task handled by an open thread with the owner `(agent → t-NNNN)`
|
|
96
|
-
(the arrow may also be `->`). The panel hides that line while the thread's own live card is
|
|
97
|
-
shown, so the task does not appear twice. Write the thread ID exactly (`t-` and at least
|
|
98
|
-
four digits).
|
|
99
|
-
|
|
100
|
-
## Badges
|
|
101
|
-
|
|
102
|
-
The only decoration the panel draws. Anywhere on a task line:
|
|
103
|
-
|
|
104
|
-
- `[b:color(text)]`: a badge. `[b:(text)]` is neutral.
|
|
105
|
-
- `[b:color(text)](target)`: a clickable badge. Target: an `https://` (or `http://`) URL, or
|
|
106
|
-
a thread ID (`t-0042`, opens that thread's tab). Anything else is not clickable.
|
|
107
|
-
- Colors: `red`, `orange`, `amber`, `green`, `teal`, `blue`, `violet`, `pink`, `gray`
|
|
108
|
-
(`grey`), a hex color (`#e5484d`, `#fff`), or nothing (neutral).
|
|
109
|
-
- Text: short, at most 24 characters. It is removed from the task text (the text the
|
|
110
|
-
panel sends back to you).
|
|
111
|
-
|
|
112
|
-
Use them sparingly, when they help the user: two or three per line at most. Defaults
|
|
113
|
-
unless the user prefers otherwise:
|
|
114
|
-
|
|
115
|
-
- `[b:gray(t-0042)](t-0042)`: the thread a line comes from.
|
|
116
|
-
- `[b:green(ready to test)]`: every To test line.
|
|
117
|
-
- `[b:amber(fixing)]` (with the thread badge) on In progress work being fixed;
|
|
118
|
-
`[b:gray(queued)]` on waiting work.
|
|
119
|
-
- `[b:red(bug)]`: a fix. `[b:blue(iPhone)]`: to test on the phone.
|
|
120
|
-
- A PR: `[b:violet(PR #12)](https://github.com/<owner>/<repo>/pull/12)`.
|
|
121
|
-
|
|
122
|
-
A bare `http://` or `https://` URL in the task text also becomes a plain clickable
|
|
123
|
-
link (for example `Review https://github.com/example/project/pull/12`). Use this
|
|
124
|
-
when the URL should remain visible; use a linked badge for a compact label.
|
|
125
|
-
|
|
126
|
-
## Messages from the panel
|
|
127
|
-
|
|
128
|
-
`<task>` is the task text as the panel shows it: the line without its checkbox, badges and
|
|
129
|
-
owner. Find the line in `TASKS.md` by that text. The English or French form depends on the
|
|
130
|
-
app language; treat them the same.
|
|
131
|
-
|
|
132
|
-
Messages marked *sent* arrive as is. Messages marked *draft* are put in the user's input
|
|
133
|
-
field, completed by the user, then sent. A draft starts with `↳` and ends with ` —`: it is a
|
|
134
|
-
**reference**, the task on one line, the user's text on the lines below it, up to the next
|
|
135
|
-
reference. (Earlier versions wrote a problem and a question on one line, `✗ Problem: <task> —
|
|
136
|
-
<details>` and `? Question: <task> — <question>`: treat them the same.)
|
|
137
|
-
|
|
138
|
-
The user quotes your own messages with the same kind of line, by the time shown on the message:
|
|
139
|
-
`↳ Quote message 11:37 : <start of the message> —` (the whole message),
|
|
140
|
-
`↳ Quote point 11:37 : <question, point or passage> —`,
|
|
141
|
-
`↳ Quote decision 11:37 #3 : <question of row 3> —` (a row of a table of numbered decisions) and
|
|
142
|
-
`↳ Quote decisions 11:37 #1-4 : <questions> —` (the whole table, usually followed by `OK to all`;
|
|
143
|
-
`#1,4` when the rows are not consecutive).
|
|
144
|
-
Read the lines under each one as the answer to that message and that row, even when you have
|
|
145
|
-
written other messages since. Long excerpts are cut with `…`. A short code may follow the time
|
|
146
|
-
or the row, as in `11:37 #3 ~k3f`: wherdr uses it to tell apart two of your messages written in
|
|
147
|
-
the same minute, or two tables of one message. You have nothing to do with it.
|
|
148
|
-
`↳ Info for` names a thread (`t-NNNN`) instead of a task; its text may span several lines.
|
|
149
|
-
|
|
150
|
-
| Message (EN / FR) | From | What to do |
|
|
20
|
+
| On the Board | Command wherdr runs | Who gets it |
|
|
151
21
|
|---|---|---|
|
|
152
|
-
|
|
|
153
|
-
|
|
|
154
|
-
|
|
|
155
|
-
| `↳ Decision: <task> —` / `↳ Décision : <task> —`, then the answer below (draft) | To decide › Answer | Apply the decision, remove the line from To decide, and record it where the project keeps durable decisions. |
|
|
156
|
-
| `✓ Reviewed: <task>` / `✓ Relu : <task>` (sent) | To review › Reviewed | The user reviewed the PR: carry on (merge, deploy as the project says) and remove the line from To review. |
|
|
157
|
-
| `↳ Feedback on <task> —` / `↳ Retour sur <task> —`, then the comments below (draft) | To review › Comment | Review feedback on that PR: apply it or send it to the thread. |
|
|
158
|
-
| `↳ Move up: <task>` / `↳ Monter : <task>` (sent) | To do, In queue | Move the line one place up in its list. May arrive several times in a row. |
|
|
159
|
-
| `↳ Move down: <task>` / `↳ Descendre : <task>` (sent) | To do, In queue | Move the line one place down in its list. |
|
|
160
|
-
| `↳ Queue: <task>` / `↳ Mettre en file : <task>` (sent) | To do › Queue | Move the line from To do to the end of In queue; launch it if a slot is free and it is first. |
|
|
161
|
-
| `↳ Launch now: <task>` / `↳ Lancer maintenant : <task>` (sent) | To do, In queue › Launch now | Launch a thread now if the project and the machine have a free slot (beyond the limits only if the user says so); otherwise put the line first in In queue. |
|
|
162
|
-
| `↳ Remove from queue: <task>` / `↳ Retirer de la file : <task>` (sent) | In queue | Move the line back to the top of To do. |
|
|
163
|
-
| `↳ Back to backlog: <task>` / `↳ Remettre au backlog : <task>` (sent) | To do | Move the line to Backlog. |
|
|
164
|
-
| `↳ Launch: <task>` / `↳ Lancer : <task>` (sent) | Backlog › Launch | Start the task: a thread if a slot is free, otherwise first in In queue. |
|
|
165
|
-
| `↳ Unblock: <task>` / `↳ Débloquer : <task>` (sent) | Blocked › Unblock | Relaunch the task, or ask the user exactly what is still missing. |
|
|
166
|
-
| `↳ Mark blocked: <task>` / `↳ Marquer bloqué : <task>` (sent) | Board: a task moved to Blocked | Move the line to Blocked (add that list if it is missing); ask the user what it waits for if you do not know. |
|
|
167
|
-
| `↳ Move to To do: <task>` / `↳ Passer en À faire : <task>` (sent) | Board: a task moved to To do (from Blocked, In progress or Done) | Move the line to the end of To do (add that list if it is missing), unchecked. Do not launch it. |
|
|
168
|
-
| `↳ Mark done: <task>` / `↳ Marquer fait : <task>` (sent) | Board: a task moved to Finished | The task is finished or no longer needed: move the line, checked, to Done when the project has that list, otherwise remove it. |
|
|
169
|
-
| `↳ Detail on <task> —` / `↳ Précision sur <task> —`, then the details below (draft) | Clarify (Backlog, To do, In queue, Blocked) | Add the details to the task (indented lines under it, or the thread's brief) and confirm. Do not launch it. |
|
|
170
|
-
| `↳ Info for t-NNNN: <text>` / `↳ Info pour t-NNNN : <text>` (sent) | In progress › Add info (a thread's card, or the task of a thread) | Pass `<text>` on to that thread as is, every line of it, without rewording (`herdr-projects thread prompt <project> t-NNNN --text-file <file>`, `-` reads standard input), then confirm to the user in one line. Do not change `TASKS.md`. If the thread is done or unknown, say so instead. |
|
|
171
|
-
|
|
172
|
-
Never launch a task from To do or Backlog without one of these requests.
|
|
173
|
-
|
|
174
|
-
## After a deployment
|
|
22
|
+
| The Coordinator box | `herdr-projects coordinator tell <text>` | the Coordinator |
|
|
23
|
+
| Reply, on a task | `herdr-projects tell <id> <text>` | that task's agent (on a plan that waits: the plan goes back with the text) |
|
|
24
|
+
| Approve, on a task | `herdr-projects approve <id>` | the board: it merges, or says yes to the plan |
|
|
175
25
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
panes on the phone", not "Fix pointer events in PaneSwiper"). Add
|
|
179
|
-
`[b:green(ready to test)]` and the thread badge. Remove the matching In progress line.
|
|
26
|
+
(`herdr-projects` stands for the launcher the board hands you by its full path,
|
|
27
|
+
`~/.herdr-projects/data/bin/herdr-projects`: 1.x puts nothing on the PATH.)
|
|
180
28
|
|
|
181
|
-
|
|
29
|
+
So a message from the Board is the user's own words: answer and act on it as on any message
|
|
30
|
+
from them. Report your progress with `herdr-projects report` as usual: the Board shows the
|
|
31
|
+
state, the message and the progress you report, the pull request and the review.
|
|
182
32
|
|
|
183
|
-
##
|
|
33
|
+
## What the Board does not do
|
|
184
34
|
|
|
185
|
-
|
|
186
|
-
|
|
35
|
+
No task is added, delegated, stopped, archived or cleared from wherdr: the user asks the
|
|
36
|
+
Coordinator for that, in the Coordinator box. Settings and automations stay in the board's own
|
|
37
|
+
screens in Herdr.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Hn as e,N as t,Ot as n,P as r,St as i,U as a,gr as o,j as s}from"./C25ROUa9.js";import{Ur as c,_ as l,b as u}from"./COCvtdHN.js";var d={key:0,id:`placeholder`,class:`view placeholder hw-grid`},f={class:`empty-box`},p={class:`muted`},m=a({__name:`index`,setup(a){return i(()=>{l.value=null}),(i,a)=>(`desk`in i?i.desk:e(u))?(n(),r(`section`,d,[s(`div`,f,[a[0]||=s(`div`,{class:`empty-art`},`>_`,-1),s(`p`,null,o((`t`in i?i.t:e(c))(`Choose an agent from the list`)),1),s(`p`,p,o((`t`in i?i.t:e(c))(`or start a new one.`)),1)])])):t(``,!0)}});export{m as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,A as t,An as n,B as r,Et as i,Ft as a,Hn as o,M as s,Mn as c,N as l,Ot as u,P as d,Pt as f,R as p,Rn as m,Rt as h,St as g,U as _,V as v,Yt as y,Zt as b,an as x,b as S,ct as C,fr as w,ft as T,gr as E,ht as D,j as O,mr as k,mt as A,nn as j,pt as M,rn as N,sn as P,wn as F,zn as I}from"./C25ROUa9.js";import{_t as ee,vt as L}from"./CDWjMk9C.js";import{$ as te,A as ne,B as re,C as ie,Cr as ae,Ct as oe,E as se,F as ce,Ft as le,Gt as R,H as z,It as ue,J as de,K as fe,Kt as B,L as pe,Lt as me,M as he,Mt as ge,N as V,Nt as _e,O as ve,P as ye,Pt as be,Q as xe,Rt as Se,T as Ce,U as we,V as Te,X as Ee,Z as De,an as Oe,at as ke,ct as H,d as Ae,dr as je,dt as U,ei as Me,et as Ne,ft as Pe,gt as Fe,ht as Ie,in as Le,it as Re,j as ze,jt as Be,kt as W,lt as Ve,mt as G,o as He,ot as Ue,p as We,pt as K,st as Ge,t as Ke,ut as q,vt as qe,x as Je,xr as Ye,xt as Xe,y as Ze,yr as Qe,yt as $e}from"./OpWX45i7.js";import{m as et,u as tt}from"./CXJnLmWv.js";import{c as nt}from"./BUaYhQ2r.js";import{N as rt,O as it,T as at,Ur as ot,V as st,Vr as ct,Wr as lt,kr as ut,mt as dt,tt as ft,yn as pt}from"./COCvtdHN.js";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=ge(()=>{let e=c(new Map),n=c(),r=t(()=>{for(let t of e.value.values())if(t)return!0;return!1}),i=qe({scrollBody:c(!0)}),a=null,o=()=>{document.body.style.paddingRight=``,document.body.style.marginRight=``,Fe.layersWithOutsidePointerEventsDisabled.size===0&&(document.body.style.pointerEvents=``),document.documentElement.style.removeProperty(`--scrollbar-width`),document.body.style.overflow=n.value??``,be&&a?.(),n.value=void 0};return j(r,(e,t)=>{if(!_e)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`?et({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`),be&&(a=oe(document,`touchmove`,e=>bt(e),{passive:!1})),D(()=>{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 Se(()=>{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=c(!1),r=c(!0),i=c(!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 l(t){D(()=>{n.value=!1,e?.(t)})}return{isComposing:n,shouldDeferInput:a,handleCompositionStart:o,handleCompositionUpdate:s,handleCompositionEnd:l}}function Tt(e){let n=t(()=>o(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(){N(e=>{if(!_e)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},J=new WeakMap,At=new WeakMap,jt={},Mt=0,Nt=function(e){return e&&(e.host||Nt(e.parentNode))},Pt=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Nt(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})},Ft=function(e,t,n,r){var i=Pt(t,Array.isArray(e)?e:[e]);jt[n]||(jt[n]=new WeakMap);var a=jt[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=(J.get(e)||0)+1,l=(a.get(e)||0)+1;J.set(e,c),a.set(e,l),o.push(e),c===1&&i&&At.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(),Mt++,function(){o.forEach(function(e){var t=J.get(e)-1,i=a.get(e)-1;J.set(e,t),a.set(e,i),t||(At.has(e)||e.removeAttribute(r),At.delete(e)),i||e.removeAttribute(n)}),Mt--,Mt||(J=new WeakMap,J=new WeakMap,At=new WeakMap,jt={})}},It=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`))),Ft(r,i,n,`aria-hidden`)):function(){return null}};function Lt(e){let t;j(()=>Xe(e),e=>{let n=!1;try{n=!!e?.closest(`[popover]:not(:popover-open)`)}catch{}e&&!n?t=It(e):t&&t()}),i(()=>{t&&t()})}function Rt(e){let t=me(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=R(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=Bt(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 zt(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Bt(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=zt(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 Vt=Be(()=>c([]));function Ht(){let e=Vt();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=Ut(e.value,t),e.value.unshift(t)},remove(t){e.value=Ut(e.value,t),e.value[0]?.resume()}}}function Ut(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var Wt=`focusScope.autoFocusOnMount`,Gt=`focusScope.autoFocusOnUnmount`,Kt={bubbles:!1,cancelable:!0};function qt(e,{select:t=!1}={}){let n=R();for(let r of e)if(Y(r,{select:t}),R()!==n)return!0}function Jt(e){let t=Yt(e);return[Xt(t,e),Xt(t.reverse(),e)]}function Yt(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 Xt(e,t){for(let n of e)if(!Zt(n,{upTo:t}))return n}function Zt(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 Qt(e){return e instanceof HTMLInputElement&&`select`in e}function Y(e,{select:t=!1}={}){if(e&&e.focus){let n=R();e.focus({preventScroll:!0}),e!==n&&Qt(e)&&t&&e.select()}}var $t=_({__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:l,currentElement:d}=K(),f=c(null),p=Ht(),m=n({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});N(e=>{if(!_e)return;let t=d.value;if(!r.trapped)return;function n(e){if(m.paused||!t)return;let n=e.target;t.contains(n)?f.value=n:Y(f.value,{select:!0})}function i(e){if(m.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||Y(f.value,{select:!0}))}function a(e){let n=f.value;if(n===null||!e.some(e=>e.removedNodes.length>0))return;let r=R();r&&t.contains(r)||t.contains(n)||Y(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(Wt,Kt),r=e=>i(`mountAutoFocus`,e);e.addEventListener(Wt,r),e.dispatchEvent(n),e.removeEventListener(Wt,r),n.defaultPrevented||(qt(Yt(e),{select:!0}),R()===t&&Y(e))}N(async e=>{let t=d.value;if(await D(),!t)return;r.present!==!1&&p.add(m);let n=R();!t.contains(n)&&r.present!==!1&&h(t,n),e(()=>{let e=new CustomEvent(Gt,Kt),r=e=>{i(`unmountAutoFocus`,e)};t.addEventListener(Gt,r),t.dispatchEvent(e),t.setAttribute(`data-focus-scope-unmounting`,``),setTimeout(()=>{e.defaultPrevented||Y(n??document.body,{select:!0}),t.removeEventListener(Gt,r),p.remove(m),t.removeAttribute(`data-focus-scope-unmounting`)},0)})}),j(()=>r.present,async(e,t)=>{if(!_e)return;if(e===!1&&t===!0){p.remove(m);return}if(e!==!0||t!==!1)return;p.add(m),await D();let n=d.value;if(!n)return;let r=R();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=R();if(t&&n){let t=e.currentTarget,[i,a]=Jt(t);i&&a?!e.shiftKey&&n===a?(e.preventDefault(),r.loop&&Y(i,{select:!0})):e.shiftKey&&n===i&&(e.preventDefault(),r.loop&&Y(a,{select:!0})):n===t&&e.preventDefault()}}return(e,t)=>(u(),s(o(H),{ref_key:`currentRef`,ref:l,tabindex:`-1`,"as-child":e.asChild,as:e.as,onKeydown:g},{default:P(()=>[a(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}}),en=`menu.itemSelect`,tn=[`Enter`,` `],nn=[`ArrowDown`,`PageUp`,`Home`],rn=[`ArrowUp`,`PageDown`,`End`],an=[...nn,...rn],on={ltr:[...tn,`ArrowRight`],rtl:[...tn,`ArrowLeft`]},sn={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]};function cn(e){return e?`open`:`closed`}function ln(e){return e===`indeterminate`}function un(e){return ln(e)?`indeterminate`:e?`checked`:`unchecked`}function dn(e){let t=R();for(let n of e)if(n===t||(n.focus(),R()!==t))return}function fn(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 pn(e,t){return t?fn({x:e.clientX,y:e.clientY},t):!1}function X(e){return e.pointerType===`mouse`}var mn=_({__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)=>(u(),s(o(te),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),hn=_({__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)=>(u(),s(o(Ee),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}});function gn(){let e=c(!1);return g(()=>{oe(`keydown`,()=>{e.value=!0},{capture:!0,passive:!0}),oe([`pointerdown`,`pointermove`],()=>{e.value=!1},{capture:!0,passive:!0})}),e}var _n=ge(gn),[Z,vn]=B([`MenuRoot`,`MenuSub`],`MenuContext`),[Q,yn]=B(`MenuRoot`),bn=_({__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:l}=I(n),d=Ie(l),f=W(n,`open`,r),p=c(),m=_n();return vn({open:f,onOpenChange:e=>{f.value=e},content:p,onContentChange:e=>{p.value=e}}),yn({onClose:()=>{f.value=!1},isUsingKeyboardRef:m,dir:d,modal:i}),(e,t)=>(u(),s(o(Ne),null,{default:P(()=>[a(e.$slots,`default`)]),_:3}))}}),[xn,Sn]=B(`MenuContent`),Cn=_({__name:`MenuContentImpl`,props:T({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}},{...De}),emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`entryFocus`,`openAutoFocus`,`closeAutoFocus`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,l=Z(),d=Q(),{trapFocus:f,disableOutsidePointerEvents:p,loop:m}=I(n);Dt(),vt(p.value);let h=c(``),g=c(0),_=c(0),y=c(null),b=c(`right`),x=c(0),S=c(null),C=c(),{forwardRef:w,currentElement:T}=K(),{handleTypeaheadSearch:E}=Rt(),D=c();function O(e){let t=ht(e,D.value||R(),T.value,{loop:m.value,arrowKeyOptions:`vertical`,dir:d?.dir.value,focus:!1,attributeName:`[data-reka-collection-item]:not([data-disabled])`});t&&(D.value=t,t.scrollIntoView({block:`nearest`}))}function k(){D.value&&D.value.click()}let A=c(),M=c();j(D,e=>{if(M.value&&(e===void 0||e!==M.value.trigger.value)){if(e===void 0)return;M.value.onOpenChange(!1),M.value=void 0}}),j(T,e=>{l.onContentChange(e)}),i(()=>{window.clearTimeout(g.value)});function N(e){return b.value===y.value?.side&&pn(e,y.value?.area)}async function F(e){r(`openAutoFocus`,e),!e.defaultPrevented&&(e.preventDefault(),T.value?.focus({preventScroll:!0}))}function ee(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,R(),T.value,{loop:m.value,arrowKeyOptions:`vertical`,dir:d?.dir.value,focus:!0,attributeName:`[data-reka-collection-item]:not([data-disabled])`});if(o)return o?.focus();if(e.code===`Space`)return;let s=C.value?.getItems()??[];if(n&&(e.key===`Tab`&&d.modal.value&&e.preventDefault(),!i&&a&&!r&&E(e.key,s)),e.target!==T.value||!an.includes(e.key))return;e.preventDefault();let c=[...s.map(e=>e.ref)];rn.includes(e.key)&&c.reverse(),dn(c)}function L(e){e?.currentTarget?.contains?.(e.target)||(window.clearTimeout(g.value),h.value=``)}function te(e){if(!X(e))return;let t=e.target,n=x.value!==e.clientX;if((e?.currentTarget)?.contains(t)&&n){let t=e.clientX>x.value?`right`:`left`;b.value=t,x.value=e.clientX}}function ne(e){X(e)&&A.value&&A.value.focus()}return Sn({onItemEnter:e=>!!N(e),onItemLeave:e=>N(e)?!0:([`INPUT`,`TEXTAREA`].includes(R()?.tagName||``)||T.value?.focus(),S.value=null,!1),onTriggerLeave:e=>!!N(e),searchRef:h,highlightedElement:D,onKeydownNavigation:O,onKeydownEnter:k,filterElement:A,onFilterElementChange:e=>{A.value=e},activeSubmenuContext:M,pointerGraceTimerRef:_,onPointerGraceIntentChange:e=>{y.value=e}}),(e,t)=>(u(),s(o($t),{"as-child":``,trapped:o(f),onMountAutoFocus:F,onUnmountAutoFocus:t[7]||=e=>r(`closeAutoFocus`,e)},{default:P(()=>[v(o(Ue),{"as-child":``,"disable-outside-pointer-events":o(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:P(()=>[v(o(de),{ref_key:`rovingFocusGroupRef`,ref:C,"current-tab-stop-id":S.value,"onUpdate:currentTabStopId":t[0]||=e=>S.value=e,"as-child":``,orientation:`vertical`,dir:o(d).dir.value,loop:o(m),onEntryFocus:t[1]||=e=>{r(`entryFocus`,e),o(d).isUsingKeyboardRef.value||e.preventDefault()}},{default:P(()=>[v(o(xe),{ref:o(w),role:`menu`,as:e.as,"as-child":e.asChild,"aria-orientation":`vertical`,"data-reka-menu-content":``,"data-state":o(cn)(o(l).open.value),dir:o(d).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:ee,onBlur:L,onPointermove:te,onPointerenter:ne},{default:P(()=>[a(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`]))}}),wn=_({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=xn(),{forwardRef:i,currentElement:l}=K(),{CollectionItem:d}=Re(),f=c(!1),p=t(()=>f.value||l.value!=null&&r.highlightedElement.value===l.value);async function m(e){if(!e.defaultPrevented&&X(e)){if(n.disabled)r.onItemLeave(e);else if(!r.onItemEnter(e)){let t=e.currentTarget;r.highlightedElement.value=t,[`INPUT`,`TEXTAREA`].includes(R()?.tagName||``)||t.focus({preventScroll:!0})}}}async function h(e){await D(),!e.defaultPrevented&&X(e)&&r.highlightedElement.value===l.value&&!r.onItemLeave(e)&&r.highlightedElement.value===l.value&&(r.highlightedElement.value=void 0)}return(e,t)=>(u(),s(o(d),{value:{textValue:e.textValue}},{default:P(()=>[v(o(H),A({ref:o(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 D(),!(t.defaultPrevented||e.disabled)&&(f.value=!0,o(r).highlightedElement.value=t.currentTarget)},onBlur:t[1]||=async e=>{await D(),!e.defaultPrevented&&(f.value=!1)}}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`aria-disabled`,`data-disabled`,`data-highlighted`])]),_:3},8,[`value`]))}}),Tn=_({__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:l}=K(),d=Q(),f=xn(),p=c(!1);async function m(){let e=l.value;if(!n.disabled&&e){let e=new CustomEvent(en,{bubbles:!0,cancelable:!0});r(`select`,e),await D(),e.defaultPrevented?p.value=!1:d.onClose()}}return(e,t)=>(u(),s(wn,A(n,{ref:o(i),onClick:m,onPointerdown:t[0]||=()=>{p.value=!0},onPointerup:t[1]||=async e=>{await D(),!e.defaultPrevented&&(p.value||e.currentTarget?.click())},onKeydown:t[2]||=async t=>{let n=o(f).searchRef.value!==``;e.disabled||n&&t.key===` `||o(tn).includes(t.key)&&(t.currentTarget?.click(),t.preventDefault())}}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16))}}),[En,Dn]=B([`MenuCheckboxItem`,`MenuRadioItem`],`MenuItemIndicatorContext`),On=_({__name:`MenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=En({modelValue:c(!1)});return(e,n)=>(u(),s(o(Ve),{present:e.forceMount||o(ln)(o(t).modelValue.value)||o(t).modelValue.value===!0},{default:P(()=>[v(o(H),{as:e.as,"as-child":e.asChild,"data-state":o(un)(o(t).modelValue.value)},{default:P(()=>[a(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`])]),_:3},8,[`present`]))}}),kn=_({__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=le(n,[`modelValue`]),c=Pe(i),l=W(n,`modelValue`,r);return Dn({modelValue:l}),(e,t)=>(u(),s(Tn,A({role:`menuitemcheckbox`},o(c),{"aria-checked":o(ln)(o(l))?`mixed`:o(l),"data-state":o(un)(o(l)),onSelect:t[0]||=async e=>{r(`select`,e),o(ln)(o(l))?l.value=!0:l.value=!o(l)}}),{default:P(()=>[a(e.$slots,`default`,{modelValue:o(l)})]),_:3},16,[`aria-checked`,`data-state`]))}}),An=_({__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=U(n,r),c=Z(),{forwardRef:l,currentElement:d}=K();return Lt(d),(e,t)=>(u(),s(Cn,A(o(i),{ref:o(l),"trap-focus":o(c).open.value,"disable-outside-pointer-events":o(c).open.value,"disable-outside-scroll":!0,onDismiss:t[0]||=e=>o(c).onOpenChange(!1),onFocusOutside:t[1]||=L(e=>r(`focusOutside`,e),[`prevent`])}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16,[`trap-focus`,`disable-outside-pointer-events`]))}}),jn=_({__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=U(e,t),r=Z();return(e,t)=>(u(),s(Cn,A(o(n),{"trap-focus":!1,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,onDismiss:t[0]||=e=>o(r).onOpenChange(!1)}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16))}}),Mn=_({__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=U(e,t),r=Z(),i=Q();return(e,t)=>(u(),s(o(Ve),{present:e.forceMount||o(r).open.value},{default:P(()=>[o(i).modal.value?(u(),s(An,k(A({key:0},{...e.$attrs,...o(n)})),{default:P(()=>[a(e.$slots,`default`)]),_:3},16)):(u(),s(jn,k(A({key:1},{...e.$attrs,...o(n)})),{default:P(()=>[a(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),[Nn,Pn]=B(`MenuGroup`),Fn=_({__name:`MenuGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=q(void 0,`reka-menu-group`);return Pn({id:n}),(e,r)=>(u(),s(o(H),A({role:`group`},t,{"aria-labelledby":o(n)}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16,[`aria-labelledby`]))}}),In=_({__name:`MenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,n=Nn({id:``});return(e,r)=>(u(),s(o(H),A(t,{id:o(n).id||void 0}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16,[`id`]))}}),Ln=_({__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)=>(u(),s(o(ke),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),[Rn,zn]=B(`MenuRadioGroup`),Bn=_({__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,c=le(r,[`modelValue`]),l=Pe(c),d=W(r,`modelValue`,i);return zn({modelValue:d,onValueChange:e=>{d.value=e}}),(t,n)=>(u(),s(Fn,k(e(o(l))),{default:P(()=>[a(t.$slots,`default`,{modelValue:o(d)})]),_:3},16))}}),Vn=_({__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,c=le(r,[`value`]),l=Pe(c),{value:d}=I(r),f=Rn(),p=t(()=>f.modelValue.value===d?.value);return Dn({modelValue:p}),(e,t)=>(u(),s(Tn,A({role:`menuitemradio`},o(l),{"aria-checked":p.value,"data-state":o(un)(p.value),onSelect:t[0]||=async e=>{i(`select`,e),o(f).onValueChange(o(d))}}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16,[`aria-checked`,`data-state`]))}}),Hn=_({__name:`MenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(u(),s(o(H),A(t,{role:`separator`,"aria-orientation":`horizontal`}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16))}}),[Un,Wn]=B(`MenuSub`),Gn=_({__name:`MenuSub`,props:{open:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=W(n,`open`,t,{defaultValue:!1,passive:n.open===void 0}),i=Z(),l=c(),d=c();return N(e=>{i?.open.value===!1&&(r.value=!1),e(()=>r.value=!1)}),vn({open:r,onOpenChange:e=>{r.value=e},content:d,onContentChange:e=>{d.value=e}}),Wn({triggerId:``,contentId:``,trigger:l,onTriggerChange:e=>{l.value=e}}),(e,t)=>(u(),s(o(Ne),null,{default:P(()=>[a(e.$slots,`default`)]),_:3}))}}),Kn=_({__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=U(e,t),r=Z(),i=Q(),c=Un(),l=xn(),{forwardRef:d,currentElement:f}=K();return c.contentId||=q(void 0,`reka-menu-sub-content`),(e,t)=>(u(),s(o(Ve),{present:e.forceMount||o(r).open.value},{default:P(()=>[v(Cn,A(o(n),{id:o(c).contentId,ref:o(d),"aria-labelledby":o(c).triggerId,align:`start`,side:o(i).dir.value===`rtl`?`left`:`right`,"disable-outside-pointer-events":!1,"disable-outside-scroll":!1,"trap-focus":!1,onOpenAutoFocus:t[0]||=L(e=>{o(i).isUsingKeyboardRef.value&&o(f)?.focus()},[`prevent`]),onCloseAutoFocus:t[1]||=L(()=>{},[`prevent`]),onFocusOutside:t[2]||=e=>{if(e.defaultPrevented)return;let t=o(l).filterElement.value?.contains(e.target);e.target!==o(c).trigger.value&&!t&&o(r).onOpenChange(!1)},onEscapeKeyDown:t[3]||=e=>{o(i).onClose(),e.preventDefault()},onKeydown:t[4]||=e=>{let t=e.currentTarget?.contains(e.target),n=o(sn)[o(i).dir.value].includes(e.key);t&&n&&(o(r).onOpenChange(!1),o(l).filterElement.value?(o(l).filterElement.value.focus(),o(l).highlightedElement.value=o(c).trigger.value,o(c).trigger.value?.scrollIntoView({block:`nearest`})):o(c).trigger.value?.focus(),e.preventDefault())}}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`,`side`])]),_:3},8,[`present`]))}}),qn=_({__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=Z(),r=Q(),l=Un(),d=xn();j(n.open,e=>{e?d.activeSubmenuContext.value={onOpenChange:n.onOpenChange,trigger:l.trigger}:d.activeSubmenuContext.value?.trigger.value===l.trigger.value&&(d.activeSubmenuContext.value=void 0)});let f=c(null);l.triggerId||=q(void 0,`reka-menu-sub-trigger`);function p(){f.value&&window.clearTimeout(f.value),f.value=null}i(()=>{p()});function m(e){X(e)&&(d.onItemEnter(e)||!t.disabled&&!n.open.value&&!f.value&&(d.onPointerGraceIntentChange(null),f.value=window.setTimeout(()=>{n.onOpenChange(!0),p()},100)))}async function h(e){if(!X(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`],s=t[i?`right`:`left`];d.onPointerGraceIntentChange({area:[{x:e.clientX+a,y:e.clientY},{x:o,y:t.top},{x:s,y:t.top},{x:s,y:t.bottom},{x:o,y:t.bottom}],side:r}),window.clearTimeout(d.pointerGraceTimerRef.value),d.pointerGraceTimerRef.value=window.setTimeout(()=>d.onPointerGraceIntentChange(null),300)}else{if(d.onTriggerLeave(e))return;d.onPointerGraceIntentChange(null)}}async function g(e){let i=d.searchRef.value!==``;t.disabled||i&&e.key===` `||on[r.dir.value].includes(e.key)&&(n.onOpenChange(!0),await D(),n.content.value?.focus(),e.preventDefault())}return(e,r)=>(u(),s(mn,{"as-child":``},{default:P(()=>[v(wn,A(t,{id:o(l).triggerId,ref:e=>{e&&o(l)?.onTriggerChange(e?.$el)},"aria-haspopup":`menu`,"aria-expanded":o(n).open.value,"aria-controls":o(l).contentId,"data-state":o(cn)(o(n).open.value),onClick:r[0]||=async e=>{t.disabled||e.defaultPrevented||(e.currentTarget?.focus(),o(n).open.value||o(n).onOpenChange(!0))},onPointermove:m,onPointerleave:h,onKeydown:g}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16,[`id`,`aria-expanded`,`aria-controls`,`data-state`])]),_:3}))}}),Jn=_({__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 K(),(t,r)=>(u(),s(o(hn),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),Yn=_({__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=G(n);return K(),(t,n)=>(u(),s(o(kn),k(e({...r,...o(i)})),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),[Xn,Zn]=B(`ContextMenuRoot`),Qn=_({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:l,pressOpenDelay:d}=I(n);K();let f=Ie(i),p=c(!1);return Zn({open:p,onOpenChange:e=>{p.value=e},dir:f,modal:l,triggerElement:c(),pressOpenDelay:d}),j(p,e=>{r(`update:open`,e)}),(e,t)=>(u(),s(o(bn),{open:p.value,"onUpdate:open":t[0]||=e=>p.value=e,dir:o(f),modal:o(l)},{default:P(()=>[a(e.$slots,`default`)]),_:3},8,[`open`,`dir`,`modal`]))}}),$n=_({__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=U(e,t);K();let r=Xn(),i=c(!1);return(e,t)=>(u(),s(o(Mn),A(o(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===o(r).triggerElement.value&&e.preventDefault(),!e.defaultPrevented&&!o(r).modal.value&&(i.value=!0)}}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16))}}),er=_({__name:`ContextMenuGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return K(),(t,r)=>(u(),s(o(Fn),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),tr=_({__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=G(n);return K(),(t,n)=>(u(),s(o(Tn),k(e({...r,...o(i)})),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),nr=_({__name:`ContextMenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return K(),(t,r)=>(u(),s(o(On),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),rr=_({__name:`ContextMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return K(),(t,r)=>(u(),s(o(In),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),ir=_({__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)=>(u(),s(o(Ln),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),ar=_({__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=G(n);return K(),(t,n)=>(u(),s(o(Bn),k(e({...r,...o(i)})),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),or=_({__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=G(n);return K(),(t,n)=>(u(),s(o(Vn),k(e({...r,...o(i)})),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),sr=_({__name:`ContextMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return K(),(t,r)=>(u(),s(o(Hn),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),cr=_({__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;K();let i=W(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0});return(e,t)=>(u(),s(o(Gn),{open:o(i),"onUpdate:open":t[0]||=e=>F(i)?i.value=e:null},{default:P(()=>[a(e.$slots,`default`,{open:o(i)})]),_:3},8,[`open`]))}}),lr=_({__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=U(e,t);return K(),(e,t)=>(u(),s(o(Kn),A(o(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:P(()=>[a(e.$slots,`default`)]),_:3},16))}}),ur=_({__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 K(),(t,r)=>(u(),s(o(qn),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}});function dr(e){return e.pointerType!==`mouse`}var fr=_({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}=K(),s=Xn(),l=c({x:0,y:0}),f=t(()=>({getBoundingClientRect:()=>({width:0,height:0,left:l.value.x,right:l.value.x,top:l.value.y,bottom:l.value.y,...l.value})})),p=c(0);function m(){window.clearTimeout(p.value)}function h(e){l.value={x:e.clientX,y:e.clientY},s.onOpenChange(!0)}async function _(e){n.value||(await D(),e.defaultPrevented||(m(),h(e),e.preventDefault()))}async function y(e){n.value||(await D(),dr(e)&&!e.defaultPrevented&&(m(),p.value=window.setTimeout(h,s.pressOpenDelay.value,e)))}async function b(e){n.value||(await D(),dr(e)&&!e.defaultPrevented&&m())}return g(()=>{i.value&&(s.triggerElement.value=i.value)}),(e,t)=>(u(),d(S,null,[v(o(mn),{as:`template`,reference:f.value},null,8,[`reference`]),v(o(H),A({ref:o(r),as:e.as,"as-child":e.asChild,"data-state":o(s).open.value?`open`:`closed`,"data-disabled":o(n)?``:void 0,style:{WebkitTouchCallout:`none`,pointerEvents:`auto`}},e.$attrs,{onContextmenu:_,onPointerdown:y,onPointermove:b,onPointercancel:b,onPointerup:b}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`data-state`,`data-disabled`])],64))}}),pr=_({__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 K(),(t,r)=>(u(),s(o(hn),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),mr=_({__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=G(n);return K(),(t,n)=>(u(),s(o(kn),k(e({...r,...o(i)})),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),[hr,gr]=B(`DropdownMenuRoot`),_r=_({__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;K();let i=W(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),l=c(),{modal:d,dir:f}=I(n),p=Ie(f);return gr({open:i,onOpenChange:e=>{i.value=e},onOpenToggle:()=>{i.value=!i.value},triggerId:``,triggerElement:l,contentId:``,modal:d,dir:p}),(e,t)=>(u(),s(o(bn),{open:o(i),"onUpdate:open":t[0]||=e=>F(i)?i.value=e:null,dir:o(p),modal:o(d)},{default:P(()=>[a(e.$slots,`default`,{open:o(i)})]),_:3},8,[`open`,`dir`,`modal`]))}}),vr=_({__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=U(e,t);K();let r=hr(),i=c(!1);function l(e){e.defaultPrevented||(i.value||setTimeout(()=>{r.triggerElement.value?.focus()},0),i.value=!1,e.preventDefault())}return r.contentId||=q(void 0,`reka-dropdown-menu-content`),(e,t)=>(u(),s(o(Mn),A(o(n),{id:o(r).contentId,"aria-labelledby":o(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:l,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;(!o(r).modal.value||a)&&(i.value=!0),o(r).triggerElement.value?.contains(e.target)&&e.preventDefault()}}),{default:P(()=>[a(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`]))}}),yr=_({__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,l=W(r,`modelValue`,n,{defaultValue:``,passive:r.modelValue===void 0}),d=Q(),f=xn(),p=Un(null);j(l,e=>{f.searchRef.value=e??``},{immediate:!0});let{primitiveElement:m,currentElement:h}=Ge(),_=t(()=>r.disabled||!1),v=c();x(()=>v.value=f.highlightedElement.value?.id),g(()=>{f.onFilterElementChange(h.value),setTimeout(()=>{r.autoFocus&&(!p||d.isUsingKeyboardRef.value)&&h.value?.focus()},1)}),i(()=>{f.onFilterElementChange(void 0),f.searchRef.value=``});let{isComposing:y,shouldDeferInput:b,handleCompositionStart:S,handleCompositionUpdate:C,handleCompositionEnd:w}=wt(e=>{let t=e.target;t&&(l.value=t.value,f.searchRef.value=t.value)});function T(e){if(_.value||b.value)return;let t=e.target;l.value=t.value,f.searchRef.value=t.value}function E(e){if(!_.value){if(y.value){e.stopPropagation();return}[`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key)?(e.preventDefault(),f.onKeydownNavigation(e)):e.key===`Enter`?(e.preventDefault(),f.onKeydownEnter(e)):e.key===`Escape`&&l.value&&(e.stopPropagation(),l.value=``,f.searchRef.value=``)}}return(e,t)=>(u(),s(o(H),{ref_key:`primitiveElement`,ref:m,as:e.as,"as-child":e.asChild,value:o(l),disabled:_.value?``:void 0,"data-disabled":_.value?``:void 0,"aria-disabled":_.value?!0:void 0,"aria-activedescendant":v.value,type:`text`,role:`searchbox`,onInput:T,onKeydown:E,onCompositionstart:o(S),onCompositionupdate:o(C),onCompositionend:o(w)},{default:P(()=>[a(e.$slots,`default`,{modelValue:o(l)})]),_:3},8,[`as`,`as-child`,`value`,`disabled`,`data-disabled`,`aria-disabled`,`aria-activedescendant`,`onCompositionstart`,`onCompositionupdate`,`onCompositionend`]))}}),br=_({__name:`DropdownMenuGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return K(),(t,r)=>(u(),s(o(Fn),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),xr=_({__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=G(n);return K(),(t,n)=>(u(),s(o(Tn),k(e({...r,...o(i)})),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),Sr=_({__name:`DropdownMenuItemIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return K(),(t,r)=>(u(),s(o(On),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),Cr=_({__name:`DropdownMenuLabel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return K(),(t,r)=>(u(),s(o(In),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),wr=_({__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)=>(u(),s(o(Ln),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),Tr=_({__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=G(n);return K(),(t,n)=>(u(),s(o(Bn),k(e({...r,...o(i)})),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),Er=_({__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=U(t,n);return K(),(t,n)=>(u(),s(o(Vn),k(e(o(r))),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),Dr=_({__name:`DropdownMenuSeparator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return K(),(t,r)=>(u(),s(o(Hn),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),Or=_({__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=W(n,`open`,t,{passive:n.open===void 0,defaultValue:n.defaultOpen??!1});return K(),(e,t)=>(u(),s(o(Gn),{open:o(r),"onUpdate:open":t[0]||=e=>F(r)?r.value=e:null},{default:P(()=>[a(e.$slots,`default`,{open:o(r)})]),_:3},8,[`open`]))}}),kr=_({__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=U(e,t);return K(),(e,t)=>(u(),s(o(Kn),A(o(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:P(()=>[a(e.$slots,`default`)]),_:3},16))}}),Ar=_({__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 K(),(t,r)=>(u(),s(o(qn),k(e(n)),{default:P(()=>[a(t.$slots,`default`)]),_:3},16))}}),jr=_({__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=hr(),{forwardRef:r,currentElement:i}=K();return g(()=>{n.triggerElement=i}),n.triggerId||=q(void 0,`reka-dropdown-menu-trigger`),(e,i)=>(u(),s(o(mn),{"as-child":``},{default:P(()=>[v(o(H),{id:o(n).triggerId,ref:o(r),type:e.as===`button`?`button`:void 0,"as-child":t.asChild,as:e.as,"aria-haspopup":`menu`,"aria-expanded":o(n).open.value,"aria-controls":o(n).open.value?o(n).contentId:void 0,"data-disabled":e.disabled?``:void 0,disabled:e.disabled,"data-state":o(n).open.value?`open`:`closed`,onClick:i[0]||=async t=>{!e.disabled&&t.button===0&&t.ctrlKey===!1&&(o(n)?.onOpenToggle(),await D(),o(n).open.value&&t.preventDefault())},onKeydown:i[1]||=ee(t=>{e.disabled||([`Enter`,` `].includes(t.key)&&o(n).onOpenToggle(),t.key===`ArrowDown`&&o(n).onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(t.key)&&t.preventDefault())},[`enter`,`space`,`arrow-down`])},{default:P(()=>[a(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as-child`,`as`,`aria-expanded`,`aria-controls`,`data-disabled`,`disabled`,`data-state`])]),_:3}))}}),Mr={Root:Qn,Trigger:fr,Portal:ir,Content:$n,Arrow:Jn,Item:tr,Group:er,Separator:sr,CheckboxItem:Yn,ItemIndicator:nr,Label:rr,RadioGroup:ar,RadioItem:or,Sub:cr,SubContent:lr,SubTrigger:ur},$={Root:_r,Trigger:jr,Portal:wr,Content:vr,Arrow:pr,Item:xr,Group:br,Separator:Dr,CheckboxItem:mr,ItemIndicator:Sr,Label:Cr,RadioGroup:Tr,RadioItem:Er,Sub:Or,SubContent:kr,SubTrigger:Ar,Filter:yr};function Nr(){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=z(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 Pr(e){return(t,n)=>Fr(t,n,o(e))}function Fr(e,t,n){return z(n,`messages.${e}`,e).replace(/\{(\w+)\}/g,(e,n)=>`${t?.[n]??`{${n}}`}`)}function Ir(e){return{lang:t(()=>o(e).name),code:t(()=>o(e).code),dir:t(()=>o(e).dir),locale:F(e)?e:c(e),t:Pr(e)}}function Lr(e){return et(e,{dir:`ltr`})}var Rr=Lr({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`}}}),zr=Symbol.for(`nuxt-ui.locale-context`),Br=ge(e=>{let n=e||m(C(zr,Rr));return Ir(t(()=>n.value||Rr))}),Vr={__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 g=n,_=i,y=b(),{t:x,dir:C}=Br(),T=nt(),{filterGroups:D}=Nr(),j=c(``),M=t({get:()=>g.searchTerm??j.value,set:e=>{j.value=e,_(`update:searchTerm`,e)}}),N=m(()=>et(g.filter,{placeholder:x(`dropdownMenu.search`),variant:`none`})),F=ve(m(()=>g.portal)),I=U(le(g,`sub`,`items`,`portal`,`labelKey`,`descriptionKey`,`checkedIcon`,`loadingIcon`,`externalIcon`,`size`,`filter`,`filterFields`,`ignoreFilter`,`searchTerm`,`class`,`ui`,`uiOverride`),_),ee=()=>fe(y,[`default`]),[te,re]=$e(),ie=t(()=>C.value===`rtl`?T.ui.icons.chevronLeft:T.ui.icons.chevronRight),ae=t(()=>g.items?.length?we(g.items)?g.items:[g.items]:[]),oe=e=>!!e.type&&[`label`,`separator`].includes(e.type),ce=t(()=>{if(!g.filter||g.ignoreFilter||!M.value)return ae.value;let e=Array.isArray(g.filterFields)&&g.filterFields.length?g.filterFields:[g.labelKey];return D(ae.value,M.value,{fields:e,isStructural:oe})}),R=t(()=>ce.value.some(e=>e.some(e=>!oe(e))));return(t,i)=>(u(),d(S,null,[v(o(te),null,{default:P(({item:e,active:i,index:c})=>[a(t.$slots,e.slot||`item`,{item:e,index:c,ui:n.ui},()=>[a(t.$slots,e.slot?`${e.slot}-leading`:`item-leading`,{item:e,active:i,index:c,ui:n.ui},()=>[e.loading?(u(),s(V,{key:0,name:n.loadingIcon||o(T).ui.icons.loading,"data-slot":`itemLeadingIcon`,class:w(n.ui.itemLeadingIcon({class:[n.uiOverride?.itemLeadingIcon,e.ui?.itemLeadingIcon],color:e?.color,loading:!0}))},null,8,[`name`,`class`])):e.icon?(u(),s(V,{key:1,name:e.icon,"data-slot":`itemLeadingIcon`,class:w(n.ui.itemLeadingIcon({class:[n.uiOverride?.itemLeadingIcon,e.ui?.itemLeadingIcon],color:e?.color,active:i}))},null,8,[`name`,`class`])):e.avatar?(u(),s(he,A({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`])):l(``,!0)]),o(z)(e,g.labelKey)||y[e.slot?`${e.slot}-label`:`item-label`]||o(z)(e,g.descriptionKey)||y[e.slot?`${e.slot}-description`:`item-description`]?(u(),d(`span`,{key:0,"data-slot":`itemWrapper`,class:w(n.ui.itemWrapper({class:[n.uiOverride?.itemWrapper,e.ui?.itemWrapper]}))},[O(`span`,{"data-slot":`itemLabel`,class:w(n.ui.itemLabel({class:[n.uiOverride?.itemLabel,e.ui?.itemLabel],active:i}))},[a(t.$slots,e.slot?`${e.slot}-label`:`item-label`,{item:e,active:i,index:c},()=>[r(E(o(z)(e,g.labelKey)),1)]),e.target===`_blank`&&n.externalIcon!==!1?(u(),s(V,{key:0,name:typeof n.externalIcon==`string`?n.externalIcon:o(T).ui.icons.external,"data-slot":`itemLabelExternalIcon`,class:w(n.ui.itemLabelExternalIcon({class:[n.uiOverride?.itemLabelExternalIcon,e.ui?.itemLabelExternalIcon],color:e?.color,active:i}))},null,8,[`name`,`class`])):l(``,!0)],2),o(z)(e,g.descriptionKey)||y[e.slot?`${e.slot}-description`:`item-description`]?(u(),d(`span`,{key:0,"data-slot":`itemDescription`,class:w(n.ui.itemDescription({class:[n.uiOverride?.itemDescription,e.ui?.itemDescription]}))},[a(t.$slots,e.slot?`${e.slot}-description`:`item-description`,{item:e,active:i,index:c},()=>[r(E(o(z)(e,g.descriptionKey)),1)])],2)):l(``,!0)],2)):l(``,!0),O(`span`,{"data-slot":`itemTrailing`,class:w(n.ui.itemTrailing({class:[n.uiOverride?.itemTrailing,e.ui?.itemTrailing]}))},[a(t.$slots,e.slot?`${e.slot}-trailing`:`item-trailing`,{item:e,active:i,index:c,ui:n.ui},()=>[e.children?.length?(u(),s(V,{key:0,name:ie.value,"data-slot":`itemTrailingIcon`,class:w(n.ui.itemTrailingIcon({class:[n.uiOverride?.itemTrailingIcon,e.ui?.itemTrailingIcon],color:e?.color,active:i}))},null,8,[`name`,`class`])):e.kbds?.length?(u(),d(`span`,{key:1,"data-slot":`itemTrailingKbds`,class:w(n.ui.itemTrailingKbds({class:[n.uiOverride?.itemTrailingKbds,e.ui?.itemTrailingKbds]}))},[(u(!0),d(S,null,f(e.kbds,(t,r)=>(u(),s(se,A({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)):l(``,!0)]),v(o($).ItemIndicator,{"as-child":``},{default:P(()=>[v(V,{name:n.checkedIcon||o(T).ui.icons.check,"data-slot":`itemTrailingIcon`,class:w(n.ui.itemTrailingIcon({class:[n.uiOverride?.itemTrailingIcon,e.ui?.itemTrailingIcon],color:e?.color}))},null,8,[`name`,`class`])]),_:2},1024)],2)])]),_:3}),v(o($).Portal,k(e(o(F))),{default:P(()=>[v(o(pe),null,{default:P(()=>[(u(),s(h(n.sub?o($).SubContent:o($).Content),A({"data-slot":`content`,class:n.ui.content({class:[n.uiOverride?.content,g.class]})},o(I)),{default:P(()=>[n.filter?(u(),s(o($).Filter,{key:0,modelValue:M.value,"onUpdate:modelValue":i[1]||=e=>M.value=e,"as-child":``},{default:P(()=>[v(Ce,A({autofocus:``,autocomplete:`off`,size:n.size},N.value,{"data-slot":`input`,class:n.ui.input({class:n.uiOverride?.input}),onChange:i[0]||=L(()=>{},[`stop`])}),null,16,[`size`,`class`])]),_:1},8,[`modelValue`])):l(``,!0),a(t.$slots,`content-top`,{sub:n.sub??!1}),!M.value||R.value?(u(),d(`div`,{key:1,role:`presentation`,"data-slot":`viewport`,class:w(n.ui.viewport({class:n.uiOverride?.viewport}))},[(u(!0),d(S,null,f(ce.value,(e,r)=>(u(),s(o($).Group,{key:`group-${r}`,"data-slot":`group`,class:w(n.ui.group({class:n.uiOverride?.group}))},{default:P(()=>[(u(!0),d(S,null,f(e,(e,i)=>(u(),d(S,{key:`group-${r}-${i}`},[e.type===`label`?(u(),s(o($).Label,{key:0,"data-slot":`label`,class:w(n.ui.label({class:[n.uiOverride?.label,e.ui?.label,e.class]}))},{default:P(()=>[v(o(re),{item:e,index:i},null,8,[`item`,`index`])]),_:2},1032,[`class`])):e.type===`separator`?(u(),s(o($).Separator,{key:1,"data-slot":`separator`,class:w(n.ui.separator({class:[n.uiOverride?.separator,e.ui?.separator,e.class]}))},null,8,[`class`])):e?.children?.length?(u(),s(o($).Sub,{key:2,open:e.open,"default-open":e.defaultOpen},{default:P(()=>[v(o($).SubTrigger,{as:`button`,type:`button`,disabled:e.disabled,"text-value":o(z)(e,g.labelKey),"data-slot":`item`,class:w(n.ui.item({class:[n.uiOverride?.item,e.ui?.item,e.class],color:e?.color}))},{default:P(()=>[v(o(re),{item:e,index:i},null,8,[`item`,`index`])]),_:2},1032,[`disabled`,`text-value`,`class`]),v(Vr,A({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),p({_:2},[f(ee(),(e,n)=>({name:n,fn:P(e=>[a(t.$slots,n,A({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`?(u(),s(o($).CheckboxItem,{key:3,"model-value":e.checked,disabled:e.disabled,"text-value":o(z)(e,g.labelKey),"data-slot":`item`,class:w(n.ui.item({class:[n.uiOverride?.item,e.ui?.item,e.class],color:e?.color})),"onUpdate:modelValue":e.onUpdateChecked,onSelect:e.onSelect},{default:P(()=>[v(o(re),{item:e,index:i},null,8,[`item`,`index`])]),_:2},1032,[`model-value`,`disabled`,`text-value`,`class`,`onUpdate:modelValue`,`onSelect`])):(u(),s(ne,A({key:4,ref_for:!0},o(ye)(e),{custom:``}),{default:P(({active:t,...r})=>[v(o($).Item,{"as-child":``,disabled:e.disabled,"text-value":o(z)(e,g.labelKey),onSelect:e.onSelect},{default:P(()=>[v(ze,A({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:P(()=>[v(o(re),{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)):l(``,!0),M.value&&!R.value?(u(),d(`div`,{key:2,"data-slot":`empty`,class:w(n.ui.empty({class:n.uiOverride?.empty}))},[a(t.$slots,`empty`,{searchTerm:M.value},()=>[r(E(o(x)(`dropdownMenu.noMatch`,{searchTerm:M.value})),1)])],2)):l(``,!0),a(t.$slots,`default`),a(t.$slots,`content-bottom`,{sub:n.sub??!1})]),_:3},16,[`class`]))]),_:3})]),_:3},16)],64))}},Hr={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`}},Ur={__name:`UDropdownMenu`,props:M({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:M([`update:open`],[`update:searchTerm`]),setup(n,{emit:r}){let i=n,c=r,d=b(),h=y(n,`searchTerm`,{type:String,default:``}),g=Te(`dropdownMenu`,i),_=nt(),x=re(ue(g,`defaultOpen`,`open`,`modal`),c),S=m(()=>et(g.content,{side:`bottom`,sideOffset:8,collisionPadding:8})),C=m(()=>et(g.arrow,{rounded:!0})),T=()=>fe(d,[`default`]),E=t(()=>ce({extend:Hr,..._.ui?.dropdownMenu||{}})({size:g.size}));return(t,n)=>(u(),s(o(_r),k(e(o(x))),{default:P(({open:r})=>[d.default?(u(),s(o(jr),{key:0,"as-child":``,class:w(o(g).class),disabled:o(g).disabled},{default:P(()=>[a(t.$slots,`default`,{open:r})]),_:2},1032,[`class`,`disabled`])):l(``,!0),v(Vr,A({"search-term":h.value,"onUpdate:searchTerm":n[0]||=e=>h.value=e,class:E.value.content({class:[!d.default&&o(g).class,o(g).ui?.content]}),ui:E.value,"ui-override":o(g).ui},S.value,{items:o(g).items,portal:o(g).portal,"label-key":o(g).labelKey,"description-key":o(g).descriptionKey,"checked-icon":o(g).checkedIcon,"loading-icon":o(g).loadingIcon,"external-icon":o(g).externalIcon,size:o(g).size,filter:o(g).filter,"filter-fields":o(g).filterFields,"ignore-filter":o(g).ignoreFilter}),p({default:P(()=>[o(g).arrow?(u(),s(o(pr),A({key:0},C.value,{"data-slot":`arrow`,class:E.value.arrow({class:o(g).ui?.arrow})}),null,16,[`class`])):l(``,!0)]),_:2},[f(T(),(n,r)=>({name:r,fn:P(n=>[a(t.$slots,r,k(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))}},Wr={class:`offline-note`,role:`status`},Gr={class:`offline-note-text`},Kr=Object.assign(_({__name:`OfflineNote`,props:{label:{},at:{},dateStyle:{}},setup(e){let n=e,r=t(()=>n.label?n.at?`${n.label} · ${new Date(n.at).toLocaleString(ct,{dateStyle:n.dateStyle||`short`,timeStyle:`short`})}`:n.label:it.value?lt(`Lost connection to ${it.value} — reconnecting…`,`Connexion à ${it.value} perdue — reconnexion…`):lt(`Lost connection to the server — reconnecting…`,`Connexion au serveur perdue — reconnexion…`));return(e,t)=>{let n=V;return u(),d(`div`,Wr,[v(n,{name:`i-lucide-wifi-off`}),O(`span`,Gr,E(o(r)),1),(`netDown`in e?e.netDown:o(st))&&!(`locked`in e?e.locked:o(rt))?(u(),d(`button`,{key:0,type:`button`,class:`offline-retry`,onClick:t[0]||=(...t)=>(`retryEvents`in e?e.retryEvents:o(ft))&&(`retryEvents`in e?e.retryEvents:o(ft))(...t)},E((`t`in e?e.t:o(ot))(`Retry`)),1)):l(``,!0)])}}}),{__name:`OfflineNote`}),qr={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`},Jr=e=>e&&Object.hasOwn(qr,e)?qr[e]:null,Yr={class:`pill-source`},Xr={class:`pill-model`},Zr={key:0,class:`pill-effort`},Qr={key:1,class:`pill unknown`},$r=Object.assign(_({__name:`StatusPill`,props:{pane:{},kind:{type:Boolean},model:{type:Boolean},source:{}},setup(e){return(t,n)=>e.pane?(u(),d(`span`,{key:0,class:w([`pill`,(`statusKey`in t?t.statusKey:o(Le))(e.pane)])},[n[3]||=O(`i`,null,null,-1),r(E((`statusLabel`in t?t.statusLabel:o(Oe))(e.pane)),1),e.source?(u(),d(S,{key:0},[n[0]||=O(`span`,{class:`sep`},`·`,-1),O(`span`,Yr,E(e.source),1)],64)):l(``,!0),e.kind&&e.pane.agent?(u(),d(S,{key:1},[n[1]||=O(`span`,{class:`sep`},`·`,-1),O(`span`,{class:w([`pill-kind`,e.pane.agent])},E(e.pane.agent),3)],64)):l(``,!0),e.model&&e.pane.model?(u(),d(S,{key:2},[n[2]||=O(`span`,{class:`sep`},`·`,-1),O(`span`,Xr,E(e.pane.model.label),1),e.pane.model.effort?(u(),d(`span`,Zr,E(e.pane.model.effort),1)):l(``,!0)],64)):l(``,!0)],2)):(u(),d(`span`,Qr,[n[4]||=O(`i`,null,null,-1),r(E((`t`in t?t.t:o(ot))(`Closed`)),1)]))}}),{__name:`StatusPill`}),ei=[`blocked`,`todo`,`ongoing`,`finished`];function ti(e){let t=pt(e);if(t===`blocked`)return`blocked`;let n=!!(e.restart&&e.restart.phase!==`failed`),r=!!(e.agent&&(e.status||`unknown`)===`unknown`&&e.pendingPrompt);return t===`working`||n||r?`ongoing`:`finished`}function ni(e,t){return t.done||e===`done`?`finished`:e===`blocked`?`blocked`:e===`doing`?`ongoing`:`todo`}function ri(e,t){if(e.resolved)return`finished`;let n=t.map(ti);return n.includes(`blocked`)?`blocked`:n.includes(`ongoing`)?`ongoing`:e.token===`waiting-on-you`?`blocked`:e.token===`ready-for-review`?`todo`:`ongoing`}var ii=[`blocked`,`ongoing`,`todo`,`finished`];function ai(e){let t=ii.length-1;for(let n of e)t=Math.min(t,ii.indexOf(n));return ii[t]}function oi(e,t){let n;return n=t||e===`done`?{todo:`todo`}:e===`blocked`?{todo:`todo`,ongoing:`unblock`,finished:`done`}:e===`doing`?{blocked:`block`,todo:`todo`,finished:`done`}:e===`backlog`?{blocked:`block`,ongoing:`launch`,finished:`done`}:e===`test`?{finished:`tested`}:e===`review`?{finished:`reviewed`}:e===`decide`?{}:{blocked:`block`,ongoing:`now`,finished:`done`},ei.flatMap(e=>{let t=n[e];return t?[{to:e,action:t}]:[]})}function si(e,t,n){return e===`launch`?Ae(t,n):e===`unblock`?ie(t,n):e===`tested`?Je(t,n):e===`reviewed`?Ze(t,n):We(e,t,n)}var ci=e=>!!(e.agent||e.restart&&e.restart.phase!==`failed`);function li(e,t,n,r=``){let i=n.filter(ci),a=`${t.toLowerCase()}/${e.id.toLowerCase()}`,o=i.filter(e=>e.hpThread===a);if(o.length||!e.agentName)return o;let s=i.filter(t=>!t.hpThread&&t.name===e.agentName),c=s.find(e=>(e.machine||``)===r)||s[0];return c?[c]:[]}function ui(e,t){let n=new Map(t.map(e=>[e.id,e])),r=[],i=new Set;for(let t of e||[]){let e=t.panes.map(e=>n.get(e)).find(e=>e!==void 0&&Qe(e));e&&(i.add(t.slug.toLowerCase()),r.push({key:t.key,slug:t.slug,machine:e.machine||``,project:t,coordinator:e,cards:[]}))}for(let e of t){let n=Qe(e)?ae(e):null;if(!n||i.has(n.toLowerCase()))continue;i.add(n.toLowerCase());let a=Ye(t,n);r.push({key:`pane:${a.id}`,slug:n,machine:a.machine||``,project:null,coordinator:a,cards:[]})}let a=new Set,o=t.filter(ci);for(let e of r)a.add(e.coordinator.id);let s=(e,t)=>{let n=r.filter(e=>e.slug.toLowerCase()===t.toLowerCase());return n.find(t=>t.machine===(e.machine||``))||n[0]};for(let e of r){let t=e.project?.board;if(!t)continue;let n=e.coordinator,r=t=>{let r=li(t,e.slug,o.filter(t=>!a.has(t.id)&&s(t,e.slug)===e),e.machine);t.resolved&&(r=r.filter(e=>ti(e)===`finished`));for(let e of r)a.add(e.id);return{kind:`thread`,key:`${e.key}|${t.id}`,column:ri(t,r),segment:e.key,project:e.slug,coordinator:n,thread:t,panes:r}};e.cards.push(...t.open.map(r));let i=new Map;for(let r of He(t,{doing:``,done:``}))for(let t of r.tasks){let a=`${r.key}|${t.text}`,o=i.get(a)||0;i.set(a,o+1),e.cards.push({kind:`task`,key:`${e.key}|${a}|${o}`,column:ni(r.kind,t),segment:e.key,project:e.slug,coordinator:n,task:t,list:r.kind,listTitle:r.title,moves:oi(r.kind,t.done)})}e.cards.push(...t.resolved.map(r))}let c=[];for(let e of o){if(a.has(e.id))continue;let t=ae(e),n={kind:`agent`,key:`pane:${e.id}`,column:ti(e),segment:``,project:t,pane:e};if(!t){c.push(n);continue}let i=s(e,t);i||(i={key:`slug:${t.toLowerCase()}`,slug:t,machine:e.machine||``,project:null,coordinator:null,cards:[]},r.push(i)),i.cards.push({...n,segment:i.key,project:i.slug})}r.sort((e,t)=>e.slug.toLowerCase().localeCompare(t.slug.toLowerCase())||e.machine.localeCompare(t.machine));let l=[];for(let e of r){if(e.coordinator){let t={blocked:0,todo:0,ongoing:0,finished:0};for(let n of e.cards)t[n.column]++;l.push({kind:`project`,key:`project:${e.key}`,segment:e.key,project:e.slug,coordinator:e.coordinator,column:ai([ti(e.coordinator),...e.cards.map(e=>e.column)]),board:e.project?.board||null,resolvedTotal:e.project?.resolvedTotal??e.project?.board?.resolved.length??0,stale:!!e.project?.stale,error:e.project?.error||``,counts:t})}l.push(...e.cards)}return[...l,...c]}function di(e,t){let n=new Map,r=0;return{cards:e.filter(e=>{if(e.column!==`finished`||e.kind!==`thread`&&e.kind!==`task`)return!0;let i=`${e.segment}|${e.kind}`,a=n.get(i)||0;return n.set(i,a+1),a<t||(r++,!1)}),hidden:r}}function fi(e){let t=new Map;for(let n of e){if(t.has(n.segment))continue;let e=n.segment&&(n.kind===`agent`?n.pane.machine:n.coordinator.machine)||``;t.set(n.segment,n.segment?{id:`${e}|${(n.project||``).toLowerCase()}`,name:n.project,machine:e}:{id:``,name:null,machine:``})}return t}function pi(e){let t=[],n=new Set,r=null;for(let i of fi(e).values())i.id?n.has(i.id)||(n.add(i.id),t.push(i)):r=i;return r?[...t,r]:t}function mi(e,t){if(!t.size)return e;let n=fi(e);return e.filter(e=>!t.has(n.get(e.segment).id))}var hi=c(null),gi=c(!1),_i=c(null);function vi(e,t,n){return li(n,t,at.value.panes,e.machine||``)[0]}var yi=0;async function bi(e,t){if(!t.report)return dt(ot(`No report for this thread`),!0);let n=++yi;_i.value=t.id;try{let r=await je(e,t.id);if(n!==yi)return;hi.value={thread:t,html:Ke(r.text),truncated:r.truncated,coordinator:e},gi.value=!0,ut()}catch(e){n===yi&&dt(e.message,!0)}finally{n===yi&&(_i.value=null)}}function xi(e,t,n){let r=vi(e,t,n);r?(ut(),tt(Me(r.id))):n.report?bi(e.id,n):dt(ot(`This thread’s agent was not found`),!0)}export{vt as A,fr as C,qt as D,$t as E,Yt as O,Mr as S,cn as T,Ur as _,_i as a,Rr as b,si as c,di as d,mi as f,Kr as g,Jr as h,hi as i,Lt as k,pi as l,$r as m,bi as n,gi as o,li as p,vi as r,ei as s,xi as t,ui as u,zr as v,Qn as w,Lr as x,Br as y};
|