@polderlabs/bizar 9.0.0 → 10.0.5

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 (1293) hide show
  1. package/bizar-dash/BROWSER_VERIFICATION.md +190 -0
  2. package/bizar-dash/CHANGELOG.md +452 -0
  3. package/bizar-dash/CONTROL_SURFACES.md +157 -0
  4. package/bizar-dash/SETTINGS_AUDIT.md +225 -0
  5. package/bizar-dash/dist/assets/ActivityFeed-DbZT1TnN.js +11 -0
  6. package/bizar-dash/dist/assets/ActivityFeed-DbZT1TnN.js.map +1 -0
  7. package/bizar-dash/dist/assets/ActivityView-DfrBu-ED.js +7 -0
  8. package/bizar-dash/dist/assets/ActivityView-DfrBu-ED.js.map +1 -0
  9. package/bizar-dash/dist/assets/AdminView-DSbzp67e.js +11 -0
  10. package/bizar-dash/dist/assets/AdminView-DSbzp67e.js.map +1 -0
  11. package/bizar-dash/dist/assets/AgentsView-BaR-e4UO.js +13 -0
  12. package/bizar-dash/dist/assets/AgentsView-BaR-e4UO.js.map +1 -0
  13. package/bizar-dash/dist/assets/ArtifactsView-Dddh5NWn.js +6 -0
  14. package/bizar-dash/dist/assets/ArtifactsView-Dddh5NWn.js.map +1 -0
  15. package/bizar-dash/dist/assets/AuthView-CcTxahxz.js +16 -0
  16. package/bizar-dash/dist/assets/AuthView-CcTxahxz.js.map +1 -0
  17. package/bizar-dash/dist/assets/BackgroundJobsView-DxiSs69H.js +1 -0
  18. package/bizar-dash/dist/assets/BackgroundJobsView-DxiSs69H.js.map +1 -0
  19. package/bizar-dash/dist/assets/BackupView-BPS8REBD.js +1 -0
  20. package/bizar-dash/dist/assets/BackupView-BPS8REBD.js.map +1 -0
  21. package/bizar-dash/dist/assets/Banner-Bx1hIUM9.js +1 -0
  22. package/bizar-dash/dist/assets/Banner-Bx1hIUM9.js.map +1 -0
  23. package/bizar-dash/dist/assets/Card-ZAdgpn3-.js +1 -0
  24. package/bizar-dash/dist/assets/Card-ZAdgpn3-.js.map +1 -0
  25. package/bizar-dash/dist/assets/ChatView-CM_mrwom.js +9 -0
  26. package/bizar-dash/dist/assets/ChatView-CM_mrwom.js.map +1 -0
  27. package/bizar-dash/dist/assets/Chip-k5K9DYAf.js +1 -0
  28. package/bizar-dash/dist/assets/Chip-k5K9DYAf.js.map +1 -0
  29. package/bizar-dash/dist/assets/ClaudeSessionsView-Dq40JNVC.js +1 -0
  30. package/bizar-dash/dist/assets/ClaudeSessionsView-Dq40JNVC.js.map +1 -0
  31. package/bizar-dash/dist/assets/ClipboardView-B-TwPtaC.js +1 -0
  32. package/bizar-dash/dist/assets/ClipboardView-B-TwPtaC.js.map +1 -0
  33. package/bizar-dash/dist/assets/ConfigView-C_eZMscY.js +1 -0
  34. package/bizar-dash/dist/assets/ConfigView-C_eZMscY.js.map +1 -0
  35. package/bizar-dash/dist/assets/DiagnosticsView-Cex6UdD8.js +2 -0
  36. package/bizar-dash/dist/assets/DiagnosticsView-Cex6UdD8.js.map +1 -0
  37. package/bizar-dash/dist/assets/DialogsView-DTMRJd0K.js +6 -0
  38. package/bizar-dash/dist/assets/DialogsView-DTMRJd0K.js.map +1 -0
  39. package/bizar-dash/dist/assets/DoctorView-BTCUpzXT.js +6 -0
  40. package/bizar-dash/dist/assets/DoctorView-BTCUpzXT.js.map +1 -0
  41. package/bizar-dash/dist/assets/EmptyState-DQzo47a_.js +1 -0
  42. package/bizar-dash/dist/assets/EmptyState-DQzo47a_.js.map +1 -0
  43. package/bizar-dash/dist/assets/EnvVarsView-Dnap-pmQ.js +8 -0
  44. package/bizar-dash/dist/assets/EnvVarsView-Dnap-pmQ.js.map +1 -0
  45. package/bizar-dash/dist/assets/ErrorState-DZYn3VL_.js +6 -0
  46. package/bizar-dash/dist/assets/ErrorState-DZYn3VL_.js.map +1 -0
  47. package/bizar-dash/dist/assets/EvalView-B0YgoXpm.js +1 -0
  48. package/bizar-dash/dist/assets/EvalView-B0YgoXpm.js.map +1 -0
  49. package/bizar-dash/dist/assets/GoalsView-YEbgpx2i.js +6 -0
  50. package/bizar-dash/dist/assets/GoalsView-YEbgpx2i.js.map +1 -0
  51. package/bizar-dash/dist/assets/Grid-CN6IV8NB.js +1 -0
  52. package/bizar-dash/dist/assets/Grid-CN6IV8NB.js.map +1 -0
  53. package/bizar-dash/dist/assets/HeadroomView-C_-l8ojG.js +11 -0
  54. package/bizar-dash/dist/assets/HeadroomView-C_-l8ojG.js.map +1 -0
  55. package/bizar-dash/dist/assets/HistoryView-BICvR96Y.js +1 -0
  56. package/bizar-dash/dist/assets/HistoryView-BICvR96Y.js.map +1 -0
  57. package/bizar-dash/dist/assets/Input-BRHotaQu.js +1 -0
  58. package/bizar-dash/dist/assets/Input-BRHotaQu.js.map +1 -0
  59. package/bizar-dash/dist/assets/KanbanCard-BvkJ9Xwg.js +11 -0
  60. package/bizar-dash/dist/assets/KanbanCard-BvkJ9Xwg.js.map +1 -0
  61. package/bizar-dash/dist/assets/LibrariesView-BXjfXc-o.js +52 -0
  62. package/bizar-dash/dist/assets/LibrariesView-BXjfXc-o.js.map +1 -0
  63. package/bizar-dash/dist/assets/LightRAGView-DKfQd0lo.js +6 -0
  64. package/bizar-dash/dist/assets/LightRAGView-DKfQd0lo.js.map +1 -0
  65. package/bizar-dash/dist/assets/ListHeader-DRqP1u_I.js +1 -0
  66. package/bizar-dash/dist/assets/ListHeader-DRqP1u_I.js.map +1 -0
  67. package/bizar-dash/dist/assets/MemoryView-DouzHGXp.js +8 -0
  68. package/bizar-dash/dist/assets/MemoryView-DouzHGXp.js.map +1 -0
  69. package/bizar-dash/dist/assets/MessageBubble-CIapZ4YY.js +29 -0
  70. package/bizar-dash/dist/assets/MessageBubble-CIapZ4YY.js.map +1 -0
  71. package/bizar-dash/dist/assets/MiscView-BqxBRW9r.js +1 -0
  72. package/bizar-dash/dist/assets/MiscView-BqxBRW9r.js.map +1 -0
  73. package/bizar-dash/dist/assets/ModsView-B9apzm7l.js +6 -0
  74. package/bizar-dash/dist/assets/ModsView-B9apzm7l.js.map +1 -0
  75. package/bizar-dash/dist/assets/NotificationsView-O1BrGRRZ.js +6 -0
  76. package/bizar-dash/dist/assets/NotificationsView-O1BrGRRZ.js.map +1 -0
  77. package/bizar-dash/dist/assets/ObsidianView-0_Nc0IwJ.js +1 -0
  78. package/bizar-dash/dist/assets/ObsidianView-0_Nc0IwJ.js.map +1 -0
  79. package/bizar-dash/dist/assets/OverviewView-D6WmCxyc.js +1 -0
  80. package/bizar-dash/dist/assets/OverviewView-D6WmCxyc.js.map +1 -0
  81. package/bizar-dash/dist/assets/ProgressBar-BXqAmiA8.js +1 -0
  82. package/bizar-dash/dist/assets/ProgressBar-BXqAmiA8.js.map +1 -0
  83. package/bizar-dash/dist/assets/ProjectsView-BbHq_OF3.js +11 -0
  84. package/bizar-dash/dist/assets/ProjectsView-BbHq_OF3.js.map +1 -0
  85. package/bizar-dash/dist/assets/ProvidersView-dQOPha2i.js +11 -0
  86. package/bizar-dash/dist/assets/ProvidersView-dQOPha2i.js.map +1 -0
  87. package/bizar-dash/dist/assets/SchedulesView-DllGEgon.js +1 -0
  88. package/bizar-dash/dist/assets/SchedulesView-DllGEgon.js.map +1 -0
  89. package/bizar-dash/dist/assets/Select-xrQ0htmD.js +6 -0
  90. package/bizar-dash/dist/assets/Select-xrQ0htmD.js.map +1 -0
  91. package/bizar-dash/dist/assets/SettingsRow-BNSh_paj.js +1 -0
  92. package/bizar-dash/dist/assets/SettingsRow-BNSh_paj.js.map +1 -0
  93. package/bizar-dash/dist/assets/SettingsView-B2LyDoxB.js +18 -0
  94. package/bizar-dash/dist/assets/SettingsView-B2LyDoxB.js.map +1 -0
  95. package/bizar-dash/dist/assets/Sheet-C-djzbtS.js +1 -0
  96. package/bizar-dash/dist/assets/Sheet-C-djzbtS.js.map +1 -0
  97. package/bizar-dash/dist/assets/Slider-DmOSInmR.js +1 -0
  98. package/bizar-dash/dist/assets/Slider-DmOSInmR.js.map +1 -0
  99. package/bizar-dash/dist/assets/Sparkline-fGhOoGf0.js +1 -0
  100. package/bizar-dash/dist/assets/Sparkline-fGhOoGf0.js.map +1 -0
  101. package/bizar-dash/dist/assets/Switch-D5gPfsKd.js +10 -0
  102. package/bizar-dash/dist/assets/Switch-D5gPfsKd.js.map +1 -0
  103. package/bizar-dash/dist/assets/TasksView-Dw4YtwQB.js +1 -0
  104. package/bizar-dash/dist/assets/TasksView-Dw4YtwQB.js.map +1 -0
  105. package/bizar-dash/dist/assets/Textarea-Cv1HX9p1.js +1 -0
  106. package/bizar-dash/dist/assets/Textarea-Cv1HX9p1.js.map +1 -0
  107. package/bizar-dash/dist/assets/UpdateView-Bj0LzpMs.js +6 -0
  108. package/bizar-dash/dist/assets/UpdateView-Bj0LzpMs.js.map +1 -0
  109. package/bizar-dash/dist/assets/UsageView-CE-23yYu.js +1 -0
  110. package/bizar-dash/dist/assets/UsageView-CE-23yYu.js.map +1 -0
  111. package/bizar-dash/dist/assets/ViewHeader-2Oyjj9Yt.js +6 -0
  112. package/bizar-dash/dist/assets/ViewHeader-2Oyjj9Yt.js.map +1 -0
  113. package/bizar-dash/dist/assets/VoiceView-C3S92MfP.js +1 -0
  114. package/bizar-dash/dist/assets/VoiceView-C3S92MfP.js.map +1 -0
  115. package/bizar-dash/dist/assets/brain-B8oDQ4kM.js +6 -0
  116. package/bizar-dash/dist/assets/brain-B8oDQ4kM.js.map +1 -0
  117. package/bizar-dash/dist/assets/calendar-C1WTDPNZ.js +6 -0
  118. package/bizar-dash/dist/assets/calendar-C1WTDPNZ.js.map +1 -0
  119. package/bizar-dash/dist/assets/chevron-down-DjgW4FtB.js +6 -0
  120. package/bizar-dash/dist/assets/chevron-down-DjgW4FtB.js.map +1 -0
  121. package/bizar-dash/dist/assets/circle-COwUk6Jw.js +6 -0
  122. package/bizar-dash/dist/assets/circle-COwUk6Jw.js.map +1 -0
  123. package/bizar-dash/dist/assets/circle-alert-D_fRRCnG.js +6 -0
  124. package/bizar-dash/dist/assets/circle-alert-D_fRRCnG.js.map +1 -0
  125. package/bizar-dash/dist/assets/circle-check-CYpMZPTO.js +6 -0
  126. package/bizar-dash/dist/assets/circle-check-CYpMZPTO.js.map +1 -0
  127. package/bizar-dash/dist/assets/clock-BsVbT1kp.js +6 -0
  128. package/bizar-dash/dist/assets/clock-BsVbT1kp.js.map +1 -0
  129. package/bizar-dash/dist/assets/cmdk-DMW_3pWz.js +80 -0
  130. package/bizar-dash/dist/assets/cmdk-DMW_3pWz.js.map +1 -0
  131. package/bizar-dash/dist/assets/dnd-kit-DWBZ6HFE.js +5 -0
  132. package/bizar-dash/dist/assets/dnd-kit-DWBZ6HFE.js.map +1 -0
  133. package/bizar-dash/dist/assets/download-Cct5qHWG.js +6 -0
  134. package/bizar-dash/dist/assets/download-Cct5qHWG.js.map +1 -0
  135. package/bizar-dash/dist/assets/external-link-CKZQsK9X.js +6 -0
  136. package/bizar-dash/dist/assets/external-link-CKZQsK9X.js.map +1 -0
  137. package/bizar-dash/dist/assets/file-text-DNFl94X6.js +6 -0
  138. package/bizar-dash/dist/assets/file-text-DNFl94X6.js.map +1 -0
  139. package/bizar-dash/dist/assets/git-branch-qmhKTtT0.js +6 -0
  140. package/bizar-dash/dist/assets/git-branch-qmhKTtT0.js.map +1 -0
  141. package/bizar-dash/dist/assets/git-pull-request-o7G3ez_L.js +11 -0
  142. package/bizar-dash/dist/assets/git-pull-request-o7G3ez_L.js.map +1 -0
  143. package/bizar-dash/dist/assets/index-CRPdftkz.js +1 -0
  144. package/bizar-dash/dist/assets/index-CRPdftkz.js.map +1 -0
  145. package/bizar-dash/dist/assets/index-VI2tohpo.js +1 -0
  146. package/bizar-dash/dist/assets/index-VI2tohpo.js.map +1 -0
  147. package/bizar-dash/dist/assets/main-zDgXFFYt.js +244 -0
  148. package/bizar-dash/dist/assets/main-zDgXFFYt.js.map +1 -0
  149. package/bizar-dash/dist/assets/pause-B_hjj388.js +6 -0
  150. package/bizar-dash/dist/assets/pause-B_hjj388.js.map +1 -0
  151. package/bizar-dash/dist/assets/pencil-BQXiRgKu.js +6 -0
  152. package/bizar-dash/dist/assets/pencil-BQXiRgKu.js.map +1 -0
  153. package/bizar-dash/dist/assets/play-DF3wgBsQ.js +6 -0
  154. package/bizar-dash/dist/assets/play-DF3wgBsQ.js.map +1 -0
  155. package/bizar-dash/dist/assets/plug-DpD127rq.js +6 -0
  156. package/bizar-dash/dist/assets/plug-DpD127rq.js.map +1 -0
  157. package/bizar-dash/dist/assets/plus-CbojvfqK.js +6 -0
  158. package/bizar-dash/dist/assets/plus-CbojvfqK.js.map +1 -0
  159. package/bizar-dash/dist/assets/power-off-EnQo8iQy.js +6 -0
  160. package/bizar-dash/dist/assets/power-off-EnQo8iQy.js.map +1 -0
  161. package/bizar-dash/dist/assets/power-uH0f5Ihr.js +6 -0
  162. package/bizar-dash/dist/assets/power-uH0f5Ihr.js.map +1 -0
  163. package/bizar-dash/dist/assets/refresh-ccw-BQ_hQs-U.js +6 -0
  164. package/bizar-dash/dist/assets/refresh-ccw-BQ_hQs-U.js.map +1 -0
  165. package/bizar-dash/dist/assets/refresh-cw-CYS8luDH.js +6 -0
  166. package/bizar-dash/dist/assets/refresh-cw-CYS8luDH.js.map +1 -0
  167. package/bizar-dash/dist/assets/rotate-ccw-CTVANG1v.js +6 -0
  168. package/bizar-dash/dist/assets/rotate-ccw-CTVANG1v.js.map +1 -0
  169. package/bizar-dash/dist/assets/rotate-cw-BSsC5XrT.js +6 -0
  170. package/bizar-dash/dist/assets/rotate-cw-BSsC5XrT.js.map +1 -0
  171. package/bizar-dash/dist/assets/save-kxSwq3AI.js +6 -0
  172. package/bizar-dash/dist/assets/save-kxSwq3AI.js.map +1 -0
  173. package/bizar-dash/dist/assets/send-DkuyD_Sf.js +6 -0
  174. package/bizar-dash/dist/assets/send-DkuyD_Sf.js.map +1 -0
  175. package/bizar-dash/dist/assets/shield-alert-COajyBNI.js +6 -0
  176. package/bizar-dash/dist/assets/shield-alert-COajyBNI.js.map +1 -0
  177. package/bizar-dash/dist/assets/trash-2-BzH_id_0.js +6 -0
  178. package/bizar-dash/dist/assets/trash-2-BzH_id_0.js.map +1 -0
  179. package/bizar-dash/dist/assets/trending-up-DWgBlnxO.js +6 -0
  180. package/bizar-dash/dist/assets/trending-up-DWgBlnxO.js.map +1 -0
  181. package/bizar-dash/dist/assets/triangle-alert-D3wjJjjj.js +6 -0
  182. package/bizar-dash/dist/assets/triangle-alert-D3wjJjjj.js.map +1 -0
  183. package/bizar-dash/dist/assets/upload--yQe-28C.js +6 -0
  184. package/bizar-dash/dist/assets/upload--yQe-28C.js.map +1 -0
  185. package/bizar-dash/dist/assets/zap-BVpFD6-i.js +6 -0
  186. package/bizar-dash/dist/assets/zap-BVpFD6-i.js.map +1 -0
  187. package/bizar-dash/dist/index.html +19 -0
  188. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  189. package/bizar-dash/src/server/agents-store.mjs +1 -0
  190. package/bizar-dash/src/server/api.mjs +5 -0
  191. package/bizar-dash/src/server/claude-runner.mjs +5 -0
  192. package/bizar-dash/src/server/dialog-store.mjs +84 -2
  193. package/bizar-dash/src/server/memory-lightrag.mjs +14 -9
  194. package/bizar-dash/src/server/progress-parser.mjs +13 -1
  195. package/bizar-dash/src/server/progress-parser.test.mjs +24 -0
  196. package/bizar-dash/src/server/routes/admin.mjs +163 -0
  197. package/bizar-dash/src/server/routes/agents-cc.mjs +171 -24
  198. package/bizar-dash/src/server/routes/agents.mjs +20 -5
  199. package/bizar-dash/src/server/routes/claude-session-detail.mjs +38 -0
  200. package/bizar-dash/src/server/routes/dialogs.mjs +31 -0
  201. package/bizar-dash/src/server/routes/goals.mjs +107 -3
  202. package/bizar-dash/src/server/routes/overview.mjs +131 -4
  203. package/bizar-dash/src/server/routes/overview.test.mjs +65 -0
  204. package/bizar-dash/src/server/routes/providers.mjs +53 -0
  205. package/bizar-dash/src/server/routes/tasks.mjs +51 -1
  206. package/bizar-dash/src/server/server.mjs +20 -9
  207. package/bizar-dash/src/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  208. package/bizar-dash/src/web/v8/App.tsx +102 -1
  209. package/bizar-dash/src/web/v8/__tests__/admin-view.test.tsx +105 -0
  210. package/bizar-dash/src/web/v8/__tests__/agent-card-metrics.test.tsx +54 -0
  211. package/bizar-dash/src/web/v8/__tests__/agent-detail-tasks.test.tsx +68 -0
  212. package/bizar-dash/src/web/v8/__tests__/agent-hierarchy.test.tsx +79 -0
  213. package/bizar-dash/src/web/v8/__tests__/agents-stuck-banner.test.tsx +142 -0
  214. package/bizar-dash/src/web/v8/__tests__/artifacts-view.test.tsx +102 -0
  215. package/bizar-dash/src/web/v8/__tests__/audit-fixes.test.tsx +139 -0
  216. package/bizar-dash/src/web/v8/__tests__/auth-view.test.tsx +94 -0
  217. package/bizar-dash/src/web/v8/__tests__/chat-types.test.ts +55 -0
  218. package/bizar-dash/src/web/v8/__tests__/chat-view.test.tsx +142 -0
  219. package/bizar-dash/src/web/v8/__tests__/claude-sessions-view.test.tsx +159 -0
  220. package/bizar-dash/src/web/v8/__tests__/clipboard-view.test.tsx +90 -0
  221. package/bizar-dash/src/web/v8/__tests__/config-view.test.tsx +111 -0
  222. package/bizar-dash/src/web/v8/__tests__/dialogs-view.test.tsx +81 -0
  223. package/bizar-dash/src/web/v8/__tests__/env-vars-view.test.tsx +123 -0
  224. package/bizar-dash/src/web/v8/__tests__/goals-cc-roundtrip.test.tsx +94 -0
  225. package/bizar-dash/src/web/v8/__tests__/history-view.test.tsx +96 -0
  226. package/bizar-dash/src/web/v8/__tests__/lightrag-view.test.tsx +90 -0
  227. package/bizar-dash/src/web/v8/__tests__/misc-view.test.tsx +79 -0
  228. package/bizar-dash/src/web/v8/__tests__/mods-view.test.tsx +123 -0
  229. package/bizar-dash/src/web/v8/__tests__/new-views.test.tsx +177 -0
  230. package/bizar-dash/src/web/v8/__tests__/obsidian-view.test.tsx +82 -0
  231. package/bizar-dash/src/web/v8/__tests__/overview-trends.test.tsx +87 -0
  232. package/bizar-dash/src/web/v8/__tests__/projects-view.test.tsx +134 -0
  233. package/bizar-dash/src/web/v8/__tests__/providers-view.test.tsx +100 -0
  234. package/bizar-dash/src/web/v8/__tests__/update-view.test.tsx +89 -0
  235. package/bizar-dash/src/web/v8/__tests__/voice-view.test.tsx +80 -0
  236. package/bizar-dash/src/web/v8/data/types.ts +73 -2
  237. package/bizar-dash/src/web/v8/data/useWebSocket.ts +45 -0
  238. package/bizar-dash/src/web/v8/shell/Sidebar.tsx +52 -1
  239. package/bizar-dash/src/web/v8/ui/agents/AgentCard.tsx +96 -15
  240. package/bizar-dash/src/web/v8/ui/agents/AgentDetail.tsx +168 -12
  241. package/bizar-dash/src/web/v8/ui/agents/AgentLiveOutput.tsx +252 -0
  242. package/bizar-dash/src/web/v8/ui/chat/ChatDrawer.tsx +208 -0
  243. package/bizar-dash/src/web/v8/ui/chat/EventStream.tsx +83 -0
  244. package/bizar-dash/src/web/v8/ui/chat/MessageBubble.tsx +174 -0
  245. package/bizar-dash/src/web/v8/ui/data/ListHeader.tsx +94 -0
  246. package/bizar-dash/src/web/v8/ui/feedback/ErrorState.tsx +116 -0
  247. package/bizar-dash/src/web/v8/ui/goals/GoalDetail.tsx +27 -0
  248. package/bizar-dash/src/web/v8/ui/index.ts +7 -1
  249. package/bizar-dash/src/web/v8/ui/tasks/TaskDetail.tsx +313 -0
  250. package/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +75 -4
  251. package/bizar-dash/src/web/v8/views/Admin/AdminView.tsx +210 -0
  252. package/bizar-dash/src/web/v8/views/Agents/AgentHierarchy.tsx +212 -0
  253. package/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +328 -21
  254. package/bizar-dash/src/web/v8/views/Artifacts/ArtifactsView.tsx +241 -0
  255. package/bizar-dash/src/web/v8/views/Auth/AuthView.tsx +175 -0
  256. package/bizar-dash/src/web/v8/views/BackgroundJobs/BackgroundJobsView.tsx +1 -1
  257. package/bizar-dash/src/web/v8/views/Backup/BackupView.tsx +204 -0
  258. package/bizar-dash/src/web/v8/views/Chat/ChatView.tsx +356 -0
  259. package/bizar-dash/src/web/v8/views/ClaudeSessions/ClaudeSessionDetail.tsx +133 -0
  260. package/bizar-dash/src/web/v8/views/ClaudeSessions/ClaudeSessionsView.tsx +331 -0
  261. package/bizar-dash/src/web/v8/views/Clipboard/ClipboardView.tsx +210 -0
  262. package/bizar-dash/src/web/v8/views/Config/ConfigView.tsx +364 -0
  263. package/bizar-dash/src/web/v8/views/Diagnostics/DiagnosticsView.tsx +160 -0
  264. package/bizar-dash/src/web/v8/views/Dialogs/DialogsView.tsx +196 -0
  265. package/bizar-dash/src/web/v8/views/Doctor/DoctorView.tsx +181 -0
  266. package/bizar-dash/src/web/v8/views/EnvVars/EnvVarsView.tsx +365 -0
  267. package/bizar-dash/src/web/v8/views/Eval/EvalView.tsx +278 -0
  268. package/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +168 -10
  269. package/bizar-dash/src/web/v8/views/Headroom/HeadroomView.tsx +201 -0
  270. package/bizar-dash/src/web/v8/views/History/HistoryView.tsx +227 -0
  271. package/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +13 -3
  272. package/bizar-dash/src/web/v8/views/LightRAG/LightRAGView.tsx +183 -0
  273. package/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +30 -3
  274. package/bizar-dash/src/web/v8/views/Misc/MiscView.tsx +159 -0
  275. package/bizar-dash/src/web/v8/views/Mods/ModsView.tsx +348 -0
  276. package/bizar-dash/src/web/v8/views/Notifications/NotificationsView.tsx +178 -0
  277. package/bizar-dash/src/web/v8/views/Obsidian/ObsidianView.tsx +193 -0
  278. package/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +114 -11
  279. package/bizar-dash/src/web/v8/views/Projects/ProjectsView.tsx +253 -0
  280. package/bizar-dash/src/web/v8/views/Providers/ProvidersView.tsx +371 -0
  281. package/bizar-dash/src/web/v8/views/Router.tsx +125 -0
  282. package/bizar-dash/src/web/v8/views/Schedules/SchedulesView.tsx +46 -14
  283. package/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +322 -29
  284. package/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +168 -5
  285. package/bizar-dash/src/web/v8/views/Update/UpdateView.tsx +270 -0
  286. package/bizar-dash/src/web/v8/views/Usage/UsageView.tsx +210 -0
  287. package/bizar-dash/src/web/v8/views/Voice/VoiceView.tsx +192 -0
  288. package/bizar-dash/tests/tasks-patch-routes.test.mjs +194 -0
  289. package/bizar-dash/vite.config.ts +11 -3
  290. package/cli/__tests__/esm-no-require.test.mjs +97 -0
  291. package/cli/commands/tailscale.mjs +1 -3
  292. package/cli/commands/voice.mjs +2 -2
  293. package/cli/service-env.mjs +4 -5
  294. package/package.json +12 -3
  295. package/packages/sdk/dist/agent-registry.d.ts +134 -0
  296. package/packages/sdk/dist/agent-registry.js +228 -0
  297. package/packages/sdk/dist/consensus/byzantine.d.ts +159 -0
  298. package/packages/sdk/dist/consensus/byzantine.js +507 -0
  299. package/packages/sdk/dist/consensus/index.d.ts +60 -0
  300. package/packages/sdk/dist/consensus/index.js +76 -0
  301. package/packages/sdk/dist/consensus/queen.d.ts +86 -0
  302. package/packages/sdk/dist/consensus/queen.js +158 -0
  303. package/packages/sdk/dist/consensus/types.d.ts +155 -0
  304. package/packages/sdk/dist/consensus/types.js +29 -0
  305. package/packages/sdk/dist/dangerous-patterns.d.ts +27 -0
  306. package/packages/sdk/dist/dangerous-patterns.js +107 -0
  307. package/packages/sdk/dist/federation/audit.d.ts +71 -0
  308. package/packages/sdk/dist/federation/audit.js +133 -0
  309. package/packages/sdk/dist/federation/budget.d.ts +111 -0
  310. package/packages/sdk/dist/federation/budget.js +227 -0
  311. package/packages/sdk/dist/federation/envelope.d.ts +83 -0
  312. package/packages/sdk/dist/federation/envelope.js +92 -0
  313. package/packages/sdk/dist/federation/hmac.d.ts +61 -0
  314. package/packages/sdk/dist/federation/hmac.js +120 -0
  315. package/packages/sdk/dist/federation/index.d.ts +108 -0
  316. package/packages/sdk/dist/federation/index.js +275 -0
  317. package/packages/sdk/dist/federation/pii.d.ts +72 -0
  318. package/packages/sdk/dist/federation/pii.js +178 -0
  319. package/packages/sdk/dist/federation/policy.d.ts +50 -0
  320. package/packages/sdk/dist/federation/policy.js +76 -0
  321. package/packages/sdk/dist/federation/trust.d.ts +80 -0
  322. package/packages/sdk/dist/federation/trust.js +126 -0
  323. package/packages/sdk/dist/fingerprint.d.ts +18 -0
  324. package/packages/sdk/dist/fingerprint.js +0 -0
  325. package/packages/sdk/dist/index.d.ts +25 -0
  326. package/packages/sdk/dist/index.js +25 -0
  327. package/packages/sdk/dist/mcp/bin.d.ts +16 -0
  328. package/packages/sdk/dist/mcp/bin.js +46 -0
  329. package/packages/sdk/dist/mcp/server.d.ts +105 -0
  330. package/packages/sdk/dist/mcp/server.js +682 -0
  331. package/packages/sdk/dist/memory/index.d.ts +43 -0
  332. package/packages/sdk/dist/memory/index.js +159 -0
  333. package/packages/sdk/dist/router/codemod-intent.d.ts +68 -0
  334. package/packages/sdk/dist/router/codemod-intent.js +112 -0
  335. package/packages/sdk/dist/router/index.d.ts +100 -0
  336. package/packages/sdk/dist/router/index.js +149 -0
  337. package/packages/sdk/dist/router/memory-distillation.d.ts +58 -0
  338. package/packages/sdk/dist/router/memory-distillation.js +195 -0
  339. package/packages/sdk/dist/router/model-router.d.ts +83 -0
  340. package/packages/sdk/dist/router/model-router.js +207 -0
  341. package/packages/sdk/dist/router/q-learning-router.d.ts +85 -0
  342. package/packages/sdk/dist/router/q-learning-router.js +273 -0
  343. package/packages/sdk/dist/swarm-topology.d.ts +87 -0
  344. package/packages/sdk/dist/swarm-topology.js +219 -0
  345. package/packages/sdk/dist/version.d.ts +5 -0
  346. package/packages/sdk/dist/version.js +5 -0
  347. package/packages/sdk/package.json +1 -1
  348. package/plugins/bizar/dist/index.d.ts +25 -0
  349. package/plugins/bizar/dist/index.js +32 -0
  350. package/plugins/bizar/package.json +18 -0
  351. package/.claude/CLAUDE.md +0 -15
  352. package/.claude/agents/_shared/AGENT_BASELINE.md +0 -168
  353. package/.claude/agents/_shared/CLAUDE_TOOLS.md +0 -412
  354. package/.claude/agents/_shared/SKILLS.md +0 -109
  355. package/.claude/agents/agent-browser.md +0 -80
  356. package/.claude/agents/baldr.md +0 -49
  357. package/.claude/agents/forseti.md +0 -51
  358. package/.claude/agents/frigg.md +0 -42
  359. package/.claude/agents/heimdall.md +0 -33
  360. package/.claude/agents/hermod.md +0 -53
  361. package/.claude/agents/mimir.md +0 -49
  362. package/.claude/agents/odin.md +0 -287
  363. package/.claude/agents/quick.md +0 -34
  364. package/.claude/agents/semble-search.md +0 -50
  365. package/.claude/agents/thor.md +0 -53
  366. package/.claude/agents/tyr.md +0 -56
  367. package/.claude/agents/vidarr.md +0 -54
  368. package/.claude/agents/vor.md +0 -53
  369. package/.claude/commands/audit.md +0 -25
  370. package/.claude/commands/bizar.md +0 -22
  371. package/.claude/commands/explain.md +0 -17
  372. package/.claude/commands/goal.md +0 -98
  373. package/.claude/commands/init.md +0 -29
  374. package/.claude/commands/learn.md +0 -44
  375. package/.claude/commands/plan.md +0 -35
  376. package/.claude/commands/plow-through.md +0 -50
  377. package/.claude/commands/pr-review.md +0 -49
  378. package/.claude/commands/setup-provider.md +0 -96
  379. package/.claude/commands/tailscale-serve.md +0 -100
  380. package/.claude/commands/team.md +0 -132
  381. package/.claude/commands/test.md +0 -62
  382. package/.claude/commands/validate.md +0 -68
  383. package/.claude/commands/visual-plan.md +0 -24
  384. package/.claude/hooks/README.md +0 -92
  385. package/.claude/hooks/posttooluse-editwrite.mjs +0 -91
  386. package/.claude/hooks/pretooluse-bash.mjs +0 -81
  387. package/.claude/hooks/pretooluse-editwrite.mjs +0 -139
  388. package/.claude/hooks/sessionend-recall.mjs +0 -74
  389. package/.claude/hooks/sessionstart-prime.mjs +0 -80
  390. package/.claude/hooks/userpromptsubmit-tag.mjs +0 -80
  391. package/.claude/hooks/worker-suggest.mjs +0 -110
  392. package/.claude/settings.json +0 -125
  393. package/.claude/settings.local.json +0 -7
  394. package/.claude/skills/9router/SKILL.md +0 -80
  395. package/.claude/skills/9router-chat/SKILL.md +0 -73
  396. package/.claude/skills/9router-embeddings/SKILL.md +0 -69
  397. package/.claude/skills/9router-image/SKILL.md +0 -86
  398. package/.claude/skills/9router-stt/SKILL.md +0 -79
  399. package/.claude/skills/9router-tts/SKILL.md +0 -80
  400. package/.claude/skills/9router-web-fetch/SKILL.md +0 -99
  401. package/.claude/skills/9router-web-search/SKILL.md +0 -91
  402. package/.claude/skills/bizar/README.md +0 -9
  403. package/.claude/skills/bizar/SKILL.md +0 -450
  404. package/.claude/skills/cpp-coding-standards/README.md +0 -28
  405. package/.claude/skills/cpp-coding-standards/SKILL.md +0 -634
  406. package/.claude/skills/cpp-coding-standards/references/concurrency.md +0 -320
  407. package/.claude/skills/cpp-coding-standards/references/error-handling.md +0 -229
  408. package/.claude/skills/cpp-coding-standards/references/memory-safety.md +0 -216
  409. package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +0 -282
  410. package/.claude/skills/cpp-coding-standards/references/review-checklist.md +0 -96
  411. package/.claude/skills/cpp-testing/README.md +0 -28
  412. package/.claude/skills/cpp-testing/SKILL.md +0 -304
  413. package/.claude/skills/cpp-testing/references/coverage.md +0 -370
  414. package/.claude/skills/cpp-testing/references/framework-compare.md +0 -175
  415. package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +0 -499
  416. package/.claude/skills/cpp-testing/references/mocking.md +0 -364
  417. package/.claude/skills/cpp-testing/references/tdd-workflow.md +0 -308
  418. package/.claude/skills/cubesandbox/SKILL.md +0 -148
  419. package/.claude/skills/embedded-esp-idf/README.md +0 -41
  420. package/.claude/skills/embedded-esp-idf/SKILL.md +0 -439
  421. package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +0 -214
  422. package/.claude/skills/embedded-esp-idf/references/host-tests.md +0 -164
  423. package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +0 -157
  424. package/.claude/skills/embedded-esp-idf/references/kconfig.md +0 -159
  425. package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +0 -118
  426. package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +0 -137
  427. package/.claude/skills/embedded-esp-idf/references/nvs.md +0 -121
  428. package/.claude/skills/embedded-esp-idf/references/packed-structs.md +0 -192
  429. package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +0 -47
  430. package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +0 -77
  431. package/.claude/skills/glyph/SKILL.md +0 -163
  432. package/.claude/skills/harness-engineering/SKILL.md +0 -143
  433. package/.claude/skills/lightrag/SKILL.md +0 -81
  434. package/.claude/skills/memory-protocol/SKILL.md +0 -105
  435. package/.claude/skills/obsidian/SKILL.md +0 -306
  436. package/.claude/skills/read-the-damn-docs/SKILL.md +0 -113
  437. package/.claude/skills/self-improvement/SKILL.md +0 -64
  438. package/.claude/worktrees/kanban-overhaul/.claude/CLAUDE.md +0 -15
  439. package/.claude/worktrees/kanban-overhaul/.claude/agents/_shared/AGENT_BASELINE.md +0 -168
  440. package/.claude/worktrees/kanban-overhaul/.claude/agents/_shared/CLAUDE_TOOLS.md +0 -412
  441. package/.claude/worktrees/kanban-overhaul/.claude/agents/_shared/SKILLS.md +0 -109
  442. package/.claude/worktrees/kanban-overhaul/.claude/agents/agent-browser.md +0 -80
  443. package/.claude/worktrees/kanban-overhaul/.claude/agents/baldr.md +0 -49
  444. package/.claude/worktrees/kanban-overhaul/.claude/agents/forseti.md +0 -51
  445. package/.claude/worktrees/kanban-overhaul/.claude/agents/frigg.md +0 -42
  446. package/.claude/worktrees/kanban-overhaul/.claude/agents/heimdall.md +0 -33
  447. package/.claude/worktrees/kanban-overhaul/.claude/agents/hermod.md +0 -53
  448. package/.claude/worktrees/kanban-overhaul/.claude/agents/mimir.md +0 -49
  449. package/.claude/worktrees/kanban-overhaul/.claude/agents/odin.md +0 -287
  450. package/.claude/worktrees/kanban-overhaul/.claude/agents/quick.md +0 -34
  451. package/.claude/worktrees/kanban-overhaul/.claude/agents/semble-search.md +0 -50
  452. package/.claude/worktrees/kanban-overhaul/.claude/agents/thor.md +0 -53
  453. package/.claude/worktrees/kanban-overhaul/.claude/agents/tyr.md +0 -56
  454. package/.claude/worktrees/kanban-overhaul/.claude/agents/vidarr.md +0 -54
  455. package/.claude/worktrees/kanban-overhaul/.claude/agents/vor.md +0 -53
  456. package/.claude/worktrees/kanban-overhaul/.claude/commands/audit.md +0 -25
  457. package/.claude/worktrees/kanban-overhaul/.claude/commands/bizar.md +0 -22
  458. package/.claude/worktrees/kanban-overhaul/.claude/commands/explain.md +0 -17
  459. package/.claude/worktrees/kanban-overhaul/.claude/commands/init.md +0 -29
  460. package/.claude/worktrees/kanban-overhaul/.claude/commands/learn.md +0 -44
  461. package/.claude/worktrees/kanban-overhaul/.claude/commands/plan.md +0 -35
  462. package/.claude/worktrees/kanban-overhaul/.claude/commands/plow-through.md +0 -50
  463. package/.claude/worktrees/kanban-overhaul/.claude/commands/pr-review.md +0 -49
  464. package/.claude/worktrees/kanban-overhaul/.claude/commands/setup-provider.md +0 -96
  465. package/.claude/worktrees/kanban-overhaul/.claude/commands/tailscale-serve.md +0 -100
  466. package/.claude/worktrees/kanban-overhaul/.claude/commands/team.md +0 -132
  467. package/.claude/worktrees/kanban-overhaul/.claude/commands/test.md +0 -62
  468. package/.claude/worktrees/kanban-overhaul/.claude/commands/validate.md +0 -68
  469. package/.claude/worktrees/kanban-overhaul/.claude/commands/visual-plan.md +0 -24
  470. package/.claude/worktrees/kanban-overhaul/.claude/hooks/README.md +0 -92
  471. package/.claude/worktrees/kanban-overhaul/.claude/hooks/posttooluse-editwrite.mjs +0 -91
  472. package/.claude/worktrees/kanban-overhaul/.claude/hooks/pretooluse-bash.mjs +0 -81
  473. package/.claude/worktrees/kanban-overhaul/.claude/hooks/pretooluse-editwrite.mjs +0 -139
  474. package/.claude/worktrees/kanban-overhaul/.claude/hooks/sessionend-recall.mjs +0 -74
  475. package/.claude/worktrees/kanban-overhaul/.claude/hooks/sessionstart-prime.mjs +0 -80
  476. package/.claude/worktrees/kanban-overhaul/.claude/hooks/userpromptsubmit-tag.mjs +0 -80
  477. package/.claude/worktrees/kanban-overhaul/.claude/hooks/worker-suggest.mjs +0 -110
  478. package/.claude/worktrees/kanban-overhaul/.claude/settings.json +0 -125
  479. package/.claude/worktrees/kanban-overhaul/.claude/settings.local.json +0 -8
  480. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router/SKILL.md +0 -80
  481. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-chat/SKILL.md +0 -73
  482. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-embeddings/SKILL.md +0 -69
  483. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-image/SKILL.md +0 -86
  484. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-stt/SKILL.md +0 -79
  485. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-tts/SKILL.md +0 -80
  486. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-web-fetch/SKILL.md +0 -99
  487. package/.claude/worktrees/kanban-overhaul/.claude/skills/9router-web-search/SKILL.md +0 -91
  488. package/.claude/worktrees/kanban-overhaul/.claude/skills/bizar/README.md +0 -9
  489. package/.claude/worktrees/kanban-overhaul/.claude/skills/bizar/SKILL.md +0 -450
  490. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/README.md +0 -28
  491. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/SKILL.md +0 -634
  492. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/concurrency.md +0 -320
  493. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/error-handling.md +0 -229
  494. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/memory-safety.md +0 -216
  495. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/modern-idioms.md +0 -282
  496. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-coding-standards/references/review-checklist.md +0 -96
  497. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/README.md +0 -28
  498. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/SKILL.md +0 -304
  499. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/coverage.md +0 -370
  500. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/framework-compare.md +0 -175
  501. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/host-test-for-embedded.md +0 -499
  502. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/mocking.md +0 -364
  503. package/.claude/worktrees/kanban-overhaul/.claude/skills/cpp-testing/references/tdd-workflow.md +0 -308
  504. package/.claude/worktrees/kanban-overhaul/.claude/skills/cubesandbox/SKILL.md +0 -148
  505. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/README.md +0 -41
  506. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/SKILL.md +0 -439
  507. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +0 -214
  508. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/host-tests.md +0 -164
  509. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +0 -157
  510. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/kconfig.md +0 -159
  511. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/logging-discipline.md +0 -118
  512. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +0 -137
  513. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/nvs.md +0 -121
  514. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/references/packed-structs.md +0 -192
  515. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +0 -47
  516. package/.claude/worktrees/kanban-overhaul/.claude/skills/embedded-esp-idf/scripts/size_check.sh +0 -77
  517. package/.claude/worktrees/kanban-overhaul/.claude/skills/glyph/SKILL.md +0 -163
  518. package/.claude/worktrees/kanban-overhaul/.claude/skills/harness-engineering/SKILL.md +0 -143
  519. package/.claude/worktrees/kanban-overhaul/.claude/skills/lightrag/SKILL.md +0 -81
  520. package/.claude/worktrees/kanban-overhaul/.claude/skills/memory-protocol/SKILL.md +0 -105
  521. package/.claude/worktrees/kanban-overhaul/.claude/skills/obsidian/SKILL.md +0 -306
  522. package/.claude/worktrees/kanban-overhaul/.claude/skills/read-the-damn-docs/SKILL.md +0 -113
  523. package/.claude/worktrees/kanban-overhaul/.claude/skills/self-improvement/SKILL.md +0 -64
  524. package/.claude/worktrees/kanban-overhaul/.dockerignore +0 -31
  525. package/.claude/worktrees/kanban-overhaul/.gitattributes +0 -27
  526. package/.claude/worktrees/kanban-overhaul/.harness/agents.json +0 -17
  527. package/.claude/worktrees/kanban-overhaul/.harness/arch-rules.json +0 -69
  528. package/.claude/worktrees/kanban-overhaul/.harness/topology.json +0 -4
  529. package/.claude/worktrees/kanban-overhaul/.nvmrc +0 -1
  530. package/.claude/worktrees/kanban-overhaul/.serena/project.yml +0 -159
  531. package/.claude/worktrees/kanban-overhaul/AGENTS.md +0 -250
  532. package/.claude/worktrees/kanban-overhaul/CHANGELOG.md +0 -5410
  533. package/.claude/worktrees/kanban-overhaul/CLAUDE.md +0 -260
  534. package/.claude/worktrees/kanban-overhaul/CURRENT_ISSUES_ AND_NEW_FEATURES.md +0 -18
  535. package/.claude/worktrees/kanban-overhaul/DECISIONS.md +0 -66
  536. package/.claude/worktrees/kanban-overhaul/Dockerfile +0 -48
  537. package/.claude/worktrees/kanban-overhaul/FINAL_GOAL.md +0 -397
  538. package/.claude/worktrees/kanban-overhaul/IMPLEMENTATION_PLAN.md +0 -250
  539. package/.claude/worktrees/kanban-overhaul/MILESTONES.md +0 -257
  540. package/.claude/worktrees/kanban-overhaul/Makefile +0 -93
  541. package/.claude/worktrees/kanban-overhaul/PROGRESS.md +0 -1406
  542. package/.claude/worktrees/kanban-overhaul/README.md +0 -483
  543. package/.claude/worktrees/kanban-overhaul/ROADMAP.md +0 -609
  544. package/.claude/worktrees/kanban-overhaul/bizar-dash/.graphifyignore +0 -40
  545. package/.claude/worktrees/kanban-overhaul/bizar-dash/.obsidian/README.md +0 -14
  546. package/.claude/worktrees/kanban-overhaul/bizar-dash/.obsidian/daily/2026-06-25.md +0 -9
  547. package/.claude/worktrees/kanban-overhaul/bizar-dash/.obsidian/vault.json +0 -7
  548. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/SKILL.md +0 -103
  549. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/assets/template.html +0 -338
  550. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/example.html +0 -81
  551. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/open-design.json +0 -172
  552. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/references/checklist.md +0 -44
  553. package/.claude/worktrees/kanban-overhaul/bizar-dash/.od-skills/web-prototype-e1429c1737/references/layouts.md +0 -247
  554. package/.claude/worktrees/kanban-overhaul/bizar-dash/ARCHITECTURE.md +0 -197
  555. package/.claude/worktrees/kanban-overhaul/bizar-dash/CHANGELOG.md +0 -235
  556. package/.claude/worktrees/kanban-overhaul/bizar-dash/DESIGN.md +0 -912
  557. package/.claude/worktrees/kanban-overhaul/bizar-dash/GLYPH.md +0 -418
  558. package/.claude/worktrees/kanban-overhaul/bizar-dash/PLAN.md +0 -1135
  559. package/.claude/worktrees/kanban-overhaul/bizar-dash/critique.json +0 -26
  560. package/.claude/worktrees/kanban-overhaul/bizar-dash/plans/debug-plan/comments.json +0 -1
  561. package/.claude/worktrees/kanban-overhaul/bizar-dash/plans/debug-plan/meta.json +0 -10
  562. package/.claude/worktrees/kanban-overhaul/bizar-dash/plans/debug-plan/plan.json +0 -174
  563. package/.claude/worktrees/kanban-overhaul/bizar-dash/scripts/smoke-bg-retry.mjs +0 -246
  564. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/agent-baseline/SKILL.md +0 -80
  565. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/agent-browser/SKILL.md +0 -181
  566. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/bizar/SKILL.md +0 -116
  567. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/chat/SKILL.md +0 -74
  568. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/eval/SKILL.md +0 -237
  569. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/headroom/SKILL.md +0 -94
  570. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/lightrag/SKILL.md +0 -86
  571. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/minimax/SKILL.md +0 -80
  572. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/obsidian/SKILL.md +0 -68
  573. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/providers/SKILL.md +0 -75
  574. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/publishing/SKILL.md +0 -146
  575. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/sdk/SKILL.md +0 -138
  576. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/self-improvement/SKILL.md +0 -53
  577. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/skills-cli/SKILL.md +0 -94
  578. package/.claude/worktrees/kanban-overhaul/bizar-dash/skills/usage/SKILL.md +0 -62
  579. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/cli/dashboard-ports.mjs +0 -488
  580. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/cli.mjs +0 -537
  581. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/activity-log.mjs +0 -174
  582. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/agents-store.mjs +0 -465
  583. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/api.mjs +0 -223
  584. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/artifact-template.html +0 -810
  585. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/artifacts-store.mjs +0 -733
  586. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/auth.mjs +0 -548
  587. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/background-store.mjs +0 -446
  588. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/backup-store.mjs +0 -530
  589. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/bg-poller.mjs +0 -375
  590. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/bg-retry.mjs +0 -446
  591. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/bg-spawner.mjs +0 -390
  592. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/browser.mjs +0 -40
  593. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/claude-bg-spawner.mjs +0 -390
  594. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/claude-info.mjs +0 -412
  595. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/claude-runner.mjs +0 -284
  596. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/claude-sdk.mjs +0 -191
  597. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/diagnostics-store.mjs +0 -598
  598. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/dialog-poller.mjs +0 -105
  599. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/dialog-store.mjs +0 -177
  600. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/digest-store.mjs +0 -558
  601. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/eval-store.mjs +0 -281
  602. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/eval.mjs +0 -500
  603. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/glyphs/mdx-compiler.mjs +0 -596
  604. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/headroom.mjs +0 -649
  605. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/lib/path-safe.mjs +0 -283
  606. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/lib/rate-limit.mjs +0 -122
  607. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/logger.mjs +0 -71
  608. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-consolidator.mjs +0 -225
  609. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-distillation.mjs +0 -296
  610. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-git.mjs +0 -473
  611. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-lightrag.mjs +0 -1478
  612. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-obsidian.mjs +0 -230
  613. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-schema.mjs +0 -145
  614. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-secrets.mjs +0 -84
  615. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/memory-store.mjs +0 -1093
  616. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/metrics.mjs +0 -268
  617. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/minimax-usage-store.mjs +0 -372
  618. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/minimax.mjs +0 -683
  619. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/mod-security.mjs +0 -398
  620. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/mods-loader.mjs +0 -1243
  621. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/notifications-store.mjs +0 -243
  622. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/obsidian-store.mjs +0 -318
  623. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/ocr.mjs +0 -55
  624. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/otel.mjs +0 -260
  625. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/pair-store.mjs +0 -138
  626. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/progress-parser.mjs +0 -221
  627. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/projects-store.mjs +0 -364
  628. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/providers-store.mjs +0 -1801
  629. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/_shared.mjs +0 -447
  630. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/activity.mjs +0 -195
  631. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/agents-cc.mjs +0 -194
  632. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/agents.mjs +0 -134
  633. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/artifacts.mjs +0 -279
  634. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/auth.mjs +0 -69
  635. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/background.mjs +0 -422
  636. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/backup.mjs +0 -112
  637. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/chat.mjs +0 -727
  638. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/claude-session-detail.mjs +0 -329
  639. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/claude-sessions.mjs +0 -259
  640. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/clipboard.mjs +0 -173
  641. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/config.mjs +0 -180
  642. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/diagnostics.mjs +0 -50
  643. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/dialogs.mjs +0 -86
  644. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/digests.mjs +0 -82
  645. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/distill.mjs +0 -129
  646. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/doctor.mjs +0 -71
  647. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/env-vars.mjs +0 -231
  648. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/eval.mjs +0 -187
  649. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/fs.mjs +0 -429
  650. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/goal-planner.mjs +0 -236
  651. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/goals.mjs +0 -212
  652. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/headroom.mjs +0 -126
  653. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/history.mjs +0 -78
  654. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/lightrag.mjs +0 -169
  655. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/memory.mjs +0 -1524
  656. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/minimax.mjs +0 -133
  657. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/misc.mjs +0 -90
  658. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/mods.mjs +0 -359
  659. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/notifications.mjs +0 -54
  660. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/obsidian.mjs +0 -239
  661. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/ocr.mjs +0 -182
  662. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/overview.mjs +0 -92
  663. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/pair.mjs +0 -67
  664. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/projects.mjs +0 -175
  665. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/providers.mjs +0 -308
  666. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/schedules.mjs +0 -159
  667. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/settings.mjs +0 -51
  668. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/skills.mjs +0 -65
  669. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/tailscale.mjs +0 -46
  670. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/tasks.mjs +0 -518
  671. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/themes.mjs +0 -51
  672. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/update.mjs +0 -340
  673. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/usage.mjs +0 -136
  674. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/users.mjs +0 -102
  675. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/voice.mjs +0 -167
  676. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes/workspaces.mjs +0 -299
  677. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/auth.mjs +0 -59
  678. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/events.mjs +0 -121
  679. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/health.mjs +0 -21
  680. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/index.mjs +0 -90
  681. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/routes-v2/sessions.mjs +0 -111
  682. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/schedules-runner.mjs +0 -556
  683. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/schedules-store.mjs +0 -268
  684. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/search-store.mjs +0 -220
  685. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/serve-info.mjs +0 -1110
  686. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/server.mjs +0 -966
  687. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/settings-store.mjs +0 -45
  688. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/skills-store.mjs +0 -190
  689. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/state.mjs +0 -437
  690. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/tailscale-store.mjs +0 -113
  691. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/task-delegator.mjs +0 -969
  692. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/tasks-store.mjs +0 -556
  693. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/tui.mjs +0 -923
  694. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/update-store.mjs +0 -168
  695. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/v2-auth-file.mjs +0 -99
  696. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/v2-event-bus.mjs +0 -128
  697. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/voice-store.mjs +0 -229
  698. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/voice-transcribe.mjs +0 -72
  699. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/watcher.mjs +0 -81
  700. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/workers/transcription-worker.mjs +0 -213
  701. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/workspaces.mjs +0 -626
  702. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/server/yaml.mjs +0 -238
  703. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/App.tsx +0 -200
  704. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/data/fetcher.ts +0 -59
  705. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/data/types.ts +0 -168
  706. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/data/useFetch.ts +0 -62
  707. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/data/useWebSocket.ts +0 -153
  708. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/main.tsx +0 -28
  709. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/AppShell.tsx +0 -90
  710. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/PageSkeleton.tsx +0 -29
  711. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/Sidebar.tsx +0 -361
  712. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/StatusBar.tsx +0 -63
  713. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/Topbar.tsx +0 -113
  714. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/shell/index.ts +0 -15
  715. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/activity/ActivityFeed.tsx +0 -137
  716. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/agents/AgentActivity.tsx +0 -101
  717. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/agents/AgentCard.tsx +0 -158
  718. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/agents/AgentDetail.tsx +0 -232
  719. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Button.tsx +0 -141
  720. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/ButtonGroup.tsx +0 -32
  721. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Checkbox.tsx +0 -49
  722. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Field.tsx +0 -78
  723. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Form.tsx +0 -23
  724. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/IconButton.tsx +0 -112
  725. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Input.tsx +0 -94
  726. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/RadioGroup.tsx +0 -74
  727. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Select.tsx +0 -171
  728. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Slider.tsx +0 -68
  729. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Switch.tsx +0 -56
  730. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Textarea.tsx +0 -64
  731. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/Toggle.tsx +0 -36
  732. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/controls/ToggleGroup.tsx +0 -85
  733. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Accordion.tsx +0 -134
  734. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Avatar.tsx +0 -175
  735. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Badge.tsx +0 -93
  736. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/BarList.tsx +0 -101
  737. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Card.tsx +0 -140
  738. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Chip.tsx +0 -96
  739. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Kbd.tsx +0 -42
  740. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/ProgressBar.tsx +0 -93
  741. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Sparkline.tsx +0 -98
  742. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/StatTile.tsx +0 -150
  743. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Table.tsx +0 -170
  744. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/Timeline.tsx +0 -130
  745. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/data/ViewHeader.tsx +0 -122
  746. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Alert.tsx +0 -95
  747. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Banner.tsx +0 -39
  748. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/ContextMenu.tsx +0 -143
  749. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Dialog.tsx +0 -149
  750. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Drawer.tsx +0 -8
  751. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/DropdownMenu.tsx +0 -231
  752. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/EmptyState.tsx +0 -48
  753. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Popover.tsx +0 -56
  754. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Sheet.tsx +0 -103
  755. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Skeleton.tsx +0 -67
  756. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Spinner.tsx +0 -30
  757. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Toast.tsx +0 -66
  758. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/feedback/Tooltip.tsx +0 -89
  759. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/goals/GoalCard.tsx +0 -176
  760. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/goals/GoalDetail.tsx +0 -245
  761. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/goals/KeyResult.tsx +0 -115
  762. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/index.ts +0 -349
  763. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanBoard.tsx +0 -115
  764. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanCard.tsx +0 -391
  765. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanCardBadges.tsx +0 -111
  766. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanColumn.tsx +0 -181
  767. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanContextMenu.tsx +0 -126
  768. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanDetailDialog.tsx +0 -638
  769. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanEmptyColumn.tsx +0 -43
  770. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanProgress.tsx +0 -130
  771. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanQuickAdd.tsx +0 -141
  772. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/KanbanToolbar.tsx +0 -291
  773. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/kanban/useKanbanSelection.ts +0 -90
  774. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/libraries/LibraryGrid.tsx +0 -30
  775. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/libraries/LibraryItem.tsx +0 -161
  776. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/memory/MemoryVault.tsx +0 -144
  777. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/navigation/CommandPalette.tsx +0 -224
  778. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/navigation/NavLink.tsx +0 -81
  779. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/navigation/Pagination.tsx +0 -164
  780. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/navigation/Tabs.tsx +0 -128
  781. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Box.tsx +0 -144
  782. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Center.tsx +0 -40
  783. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Cluster.tsx +0 -67
  784. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Grid.tsx +0 -104
  785. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Inline.tsx +0 -77
  786. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Portal.tsx +0 -33
  787. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/ScrollArea.tsx +0 -62
  788. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Separator.tsx +0 -42
  789. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/Stack.tsx +0 -73
  790. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/primitives/VisuallyHidden.tsx +0 -49
  791. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/settings/SettingsNav.tsx +0 -91
  792. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/settings/SettingsRow.tsx +0 -88
  793. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/settings/SettingsSection.tsx +0 -109
  794. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/styles/globals.css +0 -220
  795. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/styles/reset.css +0 -57
  796. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/styles/tokens.css +0 -217
  797. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/DensityProvider.tsx +0 -66
  798. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/ThemeProvider.tsx +0 -94
  799. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/ThemeToggle.tsx +0 -88
  800. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/useDensity.ts +0 -15
  801. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/theme/useTheme.ts +0 -16
  802. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/ui/utils/cx.ts +0 -19
  803. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +0 -71
  804. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +0 -172
  805. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.tsx +0 -247
  806. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +0 -137
  807. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +0 -108
  808. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +0 -77
  809. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +0 -152
  810. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Router.tsx +0 -72
  811. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +0 -330
  812. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Tasks/CommandPalettePlaceholder.tsx +0 -106
  813. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +0 -792
  814. package/.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8/vite-env.d.ts +0 -15
  815. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/FORMAT.md +0 -76
  816. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/README.md +0 -19
  817. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/agents/greeter.md +0 -8
  818. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/commands/hello.md +0 -6
  819. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/mod.json +0 -20
  820. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/routes/ping.mjs +0 -9
  821. package/.claude/worktrees/kanban-overhaul/bizar-dash/templates/mod/hello-mod/views/HelloView.tsx +0 -10
  822. package/.claude/worktrees/kanban-overhaul/bizar-dash/tests/setup.ts +0 -63
  823. package/.claude/worktrees/kanban-overhaul/bizar-dash/tests/smoke-v2.mjs +0 -212
  824. package/.claude/worktrees/kanban-overhaul/bizar-dash/tsconfig.json +0 -23
  825. package/.claude/worktrees/kanban-overhaul/bizar-dash/vite.config.ts +0 -66
  826. package/.claude/worktrees/kanban-overhaul/bizar-dash/vitest.config.ts +0 -20
  827. package/.claude/worktrees/kanban-overhaul/bizar-plugins/registry.json +0 -62
  828. package/.claude/worktrees/kanban-overhaul/bookmarklet/bizar-clipper.js +0 -48
  829. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/README.md +0 -43
  830. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/background.js +0 -95
  831. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/content.js +0 -170
  832. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/icons/icon-128.png +0 -0
  833. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/icons/icon-16.png +0 -0
  834. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/icons/icon-48.png +0 -0
  835. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/icons/icon.svg +0 -4
  836. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/manifest.json +0 -32
  837. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/popup.html +0 -66
  838. package/.claude/worktrees/kanban-overhaul/browser-extensions/bizar-clipper/popup.js +0 -110
  839. package/.claude/worktrees/kanban-overhaul/bun.lock +0 -1558
  840. package/.claude/worktrees/kanban-overhaul/cli/agent-browser-up.sh +0 -152
  841. package/.claude/worktrees/kanban-overhaul/cli/agent-browser-update.mjs +0 -322
  842. package/.claude/worktrees/kanban-overhaul/cli/artifact-cli.mjs +0 -605
  843. package/.claude/worktrees/kanban-overhaul/cli/artifact-render.mjs +0 -621
  844. package/.claude/worktrees/kanban-overhaul/cli/artifact-server.mjs +0 -847
  845. package/.claude/worktrees/kanban-overhaul/cli/artifact-templates.mjs +0 -523
  846. package/.claude/worktrees/kanban-overhaul/cli/artifact.mjs +0 -63
  847. package/.claude/worktrees/kanban-overhaul/cli/atomic.mjs +0 -73
  848. package/.claude/worktrees/kanban-overhaul/cli/audit.mjs +0 -141
  849. package/.claude/worktrees/kanban-overhaul/cli/banner.mjs +0 -41
  850. package/.claude/worktrees/kanban-overhaul/cli/bg.mjs +0 -471
  851. package/.claude/worktrees/kanban-overhaul/cli/bin.mjs +0 -698
  852. package/.claude/worktrees/kanban-overhaul/cli/bootstrap.mjs +0 -77
  853. package/.claude/worktrees/kanban-overhaul/cli/commands/artifact.mjs +0 -20
  854. package/.claude/worktrees/kanban-overhaul/cli/commands/claim.mjs +0 -282
  855. package/.claude/worktrees/kanban-overhaul/cli/commands/claude-cmd.mjs +0 -348
  856. package/.claude/worktrees/kanban-overhaul/cli/commands/clip.mjs +0 -163
  857. package/.claude/worktrees/kanban-overhaul/cli/commands/cost.mjs +0 -279
  858. package/.claude/worktrees/kanban-overhaul/cli/commands/dash.mjs +0 -193
  859. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy/cloudflare.mjs +0 -250
  860. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy/docker.mjs +0 -222
  861. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy/fly.mjs +0 -161
  862. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy/vercel.mjs +0 -225
  863. package/.claude/worktrees/kanban-overhaul/cli/commands/deploy.mjs +0 -240
  864. package/.claude/worktrees/kanban-overhaul/cli/commands/eval.mjs +0 -396
  865. package/.claude/worktrees/kanban-overhaul/cli/commands/headroom.mjs +0 -204
  866. package/.claude/worktrees/kanban-overhaul/cli/commands/install.mjs +0 -170
  867. package/.claude/worktrees/kanban-overhaul/cli/commands/lightrag.mjs +0 -170
  868. package/.claude/worktrees/kanban-overhaul/cli/commands/marketplace.mjs +0 -64
  869. package/.claude/worktrees/kanban-overhaul/cli/commands/memory.mjs +0 -25
  870. package/.claude/worktrees/kanban-overhaul/cli/commands/minimax.mjs +0 -288
  871. package/.claude/worktrees/kanban-overhaul/cli/commands/mod.mjs +0 -185
  872. package/.claude/worktrees/kanban-overhaul/cli/commands/ocr.mjs +0 -182
  873. package/.claude/worktrees/kanban-overhaul/cli/commands/plugin.mjs +0 -358
  874. package/.claude/worktrees/kanban-overhaul/cli/commands/rca.mjs +0 -198
  875. package/.claude/worktrees/kanban-overhaul/cli/commands/sandbox.mjs +0 -220
  876. package/.claude/worktrees/kanban-overhaul/cli/commands/service.mjs +0 -79
  877. package/.claude/worktrees/kanban-overhaul/cli/commands/setup-provider.mjs +0 -466
  878. package/.claude/worktrees/kanban-overhaul/cli/commands/tailscale.mjs +0 -258
  879. package/.claude/worktrees/kanban-overhaul/cli/commands/usage.mjs +0 -113
  880. package/.claude/worktrees/kanban-overhaul/cli/commands/util.mjs +0 -577
  881. package/.claude/worktrees/kanban-overhaul/cli/commands/validate.mjs +0 -541
  882. package/.claude/worktrees/kanban-overhaul/cli/commands/voice.mjs +0 -211
  883. package/.claude/worktrees/kanban-overhaul/cli/commands/workspace.mjs +0 -247
  884. package/.claude/worktrees/kanban-overhaul/cli/copy.mjs +0 -586
  885. package/.claude/worktrees/kanban-overhaul/cli/cost-gate.mjs +0 -501
  886. package/.claude/worktrees/kanban-overhaul/cli/dev-link.mjs +0 -191
  887. package/.claude/worktrees/kanban-overhaul/cli/digest.mjs +0 -149
  888. package/.claude/worktrees/kanban-overhaul/cli/doctor.mjs +0 -217
  889. package/.claude/worktrees/kanban-overhaul/cli/export.mjs +0 -95
  890. package/.claude/worktrees/kanban-overhaul/cli/feature-list-bridge.mjs +0 -400
  891. package/.claude/worktrees/kanban-overhaul/cli/heads-up.mjs +0 -295
  892. package/.claude/worktrees/kanban-overhaul/cli/init.mjs +0 -368
  893. package/.claude/worktrees/kanban-overhaul/cli/install.mjs +0 -640
  894. package/.claude/worktrees/kanban-overhaul/cli/memory-constants.mjs +0 -76
  895. package/.claude/worktrees/kanban-overhaul/cli/memory.mjs +0 -1850
  896. package/.claude/worktrees/kanban-overhaul/cli/plugin-runtime-deps.mjs +0 -250
  897. package/.claude/worktrees/kanban-overhaul/cli/post-install-smoke.mjs +0 -256
  898. package/.claude/worktrees/kanban-overhaul/cli/prompts.mjs +0 -168
  899. package/.claude/worktrees/kanban-overhaul/cli/providers-detect.mjs +0 -233
  900. package/.claude/worktrees/kanban-overhaul/cli/provision-claude.mjs +0 -1176
  901. package/.claude/worktrees/kanban-overhaul/cli/provision.mjs +0 -2233
  902. package/.claude/worktrees/kanban-overhaul/cli/repair.mjs +0 -209
  903. package/.claude/worktrees/kanban-overhaul/cli/service-controller.mjs +0 -927
  904. package/.claude/worktrees/kanban-overhaul/cli/service-env.mjs +0 -139
  905. package/.claude/worktrees/kanban-overhaul/cli/service.mjs +0 -492
  906. package/.claude/worktrees/kanban-overhaul/cli/update.mjs +0 -29
  907. package/.claude/worktrees/kanban-overhaul/cli/utils.mjs +0 -221
  908. package/.claude/worktrees/kanban-overhaul/cli/worker-dispatcher.mjs +0 -259
  909. package/.claude/worktrees/kanban-overhaul/config/AGENTS.md +0 -595
  910. package/.claude/worktrees/kanban-overhaul/config/agents/_shared/AGENT_BASELINE.md +0 -155
  911. package/.claude/worktrees/kanban-overhaul/config/agents/_shared/CLINE_TOOLS.md +0 -398
  912. package/.claude/worktrees/kanban-overhaul/config/agents/_shared/SKILLS.md +0 -109
  913. package/.claude/worktrees/kanban-overhaul/config/agents/agent-browser.md +0 -90
  914. package/.claude/worktrees/kanban-overhaul/config/agents/baldr.md +0 -60
  915. package/.claude/worktrees/kanban-overhaul/config/agents/forseti.md +0 -60
  916. package/.claude/worktrees/kanban-overhaul/config/agents/frigg.md +0 -52
  917. package/.claude/worktrees/kanban-overhaul/config/agents/heimdall.md +0 -44
  918. package/.claude/worktrees/kanban-overhaul/config/agents/hermod.md +0 -64
  919. package/.claude/worktrees/kanban-overhaul/config/agents/mimir.md +0 -60
  920. package/.claude/worktrees/kanban-overhaul/config/agents/odin.md +0 -310
  921. package/.claude/worktrees/kanban-overhaul/config/agents/quick.md +0 -47
  922. package/.claude/worktrees/kanban-overhaul/config/agents/semble-search.md +0 -59
  923. package/.claude/worktrees/kanban-overhaul/config/agents/thor.md +0 -64
  924. package/.claude/worktrees/kanban-overhaul/config/agents/tyr.md +0 -67
  925. package/.claude/worktrees/kanban-overhaul/config/agents/vidarr.md +0 -65
  926. package/.claude/worktrees/kanban-overhaul/config/agents/vor.md +0 -62
  927. package/.claude/worktrees/kanban-overhaul/config/commands/audit.md +0 -5
  928. package/.claude/worktrees/kanban-overhaul/config/commands/bizar.md +0 -22
  929. package/.claude/worktrees/kanban-overhaul/config/commands/explain.md +0 -5
  930. package/.claude/worktrees/kanban-overhaul/config/commands/init.md +0 -26
  931. package/.claude/worktrees/kanban-overhaul/config/commands/learn.md +0 -5
  932. package/.claude/worktrees/kanban-overhaul/config/commands/plan.md +0 -30
  933. package/.claude/worktrees/kanban-overhaul/config/commands/plow-through.md +0 -47
  934. package/.claude/worktrees/kanban-overhaul/config/commands/pr-review.md +0 -5
  935. package/.claude/worktrees/kanban-overhaul/config/commands/setup-provider.md +0 -95
  936. package/.claude/worktrees/kanban-overhaul/config/commands/tailscale-serve.md +0 -97
  937. package/.claude/worktrees/kanban-overhaul/config/commands/team.md +0 -124
  938. package/.claude/worktrees/kanban-overhaul/config/commands/test.md +0 -60
  939. package/.claude/worktrees/kanban-overhaul/config/commands/validate.md +0 -66
  940. package/.claude/worktrees/kanban-overhaul/config/commands/visual-plan.md +0 -19
  941. package/.claude/worktrees/kanban-overhaul/config/hooks/PostToolUse +0 -66
  942. package/.claude/worktrees/kanban-overhaul/config/hooks/PreToolUse +0 -82
  943. package/.claude/worktrees/kanban-overhaul/config/hooks/README.md +0 -68
  944. package/.claude/worktrees/kanban-overhaul/config/hooks/TaskResume +0 -48
  945. package/.claude/worktrees/kanban-overhaul/config/hooks/TaskStart +0 -47
  946. package/.claude/worktrees/kanban-overhaul/config/hooks/UserPromptSubmit +0 -55
  947. package/.claude/worktrees/kanban-overhaul/config/rules/general.md +0 -9
  948. package/.claude/worktrees/kanban-overhaul/config/rules/git.md +0 -11
  949. package/.claude/worktrees/kanban-overhaul/config/rules/javascript.md +0 -10
  950. package/.claude/worktrees/kanban-overhaul/config/rules/python.md +0 -10
  951. package/.claude/worktrees/kanban-overhaul/config/rules/testing.md +0 -10
  952. package/.claude/worktrees/kanban-overhaul/config/rules/thinking.md +0 -56
  953. package/.claude/worktrees/kanban-overhaul/config/rules/uncertainty.md +0 -70
  954. package/.claude/worktrees/kanban-overhaul/config/skills/9router/SKILL.md +0 -80
  955. package/.claude/worktrees/kanban-overhaul/config/skills/9router-chat/SKILL.md +0 -73
  956. package/.claude/worktrees/kanban-overhaul/config/skills/9router-embeddings/SKILL.md +0 -69
  957. package/.claude/worktrees/kanban-overhaul/config/skills/9router-image/SKILL.md +0 -86
  958. package/.claude/worktrees/kanban-overhaul/config/skills/9router-stt/SKILL.md +0 -79
  959. package/.claude/worktrees/kanban-overhaul/config/skills/9router-tts/SKILL.md +0 -80
  960. package/.claude/worktrees/kanban-overhaul/config/skills/9router-web-fetch/SKILL.md +0 -99
  961. package/.claude/worktrees/kanban-overhaul/config/skills/9router-web-search/SKILL.md +0 -91
  962. package/.claude/worktrees/kanban-overhaul/config/skills/bizar/README.md +0 -9
  963. package/.claude/worktrees/kanban-overhaul/config/skills/bizar/SKILL.md +0 -447
  964. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/README.md +0 -28
  965. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/SKILL.md +0 -634
  966. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/agents/openai.yaml +0 -4
  967. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/concurrency.md +0 -320
  968. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/error-handling.md +0 -229
  969. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/memory-safety.md +0 -216
  970. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/modern-idioms.md +0 -282
  971. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-coding-standards/references/review-checklist.md +0 -96
  972. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/README.md +0 -28
  973. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/SKILL.md +0 -304
  974. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/agents/openai.yaml +0 -4
  975. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/coverage.md +0 -370
  976. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/framework-compare.md +0 -175
  977. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/host-test-for-embedded.md +0 -499
  978. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/mocking.md +0 -364
  979. package/.claude/worktrees/kanban-overhaul/config/skills/cpp-testing/references/tdd-workflow.md +0 -308
  980. package/.claude/worktrees/kanban-overhaul/config/skills/cubesandbox/SKILL.md +0 -148
  981. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/README.md +0 -41
  982. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/SKILL.md +0 -439
  983. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/agents/openai.yaml +0 -4
  984. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/freertos-patterns.md +0 -214
  985. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/host-tests.md +0 -164
  986. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/idf-py-commands.md +0 -157
  987. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/kconfig.md +0 -159
  988. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/logging-discipline.md +0 -118
  989. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/memory-and-iram.md +0 -137
  990. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/nvs.md +0 -121
  991. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/references/packed-structs.md +0 -192
  992. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/scripts/idf_env.sh +0 -47
  993. package/.claude/worktrees/kanban-overhaul/config/skills/embedded-esp-idf/scripts/size_check.sh +0 -77
  994. package/.claude/worktrees/kanban-overhaul/config/skills/glyph/SKILL.md +0 -163
  995. package/.claude/worktrees/kanban-overhaul/config/skills/harness-engineering/SKILL.md +0 -142
  996. package/.claude/worktrees/kanban-overhaul/config/skills/lightrag/SKILL.md +0 -81
  997. package/.claude/worktrees/kanban-overhaul/config/skills/memory-protocol/SKILL.md +0 -105
  998. package/.claude/worktrees/kanban-overhaul/config/skills/obsidian/SKILL.md +0 -306
  999. package/.claude/worktrees/kanban-overhaul/config/skills/read-the-damn-docs/SKILL.md +0 -113
  1000. package/.claude/worktrees/kanban-overhaul/config/skills/self-improvement/SKILL.md +0 -64
  1001. package/.claude/worktrees/kanban-overhaul/config/trigger-patterns.json +0 -186
  1002. package/.claude/worktrees/kanban-overhaul/docker-compose.yml +0 -50
  1003. package/.claude/worktrees/kanban-overhaul/docs/A11Y.md +0 -81
  1004. package/.claude/worktrees/kanban-overhaul/docs/DEPLOY.md +0 -360
  1005. package/.claude/worktrees/kanban-overhaul/docs/DOCKER.md +0 -250
  1006. package/.claude/worktrees/kanban-overhaul/docs/INDEX.md +0 -223
  1007. package/.claude/worktrees/kanban-overhaul/docs/PLUGIN_REGISTRY.md +0 -107
  1008. package/.claude/worktrees/kanban-overhaul/docs/RELEASING.md +0 -693
  1009. package/.claude/worktrees/kanban-overhaul/docs/architecture.md +0 -317
  1010. package/.claude/worktrees/kanban-overhaul/docs/code-review.md +0 -242
  1011. package/.claude/worktrees/kanban-overhaul/docs/curator.md +0 -144
  1012. package/.claude/worktrees/kanban-overhaul/docs/dashboard-ui-migration.md +0 -807
  1013. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-001-cline-rewrite.md +0 -114
  1014. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-002-in-process-clinecore.md +0 -139
  1015. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-003-in-process-memory-vault.md +0 -101
  1016. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-004-cline-agent-teams.md +0 -112
  1017. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-005-bg-agents-via-dashboard.md +0 -77
  1018. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-006-kanban-board.md +0 -69
  1019. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-007-tool-approval-gate.md +0 -147
  1020. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-008-skill-curator.md +0 -100
  1021. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-009-pre-compaction-flush.md +0 -106
  1022. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-010-knowledge-graph-tools.md +0 -95
  1023. package/.claude/worktrees/kanban-overhaul/docs/decisions/DEC-011-claude-code-migration.md +0 -172
  1024. package/.claude/worktrees/kanban-overhaul/docs/graph-tools.md +0 -130
  1025. package/.claude/worktrees/kanban-overhaul/docs/migration-guide.md +0 -471
  1026. package/.claude/worktrees/kanban-overhaul/docs/migrations/cline-replacement.md +0 -118
  1027. package/.claude/worktrees/kanban-overhaul/docs/postmortems/2026-06-18-plugin-state-deadlock.md +0 -250
  1028. package/.claude/worktrees/kanban-overhaul/docs/quality-document.md +0 -74
  1029. package/.claude/worktrees/kanban-overhaul/docs/releases/v0.5.2.md +0 -66
  1030. package/.claude/worktrees/kanban-overhaul/docs/releases/v0.5.4.md +0 -85
  1031. package/.claude/worktrees/kanban-overhaul/docs/releases/v2.3.0.md +0 -96
  1032. package/.claude/worktrees/kanban-overhaul/docs/releases/v3.24.0.md +0 -155
  1033. package/.claude/worktrees/kanban-overhaul/docs/releases/v4.0.0.md +0 -123
  1034. package/.claude/worktrees/kanban-overhaul/docs/releases/v7.0.0.md +0 -173
  1035. package/.claude/worktrees/kanban-overhaul/docs/safety.md +0 -216
  1036. package/.claude/worktrees/kanban-overhaul/feature_list.json +0 -1297
  1037. package/.claude/worktrees/kanban-overhaul/init.sh +0 -211
  1038. package/.claude/worktrees/kanban-overhaul/install.sh +0 -498
  1039. package/.claude/worktrees/kanban-overhaul/mods-examples/impeccable/INSTRUCTIONS.md +0 -82
  1040. package/.claude/worktrees/kanban-overhaul/mods-examples/impeccable/mod.json +0 -37
  1041. package/.claude/worktrees/kanban-overhaul/mods-examples/impeccable/route.mjs +0 -136
  1042. package/.claude/worktrees/kanban-overhaul/mods-examples/impeccable/web/index.html +0 -180
  1043. package/.claude/worktrees/kanban-overhaul/mods-examples/lightrag/INSTRUCTIONS.md +0 -81
  1044. package/.claude/worktrees/kanban-overhaul/mods-examples/lightrag/mod.json +0 -61
  1045. package/.claude/worktrees/kanban-overhaul/mods-examples/lightrag/route.mjs +0 -461
  1046. package/.claude/worktrees/kanban-overhaul/mods-examples/lightrag/web/index.html +0 -263
  1047. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/INSTRUCTIONS.md +0 -87
  1048. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/agents/thor.md +0 -64
  1049. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/mod.json +0 -36
  1050. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/route.mjs +0 -98
  1051. package/.claude/worktrees/kanban-overhaul/mods-examples/ponytail/web/index.html +0 -126
  1052. package/.claude/worktrees/kanban-overhaul/package.json +0 -154
  1053. package/.claude/worktrees/kanban-overhaul/packages/sdk/ARCHITECTURE.md +0 -70
  1054. package/.claude/worktrees/kanban-overhaul/packages/sdk/LICENSE +0 -21
  1055. package/.claude/worktrees/kanban-overhaul/packages/sdk/README.md +0 -80
  1056. package/.claude/worktrees/kanban-overhaul/packages/sdk/package.json +0 -30
  1057. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/agent-registry.ts +0 -304
  1058. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/consensus/byzantine.ts +0 -587
  1059. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/consensus/index.ts +0 -147
  1060. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/consensus/queen.ts +0 -173
  1061. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/consensus/types.ts +0 -199
  1062. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/dangerous-patterns.ts +0 -127
  1063. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/audit.ts +0 -156
  1064. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/budget.ts +0 -269
  1065. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/envelope.ts +0 -144
  1066. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/hmac.ts +0 -160
  1067. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/index.ts +0 -443
  1068. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/pii.ts +0 -241
  1069. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/policy.ts +0 -112
  1070. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/federation/trust.ts +0 -146
  1071. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/fingerprint.ts +0 -0
  1072. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/index.ts +0 -114
  1073. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/mcp/bin.ts +0 -51
  1074. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/mcp/server.ts +0 -848
  1075. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/memory/index.ts +0 -160
  1076. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/codemod-intent.ts +0 -125
  1077. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/index.ts +0 -247
  1078. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/memory-distillation-shim.mjs +0 -18
  1079. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/memory-distillation.ts +0 -249
  1080. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/model-router.ts +0 -235
  1081. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/router/q-learning-router.ts +0 -304
  1082. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/swarm-topology.ts +0 -279
  1083. package/.claude/worktrees/kanban-overhaul/packages/sdk/src/version.ts +0 -4
  1084. package/.claude/worktrees/kanban-overhaul/packages/sdk/tsconfig.json +0 -25
  1085. package/.claude/worktrees/kanban-overhaul/packages/sdk/vitest.config.ts +0 -9
  1086. package/.claude/worktrees/kanban-overhaul/plugins/bizar/ARCHITECTURE.md +0 -72
  1087. package/.claude/worktrees/kanban-overhaul/plugins/bizar/CONSTRAINTS.md +0 -62
  1088. package/.claude/worktrees/kanban-overhaul/plugins/bizar/LICENSE +0 -21
  1089. package/.claude/worktrees/kanban-overhaul/plugins/bizar/README.md +0 -46
  1090. package/.claude/worktrees/kanban-overhaul/plugins/bizar/index.ts +0 -50
  1091. package/.claude/worktrees/kanban-overhaul/plugins/bizar/package.json +0 -18
  1092. package/.claude/worktrees/kanban-overhaul/plugins/bizar/tsconfig.json +0 -29
  1093. package/.claude/worktrees/kanban-overhaul/scripts/bh-full-e2e.mjs +0 -298
  1094. package/.claude/worktrees/kanban-overhaul/scripts/check-agents.mjs +0 -73
  1095. package/.claude/worktrees/kanban-overhaul/scripts/check-arch.sh +0 -80
  1096. package/.claude/worktrees/kanban-overhaul/scripts/check-deps.mjs +0 -492
  1097. package/.claude/worktrees/kanban-overhaul/scripts/clean-state-check.sh +0 -81
  1098. package/.claude/worktrees/kanban-overhaul/scripts/git-hooks/pre-commit +0 -59
  1099. package/.claude/worktrees/kanban-overhaul/scripts/git-hooks/pre-push +0 -54
  1100. package/.claude/worktrees/kanban-overhaul/scripts/install-hooks.sh +0 -29
  1101. package/.claude/worktrees/kanban-overhaul/scripts/install-service.mjs +0 -190
  1102. package/.claude/worktrees/kanban-overhaul/scripts/mirror-claude-md.sh +0 -78
  1103. package/.claude/worktrees/kanban-overhaul/scripts/session-trace.sh +0 -52
  1104. package/.claude/worktrees/kanban-overhaul/scripts/test-in-container.sh +0 -157
  1105. package/.claude/worktrees/kanban-overhaul/scripts/verify-feature.sh +0 -102
  1106. package/.claude/worktrees/kanban-overhaul/skills-lock.json +0 -11
  1107. package/.claude/worktrees/kanban-overhaul/templates/clean-state-checklist.md +0 -55
  1108. package/.claude/worktrees/kanban-overhaul/templates/deploy/cloudflare/README.md +0 -32
  1109. package/.claude/worktrees/kanban-overhaul/templates/deploy/cloudflare/functions-index.template.js +0 -15
  1110. package/.claude/worktrees/kanban-overhaul/templates/deploy/cloudflare/wrangler.toml.template +0 -9
  1111. package/.claude/worktrees/kanban-overhaul/templates/deploy/docker/.env.template +0 -16
  1112. package/.claude/worktrees/kanban-overhaul/templates/deploy/docker/README.md +0 -58
  1113. package/.claude/worktrees/kanban-overhaul/templates/deploy/docker/docker-compose.template.yml +0 -23
  1114. package/.claude/worktrees/kanban-overhaul/templates/deploy/fly/README.md +0 -35
  1115. package/.claude/worktrees/kanban-overhaul/templates/deploy/fly/fly.toml.template +0 -28
  1116. package/.claude/worktrees/kanban-overhaul/templates/deploy/vercel/README.md +0 -29
  1117. package/.claude/worktrees/kanban-overhaul/templates/deploy/vercel/api-index.template.js +0 -18
  1118. package/.claude/worktrees/kanban-overhaul/templates/deploy/vercel/vercel.json.template +0 -16
  1119. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/README.md +0 -58
  1120. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/citation.json +0 -16
  1121. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/code-review.json +0 -16
  1122. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/code-search-basic.json +0 -28
  1123. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/concise-output.json +0 -16
  1124. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/context-window.json +0 -16
  1125. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/error-recovery.json +0 -16
  1126. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/json-output.json +0 -20
  1127. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/latency-bounds.json +0 -16
  1128. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/multi-language.json +0 -16
  1129. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/regression-suite.json +0 -79
  1130. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/response-format.json +0 -30
  1131. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/safe-paths.json +0 -16
  1132. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/tool-call-correctness.json +0 -24
  1133. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/tool-call-multi-step.json +0 -18
  1134. package/.claude/worktrees/kanban-overhaul/templates/eval-fixtures/unicode-handling.json +0 -16
  1135. package/.claude/worktrees/kanban-overhaul/templates/evaluator-rubric.md +0 -50
  1136. package/.claude/worktrees/kanban-overhaul/templates/plan/htmx.min.js +0 -1
  1137. package/.claude/worktrees/kanban-overhaul/templates/plan/library/bug-investigation.mdx +0 -79
  1138. package/.claude/worktrees/kanban-overhaul/templates/plan/library/decision-record.mdx +0 -71
  1139. package/.claude/worktrees/kanban-overhaul/templates/plan/library/feature-design.mdx +0 -92
  1140. package/.claude/worktrees/kanban-overhaul/templates/plan/meta.json.template +0 -8
  1141. package/.claude/worktrees/kanban-overhaul/templates/plan/plan.mdx.template +0 -46
  1142. package/.claude/worktrees/kanban-overhaul/templates/plugin-template/README.md +0 -121
  1143. package/.claude/worktrees/kanban-overhaul/templates/plugin-template/index.js +0 -66
  1144. package/.claude/worktrees/kanban-overhaul/templates/plugin-template/plugin.json +0 -42
  1145. package/.claude/worktrees/kanban-overhaul/templates/plugin-template/tests/plugin.test.js +0 -83
  1146. package/.claude/worktrees/kanban-overhaul/templates/schedules/daily-backup.json +0 -12
  1147. package/.claude/worktrees/kanban-overhaul/templates/schedules/daily-cleanup.json +0 -12
  1148. package/.claude/worktrees/kanban-overhaul/templates/schedules/hourly-health-check.json +0 -12
  1149. package/.claude/worktrees/kanban-overhaul/templates/schedules/webhook-on-push.json +0 -13
  1150. package/.claude/worktrees/kanban-overhaul/templates/schedules/weekly-digest.json +0 -13
  1151. package/.claude/worktrees/kanban-overhaul/templates/sprint-contract.md +0 -47
  1152. package/.claude/worktrees/kanban-overhaul/tsconfig.json +0 -44
  1153. package/.claude/worktrees/kanban-overhaul/vite.config.ts +0 -51
  1154. package/bizar-dash/dist/assets/ActivityFeed-BXIkGGQ1.js +0 -16
  1155. package/bizar-dash/dist/assets/ActivityFeed-BXIkGGQ1.js.map +0 -1
  1156. package/bizar-dash/dist/assets/ActivityView-CBxNNrZa.js +0 -12
  1157. package/bizar-dash/dist/assets/ActivityView-CBxNNrZa.js.map +0 -1
  1158. package/bizar-dash/dist/assets/AgentsView-uv4l21AH.js +0 -23
  1159. package/bizar-dash/dist/assets/AgentsView-uv4l21AH.js.map +0 -1
  1160. package/bizar-dash/dist/assets/BackgroundJobsView-CB4WXIpk.js +0 -6
  1161. package/bizar-dash/dist/assets/BackgroundJobsView-CB4WXIpk.js.map +0 -1
  1162. package/bizar-dash/dist/assets/Card-CeZsWlcP.js +0 -1
  1163. package/bizar-dash/dist/assets/Card-CeZsWlcP.js.map +0 -1
  1164. package/bizar-dash/dist/assets/Chip-OPjSKl2I.js +0 -1
  1165. package/bizar-dash/dist/assets/Chip-OPjSKl2I.js.map +0 -1
  1166. package/bizar-dash/dist/assets/EmptyState-BrLA8mbE.js +0 -1
  1167. package/bizar-dash/dist/assets/EmptyState-BrLA8mbE.js.map +0 -1
  1168. package/bizar-dash/dist/assets/GoalsView-B8R-kxQr.js +0 -11
  1169. package/bizar-dash/dist/assets/GoalsView-B8R-kxQr.js.map +0 -1
  1170. package/bizar-dash/dist/assets/Grid-B7NgNtff.js +0 -1
  1171. package/bizar-dash/dist/assets/Grid-B7NgNtff.js.map +0 -1
  1172. package/bizar-dash/dist/assets/Input-BW_5Sl6N.js +0 -1
  1173. package/bizar-dash/dist/assets/Input-BW_5Sl6N.js.map +0 -1
  1174. package/bizar-dash/dist/assets/KanbanCard-B-NOSfMN.js +0 -21
  1175. package/bizar-dash/dist/assets/KanbanCard-B-NOSfMN.js.map +0 -1
  1176. package/bizar-dash/dist/assets/LibrariesView-D6eB7B2A.js +0 -67
  1177. package/bizar-dash/dist/assets/LibrariesView-D6eB7B2A.js.map +0 -1
  1178. package/bizar-dash/dist/assets/MemoryView-MK4m1KbR.js +0 -13
  1179. package/bizar-dash/dist/assets/MemoryView-MK4m1KbR.js.map +0 -1
  1180. package/bizar-dash/dist/assets/OverviewView-CHavfYBa.js +0 -1
  1181. package/bizar-dash/dist/assets/OverviewView-CHavfYBa.js.map +0 -1
  1182. package/bizar-dash/dist/assets/SchedulesView-zV-0pbsz.js +0 -1
  1183. package/bizar-dash/dist/assets/SchedulesView-zV-0pbsz.js.map +0 -1
  1184. package/bizar-dash/dist/assets/Select-B6Ho36Tq.js +0 -11
  1185. package/bizar-dash/dist/assets/Select-B6Ho36Tq.js.map +0 -1
  1186. package/bizar-dash/dist/assets/SettingsRow-Br21uRFz.js +0 -1
  1187. package/bizar-dash/dist/assets/SettingsRow-Br21uRFz.js.map +0 -1
  1188. package/bizar-dash/dist/assets/SettingsView-Cx3uJrus.js +0 -38
  1189. package/bizar-dash/dist/assets/SettingsView-Cx3uJrus.js.map +0 -1
  1190. package/bizar-dash/dist/assets/Sheet-Cmu_4Zea.js +0 -1
  1191. package/bizar-dash/dist/assets/Sheet-Cmu_4Zea.js.map +0 -1
  1192. package/bizar-dash/dist/assets/Slider-B_jPr-SR.js +0 -1
  1193. package/bizar-dash/dist/assets/Slider-B_jPr-SR.js.map +0 -1
  1194. package/bizar-dash/dist/assets/Sparkline-Cmqw0N39.js +0 -1
  1195. package/bizar-dash/dist/assets/Sparkline-Cmqw0N39.js.map +0 -1
  1196. package/bizar-dash/dist/assets/Switch-C7Qyu50Y.js +0 -10
  1197. package/bizar-dash/dist/assets/Switch-C7Qyu50Y.js.map +0 -1
  1198. package/bizar-dash/dist/assets/TasksView-BXADmjgb.js +0 -1
  1199. package/bizar-dash/dist/assets/TasksView-BXADmjgb.js.map +0 -1
  1200. package/bizar-dash/dist/assets/Textarea-KIN98DVH.js +0 -1
  1201. package/bizar-dash/dist/assets/Textarea-KIN98DVH.js.map +0 -1
  1202. package/bizar-dash/dist/assets/ViewHeader-CPbqI-w8.js +0 -6
  1203. package/bizar-dash/dist/assets/ViewHeader-CPbqI-w8.js.map +0 -1
  1204. package/bizar-dash/dist/assets/brain-jN_ldx3U.js +0 -6
  1205. package/bizar-dash/dist/assets/brain-jN_ldx3U.js.map +0 -1
  1206. package/bizar-dash/dist/assets/calendar-DZGgPP2_.js +0 -6
  1207. package/bizar-dash/dist/assets/calendar-DZGgPP2_.js.map +0 -1
  1208. package/bizar-dash/dist/assets/circle-check-XhUtiACZ.js +0 -6
  1209. package/bizar-dash/dist/assets/circle-check-XhUtiACZ.js.map +0 -1
  1210. package/bizar-dash/dist/assets/clock-BXBnSbox.js +0 -6
  1211. package/bizar-dash/dist/assets/clock-BXBnSbox.js.map +0 -1
  1212. package/bizar-dash/dist/assets/cmdk-D15rXxc5.js +0 -80
  1213. package/bizar-dash/dist/assets/cmdk-D15rXxc5.js.map +0 -1
  1214. package/bizar-dash/dist/assets/dnd-kit-Bormfg7j.js +0 -5
  1215. package/bizar-dash/dist/assets/dnd-kit-Bormfg7j.js.map +0 -1
  1216. package/bizar-dash/dist/assets/git-pull-request-BCt0CEjc.js +0 -11
  1217. package/bizar-dash/dist/assets/git-pull-request-BCt0CEjc.js.map +0 -1
  1218. package/bizar-dash/dist/assets/index-C0JBGB5M.js +0 -1
  1219. package/bizar-dash/dist/assets/index-C0JBGB5M.js.map +0 -1
  1220. package/bizar-dash/dist/assets/index-CrWI7sQR.js +0 -1
  1221. package/bizar-dash/dist/assets/index-CrWI7sQR.js.map +0 -1
  1222. package/bizar-dash/dist/assets/main-CCimEcWH.js +0 -134
  1223. package/bizar-dash/dist/assets/main-CCimEcWH.js.map +0 -1
  1224. package/bizar-dash/dist/assets/play-B0rTjpSg.js +0 -6
  1225. package/bizar-dash/dist/assets/play-B0rTjpSg.js.map +0 -1
  1226. package/bizar-dash/dist/assets/plus-BaTQsS9G.js +0 -6
  1227. package/bizar-dash/dist/assets/plus-BaTQsS9G.js.map +0 -1
  1228. package/bizar-dash/dist/assets/refresh-cw-CoatVcs3.js +0 -6
  1229. package/bizar-dash/dist/assets/refresh-cw-CoatVcs3.js.map +0 -1
  1230. package/bizar-dash/dist/assets/terminal-k-1HFHcN.js +0 -11
  1231. package/bizar-dash/dist/assets/terminal-k-1HFHcN.js.map +0 -1
  1232. package/bizar-dash/dist/assets/trash-2-DtpKnAn2.js +0 -6
  1233. package/bizar-dash/dist/assets/trash-2-DtpKnAn2.js.map +0 -1
  1234. package/bizar-dash/dist/assets/triangle-alert-FHSs_e5b.js +0 -6
  1235. package/bizar-dash/dist/assets/triangle-alert-FHSs_e5b.js.map +0 -1
  1236. package/bizar-dash/dist/assets/wrench-CbBE0oQ0.js +0 -6
  1237. package/bizar-dash/dist/assets/wrench-CbBE0oQ0.js.map +0 -1
  1238. package/bizar-dash/dist/v8.html +0 -19
  1239. package/bizar-dash/src/web/v8/views/Tasks/CommandPalettePlaceholder.tsx +0 -106
  1240. package/bizar-dash/src/web/v8/views/Tasks/TasksKanbanPlaceholder.tsx +0 -62
  1241. package/bizar-dash/src/web/v8.html +0 -17
  1242. package/packages/sdk/.harness/agents.json +0 -17
  1243. package/packages/sdk/.harness/topology.json +0 -4
  1244. package/packages/sdk/ARCHITECTURE.md +0 -70
  1245. package/packages/sdk/README.md +0 -80
  1246. package/packages/sdk/src/agent-registry.ts +0 -304
  1247. package/packages/sdk/src/consensus/byzantine.ts +0 -587
  1248. package/packages/sdk/src/consensus/index.ts +0 -147
  1249. package/packages/sdk/src/consensus/queen.ts +0 -173
  1250. package/packages/sdk/src/consensus/types.ts +0 -199
  1251. package/packages/sdk/src/dangerous-patterns.ts +0 -127
  1252. package/packages/sdk/src/federation/audit.ts +0 -156
  1253. package/packages/sdk/src/federation/budget.ts +0 -269
  1254. package/packages/sdk/src/federation/envelope.ts +0 -144
  1255. package/packages/sdk/src/federation/hmac.ts +0 -160
  1256. package/packages/sdk/src/federation/index.ts +0 -443
  1257. package/packages/sdk/src/federation/pii.ts +0 -241
  1258. package/packages/sdk/src/federation/policy.ts +0 -112
  1259. package/packages/sdk/src/federation/trust.ts +0 -146
  1260. package/packages/sdk/src/fingerprint.ts +0 -0
  1261. package/packages/sdk/src/index.ts +0 -114
  1262. package/packages/sdk/src/mcp/bin.ts +0 -51
  1263. package/packages/sdk/src/mcp/server.ts +0 -848
  1264. package/packages/sdk/src/memory/index.ts +0 -160
  1265. package/packages/sdk/src/router/codemod-intent.ts +0 -125
  1266. package/packages/sdk/src/router/index.ts +0 -247
  1267. package/packages/sdk/src/router/memory-distillation-shim.mjs +0 -18
  1268. package/packages/sdk/src/router/memory-distillation.ts +0 -249
  1269. package/packages/sdk/src/router/model-router.ts +0 -235
  1270. package/packages/sdk/src/router/q-learning-router.ts +0 -304
  1271. package/packages/sdk/src/swarm-topology.ts +0 -279
  1272. package/packages/sdk/src/version.ts +0 -4
  1273. package/packages/sdk/tests/agent-registry.test.ts +0 -285
  1274. package/packages/sdk/tests/consensus.test.ts +0 -376
  1275. package/packages/sdk/tests/federation/audit.test.ts +0 -164
  1276. package/packages/sdk/tests/federation/budget.test.ts +0 -189
  1277. package/packages/sdk/tests/federation/envelope.test.ts +0 -120
  1278. package/packages/sdk/tests/federation/hmac.test.ts +0 -194
  1279. package/packages/sdk/tests/federation/orchestrator.test.ts +0 -176
  1280. package/packages/sdk/tests/federation/pii.test.ts +0 -106
  1281. package/packages/sdk/tests/federation/policy.test.ts +0 -140
  1282. package/packages/sdk/tests/federation/trust.test.ts +0 -124
  1283. package/packages/sdk/tests/mcp-tools.test.ts +0 -204
  1284. package/packages/sdk/tests/memory-distillation.test.mjs +0 -186
  1285. package/packages/sdk/tests/model-router.test.mjs +0 -108
  1286. package/packages/sdk/tests/q-learning-router.test.mjs +0 -100
  1287. package/packages/sdk/tests/router-orchestrator.test.mjs +0 -172
  1288. package/packages/sdk/tests/router.test.mjs +0 -91
  1289. package/packages/sdk/tests/sdk.test.mjs +0 -172
  1290. package/packages/sdk/tests/swarm-topology.test.ts +0 -258
  1291. package/packages/sdk/tsconfig.json +0 -25
  1292. /package/{.claude/worktrees/kanban-overhaul/bizar-dash/src/web/v8.html → bizar-dash/src/web/index.html} +0 -0
  1293. /package/{.claude/worktrees/kanban-overhaul → plugins/bizar}/LICENSE +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LibrariesView-BXjfXc-o.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/chevron-left.js","../../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/@radix-ui/react-popover/dist/index.mjs","../../src/web/v8/ui/feedback/Popover.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","../../src/web/v8/ui/libraries/LibraryItem.tsx","../../src/web/v8/ui/libraries/LibraryGrid.tsx","../../src/web/v8/views/Libraries/LibrariesView.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","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\";\n\n// src/popover.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 { 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 } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n deferPointerDownOutside: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport * as RxPopover from '@radix-ui/react-popover';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Popover — a small floating panel anchored to a trigger.\n *\n * Use for: kanban filter dropdowns, date pickers, color pickers, info panels.\n * For menus (a list of actions) use DropdownMenu. For right-click use ContextMenu.\n */\n\nexport interface PopoverProps extends Omit<ComponentPropsWithoutRef<typeof RxPopover.Root>, 'children'> {\n children: ReactNode;\n}\n\nexport const Popover = ({ children, ...rest }: PopoverProps) => (\n <RxPopover.Root {...rest}>{children}</RxPopover.Root>\n);\n\nexport const PopoverTrigger = RxPopover.Trigger;\nexport const PopoverAnchor = RxPopover.Anchor;\nexport const PopoverClose = RxPopover.Close;\n\nexport interface PopoverContentProps extends ComponentPropsWithoutRef<typeof RxPopover.Content> {\n children: ReactNode;\n}\n\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(function PopoverContent(\n props,\n ref,\n) {\n const { className, children, sideOffset = 6, ...rest } = props;\n return (\n <RxPopover.Portal>\n <RxPopover.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cx('v8-popover', className)}\n style={{\n background: 'var(--surface-popover)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n boxShadow: 'var(--shadow-3)',\n padding: 'var(--space-3)',\n minWidth: 200,\n maxWidth: 360,\n zIndex: 'var(--z-popover)',\n }}\n {...rest}\n >\n {children}\n <RxPopover.Arrow style={{ fill: 'var(--surface-popover)' }} />\n </RxPopover.Content>\n </RxPopover.Portal>\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});","import { type ReactNode } from 'react';\nimport { ChevronRight, Power } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\nimport { Badge, type BadgeTone } from '../data/Badge.js';\n\n/**\n * LibraryItem — generic inventory card used by the Skill/MCP/Hook libraries.\n *\n * PLAN.md: each \"library\" lists the same three facts about an installable\n * resource: identity (name + slug), status (enabled/disabled/error), and\n * provenance (description, version, last-used, owner). LibraryItem renders\n * those facts consistently so all three libraries feel like one product.\n */\n\nexport type LibraryStatus = 'enabled' | 'disabled' | 'error';\n\nexport interface LibraryItemProps {\n id: string;\n /** Display name (e.g. \"Frigg — Codebase Q&A\"). */\n name: string;\n /** Identifier (e.g. \"frigg\", \"semble\", \"PreToolUse:check-arch\"). */\n slug: string;\n status: LibraryStatus;\n description?: string;\n /** One-line metadata row (e.g. \"v1.2.0 · used 14× today · @anthropic\"). */\n meta?: string;\n /** Optional trailing action area (toggle, menu trigger, etc). */\n actions?: ReactNode;\n /** Click handler — opens detail. */\n onOpen?: () => void;\n className?: string;\n}\n\nconst STATUS_LABEL: Record<LibraryStatus, string> = {\n enabled: 'Enabled',\n disabled: 'Disabled',\n error: 'Error',\n};\n\nconst STATUS_TONE: Record<LibraryStatus, BadgeTone> = {\n enabled: 'success',\n disabled: 'neutral',\n error: 'danger',\n};\n\nexport function LibraryItem(props: LibraryItemProps) {\n const { name, slug, status, description, meta, actions, onOpen, className } = props;\n\n return (\n <button\n type=\"button\"\n onClick={onOpen}\n className={cx('v8-library-item', `v8-library-item--${status}`, className)}\n style={{\n display: 'flex',\n alignItems: 'flex-start',\n gap: 'var(--space-3)',\n width: '100%',\n padding: 'var(--space-3) var(--space-4)',\n background: 'var(--surface-1)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n textAlign: 'left',\n cursor: onOpen !== undefined ? 'pointer' : 'default',\n font: 'inherit',\n color: 'inherit',\n transition: 'border-color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out)',\n }}\n >\n <span\n aria-hidden=\"true\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 28,\n height: 28,\n marginTop: 2,\n borderRadius: 'var(--radius-sm)',\n background:\n status === 'enabled'\n ? 'color-mix(in oklch, var(--success) 14%, transparent)'\n : status === 'error'\n ? 'color-mix(in oklch, var(--danger) 14%, transparent)'\n : 'var(--surface-2)',\n color:\n status === 'enabled' ? 'var(--success)' : status === 'error' ? 'var(--danger)' : 'var(--fg-muted)',\n flexShrink: 0,\n }}\n >\n <Power size={14} aria-hidden=\"true\" />\n </span>\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-2)' }}>\n <span\n style={{\n fontSize: 'var(--fs-13)',\n fontWeight: 600,\n color: 'var(--fg)',\n lineHeight: 'var(--lh-snug)',\n }}\n >\n {name}\n </span>\n <code\n style={{\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-subtle)',\n fontFamily: 'var(--font-mono, ui-monospace, monospace)',\n }}\n >\n {slug}\n </code>\n </div>\n {description !== undefined && (\n <div\n style={{\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n marginTop: 2,\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n }}\n >\n {description}\n </div>\n )}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 'var(--space-2)',\n marginTop: 6,\n }}\n >\n {meta !== undefined ? (\n <span style={{ fontSize: 'var(--fs-12)', color: 'var(--fg-subtle)' }}>{meta}</span>\n ) : (\n <span />\n )}\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-2)' }}>\n <Badge tone={STATUS_TONE[status]} size=\"sm\">\n {STATUS_LABEL[status]}\n </Badge>\n {actions}\n <ChevronRight size={14} aria-hidden=\"true\" style={{ color: 'var(--fg-subtle)' }} />\n </div>\n </div>\n </div>\n <style>{`\n .v8-library-item:hover {\n border-color: var(--accent);\n background: var(--surface-2);\n }\n `}</style>\n </button>\n );\n}","import { type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * LibraryGrid — responsive grid for LibraryItem lists.\n *\n * Renders 1 column on narrow viewports, 2 columns on md, 3 columns on lg.\n * Uses CSS grid + auto-fit; items auto-size to fill available space.\n */\n\nexport interface LibraryGridProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function LibraryGrid(props: LibraryGridProps) {\n const { children, className } = props;\n return (\n <div\n className={cx('v8-library-grid', className)}\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(min(100%, 320px), 1fr))',\n gap: 'var(--space-3)',\n }}\n >\n {children}\n </div>\n );\n}","import { useEffect, useState, useCallback } from 'react';\nimport { Stack } from '../../ui/primitives/Stack.js';\nimport { ViewHeader } from '../../ui/data/ViewHeader.js';\nimport { LibraryGrid, LibraryItem, type LibraryItemProps, type LibraryStatus } from '../../ui/index.js';\nimport { Skeleton } from '../../ui/feedback/Skeleton.js';\nimport { EmptyState } from '../../ui/feedback/EmptyState.js';\nimport { ErrorState } from '../../ui/feedback/ErrorState.js';\nimport { useFetch } from '../../data/useFetch.js';\nimport { useWsMessage } from '../../data/useWebSocket.js';\nimport type { LibraryItem as LibItem } from '../../data/types.js';\n\n/**\n * LibrariesView — Sprint S10. Generic Skills / MCPs / Hooks surface.\n *\n * The parent (`Router.tsx`) picks the data source per kind. This\n * view pulls live data from `/api/skills`, `/api/mcps`,\n * `/api/hooks` instead of seeded arrays.\n */\n\nexport type LibraryKind = 'skills' | 'mcps' | 'hooks';\n\nconst KIND_LABEL: Record<LibraryKind, string> = {\n skills: 'Skills',\n mcps: 'MCPs',\n hooks: 'Hooks',\n};\n\nconst KIND_DESCRIPTION: Record<LibraryKind, string> = {\n skills: 'Bizar skill packs. Auto-loaded by name or dispatched via the Skill tool.',\n mcps: 'MCP server registrations under `.claude/settings.json` → `mcpServers`.',\n hooks: 'Executable hook scripts (PreToolUse / PostToolUse / SessionStart / SessionEnd).',\n};\n\nconst ENDPOINT: Record<LibraryKind, string> = {\n skills: '/api/skills',\n mcps: '/api/skills?kind=mcps',\n hooks: '/api/skills?kind=hooks',\n};\n\nconst CHANGE_EVENTS: Record<LibraryKind, readonly string[]> = {\n skills: ['skills:change', 'agents:change'] as const,\n mcps: ['mcps:change', 'agents:change'] as const,\n hooks: ['hooks:change', 'agents:change'] as const,\n};\n// Stable hook count: always register listeners for all possible events,\n// filter inside the handler so kind navigation never changes hook order.\nconst ALL_EVENTS = ['skills:change', 'mcps:change', 'hooks:change', 'agents:change'] as const;\n\nfunction mapItem(it: LibItem): LibraryItemProps {\n const status: LibraryStatus =\n it.status === 'enabled' || it.status === 'disabled' || it.status === 'error'\n ? it.status\n : 'disabled';\n return {\n id: it.id,\n name: it.name,\n slug: it.slug ?? it.id,\n status,\n description: it.description,\n meta: it.meta,\n };\n}\n\nexport interface LibrariesViewProps {\n kind: LibraryKind;\n}\n\nexport function LibrariesView(props: LibrariesViewProps): JSX.Element {\n const { kind } = props;\n const url = ENDPOINT[kind];\n const res = useFetch<{ skills?: LibItem[]; items?: LibItem[]; count?: number }>(url);\n const [bust, setBust] = useState(0);\n\n // Force a re-fetch when the matching change event fires. Hook count\n // is fixed (ALL_EVENTS.length) so navigating between kinds can't trip\n // React's \"Rendered fewer hooks than expected\" runtime guard.\n const events = CHANGE_EVENTS[kind];\n const handler = useCallback((): void => setBust((n) => n + 1), []);\n for (const evt of ALL_EVENTS) {\n useWsMessage(evt, events.includes(evt) ? handler : () => {});\n }\n\n useEffect(() => {\n if (bust > 0) res.refetch();\n }, [bust, res]);\n\n const items: LibraryItemProps[] = (res.data?.skills || res.data?.items || []).map(mapItem);\n\n return (\n <Stack gap={5} data-testid={`${kind}-view`}>\n <ViewHeader title={KIND_LABEL[kind]} description={KIND_DESCRIPTION[kind]} />\n {res.loading ? (\n <Skeleton style={{ height: 240 }} />\n ) : res.error && items.length === 0 ? (\n <ErrorState\n block\n title={`Couldn't load ${KIND_LABEL[kind].toLowerCase()}`}\n description=\"The library endpoint failed. Retry to refetch.\"\n error={res.error}\n onRetry={() => void res.refetch()}\n testid={`libraries-${kind}-error`}\n />\n ) : items.length === 0 ? (\n <EmptyState\n icon={<span>📚</span>}\n title={`No ${KIND_LABEL[kind].toLowerCase()} installed`}\n description={`${KIND_LABEL[kind]} appear here as soon as they are registered.`}\n />\n ) : (\n <LibraryGrid>\n {items.map((item) => (\n <LibraryItem key={item.id} {...item} />\n ))}\n </LibraryGrid>\n )}\n </Stack>\n );\n}"],"names":["ChevronLeft","createLucideIcon","forwardRef","props","ref","as","full","inline","noVertical","children","className","style","rest","Tag","computedStyle","jsx","cx","SIZE","VARIANT_BG","VARIANT_FG","VARIANT_BORDER","VARIANT_ACTIVE_BG","variant","size","asChild","active","disabled","type","Comp","Slot","dim","CHECKBOX_NAME","createCheckboxContext","createContextScope","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","__scopeCheckbox","checkedProp","defaultChecked","form","name","onCheckedChange","required","value","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","event","prevChecked","Checkbox","jsxs","Fragment","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","Presence","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","input","inputProto","bubbles","defaultCheckedRef","RxCheckbox.Root","RxCheckbox.Indicator","Minus","Check","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","id","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","_a","RadioGroupItem","jsxs2","Fragment2","RadioGroupItemBubbleInput","bubbleProps","INDICATOR_NAME2","RadioGroupIndicator","RxRadio.Root","label","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","b","getHullPresorted","upperHull","p","q","r","lowerHull","Root3","Trigger","Portal","Content2","Arrow2","align","shortcut","RxTooltip.Root","RxTooltip.Trigger","RxTooltip.Portal","RxTooltip.Content","RxTooltip.Arrow","POPOVER_NAME","createPopoverContext","PopoverProvider","usePopoverContext","ANCHOR_NAME","PopoverAnchor","__scopePopover","anchorProps","onCustomAnchorAdd","onCustomAnchorRemove","PopoverTrigger","composedTriggerRef","PopoverPortal","PopoverContent","PopoverContentModal","PopoverContentNonModal","createSlot","contentRef","isRightClickOutsideRef","hideOthers","RemoveScroll","PopoverContentImpl","originalEvent","ctrlLeftClick","isRightClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","_b","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onFocusOutside","onInteractOutside","useFocusGuards","FocusScope","CLOSE_NAME","PopoverClose","closeProps","PopoverArrow","sideOffset","RxPopover.Portal","RxPopover.Content","RxPopover.Arrow","jt","n","ee","ae","oe","se","te","Yt","e","E","Ot","Ft","$t","bt","yt","t","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","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","c","Et","qt","ht","$","Zt","Q","Z","I","zt","xt","_t","Te","fe","J","vt","SELECTION_KEYS","FIRST_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","SUB_CLOSE_KEYS","MENU_NAME","createMenuContext","createMenuScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","MenuAnchor","__scopeMenu","MenuPortal","MenuContentProvider","useMenuContentContext","MenuContent","rootContext","MenuRootContentModal","MenuRootContentNonModal","MenuContentImpl","onDismiss","disableOutsideScroll","currentItemId","setCurrentItemId","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","React.Fragment","scrollLockWrapperProps","handleTypeaheadSearch","search","currentMatch","values","nextMatch","getNextMatch","newItem","updateSearch","isPointerMovingToSubmenu","isPointerInGraceArea","intent","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","MenuPrimitive.Content","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","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","max","pct","TONE_BG","TONE_RING","idx","tone","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","selected","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","STATUS_LABEL","STATUS_TONE","LibraryItem","slug","status","meta","actions","onOpen","Power","Badge","LibraryGrid","KIND_LABEL","KIND_DESCRIPTION","ENDPOINT","CHANGE_EVENTS","ALL_EVENTS","mapItem","LibrariesView","kind","url","res","useFetch","bust","setBust","useState","events","useCallback","evt","useWsMessage","useEffect","Stack","ViewHeader","Skeleton","ErrorState","EmptyState"],"mappings":"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","x_google_ignoreList":[0,3,5,7,8,9,11,15,17,19,20,21,23,27,28,31]}