@polderlabs/bizar 8.0.0 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/.claude/agents/agent-browser.md +1 -1
  2. package/.claude/agents/baldr.md +1 -1
  3. package/.claude/agents/forseti.md +1 -1
  4. package/.claude/agents/frigg.md +1 -1
  5. package/.claude/agents/heimdall.md +1 -1
  6. package/.claude/agents/hermod.md +1 -1
  7. package/.claude/agents/mimir.md +1 -1
  8. package/.claude/agents/odin.md +1 -1
  9. package/.claude/agents/quick.md +1 -1
  10. package/.claude/agents/semble-search.md +1 -1
  11. package/.claude/agents/thor.md +1 -1
  12. package/.claude/agents/tyr.md +1 -1
  13. package/.claude/agents/vidarr.md +1 -1
  14. package/.claude/agents/vor.md +1 -1
  15. package/.claude/commands/goal.md +98 -0
  16. package/.claude/settings.local.json +1 -2
  17. package/bizar-dash/dist/assets/ActivityFeed-CqF6iSDQ.js +6 -0
  18. package/bizar-dash/dist/assets/ActivityFeed-CqF6iSDQ.js.map +1 -0
  19. package/bizar-dash/dist/assets/ActivityView-qdhDjRtL.js +1 -0
  20. package/bizar-dash/dist/assets/ActivityView-qdhDjRtL.js.map +1 -0
  21. package/bizar-dash/dist/assets/AgentsView-BwXkOayl.js +28 -0
  22. package/bizar-dash/dist/assets/AgentsView-BwXkOayl.js.map +1 -0
  23. package/bizar-dash/dist/assets/{Badge-Cd61wsBa.js → Badge-BH4C3aUF.js} +1 -1
  24. package/bizar-dash/dist/assets/{Badge-Cd61wsBa.js.map → Badge-BH4C3aUF.js.map} +1 -1
  25. package/bizar-dash/dist/assets/Button-RmN1RKhE.js +6 -0
  26. package/bizar-dash/dist/assets/Button-RmN1RKhE.js.map +1 -0
  27. package/bizar-dash/dist/assets/{Card-C_bvqXdQ.js → Card-BzJeYR2D.js} +1 -1
  28. package/bizar-dash/dist/assets/{Card-C_bvqXdQ.js.map → Card-BzJeYR2D.js.map} +1 -1
  29. package/bizar-dash/dist/assets/Chip-CN2bvm7a.js +1 -0
  30. package/bizar-dash/dist/assets/Chip-CN2bvm7a.js.map +1 -0
  31. package/bizar-dash/dist/assets/{EmptyState-BWQuKnk9.js → EmptyState-DEiBv4-r.js} +1 -1
  32. package/bizar-dash/dist/assets/{EmptyState-BWQuKnk9.js.map → EmptyState-DEiBv4-r.js.map} +1 -1
  33. package/bizar-dash/dist/assets/GoalsView-CvsrzEez.js +6 -0
  34. package/bizar-dash/dist/assets/GoalsView-CvsrzEez.js.map +1 -0
  35. package/bizar-dash/dist/assets/KanbanCard-DZEaAiEr.js +21 -0
  36. package/bizar-dash/dist/assets/KanbanCard-DZEaAiEr.js.map +1 -0
  37. package/bizar-dash/dist/assets/LibrariesView-CPgKGPpM.js +67 -0
  38. package/bizar-dash/dist/assets/LibrariesView-CPgKGPpM.js.map +1 -0
  39. package/bizar-dash/dist/assets/MemoryView-Bbez5pMN.js +13 -0
  40. package/bizar-dash/dist/assets/MemoryView-Bbez5pMN.js.map +1 -0
  41. package/bizar-dash/dist/assets/OverviewView-BDegBWgg.js +1 -0
  42. package/bizar-dash/dist/assets/OverviewView-BDegBWgg.js.map +1 -0
  43. package/bizar-dash/dist/assets/Select-xwxbK8Ed.js +16 -0
  44. package/bizar-dash/dist/assets/Select-xwxbK8Ed.js.map +1 -0
  45. package/bizar-dash/dist/assets/SettingsRow-CppSgkT_.js +10 -0
  46. package/bizar-dash/dist/assets/SettingsRow-CppSgkT_.js.map +1 -0
  47. package/bizar-dash/dist/assets/SettingsView-DUc2meHV.js +43 -0
  48. package/bizar-dash/dist/assets/SettingsView-DUc2meHV.js.map +1 -0
  49. package/bizar-dash/dist/assets/Sheet-C_sIEw35.js +1 -0
  50. package/bizar-dash/dist/assets/Sheet-C_sIEw35.js.map +1 -0
  51. package/bizar-dash/dist/assets/Sparkline-D664vGWW.js +1 -0
  52. package/bizar-dash/dist/assets/Sparkline-D664vGWW.js.map +1 -0
  53. package/bizar-dash/dist/assets/StatTile-BRsUIA6P.js +16 -0
  54. package/bizar-dash/dist/assets/StatTile-BRsUIA6P.js.map +1 -0
  55. package/bizar-dash/dist/assets/TasksView-DVyX5-DY.js +1 -0
  56. package/bizar-dash/dist/assets/TasksView-DVyX5-DY.js.map +1 -0
  57. package/bizar-dash/dist/assets/Textarea-Dk97nmjO.js +1 -0
  58. package/bizar-dash/dist/assets/Textarea-Dk97nmjO.js.map +1 -0
  59. package/bizar-dash/dist/assets/{ViewHeader-D6c2cw1b.js → ViewHeader-dPd4zAyj.js} +1 -1
  60. package/bizar-dash/dist/assets/{ViewHeader-D6c2cw1b.js.map → ViewHeader-dPd4zAyj.js.map} +1 -1
  61. package/bizar-dash/dist/assets/{brain-DeoXNDE2.js → brain-BajPVibR.js} +1 -1
  62. package/bizar-dash/dist/assets/{brain-DeoXNDE2.js.map → brain-BajPVibR.js.map} +1 -1
  63. package/bizar-dash/dist/assets/{calendar-DRlQkGJc.js → calendar-CaP_Bbgc.js} +2 -2
  64. package/bizar-dash/dist/assets/{calendar-DRlQkGJc.js.map → calendar-CaP_Bbgc.js.map} +1 -1
  65. package/bizar-dash/dist/assets/{cmdk-BwN8hcKQ.js → cmdk-BLWIhKrV.js} +1 -1
  66. package/bizar-dash/dist/assets/{cmdk-BwN8hcKQ.js.map → cmdk-BLWIhKrV.js.map} +1 -1
  67. package/bizar-dash/dist/assets/dnd-kit-DU8GZk7s.js +5 -0
  68. package/bizar-dash/dist/assets/{dnd-kit-DR2Qzzxk.js.map → dnd-kit-DU8GZk7s.js.map} +1 -1
  69. package/bizar-dash/dist/assets/git-pull-request-CFRRwdxp.js +11 -0
  70. package/bizar-dash/dist/assets/git-pull-request-CFRRwdxp.js.map +1 -0
  71. package/bizar-dash/dist/assets/index-AL3OLUfz.js +1 -0
  72. package/bizar-dash/dist/assets/index-AL3OLUfz.js.map +1 -0
  73. package/bizar-dash/dist/assets/{main-COdgjqbZ.css → main-CcQfRfIJ.css} +1 -1
  74. package/bizar-dash/dist/assets/main-LxX9zTRk.js +109 -0
  75. package/bizar-dash/dist/assets/main-LxX9zTRk.js.map +1 -0
  76. package/bizar-dash/dist/assets/{minus-CrStJTZ7.js → plus-CVH1JB04.js} +2 -2
  77. package/bizar-dash/dist/assets/plus-CVH1JB04.js.map +1 -0
  78. package/bizar-dash/dist/assets/terminal-B2sSd5t7.js +11 -0
  79. package/bizar-dash/dist/assets/terminal-B2sSd5t7.js.map +1 -0
  80. package/bizar-dash/dist/assets/trash-2-JtYRQ79q.js +6 -0
  81. package/bizar-dash/dist/assets/trash-2-JtYRQ79q.js.map +1 -0
  82. package/bizar-dash/dist/assets/triangle-alert-Nzbrm0I2.js +6 -0
  83. package/bizar-dash/dist/assets/triangle-alert-Nzbrm0I2.js.map +1 -0
  84. package/bizar-dash/dist/assets/useFetch-CoVWwbml.js +1 -0
  85. package/bizar-dash/dist/assets/useFetch-CoVWwbml.js.map +1 -0
  86. package/bizar-dash/dist/assets/useWebSocket-CVIQB8yG.js +1 -0
  87. package/bizar-dash/dist/assets/useWebSocket-CVIQB8yG.js.map +1 -0
  88. package/bizar-dash/dist/assets/{wrench-BJ1WIC4u.js → wrench-B7go551L.js} +1 -1
  89. package/bizar-dash/dist/assets/{wrench-BJ1WIC4u.js.map → wrench-B7go551L.js.map} +1 -1
  90. package/bizar-dash/dist/v8.html +3 -3
  91. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  92. package/bizar-dash/src/server/api.mjs +10 -0
  93. package/bizar-dash/src/server/bg-poller.mjs +81 -1
  94. package/bizar-dash/src/server/bg-poller.test.mjs +28 -0
  95. package/bizar-dash/src/server/progress-parser.mjs +221 -0
  96. package/bizar-dash/src/server/progress-parser.test.mjs +105 -0
  97. package/bizar-dash/src/server/routes/agents-cc.mjs +381 -0
  98. package/bizar-dash/src/server/routes/agents-cc.test.mjs +35 -0
  99. package/bizar-dash/src/server/routes/goals.mjs +307 -0
  100. package/bizar-dash/src/server/routes/tasks.mjs +11 -0
  101. package/bizar-dash/src/web/v8/__tests__/App.test.tsx +2 -2
  102. package/bizar-dash/src/web/v8/__tests__/control-plane.test.tsx +104 -0
  103. package/bizar-dash/src/web/v8/__tests__/useFetch.test.ts +92 -0
  104. package/bizar-dash/src/web/v8/__tests__/useWebSocket.test.ts +87 -0
  105. package/bizar-dash/src/web/v8/__tests__/views.test.tsx +110 -40
  106. package/bizar-dash/src/web/v8/data/fetcher.ts +59 -0
  107. package/bizar-dash/src/web/v8/data/types.ts +154 -0
  108. package/bizar-dash/src/web/v8/data/useFetch.ts +62 -0
  109. package/bizar-dash/src/web/v8/data/useWebSocket.ts +153 -0
  110. package/bizar-dash/src/web/v8/ui/agents/AgentDetail.tsx +252 -0
  111. package/bizar-dash/src/web/v8/ui/agents/AgentStreamPanel.tsx +371 -0
  112. package/bizar-dash/src/web/v8/ui/goals/GoalDetail.tsx +245 -0
  113. package/bizar-dash/src/web/v8/ui/kanban/KanbanBoard.tsx +6 -3
  114. package/bizar-dash/src/web/v8/ui/kanban/KanbanCard.tsx +3 -3
  115. package/bizar-dash/src/web/v8/ui/kanban/KanbanColumn.tsx +10 -5
  116. package/bizar-dash/src/web/v8/ui/styles/globals.css +5 -0
  117. package/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +53 -15
  118. package/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +151 -87
  119. package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.test.tsx +1 -1
  120. package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.tsx +133 -30
  121. package/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +176 -67
  122. package/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +78 -11
  123. package/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +58 -42
  124. package/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +112 -52
  125. package/bizar-dash/src/web/v8/views/Router.tsx +13 -37
  126. package/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +635 -210
  127. package/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +140 -49
  128. package/bizar-dash/tests/components/Button.test.tsx +51 -14
  129. package/bizar-dash/tests/components/Card.test.tsx +37 -20
  130. package/bizar-dash/tests/components/Dialog.test.tsx +80 -0
  131. package/bizar-dash/tests/components/Toast.test.tsx +48 -95
  132. package/bizar-dash/tests/goals-decompose.test.mjs +177 -0
  133. package/bizar-dash/tests/setup.ts +21 -0
  134. package/bizar-dash/tests/ui/primitives/VisuallyHidden.test.tsx +30 -15
  135. package/bizar-dash/vite.config.ts +15 -0
  136. package/bizar-dash/vitest.config.ts +4 -1
  137. package/cli/bin.mjs +32 -0
  138. package/cli/install.mjs +26 -1
  139. package/cli/provision-claude.mjs +86 -0
  140. package/package.json +1 -1
  141. package/scripts/run-dev.mjs +84 -0
  142. package/bizar-dash/dist/assets/ActivityFeed-BRBtQOHB.js +0 -6
  143. package/bizar-dash/dist/assets/ActivityFeed-BRBtQOHB.js.map +0 -1
  144. package/bizar-dash/dist/assets/ActivityView-CwqhxBfh.js +0 -1
  145. package/bizar-dash/dist/assets/ActivityView-CwqhxBfh.js.map +0 -1
  146. package/bizar-dash/dist/assets/AgentActivity-6MxU-a9F.js +0 -1
  147. package/bizar-dash/dist/assets/AgentActivity-6MxU-a9F.js.map +0 -1
  148. package/bizar-dash/dist/assets/AgentsView-BYrOFdwl.js +0 -8
  149. package/bizar-dash/dist/assets/AgentsView-BYrOFdwl.js.map +0 -1
  150. package/bizar-dash/dist/assets/GoalsView-Dok0yt9S.js +0 -11
  151. package/bizar-dash/dist/assets/GoalsView-Dok0yt9S.js.map +0 -1
  152. package/bizar-dash/dist/assets/Grid-C62gCPqt.js +0 -1
  153. package/bizar-dash/dist/assets/Grid-C62gCPqt.js.map +0 -1
  154. package/bizar-dash/dist/assets/KanbanCard-CtTKP6ZX.js +0 -21
  155. package/bizar-dash/dist/assets/KanbanCard-CtTKP6ZX.js.map +0 -1
  156. package/bizar-dash/dist/assets/LibrariesView-BcyBQXiY.js +0 -67
  157. package/bizar-dash/dist/assets/LibrariesView-BcyBQXiY.js.map +0 -1
  158. package/bizar-dash/dist/assets/MemoryView-49wR4u-y.js +0 -13
  159. package/bizar-dash/dist/assets/MemoryView-49wR4u-y.js.map +0 -1
  160. package/bizar-dash/dist/assets/OverviewView-BtQ_UWYj.js +0 -1
  161. package/bizar-dash/dist/assets/OverviewView-BtQ_UWYj.js.map +0 -1
  162. package/bizar-dash/dist/assets/ProgressBar-CpvDeq9F.js +0 -1
  163. package/bizar-dash/dist/assets/ProgressBar-CpvDeq9F.js.map +0 -1
  164. package/bizar-dash/dist/assets/SettingsRow-DmIe5OUu.js +0 -30
  165. package/bizar-dash/dist/assets/SettingsRow-DmIe5OUu.js.map +0 -1
  166. package/bizar-dash/dist/assets/SettingsView-D1KmGWbi.js +0 -48
  167. package/bizar-dash/dist/assets/SettingsView-D1KmGWbi.js.map +0 -1
  168. package/bizar-dash/dist/assets/StatTile-BkIP32gG.js +0 -11
  169. package/bizar-dash/dist/assets/StatTile-BkIP32gG.js.map +0 -1
  170. package/bizar-dash/dist/assets/TasksView-Cba3GJ42.js +0 -1
  171. package/bizar-dash/dist/assets/TasksView-Cba3GJ42.js.map +0 -1
  172. package/bizar-dash/dist/assets/circle-check-DmYQ3vGp.js +0 -6
  173. package/bizar-dash/dist/assets/circle-check-DmYQ3vGp.js.map +0 -1
  174. package/bizar-dash/dist/assets/dnd-kit-DR2Qzzxk.js +0 -5
  175. package/bizar-dash/dist/assets/git-merge-OoqBKQer.js +0 -6
  176. package/bizar-dash/dist/assets/git-merge-OoqBKQer.js.map +0 -1
  177. package/bizar-dash/dist/assets/git-pull-request-CXBQTR2f.js +0 -6
  178. package/bizar-dash/dist/assets/git-pull-request-CXBQTR2f.js.map +0 -1
  179. package/bizar-dash/dist/assets/main-Cw6gybzS.js +0 -109
  180. package/bizar-dash/dist/assets/main-Cw6gybzS.js.map +0 -1
  181. package/bizar-dash/dist/assets/message-square-DUTeIQAR.js +0 -6
  182. package/bizar-dash/dist/assets/message-square-DUTeIQAR.js.map +0 -1
  183. package/bizar-dash/dist/assets/minus-CrStJTZ7.js.map +0 -1
  184. package/bizar-dash/src/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  185. /package/bizar-dash/tests/{BackgroundAgents.test.tsx → v7-archive/BackgroundAgents.test.tsx} +0 -0
  186. /package/bizar-dash/tests/{a11y → v7-archive/a11y}/forms.test.tsx +0 -0
  187. /package/bizar-dash/tests/{a11y.test.tsx → v7-archive/a11y.test.tsx} +0 -0
  188. /package/bizar-dash/tests/{autosave.test.tsx → v7-archive/autosave.test.tsx} +0 -0
  189. /package/bizar-dash/tests/{backup-restore.test.tsx → v7-archive/backup-restore.test.tsx} +0 -0
  190. /package/bizar-dash/tests/{chat-composer.test.tsx → v7-archive/chat-composer.test.tsx} +0 -0
  191. /package/bizar-dash/tests/{communication-log.test.tsx → v7-archive/communication-log.test.tsx} +0 -0
  192. /package/bizar-dash/tests/{components → v7-archive/components}/Modal.test.tsx +0 -0
  193. /package/bizar-dash/tests/{components → v7-archive/components}/Spinner.test.tsx +0 -0
  194. /package/bizar-dash/tests/{components → v7-archive/components}/StatusBadge.test.tsx +0 -0
  195. /package/bizar-dash/tests/{components → v7-archive/components}/doctor-panel.test.tsx +0 -0
  196. /package/bizar-dash/tests/{components → v7-archive/components}/screenshot-ocr.test.tsx +0 -0
  197. /package/bizar-dash/tests/{components → v7-archive/components}/settings-search.test.tsx +0 -0
  198. /package/bizar-dash/tests/{components → v7-archive/components}/workspace-selector.test.tsx +0 -0
  199. /package/bizar-dash/tests/{ui → v7-archive}/controls/Button.test.tsx +0 -0
  200. /package/bizar-dash/tests/{ui → v7-archive}/controls/Checkbox.test.tsx +0 -0
  201. /package/bizar-dash/tests/{ui → v7-archive}/controls/IconButton.test.tsx +0 -0
  202. /package/bizar-dash/tests/{ui → v7-archive}/controls/Kbd.test.tsx +0 -0
  203. /package/bizar-dash/tests/{ui → v7-archive}/controls/NumberInput.test.tsx +0 -0
  204. /package/bizar-dash/tests/{ui → v7-archive}/controls/RadioGroup.test.tsx +0 -0
  205. /package/bizar-dash/tests/{ui → v7-archive}/controls/SearchInput.test.tsx +0 -0
  206. /package/bizar-dash/tests/{ui → v7-archive}/controls/Select.test.tsx +0 -0
  207. /package/bizar-dash/tests/{ui → v7-archive}/controls/Slider.test.tsx +0 -0
  208. /package/bizar-dash/tests/{ui → v7-archive}/controls/TextInput.test.tsx +0 -0
  209. /package/bizar-dash/tests/{ui → v7-archive}/controls/Textarea.test.tsx +0 -0
  210. /package/bizar-dash/tests/{ui → v7-archive}/controls/Toggle.test.tsx +0 -0
  211. /package/bizar-dash/tests/{ui → v7-archive}/data/BarChart.test.tsx +0 -0
  212. /package/bizar-dash/tests/{ui → v7-archive}/data/DataTable.test.tsx +0 -0
  213. /package/bizar-dash/tests/{ui → v7-archive}/data/EmptyState.test.tsx +0 -0
  214. /package/bizar-dash/tests/{ui → v7-archive}/data/ErrorState.test.tsx +0 -0
  215. /package/bizar-dash/tests/{ui → v7-archive}/data/KeyValueList.test.tsx +0 -0
  216. /package/bizar-dash/tests/{ui → v7-archive}/data/LoadingState.test.tsx +0 -0
  217. /package/bizar-dash/tests/{ui → v7-archive}/data/Sparkline.test.tsx +0 -0
  218. /package/bizar-dash/tests/{ui → v7-archive}/data/StatTile.test.tsx +0 -0
  219. /package/bizar-dash/tests/{dep-graph.test.tsx → v7-archive/dep-graph.test.tsx} +0 -0
  220. /package/bizar-dash/tests/{eval-web-ui.test.tsx → v7-archive/eval-web-ui.test.tsx} +0 -0
  221. /package/bizar-dash/tests/{event-log.test.tsx → v7-archive/event-log.test.tsx} +0 -0
  222. /package/bizar-dash/tests/{ui → v7-archive}/feedback/Badge.test.tsx +0 -0
  223. /package/bizar-dash/tests/{ui → v7-archive}/feedback/Dialog.test.tsx +0 -0
  224. /package/bizar-dash/tests/{ui → v7-archive}/feedback/ProgressBar.test.tsx +0 -0
  225. /package/bizar-dash/tests/{ui → v7-archive}/feedback/StatusDot.test.tsx +0 -0
  226. /package/bizar-dash/tests/{ui → v7-archive}/feedback/Toast.test.tsx +0 -0
  227. /package/bizar-dash/tests/{ui → v7-archive}/feedback/Tooltip.test.tsx +0 -0
  228. /package/bizar-dash/tests/{goal-input.test.tsx → v7-archive/goal-input.test.tsx} +0 -0
  229. /package/bizar-dash/tests/{goap-planner.test.ts → v7-archive/goap-planner.test.ts} +0 -0
  230. /package/bizar-dash/tests/{hooks → v7-archive/hooks}/useModal.test.tsx +0 -0
  231. /package/bizar-dash/tests/{hooks → v7-archive/hooks}/useToast.test.tsx +0 -0
  232. /package/bizar-dash/tests/{ui → v7-archive}/layout/AppShell.test.tsx +0 -0
  233. /package/bizar-dash/tests/{ui → v7-archive}/layout/Breadcrumbs.test.tsx +0 -0
  234. /package/bizar-dash/tests/{ui → v7-archive}/layout/Panel.test.tsx +0 -0
  235. /package/bizar-dash/tests/{ui → v7-archive}/layout/PanelHeader.test.tsx +0 -0
  236. /package/bizar-dash/tests/{ui → v7-archive}/layout/Sidebar.test.tsx +0 -0
  237. /package/bizar-dash/tests/{ui → v7-archive}/layout/Tabs.test.tsx +0 -0
  238. /package/bizar-dash/tests/{ui → v7-archive}/layout/Topbar.test.tsx +0 -0
  239. /package/bizar-dash/tests/{ui → v7-archive}/layout/ViewHeader.test.tsx +0 -0
  240. /package/bizar-dash/tests/{lib → v7-archive/lib}/i18n.test.ts +0 -0
  241. /package/bizar-dash/tests/{lib → v7-archive/lib}/search-fuzzy.test.ts +0 -0
  242. /package/bizar-dash/tests/{lib → v7-archive/lib}/utils.test.ts +0 -0
  243. /package/bizar-dash/tests/{memory-graph-view.test.tsx → v7-archive/memory-graph-view.test.tsx} +0 -0
  244. /package/bizar-dash/tests/{mobile-chat.test.tsx → v7-archive/mobile-chat.test.tsx} +0 -0
  245. /package/bizar-dash/tests/{mobile-layout.test.tsx → v7-archive/mobile-layout.test.tsx} +0 -0
  246. /package/bizar-dash/tests/{mobile-overview.test.tsx → v7-archive/mobile-overview.test.tsx} +0 -0
  247. /package/bizar-dash/tests/{mobile-settings.test.tsx → v7-archive/mobile-settings.test.tsx} +0 -0
  248. /package/bizar-dash/tests/{mobile-tasks.test.tsx → v7-archive/mobile-tasks.test.tsx} +0 -0
  249. /package/bizar-dash/tests/{ui → v7-archive}/navigation/CommandPalette.test.tsx +0 -0
  250. /package/bizar-dash/tests/{ui → v7-archive}/navigation/NavGroup.test.tsx +0 -0
  251. /package/bizar-dash/tests/{ui → v7-archive}/navigation/NavLink.test.tsx +0 -0
  252. /package/bizar-dash/tests/{quality-gates.test.tsx → v7-archive/quality-gates.test.tsx} +0 -0
  253. /package/bizar-dash/tests/{settings-layout.test.tsx → v7-archive/settings-layout.test.tsx} +0 -0
  254. /package/bizar-dash/tests/{settings-mode-wiring.test.tsx → v7-archive/settings-mode-wiring.test.tsx} +0 -0
  255. /package/bizar-dash/tests/{settings-nav.test.tsx → v7-archive/settings-nav.test.tsx} +0 -0
  256. /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Box.test.tsx +0 -0
  257. /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Grid.test.tsx +0 -0
  258. /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Inline.test.tsx +0 -0
  259. /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Separator.test.tsx +0 -0
  260. /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Stack.test.tsx +0 -0
  261. /package/bizar-dash/tests/{views → v7-archive/views}/Agents.test.tsx +0 -0
  262. /package/bizar-dash/tests/{views → v7-archive/views}/Memory.test.tsx +0 -0
  263. /package/bizar-dash/tests/{views → v7-archive/views}/Overview.test.tsx +0 -0
  264. /package/bizar-dash/tests/{views → v7-archive/views}/Tasks.test.tsx +0 -0
  265. /package/bizar-dash/tests/{views → v7-archive/views}/sidebar.test.tsx +0 -0
  266. /package/bizar-dash/tests/{views → v7-archive/views}/topbar.test.tsx +0 -0
  267. /package/bizar-dash/tests/{voice-recorder.test.tsx → v7-archive/voice-recorder.test.tsx} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LibrariesView-CPgKGPpM.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/chevron-left.js","../../../node_modules/lucide-react/dist/esm/icons/circle-alert.js","../../../node_modules/lucide-react/dist/esm/icons/info.js","../../../node_modules/lucide-react/dist/esm/icons/power.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","../../src/web/v8/ui/feedback/Alert.tsx","../../src/web/v8/ui/feedback/Banner.tsx","../../../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","/**\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 CircleAlert = createLucideIcon(\"CircleAlert\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n]);\n\nexport { CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Info = createLucideIcon(\"Info\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n]);\n\nexport { Info as default };\n//# sourceMappingURL=info.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Power = createLucideIcon(\"Power\", [\n [\"path\", { d: \"M12 2v10\", key: \"mnfbl\" }],\n [\"path\", { d: \"M18.4 6.6a9 9 0 1 1-12.77.04\", key: \"obofu9\" }]\n]);\n\nexport { Power as default };\n//# sourceMappingURL=power.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","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport React from 'react';\nimport { AlertCircle, AlertTriangle, CheckCircle2, Info } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Alert — inline contextual message.\n *\n * Tones: info | success | warning | danger.\n *\n * Use cases: empty states, inline help text, error banners inside forms.\n * For status pulses (topbar live indicator) use a small dot, not an Alert.\n */\n\nexport type AlertTone = 'info' | 'success' | 'warning' | 'danger';\n\nconst ICON = {\n info: Info,\n success: CheckCircle2,\n warning: AlertTriangle,\n danger: AlertCircle,\n} as const;\n\nconst TONE_BG = {\n info: 'color-mix(in oklch, var(--info) 12%, var(--surface-1))',\n success: 'color-mix(in oklch, var(--success) 12%, var(--surface-1))',\n warning: 'color-mix(in oklch, var(--warning) 12%, var(--surface-1))',\n danger: 'color-mix(in oklch, var(--danger) 12%, var(--surface-1))',\n} as const;\n\nconst TONE_FG = {\n info: 'var(--info)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n danger: 'var(--danger)',\n} as const;\n\nconst TONE_BORDER = {\n info: 'color-mix(in oklch, var(--info) 30%, var(--border))',\n success: 'color-mix(in oklch, var(--success) 30%, var(--border))',\n warning: 'color-mix(in oklch, var(--warning) 30%, var(--border))',\n danger: 'color-mix(in oklch, var(--danger) 30%, var(--border))',\n} as const;\n\nexport interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'title'> {\n tone?: AlertTone;\n title?: ReactNode;\n children?: ReactNode;\n /** Optional right-aligned action (button). */\n action?: ReactNode;\n /** Override the leading icon. Pass `false` to hide. */\n icon?: ReactNode | false;\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(function Alert(props, ref) {\n const { tone = 'info', title, children, action, icon, className, ...rest } = props;\n const showIcon = icon !== false;\n const IconNode = icon === false ? null : (icon ?? React.createElement(ICON[tone], { size: 16, 'aria-hidden': true }));\n return (\n <div\n ref={ref}\n role={tone === 'danger' || tone === 'warning' ? 'alert' : 'status'}\n className={cx('v8-alert', `v8-alert--${tone}`, className)}\n style={{\n display: 'flex',\n alignItems: 'flex-start',\n gap: 'var(--space-3)',\n padding: 'var(--space-3) var(--space-4)',\n background: TONE_BG[tone],\n border: '1px solid',\n borderColor: TONE_BORDER[tone],\n borderRadius: 'var(--radius)',\n color: 'var(--fg)',\n }}\n {...rest}\n >\n {showIcon && IconNode !== null && (\n <span style={{ color: TONE_FG[tone], flexShrink: 0, marginTop: 1, display: 'inline-flex' }}>\n {IconNode}\n </span>\n )}\n <div style={{ flex: 1, minWidth: 0, display: 'flex', flexDirection: 'column', gap: 'var(--space-1)' }}>\n {title !== undefined && (\n <div style={{ fontSize: 'var(--fs-13)', fontWeight: 600 }}>{title}</div>\n )}\n {children !== undefined && (\n <div style={{ fontSize: 'var(--fs-13)', color: 'var(--fg-muted)' }}>{children}</div>\n )}\n </div>\n {action !== undefined && (\n <div style={{ flexShrink: 0, display: 'flex', alignItems: 'center' }}>{action}</div>\n )}\n </div>\n );\n});","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Banner — a top-of-page contextual announcement.\n *\n * Use sparingly. Distinct from StatusBar (which is system-level) and\n * Alert (which is inline). Banner occupies its own row above the page header.\n */\nexport interface BannerProps extends HTMLAttributes<HTMLDivElement> {\n tone?: 'info' | 'warning' | 'success' | 'danger';\n children: ReactNode;\n action?: ReactNode;\n}\n\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>(function Banner(props, ref) {\n const { tone = 'info', children, action, className, ...rest } = props;\n return (\n <div\n ref={ref}\n role={tone === 'danger' ? 'alert' : 'status'}\n className={cx('v8-banner', `v8-banner--${tone}`, className)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-3)',\n padding: 'var(--space-3) var(--space-4)',\n background: `color-mix(in oklch, var(--${tone}) 8%, var(--surface-1))`,\n borderBottom: '1px solid var(--border)',\n fontSize: 'var(--fs-13)',\n color: 'var(--fg)',\n }}\n {...rest}\n >\n <div style={{ flex: 1, minWidth: 0 }}>{children}</div>\n {action !== undefined && <div style={{ flexShrink: 0 }}>{action}</div>}\n </div>\n );\n});","\"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 { 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: ['agents: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', '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}>\n <ViewHeader title={KIND_LABEL[kind]} description={KIND_DESCRIPTION[kind]} />\n {res.loading ? (\n <Skeleton style={{ height: 240 }} />\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","CircleAlert","Info","Power","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","ICON","CheckCircle2","AlertTriangle","AlertCircle","TONE_BG","TONE_FG","TONE_BORDER","tone","title","action","icon","showIcon","IconNode","React","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_RING","idx","isLast","COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","CollapsibleProvider","useCollapsibleContext","Collapsible","__scopeCollapsible","collapsibleProps","prevOpen","CollapsibleTrigger","CollapsibleContent","present","CollapsibleContentImpl","isPresent","setIsPresent","heightRef","height","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","rAF","Content","ACCORDION_NAME","ACCORDION_KEYS","createAccordionContext","useCollapsibleScope","Accordion","accordionProps","AccordionImplMultiple","AccordionImplSingle","AccordionValueProvider","useAccordionValueContext","AccordionCollapsibleProvider","useAccordionCollapsibleContext","collapsible","accordionSingleProps","AccordionImpl","accordionMultipleProps","handleItemOpen","handleItemClose","AccordionImplProvider","useAccordionContext","__scopeAccordion","accordionRef","isDirectionLTR","triggerCollection","triggerIndex","triggerCount","nextIndex","homeIndex","endIndex","moveNext","movePrev","clampedIndex","AccordionItemProvider","useAccordionItemContext","AccordionItem","accordionItemProps","accordionContext","collapsibleScope","triggerId","CollapsiblePrimitive.Root","HEADER_NAME","AccordionHeader","headerProps","itemContext","AccordionTrigger","collapsibleContext","CollapsiblePrimitive.Trigger","AccordionContent","CollapsiblePrimitive.Content","Root2","Header","Trigger2","RxAccordion.Root","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","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","EmptyState"],"mappings":"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","x_google_ignoreList":[0,1,2,3,6,8,10,11,12,14,18,20,22,25,26,28,32,33,36]}