@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.
- package/.claude/agents/agent-browser.md +1 -1
- package/.claude/agents/baldr.md +1 -1
- package/.claude/agents/forseti.md +1 -1
- package/.claude/agents/frigg.md +1 -1
- package/.claude/agents/heimdall.md +1 -1
- package/.claude/agents/hermod.md +1 -1
- package/.claude/agents/mimir.md +1 -1
- package/.claude/agents/odin.md +1 -1
- package/.claude/agents/quick.md +1 -1
- package/.claude/agents/semble-search.md +1 -1
- package/.claude/agents/thor.md +1 -1
- package/.claude/agents/tyr.md +1 -1
- package/.claude/agents/vidarr.md +1 -1
- package/.claude/agents/vor.md +1 -1
- package/.claude/commands/goal.md +98 -0
- package/.claude/settings.local.json +1 -2
- package/bizar-dash/dist/assets/ActivityFeed-CqF6iSDQ.js +6 -0
- package/bizar-dash/dist/assets/ActivityFeed-CqF6iSDQ.js.map +1 -0
- package/bizar-dash/dist/assets/ActivityView-qdhDjRtL.js +1 -0
- package/bizar-dash/dist/assets/ActivityView-qdhDjRtL.js.map +1 -0
- package/bizar-dash/dist/assets/AgentsView-BwXkOayl.js +28 -0
- package/bizar-dash/dist/assets/AgentsView-BwXkOayl.js.map +1 -0
- package/bizar-dash/dist/assets/{Badge-Cd61wsBa.js → Badge-BH4C3aUF.js} +1 -1
- package/bizar-dash/dist/assets/{Badge-Cd61wsBa.js.map → Badge-BH4C3aUF.js.map} +1 -1
- package/bizar-dash/dist/assets/Button-RmN1RKhE.js +6 -0
- package/bizar-dash/dist/assets/Button-RmN1RKhE.js.map +1 -0
- package/bizar-dash/dist/assets/{Card-C_bvqXdQ.js → Card-BzJeYR2D.js} +1 -1
- package/bizar-dash/dist/assets/{Card-C_bvqXdQ.js.map → Card-BzJeYR2D.js.map} +1 -1
- package/bizar-dash/dist/assets/Chip-CN2bvm7a.js +1 -0
- package/bizar-dash/dist/assets/Chip-CN2bvm7a.js.map +1 -0
- package/bizar-dash/dist/assets/{EmptyState-BWQuKnk9.js → EmptyState-DEiBv4-r.js} +1 -1
- package/bizar-dash/dist/assets/{EmptyState-BWQuKnk9.js.map → EmptyState-DEiBv4-r.js.map} +1 -1
- package/bizar-dash/dist/assets/GoalsView-CvsrzEez.js +6 -0
- package/bizar-dash/dist/assets/GoalsView-CvsrzEez.js.map +1 -0
- package/bizar-dash/dist/assets/KanbanCard-DZEaAiEr.js +21 -0
- package/bizar-dash/dist/assets/KanbanCard-DZEaAiEr.js.map +1 -0
- package/bizar-dash/dist/assets/LibrariesView-CPgKGPpM.js +67 -0
- package/bizar-dash/dist/assets/LibrariesView-CPgKGPpM.js.map +1 -0
- package/bizar-dash/dist/assets/MemoryView-Bbez5pMN.js +13 -0
- package/bizar-dash/dist/assets/MemoryView-Bbez5pMN.js.map +1 -0
- package/bizar-dash/dist/assets/OverviewView-BDegBWgg.js +1 -0
- package/bizar-dash/dist/assets/OverviewView-BDegBWgg.js.map +1 -0
- package/bizar-dash/dist/assets/Select-xwxbK8Ed.js +16 -0
- package/bizar-dash/dist/assets/Select-xwxbK8Ed.js.map +1 -0
- package/bizar-dash/dist/assets/SettingsRow-CppSgkT_.js +10 -0
- package/bizar-dash/dist/assets/SettingsRow-CppSgkT_.js.map +1 -0
- package/bizar-dash/dist/assets/SettingsView-DUc2meHV.js +43 -0
- package/bizar-dash/dist/assets/SettingsView-DUc2meHV.js.map +1 -0
- package/bizar-dash/dist/assets/Sheet-C_sIEw35.js +1 -0
- package/bizar-dash/dist/assets/Sheet-C_sIEw35.js.map +1 -0
- package/bizar-dash/dist/assets/Sparkline-D664vGWW.js +1 -0
- package/bizar-dash/dist/assets/Sparkline-D664vGWW.js.map +1 -0
- package/bizar-dash/dist/assets/StatTile-BRsUIA6P.js +16 -0
- package/bizar-dash/dist/assets/StatTile-BRsUIA6P.js.map +1 -0
- package/bizar-dash/dist/assets/TasksView-DVyX5-DY.js +1 -0
- package/bizar-dash/dist/assets/TasksView-DVyX5-DY.js.map +1 -0
- package/bizar-dash/dist/assets/Textarea-Dk97nmjO.js +1 -0
- package/bizar-dash/dist/assets/Textarea-Dk97nmjO.js.map +1 -0
- package/bizar-dash/dist/assets/{ViewHeader-D6c2cw1b.js → ViewHeader-dPd4zAyj.js} +1 -1
- package/bizar-dash/dist/assets/{ViewHeader-D6c2cw1b.js.map → ViewHeader-dPd4zAyj.js.map} +1 -1
- package/bizar-dash/dist/assets/{brain-DeoXNDE2.js → brain-BajPVibR.js} +1 -1
- package/bizar-dash/dist/assets/{brain-DeoXNDE2.js.map → brain-BajPVibR.js.map} +1 -1
- package/bizar-dash/dist/assets/{calendar-DRlQkGJc.js → calendar-CaP_Bbgc.js} +2 -2
- package/bizar-dash/dist/assets/{calendar-DRlQkGJc.js.map → calendar-CaP_Bbgc.js.map} +1 -1
- package/bizar-dash/dist/assets/{cmdk-BwN8hcKQ.js → cmdk-BLWIhKrV.js} +1 -1
- package/bizar-dash/dist/assets/{cmdk-BwN8hcKQ.js.map → cmdk-BLWIhKrV.js.map} +1 -1
- package/bizar-dash/dist/assets/dnd-kit-DU8GZk7s.js +5 -0
- package/bizar-dash/dist/assets/{dnd-kit-DR2Qzzxk.js.map → dnd-kit-DU8GZk7s.js.map} +1 -1
- package/bizar-dash/dist/assets/git-pull-request-CFRRwdxp.js +11 -0
- package/bizar-dash/dist/assets/git-pull-request-CFRRwdxp.js.map +1 -0
- package/bizar-dash/dist/assets/index-AL3OLUfz.js +1 -0
- package/bizar-dash/dist/assets/index-AL3OLUfz.js.map +1 -0
- package/bizar-dash/dist/assets/{main-COdgjqbZ.css → main-CcQfRfIJ.css} +1 -1
- package/bizar-dash/dist/assets/main-LxX9zTRk.js +109 -0
- package/bizar-dash/dist/assets/main-LxX9zTRk.js.map +1 -0
- package/bizar-dash/dist/assets/{minus-CrStJTZ7.js → plus-CVH1JB04.js} +2 -2
- package/bizar-dash/dist/assets/plus-CVH1JB04.js.map +1 -0
- package/bizar-dash/dist/assets/terminal-B2sSd5t7.js +11 -0
- package/bizar-dash/dist/assets/terminal-B2sSd5t7.js.map +1 -0
- package/bizar-dash/dist/assets/trash-2-JtYRQ79q.js +6 -0
- package/bizar-dash/dist/assets/trash-2-JtYRQ79q.js.map +1 -0
- package/bizar-dash/dist/assets/triangle-alert-Nzbrm0I2.js +6 -0
- package/bizar-dash/dist/assets/triangle-alert-Nzbrm0I2.js.map +1 -0
- package/bizar-dash/dist/assets/useFetch-CoVWwbml.js +1 -0
- package/bizar-dash/dist/assets/useFetch-CoVWwbml.js.map +1 -0
- package/bizar-dash/dist/assets/useWebSocket-CVIQB8yG.js +1 -0
- package/bizar-dash/dist/assets/useWebSocket-CVIQB8yG.js.map +1 -0
- package/bizar-dash/dist/assets/{wrench-BJ1WIC4u.js → wrench-B7go551L.js} +1 -1
- package/bizar-dash/dist/assets/{wrench-BJ1WIC4u.js.map → wrench-B7go551L.js.map} +1 -1
- package/bizar-dash/dist/v8.html +3 -3
- package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/bizar-dash/src/server/api.mjs +10 -0
- package/bizar-dash/src/server/bg-poller.mjs +81 -1
- package/bizar-dash/src/server/bg-poller.test.mjs +28 -0
- package/bizar-dash/src/server/progress-parser.mjs +221 -0
- package/bizar-dash/src/server/progress-parser.test.mjs +105 -0
- package/bizar-dash/src/server/routes/agents-cc.mjs +381 -0
- package/bizar-dash/src/server/routes/agents-cc.test.mjs +35 -0
- package/bizar-dash/src/server/routes/goals.mjs +307 -0
- package/bizar-dash/src/server/routes/tasks.mjs +11 -0
- package/bizar-dash/src/web/v8/__tests__/App.test.tsx +2 -2
- package/bizar-dash/src/web/v8/__tests__/control-plane.test.tsx +104 -0
- package/bizar-dash/src/web/v8/__tests__/useFetch.test.ts +92 -0
- package/bizar-dash/src/web/v8/__tests__/useWebSocket.test.ts +87 -0
- package/bizar-dash/src/web/v8/__tests__/views.test.tsx +110 -40
- package/bizar-dash/src/web/v8/data/fetcher.ts +59 -0
- package/bizar-dash/src/web/v8/data/types.ts +154 -0
- package/bizar-dash/src/web/v8/data/useFetch.ts +62 -0
- package/bizar-dash/src/web/v8/data/useWebSocket.ts +153 -0
- package/bizar-dash/src/web/v8/ui/agents/AgentDetail.tsx +252 -0
- package/bizar-dash/src/web/v8/ui/agents/AgentStreamPanel.tsx +371 -0
- package/bizar-dash/src/web/v8/ui/goals/GoalDetail.tsx +245 -0
- package/bizar-dash/src/web/v8/ui/kanban/KanbanBoard.tsx +6 -3
- package/bizar-dash/src/web/v8/ui/kanban/KanbanCard.tsx +3 -3
- package/bizar-dash/src/web/v8/ui/kanban/KanbanColumn.tsx +10 -5
- package/bizar-dash/src/web/v8/ui/styles/globals.css +5 -0
- package/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +53 -15
- package/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +151 -87
- package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.test.tsx +1 -1
- package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.tsx +133 -30
- package/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +176 -67
- package/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +78 -11
- package/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +58 -42
- package/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +112 -52
- package/bizar-dash/src/web/v8/views/Router.tsx +13 -37
- package/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +635 -210
- package/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +140 -49
- package/bizar-dash/tests/components/Button.test.tsx +51 -14
- package/bizar-dash/tests/components/Card.test.tsx +37 -20
- package/bizar-dash/tests/components/Dialog.test.tsx +80 -0
- package/bizar-dash/tests/components/Toast.test.tsx +48 -95
- package/bizar-dash/tests/goals-decompose.test.mjs +177 -0
- package/bizar-dash/tests/setup.ts +21 -0
- package/bizar-dash/tests/ui/primitives/VisuallyHidden.test.tsx +30 -15
- package/bizar-dash/vite.config.ts +15 -0
- package/bizar-dash/vitest.config.ts +4 -1
- package/cli/bin.mjs +32 -0
- package/cli/install.mjs +26 -1
- package/cli/provision-claude.mjs +86 -0
- package/package.json +1 -1
- package/scripts/run-dev.mjs +84 -0
- package/bizar-dash/dist/assets/ActivityFeed-BRBtQOHB.js +0 -6
- package/bizar-dash/dist/assets/ActivityFeed-BRBtQOHB.js.map +0 -1
- package/bizar-dash/dist/assets/ActivityView-CwqhxBfh.js +0 -1
- package/bizar-dash/dist/assets/ActivityView-CwqhxBfh.js.map +0 -1
- package/bizar-dash/dist/assets/AgentActivity-6MxU-a9F.js +0 -1
- package/bizar-dash/dist/assets/AgentActivity-6MxU-a9F.js.map +0 -1
- package/bizar-dash/dist/assets/AgentsView-BYrOFdwl.js +0 -8
- package/bizar-dash/dist/assets/AgentsView-BYrOFdwl.js.map +0 -1
- package/bizar-dash/dist/assets/GoalsView-Dok0yt9S.js +0 -11
- package/bizar-dash/dist/assets/GoalsView-Dok0yt9S.js.map +0 -1
- package/bizar-dash/dist/assets/Grid-C62gCPqt.js +0 -1
- package/bizar-dash/dist/assets/Grid-C62gCPqt.js.map +0 -1
- package/bizar-dash/dist/assets/KanbanCard-CtTKP6ZX.js +0 -21
- package/bizar-dash/dist/assets/KanbanCard-CtTKP6ZX.js.map +0 -1
- package/bizar-dash/dist/assets/LibrariesView-BcyBQXiY.js +0 -67
- package/bizar-dash/dist/assets/LibrariesView-BcyBQXiY.js.map +0 -1
- package/bizar-dash/dist/assets/MemoryView-49wR4u-y.js +0 -13
- package/bizar-dash/dist/assets/MemoryView-49wR4u-y.js.map +0 -1
- package/bizar-dash/dist/assets/OverviewView-BtQ_UWYj.js +0 -1
- package/bizar-dash/dist/assets/OverviewView-BtQ_UWYj.js.map +0 -1
- package/bizar-dash/dist/assets/ProgressBar-CpvDeq9F.js +0 -1
- package/bizar-dash/dist/assets/ProgressBar-CpvDeq9F.js.map +0 -1
- package/bizar-dash/dist/assets/SettingsRow-DmIe5OUu.js +0 -30
- package/bizar-dash/dist/assets/SettingsRow-DmIe5OUu.js.map +0 -1
- package/bizar-dash/dist/assets/SettingsView-D1KmGWbi.js +0 -48
- package/bizar-dash/dist/assets/SettingsView-D1KmGWbi.js.map +0 -1
- package/bizar-dash/dist/assets/StatTile-BkIP32gG.js +0 -11
- package/bizar-dash/dist/assets/StatTile-BkIP32gG.js.map +0 -1
- package/bizar-dash/dist/assets/TasksView-Cba3GJ42.js +0 -1
- package/bizar-dash/dist/assets/TasksView-Cba3GJ42.js.map +0 -1
- package/bizar-dash/dist/assets/circle-check-DmYQ3vGp.js +0 -6
- package/bizar-dash/dist/assets/circle-check-DmYQ3vGp.js.map +0 -1
- package/bizar-dash/dist/assets/dnd-kit-DR2Qzzxk.js +0 -5
- package/bizar-dash/dist/assets/git-merge-OoqBKQer.js +0 -6
- package/bizar-dash/dist/assets/git-merge-OoqBKQer.js.map +0 -1
- package/bizar-dash/dist/assets/git-pull-request-CXBQTR2f.js +0 -6
- package/bizar-dash/dist/assets/git-pull-request-CXBQTR2f.js.map +0 -1
- package/bizar-dash/dist/assets/main-Cw6gybzS.js +0 -109
- package/bizar-dash/dist/assets/main-Cw6gybzS.js.map +0 -1
- package/bizar-dash/dist/assets/message-square-DUTeIQAR.js +0 -6
- package/bizar-dash/dist/assets/message-square-DUTeIQAR.js.map +0 -1
- package/bizar-dash/dist/assets/minus-CrStJTZ7.js.map +0 -1
- package/bizar-dash/src/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
- /package/bizar-dash/tests/{BackgroundAgents.test.tsx → v7-archive/BackgroundAgents.test.tsx} +0 -0
- /package/bizar-dash/tests/{a11y → v7-archive/a11y}/forms.test.tsx +0 -0
- /package/bizar-dash/tests/{a11y.test.tsx → v7-archive/a11y.test.tsx} +0 -0
- /package/bizar-dash/tests/{autosave.test.tsx → v7-archive/autosave.test.tsx} +0 -0
- /package/bizar-dash/tests/{backup-restore.test.tsx → v7-archive/backup-restore.test.tsx} +0 -0
- /package/bizar-dash/tests/{chat-composer.test.tsx → v7-archive/chat-composer.test.tsx} +0 -0
- /package/bizar-dash/tests/{communication-log.test.tsx → v7-archive/communication-log.test.tsx} +0 -0
- /package/bizar-dash/tests/{components → v7-archive/components}/Modal.test.tsx +0 -0
- /package/bizar-dash/tests/{components → v7-archive/components}/Spinner.test.tsx +0 -0
- /package/bizar-dash/tests/{components → v7-archive/components}/StatusBadge.test.tsx +0 -0
- /package/bizar-dash/tests/{components → v7-archive/components}/doctor-panel.test.tsx +0 -0
- /package/bizar-dash/tests/{components → v7-archive/components}/screenshot-ocr.test.tsx +0 -0
- /package/bizar-dash/tests/{components → v7-archive/components}/settings-search.test.tsx +0 -0
- /package/bizar-dash/tests/{components → v7-archive/components}/workspace-selector.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/Button.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/Checkbox.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/IconButton.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/Kbd.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/NumberInput.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/RadioGroup.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/SearchInput.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/Select.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/Slider.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/TextInput.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/Textarea.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/controls/Toggle.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/data/BarChart.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/data/DataTable.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/data/EmptyState.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/data/ErrorState.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/data/KeyValueList.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/data/LoadingState.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/data/Sparkline.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/data/StatTile.test.tsx +0 -0
- /package/bizar-dash/tests/{dep-graph.test.tsx → v7-archive/dep-graph.test.tsx} +0 -0
- /package/bizar-dash/tests/{eval-web-ui.test.tsx → v7-archive/eval-web-ui.test.tsx} +0 -0
- /package/bizar-dash/tests/{event-log.test.tsx → v7-archive/event-log.test.tsx} +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/feedback/Badge.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/feedback/Dialog.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/feedback/ProgressBar.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/feedback/StatusDot.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/feedback/Toast.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/feedback/Tooltip.test.tsx +0 -0
- /package/bizar-dash/tests/{goal-input.test.tsx → v7-archive/goal-input.test.tsx} +0 -0
- /package/bizar-dash/tests/{goap-planner.test.ts → v7-archive/goap-planner.test.ts} +0 -0
- /package/bizar-dash/tests/{hooks → v7-archive/hooks}/useModal.test.tsx +0 -0
- /package/bizar-dash/tests/{hooks → v7-archive/hooks}/useToast.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/layout/AppShell.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/layout/Breadcrumbs.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/layout/Panel.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/layout/PanelHeader.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/layout/Sidebar.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/layout/Tabs.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/layout/Topbar.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/layout/ViewHeader.test.tsx +0 -0
- /package/bizar-dash/tests/{lib → v7-archive/lib}/i18n.test.ts +0 -0
- /package/bizar-dash/tests/{lib → v7-archive/lib}/search-fuzzy.test.ts +0 -0
- /package/bizar-dash/tests/{lib → v7-archive/lib}/utils.test.ts +0 -0
- /package/bizar-dash/tests/{memory-graph-view.test.tsx → v7-archive/memory-graph-view.test.tsx} +0 -0
- /package/bizar-dash/tests/{mobile-chat.test.tsx → v7-archive/mobile-chat.test.tsx} +0 -0
- /package/bizar-dash/tests/{mobile-layout.test.tsx → v7-archive/mobile-layout.test.tsx} +0 -0
- /package/bizar-dash/tests/{mobile-overview.test.tsx → v7-archive/mobile-overview.test.tsx} +0 -0
- /package/bizar-dash/tests/{mobile-settings.test.tsx → v7-archive/mobile-settings.test.tsx} +0 -0
- /package/bizar-dash/tests/{mobile-tasks.test.tsx → v7-archive/mobile-tasks.test.tsx} +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/navigation/CommandPalette.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/navigation/NavGroup.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive}/navigation/NavLink.test.tsx +0 -0
- /package/bizar-dash/tests/{quality-gates.test.tsx → v7-archive/quality-gates.test.tsx} +0 -0
- /package/bizar-dash/tests/{settings-layout.test.tsx → v7-archive/settings-layout.test.tsx} +0 -0
- /package/bizar-dash/tests/{settings-mode-wiring.test.tsx → v7-archive/settings-mode-wiring.test.tsx} +0 -0
- /package/bizar-dash/tests/{settings-nav.test.tsx → v7-archive/settings-nav.test.tsx} +0 -0
- /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Box.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Grid.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Inline.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Separator.test.tsx +0 -0
- /package/bizar-dash/tests/{ui → v7-archive/ui}/primitives/Stack.test.tsx +0 -0
- /package/bizar-dash/tests/{views → v7-archive/views}/Agents.test.tsx +0 -0
- /package/bizar-dash/tests/{views → v7-archive/views}/Memory.test.tsx +0 -0
- /package/bizar-dash/tests/{views → v7-archive/views}/Overview.test.tsx +0 -0
- /package/bizar-dash/tests/{views → v7-archive/views}/Tasks.test.tsx +0 -0
- /package/bizar-dash/tests/{views → v7-archive/views}/sidebar.test.tsx +0 -0
- /package/bizar-dash/tests/{views → v7-archive/views}/topbar.test.tsx +0 -0
- /package/bizar-dash/tests/{voice-recorder.test.tsx → v7-archive/voice-recorder.test.tsx} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LibrariesView-BcyBQXiY.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","../../src/web/v8/ui/controls/Input.tsx","../../src/web/v8/ui/controls/Textarea.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/feedback/Sheet.tsx","../../src/web/v8/ui/data/Chip.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/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});","import { forwardRef, type InputHTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Input — single-line text input.\n *\n * Variants:\n * - default: bordered, surface-1 background\n * - filled: surface-2 background, no visible border until focus\n * - flushed: no border except a bottom rule (used inside cards/forms)\n *\n * Pair with <Field> for label + hint + error.\n */\nexport type InputSize = 'sm' | 'md' | 'lg';\nexport type InputVariant = 'default' | 'filled' | 'flushed';\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n size?: InputSize;\n variant?: InputVariant;\n invalid?: boolean;\n leftAddon?: ReactNode;\n rightAddon?: ReactNode;\n}\n\nconst SIZE: Record<InputSize, { h: number; fs: string; px: number }> = {\n sm: { h: 28, fs: 'var(--fs-12)', px: 10 },\n md: { h: 32, fs: 'var(--fs-13)', px: 12 },\n lg: { h: 40, fs: 'var(--fs-14)', px: 14 },\n};\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(props, ref) {\n const {\n size = 'md',\n variant = 'default',\n invalid,\n leftAddon,\n rightAddon,\n disabled,\n className,\n style,\n ...rest\n } = props;\n const sz = SIZE[size];\n\n const wrapperStyle = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n width: '100%',\n height: sz.h,\n paddingLeft: variant === 'flushed' ? 0 : sz.px,\n paddingRight: variant === 'flushed' ? 0 : sz.px,\n background:\n variant === 'filled'\n ? 'var(--surface-2)'\n : variant === 'flushed'\n ? 'transparent'\n : 'var(--input-bg)',\n border: variant === 'flushed' ? 'none' : '1px solid',\n borderBottom: variant === 'flushed' ? '1px solid var(--border)' : undefined,\n borderColor: invalid === true ? 'var(--danger)' : 'var(--border)',\n borderRadius: variant === 'flushed' ? 0 : 'var(--radius-sm)',\n opacity: disabled === true ? 0.55 : 1,\n transition: 'border-color var(--motion-fast) var(--ease-out)',\n ...style,\n } as const;\n\n return (\n <div className={cx('v8-input-wrap', className)} style={wrapperStyle}>\n {leftAddon !== undefined && (\n <span style={{ color: 'var(--fg-muted)', display: 'inline-flex' }}>{leftAddon}</span>\n )}\n <input\n ref={ref}\n disabled={disabled}\n aria-invalid={invalid === true ? 'true' : undefined}\n className=\"v8-input\"\n style={{\n flex: 1,\n minWidth: 0,\n background: 'transparent',\n border: 0,\n outline: 0,\n fontSize: sz.fs,\n color: 'var(--fg)',\n }}\n {...rest}\n />\n {rightAddon !== undefined && (\n <span style={{ color: 'var(--fg-muted)', display: 'inline-flex' }}>{rightAddon}</span>\n )}\n </div>\n );\n});","import { forwardRef, type TextareaHTMLAttributes } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Textarea — multi-line input.\n *\n * Use for: descriptions, comments, chat input.\n * Pair with <Field> for label + hint + error.\n */\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n invalid?: boolean;\n autoResize?: boolean;\n}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(props, ref) {\n const {\n invalid,\n autoResize,\n disabled,\n rows = 4,\n className,\n style,\n onInput,\n ...rest\n } = props;\n\n const computedStyle = {\n width: '100%',\n minHeight: 64,\n padding: 'var(--space-3)',\n fontSize: 'var(--fs-13)',\n lineHeight: 'var(--lh-base)',\n color: 'var(--fg)',\n background: 'var(--input-bg)',\n border: '1px solid',\n borderColor: invalid === true ? 'var(--danger)' : 'var(--border)',\n borderRadius: 'var(--radius-sm)',\n outline: 0,\n resize: autoResize === true ? 'none' : 'vertical',\n opacity: disabled === true ? 0.55 : 1,\n fontFamily: 'inherit',\n ...style,\n } as const;\n\n return (\n <textarea\n ref={ref}\n rows={rows}\n disabled={disabled}\n aria-invalid={invalid === true ? 'true' : undefined}\n className={cx('v8-textarea', className)}\n style={computedStyle}\n onInput={(e) => {\n if (autoResize === true) {\n const el = e.currentTarget;\n el.style.height = 'auto';\n el.style.height = `${el.scrollHeight}px`;\n }\n onInput?.(e);\n }}\n {...rest}\n />\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 ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport * as RxDialog from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Sheet — a side-anchored panel.\n *\n * Use for: task detail, agent detail, settings panels (mobile), kanban card\n * expanded. Use a Dialog when the content is best presented centered.\n */\n\nexport type SheetSide = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface SheetProps extends Omit<ComponentPropsWithoutRef<typeof RxDialog.Root>, 'children'> {\n children: ReactNode;\n}\n\nexport const Sheet = ({ children, ...rest }: SheetProps) => (\n <RxDialog.Root {...rest}>{children}</RxDialog.Root>\n);\n\nexport const SheetTrigger = RxDialog.Trigger;\nexport const SheetClose = RxDialog.Close;\n\nexport interface SheetContentProps extends ComponentPropsWithoutRef<typeof RxDialog.Content> {\n side?: SheetSide;\n title: string;\n description?: string;\n children: ReactNode;\n}\n\nconst SIDE_STYLE: Record<SheetSide, React.CSSProperties> = {\n top: { top: 0, left: 0, right: 0, height: '60vh', borderBottom: '1px solid var(--border)', borderRadius: '0 0 var(--radius-lg) var(--radius-lg)' },\n right: { top: 0, right: 0, bottom: 0, width: 'min(560px, 100vw)', borderLeft: '1px solid var(--border)' },\n bottom: { bottom: 0, left: 0, right: 0, height: '60vh', borderTop: '1px solid var(--border)', borderRadius: 'var(--radius-lg) var(--radius-lg) 0 0' },\n left: { top: 0, left: 0, bottom: 0, width: 'min(560px, 100vw)', borderRight: '1px solid var(--border)' },\n};\n\nexport const SheetContent = forwardRef<HTMLDivElement, SheetContentProps>(function SheetContent(\n props,\n ref,\n) {\n const { className, side = 'right', title, description, children, ...rest } = props;\n return (\n <RxDialog.Portal>\n <RxDialog.Overlay\n style={{\n position: 'fixed',\n inset: 0,\n background: 'oklch(0 0 0 / 0.4)',\n zIndex: 'var(--z-modal)',\n }}\n />\n <RxDialog.Content\n ref={ref}\n data-side={side}\n className={cx('v8-sheet', className)}\n style={{\n position: 'fixed',\n background: 'var(--surface-popover)',\n padding: 'var(--space-6)',\n overflow: 'auto',\n boxShadow: 'var(--shadow-4)',\n zIndex: 'calc(var(--z-modal) + 1)',\n ...SIDE_STYLE[side],\n }}\n {...rest}\n >\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: 'var(--space-4)' }}>\n <div>\n <RxDialog.Title style={{ fontSize: 'var(--fs-18)', fontWeight: 600 }}>{title}</RxDialog.Title>\n {description !== undefined && (\n <RxDialog.Description\n style={{ fontSize: 'var(--fs-13)', color: 'var(--fg-muted)', marginTop: 'var(--space-1)' }}\n >\n {description}\n </RxDialog.Description>\n )}\n </div>\n <RxDialog.Close\n aria-label=\"Close\"\n style={{\n width: 28,\n height: 28,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'transparent',\n border: 0,\n borderRadius: 'var(--radius-sm)',\n color: 'var(--fg-muted)',\n cursor: 'pointer',\n }}\n >\n <X size={16} aria-hidden=\"true\" />\n </RxDialog.Close>\n </div>\n {children}\n </RxDialog.Content>\n </RxDialog.Portal>\n );\n});","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { X } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Chip — filter pill with an optional remove button.\n *\n * Different from Badge: Badge is a status indicator (read-only).\n * Chip is interactive — clickable for selection, removable for filters.\n */\n\nexport interface ChipProps extends HTMLAttributes<HTMLSpanElement> {\n /** Visual tone. */\n tone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger' | 'accent';\n /** When true, render with selected styling (used for filter chips). */\n selected?: boolean;\n /** When provided, render a close button that invokes this handler. */\n onRemove?: () => void;\n children: ReactNode;\n}\n\nconst TONE_BG: Record<NonNullable<ChipProps['tone']>, string> = {\n neutral: 'var(--surface-1)',\n info: 'color-mix(in oklch, var(--info) 14%, var(--surface-1))',\n success: 'color-mix(in oklch, var(--success) 14%, var(--surface-1))',\n warning: 'color-mix(in oklch, var(--warning) 14%, var(--surface-1))',\n danger: 'color-mix(in oklch, var(--danger) 14%, var(--surface-1))',\n accent: 'color-mix(in oklch, var(--accent) 14%, var(--surface-1))',\n};\n\nconst TONE_BORDER: Record<NonNullable<ChipProps['tone']>, string> = {\n neutral: 'var(--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 accent: 'color-mix(in oklch, var(--accent) 30%, var(--border))',\n};\n\nexport const Chip = forwardRef<HTMLSpanElement, ChipProps>(function Chip(props, ref) {\n const { tone = 'neutral', selected, onRemove, children, className, style, ...rest } = props;\n const isInteractive = selected !== undefined || onRemove !== undefined;\n return (\n <span\n ref={ref}\n className={cx('v8-chip', `v8-chip--${tone}`, selected === true && 'is-selected', className)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--space-1)',\n height: 24,\n padding: '0 8px',\n background: selected === true ? `color-mix(in oklch, var(--accent) 18%, var(--surface-1))` : TONE_BG[tone],\n border: '1px solid',\n borderColor: selected === true ? 'var(--accent)' : TONE_BORDER[tone],\n borderRadius: 'var(--radius-pill)',\n fontSize: 'var(--fs-12)',\n fontWeight: 500,\n color: selected === true ? 'var(--accent)' : 'var(--fg)',\n cursor: isInteractive === true ? 'pointer' : 'default',\n whiteSpace: 'nowrap',\n ...style,\n }}\n {...rest}\n >\n {children}\n {onRemove !== undefined && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onRemove();\n }}\n aria-label=\"Remove\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 14,\n height: 14,\n marginLeft: 2,\n marginRight: -4,\n padding: 0,\n background: 'transparent',\n border: 0,\n borderRadius: 'var(--radius-sm)',\n color: 'var(--fg-muted)',\n cursor: 'pointer',\n }}\n >\n <X size={10} aria-hidden=\"true\" />\n </button>\n )}\n </span>\n );\n});","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 { 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 { Stack } from '../../ui/primitives/Stack.js';\nimport { ViewHeader } from '../../ui/data/ViewHeader.js';\nimport { LibraryGrid, LibraryItem, type LibraryItemProps } from '../../ui/index.js';\n\n/**\n * LibrariesView — generic view that any one of Skills / MCPs / Hooks\n * uses. Pass the kind + items list; the surface is identical.\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/mcp.json`.',\n hooks: 'Executable hook scripts (PreToolUse / PostToolUse / SessionStart / SessionEnd).',\n};\n\nexport interface LibrariesViewProps {\n kind: LibraryKind;\n items: readonly LibraryItemProps[];\n}\n\nexport function LibrariesView(props: LibrariesViewProps): JSX.Element {\n const { kind, items } = props;\n return (\n <Stack gap={5}>\n <ViewHeader title={KIND_LABEL[kind]} description={KIND_DESCRIPTION[kind]} />\n <LibraryGrid>\n {items.map((item) => (\n <LibraryItem key={item.id} {...item} />\n ))}\n </LibraryGrid>\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","invalid","leftAddon","rightAddon","sz","wrapperStyle","jsxs","autoResize","rows","onInput","e","el","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","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","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","SIDE_STYLE","description","RxDialog.Portal","RxDialog.Overlay","RxDialog.Content","RxDialog.Title","RxDialog.Description","RxDialog.Close","selected","onRemove","isInteractive","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","RxAccordion.Item","RxAccordion.Header","RxAccordion.Trigger","ChevronDown","RxAccordion.Content","density","striped","rowHeight","TABS_NAME","createTabsContext","TabsProvider","useTabsContext","Tabs","__scopeTabs","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","TabsTrigger","makeTriggerId","makeContentId","isSelected","isAutomaticActivation","TabsContent","baseId","List","RxTabs.Root","RxTabs.List","RxTabs.Trigger","RxTabs.Content","href","showActiveBar","leading","buildPages","current","total","siblings","pages","page","totalPages","onChange","showEdges","siblingCount","go","next","PageButton","ChevronsLeft","ChevronsRight","STATUS_LABEL","STATUS_TONE","LibraryItem","slug","status","meta","actions","onOpen","Badge","LibraryGrid","KIND_LABEL","KIND_DESCRIPTION","LibrariesView","kind","Stack","ViewHeader"],"mappings":"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","x_google_ignoreList":[0,1,2,3,8,10,12,13,14,16,20,22,24,27,28,30,36,37,40]}
|