@polderlabs/bizar 10.7.2 → 10.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1202) hide show
  1. package/.claude/agents/_shared/AGENT_BASELINE.md +48 -243
  2. package/.claude/agents/_shared/CLAUDE_TOOLS.md +4 -2
  3. package/.claude/agents/_shared/SKILLS.md +18 -95
  4. package/.claude/agents/brand-designer.md +7 -5
  5. package/.claude/agents/debug-specialist.md +68 -0
  6. package/.claude/agents/exec-assistant.md +2 -1
  7. package/.claude/agents/help-desk.md +3 -3
  8. package/.claude/agents/it-lead.md +5 -5
  9. package/.claude/agents/knowledge-manager.md +2 -2
  10. package/.claude/agents/office-coordinator.md +3 -4
  11. package/.claude/agents/office-greeter.md +5 -5
  12. package/.claude/agents/office-manager.md +127 -42
  13. package/.claude/agents/planner.md +120 -0
  14. package/.claude/agents/principal-engineer.md +6 -5
  15. package/.claude/agents/qa-reviewer.md +4 -4
  16. package/.claude/agents/research-analyst.md +13 -43
  17. package/.claude/agents/senior-engineer.md +5 -4
  18. package/.claude/agents/support-tech.md +21 -73
  19. package/.claude/agents/ui-designer.md +89 -0
  20. package/.claude/commands/bizar.md +9 -16
  21. package/.claude/commands/cron.md +7 -3
  22. package/.claude/commands/learn.md +4 -2
  23. package/.claude/commands/plan.md +14 -28
  24. package/.claude/commands/plow-through.md +19 -38
  25. package/.claude/commands/pr-review.md +2 -3
  26. package/.claude/commands/setup-provider.md +15 -88
  27. package/.claude/commands/sprint.md +3 -3
  28. package/.claude/commands/tailscale-serve.md +9 -95
  29. package/.claude/commands/team.md +26 -122
  30. package/.claude/commands/test.md +3 -3
  31. package/.claude/commands/use-default.md +53 -0
  32. package/.claude/commands/use-premium.md +74 -0
  33. package/.claude/commands/validate.md +13 -61
  34. package/.claude/hooks/README.md +24 -108
  35. package/.claude/hooks/advisor-context.mjs +42 -0
  36. package/.claude/hooks/agent-grounding.mjs +41 -0
  37. package/.claude/hooks/content-style-guard.mjs +73 -0
  38. package/.claude/hooks/control-inbox.mjs +95 -0
  39. package/.claude/hooks/git-workflow-guard.mjs +104 -0
  40. package/.claude/hooks/learning-extract.mjs +0 -0
  41. package/.claude/hooks/path-ownership-guard.mjs +89 -0
  42. package/.claude/hooks/precompact-priorities.sh +11 -0
  43. package/.claude/hooks/pretooluse-bash.mjs +4 -11
  44. package/.claude/hooks/sessionend-recall.mjs +0 -0
  45. package/.claude/hooks/sessionstart-prime.mjs +10 -4
  46. package/.claude/hooks/simplify-guard.mjs +51 -0
  47. package/.claude/hooks/telemetry.mjs +69 -0
  48. package/.claude/hooks/thinking-route.mjs +7 -9
  49. package/.claude/hooks/worker-suggest.mjs +51 -15
  50. package/.claude/hooks/worktree-bootstrap.mjs +64 -0
  51. package/.claude/model-router.json +57 -0
  52. package/.claude/settings.json +90 -140
  53. package/AGENTS.md +95 -0
  54. package/README.md +76 -472
  55. package/cli/agent-browser-update.mjs +87 -274
  56. package/cli/atomic.mjs +1 -1
  57. package/cli/audit.mjs +31 -121
  58. package/cli/banner.mjs +3 -14
  59. package/cli/bin.mjs +83 -331
  60. package/cli/bootstrap.mjs +9 -12
  61. package/cli/commands/claude-cmd.mjs +45 -309
  62. package/cli/commands/control.mjs +102 -0
  63. package/cli/commands/install.mjs +9 -56
  64. package/cli/commands/rca.mjs +63 -165
  65. package/cli/commands/sandbox.mjs +89 -183
  66. package/cli/commands/setup-provider.mjs +65 -423
  67. package/cli/commands/task.mjs +249 -0
  68. package/cli/commands/util.mjs +37 -197
  69. package/cli/commands/validate.mjs +45 -75
  70. package/cli/control-store.mjs +312 -0
  71. package/{bizar-dash/src/server → cli/core}/backup-store.mjs +7 -17
  72. package/cli/doctor.mjs +8 -13
  73. package/cli/export.mjs +3 -7
  74. package/cli/init.mjs +1 -135
  75. package/cli/install/banner.mjs +4 -14
  76. package/cli/install/paths.mjs +3 -8
  77. package/cli/install.mjs +2 -7
  78. package/cli/migrate.mjs +24 -24
  79. package/{bizar-dash/src/server → cli}/progress-parser.mjs +7 -5
  80. package/cli/provision.mjs +140 -165
  81. package/cli/task-ledger.mjs +842 -0
  82. package/cli/update.mjs +2 -2
  83. package/cli/utils.mjs +1 -38
  84. package/config/AGENTS.md +14 -591
  85. package/config/rules/general.md +1 -1
  86. package/config/rules/uncertainty.md +2 -2
  87. package/config/skills/9router/SKILL.md +3 -3
  88. package/config/skills/9router-tts/SKILL.md +1 -1
  89. package/config/skills/agent-browser/SKILL.md +53 -0
  90. package/config/skills/bizar/README.md +3 -3
  91. package/config/skills/bizar/SKILL.md +31 -431
  92. package/config/skills/clean-gone-branches/SKILL.md +8 -0
  93. package/config/skills/commit-staged/SKILL.md +15 -0
  94. package/config/skills/cpp-coding-standards/README.md +3 -3
  95. package/config/skills/cpp-testing/README.md +2 -2
  96. package/config/skills/create-pr/SKILL.md +16 -0
  97. package/config/skills/cubesandbox/SKILL.md +33 -128
  98. package/config/skills/embedded-esp-idf/README.md +3 -3
  99. package/config/skills/harness-engineering/SKILL.md +37 -126
  100. package/config/skills/read-the-damn-docs/SKILL.md +2 -2
  101. package/config/skills/resolve-pr-comments/SKILL.md +14 -0
  102. package/config/skills/review-pr/SKILL.md +10 -0
  103. package/config/skills/self-improvement/SKILL.md +19 -54
  104. package/config/skills/simplify/SKILL.md +15 -0
  105. package/config/skills/update-pr-summary/SKILL.md +8 -0
  106. package/config/trigger-patterns.json +11 -25
  107. package/package.json +28 -102
  108. package/packages/sdk/dist/agent-registry.d.ts +2 -2
  109. package/packages/sdk/dist/agent-registry.js +2 -2
  110. package/packages/sdk/dist/consensus/index.d.ts +4 -4
  111. package/packages/sdk/dist/consensus/index.js +5 -5
  112. package/packages/sdk/dist/federation/envelope.d.ts +1 -1
  113. package/packages/sdk/dist/federation/envelope.js +2 -2
  114. package/packages/sdk/dist/index.d.ts +1 -4
  115. package/packages/sdk/dist/index.js +1 -4
  116. package/packages/sdk/dist/mcp/server.d.ts +8 -13
  117. package/packages/sdk/dist/mcp/server.js +15 -77
  118. package/packages/sdk/dist/router/index.d.ts +2 -2
  119. package/packages/sdk/dist/router/index.js +2 -2
  120. package/packages/sdk/dist/version.d.ts +2 -2
  121. package/packages/sdk/dist/version.js +2 -2
  122. package/packages/sdk/package.json +1 -2
  123. package/scripts/git-hooks/pre-commit +2 -2
  124. package/scripts/git-hooks/pre-push +3 -3
  125. package/scripts/install-hooks.sh +2 -2
  126. package/.claude/agents/vp-engineering.md +0 -54
  127. package/.claude/commands/goal.md +0 -99
  128. package/.claude/commands/visual-plan.md +0 -24
  129. package/.claude/hooks/__tests__/pretooluse-editwrite.test.mjs +0 -146
  130. package/.claude/hooks/__tests__/sessionend-recall.test.mjs +0 -256
  131. package/.claude/hooks/__tests__/sessionstart-prime.test.mjs +0 -325
  132. package/.claude/hooks/__tests__/thinking-route.test.mjs +0 -319
  133. package/.claude/hooks/post-merge-audit.sh +0 -93
  134. package/.claude/skills/9router/SKILL.md +0 -80
  135. package/.claude/skills/9router-chat/SKILL.md +0 -73
  136. package/.claude/skills/9router-embeddings/SKILL.md +0 -69
  137. package/.claude/skills/9router-image/SKILL.md +0 -86
  138. package/.claude/skills/9router-stt/SKILL.md +0 -79
  139. package/.claude/skills/9router-tts/SKILL.md +0 -80
  140. package/.claude/skills/9router-web-fetch/SKILL.md +0 -99
  141. package/.claude/skills/9router-web-search/SKILL.md +0 -91
  142. package/.claude/skills/agent-browser/SKILL.md +0 -64
  143. package/.claude/skills/bizar/README.md +0 -9
  144. package/.claude/skills/bizar/SKILL.md +0 -447
  145. package/.claude/skills/cpp-coding-standards/README.md +0 -28
  146. package/.claude/skills/cpp-coding-standards/SKILL.md +0 -634
  147. package/.claude/skills/cpp-coding-standards/references/concurrency.md +0 -320
  148. package/.claude/skills/cpp-coding-standards/references/error-handling.md +0 -229
  149. package/.claude/skills/cpp-coding-standards/references/memory-safety.md +0 -216
  150. package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +0 -282
  151. package/.claude/skills/cpp-coding-standards/references/review-checklist.md +0 -96
  152. package/.claude/skills/cpp-testing/README.md +0 -28
  153. package/.claude/skills/cpp-testing/SKILL.md +0 -304
  154. package/.claude/skills/cpp-testing/references/coverage.md +0 -370
  155. package/.claude/skills/cpp-testing/references/framework-compare.md +0 -175
  156. package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +0 -499
  157. package/.claude/skills/cpp-testing/references/mocking.md +0 -364
  158. package/.claude/skills/cpp-testing/references/tdd-workflow.md +0 -308
  159. package/.claude/skills/cubesandbox/SKILL.md +0 -148
  160. package/.claude/skills/de-sloppify/cleanup.mjs +0 -253
  161. package/.claude/skills/de-sloppify/cleanup.test.mjs +0 -189
  162. package/.claude/skills/embedded-esp-idf/README.md +0 -41
  163. package/.claude/skills/embedded-esp-idf/SKILL.md +0 -439
  164. package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +0 -214
  165. package/.claude/skills/embedded-esp-idf/references/host-tests.md +0 -164
  166. package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +0 -157
  167. package/.claude/skills/embedded-esp-idf/references/kconfig.md +0 -159
  168. package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +0 -118
  169. package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +0 -137
  170. package/.claude/skills/embedded-esp-idf/references/nvs.md +0 -121
  171. package/.claude/skills/embedded-esp-idf/references/packed-structs.md +0 -192
  172. package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +0 -47
  173. package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +0 -77
  174. package/.claude/skills/glyph/SKILL.md +0 -163
  175. package/.claude/skills/harness-engineering/SKILL.md +0 -142
  176. package/.claude/skills/lightrag/SKILL.md +0 -81
  177. package/.claude/skills/memory-protocol/SKILL.md +0 -105
  178. package/.claude/skills/obsidian/SKILL.md +0 -306
  179. package/.claude/skills/read-the-damn-docs/SKILL.md +0 -113
  180. package/.claude/skills/self-improvement/SKILL.md +0 -64
  181. package/.claude/skills/skillopt/SKILL.md +0 -129
  182. package/.claude/skills/thinking-archetypes/SKILL.md +0 -90
  183. package/.claude/skills/thinking-bayesian/SKILL.md +0 -267
  184. package/.claude/skills/thinking-bounded-rationality/SKILL.md +0 -406
  185. package/.claude/skills/thinking-circle-of-competence/SKILL.md +0 -216
  186. package/.claude/skills/thinking-cynefin/SKILL.md +0 -70
  187. package/.claude/skills/thinking-debiasing/SKILL.md +0 -192
  188. package/.claude/skills/thinking-dual-process/SKILL.md +0 -282
  189. package/.claude/skills/thinking-effectuation/SKILL.md +0 -366
  190. package/.claude/skills/thinking-feedback-loops/SKILL.md +0 -464
  191. package/.claude/skills/thinking-fermi-estimation/SKILL.md +0 -263
  192. package/.claude/skills/thinking-first-principles/SKILL.md +0 -167
  193. package/.claude/skills/thinking-five-whys-plus/SKILL.md +0 -139
  194. package/.claude/skills/thinking-inversion/SKILL.md +0 -195
  195. package/.claude/skills/thinking-jobs-to-be-done/SKILL.md +0 -363
  196. package/.claude/skills/thinking-kepner-tregoe/SKILL.md +0 -154
  197. package/.claude/skills/thinking-leverage-points/SKILL.md +0 -390
  198. package/.claude/skills/thinking-lindy-effect/SKILL.md +0 -331
  199. package/.claude/skills/thinking-map-territory/SKILL.md +0 -111
  200. package/.claude/skills/thinking-margin-of-safety/SKILL.md +0 -330
  201. package/.claude/skills/thinking-model-combination/SKILL.md +0 -406
  202. package/.claude/skills/thinking-model-router/SKILL.md +0 -360
  203. package/.claude/skills/thinking-model-selection/SKILL.md +0 -341
  204. package/.claude/skills/thinking-occams-razor/SKILL.md +0 -129
  205. package/.claude/skills/thinking-ooda/SKILL.md +0 -127
  206. package/.claude/skills/thinking-opportunity-cost/SKILL.md +0 -360
  207. package/.claude/skills/thinking-pre-mortem/SKILL.md +0 -170
  208. package/.claude/skills/thinking-probabilistic/SKILL.md +0 -324
  209. package/.claude/skills/thinking-red-team/SKILL.md +0 -142
  210. package/.claude/skills/thinking-regret-minimization/SKILL.md +0 -335
  211. package/.claude/skills/thinking-reversibility/SKILL.md +0 -326
  212. package/.claude/skills/thinking-scientific-method/SKILL.md +0 -162
  213. package/.claude/skills/thinking-second-order/SKILL.md +0 -184
  214. package/.claude/skills/thinking-socratic/SKILL.md +0 -198
  215. package/.claude/skills/thinking-steel-manning/SKILL.md +0 -332
  216. package/.claude/skills/thinking-systems/SKILL.md +0 -238
  217. package/.claude/skills/thinking-theory-of-constraints/SKILL.md +0 -338
  218. package/.claude/skills/thinking-thought-experiment/SKILL.md +0 -354
  219. package/.claude/skills/thinking-triz/SKILL.md +0 -171
  220. package/.claude/skills/thinking-via-negativa/SKILL.md +0 -358
  221. package/bizar-dash/.bizar/graph/.graphify_analysis.json +0 -1540
  222. package/bizar-dash/.bizar/graph/.graphify_labels.json +0 -1
  223. package/bizar-dash/.bizar/graph/GRAPH_REPORT.md +0 -404
  224. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/0661b816358db84dfdb7f10443db8a61152fd20b3fee950caf8fbf32920a1790.json +0 -1
  225. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/16da06d774142a6e5d74829ad982531286a6193ef798de8f593db029e123ec32.json +0 -1
  226. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/27e5697c01254c69c64c5a33896669073b40afb5ba88375102ae77fa5404136d.json +0 -1
  227. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/532997898027254aa4c0932243dc71d2f55888181232b65974961934997dc85b.json +0 -1
  228. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/84e3451a64c7f99f0cd6a88b0748d7426780486f53ab4935b7476b28c08f8293.json +0 -1
  229. package/bizar-dash/.bizar/graph/cache/ast/v0.8.46/88e5ea5f3e78fa69353fe9e6a8d1a05391d54605e25600cb125531eb5a6432ff.json +0 -1
  230. package/bizar-dash/.bizar/graph/cache/stat-index.json +0 -1
  231. package/bizar-dash/.bizar/graph/graph.html +0 -307
  232. package/bizar-dash/.bizar/graph/graph.json +0 -40267
  233. package/bizar-dash/.bizar/graph/manifest.json +0 -762
  234. package/bizar-dash/.graphifyignore +0 -40
  235. package/bizar-dash/.obsidian/README.md +0 -14
  236. package/bizar-dash/.obsidian/daily/2026-06-25.md +0 -9
  237. package/bizar-dash/.obsidian/vault.json +0 -7
  238. package/bizar-dash/.od-skills/web-prototype-e1429c1737/SKILL.md +0 -103
  239. package/bizar-dash/.od-skills/web-prototype-e1429c1737/assets/template.html +0 -338
  240. package/bizar-dash/.od-skills/web-prototype-e1429c1737/example.html +0 -81
  241. package/bizar-dash/.od-skills/web-prototype-e1429c1737/open-design.json +0 -172
  242. package/bizar-dash/.od-skills/web-prototype-e1429c1737/references/checklist.md +0 -44
  243. package/bizar-dash/.od-skills/web-prototype-e1429c1737/references/layouts.md +0 -247
  244. package/bizar-dash/ARCHITECTURE.md +0 -197
  245. package/bizar-dash/BROWSER_VERIFICATION.md +0 -190
  246. package/bizar-dash/CHANGELOG.md +0 -807
  247. package/bizar-dash/CONTROL_SURFACES.md +0 -156
  248. package/bizar-dash/DESIGN.md +0 -912
  249. package/bizar-dash/GLYPH.md +0 -418
  250. package/bizar-dash/PLAN.md +0 -1135
  251. package/bizar-dash/SETTINGS_AUDIT.md +0 -225
  252. package/bizar-dash/critique.json +0 -26
  253. package/bizar-dash/dist/assets/ActivityFeed-Bw4Cai7r.js +0 -11
  254. package/bizar-dash/dist/assets/ActivityFeed-Bw4Cai7r.js.map +0 -1
  255. package/bizar-dash/dist/assets/ActivityView-BC0QQ_j9.js +0 -2
  256. package/bizar-dash/dist/assets/ActivityView-BC0QQ_j9.js.map +0 -1
  257. package/bizar-dash/dist/assets/AdminView-CLTNKFL4.js +0 -11
  258. package/bizar-dash/dist/assets/AdminView-CLTNKFL4.js.map +0 -1
  259. package/bizar-dash/dist/assets/AgentActivity-DBWDByjk.js +0 -67
  260. package/bizar-dash/dist/assets/AgentActivity-DBWDByjk.js.map +0 -1
  261. package/bizar-dash/dist/assets/AgentsView-DD6bCIbA.js +0 -15
  262. package/bizar-dash/dist/assets/AgentsView-DD6bCIbA.js.map +0 -1
  263. package/bizar-dash/dist/assets/Alert-pzFISNtS.js +0 -6
  264. package/bizar-dash/dist/assets/Alert-pzFISNtS.js.map +0 -1
  265. package/bizar-dash/dist/assets/ArtifactsView-BVU5lfo7.js +0 -21
  266. package/bizar-dash/dist/assets/ArtifactsView-BVU5lfo7.js.map +0 -1
  267. package/bizar-dash/dist/assets/AuthView-BZ-bPIOM.js +0 -16
  268. package/bizar-dash/dist/assets/AuthView-BZ-bPIOM.js.map +0 -1
  269. package/bizar-dash/dist/assets/Avatar-CRW81ewE.js +0 -6
  270. package/bizar-dash/dist/assets/Avatar-CRW81ewE.js.map +0 -1
  271. package/bizar-dash/dist/assets/BackgroundJobsView-w8OZtXyI.js +0 -1
  272. package/bizar-dash/dist/assets/BackgroundJobsView-w8OZtXyI.js.map +0 -1
  273. package/bizar-dash/dist/assets/BackupView-u_O3j0TG.js +0 -1
  274. package/bizar-dash/dist/assets/BackupView-u_O3j0TG.js.map +0 -1
  275. package/bizar-dash/dist/assets/Banner-Du-3l05O.js +0 -1
  276. package/bizar-dash/dist/assets/Banner-Du-3l05O.js.map +0 -1
  277. package/bizar-dash/dist/assets/Card-Clkvh43Q.js +0 -1
  278. package/bizar-dash/dist/assets/Card-Clkvh43Q.js.map +0 -1
  279. package/bizar-dash/dist/assets/ChatView-BTjb3mIh.js +0 -9
  280. package/bizar-dash/dist/assets/ChatView-BTjb3mIh.js.map +0 -1
  281. package/bizar-dash/dist/assets/Chip-B7ovcm01.js +0 -1
  282. package/bizar-dash/dist/assets/Chip-B7ovcm01.js.map +0 -1
  283. package/bizar-dash/dist/assets/ClaudeSessionsView-BoZS5ldi.js +0 -1
  284. package/bizar-dash/dist/assets/ClaudeSessionsView-BoZS5ldi.js.map +0 -1
  285. package/bizar-dash/dist/assets/ClipboardView-Cb6XgYZI.js +0 -1
  286. package/bizar-dash/dist/assets/ClipboardView-Cb6XgYZI.js.map +0 -1
  287. package/bizar-dash/dist/assets/ConfigView-DfTJk1uL.js +0 -1
  288. package/bizar-dash/dist/assets/ConfigView-DfTJk1uL.js.map +0 -1
  289. package/bizar-dash/dist/assets/DiagnosticsView-D5Wy9xlJ.js +0 -2
  290. package/bizar-dash/dist/assets/DiagnosticsView-D5Wy9xlJ.js.map +0 -1
  291. package/bizar-dash/dist/assets/DialogsView-HVyfrXpq.js +0 -6
  292. package/bizar-dash/dist/assets/DialogsView-HVyfrXpq.js.map +0 -1
  293. package/bizar-dash/dist/assets/DoctorView-Dm94WI2z.js +0 -6
  294. package/bizar-dash/dist/assets/DoctorView-Dm94WI2z.js.map +0 -1
  295. package/bizar-dash/dist/assets/EmptyState-ccT__JZG.js +0 -1
  296. package/bizar-dash/dist/assets/EmptyState-ccT__JZG.js.map +0 -1
  297. package/bizar-dash/dist/assets/EnvVarsView-BhcIuJ6V.js +0 -8
  298. package/bizar-dash/dist/assets/EnvVarsView-BhcIuJ6V.js.map +0 -1
  299. package/bizar-dash/dist/assets/ErrorState-BSqf65ka.js +0 -1
  300. package/bizar-dash/dist/assets/ErrorState-BSqf65ka.js.map +0 -1
  301. package/bizar-dash/dist/assets/EvalView-2cbWVBUA.js +0 -1
  302. package/bizar-dash/dist/assets/EvalView-2cbWVBUA.js.map +0 -1
  303. package/bizar-dash/dist/assets/GoalsView-C3QG5p7T.js +0 -6
  304. package/bizar-dash/dist/assets/GoalsView-C3QG5p7T.js.map +0 -1
  305. package/bizar-dash/dist/assets/Grid-Bojq8Sg7.js +0 -1
  306. package/bizar-dash/dist/assets/Grid-Bojq8Sg7.js.map +0 -1
  307. package/bizar-dash/dist/assets/HistoryView-Bum2TMMw.js +0 -1
  308. package/bizar-dash/dist/assets/HistoryView-Bum2TMMw.js.map +0 -1
  309. package/bizar-dash/dist/assets/Input-DV-vdaV8.js +0 -1
  310. package/bizar-dash/dist/assets/Input-DV-vdaV8.js.map +0 -1
  311. package/bizar-dash/dist/assets/LibrariesView-DH2E2uNb.js +0 -6
  312. package/bizar-dash/dist/assets/LibrariesView-DH2E2uNb.js.map +0 -1
  313. package/bizar-dash/dist/assets/LightRAGView-BFCcj7Tl.js +0 -6
  314. package/bizar-dash/dist/assets/LightRAGView-BFCcj7Tl.js.map +0 -1
  315. package/bizar-dash/dist/assets/ListHeader-CCD_nIHb.js +0 -1
  316. package/bizar-dash/dist/assets/ListHeader-CCD_nIHb.js.map +0 -1
  317. package/bizar-dash/dist/assets/MemoryView-Cr-obIQY.js +0 -8
  318. package/bizar-dash/dist/assets/MemoryView-Cr-obIQY.js.map +0 -1
  319. package/bizar-dash/dist/assets/MessageBubble-CrCJ0SYG.js +0 -29
  320. package/bizar-dash/dist/assets/MessageBubble-CrCJ0SYG.js.map +0 -1
  321. package/bizar-dash/dist/assets/MiscView-CDUQpYuV.js +0 -1
  322. package/bizar-dash/dist/assets/MiscView-CDUQpYuV.js.map +0 -1
  323. package/bizar-dash/dist/assets/ModsView-B6OR-a4B.js +0 -6
  324. package/bizar-dash/dist/assets/ModsView-B6OR-a4B.js.map +0 -1
  325. package/bizar-dash/dist/assets/NotificationsView-CIqtY6D0.js +0 -6
  326. package/bizar-dash/dist/assets/NotificationsView-CIqtY6D0.js.map +0 -1
  327. package/bizar-dash/dist/assets/ObsidianView-Nahah8QC.js +0 -1
  328. package/bizar-dash/dist/assets/ObsidianView-Nahah8QC.js.map +0 -1
  329. package/bizar-dash/dist/assets/OverviewView-B6L_wa4M.js +0 -1
  330. package/bizar-dash/dist/assets/OverviewView-B6L_wa4M.js.map +0 -1
  331. package/bizar-dash/dist/assets/ProgressBar-KC4VXsl_.js +0 -1
  332. package/bizar-dash/dist/assets/ProgressBar-KC4VXsl_.js.map +0 -1
  333. package/bizar-dash/dist/assets/ProjectsView-DgxWiqHb.js +0 -11
  334. package/bizar-dash/dist/assets/ProjectsView-DgxWiqHb.js.map +0 -1
  335. package/bizar-dash/dist/assets/ProvidersView-BOqN9omv.js +0 -11
  336. package/bizar-dash/dist/assets/ProvidersView-BOqN9omv.js.map +0 -1
  337. package/bizar-dash/dist/assets/SchedulesView-yMaG3Dtd.js +0 -1
  338. package/bizar-dash/dist/assets/SchedulesView-yMaG3Dtd.js.map +0 -1
  339. package/bizar-dash/dist/assets/Select-Bf_P0S6H.js +0 -6
  340. package/bizar-dash/dist/assets/Select-Bf_P0S6H.js.map +0 -1
  341. package/bizar-dash/dist/assets/SettingsRow-CJb-F94Y.js +0 -1
  342. package/bizar-dash/dist/assets/SettingsRow-CJb-F94Y.js.map +0 -1
  343. package/bizar-dash/dist/assets/SettingsView-BvOGcgMS.js +0 -18
  344. package/bizar-dash/dist/assets/SettingsView-BvOGcgMS.js.map +0 -1
  345. package/bizar-dash/dist/assets/Sheet-BwMVGN-8.js +0 -1
  346. package/bizar-dash/dist/assets/Sheet-BwMVGN-8.js.map +0 -1
  347. package/bizar-dash/dist/assets/Slider-AjjzqI-5.js +0 -1
  348. package/bizar-dash/dist/assets/Slider-AjjzqI-5.js.map +0 -1
  349. package/bizar-dash/dist/assets/Sparkline-Z4y0YUZS.js +0 -1
  350. package/bizar-dash/dist/assets/Sparkline-Z4y0YUZS.js.map +0 -1
  351. package/bizar-dash/dist/assets/Switch-B79a2t-G.js +0 -10
  352. package/bizar-dash/dist/assets/Switch-B79a2t-G.js.map +0 -1
  353. package/bizar-dash/dist/assets/TasksView-G-s_pwwr.js +0 -6
  354. package/bizar-dash/dist/assets/TasksView-G-s_pwwr.js.map +0 -1
  355. package/bizar-dash/dist/assets/Textarea-BfXGMXQ7.js +0 -1
  356. package/bizar-dash/dist/assets/Textarea-BfXGMXQ7.js.map +0 -1
  357. package/bizar-dash/dist/assets/UpdateView-BKx3u9X8.js +0 -1
  358. package/bizar-dash/dist/assets/UpdateView-BKx3u9X8.js.map +0 -1
  359. package/bizar-dash/dist/assets/UsageView-M01G6bZQ.js +0 -1
  360. package/bizar-dash/dist/assets/UsageView-M01G6bZQ.js.map +0 -1
  361. package/bizar-dash/dist/assets/ViewHeader-BsnaspKw.js +0 -6
  362. package/bizar-dash/dist/assets/ViewHeader-BsnaspKw.js.map +0 -1
  363. package/bizar-dash/dist/assets/VoiceView-rWE8vziD.js +0 -1
  364. package/bizar-dash/dist/assets/VoiceView-rWE8vziD.js.map +0 -1
  365. package/bizar-dash/dist/assets/brain-D7k5s8vH.js +0 -6
  366. package/bizar-dash/dist/assets/brain-D7k5s8vH.js.map +0 -1
  367. package/bizar-dash/dist/assets/calendar-CAZoDd-l.js +0 -6
  368. package/bizar-dash/dist/assets/calendar-CAZoDd-l.js.map +0 -1
  369. package/bizar-dash/dist/assets/circle-D99cZJBr.js +0 -6
  370. package/bizar-dash/dist/assets/circle-D99cZJBr.js.map +0 -1
  371. package/bizar-dash/dist/assets/circle-alert-QQTU4Quz.js +0 -6
  372. package/bizar-dash/dist/assets/circle-alert-QQTU4Quz.js.map +0 -1
  373. package/bizar-dash/dist/assets/circle-check-BMbe7Kkr.js +0 -6
  374. package/bizar-dash/dist/assets/circle-check-BMbe7Kkr.js.map +0 -1
  375. package/bizar-dash/dist/assets/clock-OtT5mvF3.js +0 -6
  376. package/bizar-dash/dist/assets/clock-OtT5mvF3.js.map +0 -1
  377. package/bizar-dash/dist/assets/cmdk-C3F6LD6N.js +0 -80
  378. package/bizar-dash/dist/assets/cmdk-C3F6LD6N.js.map +0 -1
  379. package/bizar-dash/dist/assets/dnd-kit-BAOLODOI.js +0 -5
  380. package/bizar-dash/dist/assets/dnd-kit-BAOLODOI.js.map +0 -1
  381. package/bizar-dash/dist/assets/download-B-mPX5P_.js +0 -6
  382. package/bizar-dash/dist/assets/download-B-mPX5P_.js.map +0 -1
  383. package/bizar-dash/dist/assets/external-link-DPDQM1YO.js +0 -6
  384. package/bizar-dash/dist/assets/external-link-DPDQM1YO.js.map +0 -1
  385. package/bizar-dash/dist/assets/file-text-BsCrv5aP.js +0 -6
  386. package/bizar-dash/dist/assets/file-text-BsCrv5aP.js.map +0 -1
  387. package/bizar-dash/dist/assets/filter-Do63x17E.js +0 -6
  388. package/bizar-dash/dist/assets/filter-Do63x17E.js.map +0 -1
  389. package/bizar-dash/dist/assets/git-pull-request-CpRAmERC.js +0 -11
  390. package/bizar-dash/dist/assets/git-pull-request-CpRAmERC.js.map +0 -1
  391. package/bizar-dash/dist/assets/index-B1OIS316.js +0 -1
  392. package/bizar-dash/dist/assets/index-B1OIS316.js.map +0 -1
  393. package/bizar-dash/dist/assets/index-CR0TeJmc.js +0 -1
  394. package/bizar-dash/dist/assets/index-CR0TeJmc.js.map +0 -1
  395. package/bizar-dash/dist/assets/main-BRmJZcHt.js +0 -277
  396. package/bizar-dash/dist/assets/main-BRmJZcHt.js.map +0 -1
  397. package/bizar-dash/dist/assets/main-D0TY0myE.css +0 -1
  398. package/bizar-dash/dist/assets/network-DJnHwHX3.js +0 -6
  399. package/bizar-dash/dist/assets/network-DJnHwHX3.js.map +0 -1
  400. package/bizar-dash/dist/assets/pause-HitDUnk_.js +0 -6
  401. package/bizar-dash/dist/assets/pause-HitDUnk_.js.map +0 -1
  402. package/bizar-dash/dist/assets/pencil-Dkks7eIC.js +0 -6
  403. package/bizar-dash/dist/assets/pencil-Dkks7eIC.js.map +0 -1
  404. package/bizar-dash/dist/assets/play-blqh0msT.js +0 -6
  405. package/bizar-dash/dist/assets/play-blqh0msT.js.map +0 -1
  406. package/bizar-dash/dist/assets/plug-DVvSSe40.js +0 -6
  407. package/bizar-dash/dist/assets/plug-DVvSSe40.js.map +0 -1
  408. package/bizar-dash/dist/assets/plus-Cps-8lcG.js +0 -6
  409. package/bizar-dash/dist/assets/plus-Cps-8lcG.js.map +0 -1
  410. package/bizar-dash/dist/assets/power-DEX4_Xoa.js +0 -6
  411. package/bizar-dash/dist/assets/power-DEX4_Xoa.js.map +0 -1
  412. package/bizar-dash/dist/assets/power-off-upZ4xjaG.js +0 -6
  413. package/bizar-dash/dist/assets/power-off-upZ4xjaG.js.map +0 -1
  414. package/bizar-dash/dist/assets/refresh-ccw-DN_zCB1h.js +0 -6
  415. package/bizar-dash/dist/assets/refresh-ccw-DN_zCB1h.js.map +0 -1
  416. package/bizar-dash/dist/assets/refresh-cw-KGm5eQgv.js +0 -6
  417. package/bizar-dash/dist/assets/refresh-cw-KGm5eQgv.js.map +0 -1
  418. package/bizar-dash/dist/assets/rotate-ccw-D5fkDRgk.js +0 -6
  419. package/bizar-dash/dist/assets/rotate-ccw-D5fkDRgk.js.map +0 -1
  420. package/bizar-dash/dist/assets/rotate-cw-CClSVUaX.js +0 -6
  421. package/bizar-dash/dist/assets/rotate-cw-CClSVUaX.js.map +0 -1
  422. package/bizar-dash/dist/assets/save-BY4ViPku.js +0 -6
  423. package/bizar-dash/dist/assets/save-BY4ViPku.js.map +0 -1
  424. package/bizar-dash/dist/assets/send-CaOL1yQD.js +0 -6
  425. package/bizar-dash/dist/assets/send-CaOL1yQD.js.map +0 -1
  426. package/bizar-dash/dist/assets/shield-alert-DA9K6uZO.js +0 -6
  427. package/bizar-dash/dist/assets/shield-alert-DA9K6uZO.js.map +0 -1
  428. package/bizar-dash/dist/assets/trash-2-B_Y6HrfN.js +0 -6
  429. package/bizar-dash/dist/assets/trash-2-B_Y6HrfN.js.map +0 -1
  430. package/bizar-dash/dist/assets/trending-up-qKTUQKIT.js +0 -6
  431. package/bizar-dash/dist/assets/trending-up-qKTUQKIT.js.map +0 -1
  432. package/bizar-dash/dist/assets/triangle-alert-BeY8LAv6.js +0 -6
  433. package/bizar-dash/dist/assets/triangle-alert-BeY8LAv6.js.map +0 -1
  434. package/bizar-dash/dist/assets/upload-BZCtmqIh.js +0 -6
  435. package/bizar-dash/dist/assets/upload-BZCtmqIh.js.map +0 -1
  436. package/bizar-dash/dist/assets/zap-Bz1Z8y1Q.js +0 -6
  437. package/bizar-dash/dist/assets/zap-Bz1Z8y1Q.js.map +0 -1
  438. package/bizar-dash/dist/index.html +0 -19
  439. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  440. package/bizar-dash/plans/debug-plan/comments.json +0 -1
  441. package/bizar-dash/plans/debug-plan/meta.json +0 -10
  442. package/bizar-dash/plans/debug-plan/plan.json +0 -174
  443. package/bizar-dash/scripts/smoke-bg-retry.mjs +0 -246
  444. package/bizar-dash/skills/agent-baseline/SKILL.md +0 -80
  445. package/bizar-dash/skills/agent-browser/SKILL.md +0 -181
  446. package/bizar-dash/skills/bizar/SKILL.md +0 -116
  447. package/bizar-dash/skills/chat/SKILL.md +0 -74
  448. package/bizar-dash/skills/eval/SKILL.md +0 -237
  449. package/bizar-dash/skills/lightrag/SKILL.md +0 -86
  450. package/bizar-dash/skills/minimax/SKILL.md +0 -80
  451. package/bizar-dash/skills/obsidian/SKILL.md +0 -68
  452. package/bizar-dash/skills/providers/SKILL.md +0 -75
  453. package/bizar-dash/skills/publishing/SKILL.md +0 -147
  454. package/bizar-dash/skills/sdk/SKILL.md +0 -138
  455. package/bizar-dash/skills/self-improvement/SKILL.md +0 -53
  456. package/bizar-dash/skills/skills-cli/SKILL.md +0 -94
  457. package/bizar-dash/skills/usage/SKILL.md +0 -62
  458. package/bizar-dash/src/cli/dashboard-ports.mjs +0 -488
  459. package/bizar-dash/src/cli.mjs +0 -537
  460. package/bizar-dash/src/server/activity-log.mjs +0 -174
  461. package/bizar-dash/src/server/agent-bus.mjs +0 -485
  462. package/bizar-dash/src/server/agents-store.mjs +0 -466
  463. package/bizar-dash/src/server/api.mjs +0 -246
  464. package/bizar-dash/src/server/artifact-mint.mjs +0 -69
  465. package/bizar-dash/src/server/artifact-template.html +0 -810
  466. package/bizar-dash/src/server/artifacts-store.mjs +0 -839
  467. package/bizar-dash/src/server/auth.mjs +0 -548
  468. package/bizar-dash/src/server/background-store.mjs +0 -446
  469. package/bizar-dash/src/server/bg-poller.mjs +0 -375
  470. package/bizar-dash/src/server/bg-poller.test.mjs +0 -28
  471. package/bizar-dash/src/server/bg-retry.mjs +0 -446
  472. package/bizar-dash/src/server/bg-spawner.mjs +0 -390
  473. package/bizar-dash/src/server/browser.mjs +0 -40
  474. package/bizar-dash/src/server/claude-artifacts.mjs +0 -281
  475. package/bizar-dash/src/server/claude-bg-spawner.mjs +0 -390
  476. package/bizar-dash/src/server/claude-info.mjs +0 -412
  477. package/bizar-dash/src/server/claude-runner.mjs +0 -289
  478. package/bizar-dash/src/server/claude-sdk.mjs +0 -191
  479. package/bizar-dash/src/server/diagnostics-store.mjs +0 -568
  480. package/bizar-dash/src/server/dialog-poller.mjs +0 -105
  481. package/bizar-dash/src/server/dialog-store.mjs +0 -259
  482. package/bizar-dash/src/server/digest-store.mjs +0 -558
  483. package/bizar-dash/src/server/eval-store.mjs +0 -281
  484. package/bizar-dash/src/server/eval.mjs +0 -500
  485. package/bizar-dash/src/server/glyphs/mdx-compiler.mjs +0 -596
  486. package/bizar-dash/src/server/lib/path-safe.mjs +0 -283
  487. package/bizar-dash/src/server/lib/rate-limit.mjs +0 -122
  488. package/bizar-dash/src/server/logger.mjs +0 -71
  489. package/bizar-dash/src/server/loop-runtime.mjs +0 -429
  490. package/bizar-dash/src/server/memory-consolidator.mjs +0 -225
  491. package/bizar-dash/src/server/memory-distillation.mjs +0 -296
  492. package/bizar-dash/src/server/memory-git.mjs +0 -473
  493. package/bizar-dash/src/server/memory-lightrag.mjs +0 -1483
  494. package/bizar-dash/src/server/memory-obsidian.mjs +0 -230
  495. package/bizar-dash/src/server/memory-schema.mjs +0 -145
  496. package/bizar-dash/src/server/memory-secrets.mjs +0 -84
  497. package/bizar-dash/src/server/memory-store.mjs +0 -1093
  498. package/bizar-dash/src/server/metrics.mjs +0 -268
  499. package/bizar-dash/src/server/minimax-usage-store.mjs +0 -372
  500. package/bizar-dash/src/server/minimax.mjs +0 -683
  501. package/bizar-dash/src/server/mod-security.mjs +0 -397
  502. package/bizar-dash/src/server/mods-loader.mjs +0 -1243
  503. package/bizar-dash/src/server/notifications-store.mjs +0 -243
  504. package/bizar-dash/src/server/obsidian-store.mjs +0 -318
  505. package/bizar-dash/src/server/ocr.mjs +0 -55
  506. package/bizar-dash/src/server/otel.mjs +0 -260
  507. package/bizar-dash/src/server/pair-store.mjs +0 -138
  508. package/bizar-dash/src/server/progress-parser.test.mjs +0 -129
  509. package/bizar-dash/src/server/projects-store.mjs +0 -364
  510. package/bizar-dash/src/server/providers-store.mjs +0 -1801
  511. package/bizar-dash/src/server/routes/_shared.mjs +0 -430
  512. package/bizar-dash/src/server/routes/activity.mjs +0 -215
  513. package/bizar-dash/src/server/routes/admin.mjs +0 -163
  514. package/bizar-dash/src/server/routes/agent-bus.mjs +0 -185
  515. package/bizar-dash/src/server/routes/agents-cc.mjs +0 -551
  516. package/bizar-dash/src/server/routes/agents-cc.test.mjs +0 -35
  517. package/bizar-dash/src/server/routes/agents.mjs +0 -149
  518. package/bizar-dash/src/server/routes/artifacts.mjs +0 -315
  519. package/bizar-dash/src/server/routes/audit.mjs +0 -79
  520. package/bizar-dash/src/server/routes/auth.mjs +0 -69
  521. package/bizar-dash/src/server/routes/background.mjs +0 -422
  522. package/bizar-dash/src/server/routes/backup.mjs +0 -112
  523. package/bizar-dash/src/server/routes/chat.mjs +0 -727
  524. package/bizar-dash/src/server/routes/claude-session-detail.mjs +0 -367
  525. package/bizar-dash/src/server/routes/claude-sessions.mjs +0 -259
  526. package/bizar-dash/src/server/routes/clipboard.mjs +0 -173
  527. package/bizar-dash/src/server/routes/config.mjs +0 -180
  528. package/bizar-dash/src/server/routes/decisions.mjs +0 -78
  529. package/bizar-dash/src/server/routes/diagnostics.mjs +0 -50
  530. package/bizar-dash/src/server/routes/dialogs.mjs +0 -134
  531. package/bizar-dash/src/server/routes/digests.mjs +0 -82
  532. package/bizar-dash/src/server/routes/distill.mjs +0 -129
  533. package/bizar-dash/src/server/routes/doctor.mjs +0 -71
  534. package/bizar-dash/src/server/routes/env-vars.mjs +0 -231
  535. package/bizar-dash/src/server/routes/eval.mjs +0 -187
  536. package/bizar-dash/src/server/routes/fs.mjs +0 -429
  537. package/bizar-dash/src/server/routes/goal-planner.mjs +0 -236
  538. package/bizar-dash/src/server/routes/goals.mjs +0 -428
  539. package/bizar-dash/src/server/routes/history.mjs +0 -78
  540. package/bizar-dash/src/server/routes/lightrag.mjs +0 -169
  541. package/bizar-dash/src/server/routes/loops.mjs +0 -138
  542. package/bizar-dash/src/server/routes/memory.mjs +0 -1524
  543. package/bizar-dash/src/server/routes/minimax.mjs +0 -133
  544. package/bizar-dash/src/server/routes/misc.mjs +0 -90
  545. package/bizar-dash/src/server/routes/model-router.mjs +0 -158
  546. package/bizar-dash/src/server/routes/model-router.test.mjs +0 -104
  547. package/bizar-dash/src/server/routes/mods.mjs +0 -359
  548. package/bizar-dash/src/server/routes/notifications.mjs +0 -54
  549. package/bizar-dash/src/server/routes/obsidian.mjs +0 -239
  550. package/bizar-dash/src/server/routes/ocr.mjs +0 -182
  551. package/bizar-dash/src/server/routes/overview.mjs +0 -219
  552. package/bizar-dash/src/server/routes/overview.test.mjs +0 -65
  553. package/bizar-dash/src/server/routes/pair.mjs +0 -67
  554. package/bizar-dash/src/server/routes/projects.mjs +0 -175
  555. package/bizar-dash/src/server/routes/providers.mjs +0 -361
  556. package/bizar-dash/src/server/routes/schedules.mjs +0 -159
  557. package/bizar-dash/src/server/routes/sessions.mjs +0 -80
  558. package/bizar-dash/src/server/routes/settings.mjs +0 -51
  559. package/bizar-dash/src/server/routes/skills.mjs +0 -70
  560. package/bizar-dash/src/server/routes/spawn.mjs +0 -59
  561. package/bizar-dash/src/server/routes/tailscale.mjs +0 -46
  562. package/bizar-dash/src/server/routes/tasks.mjs +0 -579
  563. package/bizar-dash/src/server/routes/themes.mjs +0 -51
  564. package/bizar-dash/src/server/routes/update.mjs +0 -367
  565. package/bizar-dash/src/server/routes/usage.mjs +0 -136
  566. package/bizar-dash/src/server/routes/users.mjs +0 -102
  567. package/bizar-dash/src/server/routes/voice.mjs +0 -167
  568. package/bizar-dash/src/server/routes/workspaces.mjs +0 -299
  569. package/bizar-dash/src/server/routes-v2/auth.mjs +0 -59
  570. package/bizar-dash/src/server/routes-v2/events.mjs +0 -121
  571. package/bizar-dash/src/server/routes-v2/health.mjs +0 -21
  572. package/bizar-dash/src/server/routes-v2/index.mjs +0 -90
  573. package/bizar-dash/src/server/routes-v2/sessions.mjs +0 -111
  574. package/bizar-dash/src/server/schedules-runner.mjs +0 -556
  575. package/bizar-dash/src/server/schedules-store.mjs +0 -268
  576. package/bizar-dash/src/server/search-store.mjs +0 -220
  577. package/bizar-dash/src/server/serve-info.mjs +0 -1110
  578. package/bizar-dash/src/server/server.mjs +0 -951
  579. package/bizar-dash/src/server/settings-store.mjs +0 -45
  580. package/bizar-dash/src/server/skills-store.mjs +0 -192
  581. package/bizar-dash/src/server/sprint.test.mjs +0 -163
  582. package/bizar-dash/src/server/state.mjs +0 -437
  583. package/bizar-dash/src/server/tailscale-store.mjs +0 -113
  584. package/bizar-dash/src/server/task-delegator.mjs +0 -969
  585. package/bizar-dash/src/server/task-splitter.mjs +0 -241
  586. package/bizar-dash/src/server/tasks-store.mjs +0 -556
  587. package/bizar-dash/src/server/tui.mjs +0 -923
  588. package/bizar-dash/src/server/update-store.mjs +0 -168
  589. package/bizar-dash/src/server/v2-auth-file.mjs +0 -99
  590. package/bizar-dash/src/server/v2-event-bus.mjs +0 -128
  591. package/bizar-dash/src/server/voice-store.mjs +0 -229
  592. package/bizar-dash/src/server/voice-transcribe.mjs +0 -72
  593. package/bizar-dash/src/server/watcher.mjs +0 -81
  594. package/bizar-dash/src/server/workers/transcription-worker.mjs +0 -213
  595. package/bizar-dash/src/server/workspaces.mjs +0 -626
  596. package/bizar-dash/src/server/yaml.mjs +0 -238
  597. package/bizar-dash/src/web/index.html +0 -17
  598. package/bizar-dash/src/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  599. package/bizar-dash/src/web/v8/App.tsx +0 -426
  600. package/bizar-dash/src/web/v8/__tests__/App.test.tsx +0 -102
  601. package/bizar-dash/src/web/v8/__tests__/AppShell.test.tsx +0 -79
  602. package/bizar-dash/src/web/v8/__tests__/BackgroundJobsView.test.tsx +0 -172
  603. package/bizar-dash/src/web/v8/__tests__/MemoryView.test.tsx +0 -91
  604. package/bizar-dash/src/web/v8/__tests__/NotificationsPopover.test.tsx +0 -91
  605. package/bizar-dash/src/web/v8/__tests__/PageSkeleton.test.tsx +0 -12
  606. package/bizar-dash/src/web/v8/__tests__/SchedulesView.test.tsx +0 -157
  607. package/bizar-dash/src/web/v8/__tests__/SettingsView.test.tsx +0 -84
  608. package/bizar-dash/src/web/v8/__tests__/Sidebar.test.tsx +0 -95
  609. package/bizar-dash/src/web/v8/__tests__/Topbar.test.tsx +0 -86
  610. package/bizar-dash/src/web/v8/__tests__/activity.test.tsx +0 -63
  611. package/bizar-dash/src/web/v8/__tests__/admin-view.test.tsx +0 -105
  612. package/bizar-dash/src/web/v8/__tests__/agent-card-metrics.test.tsx +0 -54
  613. package/bizar-dash/src/web/v8/__tests__/agent-detail-tasks.test.tsx +0 -68
  614. package/bizar-dash/src/web/v8/__tests__/agent-hierarchy.test.tsx +0 -79
  615. package/bizar-dash/src/web/v8/__tests__/agents-stuck-banner.test.tsx +0 -142
  616. package/bizar-dash/src/web/v8/__tests__/agents.test.tsx +0 -90
  617. package/bizar-dash/src/web/v8/__tests__/artifacts-view.test.tsx +0 -102
  618. package/bizar-dash/src/web/v8/__tests__/audit-fixes.test.tsx +0 -139
  619. package/bizar-dash/src/web/v8/__tests__/auth-view.test.tsx +0 -94
  620. package/bizar-dash/src/web/v8/__tests__/changelog.test.tsx +0 -79
  621. package/bizar-dash/src/web/v8/__tests__/chat-types.test.ts +0 -55
  622. package/bizar-dash/src/web/v8/__tests__/chat-view.test.tsx +0 -142
  623. package/bizar-dash/src/web/v8/__tests__/claude-sessions-view.test.tsx +0 -159
  624. package/bizar-dash/src/web/v8/__tests__/clipboard-view.test.tsx +0 -90
  625. package/bizar-dash/src/web/v8/__tests__/config-view.test.tsx +0 -111
  626. package/bizar-dash/src/web/v8/__tests__/control-plane.test.tsx +0 -104
  627. package/bizar-dash/src/web/v8/__tests__/controls.test.tsx +0 -135
  628. package/bizar-dash/src/web/v8/__tests__/cx.test.ts +0 -25
  629. package/bizar-dash/src/web/v8/__tests__/data.test.tsx +0 -293
  630. package/bizar-dash/src/web/v8/__tests__/dialogs-view.test.tsx +0 -81
  631. package/bizar-dash/src/web/v8/__tests__/env-vars-view.test.tsx +0 -123
  632. package/bizar-dash/src/web/v8/__tests__/feedback.test.tsx +0 -213
  633. package/bizar-dash/src/web/v8/__tests__/goals-cc-roundtrip.test.tsx +0 -94
  634. package/bizar-dash/src/web/v8/__tests__/goals.test.tsx +0 -105
  635. package/bizar-dash/src/web/v8/__tests__/history-view.test.tsx +0 -96
  636. package/bizar-dash/src/web/v8/__tests__/kanban.test.tsx +0 -176
  637. package/bizar-dash/src/web/v8/__tests__/libraries.test.tsx +0 -70
  638. package/bizar-dash/src/web/v8/__tests__/lightrag-view.test.tsx +0 -90
  639. package/bizar-dash/src/web/v8/__tests__/memory.test.tsx +0 -60
  640. package/bizar-dash/src/web/v8/__tests__/misc-view.test.tsx +0 -79
  641. package/bizar-dash/src/web/v8/__tests__/mods-view.test.tsx +0 -123
  642. package/bizar-dash/src/web/v8/__tests__/navigation.test.tsx +0 -137
  643. package/bizar-dash/src/web/v8/__tests__/new-views.test.tsx +0 -160
  644. package/bizar-dash/src/web/v8/__tests__/obsidian-view.test.tsx +0 -82
  645. package/bizar-dash/src/web/v8/__tests__/overview-trends.test.tsx +0 -87
  646. package/bizar-dash/src/web/v8/__tests__/projects-view.test.tsx +0 -134
  647. package/bizar-dash/src/web/v8/__tests__/providers-view.test.tsx +0 -100
  648. package/bizar-dash/src/web/v8/__tests__/settings.test.tsx +0 -104
  649. package/bizar-dash/src/web/v8/__tests__/theme.test.tsx +0 -104
  650. package/bizar-dash/src/web/v8/__tests__/update-view.test.tsx +0 -89
  651. package/bizar-dash/src/web/v8/__tests__/useFetch.test.ts +0 -92
  652. package/bizar-dash/src/web/v8/__tests__/useWebSocket.test.ts +0 -87
  653. package/bizar-dash/src/web/v8/__tests__/views.test.tsx +0 -188
  654. package/bizar-dash/src/web/v8/__tests__/voice-view.test.tsx +0 -80
  655. package/bizar-dash/src/web/v8/data/fetcher.ts +0 -59
  656. package/bizar-dash/src/web/v8/data/types.ts +0 -239
  657. package/bizar-dash/src/web/v8/data/useFetch.ts +0 -62
  658. package/bizar-dash/src/web/v8/data/useViewNavigate.ts +0 -54
  659. package/bizar-dash/src/web/v8/data/useWebSocket.ts +0 -206
  660. package/bizar-dash/src/web/v8/main.tsx +0 -28
  661. package/bizar-dash/src/web/v8/shell/AppShell.tsx +0 -126
  662. package/bizar-dash/src/web/v8/shell/PageSkeleton.tsx +0 -29
  663. package/bizar-dash/src/web/v8/shell/Sidebar.tsx +0 -515
  664. package/bizar-dash/src/web/v8/shell/StatusBar.tsx +0 -63
  665. package/bizar-dash/src/web/v8/shell/Topbar.tsx +0 -330
  666. package/bizar-dash/src/web/v8/shell/index.ts +0 -15
  667. package/bizar-dash/src/web/v8/ui/activity/ActivityFeed.tsx +0 -137
  668. package/bizar-dash/src/web/v8/ui/activity/ActivityLane.tsx +0 -315
  669. package/bizar-dash/src/web/v8/ui/activity/ActivityLanes.tsx +0 -51
  670. package/bizar-dash/src/web/v8/ui/agents/AgentActivity.tsx +0 -101
  671. package/bizar-dash/src/web/v8/ui/agents/AgentCard.tsx +0 -239
  672. package/bizar-dash/src/web/v8/ui/agents/AgentDetail.tsx +0 -439
  673. package/bizar-dash/src/web/v8/ui/agents/AgentLiveOutput.tsx +0 -252
  674. package/bizar-dash/src/web/v8/ui/agents/AgentStreamPanel.tsx +0 -371
  675. package/bizar-dash/src/web/v8/ui/chat/ChatDrawer.tsx +0 -208
  676. package/bizar-dash/src/web/v8/ui/chat/EventStream.tsx +0 -83
  677. package/bizar-dash/src/web/v8/ui/chat/MessageBubble.tsx +0 -174
  678. package/bizar-dash/src/web/v8/ui/controls/Button.tsx +0 -141
  679. package/bizar-dash/src/web/v8/ui/controls/ButtonGroup.tsx +0 -32
  680. package/bizar-dash/src/web/v8/ui/controls/Checkbox.tsx +0 -49
  681. package/bizar-dash/src/web/v8/ui/controls/Field.tsx +0 -78
  682. package/bizar-dash/src/web/v8/ui/controls/Form.tsx +0 -23
  683. package/bizar-dash/src/web/v8/ui/controls/IconButton.tsx +0 -112
  684. package/bizar-dash/src/web/v8/ui/controls/Input.tsx +0 -94
  685. package/bizar-dash/src/web/v8/ui/controls/RadioGroup.tsx +0 -74
  686. package/bizar-dash/src/web/v8/ui/controls/Select.tsx +0 -171
  687. package/bizar-dash/src/web/v8/ui/controls/Slider.tsx +0 -68
  688. package/bizar-dash/src/web/v8/ui/controls/Switch.tsx +0 -56
  689. package/bizar-dash/src/web/v8/ui/controls/Textarea.tsx +0 -64
  690. package/bizar-dash/src/web/v8/ui/controls/Toggle.tsx +0 -36
  691. package/bizar-dash/src/web/v8/ui/controls/ToggleGroup.tsx +0 -85
  692. package/bizar-dash/src/web/v8/ui/data/Accordion.tsx +0 -134
  693. package/bizar-dash/src/web/v8/ui/data/Avatar.tsx +0 -175
  694. package/bizar-dash/src/web/v8/ui/data/Badge.tsx +0 -93
  695. package/bizar-dash/src/web/v8/ui/data/BarList.tsx +0 -101
  696. package/bizar-dash/src/web/v8/ui/data/Card.tsx +0 -140
  697. package/bizar-dash/src/web/v8/ui/data/Chip.tsx +0 -96
  698. package/bizar-dash/src/web/v8/ui/data/Kbd.tsx +0 -42
  699. package/bizar-dash/src/web/v8/ui/data/ListHeader.tsx +0 -94
  700. package/bizar-dash/src/web/v8/ui/data/ProgressBar.tsx +0 -93
  701. package/bizar-dash/src/web/v8/ui/data/Sparkline.tsx +0 -98
  702. package/bizar-dash/src/web/v8/ui/data/StatTile.tsx +0 -150
  703. package/bizar-dash/src/web/v8/ui/data/Table.tsx +0 -170
  704. package/bizar-dash/src/web/v8/ui/data/Timeline.tsx +0 -130
  705. package/bizar-dash/src/web/v8/ui/data/ViewHeader.tsx +0 -122
  706. package/bizar-dash/src/web/v8/ui/feedback/Alert.tsx +0 -95
  707. package/bizar-dash/src/web/v8/ui/feedback/Banner.tsx +0 -39
  708. package/bizar-dash/src/web/v8/ui/feedback/ContextMenu.tsx +0 -143
  709. package/bizar-dash/src/web/v8/ui/feedback/Dialog.tsx +0 -149
  710. package/bizar-dash/src/web/v8/ui/feedback/Drawer.tsx +0 -8
  711. package/bizar-dash/src/web/v8/ui/feedback/DropdownMenu.tsx +0 -231
  712. package/bizar-dash/src/web/v8/ui/feedback/EmptyState.tsx +0 -48
  713. package/bizar-dash/src/web/v8/ui/feedback/ErrorState.tsx +0 -116
  714. package/bizar-dash/src/web/v8/ui/feedback/NotificationsPopover.tsx +0 -242
  715. package/bizar-dash/src/web/v8/ui/feedback/Popover.tsx +0 -56
  716. package/bizar-dash/src/web/v8/ui/feedback/Sheet.tsx +0 -103
  717. package/bizar-dash/src/web/v8/ui/feedback/Skeleton.tsx +0 -67
  718. package/bizar-dash/src/web/v8/ui/feedback/Spinner.tsx +0 -30
  719. package/bizar-dash/src/web/v8/ui/feedback/Toast.tsx +0 -66
  720. package/bizar-dash/src/web/v8/ui/feedback/Tooltip.tsx +0 -89
  721. package/bizar-dash/src/web/v8/ui/feedback/useFocusTrap.ts +0 -58
  722. package/bizar-dash/src/web/v8/ui/goals/GoalCard.tsx +0 -176
  723. package/bizar-dash/src/web/v8/ui/goals/GoalDetail.tsx +0 -278
  724. package/bizar-dash/src/web/v8/ui/goals/KeyResult.tsx +0 -115
  725. package/bizar-dash/src/web/v8/ui/index.ts +0 -369
  726. package/bizar-dash/src/web/v8/ui/kanban/KanbanBoard.tsx +0 -117
  727. package/bizar-dash/src/web/v8/ui/kanban/KanbanCard.tsx +0 -391
  728. package/bizar-dash/src/web/v8/ui/kanban/KanbanCardBadges.tsx +0 -111
  729. package/bizar-dash/src/web/v8/ui/kanban/KanbanColumn.tsx +0 -181
  730. package/bizar-dash/src/web/v8/ui/kanban/KanbanContextMenu.tsx +0 -126
  731. package/bizar-dash/src/web/v8/ui/kanban/KanbanDetailDialog.tsx +0 -638
  732. package/bizar-dash/src/web/v8/ui/kanban/KanbanEmptyColumn.tsx +0 -43
  733. package/bizar-dash/src/web/v8/ui/kanban/KanbanProgress.tsx +0 -130
  734. package/bizar-dash/src/web/v8/ui/kanban/KanbanQuickAdd.tsx +0 -141
  735. package/bizar-dash/src/web/v8/ui/kanban/KanbanToolbar.tsx +0 -291
  736. package/bizar-dash/src/web/v8/ui/kanban/useKanbanSelection.ts +0 -90
  737. package/bizar-dash/src/web/v8/ui/libraries/LibraryGrid.tsx +0 -30
  738. package/bizar-dash/src/web/v8/ui/libraries/LibraryItem.tsx +0 -161
  739. package/bizar-dash/src/web/v8/ui/memory/MemoryVault.tsx +0 -144
  740. package/bizar-dash/src/web/v8/ui/navigation/CommandPalette.tsx +0 -225
  741. package/bizar-dash/src/web/v8/ui/navigation/NavLink.tsx +0 -81
  742. package/bizar-dash/src/web/v8/ui/navigation/Pagination.tsx +0 -164
  743. package/bizar-dash/src/web/v8/ui/navigation/Tabs.tsx +0 -128
  744. package/bizar-dash/src/web/v8/ui/navigation/useCommandPaletteHotkey.test.ts +0 -79
  745. package/bizar-dash/src/web/v8/ui/primitives/Box.tsx +0 -144
  746. package/bizar-dash/src/web/v8/ui/primitives/Center.tsx +0 -40
  747. package/bizar-dash/src/web/v8/ui/primitives/Cluster.tsx +0 -67
  748. package/bizar-dash/src/web/v8/ui/primitives/Grid.tsx +0 -104
  749. package/bizar-dash/src/web/v8/ui/primitives/Inline.tsx +0 -77
  750. package/bizar-dash/src/web/v8/ui/primitives/Portal.tsx +0 -33
  751. package/bizar-dash/src/web/v8/ui/primitives/ScrollArea.tsx +0 -62
  752. package/bizar-dash/src/web/v8/ui/primitives/Separator.tsx +0 -42
  753. package/bizar-dash/src/web/v8/ui/primitives/Stack.tsx +0 -73
  754. package/bizar-dash/src/web/v8/ui/primitives/VisuallyHidden.tsx +0 -49
  755. package/bizar-dash/src/web/v8/ui/settings/SettingsNav.tsx +0 -91
  756. package/bizar-dash/src/web/v8/ui/settings/SettingsRow.tsx +0 -88
  757. package/bizar-dash/src/web/v8/ui/settings/SettingsSection.tsx +0 -109
  758. package/bizar-dash/src/web/v8/ui/styles/globals.css +0 -265
  759. package/bizar-dash/src/web/v8/ui/styles/reset.css +0 -57
  760. package/bizar-dash/src/web/v8/ui/styles/tokens.css +0 -238
  761. package/bizar-dash/src/web/v8/ui/tasks/TaskDetail.tsx +0 -313
  762. package/bizar-dash/src/web/v8/ui/theme/DensityProvider.test.tsx +0 -74
  763. package/bizar-dash/src/web/v8/ui/theme/DensityProvider.tsx +0 -66
  764. package/bizar-dash/src/web/v8/ui/theme/ThemeProvider.test.tsx +0 -86
  765. package/bizar-dash/src/web/v8/ui/theme/ThemeProvider.tsx +0 -94
  766. package/bizar-dash/src/web/v8/ui/theme/ThemeToggle.tsx +0 -93
  767. package/bizar-dash/src/web/v8/ui/theme/useDensity.ts +0 -15
  768. package/bizar-dash/src/web/v8/ui/theme/useTheme.ts +0 -16
  769. package/bizar-dash/src/web/v8/ui/utils/cx.ts +0 -19
  770. package/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +0 -457
  771. package/bizar-dash/src/web/v8/views/Admin/AdminView.tsx +0 -237
  772. package/bizar-dash/src/web/v8/views/Agents/AgentHierarchy.tsx +0 -212
  773. package/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +0 -511
  774. package/bizar-dash/src/web/v8/views/Artifacts/ArtifactsView.tsx +0 -452
  775. package/bizar-dash/src/web/v8/views/Artifacts/ClaudeArtifactView.tsx +0 -179
  776. package/bizar-dash/src/web/v8/views/Auth/AuthView.tsx +0 -179
  777. package/bizar-dash/src/web/v8/views/BackgroundJobs/BackgroundJobsView.tsx +0 -467
  778. package/bizar-dash/src/web/v8/views/Backup/BackupView.tsx +0 -204
  779. package/bizar-dash/src/web/v8/views/Chat/ChatView.tsx +0 -368
  780. package/bizar-dash/src/web/v8/views/ClaudeSessions/ClaudeSessionDetail.tsx +0 -144
  781. package/bizar-dash/src/web/v8/views/ClaudeSessions/ClaudeSessionsView.tsx +0 -331
  782. package/bizar-dash/src/web/v8/views/ClaudeSessions/NewSessionModal.tsx +0 -136
  783. package/bizar-dash/src/web/v8/views/Clipboard/ClipboardView.tsx +0 -210
  784. package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.test.tsx +0 -142
  785. package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.tsx +0 -272
  786. package/bizar-dash/src/web/v8/views/Config/ConfigView.tsx +0 -364
  787. package/bizar-dash/src/web/v8/views/Diagnostics/DiagnosticsView.tsx +0 -203
  788. package/bizar-dash/src/web/v8/views/Dialogs/DialogsView.tsx +0 -196
  789. package/bizar-dash/src/web/v8/views/Doctor/DoctorView.tsx +0 -181
  790. package/bizar-dash/src/web/v8/views/EnvVars/EnvVarsView.tsx +0 -365
  791. package/bizar-dash/src/web/v8/views/Eval/EvalView.tsx +0 -278
  792. package/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +0 -351
  793. package/bizar-dash/src/web/v8/views/History/HistoryView.tsx +0 -227
  794. package/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +0 -123
  795. package/bizar-dash/src/web/v8/views/LightRAG/LightRAGView.tsx +0 -204
  796. package/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +0 -258
  797. package/bizar-dash/src/web/v8/views/Misc/MiscView.tsx +0 -159
  798. package/bizar-dash/src/web/v8/views/Mods/ModsView.tsx +0 -348
  799. package/bizar-dash/src/web/v8/views/Notifications/NotificationsView.tsx +0 -247
  800. package/bizar-dash/src/web/v8/views/Obsidian/ObsidianView.tsx +0 -193
  801. package/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +0 -274
  802. package/bizar-dash/src/web/v8/views/Projects/ProjectsView.tsx +0 -273
  803. package/bizar-dash/src/web/v8/views/Providers/ProvidersView.tsx +0 -371
  804. package/bizar-dash/src/web/v8/views/Router.tsx +0 -202
  805. package/bizar-dash/src/web/v8/views/Schedules/SchedulesView.tsx +0 -462
  806. package/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +0 -1039
  807. package/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +0 -386
  808. package/bizar-dash/src/web/v8/views/Update/UpdateView.tsx +0 -270
  809. package/bizar-dash/src/web/v8/views/Usage/UsageView.tsx +0 -210
  810. package/bizar-dash/src/web/v8/views/Voice/VoiceView.tsx +0 -192
  811. package/bizar-dash/src/web/v8/vite-env.d.ts +0 -15
  812. package/bizar-dash/templates/mod/FORMAT.md +0 -76
  813. package/bizar-dash/templates/mod/hello-mod/README.md +0 -19
  814. package/bizar-dash/templates/mod/hello-mod/agents/greeter.md +0 -8
  815. package/bizar-dash/templates/mod/hello-mod/commands/hello.md +0 -6
  816. package/bizar-dash/templates/mod/hello-mod/mod.json +0 -20
  817. package/bizar-dash/templates/mod/hello-mod/routes/ping.mjs +0 -9
  818. package/bizar-dash/templates/mod/hello-mod/views/HelloView.tsx +0 -10
  819. package/bizar-dash/tests/_update-test-helpers.mjs +0 -13
  820. package/bizar-dash/tests/admin-labels.test.mjs +0 -42
  821. package/bizar-dash/tests/admin-run-grouping.test.mjs +0 -42
  822. package/bizar-dash/tests/agent-bus.test.mjs +0 -289
  823. package/bizar-dash/tests/agents-preview-truncate.test.mjs +0 -35
  824. package/bizar-dash/tests/agents-summary-sanitize.test.ts +0 -51
  825. package/bizar-dash/tests/auth-inputs-labels.test.mjs +0 -45
  826. package/bizar-dash/tests/background-jobs-action-labels.test.mjs +0 -41
  827. package/bizar-dash/tests/background-jobs-states.test.mjs +0 -80
  828. package/bizar-dash/tests/background-pause-resume.test.mjs +0 -46
  829. package/bizar-dash/tests/background-sdk-session.test.mjs +0 -94
  830. package/bizar-dash/tests/background-session-events.test.mjs +0 -74
  831. package/bizar-dash/tests/background-spawn-from-ui.test.mjs +0 -36
  832. package/bizar-dash/tests/background-steer-sdk.test.mjs +0 -71
  833. package/bizar-dash/tests/background-steer.test.mjs +0 -60
  834. package/bizar-dash/tests/backup-restore.test.mjs +0 -217
  835. package/bizar-dash/tests/backup-store.test.mjs +0 -300
  836. package/bizar-dash/tests/banner-tones.test.mjs +0 -50
  837. package/bizar-dash/tests/bundle-analysis.test.mjs +0 -74
  838. package/bizar-dash/tests/callout-tokens.test.mjs +0 -30
  839. package/bizar-dash/tests/chat-new-session.test.mjs +0 -63
  840. package/bizar-dash/tests/claude-session-detail-states.test.mjs +0 -67
  841. package/bizar-dash/tests/cli-bugfixes.test.mjs +0 -151
  842. package/bizar-dash/tests/cli-error-visibility.test.mjs +0 -153
  843. package/bizar-dash/tests/cli-refactor.test.mjs +0 -183
  844. package/bizar-dash/tests/cli-tailscale.test.mjs +0 -113
  845. package/bizar-dash/tests/clipboard.test.mjs +0 -147
  846. package/bizar-dash/tests/components/BackgroundJobsSkeleton.test.tsx +0 -38
  847. package/bizar-dash/tests/components/Button.test.tsx +0 -78
  848. package/bizar-dash/tests/components/Card.test.tsx +0 -59
  849. package/bizar-dash/tests/components/Dialog.test.tsx +0 -80
  850. package/bizar-dash/tests/components/Toast.test.tsx +0 -61
  851. package/bizar-dash/tests/dash-cli-load.test.mjs +0 -44
  852. package/bizar-dash/tests/dashboard-ports.test.mjs +0 -138
  853. package/bizar-dash/tests/density-tokens.test.mjs +0 -46
  854. package/bizar-dash/tests/deploy-templates.test.mjs +0 -100
  855. package/bizar-dash/tests/diagnostics-store.test.mjs +0 -205
  856. package/bizar-dash/tests/digest-generation.test.mjs +0 -191
  857. package/bizar-dash/tests/digest-store.test.mjs +0 -264
  858. package/bizar-dash/tests/docker-build.test.mjs +0 -96
  859. package/bizar-dash/tests/doctor-route-shape.test.mjs +0 -67
  860. package/bizar-dash/tests/empty-state-docs.test.mjs +0 -55
  861. package/bizar-dash/tests/env-vars-extended.test.mjs +0 -190
  862. package/bizar-dash/tests/env-vars-store.test.mjs +0 -216
  863. package/bizar-dash/tests/errorstate-retry.test.mjs +0 -42
  864. package/bizar-dash/tests/eval/fixtures-extra.test.mjs +0 -285
  865. package/bizar-dash/tests/eval/fixtures.test.mjs +0 -141
  866. package/bizar-dash/tests/eval/report.test.mjs +0 -284
  867. package/bizar-dash/tests/eval/runner.test.mjs +0 -471
  868. package/bizar-dash/tests/eval-csv.test.mjs +0 -67
  869. package/bizar-dash/tests/eval-scheduled.test.mjs +0 -84
  870. package/bizar-dash/tests/focus-visible.test.mjs +0 -30
  871. package/bizar-dash/tests/frontend-bugfixes.test.mjs +0 -151
  872. package/bizar-dash/tests/goals-decompose.test.mjs +0 -179
  873. package/bizar-dash/tests/kanban-empty-column.test.mjs +0 -56
  874. package/bizar-dash/tests/layout-spacing.test.mjs +0 -101
  875. package/bizar-dash/tests/library-dedupe.test.mjs +0 -62
  876. package/bizar-dash/tests/lightrag-defaults.node.test.mjs +0 -118
  877. package/bizar-dash/tests/lightrag-skeleton.test.mjs +0 -31
  878. package/bizar-dash/tests/lightrag-startup-hook.test.mjs +0 -238
  879. package/bizar-dash/tests/lightrag-states.test.mjs +0 -60
  880. package/bizar-dash/tests/logger.test.mjs +0 -207
  881. package/bizar-dash/tests/loop-runtime.test.mjs +0 -312
  882. package/bizar-dash/tests/loops-agent-bus-routes.test.mjs +0 -293
  883. package/bizar-dash/tests/memory-auto-reindex.test.mjs +0 -196
  884. package/bizar-dash/tests/memory-cli-readlistdelete.test.mjs +0 -405
  885. package/bizar-dash/tests/memory-cli-setup.test.mjs +0 -382
  886. package/bizar-dash/tests/memory-cli.test.mjs +0 -596
  887. package/bizar-dash/tests/memory-config.test.mjs +0 -422
  888. package/bizar-dash/tests/memory-conflicts.test.mjs +0 -229
  889. package/bizar-dash/tests/memory-default-vault.test.mjs +0 -185
  890. package/bizar-dash/tests/memory-git.test.mjs +0 -264
  891. package/bizar-dash/tests/memory-graph.test.mjs +0 -95
  892. package/bizar-dash/tests/memory-install-bootstrap.test.mjs +0 -129
  893. package/bizar-dash/tests/memory-lightrag-extended.test.mjs +0 -293
  894. package/bizar-dash/tests/memory-lightrag.test.mjs +0 -153
  895. package/bizar-dash/tests/memory-link.test.mjs +0 -134
  896. package/bizar-dash/tests/memory-namespace.test.mjs +0 -404
  897. package/bizar-dash/tests/memory-obsidian.test.mjs +0 -269
  898. package/bizar-dash/tests/memory-path-safety.test.mjs +0 -427
  899. package/bizar-dash/tests/memory-protocol-drift.test.mjs +0 -52
  900. package/bizar-dash/tests/memory-roundtrip.test.mjs +0 -219
  901. package/bizar-dash/tests/memory-schema.test.mjs +0 -198
  902. package/bizar-dash/tests/memory-secrets.test.mjs +0 -121
  903. package/bizar-dash/tests/memory-status-root.test.mjs +0 -144
  904. package/bizar-dash/tests/memory-store.test.mjs +0 -493
  905. package/bizar-dash/tests/memory-sync.test.mjs +0 -141
  906. package/bizar-dash/tests/memory-tab.test.mjs +0 -322
  907. package/bizar-dash/tests/memory-vault-config-endpoint.test.mjs +0 -173
  908. package/bizar-dash/tests/metrics.test.mjs +0 -183
  909. package/bizar-dash/tests/minimax-bar.test.tsx +0 -113
  910. package/bizar-dash/tests/minimax-chat-usage.test.mjs +0 -253
  911. package/bizar-dash/tests/minimax-models.test.mjs +0 -123
  912. package/bizar-dash/tests/minimax-usage-store.node.test.mjs +0 -293
  913. package/bizar-dash/tests/mod-instructions.node.test.mjs +0 -188
  914. package/bizar-dash/tests/mod-security.test.mjs +0 -273
  915. package/bizar-dash/tests/mod-upgrade.node.test.mjs +0 -357
  916. package/bizar-dash/tests/modal-focus-trap.test.mjs +0 -114
  917. package/bizar-dash/tests/no-browser-harness.node.test.mjs +0 -98
  918. package/bizar-dash/tests/notifications-dismiss-restore.test.mjs +0 -85
  919. package/bizar-dash/tests/obsidian-back-compat.test.mjs +0 -199
  920. package/bizar-dash/tests/ocr.test.mjs +0 -87
  921. package/bizar-dash/tests/orphan-tests-audit.test.mjs +0 -80
  922. package/bizar-dash/tests/otel-spans.test.mjs +0 -253
  923. package/bizar-dash/tests/otel.test.mjs +0 -188
  924. package/bizar-dash/tests/palette-keyboard-nav.test.mjs +0 -123
  925. package/bizar-dash/tests/palette-shortcut-hint.test.mjs +0 -58
  926. package/bizar-dash/tests/path-safe.test.mjs +0 -108
  927. package/bizar-dash/tests/projects-filter.test.mjs +0 -48
  928. package/bizar-dash/tests/providers-store-backup-keys.node.test.mjs +0 -809
  929. package/bizar-dash/tests/providers-store-search.node.test.mjs +0 -166
  930. package/bizar-dash/tests/rate-limit.test.mjs +0 -298
  931. package/bizar-dash/tests/routes-doctor.test.mjs +0 -159
  932. package/bizar-dash/tests/schedules-skeleton.test.mjs +0 -25
  933. package/bizar-dash/tests/schedules-states.test.mjs +0 -67
  934. package/bizar-dash/tests/schedules-templates.test.mjs +0 -144
  935. package/bizar-dash/tests/server-bugfixes.test.mjs +0 -318
  936. package/bizar-dash/tests/settings-labels.test.mjs +0 -80
  937. package/bizar-dash/tests/setup.ts +0 -84
  938. package/bizar-dash/tests/sidebar-collapse-animation.test.mjs +0 -37
  939. package/bizar-dash/tests/sidebar-distinct-icons.test.mjs +0 -28
  940. package/bizar-dash/tests/sidebar-responsive.test.tsx +0 -48
  941. package/bizar-dash/tests/sidebar-section-styles.test.mjs +0 -55
  942. package/bizar-dash/tests/sidebar-section-toggle.test.tsx +0 -63
  943. package/bizar-dash/tests/skeleton-height.test.mjs +0 -47
  944. package/bizar-dash/tests/skills-list.test.mjs +0 -232
  945. package/bizar-dash/tests/skills-search.test.mjs +0 -222
  946. package/bizar-dash/tests/smoke-v2.mjs +0 -212
  947. package/bizar-dash/tests/space-tokens.test.mjs +0 -36
  948. package/bizar-dash/tests/stattile-loading.test.mjs +0 -28
  949. package/bizar-dash/tests/strip-thinking.test.mjs +0 -175
  950. package/bizar-dash/tests/submit-feedback.test.mjs +0 -353
  951. package/bizar-dash/tests/task-splitter.test.mjs +0 -268
  952. package/bizar-dash/tests/tasks-create.test.mjs +0 -187
  953. package/bizar-dash/tests/tasks-patch-routes.test.mjs +0 -194
  954. package/bizar-dash/tests/theme-toggle-icon.test.mjs +0 -28
  955. package/bizar-dash/tests/tmux-wrap.test.mjs +0 -145
  956. package/bizar-dash/tests/topbar-design-system.test.mjs +0 -56
  957. package/bizar-dash/tests/topbar-popover-styles.test.mjs +0 -53
  958. package/bizar-dash/tests/ui/primitives/VisuallyHidden.test.tsx +0 -42
  959. package/bizar-dash/tests/update-channels.test.mjs +0 -67
  960. package/bizar-dash/tests/update-check.test.mjs +0 -132
  961. package/bizar-dash/tests/update-packages.test.mjs +0 -154
  962. package/bizar-dash/tests/update-run.test.mjs +0 -203
  963. package/bizar-dash/tests/users.test.mjs +0 -108
  964. package/bizar-dash/tests/v7-archive/BackgroundAgents.test.tsx +0 -160
  965. package/bizar-dash/tests/v7-archive/a11y/forms.test.tsx +0 -191
  966. package/bizar-dash/tests/v7-archive/a11y.test.tsx +0 -206
  967. package/bizar-dash/tests/v7-archive/autosave.test.tsx +0 -276
  968. package/bizar-dash/tests/v7-archive/backup-restore.test.tsx +0 -141
  969. package/bizar-dash/tests/v7-archive/chat-composer.test.tsx +0 -140
  970. package/bizar-dash/tests/v7-archive/communication-log.test.tsx +0 -67
  971. package/bizar-dash/tests/v7-archive/components/Modal.test.tsx +0 -104
  972. package/bizar-dash/tests/v7-archive/components/Spinner.test.tsx +0 -32
  973. package/bizar-dash/tests/v7-archive/components/StatusBadge.test.tsx +0 -35
  974. package/bizar-dash/tests/v7-archive/components/doctor-panel.test.tsx +0 -105
  975. package/bizar-dash/tests/v7-archive/components/screenshot-ocr.test.tsx +0 -75
  976. package/bizar-dash/tests/v7-archive/components/settings-search.test.tsx +0 -180
  977. package/bizar-dash/tests/v7-archive/components/workspace-selector.test.tsx +0 -73
  978. package/bizar-dash/tests/v7-archive/controls/Button.test.tsx +0 -50
  979. package/bizar-dash/tests/v7-archive/controls/Checkbox.test.tsx +0 -44
  980. package/bizar-dash/tests/v7-archive/controls/IconButton.test.tsx +0 -37
  981. package/bizar-dash/tests/v7-archive/controls/Kbd.test.tsx +0 -39
  982. package/bizar-dash/tests/v7-archive/controls/NumberInput.test.tsx +0 -56
  983. package/bizar-dash/tests/v7-archive/controls/RadioGroup.test.tsx +0 -58
  984. package/bizar-dash/tests/v7-archive/controls/SearchInput.test.tsx +0 -52
  985. package/bizar-dash/tests/v7-archive/controls/Select.test.tsx +0 -66
  986. package/bizar-dash/tests/v7-archive/controls/Slider.test.tsx +0 -41
  987. package/bizar-dash/tests/v7-archive/controls/TextInput.test.tsx +0 -44
  988. package/bizar-dash/tests/v7-archive/controls/Textarea.test.tsx +0 -56
  989. package/bizar-dash/tests/v7-archive/controls/Toggle.test.tsx +0 -39
  990. package/bizar-dash/tests/v7-archive/data/BarChart.test.tsx +0 -55
  991. package/bizar-dash/tests/v7-archive/data/DataTable.test.tsx +0 -112
  992. package/bizar-dash/tests/v7-archive/data/EmptyState.test.tsx +0 -57
  993. package/bizar-dash/tests/v7-archive/data/ErrorState.test.tsx +0 -47
  994. package/bizar-dash/tests/v7-archive/data/KeyValueList.test.tsx +0 -59
  995. package/bizar-dash/tests/v7-archive/data/LoadingState.test.tsx +0 -37
  996. package/bizar-dash/tests/v7-archive/data/Sparkline.test.tsx +0 -56
  997. package/bizar-dash/tests/v7-archive/data/StatTile.test.tsx +0 -69
  998. package/bizar-dash/tests/v7-archive/dep-graph.test.tsx +0 -40
  999. package/bizar-dash/tests/v7-archive/eval-web-ui.test.tsx +0 -220
  1000. package/bizar-dash/tests/v7-archive/event-log.test.tsx +0 -61
  1001. package/bizar-dash/tests/v7-archive/feedback/Badge.test.tsx +0 -41
  1002. package/bizar-dash/tests/v7-archive/feedback/Dialog.test.tsx +0 -99
  1003. package/bizar-dash/tests/v7-archive/feedback/ProgressBar.test.tsx +0 -66
  1004. package/bizar-dash/tests/v7-archive/feedback/StatusDot.test.tsx +0 -41
  1005. package/bizar-dash/tests/v7-archive/feedback/Toast.test.tsx +0 -124
  1006. package/bizar-dash/tests/v7-archive/feedback/Tooltip.test.tsx +0 -102
  1007. package/bizar-dash/tests/v7-archive/goal-input.test.tsx +0 -72
  1008. package/bizar-dash/tests/v7-archive/goap-planner.test.ts +0 -68
  1009. package/bizar-dash/tests/v7-archive/hooks/useModal.test.tsx +0 -84
  1010. package/bizar-dash/tests/v7-archive/hooks/useToast.test.tsx +0 -50
  1011. package/bizar-dash/tests/v7-archive/layout/AppShell.test.tsx +0 -50
  1012. package/bizar-dash/tests/v7-archive/layout/Breadcrumbs.test.tsx +0 -85
  1013. package/bizar-dash/tests/v7-archive/layout/Panel.test.tsx +0 -52
  1014. package/bizar-dash/tests/v7-archive/layout/PanelHeader.test.tsx +0 -32
  1015. package/bizar-dash/tests/v7-archive/layout/Sidebar.test.tsx +0 -95
  1016. package/bizar-dash/tests/v7-archive/layout/Tabs.test.tsx +0 -87
  1017. package/bizar-dash/tests/v7-archive/layout/Topbar.test.tsx +0 -41
  1018. package/bizar-dash/tests/v7-archive/layout/ViewHeader.test.tsx +0 -47
  1019. package/bizar-dash/tests/v7-archive/lib/i18n.test.ts +0 -46
  1020. package/bizar-dash/tests/v7-archive/lib/search-fuzzy.test.ts +0 -149
  1021. package/bizar-dash/tests/v7-archive/lib/utils.test.ts +0 -194
  1022. package/bizar-dash/tests/v7-archive/memory-graph-view.test.tsx +0 -69
  1023. package/bizar-dash/tests/v7-archive/mobile-chat.test.tsx +0 -82
  1024. package/bizar-dash/tests/v7-archive/mobile-layout.test.tsx +0 -332
  1025. package/bizar-dash/tests/v7-archive/mobile-tasks.test.tsx +0 -162
  1026. package/bizar-dash/tests/v7-archive/navigation/NavGroup.test.tsx +0 -55
  1027. package/bizar-dash/tests/v7-archive/navigation/NavLink.test.tsx +0 -61
  1028. package/bizar-dash/tests/v7-archive/quality-gates.test.tsx +0 -59
  1029. package/bizar-dash/tests/v7-archive/settings-layout.test.tsx +0 -129
  1030. package/bizar-dash/tests/v7-archive/settings-mode-wiring.test.tsx +0 -151
  1031. package/bizar-dash/tests/v7-archive/ui/primitives/Box.test.tsx +0 -49
  1032. package/bizar-dash/tests/v7-archive/ui/primitives/Grid.test.tsx +0 -37
  1033. package/bizar-dash/tests/v7-archive/ui/primitives/Inline.test.tsx +0 -33
  1034. package/bizar-dash/tests/v7-archive/ui/primitives/Separator.test.tsx +0 -34
  1035. package/bizar-dash/tests/v7-archive/ui/primitives/Stack.test.tsx +0 -45
  1036. package/bizar-dash/tests/v7-archive/views/Agents.test.tsx +0 -359
  1037. package/bizar-dash/tests/v7-archive/views/Memory.test.tsx +0 -274
  1038. package/bizar-dash/tests/v7-archive/views/Tasks.test.tsx +0 -250
  1039. package/bizar-dash/tests/v7-archive/views/sidebar.test.tsx +0 -116
  1040. package/bizar-dash/tests/v7-archive/views/topbar.test.tsx +0 -87
  1041. package/bizar-dash/tests/v7-archive/voice-recorder.test.tsx +0 -95
  1042. package/bizar-dash/tests/voice-store.test.mjs +0 -148
  1043. package/bizar-dash/tests/voice-transcribe-worker.test.mjs +0 -343
  1044. package/bizar-dash/tests/voice-transcribe.test.mjs +0 -87
  1045. package/bizar-dash/tests/workspaces.test.mjs +0 -527
  1046. package/bizar-dash/tests/yaml.test.mjs +0 -128
  1047. package/bizar-dash/tsconfig.json +0 -23
  1048. package/bizar-dash/vite.config.ts +0 -82
  1049. package/bizar-dash/vitest.config.ts +0 -20
  1050. package/cli/__tests__/cost-gate.test.mjs +0 -301
  1051. package/cli/__tests__/esm-no-require.test.mjs +0 -97
  1052. package/cli/__tests__/feature-list-bridge.test.mjs +0 -371
  1053. package/cli/agent-browser-up.sh +0 -152
  1054. package/cli/agent-browser-update.test.mjs +0 -86
  1055. package/cli/artifact-cli.mjs +0 -605
  1056. package/cli/artifact-render.mjs +0 -621
  1057. package/cli/artifact-server.mjs +0 -847
  1058. package/cli/artifact-templates.mjs +0 -523
  1059. package/cli/artifact.mjs +0 -63
  1060. package/cli/artifact.test.mjs +0 -2331
  1061. package/cli/bg.mjs +0 -471
  1062. package/cli/cli-commands-validation.test.mjs +0 -106
  1063. package/cli/commands/artifact.mjs +0 -20
  1064. package/cli/commands/clip.mjs +0 -163
  1065. package/cli/commands/dash.mjs +0 -193
  1066. package/cli/commands/deploy/cloudflare.mjs +0 -250
  1067. package/cli/commands/deploy/docker.mjs +0 -219
  1068. package/cli/commands/deploy/fly.mjs +0 -161
  1069. package/cli/commands/deploy/vercel.mjs +0 -225
  1070. package/cli/commands/deploy.mjs +0 -240
  1071. package/cli/commands/eval.mjs +0 -396
  1072. package/cli/commands/lightrag.mjs +0 -170
  1073. package/cli/commands/marketplace.mjs +0 -64
  1074. package/cli/commands/memory.mjs +0 -25
  1075. package/cli/commands/minimax.mjs +0 -288
  1076. package/cli/commands/mod.mjs +0 -185
  1077. package/cli/commands/ocr.mjs +0 -182
  1078. package/cli/commands/plugin.mjs +0 -358
  1079. package/cli/commands/rca.test.mjs +0 -99
  1080. package/cli/commands/service.mjs +0 -79
  1081. package/cli/commands/setup-provider.test.mjs +0 -311
  1082. package/cli/commands/tailscale.mjs +0 -256
  1083. package/cli/commands/usage.mjs +0 -113
  1084. package/cli/commands/voice.mjs +0 -211
  1085. package/cli/commands/workspace.mjs +0 -247
  1086. package/cli/copy.mjs +0 -540
  1087. package/cli/dev-link.mjs +0 -191
  1088. package/cli/dev-link.test.mjs +0 -310
  1089. package/cli/digest.mjs +0 -149
  1090. package/cli/install/banner.test.mjs +0 -39
  1091. package/cli/install/index.test.mjs +0 -61
  1092. package/cli/install/paths.test.mjs +0 -77
  1093. package/cli/install/plugin.mjs +0 -161
  1094. package/cli/install/postinstall.mjs +0 -137
  1095. package/cli/install/postinstall.test.mjs +0 -98
  1096. package/cli/install.test.mjs +0 -272
  1097. package/cli/memory-constants.mjs +0 -76
  1098. package/cli/memory.mjs +0 -1850
  1099. package/cli/migrate.test.mjs +0 -85
  1100. package/cli/plow-through.test.mjs +0 -56
  1101. package/cli/plugin-runtime-deps.mjs +0 -250
  1102. package/cli/plugin-runtime-deps.test.mjs +0 -378
  1103. package/cli/post-install-smoke.mjs +0 -256
  1104. package/cli/post-install-smoke.test.mjs +0 -72
  1105. package/cli/prompts.mjs +0 -168
  1106. package/cli/providers-detect.mjs +0 -233
  1107. package/cli/provision.test.mjs +0 -324
  1108. package/cli/service-controller.mjs +0 -735
  1109. package/cli/service-controller.test.mjs +0 -191
  1110. package/cli/service-env.mjs +0 -130
  1111. package/cli/service.mjs +0 -492
  1112. package/cli/tests/minimax-cli.test.mjs +0 -79
  1113. package/cli/worker-dispatcher.test.mjs +0 -204
  1114. package/config/skills/glyph/SKILL.md +0 -163
  1115. package/config/skills/lightrag/SKILL.md +0 -81
  1116. package/config/skills/memory-protocol/SKILL.md +0 -105
  1117. package/config/skills/obsidian/SKILL.md +0 -306
  1118. package/packages/sdk/${HOME}/.bizar_home/memory/projects/sdk/sessions/2026-07-16-e16c2f59.md +0 -14
  1119. package/packages/sdk/.bizar/learning/instincts.jsonl +0 -5
  1120. package/packages/sdk/LICENSE +0 -21
  1121. package/packages/sdk/dist/memory/index.d.ts +0 -43
  1122. package/packages/sdk/dist/memory/index.js +0 -159
  1123. package/packages/sdk/dist/router/memory-distillation.d.ts +0 -58
  1124. package/packages/sdk/dist/router/memory-distillation.js +0 -195
  1125. package/packages/sdk/vitest.config.ts +0 -9
  1126. package/plugins/bizar/LICENSE +0 -21
  1127. package/plugins/bizar/dist/index.d.ts +0 -25
  1128. package/plugins/bizar/dist/index.js +0 -32
  1129. package/plugins/bizar/package.json +0 -18
  1130. package/scripts/audit.mjs +0 -388
  1131. package/scripts/audit.test.mjs +0 -149
  1132. package/scripts/bh-full-e2e.mjs +0 -300
  1133. package/scripts/check-agents.mjs +0 -76
  1134. package/scripts/check-arch.sh +0 -80
  1135. package/scripts/check-deps.mjs +0 -468
  1136. package/scripts/clean-state-check.sh +0 -81
  1137. package/scripts/eval-gate.mjs +0 -134
  1138. package/scripts/eval-gate.test.mjs +0 -138
  1139. package/scripts/feature-state-machine.mjs +0 -178
  1140. package/scripts/feature-state-machine.test.mjs +0 -135
  1141. package/scripts/git-hooks/__tests__/commit-msg.test.mjs +0 -61
  1142. package/scripts/install-curl.sh +0 -17
  1143. package/scripts/install-service.mjs +0 -190
  1144. package/scripts/loop-log.txt +0 -29
  1145. package/scripts/loop-tasks.md +0 -79
  1146. package/scripts/mirror-claude-md.sh +0 -78
  1147. package/scripts/overnight-loop.mjs +0 -60
  1148. package/scripts/run-dev.mjs +0 -84
  1149. package/scripts/session-trace.sh +0 -52
  1150. package/scripts/spec-dedup.test.mjs +0 -124
  1151. package/scripts/sprint.mjs +0 -213
  1152. package/scripts/sync-skills-mirror.mjs +0 -113
  1153. package/scripts/test-in-container.sh +0 -157
  1154. package/scripts/verify-feature.sh +0 -102
  1155. package/scripts/verify-thinking-skills.mjs +0 -135
  1156. package/scripts/worktree-setup.sh +0 -79
  1157. package/templates/clean-state-checklist.md +0 -55
  1158. package/templates/deploy/cloudflare/README.md +0 -32
  1159. package/templates/deploy/cloudflare/functions-index.template.js +0 -15
  1160. package/templates/deploy/cloudflare/wrangler.toml.template +0 -9
  1161. package/templates/deploy/docker/.env.template +0 -16
  1162. package/templates/deploy/docker/README.md +0 -58
  1163. package/templates/deploy/docker/docker-compose.template.yml +0 -23
  1164. package/templates/deploy/fly/README.md +0 -35
  1165. package/templates/deploy/fly/fly.toml.template +0 -28
  1166. package/templates/deploy/vercel/README.md +0 -29
  1167. package/templates/deploy/vercel/api-index.template.js +0 -18
  1168. package/templates/deploy/vercel/vercel.json.template +0 -16
  1169. package/templates/eval-fixtures/README.md +0 -58
  1170. package/templates/eval-fixtures/citation.json +0 -16
  1171. package/templates/eval-fixtures/code-review.json +0 -16
  1172. package/templates/eval-fixtures/code-search-basic.json +0 -28
  1173. package/templates/eval-fixtures/concise-output.json +0 -16
  1174. package/templates/eval-fixtures/context-window.json +0 -16
  1175. package/templates/eval-fixtures/error-recovery.json +0 -16
  1176. package/templates/eval-fixtures/json-output.json +0 -20
  1177. package/templates/eval-fixtures/latency-bounds.json +0 -16
  1178. package/templates/eval-fixtures/multi-language.json +0 -16
  1179. package/templates/eval-fixtures/regression-suite.json +0 -79
  1180. package/templates/eval-fixtures/response-format.json +0 -30
  1181. package/templates/eval-fixtures/safe-paths.json +0 -16
  1182. package/templates/eval-fixtures/tool-call-correctness.json +0 -24
  1183. package/templates/eval-fixtures/tool-call-multi-step.json +0 -18
  1184. package/templates/eval-fixtures/unicode-handling.json +0 -16
  1185. package/templates/evaluator-rubric.md +0 -50
  1186. package/templates/plan/htmx.min.js +0 -1
  1187. package/templates/plan/library/bug-investigation.mdx +0 -79
  1188. package/templates/plan/library/decision-record.mdx +0 -71
  1189. package/templates/plan/library/feature-design.mdx +0 -92
  1190. package/templates/plan/meta.json.template +0 -8
  1191. package/templates/plan/plan.mdx.template +0 -46
  1192. package/templates/plugin-template/README.md +0 -121
  1193. package/templates/plugin-template/index.js +0 -66
  1194. package/templates/plugin-template/plugin.json +0 -42
  1195. package/templates/plugin-template/tests/plugin.test.js +0 -83
  1196. package/templates/schedules/daily-backup.json +0 -12
  1197. package/templates/schedules/daily-cleanup.json +0 -12
  1198. package/templates/schedules/hourly-health-check.json +0 -12
  1199. package/templates/schedules/webhook-on-push.json +0 -13
  1200. package/templates/schedules/weekly-digest.json +0 -13
  1201. package/templates/sprint-contract.md +0 -47
  1202. /package/{.claude → config}/skills/de-sloppify/SKILL.md +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentActivity-DBWDByjk.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/chevron-left.js","../../../node_modules/lucide-react/dist/esm/icons/ellipsis.js","../../../node_modules/lucide-react/dist/esm/icons/paperclip.js","../../../node_modules/lucide-react/dist/esm/icons/repeat.js","../../../node_modules/lucide-react/dist/esm/icons/user.js","../../src/web/v8/ui/kanban/KanbanBoard.tsx","../../src/web/v8/ui/kanban/KanbanColumn.tsx","../../src/web/v8/ui/kanban/KanbanProgress.tsx","../../src/web/v8/ui/kanban/KanbanCardBadges.tsx","../../src/web/v8/ui/kanban/KanbanCard.tsx","../../src/web/v8/ui/primitives/Center.tsx","../../src/web/v8/ui/controls/IconButton.tsx","../../../node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../src/web/v8/ui/controls/Checkbox.tsx","../../../node_modules/@radix-ui/react-toggle/dist/index.mjs","../../src/web/v8/ui/controls/Toggle.tsx","../../../node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs","../../../node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../../node_modules/@radix-ui/react-toggle-group/dist/index.mjs","../../src/web/v8/ui/controls/ToggleGroup.tsx","../../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../src/web/v8/ui/controls/RadioGroup.tsx","../../src/web/v8/ui/controls/Field.tsx","../../src/web/v8/ui/controls/Form.tsx","../../../node_modules/@radix-ui/react-tooltip/dist/index.mjs","../../src/web/v8/ui/feedback/Tooltip.tsx","../../../node_modules/sonner/dist/index.mjs","../../../node_modules/@radix-ui/react-menu/dist/index.mjs","../../../node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../../src/web/v8/ui/feedback/DropdownMenu.tsx","../../../node_modules/@radix-ui/react-context-menu/dist/index.mjs","../../src/web/v8/ui/feedback/ContextMenu.tsx","../../src/web/v8/ui/data/BarList.tsx","../../src/web/v8/ui/data/Timeline.tsx","../../../node_modules/@radix-ui/react-collapsible/dist/index.mjs","../../../node_modules/@radix-ui/react-accordion/dist/index.mjs","../../src/web/v8/ui/data/Accordion.tsx","../../src/web/v8/ui/data/Table.tsx","../../../node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/web/v8/ui/navigation/Tabs.tsx","../../src/web/v8/ui/navigation/NavLink.tsx","../../src/web/v8/ui/navigation/Pagination.tsx","../../src/web/v8/ui/agents/AgentActivity.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronLeft = createLucideIcon(\"ChevronLeft\", [\n [\"path\", { d: \"m15 18-6-6 6-6\", key: \"1wnfg3\" }]\n]);\n\nexport { ChevronLeft as default };\n//# sourceMappingURL=chevron-left.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Ellipsis = createLucideIcon(\"Ellipsis\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }],\n [\"circle\", { cx: \"19\", cy: \"12\", r: \"1\", key: \"1wjl8i\" }],\n [\"circle\", { cx: \"5\", cy: \"12\", r: \"1\", key: \"1pcz8c\" }]\n]);\n\nexport { Ellipsis as default };\n//# sourceMappingURL=ellipsis.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Paperclip = createLucideIcon(\"Paperclip\", [\n [\n \"path\",\n {\n d: \"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48\",\n key: \"1u3ebp\"\n }\n ]\n]);\n\nexport { Paperclip as default };\n//# sourceMappingURL=paperclip.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Repeat = createLucideIcon(\"Repeat\", [\n [\"path\", { d: \"m17 2 4 4-4 4\", key: \"nntrym\" }],\n [\"path\", { d: \"M3 11v-1a4 4 0 0 1 4-4h14\", key: \"84bu3i\" }],\n [\"path\", { d: \"m7 22-4-4 4-4\", key: \"1wqhfi\" }],\n [\"path\", { d: \"M21 13v1a4 4 0 0 1-4 4H3\", key: \"1rx37r\" }]\n]);\n\nexport { Repeat as default };\n//# sourceMappingURL=repeat.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst User = createLucideIcon(\"User\", [\n [\"path\", { d: \"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\", key: \"975kel\" }],\n [\"circle\", { cx: \"12\", cy: \"7\", r: \"4\", key: \"17ys0d\" }]\n]);\n\nexport { User as default };\n//# sourceMappingURL=user.js.map\n","import { createContext, useContext, useState, type ReactNode } from 'react';\nimport {\n DndContext,\n closestCorners,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n type DragEndEvent,\n} from '@dnd-kit/core';\nimport { sortableKeyboardCoordinates } from '@dnd-kit/sortable';\nimport { cx } from '../utils/cx.js';\n\n/**\n * KanbanBoard — horizontal-scrolling board hosting multiple columns.\n *\n * The board owns drag state. It receives:\n * - columns: definition + droppable ids\n * - onCardMove: invoked when a card moves between columns (or reorders within)\n *\n * For most cases, prefer using the higher-level `KanbanBoardSimple` wrapper\n * which handles the dnd-kit boilerplate for you.\n */\n\nexport interface KanbanBoardProps {\n columns: readonly { id: string }[];\n onCardMove?: (cardId: string, fromColumnId: string, toColumnId: string) => void;\n children: ReactNode;\n className?: string;\n /** Set of selected card ids; passed down via context. */\n selection?: ReadonlySet<string>;\n /** Called when the user toggles the selection checkbox on a card. */\n onSelectionChange?: (id: string, next: boolean) => void;\n /** When true, all cards render their selection checkbox always-on. */\n selectionMode?: boolean;\n}\n\n/**\n * Context exposed to children of <KanbanBoard> so cards know about the\n * selection state without prop-drilling through every column.\n */\nexport interface KanbanBoardContextValue {\n selection: ReadonlySet<string>;\n selectionMode: boolean;\n onSelectionChange?: (id: string, next: boolean) => void;\n}\n\nexport const KanbanBoardContext = createContext<KanbanBoardContextValue>({\n selection: new Set(),\n selectionMode: false,\n});\n\n/** Hook for descendants to read the board's selection state. */\nexport function useKanbanBoard(): KanbanBoardContextValue {\n return useContext(KanbanBoardContext);\n}\n\nexport function KanbanBoard(props: KanbanBoardProps): JSX.Element {\n const { columns, onCardMove, children, className, selection, onSelectionChange, selectionMode } = props;\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 4 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }),\n );\n const [, setActiveId] = useState<string | null>(null);\n\n const handleDragEnd = (event: DragEndEvent) => {\n setActiveId(null);\n const { active, over } = event;\n if (over === null) return;\n const cardId = String(active.id);\n const targetId = String(over.id);\n // The \"over\" can be a column id (drop on empty) or another card id.\n const toColumn = columns.find((c) => c.id === targetId)?.id ?? cardId.split('::')[0];\n if (toColumn === undefined) return;\n const fromColumn = cardId.split('::')[0] ?? '';\n if (fromColumn !== toColumn && onCardMove !== undefined) {\n onCardMove(cardId, fromColumn, toColumn);\n }\n };\n\n return (\n <KanbanBoardContext.Provider\n value={{\n selection: selection ?? new Set(),\n selectionMode: selectionMode === true,\n onSelectionChange,\n }}\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCorners}\n onDragStart={(e) => setActiveId(String(e.active.id))}\n onDragEnd={handleDragEnd}\n >\n <div\n className={cx('v8-kanban-board', className)}\n style={{\n display: 'grid',\n gridAutoFlow: 'column',\n gridAutoColumns: 'minmax(320px, 1fr)',\n gap: 'var(--space-4)',\n padding: 'var(--space-4) var(--space-5)',\n overflowX: 'auto',\n overflowY: 'hidden',\n height: '100%',\n width: '100%',\n alignItems: 'stretch',\n }}\n role=\"region\"\n aria-label=\"Kanban board\"\n >\n {children}\n </div>\n </DndContext>\n </KanbanBoardContext.Provider>\n );\n}","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useDroppable } from '@dnd-kit/core';\nimport { Plus, MoreHorizontal } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * KanbanColumn — a single status column on the kanban board.\n *\n * Built per DESIGN.md §6: title row with count + actions, scrollable\n * card list, \"+ Add\" quick-add affordance at the bottom.\n */\n\nexport interface KanbanColumnData {\n id: string;\n title: ReactNode;\n /** Optional small description below the title. */\n description?: ReactNode;\n /** Number of cards in the column; auto-counted if not provided. */\n count?: number;\n /** WIP limit. When set, the column header shows the limit and warns when exceeded. */\n wipLimit?: number;\n /** Tone for the column header accent bar. */\n accentTone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger' | 'accent';\n}\n\nexport interface KanbanColumnProps extends HTMLAttributes<HTMLElement> {\n column: KanbanColumnData;\n /** Cards rendered inside the column body. */\n children?: ReactNode;\n /** Click handler for the \"+\" add button. */\n onAdd?: () => void;\n /** Click handler for the \"⋯\" overflow button. */\n onOverflow?: () => void;\n /** WIP limit warning state. */\n exceedsWip?: boolean;\n}\n\nconst ACCENT_FG: Record<NonNullable<KanbanColumnData['accentTone']>, string> = {\n neutral: 'var(--fg-subtle)',\n info: 'var(--info)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n danger: 'var(--danger)',\n accent: 'var(--accent)',\n};\n\nexport const KanbanColumn = forwardRef<HTMLElement, KanbanColumnProps>(function KanbanColumn(\n props,\n ref,\n) {\n const { column, children, onAdd, onOverflow, exceedsWip, className, style, ...rest } = props;\n const { setNodeRef, isOver } = useDroppable({ id: column.id });\n return (\n <section\n ref={ref}\n className={cx('v8-kanban-column', isOver && 'is-over', className)}\n style={{\n display: 'flex',\n flexDirection: 'column',\n width: 280,\n flexShrink: 0,\n background: 'var(--surface-0)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius-lg)',\n height: '100%',\n ...style,\n }}\n aria-label={typeof column.title === 'string' ? column.title : undefined}\n {...rest}\n >\n <header\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n padding: 'var(--space-3) var(--space-3)',\n borderBottom: '1px solid var(--border)',\n }}\n >\n <span\n aria-hidden=\"true\"\n style={{\n width: 8,\n height: 8,\n borderRadius: 'var(--radius-pill)',\n background: ACCENT_FG[column.accentTone ?? 'neutral'],\n flexShrink: 0,\n }}\n />\n <div style={{ flex: 1, minWidth: 0 }}>\n <div\n style={{\n fontSize: 'var(--fs-13)',\n fontWeight: 600,\n color: 'var(--fg)',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }}\n >\n {column.title}\n </div>\n {(column.count !== undefined || column.wipLimit !== undefined) && (\n <div\n style={{\n fontSize: 'var(--fs-12)',\n color:\n exceedsWip === true\n ? 'var(--danger)'\n : 'var(--fg-subtle)',\n fontVariantNumeric: 'tabular-nums',\n }}\n >\n {column.count ?? 0}\n {column.wipLimit !== undefined && ` / ${column.wipLimit}`}\n </div>\n )}\n </div>\n {onOverflow !== undefined && (\n <button\n type=\"button\"\n onClick={onOverflow}\n aria-label=\"Column options\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 24,\n height: 24,\n background: 'transparent',\n border: 0,\n borderRadius: 'var(--radius-sm)',\n color: 'var(--fg-muted)',\n cursor: 'pointer',\n }}\n >\n <MoreHorizontal size={14} aria-hidden=\"true\" />\n </button>\n )}\n {onAdd !== undefined && (\n <button\n type=\"button\"\n onClick={onAdd}\n aria-label=\"Add card\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 24,\n height: 24,\n background: 'transparent',\n border: 0,\n borderRadius: 'var(--radius-sm)',\n color: 'var(--fg-muted)',\n cursor: 'pointer',\n }}\n >\n <Plus size={14} aria-hidden=\"true\" />\n </button>\n )}\n </header>\n <div\n ref={setNodeRef}\n className=\"v8-kanban-column__body\"\n style={{\n flex: 1,\n minHeight: 0,\n padding: 'var(--space-2)',\n display: 'flex',\n flexDirection: 'column',\n gap: 'var(--space-2)',\n overflowY: 'auto',\n background: isOver ? 'color-mix(in oklch, var(--accent) 6%, transparent)' : 'transparent',\n transition: 'background var(--motion-fast) var(--ease-out)',\n }}\n >\n {children}\n </div>\n </section>\n );\n});","import type { ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * KanbanProgress — compact progress bar for a card or detail panel.\n *\n * Two layouts:\n * - inline (default): thin 4px bar, optional label on the right.\n * - block: full-width bar with the percentage label inside.\n *\n * Always clamps `value` to 0-100. Renders nothing for falsy/empty\n * progress so a missing `metadata.progress` doesn't show an empty bar.\n */\n\nexport interface KanbanProgressProps {\n /** 0..100. Anything outside the range is clamped. */\n value: number;\n /** Optional label rendered next to the bar (e.g. \"42%\" or \"Writing tests\"). */\n label?: ReactNode;\n /** Optional caption rendered above the bar in `block` layout. */\n caption?: ReactNode;\n /** Tone for the filled portion. Defaults to `accent`. */\n tone?: 'accent' | 'info' | 'success' | 'warning' | 'danger';\n layout?: 'inline' | 'block';\n className?: string;\n}\n\nconst TONE_BG: Record<NonNullable<KanbanProgressProps['tone']>, string> = {\n accent: 'var(--accent)',\n info: 'var(--info)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n danger: 'var(--danger)',\n};\n\nexport function KanbanProgress(props: KanbanProgressProps): JSX.Element | null {\n const { value, label, caption, tone = 'accent', layout = 'inline', className } = props;\n if (value === undefined || value === null) return null;\n const clamped = Math.max(0, Math.min(100, value));\n if (clamped === 0 && label === undefined && caption === undefined) return null;\n const filled = TONE_BG[tone];\n\n if (layout === 'block') {\n return (\n <div className={cx('v8-kanban-progress v8-kanban-progress--block', className)}>\n {caption !== undefined && (\n <div\n style={{\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n marginBottom: 4,\n display: 'flex',\n justifyContent: 'space-between',\n gap: 'var(--space-2)',\n }}\n >\n <span>{caption}</span>\n {label !== undefined && <span style={{ fontVariantNumeric: 'tabular-nums' }}>{label}</span>}\n </div>\n )}\n <div\n role=\"progressbar\"\n aria-valuenow={clamped}\n aria-valuemin={0}\n aria-valuemax={100}\n style={{\n position: 'relative',\n height: 6,\n borderRadius: 'var(--radius-pill)',\n background: 'color-mix(in oklch, var(--fg-muted) 12%, transparent)',\n overflow: 'hidden',\n }}\n >\n <div\n style={{\n position: 'absolute',\n inset: 0,\n width: `${clamped}%`,\n background: filled,\n borderRadius: 'var(--radius-pill)',\n transition: 'width var(--motion-base) var(--ease-out)',\n }}\n />\n </div>\n </div>\n );\n }\n\n // inline\n return (\n <div\n className={cx('v8-kanban-progress v8-kanban-progress--inline', className)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n }}\n >\n <div\n role=\"progressbar\"\n aria-valuenow={clamped}\n aria-valuemin={0}\n aria-valuemax={100}\n style={{\n flex: 1,\n minWidth: 0,\n position: 'relative',\n height: 4,\n borderRadius: 'var(--radius-pill)',\n background: 'color-mix(in oklch, var(--fg-muted) 12%, transparent)',\n overflow: 'hidden',\n }}\n >\n <div\n style={{\n position: 'absolute',\n inset: 0,\n width: `${clamped}%`,\n background: filled,\n borderRadius: 'var(--radius-pill)',\n transition: 'width var(--motion-base) var(--ease-out)',\n }}\n />\n </div>\n {label !== undefined && <span style={{ fontVariantNumeric: 'tabular-nums' }}>{label}</span>}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * KanbanCardBadges — chip row rendered under the title on a card.\n *\n * Pure presentational. Consumers pass an array of badges; this\n * component handles overflow (caps at `max` and rolls the rest into\n * a \"+N\" chip).\n */\n\nexport interface KanbanCardBadge {\n /** Visible label. */\n label: ReactNode;\n /** Short hint on hover. */\n title?: string;\n /** Tone forwarded to the inline pill. */\n tone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger' | 'accent';\n /** Optional leading icon (Lucide, 12px). */\n icon?: ReactNode;\n}\n\nexport interface KanbanCardBadgesProps {\n badges: readonly KanbanCardBadge[];\n /** Maximum number of badges to render before collapsing into \"+N\". */\n max?: number;\n className?: string;\n}\n\nconst TONE_FG: Record<NonNullable<KanbanCardBadge['tone']>, string> = {\n neutral: 'var(--fg-muted)',\n info: 'var(--info)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n danger: 'var(--danger)',\n accent: 'var(--accent)',\n};\n\nconst TONE_BG: Record<NonNullable<KanbanCardBadge['tone']>, string> = {\n neutral: 'color-mix(in oklch, var(--fg-muted) 12%, transparent)',\n info: 'color-mix(in oklch, var(--info) 14%, transparent)',\n success: 'color-mix(in oklch, var(--success) 14%, transparent)',\n warning: 'color-mix(in oklch, var(--warning) 14%, transparent)',\n danger: 'color-mix(in oklch, var(--danger) 14%, transparent)',\n accent: 'color-mix(in oklch, var(--accent) 14%, transparent)',\n};\n\nexport function KanbanCardBadges({ badges, max = 4, className }: KanbanCardBadgesProps): JSX.Element | null {\n if (badges.length === 0) return null;\n const visible = badges.slice(0, max);\n const overflow = badges.length - visible.length;\n return (\n <div\n className={cx('v8-kanban-card-badges', className)}\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: 4,\n marginTop: 'var(--space-2)',\n }}\n >\n {visible.map((b, i) => {\n const tone = b.tone ?? 'neutral';\n return (\n <span\n key={i}\n title={b.title}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 4,\n height: 18,\n padding: '0 6px',\n borderRadius: 'var(--radius-pill)',\n background: TONE_BG[tone],\n color: TONE_FG[tone],\n fontSize: 'var(--fs-12)',\n fontWeight: 500,\n lineHeight: 1,\n whiteSpace: 'nowrap',\n maxWidth: 140,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }}\n >\n {b.icon !== undefined && <span style={{ display: 'inline-flex' }}>{b.icon}</span>}\n <span style={{ overflow: 'hidden', textOverflow: 'ellipsis' }}>{b.label}</span>\n </span>\n );\n })}\n {overflow > 0 && (\n <span\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n height: 18,\n padding: '0 6px',\n borderRadius: 'var(--radius-pill)',\n background: 'color-mix(in oklch, var(--fg-muted) 12%, transparent)',\n color: 'var(--fg-muted)',\n fontSize: 'var(--fs-12)',\n fontWeight: 500,\n lineHeight: 1,\n }}\n >\n +{overflow}\n </span>\n )}\n </div>\n );\n}\n","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Check } from 'lucide-react';\nimport { Calendar, MessageSquare, Paperclip, GitBranch, Repeat, User as UserIcon } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\nimport { KanbanProgress } from './KanbanProgress.js';\nimport { KanbanCardBadges, type KanbanCardBadge } from './KanbanCardBadges.js';\n\n/**\n * KanbanCard — the primary surface of the v8 dashboard.\n *\n * Built per DESIGN.md §6: compact metadata, never decorative, drag-handle\n * is the whole card, every card has a right-click context menu.\n *\n * Variants:\n * - default: full metadata row (date, comments, attachments, branch)\n * - compact: title + 1 priority dot only (for crowded boards)\n * - detailed: title + description preview + metadata\n */\n\nexport type KanbanCardVariant = 'default' | 'compact' | 'detailed';\n\nexport type KanbanPriority = 'low' | 'medium' | 'high' | 'urgent';\n\nexport interface KanbanCardData {\n id: string;\n title: string;\n description?: string;\n priority?: KanbanPriority;\n /** Due date as ISO string or relative phrase (\"Today\", \"Tomorrow\"). */\n due?: string;\n /** Number of comments; renders icon + count. */\n comments?: number;\n /** Number of attachments. */\n attachments?: number;\n /** Branch name to show in the meta row. */\n branch?: string;\n /** Assignee name (single). Rendered as a chip when set. */\n assignee?: string;\n /** IDs of assigned agents/users; rendered as AvatarStack. */\n assignees?: readonly string[];\n /** Tone of the leading priority stripe. */\n accentTone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger' | 'accent';\n /** Custom badge / chip to render after the title. */\n badges?: ReactNode;\n /** Live progress 0..100. */\n progress?: number;\n /** Current step description (rendered under the progress bar). */\n currentStep?: string;\n /** Optional badges array. */\n cardBadges?: readonly KanbanCardBadge[];\n /** Tags (rendered as small chips when no badges are provided). */\n tags?: readonly string[];\n /** Recurring task indicator. */\n recurring?: boolean;\n /** Number of subtasks. */\n subtaskCount?: number;\n /** Number of dependencies. */\n dependencyCount?: number;\n}\n\nexport interface KanbanCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'id'> {\n card: KanbanCardData;\n variant?: KanbanCardVariant;\n /** When true, the card is being dragged (visual lift + shadow). */\n isDragging?: boolean;\n /** Drag handlers from useSortable (omit to make the card non-draggable). */\n dragHandleProps?: Record<string, unknown>;\n /** When true, the card is checked in the multi-select toolbar. */\n selected?: boolean;\n /** Indeterminate state (selection box between checked/unchecked). */\n indeterminate?: boolean;\n /** Called when the selection checkbox toggles. Omit to hide the checkbox. */\n onSelectionChange?: (id: string, next: boolean) => void;\n /** When true, render the selection checkbox even without hover. */\n showSelection?: boolean;\n}\n\nconst PRIORITY_FG: Record<KanbanPriority, string> = {\n low: 'var(--fg-subtle)',\n medium: 'var(--info)',\n high: 'var(--warning)',\n urgent: 'var(--danger)',\n};\n\nconst PRIORITY_LABEL: Record<KanbanPriority, string> = {\n low: 'Low',\n medium: 'Medium',\n high: 'High',\n urgent: 'Urgent',\n};\n\nconst ACCENT_FG: Record<NonNullable<KanbanCardData['accentTone']>, string> = {\n neutral: 'var(--fg-subtle)',\n info: 'var(--info)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n danger: 'var(--danger)',\n accent: 'var(--accent)',\n};\n\nexport const KanbanCard = forwardRef<HTMLDivElement, KanbanCardProps>(function KanbanCard(\n props,\n ref,\n) {\n const {\n card,\n variant = 'default',\n isDragging,\n dragHandleProps,\n selected,\n indeterminate,\n onSelectionChange,\n showSelection,\n className,\n style,\n ...rest\n } = props;\n\n const showCheckbox = onSelectionChange !== undefined;\n\n // Resolve which badges to render. Prefer caller-provided badges, else\n // derive from the convenience props on `card`.\n const derivedBadges: KanbanCardBadge[] = [];\n if (card.cardBadges === undefined) {\n if (card.recurring === true) {\n derivedBadges.push({ label: 'Recurring', tone: 'info', icon: <Repeat size={10} aria-hidden=\"true\" /> });\n }\n if (card.assignee) {\n derivedBadges.push({\n label: card.assignee,\n tone: 'accent',\n icon: <UserIcon size={10} aria-hidden=\"true\" />,\n });\n }\n if (card.subtaskCount !== undefined && card.subtaskCount > 0) {\n derivedBadges.push({ label: `${card.subtaskCount} subtasks`, tone: 'neutral' });\n }\n if (card.dependencyCount !== undefined && card.dependencyCount > 0) {\n derivedBadges.push({ label: `${card.dependencyCount} deps`, tone: 'warning' });\n }\n if (card.tags) {\n for (const t of card.tags.slice(0, 3)) {\n derivedBadges.push({ label: t, tone: 'neutral' });\n }\n }\n }\n const badges = card.cardBadges ?? derivedBadges;\n\n return (\n <div\n ref={ref}\n data-kanban-card-id={card.id}\n data-selected={selected === true ? 'true' : undefined}\n className={cx(\n 'v8-kanban-card',\n `v8-kanban-card--${variant}`,\n isDragging && 'is-dragging',\n selected === true && 'is-selected',\n className,\n )}\n style={{\n position: 'relative',\n background: selected === true ? 'var(--surface-2)' : 'var(--surface-1)',\n border: `1px solid ${selected === true ? 'var(--accent)' : 'var(--border)'}`,\n borderRadius: 'var(--radius)',\n padding: 'var(--space-3)',\n boxShadow: isDragging === true ? 'var(--shadow-3)' : 'none',\n transform: isDragging === true ? 'rotate(1.5deg)' : undefined,\n transition:\n 'box-shadow var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out)',\n ...style,\n }}\n {...(dragHandleProps as Record<string, unknown>)}\n {...rest}\n >\n {showCheckbox && (\n <button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={indeterminate === true ? 'mixed' : selected === true}\n aria-label={selected === true ? 'Deselect card' : 'Select card'}\n onClick={(e) => {\n // Stop the click from initiating a drag or bubbling up.\n e.stopPropagation();\n onSelectionChange?.(card.id, !(selected === true));\n }}\n onPointerDown={(e) => e.stopPropagation()}\n style={{\n position: 'absolute',\n top: 6,\n left: 6,\n width: 16,\n height: 16,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'var(--radius-sm)',\n border: `1px solid ${selected === true ? 'var(--accent)' : 'var(--border-strong)'}`,\n background: selected === true ? 'var(--accent)' : 'var(--surface-0)',\n color: 'var(--fg-on-accent)',\n cursor: 'pointer',\n opacity: showSelection === true || selected === true ? 1 : 0,\n zIndex: 2,\n }}\n className=\"v8-kanban-card__checkbox\"\n >\n {selected === true && <Check size={10} aria-hidden=\"true\" />}\n {indeterminate === true && (\n <span\n aria-hidden=\"true\"\n style={{\n width: 8,\n height: 2,\n background: 'var(--fg-on-accent)',\n borderRadius: 1,\n }}\n />\n )}\n </button>\n )}\n {/* Leading accent stripe — colored by priority or accentTone. */}\n {variant !== 'compact' && (\n <span\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n left: 0,\n top: 6,\n bottom: 6,\n width: 3,\n borderRadius: '0 var(--radius-pill) var(--radius-pill) 0',\n background:\n card.priority !== undefined\n ? PRIORITY_FG[card.priority]\n : ACCENT_FG[card.accentTone ?? 'neutral'],\n }}\n />\n )}\n <div\n style={{\n paddingLeft:\n showCheckbox\n ? `calc(${variant !== 'compact' ? 'var(--space-2)' : '0'} + 18px)`\n : variant !== 'compact'\n ? 'var(--space-2)'\n : 0,\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'flex-start',\n gap: 'var(--space-2)',\n marginBottom: variant === 'detailed' ? 'var(--space-2)' : 0,\n }}\n >\n <div style={{ flex: 1, minWidth: 0 }}>\n <div\n style={{\n fontSize: 'var(--fs-13)',\n fontWeight: 500,\n color: 'var(--fg)',\n lineHeight: 'var(--lh-snug)',\n }}\n >\n {card.title}\n </div>\n {variant === 'detailed' && card.description !== undefined && (\n <div\n style={{\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n marginTop: 'var(--space-1)',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n }}\n >\n {card.description}\n </div>\n )}\n </div>\n {card.priority !== undefined && (\n <span\n aria-label={`Priority: ${PRIORITY_LABEL[card.priority]}`}\n style={{\n width: 8,\n height: 8,\n borderRadius: 'var(--radius-pill)',\n background: PRIORITY_FG[card.priority],\n flexShrink: 0,\n marginTop: 6,\n }}\n />\n )}\n </div>\n {card.badges !== undefined && (\n <div style={{ display: 'flex', gap: 4, flexWrap: 'wrap', marginTop: 'var(--space-2)' }}>\n {card.badges}\n </div>\n )}\n {badges.length > 0 && (\n <KanbanCardBadges badges={badges} />\n )}\n {card.progress !== undefined && (\n <div style={{ marginTop: 'var(--space-2)' }}>\n <KanbanProgress\n value={card.progress}\n label={`${Math.round(card.progress)}%`}\n caption={card.currentStep}\n tone={card.progress >= 100 ? 'success' : 'accent'}\n layout={card.currentStep ? 'block' : 'inline'}\n />\n </div>\n )}\n {variant !== 'compact' &&\n (card.due !== undefined ||\n card.comments !== undefined ||\n card.attachments !== undefined ||\n card.branch !== undefined) && (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-3)',\n marginTop: 'var(--space-2)',\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n fontVariantNumeric: 'tabular-nums',\n }}\n >\n {card.due !== undefined && (\n <span style={{ display: 'inline-flex', alignItems: 'center', gap: 4 }}>\n <Calendar size={12} aria-hidden=\"true\" />\n {card.due}\n </span>\n )}\n {card.comments !== undefined && card.comments > 0 && (\n <span style={{ display: 'inline-flex', alignItems: 'center', gap: 4 }}>\n <MessageSquare size={12} aria-hidden=\"true\" />\n {card.comments}\n </span>\n )}\n {card.attachments !== undefined && card.attachments > 0 && (\n <span style={{ display: 'inline-flex', alignItems: 'center', gap: 4 }}>\n <Paperclip size={12} aria-hidden=\"true\" />\n {card.attachments}\n </span>\n )}\n {card.branch !== undefined && (\n <span\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 4,\n fontFamily: 'var(--font-mono)',\n }}\n title={card.branch}\n >\n <GitBranch size={12} aria-hidden=\"true\" />\n {card.branch}\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n );\n});\n\n/**\n * useKanbanCardSortable — convenience hook wrapping @dnd-kit/sortable's\n * useSortable for a card. Returns props to spread onto <KanbanCard>.\n */\nexport function useKanbanCardSortable(id: string) {\n const sortable = useSortable({ id });\n const style = {\n transform: CSS.Transform.toString(sortable.transform),\n transition: sortable.transition,\n };\n return {\n attributes: sortable.attributes,\n listeners: sortable.listeners,\n setNodeRef: sortable.setNodeRef,\n isDragging: sortable.isDragging,\n style,\n };\n}\n","import { forwardRef, type CSSProperties, type ElementType, type HTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Center — centers its children both horizontally and vertically.\n *\n * Use for splash screens, loading states, modal bodies when there is a\n * single child to center. For full-viewport centering, set `full`.\n */\nexport interface CenterProps extends HTMLAttributes<HTMLElement> {\n as?: ElementType;\n /** When true, fills its parent and centers a child inside it. */\n full?: boolean;\n /** Center along main axis only (justifyContent). */\n inline?: boolean;\n /** Disable vertical centering (e.g. only horizontal). */\n noVertical?: boolean;\n children?: ReactNode;\n className?: string;\n style?: CSSProperties;\n}\n\nexport const Center = forwardRef<HTMLElement, CenterProps>(function Center(props, ref) {\n const { as, full, inline, noVertical, children, className, style, ...rest } = props;\n\n const Tag = (as ?? 'div') as ElementType;\n const computedStyle: CSSProperties = {\n display: inline ? 'inline-flex' : 'flex',\n alignItems: noVertical ? 'stretch' : 'center',\n justifyContent: 'center',\n ...(full && { width: '100%', height: '100%' }),\n ...style,\n };\n\n return (\n <Tag ref={ref} className={cx('v8-center', className)} style={computedStyle} {...rest}>\n {children}\n </Tag>\n );\n});","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cx } from '../utils/cx.js';\n\n/**\n * IconButton — square button for icon-only actions.\n *\n * Always pair with an accessible label via `aria-label` or `<VisuallyHidden>`.\n * The `variant` mirrors Button's so they compose visually.\n *\n * Use cases: topbar toolbars, kanban card actions, sidebar collapse, etc.\n */\n\nexport type IconButtonVariant = 'ghost' | 'secondary' | 'primary' | 'danger' | 'outline';\nexport type IconButtonSize = 'sm' | 'md' | 'lg';\n\nexport interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Required for a11y. The button is meaningless without a name. */\n 'aria-label': string;\n variant?: IconButtonVariant;\n size?: IconButtonSize;\n asChild?: boolean;\n active?: boolean;\n children: ReactNode;\n}\n\nconst SIZE: Record<IconButtonSize, number> = { sm: 24, md: 32, lg: 40 };\n\nconst VARIANT_BG: Record<IconButtonVariant, string> = {\n primary: 'var(--accent)',\n secondary: 'var(--surface-1)',\n ghost: 'transparent',\n danger: 'var(--danger)',\n outline: 'transparent',\n};\n\nconst VARIANT_FG: Record<IconButtonVariant, string> = {\n primary: 'var(--fg-on-accent)',\n secondary: 'var(--fg)',\n ghost: 'var(--fg-muted)',\n danger: 'var(--fg-on-accent)',\n outline: 'var(--fg)',\n};\n\nconst VARIANT_BORDER: Record<IconButtonVariant, string> = {\n primary: 'transparent',\n secondary: 'var(--border)',\n ghost: 'transparent',\n danger: 'transparent',\n outline: 'var(--border)',\n};\n\nconst VARIANT_ACTIVE_BG: Record<IconButtonVariant, string> = {\n primary: 'var(--accent-hover)',\n secondary: 'var(--surface-2)',\n ghost: 'var(--surface-1)',\n danger: 'color-mix(in oklch, var(--danger), black 10%)',\n outline: 'var(--surface-2)',\n};\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(function IconButton(\n props,\n ref,\n) {\n const {\n variant = 'ghost',\n size = 'md',\n asChild,\n active,\n disabled,\n children,\n className,\n style,\n type,\n ...rest\n } = props;\n\n const Comp = (asChild ? Slot : 'button') as React.ElementType;\n const dim = SIZE[size];\n\n const computedStyle = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: dim,\n height: dim,\n flexShrink: 0,\n background: active === true ? VARIANT_ACTIVE_BG[variant] : VARIANT_BG[variant],\n color: VARIANT_FG[variant],\n border: '1px solid',\n borderColor: VARIANT_BORDER[variant],\n borderRadius: 'var(--radius-sm)',\n cursor: disabled === true ? 'not-allowed' : 'pointer',\n opacity: disabled === true ? 0.55 : 1,\n transition: 'background var(--motion-fast) var(--ease-out)',\n ...style,\n } as const;\n\n return (\n <Comp\n ref={ref as React.Ref<HTMLElement>}\n type={asChild ? undefined : type ?? 'button'}\n disabled={disabled}\n data-active={active === true ? 'true' : undefined}\n className={cx('v8-icon-btn', `v8-icon-btn--${variant}`, `v8-icon-btn--${size}`, className)}\n style={computedStyle}\n {...rest}\n >\n {children}\n </Comp>\n );\n});","\"use client\";\n\n// src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nfunction CheckboxProvider(props) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n disabled,\n setChecked,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(\n CheckboxProviderImpl,\n {\n scope: __scopeCheckbox,\n ...context,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n );\n}\nvar TRIGGER_NAME = \"CheckboxTrigger\";\nvar CheckboxTrigger = React.forwardRef(\n ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener(\"reset\", reset);\n return () => form.removeEventListener(\"reset\", reset);\n }\n }, [control, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nCheckboxTrigger.displayName = TRIGGER_NAME;\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n return /* @__PURE__ */ jsx(\n CheckboxProvider,\n {\n __scopeCheckbox,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n CheckboxTrigger,\n {\n ...checkboxProps,\n ref: forwardedRef,\n __scopeCheckbox\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n CheckboxBubbleInput,\n {\n __scopeCheckbox\n }\n )\n ] })\n }\n );\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(context.checked) || context.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n )\n }\n );\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"CheckboxBubbleInput\";\nvar CheckboxBubbleInput = React.forwardRef(\n ({ __scopeCheckbox, ...props }, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nexport {\n Checkbox,\n CheckboxIndicator,\n CheckboxIndicator as Indicator,\n Checkbox as Root,\n createCheckboxScope,\n CheckboxBubbleInput as unstable_BubbleInput,\n CheckboxBubbleInput as unstable_CheckboxBubbleInput,\n CheckboxProvider as unstable_CheckboxProvider,\n CheckboxTrigger as unstable_CheckboxTrigger,\n CheckboxProvider as unstable_Provider,\n CheckboxTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport * as RxCheckbox from '@radix-ui/react-checkbox';\nimport { Check, Minus } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Checkbox — controlled or uncontrolled boolean input.\n *\n * Built on Radix Checkbox for keyboard + screen reader correctness.\n * Use inside <Field> for label/hint/error.\n */\n\nexport type CheckboxProps = ComponentPropsWithoutRef<typeof RxCheckbox.Root>;\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(function Checkbox(\n props,\n ref,\n) {\n const { className, disabled, ...rest } = props;\n return (\n <RxCheckbox.Root\n ref={ref}\n disabled={disabled}\n className={cx('v8-checkbox', className)}\n style={{\n width: 16,\n height: 16,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--input-bg)',\n border: '1px solid var(--border-strong)',\n borderRadius: 'var(--radius-sm)',\n cursor: disabled === true ? 'not-allowed' : 'pointer',\n opacity: disabled === true ? 0.55 : 1,\n transition: 'background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out)',\n }}\n {...rest}\n >\n <RxCheckbox.Indicator>\n {rest.checked === 'indeterminate' ? (\n <Minus size={12} aria-hidden=\"true\" style={{ color: 'var(--fg-on-accent)' }} />\n ) : (\n <Check size={12} aria-hidden=\"true\" style={{ color: 'var(--fg-on-accent)' }} />\n )}\n </RxCheckbox.Indicator>\n </RxCheckbox.Root>\n );\n});","\"use client\";\n\n// src/toggle.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Toggle\";\nvar Toggle = React.forwardRef((props, forwardedRef) => {\n const { pressed: pressedProp, defaultPressed, onPressedChange, ...buttonProps } = props;\n const [pressed, setPressed] = useControllableState({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed ?? false,\n caller: NAME\n });\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-pressed\": pressed,\n \"data-state\": pressed ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0,\n ...buttonProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => {\n if (!props.disabled) {\n setPressed(!pressed);\n }\n })\n }\n );\n});\nToggle.displayName = NAME;\nvar Root = Toggle;\nexport {\n Root,\n Toggle\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport * as RxToggle from '@radix-ui/react-toggle';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Toggle — pressed/unpressed button (single, not grouped).\n *\n * Use for: \"favorite\", \"pin\", \"watch\" toolbar buttons.\n * For grouped selections (single or multi) use ToggleGroup.\n */\nexport type ToggleProps = ComponentPropsWithoutRef<typeof RxToggle.Root>;\n\nexport const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(function Toggle(props, ref) {\n const { className, ...rest } = props;\n return (\n <RxToggle.Root\n ref={ref}\n className={cx('v8-toggle', className)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 32,\n padding: '0 var(--space-3)',\n background: 'transparent',\n color: 'var(--fg-muted)',\n border: '1px solid transparent',\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n cursor: 'pointer',\n transition: 'background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out)',\n }}\n {...rest}\n />\n );\n});","// src/use-is-hydrated.tsx\nimport * as React2 from \"react\";\n\n// src/use-is-hydrated-legacy.ts\nimport * as React from \"react\";\nvar _isHydrated = false;\nfunction useIsHydrated() {\n const [isHydrated, setIsHydrated] = React.useState(_isHydrated);\n React.useEffect(() => {\n if (!_isHydrated) {\n _isHydrated = true;\n setIsHydrated(true);\n }\n }, []);\n return isHydrated;\n}\n\n// src/use-is-hydrated.tsx\nvar useReactSyncExternalStore = React2[\" useSyncExternalStore \".trim().toString()];\nfunction subscribe() {\n return () => {\n };\n}\nfunction useIsHydratedModern() {\n return useReactSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nvar useIsHydrated2 = typeof useReactSyncExternalStore === \"function\" ? useIsHydratedModern : useIsHydrated;\nexport {\n useIsHydrated2 as useIsHydrated\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useIsHydrated } from \"@radix-ui/react-use-is-hydrated\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n const isHydrated = useIsHydrated();\n useLayoutEffect(() => {\n if (!isHydrated || !focusable) {\n return;\n }\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }, [isHydrated, focusable, onFocusableItemAdd, onFocusableItemRemove]);\n React.useEffect(() => {\n if (isHydrated || !focusable) {\n return;\n }\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }, [isHydrated, focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/toggle-group.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Toggle } from \"@radix-ui/react-toggle\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar [createToggleGroupContext, createToggleGroupScope] = createContextScope(TOGGLE_GROUP_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar ToggleGroup = React.forwardRef((props, forwardedRef) => {\n const { type, ...toggleGroupProps } = props;\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplSingle, { role: \"radiogroup\", ...singleProps, ref: forwardedRef });\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplMultiple, { role: \"toolbar\", ...multipleProps, ref: forwardedRef });\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupValueProvider, useToggleGroupValueContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImplSingle = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemActivate: setValue,\n onItemDeactivate: React.useCallback(() => setValue(\"\"), [setValue]),\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupSingleProps, ref: forwardedRef })\n }\n );\n});\nvar ToggleGroupImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n const handleButtonActivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleButtonDeactivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate,\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupMultipleProps, ref: forwardedRef })\n }\n );\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupContext, useToggleGroupContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeToggleGroup,\n disabled = false,\n rovingFocus = true,\n orientation,\n dir,\n loop = true,\n ...toggleGroupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = useDirection(dir);\n const commonProps = { dir: direction, ...toggleGroupProps };\n return /* @__PURE__ */ jsx(ToggleGroupContext, { scope: __scopeToggleGroup, rovingFocus, disabled, children: rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef }) });\n }\n);\nvar ITEM_NAME = \"ToggleGroupItem\";\nvar ToggleGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const valueContext = useToggleGroupValueContext(ITEM_NAME, props.__scopeToggleGroup);\n const context = useToggleGroupContext(ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = { ...props, pressed, disabled };\n const ref = React.useRef(null);\n return context.rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: pressed,\n ref,\n children: /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef });\n }\n);\nToggleGroupItem.displayName = ITEM_NAME;\nvar ToggleGroupItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToggleGroup, value, ...itemProps } = props;\n const valueContext = useToggleGroupValueContext(ITEM_NAME, __scopeToggleGroup);\n const singleProps = { role: \"radio\", \"aria-checked\": props.pressed, \"aria-pressed\": void 0 };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return /* @__PURE__ */ jsx(\n Toggle,\n {\n ...typeProps,\n ...itemProps,\n ref: forwardedRef,\n onPressedChange: (pressed) => {\n if (pressed) {\n valueContext.onItemActivate(value);\n } else {\n valueContext.onItemDeactivate(value);\n }\n }\n }\n );\n }\n);\nexport {\n ToggleGroupItem as Item,\n ToggleGroup as Root,\n ToggleGroup,\n ToggleGroupItem,\n createToggleGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport * as RxToggleGroup from '@radix-ui/react-toggle-group';\nimport { cx } from '../utils/cx.js';\n\n/**\n * ToggleGroup — group of toggle buttons with single or multi selection.\n *\n * Use cases:\n * - View switcher (Kanban / List / Calendar)\n * - Filter pills (status: All / Active / Done)\n * - Density toggle (Comfortable / Compact)\n */\nexport type ToggleGroupType = 'single' | 'multiple';\n\nexport interface ToggleGroupProps\n extends Omit<ComponentPropsWithoutRef<typeof RxToggleGroup.Root>, 'type'> {\n type: ToggleGroupType;\n}\n\nexport const ToggleGroup = forwardRef<HTMLDivElement, ToggleGroupProps>(function ToggleGroup(\n props,\n ref,\n) {\n const { type, className, ...rest } = props;\n return (\n <RxToggleGroup.Root\n ref={ref}\n type={type as 'single' | 'multiple'}\n className={cx('v8-toggle-group', className)}\n style={{\n display: 'inline-flex',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius-sm)',\n overflow: 'hidden',\n background: 'var(--surface-1)',\n }}\n {...(rest as Record<string, unknown>)}\n />\n );\n});\n\nexport interface ToggleGroupItemProps extends ComponentPropsWithoutRef<typeof RxToggleGroup.Item> {}\n\nexport const ToggleGroupItem = forwardRef<HTMLButtonElement, ToggleGroupItemItemProps>(\n function ToggleGroupItem(props, ref) {\n const { className, children, ...rest } = props;\n return (\n <RxToggleGroup.Item\n ref={ref}\n className={cx('v8-toggle-group__item', className)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 28,\n padding: '0 var(--space-3)',\n background: 'transparent',\n color: 'var(--fg-muted)',\n border: 0,\n borderRight: '1px solid var(--border)',\n fontSize: 'var(--fs-13)',\n cursor: 'pointer',\n transition: 'background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out)',\n }}\n {...rest}\n >\n {children}\n <style>{`\n .v8-toggle-group__item:last-child { border-right: 0; }\n .v8-toggle-group__item[data-state='on'] {\n background: var(--accent-soft);\n color: var(--accent);\n font-weight: 500;\n }\n `}</style>\n </RxToggleGroup.Item>\n );\n },\n);\n\ninterface ToggleGroupItemItemProps extends ToggleGroupItemProps {}\n\n// Note: the empty interface above is intentional — we want ToggleGroupItemProps\n// to be the public API surface. The duplicate `ToggleGroupItemItemProps` keeps\n// the JSDoc happy without forcing callers to import both names.","\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProviderImpl, useRadioContext] = createRadioContext(RADIO_NAME);\nfunction RadioProvider(props) {\n const {\n __scopeRadio,\n checked = false,\n children,\n disabled,\n form,\n name,\n onCheck,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n disabled,\n required,\n name,\n form,\n value,\n control,\n setControl,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput,\n setBubbleInput,\n onCheck: () => onCheck?.()\n };\n return /* @__PURE__ */ jsx(RadioProviderImpl, { scope: __scopeRadio, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\nvar TRIGGER_NAME = \"RadioTrigger\";\nvar RadioTrigger = React.forwardRef(\n ({ __scopeRadio, onClick, ...radioProps }, forwardedRef) => {\n const {\n checked,\n disabled,\n value,\n setControl,\n onCheck,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useRadioContext(TRIGGER_NAME, __scopeRadio);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n if (!checked) onCheck();\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nRadioTrigger.displayName = TRIGGER_NAME;\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, name, checked, required, disabled, value, onCheck, form, ...radioProps } = props;\n return /* @__PURE__ */ jsx(\n RadioProvider,\n {\n __scopeRadio,\n checked,\n disabled,\n required,\n onCheck,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n RadioTrigger,\n {\n ...radioProps,\n ref: forwardedRef,\n __scopeRadio\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n __scopeRadio\n }\n )\n ] })\n }\n );\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({ __scopeRadio, ...props }, forwardedRef) => {\n const {\n control,\n checked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput,\n hasConsumerStoppedPropagationRef\n } = useRadioContext(BUBBLE_INPUT_NAME, __scopeRadio);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { Fragment as Fragment2, jsx as jsx2, jsxs as jsxs2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n form,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n const [control, setControl] = React2.useState(null);\n const composedRefs = useComposedRefs2(forwardedRef, setControl);\n const initialValueRef = React2.useRef(value);\n React2.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.closest(\"form\");\n if (associatedForm instanceof HTMLFormElement) {\n const reset = () => setValue(initialValueRef.current);\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setValue]);\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n form,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: composedRefs\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar ITEM_PROVIDER_NAME = \"RadioGroupItemProvider\";\nvar ITEM_TRIGGER_NAME = \"RadioGroupItemTrigger\";\nvar ITEM_BUBBLE_INPUT_NAME = \"RadioGroupItemBubbleInput\";\nfunction RadioGroupItemProvider(props) {\n const {\n __scopeRadioGroup,\n value,\n disabled,\n children,\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const context = useRadioGroupContext(ITEM_PROVIDER_NAME, __scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n return /* @__PURE__ */ jsx2(\n RadioProvider,\n {\n ...radioScope,\n checked: context.value === value,\n disabled: isDisabled,\n required: context.required,\n name: context.name,\n form: context.form,\n value,\n onCheck: () => context.onValueChange(value),\n internal_do_not_use_render,\n children\n }\n );\n}\nvar RadioGroupItemTrigger = React2.forwardRef((props, forwardedRef) => {\n const { __scopeRadioGroup, ...triggerProps } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const { checked, disabled } = useRadioContext(ITEM_TRIGGER_NAME, radioScope.__scopeRadio);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n RadioTrigger,\n {\n ...radioScope,\n ...triggerProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers2(triggerProps.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(triggerProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) {\n ref.current?.click();\n }\n })\n }\n )\n }\n );\n});\nRadioGroupItemTrigger.displayName = ITEM_TRIGGER_NAME;\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, value, disabled, ...itemProps } = props;\n return /* @__PURE__ */ jsx2(\n RadioGroupItemProvider,\n {\n __scopeRadioGroup,\n value,\n disabled,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs2(Fragment2, { children: [\n /* @__PURE__ */ jsx2(\n RadioGroupItemTrigger,\n {\n ...itemProps,\n ref: forwardedRef,\n __scopeRadioGroup\n }\n ),\n isFormControl && /* @__PURE__ */ jsx2(\n RadioGroupItemBubbleInput,\n {\n __scopeRadioGroup\n }\n )\n ] })\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar RadioGroupItemBubbleInput = React2.forwardRef((props, forwardedRef) => {\n const { __scopeRadioGroup, ...bubbleProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioBubbleInput, { ...radioScope, ...bubbleProps, ref: forwardedRef });\n});\nRadioGroupItemBubbleInput.displayName = ITEM_BUBBLE_INPUT_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nexport {\n RadioGroupIndicator as Indicator,\n RadioGroupItem as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n RadioGroup as Root,\n createRadioGroupScope,\n RadioGroupItemBubbleInput as unstable_ItemBubbleInput,\n RadioGroupItemProvider as unstable_ItemProvider,\n RadioGroupItemTrigger as unstable_ItemTrigger,\n RadioGroupItemBubbleInput as unstable_RadioGroupItemBubbleInput,\n RadioGroupItemProvider as unstable_RadioGroupItemProvider,\n RadioGroupItemTrigger as unstable_RadioGroupItemTrigger\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport * as RxRadio from '@radix-ui/react-radio-group';\nimport { cx } from '../utils/cx.js';\n\n/**\n * RadioGroup — mutually exclusive single-choice input.\n *\n * Built on Radix RadioGroup for keyboard arrow navigation.\n */\nexport type RadioGroupProps = ComponentPropsWithoutRef<typeof RxRadio.Root>;\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(function RadioGroup(\n props,\n ref,\n) {\n const { className, ...rest } = props;\n return (\n <RxRadio.Root\n ref={ref}\n className={cx('v8-radio-group', className)}\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: 'var(--space-2)',\n }}\n {...rest}\n />\n );\n});\n\nexport interface RadioGroupItemProps extends ComponentPropsWithoutRef<typeof RxRadio.Item> {\n label?: string;\n}\n\nexport const RadioGroupItem = forwardRef<HTMLButtonElement, RadioGroupItemProps>(\n function RadioGroupItem(props, ref) {\n const { className, value, label, ...rest } = props;\n return (\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-2)' }}>\n <RxRadio.Item\n ref={ref}\n value={value}\n className={cx('v8-radio-group__item', className)}\n style={{\n width: 16,\n height: 16,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--input-bg)',\n border: '1px solid var(--border-strong)',\n borderRadius: 'var(--radius-pill)',\n cursor: 'pointer',\n }}\n {...rest}\n >\n <RxRadio.Indicator\n style={{\n width: 8,\n height: 8,\n borderRadius: 'var(--radius-pill)',\n background: 'var(--accent)',\n }}\n />\n </RxRadio.Item>\n {label !== undefined && (\n <label htmlFor={rest.id} style={{ fontSize: 'var(--fs-13)', cursor: 'pointer' }}>\n {label}\n </label>\n )}\n </div>\n );\n },\n);","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Field — form field wrapper that pairs a label with a control and optional\n * hint / error message.\n *\n * Use for any form input so labels, hints, and errors render consistently.\n * Accessibility: the label is properly associated with the control via\n * `htmlFor` + `id`. The hint and error share `aria-describedby`.\n */\nexport interface FieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Unique id used for the input + label-for relationship. */\n id: string;\n /** Visible label text. */\n label: ReactNode;\n /** Optional descriptive hint below the control. */\n hint?: ReactNode;\n /** Optional error message. When present, the field renders the error tone. */\n error?: ReactNode;\n /** Whether the field is required (adds a red asterisk). */\n required?: boolean;\n /** The form control. Field renders the label and styling around it. */\n children: ReactNode;\n}\n\nexport const Field = forwardRef<HTMLDivElement, FieldProps>(function Field(props, ref) {\n const { id, label, hint, error, required, children, className, ...rest } = props;\n const hintId = hint !== undefined ? `${id}-hint` : undefined;\n const errorId = error !== undefined ? `${id}-error` : undefined;\n\n return (\n <div\n ref={ref}\n className={cx('v8-field', error !== undefined && 'has-error', className)}\n style={{ display: 'flex', flexDirection: 'column', gap: 'var(--space-2)' }}\n {...rest}\n >\n <label\n htmlFor={id}\n style={{\n fontSize: 'var(--fs-13)',\n fontWeight: 500,\n color: 'var(--fg)',\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-1)',\n }}\n >\n {label}\n {required === true && (\n <span aria-hidden=\"true\" style={{ color: 'var(--danger)' }}>\n *\n </span>\n )}\n </label>\n {/* Children must wire `id={id}` to their input for the label to work. */}\n {children}\n {hint !== undefined && error === undefined && (\n <div\n id={hintId}\n style={{ fontSize: 'var(--fs-12)', color: 'var(--fg-muted)' }}\n >\n {hint}\n </div>\n )}\n {error !== undefined && (\n <div\n id={errorId}\n role=\"alert\"\n style={{ fontSize: 'var(--fs-12)', color: 'var(--danger)' }}\n >\n {error}\n </div>\n )}\n </div>\n );\n});","import { forwardRef, type FormHTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Form — top-level form surface. Currently a thin styled wrapper around <form>.\n *\n * The v8 dashboard forms are intentionally minimal — most fields are wired\n * via <Field> + native input events. For complex forms (Settings pages,\n * kanban quick-add) use react-hook-form in the consumer; this primitive\n * just provides consistent layout + a handle for future form-level tooling.\n */\nexport interface FormProps extends FormHTMLAttributes<HTMLFormElement> {\n children: ReactNode;\n}\n\nexport const Form = forwardRef<HTMLFormElement, FormProps>(function Form(props, ref) {\n const { children, className, ...rest } = props;\n return (\n <form ref={ref} className={cx('v8-form', className)} style={{ display: 'flex', flexDirection: 'column', gap: 'var(--space-4)' }} {...rest}>\n {children}\n </form>\n );\n});","\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, [skipDelayDuration]),\n onClose: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n if (event.target instanceof Node && event.target.contains(context.trigger)) {\n onClose();\n }\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport * as RxTooltip from '@radix-ui/react-tooltip';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Tooltip — small popup with descriptive text.\n *\n * Built on Radix Tooltip. Per DESIGN.md §10:\n * - tooltip on disabled controls is BANNED — use inline helper text\n * - never put interactive content inside a tooltip\n */\nexport type TooltipSide = 'top' | 'right' | 'bottom' | 'left';\nexport type TooltipAlign = 'start' | 'center' | 'end';\n\nexport interface TooltipProps extends Omit<ComponentPropsWithoutRef<typeof RxTooltip.Root>, 'children'> {\n children: ReactNode;\n content: ReactNode;\n side?: TooltipSide;\n align?: TooltipAlign;\n delayDuration?: number;\n shortcut?: string;\n}\n\nexport const TooltipProvider = RxTooltip.Provider;\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(function Tooltip(props, ref) {\n const {\n children,\n content,\n side = 'top',\n align = 'center',\n delayDuration = 250,\n shortcut,\n open,\n defaultOpen,\n onOpenChange,\n } = props;\n\n return (\n <RxTooltip.Root\n delayDuration={delayDuration}\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n <RxTooltip.Trigger asChild>{children}</RxTooltip.Trigger>\n <RxTooltip.Portal>\n <RxTooltip.Content\n ref={ref}\n side={side}\n align={align}\n sideOffset={6}\n className={cx('v8-tooltip')}\n style={{\n background: 'var(--fg)',\n color: 'var(--bg)',\n fontSize: 'var(--fs-12)',\n fontWeight: 500,\n padding: '4px 8px',\n borderRadius: 'var(--radius-sm)',\n boxShadow: 'var(--shadow-2)',\n maxWidth: 280,\n zIndex: 'var(--z-tooltip)',\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n userSelect: 'none',\n }}\n >\n {content}\n {shortcut !== undefined && (\n <kbd\n style={{\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--fs-12)',\n padding: '0 4px',\n background: 'oklch(from var(--fg) l c h / 0.15)',\n borderRadius: 'var(--radius-sm)',\n }}\n >\n {shortcut}\n </kbd>\n )}\n <RxTooltip.Arrow style={{ fill: 'var(--fg)' }} />\n </RxTooltip.Content>\n </RxTooltip.Portal>\n </RxTooltip.Root>\n );\n});","\"use client\";import o,{forwardRef as fe,isValidElement as xt}from\"react\";import vt from\"react-dom\";import E from\"react\";var jt=n=>{switch(n){case\"success\":return ee;case\"info\":return ae;case\"warning\":return oe;case\"error\":return se;default:return null}},te=Array(12).fill(0),Yt=({visible:n,className:e})=>E.createElement(\"div\",{className:[\"sonner-loading-wrapper\",e].filter(Boolean).join(\" \"),\"data-visible\":n},E.createElement(\"div\",{className:\"sonner-spinner\"},te.map((t,a)=>E.createElement(\"div\",{className:\"sonner-loading-bar\",key:`spinner-bar-${a}`})))),ee=E.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\",fill:\"currentColor\",height:\"20\",width:\"20\"},E.createElement(\"path\",{fillRule:\"evenodd\",d:\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\",clipRule:\"evenodd\"})),oe=E.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"currentColor\",height:\"20\",width:\"20\"},E.createElement(\"path\",{fillRule:\"evenodd\",d:\"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\",clipRule:\"evenodd\"})),ae=E.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\",fill:\"currentColor\",height:\"20\",width:\"20\"},E.createElement(\"path\",{fillRule:\"evenodd\",d:\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\",clipRule:\"evenodd\"})),se=E.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\",fill:\"currentColor\",height:\"20\",width:\"20\"},E.createElement(\"path\",{fillRule:\"evenodd\",d:\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\",clipRule:\"evenodd\"})),Ot=E.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\"},E.createElement(\"line\",{x1:\"18\",y1:\"6\",x2:\"6\",y2:\"18\"}),E.createElement(\"line\",{x1:\"6\",y1:\"6\",x2:\"18\",y2:\"18\"}));import $t from\"react\";var Ft=()=>{let[n,e]=$t.useState(document.hidden);return $t.useEffect(()=>{let t=()=>{e(document.hidden)};return document.addEventListener(\"visibilitychange\",t),()=>window.removeEventListener(\"visibilitychange\",t)},[]),n};import re from\"react\";var bt=1,yt=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)});this.publish=e=>{this.subscribers.forEach(t=>t(e))};this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]};this.create=e=>{var S;let{message:t,...a}=e,u=typeof(e==null?void 0:e.id)==\"number\"||((S=e.id)==null?void 0:S.length)>0?e.id:bt++,f=this.toasts.find(g=>g.id===u),w=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(u)&&this.dismissedToasts.delete(u),f?this.toasts=this.toasts.map(g=>g.id===u?(this.publish({...g,...e,id:u,title:t}),{...g,...e,id:u,dismissible:w,title:t}):g):this.addToast({title:t,...a,dismissible:w,id:u}),u};this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(a=>a({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e);this.message=(e,t)=>this.create({...t,message:e});this.error=(e,t)=>this.create({...t,message:e,type:\"error\"});this.success=(e,t)=>this.create({...t,type:\"success\",message:e});this.info=(e,t)=>this.create({...t,type:\"info\",message:e});this.warning=(e,t)=>this.create({...t,type:\"warning\",message:e});this.loading=(e,t)=>this.create({...t,type:\"loading\",message:e});this.promise=(e,t)=>{if(!t)return;let a;t.loading!==void 0&&(a=this.create({...t,promise:e,type:\"loading\",message:t.loading,description:typeof t.description!=\"function\"?t.description:void 0}));let u=e instanceof Promise?e:e(),f=a!==void 0,w,S=u.then(async i=>{if(w=[\"resolve\",i],re.isValidElement(i))f=!1,this.create({id:a,type:\"default\",message:i});else if(ie(i)&&!i.ok){f=!1;let T=typeof t.error==\"function\"?await t.error(`HTTP error! status: ${i.status}`):t.error,F=typeof t.description==\"function\"?await t.description(`HTTP error! status: ${i.status}`):t.description;this.create({id:a,type:\"error\",message:T,description:F})}else if(t.success!==void 0){f=!1;let T=typeof t.success==\"function\"?await t.success(i):t.success,F=typeof t.description==\"function\"?await t.description(i):t.description;this.create({id:a,type:\"success\",message:T,description:F})}}).catch(async i=>{if(w=[\"reject\",i],t.error!==void 0){f=!1;let D=typeof t.error==\"function\"?await t.error(i):t.error,T=typeof t.description==\"function\"?await t.description(i):t.description;this.create({id:a,type:\"error\",message:D,description:T})}}).finally(()=>{var i;f&&(this.dismiss(a),a=void 0),(i=t.finally)==null||i.call(t)}),g=()=>new Promise((i,D)=>S.then(()=>w[0]===\"reject\"?D(w[1]):i(w[1])).catch(D));return typeof a!=\"string\"&&typeof a!=\"number\"?{unwrap:g}:Object.assign(a,{unwrap:g})};this.custom=(e,t)=>{let a=(t==null?void 0:t.id)||bt++;return this.create({jsx:e(a),id:a,...t}),a};this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id));this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},v=new yt,ne=(n,e)=>{let t=(e==null?void 0:e.id)||bt++;return v.addToast({title:n,...e,id:t}),t},ie=n=>n&&typeof n==\"object\"&&\"ok\"in n&&typeof n.ok==\"boolean\"&&\"status\"in n&&typeof n.status==\"number\",le=ne,ce=()=>v.toasts,de=()=>v.getActiveToasts(),ue=Object.assign(le,{success:v.success,info:v.info,warning:v.warning,error:v.error,custom:v.custom,message:v.message,promise:v.promise,dismiss:v.dismiss,loading:v.loading},{getHistory:ce,getToasts:de});function wt(n,{insertAt:e}={}){if(!n||typeof document==\"undefined\")return;let t=document.head||document.getElementsByTagName(\"head\")[0],a=document.createElement(\"style\");a.type=\"text/css\",e===\"top\"&&t.firstChild?t.insertBefore(a,t.firstChild):t.appendChild(a),a.styleSheet?a.styleSheet.cssText=n:a.appendChild(document.createTextNode(n))}wt(`:where(html[dir=\"ltr\"]),:where([data-sonner-toaster][dir=\"ltr\"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir=\"rtl\"]),:where([data-sonner-toaster][dir=\"rtl\"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted=\"true\"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted=\"true\"]){transform:none}}:where([data-sonner-toaster][data-x-position=\"right\"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position=\"left\"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position=\"center\"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position=\"top\"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position=\"bottom\"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled=\"true\"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position=\"top\"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position=\"bottom\"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise=\"true\"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme=\"dark\"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled=\"true\"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping=\"true\"]):before{content:\"\";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position=\"top\"][data-swiping=\"true\"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position=\"bottom\"][data-swiping=\"true\"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping=\"false\"][data-removed=\"true\"]):before{content:\"\";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:\"\";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted=\"true\"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded=\"false\"][data-front=\"false\"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded=\"false\"][data-front=\"false\"][data-styled=\"true\"])>*{opacity:0}:where([data-sonner-toast][data-visible=\"false\"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted=\"true\"][data-expanded=\"true\"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed=\"true\"][data-front=\"true\"][data-swipe-out=\"false\"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=\"true\"][data-front=\"false\"][data-swipe-out=\"false\"][data-expanded=\"true\"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=\"true\"][data-front=\"false\"][data-swipe-out=\"false\"][data-expanded=\"false\"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed=\"true\"][data-front=\"false\"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\n`);function tt(n){return n.label!==void 0}var pe=3,me=\"32px\",ge=\"16px\",Wt=4e3,he=356,be=14,ye=20,we=200;function M(...n){return n.filter(Boolean).join(\" \")}function xe(n){let[e,t]=n.split(\"-\"),a=[];return e&&a.push(e),t&&a.push(t),a}var ve=n=>{var Dt,Pt,Nt,Bt,Ct,kt,It,Mt,Ht,At,Lt;let{invert:e,toast:t,unstyled:a,interacting:u,setHeights:f,visibleToasts:w,heights:S,index:g,toasts:i,expanded:D,removeToast:T,defaultRichColors:F,closeButton:et,style:ut,cancelButtonStyle:ft,actionButtonStyle:l,className:ot=\"\",descriptionClassName:at=\"\",duration:X,position:st,gap:pt,loadingIcon:rt,expandByDefault:B,classNames:s,icons:P,closeButtonAriaLabel:nt=\"Close toast\",pauseWhenPageIsHidden:it}=n,[Y,C]=o.useState(null),[lt,J]=o.useState(null),[W,H]=o.useState(!1),[A,mt]=o.useState(!1),[L,z]=o.useState(!1),[ct,d]=o.useState(!1),[h,y]=o.useState(!1),[R,j]=o.useState(0),[p,_]=o.useState(0),O=o.useRef(t.duration||X||Wt),G=o.useRef(null),k=o.useRef(null),Vt=g===0,Ut=g+1<=w,N=t.type,V=t.dismissible!==!1,Kt=t.className||\"\",Xt=t.descriptionClassName||\"\",dt=o.useMemo(()=>S.findIndex(r=>r.toastId===t.id)||0,[S,t.id]),Jt=o.useMemo(()=>{var r;return(r=t.closeButton)!=null?r:et},[t.closeButton,et]),Tt=o.useMemo(()=>t.duration||X||Wt,[t.duration,X]),gt=o.useRef(0),U=o.useRef(0),St=o.useRef(0),K=o.useRef(null),[Gt,Qt]=st.split(\"-\"),Rt=o.useMemo(()=>S.reduce((r,m,c)=>c>=dt?r:r+m.height,0),[S,dt]),Et=Ft(),qt=t.invert||e,ht=N===\"loading\";U.current=o.useMemo(()=>dt*pt+Rt,[dt,Rt]),o.useEffect(()=>{O.current=Tt},[Tt]),o.useEffect(()=>{H(!0)},[]),o.useEffect(()=>{let r=k.current;if(r){let m=r.getBoundingClientRect().height;return _(m),f(c=>[{toastId:t.id,height:m,position:t.position},...c]),()=>f(c=>c.filter(b=>b.toastId!==t.id))}},[f,t.id]),o.useLayoutEffect(()=>{if(!W)return;let r=k.current,m=r.style.height;r.style.height=\"auto\";let c=r.getBoundingClientRect().height;r.style.height=m,_(c),f(b=>b.find(x=>x.toastId===t.id)?b.map(x=>x.toastId===t.id?{...x,height:c}:x):[{toastId:t.id,height:c,position:t.position},...b])},[W,t.title,t.description,f,t.id]);let $=o.useCallback(()=>{mt(!0),j(U.current),f(r=>r.filter(m=>m.toastId!==t.id)),setTimeout(()=>{T(t)},we)},[t,T,f,U]);o.useEffect(()=>{if(t.promise&&N===\"loading\"||t.duration===1/0||t.type===\"loading\")return;let r;return D||u||it&&Et?(()=>{if(St.current<gt.current){let b=new Date().getTime()-gt.current;O.current=O.current-b}St.current=new Date().getTime()})():(()=>{O.current!==1/0&&(gt.current=new Date().getTime(),r=setTimeout(()=>{var b;(b=t.onAutoClose)==null||b.call(t,t),$()},O.current))})(),()=>clearTimeout(r)},[D,u,t,N,it,Et,$]),o.useEffect(()=>{t.delete&&$()},[$,t.delete]);function Zt(){var r,m,c;return P!=null&&P.loading?o.createElement(\"div\",{className:M(s==null?void 0:s.loader,(r=t==null?void 0:t.classNames)==null?void 0:r.loader,\"sonner-loader\"),\"data-visible\":N===\"loading\"},P.loading):rt?o.createElement(\"div\",{className:M(s==null?void 0:s.loader,(m=t==null?void 0:t.classNames)==null?void 0:m.loader,\"sonner-loader\"),\"data-visible\":N===\"loading\"},rt):o.createElement(Yt,{className:M(s==null?void 0:s.loader,(c=t==null?void 0:t.classNames)==null?void 0:c.loader),visible:N===\"loading\"})}return o.createElement(\"li\",{tabIndex:0,ref:k,className:M(ot,Kt,s==null?void 0:s.toast,(Dt=t==null?void 0:t.classNames)==null?void 0:Dt.toast,s==null?void 0:s.default,s==null?void 0:s[N],(Pt=t==null?void 0:t.classNames)==null?void 0:Pt[N]),\"data-sonner-toast\":\"\",\"data-rich-colors\":(Nt=t.richColors)!=null?Nt:F,\"data-styled\":!(t.jsx||t.unstyled||a),\"data-mounted\":W,\"data-promise\":!!t.promise,\"data-swiped\":h,\"data-removed\":A,\"data-visible\":Ut,\"data-y-position\":Gt,\"data-x-position\":Qt,\"data-index\":g,\"data-front\":Vt,\"data-swiping\":L,\"data-dismissible\":V,\"data-type\":N,\"data-invert\":qt,\"data-swipe-out\":ct,\"data-swipe-direction\":lt,\"data-expanded\":!!(D||B&&W),style:{\"--index\":g,\"--toasts-before\":g,\"--z-index\":i.length-g,\"--offset\":`${A?R:U.current}px`,\"--initial-height\":B?\"auto\":`${p}px`,...ut,...t.style},onDragEnd:()=>{z(!1),C(null),K.current=null},onPointerDown:r=>{ht||!V||(G.current=new Date,j(U.current),r.target.setPointerCapture(r.pointerId),r.target.tagName!==\"BUTTON\"&&(z(!0),K.current={x:r.clientX,y:r.clientY}))},onPointerUp:()=>{var x,Q,q,Z;if(ct||!V)return;K.current=null;let r=Number(((x=k.current)==null?void 0:x.style.getPropertyValue(\"--swipe-amount-x\").replace(\"px\",\"\"))||0),m=Number(((Q=k.current)==null?void 0:Q.style.getPropertyValue(\"--swipe-amount-y\").replace(\"px\",\"\"))||0),c=new Date().getTime()-((q=G.current)==null?void 0:q.getTime()),b=Y===\"x\"?r:m,I=Math.abs(b)/c;if(Math.abs(b)>=ye||I>.11){j(U.current),(Z=t.onDismiss)==null||Z.call(t,t),J(Y===\"x\"?r>0?\"right\":\"left\":m>0?\"down\":\"up\"),$(),d(!0),y(!1);return}z(!1),C(null)},onPointerMove:r=>{var Q,q,Z,zt;if(!K.current||!V||((Q=window.getSelection())==null?void 0:Q.toString().length)>0)return;let c=r.clientY-K.current.y,b=r.clientX-K.current.x,I=(q=n.swipeDirections)!=null?q:xe(st);!Y&&(Math.abs(b)>1||Math.abs(c)>1)&&C(Math.abs(b)>Math.abs(c)?\"x\":\"y\");let x={x:0,y:0};Y===\"y\"?(I.includes(\"top\")||I.includes(\"bottom\"))&&(I.includes(\"top\")&&c<0||I.includes(\"bottom\")&&c>0)&&(x.y=c):Y===\"x\"&&(I.includes(\"left\")||I.includes(\"right\"))&&(I.includes(\"left\")&&b<0||I.includes(\"right\")&&b>0)&&(x.x=b),(Math.abs(x.x)>0||Math.abs(x.y)>0)&&y(!0),(Z=k.current)==null||Z.style.setProperty(\"--swipe-amount-x\",`${x.x}px`),(zt=k.current)==null||zt.style.setProperty(\"--swipe-amount-y\",`${x.y}px`)}},Jt&&!t.jsx?o.createElement(\"button\",{\"aria-label\":nt,\"data-disabled\":ht,\"data-close-button\":!0,onClick:ht||!V?()=>{}:()=>{var r;$(),(r=t.onDismiss)==null||r.call(t,t)},className:M(s==null?void 0:s.closeButton,(Bt=t==null?void 0:t.classNames)==null?void 0:Bt.closeButton)},(Ct=P==null?void 0:P.close)!=null?Ct:Ot):null,t.jsx||xt(t.title)?t.jsx?t.jsx:typeof t.title==\"function\"?t.title():t.title:o.createElement(o.Fragment,null,N||t.icon||t.promise?o.createElement(\"div\",{\"data-icon\":\"\",className:M(s==null?void 0:s.icon,(kt=t==null?void 0:t.classNames)==null?void 0:kt.icon)},t.promise||t.type===\"loading\"&&!t.icon?t.icon||Zt():null,t.type!==\"loading\"?t.icon||(P==null?void 0:P[N])||jt(N):null):null,o.createElement(\"div\",{\"data-content\":\"\",className:M(s==null?void 0:s.content,(It=t==null?void 0:t.classNames)==null?void 0:It.content)},o.createElement(\"div\",{\"data-title\":\"\",className:M(s==null?void 0:s.title,(Mt=t==null?void 0:t.classNames)==null?void 0:Mt.title)},typeof t.title==\"function\"?t.title():t.title),t.description?o.createElement(\"div\",{\"data-description\":\"\",className:M(at,Xt,s==null?void 0:s.description,(Ht=t==null?void 0:t.classNames)==null?void 0:Ht.description)},typeof t.description==\"function\"?t.description():t.description):null),xt(t.cancel)?t.cancel:t.cancel&&tt(t.cancel)?o.createElement(\"button\",{\"data-button\":!0,\"data-cancel\":!0,style:t.cancelButtonStyle||ft,onClick:r=>{var m,c;tt(t.cancel)&&V&&((c=(m=t.cancel).onClick)==null||c.call(m,r),$())},className:M(s==null?void 0:s.cancelButton,(At=t==null?void 0:t.classNames)==null?void 0:At.cancelButton)},t.cancel.label):null,xt(t.action)?t.action:t.action&&tt(t.action)?o.createElement(\"button\",{\"data-button\":!0,\"data-action\":!0,style:t.actionButtonStyle||l,onClick:r=>{var m,c;tt(t.action)&&((c=(m=t.action).onClick)==null||c.call(m,r),!r.defaultPrevented&&$())},className:M(s==null?void 0:s.actionButton,(Lt=t==null?void 0:t.classNames)==null?void 0:Lt.actionButton)},t.action.label):null))};function _t(){if(typeof window==\"undefined\"||typeof document==\"undefined\")return\"ltr\";let n=document.documentElement.getAttribute(\"dir\");return n===\"auto\"||!n?window.getComputedStyle(document.documentElement).direction:n}function Te(n,e){let t={};return[n,e].forEach((a,u)=>{let f=u===1,w=f?\"--mobile-offset\":\"--offset\",S=f?ge:me;function g(i){[\"top\",\"right\",\"bottom\",\"left\"].forEach(D=>{t[`${w}-${D}`]=typeof i==\"number\"?`${i}px`:i})}typeof a==\"number\"||typeof a==\"string\"?g(a):typeof a==\"object\"?[\"top\",\"right\",\"bottom\",\"left\"].forEach(i=>{a[i]===void 0?t[`${w}-${i}`]=S:t[`${w}-${i}`]=typeof a[i]==\"number\"?`${a[i]}px`:a[i]}):g(S)}),t}function Oe(){let[n,e]=o.useState([]);return o.useEffect(()=>v.subscribe(t=>{if(t.dismiss){setTimeout(()=>{vt.flushSync(()=>{e(a=>a.filter(u=>u.id!==t.id))})});return}setTimeout(()=>{vt.flushSync(()=>{e(a=>{let u=a.findIndex(f=>f.id===t.id);return u!==-1?[...a.slice(0,u),{...a[u],...t},...a.slice(u+1)]:[t,...a]})})})}),[]),{toasts:n}}var $e=fe(function(e,t){let{invert:a,position:u=\"bottom-right\",hotkey:f=[\"altKey\",\"KeyT\"],expand:w,closeButton:S,className:g,offset:i,mobileOffset:D,theme:T=\"light\",richColors:F,duration:et,style:ut,visibleToasts:ft=pe,toastOptions:l,dir:ot=_t(),gap:at=be,loadingIcon:X,icons:st,containerAriaLabel:pt=\"Notifications\",pauseWhenPageIsHidden:rt}=e,[B,s]=o.useState([]),P=o.useMemo(()=>Array.from(new Set([u].concat(B.filter(d=>d.position).map(d=>d.position)))),[B,u]),[nt,it]=o.useState([]),[Y,C]=o.useState(!1),[lt,J]=o.useState(!1),[W,H]=o.useState(T!==\"system\"?T:typeof window!=\"undefined\"&&window.matchMedia&&window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\"),A=o.useRef(null),mt=f.join(\"+\").replace(/Key/g,\"\").replace(/Digit/g,\"\"),L=o.useRef(null),z=o.useRef(!1),ct=o.useCallback(d=>{s(h=>{var y;return(y=h.find(R=>R.id===d.id))!=null&&y.delete||v.dismiss(d.id),h.filter(({id:R})=>R!==d.id)})},[]);return o.useEffect(()=>v.subscribe(d=>{if(d.dismiss){s(h=>h.map(y=>y.id===d.id?{...y,delete:!0}:y));return}setTimeout(()=>{vt.flushSync(()=>{s(h=>{let y=h.findIndex(R=>R.id===d.id);return y!==-1?[...h.slice(0,y),{...h[y],...d},...h.slice(y+1)]:[d,...h]})})})}),[]),o.useEffect(()=>{if(T!==\"system\"){H(T);return}if(T===\"system\"&&(window.matchMedia&&window.matchMedia(\"(prefers-color-scheme: dark)\").matches?H(\"dark\"):H(\"light\")),typeof window==\"undefined\")return;let d=window.matchMedia(\"(prefers-color-scheme: dark)\");try{d.addEventListener(\"change\",({matches:h})=>{H(h?\"dark\":\"light\")})}catch(h){d.addListener(({matches:y})=>{try{H(y?\"dark\":\"light\")}catch(R){console.error(R)}})}},[T]),o.useEffect(()=>{B.length<=1&&C(!1)},[B]),o.useEffect(()=>{let d=h=>{var R,j;f.every(p=>h[p]||h.code===p)&&(C(!0),(R=A.current)==null||R.focus()),h.code===\"Escape\"&&(document.activeElement===A.current||(j=A.current)!=null&&j.contains(document.activeElement))&&C(!1)};return document.addEventListener(\"keydown\",d),()=>document.removeEventListener(\"keydown\",d)},[f]),o.useEffect(()=>{if(A.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,z.current=!1)}},[A.current]),o.createElement(\"section\",{ref:t,\"aria-label\":`${pt} ${mt}`,tabIndex:-1,\"aria-live\":\"polite\",\"aria-relevant\":\"additions text\",\"aria-atomic\":\"false\",suppressHydrationWarning:!0},P.map((d,h)=>{var j;let[y,R]=d.split(\"-\");return B.length?o.createElement(\"ol\",{key:d,dir:ot===\"auto\"?_t():ot,tabIndex:-1,ref:A,className:g,\"data-sonner-toaster\":!0,\"data-theme\":W,\"data-y-position\":y,\"data-lifted\":Y&&B.length>1&&!w,\"data-x-position\":R,style:{\"--front-toast-height\":`${((j=nt[0])==null?void 0:j.height)||0}px`,\"--width\":`${he}px`,\"--gap\":`${at}px`,...ut,...Te(i,D)},onBlur:p=>{z.current&&!p.currentTarget.contains(p.relatedTarget)&&(z.current=!1,L.current&&(L.current.focus({preventScroll:!0}),L.current=null))},onFocus:p=>{p.target instanceof HTMLElement&&p.target.dataset.dismissible===\"false\"||z.current||(z.current=!0,L.current=p.relatedTarget)},onMouseEnter:()=>C(!0),onMouseMove:()=>C(!0),onMouseLeave:()=>{lt||C(!1)},onDragEnd:()=>C(!1),onPointerDown:p=>{p.target instanceof HTMLElement&&p.target.dataset.dismissible===\"false\"||J(!0)},onPointerUp:()=>J(!1)},B.filter(p=>!p.position&&h===0||p.position===d).map((p,_)=>{var O,G;return o.createElement(ve,{key:p.id,icons:st,index:_,toast:p,defaultRichColors:F,duration:(O=l==null?void 0:l.duration)!=null?O:et,className:l==null?void 0:l.className,descriptionClassName:l==null?void 0:l.descriptionClassName,invert:a,visibleToasts:ft,closeButton:(G=l==null?void 0:l.closeButton)!=null?G:S,interacting:lt,position:d,style:l==null?void 0:l.style,unstyled:l==null?void 0:l.unstyled,classNames:l==null?void 0:l.classNames,cancelButtonStyle:l==null?void 0:l.cancelButtonStyle,actionButtonStyle:l==null?void 0:l.actionButtonStyle,removeToast:ct,toasts:B.filter(k=>k.position==p.position),heights:nt.filter(k=>k.position==p.position),setHeights:it,expandByDefault:w,gap:at,loadingIcon:X,expanded:Y,pauseWhenPageIsHidden:rt,swipeDirections:e.swipeDirections})})):null}))});export{$e as Toaster,ue as toast,Oe as useSonner};\n//# sourceMappingURL=index.mjs.map","\"use client\";\n\n// src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n React.useEffect(() => {\n if (!open) {\n return;\n }\n const handleBlur = () => handleOpenChange(false);\n window.addEventListener(\"blur\", handleBlur);\n return () => window.removeEventListener(\"blur\", handleBlur);\n }, [open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar Slot = createSlot(\"MenuContent.ScrollLock\");\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled || event.target !== event.currentTarget) {\n return;\n }\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (isTypingAhead && event.key === \" \") {\n return;\n }\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n const composedRefs = useComposedRefs(forwardedRef, subContext.onTriggerChange);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? subContext.contentId : void 0,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composedRefs,\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (props.disabled || event.target !== event.currentTarget) {\n return;\n }\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (isTypingAhead && event.key === \" \") {\n return;\n }\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, align = \"start\", ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align,\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dropdown-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DROPDOWN_MENU_NAME\n });\n return /* @__PURE__ */ jsx(\n DropdownMenuProvider,\n {\n scope: __scopeDropdownMenu,\n triggerId: useId(),\n triggerRef,\n contentId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n }\n );\n};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: composedRefs,\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n })\n }\n ) });\n }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: \"DropdownMenuSub\"\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n DropdownMenu,\n DropdownMenuArrow,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport * as RxMenu from '@radix-ui/react-dropdown-menu';\nimport { Check, ChevronRight } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * DropdownMenu — a menu attached to a trigger (button click).\n *\n * For right-click menus use ContextMenu. For menus inside a Card\n * (without a trigger) use Menu directly.\n */\n\nexport type DropdownMenuProps = ComponentPropsWithoutRef<typeof RxMenu.Root>;\n\nexport const DropdownMenu = ({ children, ...rest }: DropdownMenuProps) => (\n <RxMenu.Root {...rest}>{children}</RxMenu.Root>\n);\n\nexport const DropdownMenuTrigger = RxMenu.Trigger;\nexport const DropdownMenuGroup = RxMenu.Group;\nexport const DropdownMenuPortal = RxMenu.Portal;\nexport const DropdownMenuSub = RxMenu.Sub;\nexport const DropdownMenuRadioGroup = RxMenu.RadioGroup;\n\nexport interface DropdownMenuContentProps extends ComponentPropsWithoutRef<typeof RxMenu.Content> {\n children: ReactNode;\n}\n\nexport const DropdownMenuContent = forwardRef<HTMLDivElement, DropdownMenuContentProps>(\n function DropdownMenuContent(props, ref) {\n const { className, children, sideOffset = 4, ...rest } = props;\n return (\n <RxMenu.Portal>\n <RxMenu.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cx('v8-dropdown-menu', className)}\n style={{\n minWidth: 180,\n background: 'var(--surface-popover)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n boxShadow: 'var(--shadow-3)',\n padding: 'var(--space-1)',\n zIndex: 'var(--z-popover)',\n }}\n {...rest}\n >\n {children}\n </RxMenu.Content>\n </RxMenu.Portal>\n );\n },\n);\n\nexport interface DropdownMenuItemProps extends ComponentPropsWithoutRef<typeof RxMenu.Item> {\n /** Shortcut shown on the right (e.g. \"⌘ K\"). */\n shortcut?: string;\n /** When true, render a left-aligned danger color (used for delete actions). */\n danger?: boolean;\n leftIcon?: ReactNode;\n}\n\nexport const DropdownMenuItem = forwardRef<HTMLDivElement, DropdownMenuItemProps>(\n function DropdownMenuItem(props, ref) {\n const { className, children, shortcut, danger, leftIcon, disabled, ...rest } = props;\n return (\n <RxMenu.Item\n ref={ref}\n disabled={disabled}\n className={cx('v8-dropdown-menu__item', danger && 'is-danger', className)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n height: 28,\n padding: '0 var(--space-2) 0 var(--space-3)',\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n color: danger === true ? 'var(--danger)' : 'var(--fg)',\n cursor: disabled === true ? 'not-allowed' : 'pointer',\n outline: 0,\n userSelect: 'none',\n }}\n {...rest}\n >\n {leftIcon !== undefined && (\n <span style={{ width: 14, display: 'inline-flex', color: 'var(--fg-muted)' }}>{leftIcon}</span>\n )}\n <span style={{ flex: 1, minWidth: 0 }}>{children}</span>\n {shortcut !== undefined && (\n <span\n style={{\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n marginLeft: 'var(--space-2)',\n }}\n >\n {shortcut}\n </span>\n )}\n </RxMenu.Item>\n );\n },\n);\n\nexport const DropdownMenuCheckboxItem = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof RxMenu.CheckboxItem> & { children: ReactNode }\n>(function DropdownMenuCheckboxItem(props, ref) {\n const { className, children, ...rest } = props;\n return (\n <RxMenu.CheckboxItem\n ref={ref}\n className={cx('v8-dropdown-menu__checkbox', className)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n height: 28,\n padding: '0 var(--space-3)',\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n cursor: 'pointer',\n outline: 0,\n }}\n {...rest}\n >\n <RxMenu.ItemIndicator style={{ display: 'inline-flex', color: 'var(--accent)' }}>\n <Check size={14} aria-hidden=\"true\" />\n </RxMenu.ItemIndicator>\n <span>{children}</span>\n </RxMenu.CheckboxItem>\n );\n});\n\nexport const DropdownMenuLabel = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof RxMenu.Label>\n>(function DropdownMenuLabel(props, ref) {\n return (\n <RxMenu.Label\n ref={ref}\n style={{\n padding: 'var(--space-2) var(--space-3) var(--space-1)',\n fontSize: 'var(--fs-12)',\n fontWeight: 600,\n color: 'var(--fg-subtle)',\n textTransform: 'uppercase',\n letterSpacing: 'var(--tracking-wide)',\n }}\n {...props}\n />\n );\n});\n\nexport const DropdownMenuSeparator = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof RxMenu.Separator>\n>(function DropdownMenuSeparator(props, ref) {\n return (\n <RxMenu.Separator\n ref={ref}\n style={{\n height: 1,\n margin: 'var(--space-1) 0',\n background: 'var(--border)',\n }}\n {...props}\n />\n );\n});\n\nexport interface DropdownMenuSubTriggerProps\n extends ComponentPropsWithoutRef<typeof RxMenu.SubTrigger> {\n children: ReactNode;\n}\n\nexport const DropdownMenuSubTrigger = forwardRef<HTMLDivElement, DropdownMenuSubTriggerProps>(\n function DropdownMenuSubTrigger(props, ref) {\n const { className, children, ...rest } = props;\n return (\n <RxMenu.SubTrigger\n ref={ref}\n className={cx('v8-dropdown-menu__sub-trigger', className)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n height: 28,\n padding: '0 var(--space-2) 0 var(--space-3)',\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n cursor: 'pointer',\n outline: 0,\n }}\n {...rest}\n >\n <span style={{ flex: 1 }}>{children}</span>\n <ChevronRight size={14} aria-hidden=\"true\" style={{ color: 'var(--fg-muted)' }} />\n </RxMenu.SubTrigger>\n );\n },\n);\n\nexport const DropdownMenuSubContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof RxMenu.SubContent>\n>(function DropdownMenuSubContent(props, ref) {\n const { className, ...rest } = props;\n return (\n <RxMenu.Portal>\n <RxMenu.SubContent\n ref={ref}\n sideOffset={2}\n className={cx('v8-dropdown-menu__sub-content', className)}\n style={{\n minWidth: 180,\n background: 'var(--surface-popover)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n boxShadow: 'var(--shadow-3)',\n padding: 'var(--space-1)',\n zIndex: 'var(--z-popover)',\n }}\n {...rest}\n />\n </RxMenu.Portal>\n );\n});","\"use client\";\n\n// src/context-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar CONTEXT_MENU_NAME = \"ContextMenu\";\nvar [createContextMenuContext, createContextMenuScope] = createContextScope(CONTEXT_MENU_NAME, [\n createMenuScope\n]);\nvar useMenuScope = createMenuScope();\nvar [ContextMenuProvider, useContextMenuContext] = createContextMenuContext(CONTEXT_MENU_NAME);\nvar ContextMenu = (props) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, dir, modal = true } = props;\n const hasInteractedRef = React.useRef(false);\n if (true) {\n const hasWarnedRef = React.useRef(false);\n React.useEffect(() => {\n if (openProp === true && !hasInteractedRef.current && !hasWarnedRef.current) {\n hasWarnedRef.current = true;\n console.warn(\n \"ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport.\"\n );\n }\n }, [openProp]);\n }\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: false,\n onChange: onOpenChange,\n caller: CONTEXT_MENU_NAME\n });\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(\n ContextMenuProvider,\n {\n scope: __scopeContextMenu,\n open,\n onOpenChange: setOpen,\n modal,\n hasInteractedRef,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, dir, open, onOpenChange: setOpen, modal, children })\n }\n );\n};\nContextMenu.displayName = CONTEXT_MENU_NAME;\nvar TRIGGER_NAME = \"ContextMenuTrigger\";\nvar ContextMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeContextMenu, disabled = false, ...triggerProps } = props;\n const context = useContextMenuContext(TRIGGER_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const [point, setPoint] = React.useState({ x: 0, y: 0 });\n const virtualRef = React.useMemo(\n () => ({\n current: {\n getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point })\n }\n }),\n [point]\n );\n const longPressTimerRef = React.useRef(0);\n const clearLongPress = React.useCallback(\n () => window.clearTimeout(longPressTimerRef.current),\n []\n );\n const handleOpen = (event) => {\n context.hasInteractedRef.current = true;\n setPoint({ x: event.clientX, y: event.clientY });\n context.onOpenChange(true);\n };\n React.useEffect(() => clearLongPress, [clearLongPress]);\n React.useEffect(() => void (disabled && clearLongPress()), [disabled, clearLongPress]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { ...menuScope, virtualRef }),\n /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n ...triggerProps,\n ref: forwardedRef,\n style: { WebkitTouchCallout: \"none\", ...props.style },\n onContextMenu: disabled ? props.onContextMenu : composeEventHandlers(props.onContextMenu, (event) => {\n clearLongPress();\n handleOpen(event);\n event.preventDefault();\n }),\n onPointerDown: disabled ? props.onPointerDown : composeEventHandlers(\n props.onPointerDown,\n whenTouchOrPen((event) => {\n clearLongPress();\n if (context.open) {\n context.onOpenChange(false);\n }\n longPressTimerRef.current = window.setTimeout(() => handleOpen(event), 700);\n })\n ),\n onPointerMove: disabled ? props.onPointerMove : composeEventHandlers(props.onPointerMove, whenTouchOrPen(clearLongPress)),\n onPointerCancel: disabled ? props.onPointerCancel : composeEventHandlers(props.onPointerCancel, whenTouchOrPen(clearLongPress)),\n onPointerUp: disabled ? props.onPointerUp : composeEventHandlers(props.onPointerUp, whenTouchOrPen(clearLongPress))\n }\n )\n ] });\n }\n);\nContextMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"ContextMenuPortal\";\nvar ContextMenuPortal = (props) => {\n const { __scopeContextMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nContextMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"ContextMenuContent\";\nvar ContextMenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeContextMenu, ...contentProps } = props;\n const context = useContextMenuContext(CONTENT_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n side: \"right\",\n sideOffset: 2,\n align: \"start\",\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented && hasInteractedOutsideRef.current) {\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented && !context.modal) hasInteractedOutsideRef.current = true;\n },\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-context-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-context-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-context-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-context-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-context-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }\n);\nContextMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"ContextMenuGroup\";\nvar ContextMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeContextMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nContextMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"ContextMenuLabel\";\nvar ContextMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeContextMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nContextMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"ContextMenuItem\";\nvar ContextMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeContextMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nContextMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"ContextMenuCheckboxItem\";\nvar ContextMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeContextMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nContextMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"ContextMenuRadioGroup\";\nvar ContextMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeContextMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nContextMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"ContextMenuRadioItem\";\nvar ContextMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeContextMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nContextMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"ContextMenuItemIndicator\";\nvar ContextMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeContextMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nContextMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"ContextMenuSeparator\";\nvar ContextMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeContextMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nContextMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"ContextMenuArrow\";\nvar ContextMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeContextMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nContextMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"ContextMenuSub\";\nvar ContextMenuSub = (props) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SUB_NAME\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nContextMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"ContextMenuSubTrigger\";\nvar ContextMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeContextMenu, ...triggerItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...triggerItemProps, ref: forwardedRef });\n});\nContextMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"ContextMenuSubContent\";\nvar ContextMenuSubContent = React.forwardRef((props, forwardedRef) => {\n const { __scopeContextMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-context-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-context-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-context-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-context-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-context-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nContextMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction whenTouchOrPen(handler) {\n return (event) => event.pointerType !== \"mouse\" ? handler(event) : void 0;\n}\nvar Root2 = ContextMenu;\nvar Trigger = ContextMenuTrigger;\nvar Portal2 = ContextMenuPortal;\nvar Content2 = ContextMenuContent;\nvar Group2 = ContextMenuGroup;\nvar Label2 = ContextMenuLabel;\nvar Item2 = ContextMenuItem;\nvar CheckboxItem2 = ContextMenuCheckboxItem;\nvar RadioGroup2 = ContextMenuRadioGroup;\nvar RadioItem2 = ContextMenuRadioItem;\nvar ItemIndicator2 = ContextMenuItemIndicator;\nvar Separator2 = ContextMenuSeparator;\nvar Arrow2 = ContextMenuArrow;\nvar Sub2 = ContextMenuSub;\nvar SubTrigger2 = ContextMenuSubTrigger;\nvar SubContent2 = ContextMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n ContextMenu,\n ContextMenuArrow,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuItem,\n ContextMenuItemIndicator,\n ContextMenuLabel,\n ContextMenuPortal,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createContextMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport * as RxContextMenu from '@radix-ui/react-context-menu';\nimport { cx } from '../utils/cx.js';\n\n/**\n * ContextMenu — right-click menu. Rule #1 of the v8 dashboard.\n *\n * \"Right-click is sacred\" — every interactive surface that has meaningful\n * actions must use ContextMenu. The keyboard equivalent is Shift+F10.\n *\n * Built on Radix ContextMenu. Reuses the same Item / Separator / Label\n * primitives as DropdownMenu so visuals are identical (only the trigger\n * differs — left-click for DropdownMenu, right-click for ContextMenu).\n */\n\nexport type ContextMenuProps = ComponentPropsWithoutRef<typeof RxContextMenu.Root>;\n\nexport const ContextMenu = ({ children, ...rest }: ContextMenuProps) => (\n <RxContextMenu.Root {...rest}>{children}</RxContextMenu.Root>\n);\n\nexport const ContextMenuTrigger = forwardRef<\n HTMLSpanElement,\n ComponentPropsWithoutRef<typeof RxContextMenu.Trigger>\n>(function ContextMenuTrigger(props, ref) {\n return <RxContextMenu.Trigger ref={ref} {...props} />;\n});\n\nexport interface ContextMenuContentProps\n extends ComponentPropsWithoutRef<typeof RxContextMenu.Content> {\n children: ReactNode;\n}\n\nexport const ContextMenuContent = forwardRef<HTMLDivElement, ContextMenuContentProps>(\n function ContextMenuContent(props, ref) {\n const { className, children, ...rest } = props;\n return (\n <RxContextMenu.Portal>\n <RxContextMenu.Content\n ref={ref}\n className={cx('v8-context-menu', className)}\n style={{\n minWidth: 200,\n background: 'var(--surface-popover)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n boxShadow: 'var(--shadow-3)',\n padding: 'var(--space-1)',\n zIndex: 'var(--z-popover)',\n }}\n {...rest}\n >\n {children}\n </RxContextMenu.Content>\n </RxContextMenu.Portal>\n );\n },\n);\n\nexport interface ContextMenuItemProps extends ComponentPropsWithoutRef<typeof RxContextMenu.Item> {\n shortcut?: string;\n danger?: boolean;\n leftIcon?: ReactNode;\n}\n\nexport const ContextMenuItem = forwardRef<HTMLDivElement, ContextMenuItemProps>(\n function ContextMenuItem(props, ref) {\n const { className, children, shortcut, danger, leftIcon, disabled, ...rest } = props;\n return (\n <RxContextMenu.Item\n ref={ref}\n disabled={disabled}\n className={cx('v8-context-menu__item', danger && 'is-danger', className)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n height: 28,\n padding: '0 var(--space-2) 0 var(--space-3)',\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n color: danger === true ? 'var(--danger)' : 'var(--fg)',\n cursor: disabled === true ? 'not-allowed' : 'pointer',\n outline: 0,\n userSelect: 'none',\n }}\n {...rest}\n >\n {leftIcon !== undefined && (\n <span style={{ width: 14, display: 'inline-flex', color: 'var(--fg-muted)' }}>{leftIcon}</span>\n )}\n <span style={{ flex: 1, minWidth: 0 }}>{children}</span>\n {shortcut !== undefined && (\n <span\n style={{\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n marginLeft: 'var(--space-2)',\n }}\n >\n {shortcut}\n </span>\n )}\n </RxContextMenu.Item>\n );\n },\n);\n\nexport const ContextMenuSeparator = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof RxContextMenu.Separator>\n>(function ContextMenuSeparator(props, ref) {\n return (\n <RxContextMenu.Separator\n ref={ref}\n style={{ height: 1, margin: 'var(--space-1) 0', background: 'var(--border)' }}\n {...props}\n />\n );\n});\n\nexport const ContextMenuLabel = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof RxContextMenu.Label>\n>(function ContextMenuLabel(props, ref) {\n return (\n <RxContextMenu.Label\n ref={ref}\n style={{\n padding: 'var(--space-2) var(--space-3) var(--space-1)',\n fontSize: 'var(--fs-12)',\n fontWeight: 600,\n color: 'var(--fg-subtle)',\n textTransform: 'uppercase',\n letterSpacing: 'var(--tracking-wide)',\n }}\n {...props}\n />\n );\n});\n\nexport const ContextMenuGroup = RxContextMenu.Group;","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * BarList — horizontal bar list for distributions (e.g. tasks per agent,\n * memory by category). Renders each row as a label + animated bar + value.\n */\n\nexport interface BarListItem {\n /** Unique key for React. */\n id: string;\n label: ReactNode;\n value: number;\n /** Optional secondary text (e.g. percentage). */\n hint?: ReactNode;\n /** Optional leading slot (e.g. avatar, icon). */\n leading?: ReactNode;\n /** Override the bar color. */\n color?: string;\n}\n\nexport interface BarListProps extends HTMLAttributes<HTMLDivElement> {\n items: readonly BarListItem[];\n /** Show numeric values on the right (default true). */\n showValue?: boolean;\n /** Bar height in px (default 6). */\n barHeight?: number;\n /** Cap so the longest bar doesn't visually overwhelm. */\n cap?: number;\n}\n\nexport const BarList = forwardRef<HTMLDivElement, BarListProps>(function BarList(props, ref) {\n const { items, showValue = true, barHeight = 6, cap, className, style, ...rest } = props;\n const max = cap ?? Math.max(1, ...items.map((i) => i.value));\n\n return (\n <div\n ref={ref}\n className={cx('v8-bar-list', className)}\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: 'var(--space-3)',\n ...style,\n }}\n {...rest}\n >\n {items.map((item) => {\n const pct = Math.min(100, (item.value / max) * 100);\n return (\n <div key={item.id} style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-3)' }}>\n {item.leading !== undefined && (\n <span style={{ flexShrink: 0 }}>{item.leading}</span>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', gap: 'var(--space-2)', marginBottom: 4 }}>\n <span style={{ fontSize: 'var(--fs-13)', color: 'var(--fg)', minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>\n {item.label}\n </span>\n {showValue === true && (\n <span\n style={{\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n fontVariantNumeric: 'tabular-nums',\n flexShrink: 0,\n }}\n >\n {item.hint ?? item.value}\n </span>\n )}\n </div>\n <div\n style={{\n position: 'relative',\n height: barHeight,\n background: 'var(--surface-2)',\n borderRadius: 'var(--radius-pill)',\n overflow: 'hidden',\n }}\n >\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n height: '100%',\n width: `${pct}%`,\n background: item.color ?? 'var(--accent)',\n borderRadius: 'var(--radius-pill)',\n transition: 'width var(--motion-base) var(--ease-out)',\n }}\n />\n </div>\n </div>\n </div>\n );\n })}\n </div>\n );\n});","import { forwardRef, type OlHTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Timeline — vertical event feed (activity, runs, comments).\n *\n * Each item is a dot on a vertical rail + body to the right. Use inside\n * Activity view, Agent detail, or anywhere you'd reach for a feed.\n */\n\nexport interface TimelineItem {\n id: string;\n /** Optional leading icon/avatar (rendered inside the dot). */\n icon?: ReactNode;\n /** Tone color for the dot. */\n tone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger' | 'accent';\n title: ReactNode;\n description?: ReactNode;\n /** Right-aligned timestamp / metadata. */\n meta?: ReactNode;\n}\n\nexport interface TimelineProps extends OlHTMLAttributes<HTMLOListElement> {\n items: readonly TimelineItem[];\n}\n\nconst TONE_BG: Record<NonNullable<TimelineItem['tone']>, string> = {\n neutral: 'var(--fg-subtle)',\n info: 'var(--info)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n danger: 'var(--danger)',\n accent: 'var(--accent)',\n};\n\nconst TONE_RING: Record<NonNullable<TimelineItem['tone']>, string> = {\n neutral: 'color-mix(in oklch, var(--fg-subtle) 30%, var(--surface-0))',\n info: 'color-mix(in oklch, var(--info) 30%, var(--surface-0))',\n success: 'color-mix(in oklch, var(--success) 30%, var(--surface-0))',\n warning: 'color-mix(in oklch, var(--warning) 30%, var(--surface-0))',\n danger: 'color-mix(in oklch, var(--danger) 30%, var(--surface-0))',\n accent: 'color-mix(in oklch, var(--accent) 30%, var(--surface-0))',\n};\n\nexport const Timeline = forwardRef<HTMLOListElement, TimelineProps>(function Timeline(props, ref) {\n const { items, className, style, ...rest } = props;\n return (\n <ol\n ref={ref}\n className={cx('v8-timeline', className)}\n style={{\n listStyle: 'none',\n margin: 0,\n padding: 0,\n ...style,\n }}\n {...rest}\n >\n {items.map((item, idx) => {\n const tone = item.tone ?? 'neutral';\n const isLast = idx === items.length - 1;\n return (\n <li\n key={item.id}\n style={{\n position: 'relative',\n display: 'grid',\n gridTemplateColumns: '20px 1fr',\n gap: 'var(--space-3)',\n paddingBottom: isLast ? 0 : 'var(--space-4)',\n }}\n >\n <span\n aria-hidden=\"true\"\n style={{\n position: 'relative',\n width: 20,\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n {!isLast && (\n <span\n style={{\n position: 'absolute',\n top: 16,\n bottom: -16,\n width: 1,\n background: 'var(--border)',\n }}\n />\n )}\n <span\n style={{\n position: 'relative',\n width: 14,\n height: 14,\n borderRadius: 'var(--radius-pill)',\n background: TONE_BG[tone],\n boxShadow: `0 0 0 3px ${TONE_RING[tone]}`,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: 4,\n fontSize: 10,\n color: 'var(--bg)',\n }}\n >\n {item.icon}\n </span>\n </span>\n <div>\n <div style={{ display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 'var(--space-2)' }}>\n <div style={{ fontSize: 'var(--fs-13)', fontWeight: 500, color: 'var(--fg)' }}>{item.title}</div>\n {item.meta !== undefined && (\n <div style={{ fontSize: 'var(--fs-12)', color: 'var(--fg-subtle)', flexShrink: 0 }}>{item.meta}</div>\n )}\n </div>\n {item.description !== undefined && (\n <div style={{ fontSize: 'var(--fs-13)', color: 'var(--fg-muted)', marginTop: 2 }}>\n {item.description}\n </div>\n )}\n </div>\n </li>\n );\n })}\n </ol>\n );\n});","\"use client\";\n\n// src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef(void 0);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/accordion.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { createCollapsibleScope } from \"@radix-ui/react-collapsible\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ACCORDION_NAME = \"Accordion\";\nvar ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nvar [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);\nvar [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope\n]);\nvar useCollapsibleScope = createCollapsibleScope();\nvar Accordion = React.forwardRef(\n (props, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps;\n const multipleProps = accordionProps;\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n }\n);\nAccordion.displayName = ACCORDION_NAME;\nvar [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);\nvar [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\nvar AccordionImplSingle = React.forwardRef(\n (props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n collapsible = false,\n ...accordionSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: ACCORDION_NAME\n });\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemOpen: setValue,\n onItemClose: React.useCallback(() => collapsible && setValue(\"\"), [collapsible, setValue]),\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })\n }\n );\n }\n);\nvar AccordionImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...accordionMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: ACCORDION_NAME\n });\n const handleItemOpen = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleItemClose = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value,\n onItemOpen: handleItemOpen,\n onItemClose: handleItemClose,\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n }\n );\n});\nvar [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);\nvar AccordionImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, disabled, dir, orientation = \"vertical\", ...accordionProps } = props;\n const accordionRef = React.useRef(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n if (triggerIndex === -1) return;\n event.preventDefault();\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n switch (event.key) {\n case \"Home\":\n nextIndex = homeIndex;\n break;\n case \"End\":\n nextIndex = endIndex;\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n moveNext();\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n movePrev();\n }\n break;\n }\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex].ref.current?.focus();\n });\n return /* @__PURE__ */ jsx(\n AccordionImplProvider,\n {\n scope: __scopeAccordion,\n disabled,\n direction: dir,\n orientation,\n children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...accordionProps,\n \"data-orientation\": orientation,\n ref: composedRefs,\n onKeyDown: disabled ? void 0 : handleKeyDown\n }\n ) })\n }\n );\n }\n);\nvar ITEM_NAME = \"AccordionItem\";\nvar [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);\nvar AccordionItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = value && valueContext.value.includes(value) || false;\n const disabled = accordionContext.disabled || props.disabled;\n return /* @__PURE__ */ jsx(\n AccordionItemProvider,\n {\n scope: __scopeAccordion,\n open,\n disabled,\n triggerId,\n children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Root,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(open),\n ...collapsibleScope,\n ...accordionItemProps,\n ref: forwardedRef,\n disabled,\n open,\n onOpenChange: (open2) => {\n if (open2) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }\n }\n )\n }\n );\n }\n);\nAccordionItem.displayName = ITEM_NAME;\nvar HEADER_NAME = \"AccordionHeader\";\nvar AccordionHeader = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return /* @__PURE__ */ jsx(\n Primitive.h3,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(itemContext.open),\n \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n ...headerProps,\n ref: forwardedRef\n }\n );\n }\n);\nAccordionHeader.displayName = HEADER_NAME;\nvar TRIGGER_NAME = \"AccordionTrigger\";\nvar AccordionTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Trigger,\n {\n \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n \"data-orientation\": accordionContext.orientation,\n id: itemContext.triggerId,\n ...collapsibleScope,\n ...triggerProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nAccordionTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"AccordionContent\";\nvar AccordionContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Content,\n {\n role: \"region\",\n \"aria-labelledby\": itemContext.triggerId,\n \"data-orientation\": accordionContext.orientation,\n ...collapsibleScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n \"--radix-accordion-content-height\": \"var(--radix-collapsible-content-height)\",\n \"--radix-accordion-content-width\": \"var(--radix-collapsible-content-width)\",\n ...props.style\n }\n }\n );\n }\n);\nAccordionContent.displayName = CONTENT_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Accordion;\nvar Item = AccordionItem;\nvar Header = AccordionHeader;\nvar Trigger2 = AccordionTrigger;\nvar Content2 = AccordionContent;\nexport {\n Accordion,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n Content2 as Content,\n Header,\n Item,\n Root2 as Root,\n Trigger2 as Trigger,\n createAccordionScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport * as RxAccordion from '@radix-ui/react-accordion';\nimport { ChevronDown } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Accordion — collapsible content groups. Built on Radix for keyboard nav.\n *\n * Use for: Settings sections, long form grouping, FAQ-like content.\n */\n\nexport interface AccordionProps {\n /** 'single' opens one at a time, 'multiple' allows many. */\n type: 'single' | 'multiple';\n defaultValue?: string | string[];\n value?: string | string[];\n onValueChange?: (value: string | string[]) => void;\n children: ReactNode;\n className?: string;\n}\n\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(function Accordion(props, ref) {\n const { type, defaultValue, value, onValueChange, children, className, ...rest } = props;\n if (type === 'single') {\n return (\n <RxAccordion.Root\n ref={ref as React.Ref<HTMLDivElement>}\n type=\"single\"\n collapsible\n defaultValue={defaultValue as string | undefined}\n value={value as string | undefined}\n onValueChange={onValueChange as ((value: string) => void) | undefined}\n className={cx('v8-accordion', className)}\n {...rest}\n >\n {children}\n </RxAccordion.Root>\n );\n }\n return (\n <RxAccordion.Root\n ref={ref as React.Ref<HTMLDivElement>}\n type=\"multiple\"\n defaultValue={defaultValue as string[] | undefined}\n value={value as string[] | undefined}\n onValueChange={onValueChange as ((value: string[]) => void) | undefined}\n className={cx('v8-accordion', className)}\n {...rest}\n >\n {children}\n </RxAccordion.Root>\n );\n});\n\nexport interface AccordionItemProps {\n value: string;\n title: ReactNode;\n description?: ReactNode;\n children: ReactNode;\n disabled?: boolean;\n className?: string;\n}\n\nexport const AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(function AccordionItem(\n props,\n ref,\n) {\n const { value, title, description, children, disabled, className } = props;\n return (\n <RxAccordion.Item\n ref={ref}\n value={value}\n disabled={disabled}\n className={cx('v8-accordion__item', className)}\n style={{\n borderBottom: '1px solid var(--border)',\n }}\n >\n <RxAccordion.Header asChild>\n <h3 style={{ margin: 0 }}>\n <RxAccordion.Trigger\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 'var(--space-3)',\n padding: 'var(--space-4) 0',\n background: 'transparent',\n border: 0,\n cursor: disabled === true ? 'not-allowed' : 'pointer',\n fontFamily: 'inherit',\n fontSize: 'var(--fs-14)',\n fontWeight: 500,\n color: 'var(--fg)',\n textAlign: 'left',\n }}\n >\n <span style={{ flex: 1, minWidth: 0 }}>\n <span style={{ display: 'block' }}>{title}</span>\n {description !== undefined && (\n <span style={{ display: 'block', fontSize: 'var(--fs-13)', color: 'var(--fg-muted)', marginTop: 2 }}>\n {description}\n </span>\n )}\n </span>\n <ChevronDown\n size={16}\n aria-hidden=\"true\"\n className=\"v8-accordion__chevron\"\n style={{\n color: 'var(--fg-muted)',\n flexShrink: 0,\n transition: 'transform var(--motion-fast) var(--ease-out)',\n }}\n />\n <style>{`\n .v8-accordion__item button[data-state='open'] .v8-accordion__chevron { transform: rotate(180deg); }\n `}</style>\n </RxAccordion.Trigger>\n </h3>\n </RxAccordion.Header>\n <RxAccordion.Content\n style={{\n overflow: 'hidden',\n fontSize: 'var(--fs-13)',\n color: 'var(--fg-muted)',\n }}\n >\n <div style={{ paddingBottom: 'var(--space-4)' }}>{children}</div>\n </RxAccordion.Content>\n </RxAccordion.Item>\n );\n});","import { forwardRef, type HTMLAttributes, type ReactNode, type ThHTMLAttributes, type TdHTMLAttributes } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Table — semantic data table primitives.\n *\n * This is a thin wrapper around native <table> elements, providing the\n * v8 token-driven visuals. For sorting / pagination / virtualization,\n * wrap with TanStack Table at the call site (Sprint S3 follow-up).\n */\n\nexport interface TableProps extends HTMLAttributes<HTMLTableElement> {\n children: ReactNode;\n /** Compact row height (default comfortable = 36px). */\n density?: 'comfortable' | 'compact';\n}\n\nexport const Table = forwardRef<HTMLTableElement, TableProps>(function Table(props, ref) {\n const { children, density = 'comfortable', className, ...rest } = props;\n return (\n <div\n style={{\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius-lg)',\n overflow: 'hidden',\n background: 'var(--surface-1)',\n }}\n >\n <table\n ref={ref}\n className={cx('v8-table', `v8-table--${density}`, className)}\n style={{\n width: '100%',\n borderCollapse: 'separate',\n borderSpacing: 0,\n fontSize: 'var(--fs-13)',\n color: 'var(--fg)',\n }}\n {...rest}\n >\n {children}\n </table>\n </div>\n );\n});\n\nexport interface TableHeadProps extends HTMLAttributes<HTMLTableSectionElement> {\n children: ReactNode;\n}\n\nexport const TableHead = forwardRef<HTMLTableSectionElement, TableHeadProps>(function TableHead(\n props,\n ref,\n) {\n const { children, ...rest } = props;\n return (\n <thead\n ref={ref}\n style={{\n background: 'var(--surface-0)',\n borderBottom: '1px solid var(--border)',\n textAlign: 'left',\n fontSize: 'var(--fs-12)',\n fontWeight: 600,\n color: 'var(--fg-muted)',\n textTransform: 'uppercase',\n letterSpacing: 'var(--tracking-wide)',\n }}\n {...rest}\n >\n {children}\n </thead>\n );\n});\n\nexport interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {\n children: ReactNode;\n}\n\nexport const TableBody = forwardRef<HTMLTableSectionElement, TableBodyProps>(function TableBody(\n props,\n ref,\n) {\n return <tbody ref={ref} {...props} />;\n});\n\nexport interface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {\n /** Highlight the row (e.g. selected). */\n selected?: boolean;\n /** Stripe the row background. */\n striped?: boolean;\n}\n\nexport const TableRow = forwardRef<HTMLTableRowElement, TableRowProps>(function TableRow(\n props,\n ref,\n) {\n const { selected, striped, className, style, ...rest } = props;\n return (\n <tr\n ref={ref}\n className={cx('v8-table__row', selected && 'is-selected', className)}\n style={{\n background: selected === true\n ? 'var(--accent-soft)'\n : striped === true\n ? 'var(--surface-0)'\n : 'transparent',\n borderBottom: '1px solid var(--border)',\n transition: 'background var(--motion-fast) var(--ease-out)',\n ...style,\n }}\n {...rest}\n />\n );\n});\n\nexport interface TableHeaderProps extends ThHTMLAttributes<HTMLTableCellElement> {\n /** Right-align numeric columns. */\n align?: 'left' | 'right' | 'center';\n /** Width constraint. */\n width?: number | string;\n}\n\nexport const TableHeader = forwardRef<HTMLTableCellElement, TableHeaderProps>(function TableHeader(\n props,\n ref,\n) {\n const { align = 'left', width, className, style, ...rest } = props;\n return (\n <th\n ref={ref}\n className={cx('v8-table__th', className)}\n style={{\n padding: 'var(--space-2) var(--space-3)',\n textAlign: align,\n width,\n ...style,\n }}\n {...rest}\n />\n );\n});\n\nexport interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n align?: 'left' | 'right' | 'center';\n /** Use the density-row-h height token (default true). */\n rowHeight?: boolean;\n}\n\nexport const TableCell = forwardRef<HTMLTableCellElement, TableCellProps>(function TableCell(\n props,\n ref,\n) {\n const { align = 'left', rowHeight = true, className, style, ...rest } = props;\n return (\n <td\n ref={ref}\n className={cx('v8-table__td', className)}\n style={{\n padding: 'var(--space-2) var(--space-3)',\n textAlign: align,\n height: rowHeight === true ? 'var(--density-row-h)' : undefined,\n verticalAlign: 'middle',\n ...style,\n }}\n {...rest}\n />\n );\n});","\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled || event.target !== event.currentTarget) {\n return;\n }\n if ([\" \", \"Enter\"].includes(event.key)) {\n context.onValueChange(value);\n }\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport * as RxTabs from '@radix-ui/react-tabs';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Tabs — content switcher with keyboard navigation.\n *\n * Built on Radix Tabs (left/right arrow keys, focus management).\n *\n * Variants:\n * - underline (default): 1px bottom border active indicator.\n * - pill: rounded filled active state.\n */\n\nexport type TabsVariant = 'underline' | 'pill';\n\nexport interface TabsProps extends Omit<ComponentPropsWithoutRef<typeof RxTabs.Root>, 'children'> {\n variant?: TabsVariant;\n children: ReactNode;\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(props, ref) {\n const { variant = 'underline', className, ...rest } = props;\n return (\n <RxTabs.Root\n ref={ref}\n className={cx('v8-tabs', `v8-tabs--${variant}`, className)}\n {...rest}\n />\n );\n});\n\nexport interface TabsListProps extends ComponentPropsWithoutRef<typeof RxTabs.List> {\n variant?: TabsVariant;\n children: ReactNode;\n}\n\nexport const TabsList = forwardRef<HTMLDivElement, TabsListProps>(function TabsList(props, ref) {\n const { variant = 'underline', className, style, ...rest } = props;\n return (\n <RxTabs.List\n ref={ref}\n className={cx('v8-tabs__list', className)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: variant === 'pill' ? 4 : 0,\n borderBottom: variant === 'underline' ? '1px solid var(--border)' : 'none',\n padding: variant === 'pill' ? 4 : 0,\n background: variant === 'pill' ? 'var(--surface-1)' : 'transparent',\n borderRadius: variant === 'pill' ? 'var(--radius)' : 0,\n border: variant === 'pill' ? '1px solid var(--border)' : undefined,\n ...style,\n }}\n {...rest}\n />\n );\n});\n\nexport interface TabsTriggerProps extends ComponentPropsWithoutRef<typeof RxTabs.Trigger> {\n variant?: TabsVariant;\n children: ReactNode;\n}\n\nexport const TabsTrigger = forwardRef<HTMLButtonElement, TabsTriggerProps>(function TabsTrigger(\n props,\n ref,\n) {\n const { variant = 'underline', className, style, ...rest } = props;\n return (\n <RxTabs.Trigger\n ref={ref}\n className={cx('v8-tabs__trigger', className)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n height: variant === 'pill' ? 28 : 32,\n padding: variant === 'pill' ? '0 var(--space-3)' : '0 var(--space-3)',\n background: 'transparent',\n color: 'var(--fg-muted)',\n border: 0,\n borderBottom: variant === 'underline' ? '2px solid transparent' : 'none',\n borderRadius: variant === 'pill' ? 'var(--radius-sm)' : 0,\n marginBottom: variant === 'underline' ? -1 : 0,\n fontSize: 'var(--fs-13)',\n fontWeight: 500,\n cursor: 'pointer',\n fontFamily: 'inherit',\n transition: 'color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out)',\n ...style,\n }}\n {...rest}\n >\n {props.children}\n <style>{`\n .v8-tabs__trigger[data-state='active'] {\n color: var(--fg);\n }\n .v8-tabs--underline .v8-tabs__trigger[data-state='active'] {\n border-bottom-color: var(--accent);\n }\n .v8-tabs--pill .v8-tabs__trigger[data-state='active'] {\n background: var(--surface-2);\n color: var(--fg);\n }\n .v8-tabs__trigger:hover:not([data-state='active']) {\n color: var(--fg);\n }\n `}</style>\n </RxTabs.Trigger>\n );\n});\n\nexport const TabsContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof RxTabs.Content>\n>(function TabsContent(props, ref) {\n const { className, ...rest } = props;\n return (\n <RxTabs.Content\n ref={ref}\n className={cx('v8-tabs__content', className)}\n style={{ paddingTop: 'var(--space-4)' }}\n {...rest}\n />\n );\n});","import { forwardRef, type AnchorHTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * NavLink — semantic navigation link with active state.\n *\n * Use for sidebar nav items and inline breadcrumb-style navigation.\n * For command palette actions use CommandPalette (cmdk).\n *\n * Active state is controlled via `aria-current=\"page\"` from the parent\n * (i.e. the router decides). The component only styles what's announced.\n */\nexport interface NavLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n href: string;\n children: ReactNode;\n /** Show left-aligned accent bar when active (sidebar pattern). */\n showActiveBar?: boolean;\n /** Left-aligned icon (Lucide icon). */\n leading?: ReactNode;\n}\n\nexport const NavLink = forwardRef<HTMLAnchorElement, NavLinkProps>(function NavLink(props, ref) {\n const { href, children, showActiveBar, leading, className, style, ...rest } = props;\n return (\n <a\n ref={ref}\n href={href}\n className={cx('v8-nav-link', className)}\n style={{\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n padding: '0 var(--space-3)',\n height: 28,\n borderRadius: 'var(--radius-sm)',\n color: 'var(--fg-muted)',\n fontSize: 'var(--fs-13)',\n fontWeight: 500,\n textDecoration: 'none',\n transition: 'background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out)',\n ...style,\n }}\n {...rest}\n >\n {showActiveBar === true && (\n <span\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n left: 0,\n top: 4,\n bottom: 4,\n width: 2,\n borderRadius: 'var(--radius-pill)',\n background: 'transparent',\n transition: 'background var(--motion-fast) var(--ease-out)',\n }}\n data-nav-active-bar=\"true\"\n />\n )}\n {leading !== undefined && (\n <span style={{ width: 14, display: 'inline-flex', color: 'inherit' }}>{leading}</span>\n )}\n <span style={{ flex: 1, minWidth: 0 }}>{children}</span>\n <style>{`\n .v8-nav-link:hover {\n background: var(--surface-1);\n color: var(--fg);\n }\n .v8-nav-link[aria-current='page'] {\n background: var(--surface-1);\n color: var(--fg);\n }\n .v8-nav-link[aria-current='page'] [data-nav-active-bar='true'] {\n background: var(--accent);\n }\n `}</style>\n </a>\n );\n});","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Pagination — numbered pages with prev/next/first/last controls.\n *\n * Use cases: Tasks list, Activity feed, Memory browser.\n *\n * For infinite-scroll lists use ScrollArea + sentinel instead.\n */\nexport interface PaginationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n page: number;\n totalPages: number;\n onChange: (page: number) => void;\n /** Show first/last buttons (default true). */\n showEdges?: boolean;\n /** Sibling count around current page (default 1). */\n siblingCount?: number;\n}\n\nfunction buildPages(current: number, total: number, siblings: number): (number | 'ellipsis')[] {\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n const left = Math.max(2, current - siblings);\n const right = Math.min(total - 1, current + siblings);\n const pages: (number | 'ellipsis')[] = [1];\n if (left > 2) pages.push('ellipsis');\n for (let i = left; i <= right; i++) pages.push(i);\n if (right < total - 1) pages.push('ellipsis');\n pages.push(total);\n return pages;\n}\n\nexport const Pagination = forwardRef<HTMLDivElement, PaginationProps>(function Pagination(\n props,\n ref,\n) {\n const {\n page,\n totalPages,\n onChange,\n showEdges = true,\n siblingCount = 1,\n className,\n style,\n ...rest\n } = props;\n\n const pages = buildPages(page, totalPages, siblingCount);\n\n const go = (next: number) => {\n if (next >= 1 && next <= totalPages && next !== page) onChange(next);\n };\n\n return (\n <nav\n ref={ref}\n className={cx('v8-pagination', className)}\n aria-label=\"Pagination\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 2,\n ...style,\n }}\n {...rest}\n >\n {showEdges === true && (\n <PageButton aria-label=\"First page\" disabled={page === 1} onClick={() => go(1)}>\n <ChevronsLeft size={14} aria-hidden=\"true\" />\n </PageButton>\n )}\n <PageButton aria-label=\"Previous page\" disabled={page === 1} onClick={() => go(page - 1)}>\n <ChevronLeft size={14} aria-hidden=\"true\" />\n </PageButton>\n {pages.map((p, i) =>\n p === 'ellipsis' ? (\n <span\n key={`e-${i}`}\n style={{ padding: '0 6px', color: 'var(--fg-subtle)', fontSize: 'var(--fs-13)' }}\n aria-hidden=\"true\"\n >\n …\n </span>\n ) : (\n <PageButton\n key={p}\n aria-current={p === page ? 'page' : undefined}\n aria-label={`Page ${p}`}\n selected={p === page}\n onClick={() => go(p)}\n >\n {p}\n </PageButton>\n ),\n )}\n <PageButton\n aria-label=\"Next page\"\n disabled={page === totalPages}\n onClick={() => go(page + 1)}\n >\n <ChevronRight size={14} aria-hidden=\"true\" />\n </PageButton>\n {showEdges === true && (\n <PageButton\n aria-label=\"Last page\"\n disabled={page === totalPages}\n onClick={() => go(totalPages)}\n >\n <ChevronsRight size={14} aria-hidden=\"true\" />\n </PageButton>\n )}\n </nav>\n );\n});\n\ninterface PageButtonProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'children'> {\n selected?: boolean;\n disabled?: boolean;\n children: ReactNode;\n 'aria-label'?: string;\n 'aria-current'?: 'page';\n}\n\nfunction PageButton(props: PageButtonProps) {\n const { selected, disabled, children, className, style, ...rest } = props;\n return (\n <button\n type=\"button\"\n disabled={disabled}\n className={cx('v8-pagination__btn', selected === true && 'is-selected', className)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: 28,\n height: 28,\n padding: '0 8px',\n background: selected === true ? 'var(--accent-soft)' : 'transparent',\n color: selected === true ? 'var(--accent)' : 'var(--fg-muted)',\n border: 0,\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n fontWeight: selected === true ? 600 : 500,\n cursor: disabled === true ? 'not-allowed' : 'pointer',\n opacity: disabled === true ? 0.45 : 1,\n fontFamily: 'inherit',\n transition: 'background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out)',\n ...style,\n }}\n {...rest}\n >\n {children}\n <style>{`\n .v8-pagination__btn:hover:not(:disabled):not(.is-selected) {\n background: var(--surface-1);\n color: var(--fg);\n }\n `}</style>\n </button>\n );\n}","import { forwardRef, type OlHTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * AgentActivity — per-agent feed of recent actions (run started, tool\n * called, message received, etc).\n *\n * Used inside the Agent detail view.\n */\n\nexport interface AgentActivityItem {\n id: string;\n /** Icon (lucide). */\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n meta?: ReactNode;\n tone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger';\n}\n\nexport interface AgentActivityProps extends OlHTMLAttributes<HTMLOListElement> {\n items: readonly AgentActivityItem[];\n}\n\nconst TONE_BG = {\n neutral: 'var(--fg-subtle)',\n info: 'var(--info)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n danger: 'var(--danger)',\n} as const;\n\nexport const AgentActivity = forwardRef<HTMLOListElement, AgentActivityProps>(function AgentActivity(\n props,\n ref,\n) {\n const { items, className, ...rest } = props;\n return (\n <ol\n ref={ref}\n className={cx('v8-agent-activity', className)}\n style={{\n listStyle: 'none',\n margin: 0,\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: 'var(--space-2)',\n }}\n {...rest}\n >\n {items.map((item) => {\n const tone = item.tone ?? 'neutral';\n return (\n <li\n key={item.id}\n style={{\n display: 'flex',\n alignItems: 'flex-start',\n gap: 'var(--space-3)',\n padding: 'var(--space-3)',\n background: 'var(--surface-0)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n }}\n >\n <span\n aria-hidden=\"true\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 22,\n height: 22,\n borderRadius: 'var(--radius-sm)',\n background: `color-mix(in oklch, ${TONE_BG[tone]} 14%, transparent)`,\n color: TONE_BG[tone],\n flexShrink: 0,\n }}\n >\n {item.icon}\n </span>\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 'var(--space-2)' }}>\n <div style={{ fontSize: 'var(--fs-13)', fontWeight: 500, color: 'var(--fg)' }}>{item.title}</div>\n {item.meta !== undefined && (\n <div style={{ fontSize: 'var(--fs-12)', color: 'var(--fg-subtle)', flexShrink: 0 }}>{item.meta}</div>\n )}\n </div>\n {item.description !== undefined && (\n <div style={{ fontSize: 'var(--fs-12)', color: 'var(--fg-muted)', marginTop: 2 }}>\n {item.description}\n </div>\n )}\n </div>\n </li>\n );\n })}\n </ol>\n );\n});"],"names":["ChevronLeft","createLucideIcon","Ellipsis","Paperclip","Repeat","User","KanbanBoardContext","createContext","KanbanBoard","props","columns","onCardMove","children","className","selection","onSelectionChange","selectionMode","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","setActiveId","useState","handleDragEnd","event","active","over","cardId","targetId","toColumn","_a","c","fromColumn","jsx","DndContext","closestCorners","e","cx","ACCENT_FG","KanbanColumn","forwardRef","ref","column","onAdd","onOverflow","exceedsWip","style","rest","setNodeRef","isOver","useDroppable","jsxs","MoreHorizontal","Plus","TONE_BG","KanbanProgress","value","label","caption","tone","layout","clamped","filled","TONE_FG","KanbanCardBadges","badges","max","visible","overflow","b","PRIORITY_FG","PRIORITY_LABEL","KanbanCard","card","variant","isDragging","dragHandleProps","selected","indeterminate","showSelection","showCheckbox","derivedBadges","UserIcon","t","Check","Calendar","MessageSquare","GitBranch","useKanbanCardSortable","id","sortable","useSortable","CSS","as","full","inline","noVertical","Tag","computedStyle","SIZE","VARIANT_BG","VARIANT_FG","VARIANT_BORDER","VARIANT_ACTIVE_BG","IconButton","size","asChild","disabled","type","Comp","Slot","dim","CHECKBOX_NAME","createCheckboxContext","createContextScope","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","__scopeCheckbox","checkedProp","defaultChecked","form","name","onCheckedChange","required","internal_do_not_use_render","checked","setChecked","useControllableState","control","setControl","React.useState","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","React.useRef","isFormControl","context","isIndeterminate","isFunction","TRIGGER_NAME","CheckboxTrigger","React.forwardRef","onKeyDown","onClick","checkboxProps","forwardedRef","composedRefs","useComposedRefs","initialCheckedStateRef","React.useEffect","reset","Primitive","getState","composeEventHandlers","prevChecked","Checkbox","Fragment","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","Presence","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","input","inputProto","bubbles","defaultCheckedRef","RxCheckbox.Root","RxCheckbox.Indicator","Minus","NAME","Toggle","pressedProp","defaultPressed","onPressedChange","buttonProps","pressed","setPressed","Root","RxToggle.Root","_isHydrated","useIsHydrated","isHydrated","setIsHydrated","useReactSyncExternalStore","React2","subscribe","useIsHydratedModern","useIsHydrated2","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","useCollection","createCollectionScope","createCollection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","direction","useDirection","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","useCallbackRef","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","node","React.useCallback","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","itemProps","autoId","useId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","useLayoutEffect","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","key","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","_","index","Item","TOGGLE_GROUP_NAME","createToggleGroupContext","useRovingFocusGroupScope","ToggleGroup","toggleGroupProps","singleProps","ToggleGroupImplSingle","multipleProps","ToggleGroupImplMultiple","ToggleGroupValueProvider","useToggleGroupValueContext","valueProp","defaultValue","onValueChange","toggleGroupSingleProps","setValue","React.useMemo","ToggleGroupImpl","toggleGroupMultipleProps","handleButtonActivate","itemValue","prevValue","handleButtonDeactivate","value2","ToggleGroupContext","useToggleGroupContext","__scopeToggleGroup","rovingFocus","rovingFocusGroupScope","commonProps","RovingFocusGroup.Root","ToggleGroupItem","valueContext","RovingFocusGroup.Item","ToggleGroupItemImpl","typeProps","RxToggleGroup.Root","RxToggleGroup.Item","RADIO_NAME","createRadioContext","createRadioScope","RadioProviderImpl","useRadioContext","RadioProvider","__scopeRadio","onCheck","RadioTrigger","radioProps","Radio","RadioBubbleInput","RadioIndicator","ARROW_KEYS","RADIO_GROUP_NAME","createRadioGroupContext","createContextScope2","useRadioScope","RadioGroupProvider","useRadioGroupContext","RadioGroup","React2.forwardRef","__scopeRadioGroup","React2.useState","useComposedRefs2","initialValueRef","React2.useRef","React2.useEffect","associatedForm","jsx2","Primitive2","ITEM_PROVIDER_NAME","ITEM_TRIGGER_NAME","ITEM_BUBBLE_INPUT_NAME","RadioGroupItemProvider","radioScope","isDisabled","RadioGroupItemTrigger","triggerProps","isArrowKeyPressedRef","handleKeyDown","handleKeyUp","composeEventHandlers2","RadioGroupItem","jsxs2","Fragment2","RadioGroupItemBubbleInput","bubbleProps","INDICATOR_NAME2","RadioGroupIndicator","RxRadio.Root","RxRadio.Item","RxRadio.Indicator","hint","error","hintId","errorId","createTooltipContext","createPopperScope","usePopperScope","PROVIDER_NAME","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","__scopeTooltip","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentId","openTimerRef","disableHoverableContent","delayDuration","wasOpenDelayedRef","open","setOpen","open2","stateAttribute","handleOpen","handleClose","handleDelayedOpen","PopperPrimitive.Root","TooltipTrigger","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","PopperPrimitive.Anchor","PORTAL_NAME","PortalProvider","usePortalContext","TooltipPortal","container","PortalPrimitive","CONTENT_NAME","TooltipContent","portalContext","side","contentProps","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","onClose","content","onPointerInTransitChange","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","exitSide","getExitSideFromRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","target","pointerPosition","hasEnteredTarget","isPointerOutsideGraceArea","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","Slottable","createSlottable","ariaLabel","onEscapeKeyDown","onPointerDownOutside","handleScroll","DismissableLayer","PopperPrimitive.Content","VisuallyHiddenPrimitive.Root","ARROW_NAME","TooltipArrow","arrowProps","PopperPrimitive.Arrow","point","rect","top","bottom","right","left","padding","polygon","x","y","inside","i","j","ii","jj","xi","yi","xj","yj","points","newPoints","a","getHullPresorted","upperHull","p","q","r","lowerHull","Root3","Trigger","Portal","Content2","Arrow2","align","shortcut","RxTooltip.Root","RxTooltip.Trigger","RxTooltip.Portal","RxTooltip.Content","RxTooltip.Arrow","jt","n","ee","ae","oe","se","te","Yt","E","Ot","Ft","$t","bt","yt","S","u","f","g","w","re","ie","T","F","D","v","ne","le","ce","de","wt","tt","pe","me","ge","Wt","he","be","ye","we","M","xe","ve","Dt","Pt","Nt","Bt","Ct","kt","It","Mt","Ht","At","Lt","et","ut","ft","l","ot","at","X","st","pt","rt","B","s","P","nt","it","Y","C","o","lt","J","W","H","A","mt","L","z","ct","d","h","R","O","G","k","Vt","Ut","N","V","Kt","Xt","dt","Jt","Tt","gt","U","St","K","Gt","Qt","Rt","m","Et","qt","ht","$","Zt","Q","Z","I","zt","xt","_t","Te","fe","vt","SELECTION_KEYS","FIRST_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","SUB_CLOSE_KEYS","MENU_NAME","createMenuContext","createMenuScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","ANCHOR_NAME","MenuAnchor","__scopeMenu","anchorProps","MenuPortal","MenuContentProvider","useMenuContentContext","MenuContent","rootContext","MenuRootContentModal","MenuRootContentNonModal","hideOthers","MenuContentImpl","createSlot","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onFocusOutside","onInteractOutside","onDismiss","disableOutsideScroll","currentItemId","setCurrentItemId","contentRef","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","RemoveScroll","React.Fragment","scrollLockWrapperProps","handleTypeaheadSearch","search","currentMatch","values","nextMatch","getNextMatch","newItem","_b","updateSearch","useFocusGuards","isPointerMovingToSubmenu","isPointerInGraceArea","intent","FocusScope","getOpenState","isKeyDownInside","isModifierKey","isCharacterKey","whenMouse","pointerXHasChanged","newDir","MenuGroup","LABEL_NAME","MenuLabel","labelProps","ITEM_SELECT","MenuItem","onSelect","contentContext","handleSelect","menuItem","itemSelectEvent","dispatchDiscreteCustomEvent","MenuItemImpl","textValue","isFocused","setIsFocused","textContent","setTextContent","CHECKBOX_ITEM_NAME","MenuCheckboxItem","checkboxItemProps","ItemIndicatorProvider","getCheckedState","MenuRadioGroup","handleValueChange","RADIO_ITEM_NAME","MenuRadioItem","radioItemProps","ITEM_INDICATOR_NAME","useItemIndicatorContext","MenuItemIndicator","itemIndicatorProps","indicatorContext","SEPARATOR_NAME","MenuSeparator","separatorProps","MenuArrow","SUB_NAME","MenuSubProvider","useMenuSubContext","SUB_TRIGGER_NAME","MenuSubTrigger","subContext","onPointerGraceIntentChange","scope","clearOpenTimer","pointerGraceTimer","contentRect","rightSide","bleed","contentNearEdge","contentFarEdge","SUB_CONTENT_NAME","MenuSubContent","subContentProps","isCloseKey","normalizedSearch","char","currentMatchIndex","wrappedValues","area","cursorPos","handler","Anchor2","Group","Label","Item2","CheckboxItem","RadioItem","ItemIndicator","Separator","SubTrigger","SubContent","DROPDOWN_MENU_NAME","createDropdownMenuContext","useMenuScope","DropdownMenuProvider","useDropdownMenuContext","DropdownMenuTrigger","__scopeDropdownMenu","menuScope","MenuPrimitive.Anchor","DropdownMenuPortal","portalProps","MenuPrimitive.Portal","DropdownMenuContent","hasInteractedOutsideRef","MenuPrimitive.Content","originalEvent","ctrlLeftClick","isRightClick","DropdownMenuGroup","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuCheckboxItem","MenuPrimitive.CheckboxItem","DropdownMenuRadioGroup","radioGroupProps","MenuPrimitive.RadioGroup","DropdownMenuRadioItem","MenuPrimitive.RadioItem","DropdownMenuItemIndicator","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","DropdownMenuArrow","MenuPrimitive.Arrow","DropdownMenuSubTrigger","subTriggerProps","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent","Portal2","Label2","CheckboxItem2","ItemIndicator2","Separator2","SubTrigger2","SubContent2","sideOffset","RxMenu.Portal","RxMenu.Content","danger","leftIcon","RxMenu.Item","RxMenu.CheckboxItem","RxMenu.ItemIndicator","RxMenu.Label","RxMenu.Separator","RxMenu.SubTrigger","ChevronRight","RxMenu.SubContent","CONTEXT_MENU_NAME","createContextMenuContext","ContextMenuProvider","useContextMenuContext","ContextMenuTrigger","__scopeContextMenu","setPoint","virtualRef","longPressTimerRef","clearLongPress","whenTouchOrPen","ContextMenuPortal","ContextMenuContent","ContextMenuGroup","ContextMenuLabel","ContextMenuItem","ContextMenuCheckboxItem","ContextMenuRadioGroup","ContextMenuRadioItem","ContextMenuItemIndicator","ContextMenuSeparator","ContextMenuArrow","ContextMenuSubTrigger","triggerItemProps","ContextMenuSubContent","RxContextMenu.Trigger","RxContextMenu.Portal","RxContextMenu.Content","RxContextMenu.Item","RxContextMenu.Separator","RxContextMenu.Label","showValue","barHeight","cap","pct","TONE_RING","idx","isLast","COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","CollapsibleProvider","useCollapsibleContext","Collapsible","__scopeCollapsible","collapsibleProps","prevOpen","CollapsibleTrigger","CollapsibleContent","present","CollapsibleContentImpl","isPresent","setIsPresent","heightRef","height","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","rAF","Content","ACCORDION_NAME","ACCORDION_KEYS","createAccordionContext","useCollapsibleScope","Accordion","accordionProps","AccordionImplMultiple","AccordionImplSingle","AccordionValueProvider","useAccordionValueContext","AccordionCollapsibleProvider","useAccordionCollapsibleContext","collapsible","accordionSingleProps","AccordionImpl","accordionMultipleProps","handleItemOpen","handleItemClose","AccordionImplProvider","useAccordionContext","__scopeAccordion","accordionRef","isDirectionLTR","triggerCollection","triggerIndex","triggerCount","nextIndex","homeIndex","endIndex","moveNext","movePrev","clampedIndex","AccordionItemProvider","useAccordionItemContext","AccordionItem","accordionItemProps","accordionContext","collapsibleScope","triggerId","CollapsiblePrimitive.Root","HEADER_NAME","AccordionHeader","headerProps","itemContext","AccordionTrigger","collapsibleContext","CollapsiblePrimitive.Trigger","AccordionContent","CollapsiblePrimitive.Content","Root2","Header","Trigger2","RxAccordion.Root","title","description","RxAccordion.Item","RxAccordion.Header","RxAccordion.Trigger","ChevronDown","RxAccordion.Content","density","striped","rowHeight","TABS_NAME","createTabsContext","TabsProvider","useTabsContext","Tabs","__scopeTabs","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","TabsTrigger","makeTriggerId","makeContentId","isSelected","isAutomaticActivation","TabsContent","baseId","List","RxTabs.Root","RxTabs.List","RxTabs.Trigger","RxTabs.Content","href","showActiveBar","leading","buildPages","current","total","siblings","pages","page","totalPages","onChange","showEdges","siblingCount","go","next","PageButton","ChevronsLeft","ChevronsRight"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,12,14,16,17,18,20,24,26,27,28,30,34,35,38]}