@polderlabs/bizar 7.0.4 → 8.0.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/settings.local.json +8 -0
- package/bizar-dash/DESIGN.md +729 -969
- package/bizar-dash/GLYPH.md +418 -0
- package/bizar-dash/PLAN.md +1135 -0
- package/bizar-dash/dist/assets/ActivityFeed-BRBtQOHB.js +6 -0
- package/bizar-dash/dist/assets/ActivityFeed-BRBtQOHB.js.map +1 -0
- package/bizar-dash/dist/assets/ActivityView-CwqhxBfh.js +1 -0
- package/bizar-dash/dist/assets/ActivityView-CwqhxBfh.js.map +1 -0
- package/bizar-dash/dist/assets/AgentActivity-6MxU-a9F.js +1 -0
- package/bizar-dash/dist/assets/AgentActivity-6MxU-a9F.js.map +1 -0
- package/bizar-dash/dist/assets/AgentsView-BYrOFdwl.js +8 -0
- package/bizar-dash/dist/assets/AgentsView-BYrOFdwl.js.map +1 -0
- package/bizar-dash/dist/assets/Badge-Cd61wsBa.js +1 -0
- package/bizar-dash/dist/assets/Badge-Cd61wsBa.js.map +1 -0
- package/bizar-dash/dist/assets/Card-C_bvqXdQ.js +1 -0
- package/bizar-dash/dist/assets/Card-C_bvqXdQ.js.map +1 -0
- package/bizar-dash/dist/assets/EmptyState-BWQuKnk9.js +1 -0
- package/bizar-dash/dist/assets/EmptyState-BWQuKnk9.js.map +1 -0
- package/bizar-dash/dist/assets/GoalsView-Dok0yt9S.js +11 -0
- package/bizar-dash/dist/assets/GoalsView-Dok0yt9S.js.map +1 -0
- package/bizar-dash/dist/assets/Grid-C62gCPqt.js +1 -0
- package/bizar-dash/dist/assets/Grid-C62gCPqt.js.map +1 -0
- package/bizar-dash/dist/assets/KanbanCard-CtTKP6ZX.js +21 -0
- package/bizar-dash/dist/assets/KanbanCard-CtTKP6ZX.js.map +1 -0
- package/bizar-dash/dist/assets/LibrariesView-BcyBQXiY.js +67 -0
- package/bizar-dash/dist/assets/LibrariesView-BcyBQXiY.js.map +1 -0
- package/bizar-dash/dist/assets/MemoryView-49wR4u-y.js +13 -0
- package/bizar-dash/dist/assets/MemoryView-49wR4u-y.js.map +1 -0
- package/bizar-dash/dist/assets/OverviewView-BtQ_UWYj.js +1 -0
- package/bizar-dash/dist/assets/OverviewView-BtQ_UWYj.js.map +1 -0
- package/bizar-dash/dist/assets/ProgressBar-CpvDeq9F.js +1 -0
- package/bizar-dash/dist/assets/ProgressBar-CpvDeq9F.js.map +1 -0
- package/bizar-dash/dist/assets/SettingsRow-DmIe5OUu.js +30 -0
- package/bizar-dash/dist/assets/SettingsRow-DmIe5OUu.js.map +1 -0
- package/bizar-dash/dist/assets/SettingsView-D1KmGWbi.js +48 -0
- package/bizar-dash/dist/assets/SettingsView-D1KmGWbi.js.map +1 -0
- package/bizar-dash/dist/assets/StatTile-BkIP32gG.js +11 -0
- package/bizar-dash/dist/assets/StatTile-BkIP32gG.js.map +1 -0
- package/bizar-dash/dist/assets/TasksView-Cba3GJ42.js +1 -0
- package/bizar-dash/dist/assets/TasksView-Cba3GJ42.js.map +1 -0
- package/bizar-dash/dist/assets/ViewHeader-D6c2cw1b.js +6 -0
- package/bizar-dash/dist/assets/ViewHeader-D6c2cw1b.js.map +1 -0
- package/bizar-dash/dist/assets/brain-DeoXNDE2.js +6 -0
- package/bizar-dash/dist/assets/brain-DeoXNDE2.js.map +1 -0
- package/bizar-dash/dist/assets/calendar-DRlQkGJc.js +6 -0
- package/bizar-dash/dist/assets/calendar-DRlQkGJc.js.map +1 -0
- package/bizar-dash/dist/assets/circle-check-DmYQ3vGp.js +6 -0
- package/bizar-dash/dist/assets/circle-check-DmYQ3vGp.js.map +1 -0
- package/bizar-dash/dist/assets/cmdk-BwN8hcKQ.js +80 -0
- package/bizar-dash/dist/assets/cmdk-BwN8hcKQ.js.map +1 -0
- package/bizar-dash/dist/assets/dnd-kit-DR2Qzzxk.js +5 -0
- package/bizar-dash/dist/assets/dnd-kit-DR2Qzzxk.js.map +1 -0
- package/bizar-dash/dist/assets/git-merge-OoqBKQer.js +6 -0
- package/bizar-dash/dist/assets/git-merge-OoqBKQer.js.map +1 -0
- package/bizar-dash/dist/assets/git-pull-request-CXBQTR2f.js +6 -0
- package/bizar-dash/dist/assets/git-pull-request-CXBQTR2f.js.map +1 -0
- package/bizar-dash/dist/assets/main-COdgjqbZ.css +1 -0
- package/bizar-dash/dist/assets/main-Cw6gybzS.js +109 -0
- package/bizar-dash/dist/assets/main-Cw6gybzS.js.map +1 -0
- package/bizar-dash/dist/assets/message-square-DUTeIQAR.js +6 -0
- package/bizar-dash/dist/assets/message-square-DUTeIQAR.js.map +1 -0
- package/bizar-dash/dist/assets/minus-CrStJTZ7.js +6 -0
- package/bizar-dash/dist/assets/minus-CrStJTZ7.js.map +1 -0
- package/bizar-dash/dist/assets/wrench-BJ1WIC4u.js +6 -0
- package/bizar-dash/dist/assets/wrench-BJ1WIC4u.js.map +1 -0
- package/bizar-dash/dist/{mobile.html → v8.html} +6 -9
- package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/bizar-dash/src/server/server.mjs +1 -57
- package/bizar-dash/src/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/bizar-dash/src/web/v8/App.tsx +188 -0
- package/bizar-dash/src/web/v8/__tests__/App.test.tsx +102 -0
- package/bizar-dash/src/web/v8/__tests__/AppShell.test.tsx +79 -0
- package/bizar-dash/src/web/v8/__tests__/PageSkeleton.test.tsx +12 -0
- package/bizar-dash/src/web/v8/__tests__/SettingsView.test.tsx +84 -0
- package/bizar-dash/src/web/v8/__tests__/Sidebar.test.tsx +95 -0
- package/bizar-dash/src/web/v8/__tests__/activity.test.tsx +63 -0
- package/bizar-dash/src/web/v8/__tests__/agents.test.tsx +90 -0
- package/bizar-dash/src/web/v8/__tests__/controls.test.tsx +135 -0
- package/bizar-dash/src/web/v8/__tests__/cx.test.ts +25 -0
- package/bizar-dash/src/web/v8/__tests__/data.test.tsx +293 -0
- package/bizar-dash/src/web/v8/__tests__/feedback.test.tsx +213 -0
- package/bizar-dash/src/web/v8/__tests__/goals.test.tsx +105 -0
- package/bizar-dash/src/web/v8/__tests__/kanban.test.tsx +176 -0
- package/bizar-dash/src/web/v8/__tests__/libraries.test.tsx +70 -0
- package/bizar-dash/src/web/v8/__tests__/memory.test.tsx +60 -0
- package/bizar-dash/src/web/v8/__tests__/navigation.test.tsx +137 -0
- package/bizar-dash/src/web/v8/__tests__/settings.test.tsx +104 -0
- package/bizar-dash/src/web/v8/__tests__/theme.test.tsx +98 -0
- package/bizar-dash/src/web/v8/__tests__/views.test.tsx +112 -0
- package/bizar-dash/src/web/v8/main.tsx +28 -0
- package/bizar-dash/src/web/v8/shell/AppShell.tsx +90 -0
- package/bizar-dash/src/web/v8/shell/PageSkeleton.tsx +29 -0
- package/bizar-dash/src/web/v8/shell/Sidebar.tsx +361 -0
- package/bizar-dash/src/web/v8/shell/StatusBar.tsx +63 -0
- package/bizar-dash/src/web/v8/shell/Topbar.tsx +113 -0
- package/bizar-dash/src/web/v8/shell/index.ts +15 -0
- package/bizar-dash/src/web/v8/ui/activity/ActivityFeed.tsx +137 -0
- package/bizar-dash/src/web/v8/ui/agents/AgentActivity.tsx +101 -0
- package/bizar-dash/src/web/v8/ui/agents/AgentCard.tsx +158 -0
- package/bizar-dash/src/web/v8/ui/controls/Button.tsx +141 -0
- package/bizar-dash/src/web/v8/ui/controls/ButtonGroup.tsx +32 -0
- package/bizar-dash/src/web/v8/ui/controls/Checkbox.tsx +49 -0
- package/bizar-dash/src/web/v8/ui/controls/Field.tsx +78 -0
- package/bizar-dash/src/web/v8/ui/controls/Form.tsx +23 -0
- package/bizar-dash/src/web/v8/ui/controls/IconButton.tsx +112 -0
- package/bizar-dash/src/web/v8/ui/controls/Input.tsx +94 -0
- package/bizar-dash/src/web/v8/ui/controls/RadioGroup.tsx +74 -0
- package/bizar-dash/src/web/v8/ui/controls/Select.tsx +171 -0
- package/bizar-dash/src/web/v8/ui/controls/Slider.tsx +68 -0
- package/bizar-dash/src/web/v8/ui/controls/Switch.tsx +56 -0
- package/bizar-dash/src/web/v8/ui/controls/Textarea.tsx +64 -0
- package/bizar-dash/src/web/v8/ui/controls/Toggle.tsx +36 -0
- package/bizar-dash/src/web/v8/ui/controls/ToggleGroup.tsx +85 -0
- package/bizar-dash/src/web/v8/ui/data/Accordion.tsx +134 -0
- package/bizar-dash/src/web/v8/ui/data/Avatar.tsx +175 -0
- package/bizar-dash/src/web/v8/ui/data/Badge.tsx +93 -0
- package/bizar-dash/src/web/v8/ui/data/BarList.tsx +101 -0
- package/bizar-dash/src/web/v8/ui/data/Card.tsx +140 -0
- package/bizar-dash/src/web/v8/ui/data/Chip.tsx +96 -0
- package/bizar-dash/src/web/v8/ui/data/Kbd.tsx +42 -0
- package/bizar-dash/src/web/v8/ui/data/ProgressBar.tsx +93 -0
- package/bizar-dash/src/web/v8/ui/data/Sparkline.tsx +98 -0
- package/bizar-dash/src/web/v8/ui/data/StatTile.tsx +150 -0
- package/bizar-dash/src/web/v8/ui/data/Table.tsx +170 -0
- package/bizar-dash/src/web/v8/ui/data/Timeline.tsx +130 -0
- package/bizar-dash/src/web/v8/ui/data/ViewHeader.tsx +122 -0
- package/bizar-dash/src/web/v8/ui/feedback/Alert.tsx +95 -0
- package/bizar-dash/src/web/v8/ui/feedback/Banner.tsx +39 -0
- package/bizar-dash/src/web/v8/ui/feedback/ContextMenu.tsx +143 -0
- package/bizar-dash/src/web/v8/ui/feedback/Dialog.tsx +149 -0
- package/bizar-dash/src/web/v8/ui/feedback/Drawer.tsx +8 -0
- package/bizar-dash/src/web/v8/ui/feedback/DropdownMenu.tsx +231 -0
- package/bizar-dash/src/web/v8/ui/feedback/EmptyState.tsx +48 -0
- package/bizar-dash/src/web/v8/ui/feedback/Popover.tsx +56 -0
- package/bizar-dash/src/web/v8/ui/feedback/Sheet.tsx +103 -0
- package/bizar-dash/src/web/v8/ui/feedback/Skeleton.tsx +67 -0
- package/bizar-dash/src/web/v8/ui/feedback/Spinner.tsx +30 -0
- package/bizar-dash/src/web/v8/ui/feedback/Toast.tsx +66 -0
- package/bizar-dash/src/web/v8/ui/feedback/Tooltip.tsx +89 -0
- package/bizar-dash/src/web/v8/ui/goals/GoalCard.tsx +176 -0
- package/bizar-dash/src/web/v8/ui/goals/KeyResult.tsx +115 -0
- package/bizar-dash/src/web/v8/ui/index.ts +322 -0
- package/bizar-dash/src/web/v8/ui/kanban/KanbanBoard.tsx +80 -0
- package/bizar-dash/src/web/v8/ui/kanban/KanbanCard.tsx +247 -0
- package/bizar-dash/src/web/v8/ui/kanban/KanbanColumn.tsx +181 -0
- package/bizar-dash/src/web/v8/ui/kanban/KanbanContextMenu.tsx +122 -0
- package/bizar-dash/src/web/v8/ui/kanban/KanbanQuickAdd.tsx +141 -0
- package/bizar-dash/src/web/v8/ui/libraries/LibraryGrid.tsx +30 -0
- package/bizar-dash/src/web/v8/ui/libraries/LibraryItem.tsx +161 -0
- package/bizar-dash/src/web/v8/ui/memory/MemoryVault.tsx +144 -0
- package/bizar-dash/src/web/v8/ui/navigation/CommandPalette.tsx +224 -0
- package/bizar-dash/src/web/v8/ui/navigation/NavLink.tsx +81 -0
- package/bizar-dash/src/web/v8/ui/navigation/Pagination.tsx +164 -0
- package/bizar-dash/src/web/v8/ui/navigation/Tabs.tsx +128 -0
- package/bizar-dash/src/web/v8/ui/navigation/useCommandPaletteHotkey.test.ts +79 -0
- package/bizar-dash/src/web/v8/ui/primitives/Box.tsx +144 -0
- package/bizar-dash/src/web/v8/ui/primitives/Center.tsx +40 -0
- package/bizar-dash/src/web/v8/ui/primitives/Cluster.tsx +67 -0
- package/bizar-dash/src/web/v8/ui/primitives/Grid.tsx +104 -0
- package/bizar-dash/src/web/v8/ui/primitives/Inline.tsx +77 -0
- package/bizar-dash/src/web/v8/ui/primitives/Portal.tsx +33 -0
- package/bizar-dash/src/web/v8/ui/primitives/ScrollArea.tsx +62 -0
- package/bizar-dash/src/web/v8/ui/primitives/Separator.tsx +42 -0
- package/bizar-dash/src/web/v8/ui/primitives/Stack.tsx +73 -0
- package/bizar-dash/src/web/v8/ui/primitives/VisuallyHidden.tsx +49 -0
- package/bizar-dash/src/web/v8/ui/settings/SettingsNav.tsx +91 -0
- package/bizar-dash/src/web/v8/ui/settings/SettingsRow.tsx +88 -0
- package/bizar-dash/src/web/v8/ui/settings/SettingsSection.tsx +109 -0
- package/bizar-dash/src/web/v8/ui/styles/globals.css +220 -0
- package/bizar-dash/src/web/v8/ui/styles/reset.css +57 -0
- package/bizar-dash/src/web/v8/ui/styles/tokens.css +217 -0
- package/bizar-dash/src/web/v8/ui/theme/DensityProvider.test.tsx +74 -0
- package/bizar-dash/src/web/v8/ui/theme/DensityProvider.tsx +66 -0
- package/bizar-dash/src/web/v8/ui/theme/ThemeProvider.test.tsx +86 -0
- package/bizar-dash/src/web/v8/ui/theme/ThemeProvider.tsx +94 -0
- package/bizar-dash/src/web/v8/ui/theme/ThemeToggle.tsx +88 -0
- package/bizar-dash/src/web/v8/ui/theme/useDensity.ts +15 -0
- package/bizar-dash/src/web/v8/ui/theme/useTheme.ts +16 -0
- package/bizar-dash/src/web/v8/ui/utils/cx.ts +19 -0
- package/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +33 -0
- package/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +108 -0
- package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.test.tsx +142 -0
- package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.tsx +144 -0
- package/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +84 -0
- package/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +41 -0
- package/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +61 -0
- package/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +92 -0
- package/bizar-dash/src/web/v8/views/Router.tsx +96 -0
- package/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +305 -0
- package/bizar-dash/src/web/v8/views/Tasks/CommandPalettePlaceholder.tsx +106 -0
- package/bizar-dash/src/web/v8/views/Tasks/TasksKanbanPlaceholder.tsx +62 -0
- package/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +74 -0
- package/bizar-dash/src/web/v8/vite-env.d.ts +15 -0
- package/bizar-dash/src/web/{mobile.html → v8.html} +4 -7
- package/bizar-dash/tests/setup.ts +26 -0
- package/bizar-dash/vite.config.ts +26 -2
- package/bizar-dash/vitest.config.ts +5 -3
- package/package.json +36 -3
- package/bizar-dash/dist/assets/EnvVarsSection-BfhAz3ax.js +0 -114
- package/bizar-dash/dist/assets/EnvVarsSection-BfhAz3ax.js.map +0 -1
- package/bizar-dash/dist/assets/MobileChat-DLWdv6tQ.js +0 -1
- package/bizar-dash/dist/assets/MobileChat-DLWdv6tQ.js.map +0 -1
- package/bizar-dash/dist/assets/MobileSettings-Bxv62uPY.js +0 -1
- package/bizar-dash/dist/assets/MobileSettings-Bxv62uPY.js.map +0 -1
- package/bizar-dash/dist/assets/Toast-ATSAmbdi.js +0 -26
- package/bizar-dash/dist/assets/Toast-ATSAmbdi.js.map +0 -1
- package/bizar-dash/dist/assets/__vite-browser-external-BIHI7g3E.js +0 -1
- package/bizar-dash/dist/assets/__vite-browser-external-BIHI7g3E.js.map +0 -1
- package/bizar-dash/dist/assets/main-CJAtrosO.css +0 -1
- package/bizar-dash/dist/assets/main-DKKj9dsq.js +0 -430
- package/bizar-dash/dist/assets/main-DKKj9dsq.js.map +0 -1
- package/bizar-dash/dist/assets/mobile-C_naUN91.js +0 -1
- package/bizar-dash/dist/assets/mobile-C_naUN91.js.map +0 -1
- package/bizar-dash/dist/assets/mobile-layout-BWLtwtfQ.css +0 -1
- package/bizar-dash/dist/assets/mobile-layout-GZ3bE8L6.js +0 -211
- package/bizar-dash/dist/assets/mobile-layout-GZ3bE8L6.js.map +0 -1
- package/bizar-dash/dist/assets/useSlashCommands-BOwD7lNb.js +0 -65
- package/bizar-dash/dist/assets/useSlashCommands-BOwD7lNb.js.map +0 -1
- package/bizar-dash/dist/index.html +0 -43
- package/bizar-dash/src/web/App.tsx +0 -915
- package/bizar-dash/src/web/MobileApp.tsx +0 -414
- package/bizar-dash/src/web/components/ArtifactCreateDialog.tsx +0 -95
- package/bizar-dash/src/web/components/ArtifactListDialog.tsx +0 -55
- package/bizar-dash/src/web/components/ArtifactViewer.tsx +0 -144
- package/bizar-dash/src/web/components/AuditDialog.tsx +0 -79
- package/bizar-dash/src/web/components/AutosaveField.tsx +0 -50
- package/bizar-dash/src/web/components/BackupRestore.tsx +0 -330
- package/bizar-dash/src/web/components/BgStatusBadge.tsx +0 -32
- package/bizar-dash/src/web/components/Button.tsx +0 -56
- package/bizar-dash/src/web/components/CanvasContextMenu.tsx +0 -68
- package/bizar-dash/src/web/components/Card.tsx +0 -40
- package/bizar-dash/src/web/components/CollapsibleSection.tsx +0 -72
- package/bizar-dash/src/web/components/CommandDialog.tsx +0 -66
- package/bizar-dash/src/web/components/DoctorPanel.tsx +0 -160
- package/bizar-dash/src/web/components/EmptyState.tsx +0 -30
- package/bizar-dash/src/web/components/EnvVarManager.tsx +0 -430
- package/bizar-dash/src/web/components/EvalDiff.tsx +0 -157
- package/bizar-dash/src/web/components/EvalExportButton.tsx +0 -27
- package/bizar-dash/src/web/components/EvalRunCard.tsx +0 -78
- package/bizar-dash/src/web/components/FileBrowser.tsx +0 -633
- package/bizar-dash/src/web/components/HeadroomSettings.tsx +0 -418
- package/bizar-dash/src/web/components/HeadroomStatus.tsx +0 -158
- package/bizar-dash/src/web/components/HelpDialog.tsx +0 -55
- package/bizar-dash/src/web/components/InviteDialog.tsx +0 -205
- package/bizar-dash/src/web/components/KillConfirmDialog.tsx +0 -88
- package/bizar-dash/src/web/components/MobileBottomNav.tsx +0 -38
- package/bizar-dash/src/web/components/MobileDrawer.tsx +0 -68
- package/bizar-dash/src/web/components/MobileHeader.tsx +0 -50
- package/bizar-dash/src/web/components/MobileLayout.tsx +0 -63
- package/bizar-dash/src/web/components/Modal.tsx +0 -215
- package/bizar-dash/src/web/components/Notifications.tsx +0 -242
- package/bizar-dash/src/web/components/ScheduleTemplateCard.tsx +0 -72
- package/bizar-dash/src/web/components/ScreenshotCapture.tsx +0 -138
- package/bizar-dash/src/web/components/ScreenshotOCR.tsx +0 -42
- package/bizar-dash/src/web/components/SearchModal.tsx +0 -227
- package/bizar-dash/src/web/components/SettingsNav.tsx +0 -117
- package/bizar-dash/src/web/components/SettingsSearch.tsx +0 -328
- package/bizar-dash/src/web/components/Sidebar.tsx +0 -89
- package/bizar-dash/src/web/components/Spinner.tsx +0 -19
- package/bizar-dash/src/web/components/StatusBadge.tsx +0 -56
- package/bizar-dash/src/web/components/Tag.tsx +0 -41
- package/bizar-dash/src/web/components/TailscaleSettings.tsx +0 -161
- package/bizar-dash/src/web/components/TaskCard.tsx +0 -69
- package/bizar-dash/src/web/components/TaskCreateSheet.tsx +0 -76
- package/bizar-dash/src/web/components/Toast.tsx +0 -150
- package/bizar-dash/src/web/components/Toggle.tsx +0 -31
- package/bizar-dash/src/web/components/Topbar.tsx +0 -455
- package/bizar-dash/src/web/components/UsageChart.tsx +0 -250
- package/bizar-dash/src/web/components/UsageTable.tsx +0 -90
- package/bizar-dash/src/web/components/VirtualList.tsx +0 -53
- package/bizar-dash/src/web/components/VisualPlanDialog.tsx +0 -58
- package/bizar-dash/src/web/components/VoiceNotesPanel.tsx +0 -211
- package/bizar-dash/src/web/components/VoiceRecorder.tsx +0 -105
- package/bizar-dash/src/web/components/WorkspaceSelector.tsx +0 -158
- package/bizar-dash/src/web/components/agents/CommunicationLog.tsx +0 -126
- package/bizar-dash/src/web/components/agents/DependencyGraph.tsx +0 -163
- package/bizar-dash/src/web/components/agents/QualityGates.tsx +0 -123
- package/bizar-dash/src/web/components/agents/RealTimeEventLog.tsx +0 -127
- package/bizar-dash/src/web/components/agents/RoutingDecisions.test.tsx +0 -148
- package/bizar-dash/src/web/components/agents/RoutingDecisions.tsx +0 -160
- package/bizar-dash/src/web/components/background/AttachButton.tsx +0 -96
- package/bizar-dash/src/web/components/background/TmuxAttachCard.tsx +0 -122
- package/bizar-dash/src/web/components/chat/AgentChip.tsx +0 -68
- package/bizar-dash/src/web/components/chat/AgentNode.tsx +0 -127
- package/bizar-dash/src/web/components/chat/AgentTree.tsx +0 -80
- package/bizar-dash/src/web/components/chat/ChatBubble.tsx +0 -60
- package/bizar-dash/src/web/components/chat/ChatComposer.tsx +0 -72
- package/bizar-dash/src/web/components/chat/ChatInfoPanel.tsx +0 -370
- package/bizar-dash/src/web/components/chat/ChatRail.tsx +0 -387
- package/bizar-dash/src/web/components/chat/ChatThread.tsx +0 -127
- package/bizar-dash/src/web/components/chat/ChatTopBar.tsx +0 -50
- package/bizar-dash/src/web/components/chat/Composer.tsx +0 -166
- package/bizar-dash/src/web/components/chat/ConfirmModal.tsx +0 -54
- package/bizar-dash/src/web/components/chat/EmptyState.tsx +0 -21
- package/bizar-dash/src/web/components/chat/FirstRunGreeting.tsx +0 -18
- package/bizar-dash/src/web/components/chat/FloatingComposer.tsx +0 -38
- package/bizar-dash/src/web/components/chat/InfoPanel.tsx +0 -184
- package/bizar-dash/src/web/components/chat/JumpToLatest.tsx +0 -58
- package/bizar-dash/src/web/components/chat/LoadingSkeleton.tsx +0 -19
- package/bizar-dash/src/web/components/chat/MessageBlock.tsx +0 -260
- package/bizar-dash/src/web/components/chat/MessageBubble.tsx +0 -60
- package/bizar-dash/src/web/components/chat/SessionList.tsx +0 -163
- package/bizar-dash/src/web/components/chat/SessionRowMenu.tsx +0 -206
- package/bizar-dash/src/web/components/chat/StreamingIndicator.tsx +0 -37
- package/bizar-dash/src/web/components/chat/SuggestionCards.tsx +0 -55
- package/bizar-dash/src/web/components/chat/WelcomeScreen.tsx +0 -36
- package/bizar-dash/src/web/components/chat/_legacy.ts +0 -30
- package/bizar-dash/src/web/components/chat/index.ts +0 -31
- package/bizar-dash/src/web/components/chat/useAutoGrowTextarea.ts +0 -18
- package/bizar-dash/src/web/components/chat/useChat.ts +0 -1190
- package/bizar-dash/src/web/components/chat/useSlashCommands.ts +0 -47
- package/bizar-dash/src/web/components/goals/GoalInput.tsx +0 -86
- package/bizar-dash/src/web/components/goals/PlanVisualization.tsx +0 -111
- package/bizar-dash/src/web/components/tasks/BacklogPanel.css +0 -109
- package/bizar-dash/src/web/components/tasks/BacklogPanel.tsx +0 -209
- package/bizar-dash/src/web/hooks/useAutosave.ts +0 -107
- package/bizar-dash/src/web/hooks/useI18n.ts +0 -13
- package/bizar-dash/src/web/index.html +0 -37
- package/bizar-dash/src/web/lib/api.ts +0 -237
- package/bizar-dash/src/web/lib/goapPlanner.ts +0 -614
- package/bizar-dash/src/web/lib/i18n.ts +0 -25
- package/bizar-dash/src/web/lib/logger.ts +0 -30
- package/bizar-dash/src/web/lib/markdown.tsx +0 -59
- package/bizar-dash/src/web/lib/search.ts +0 -115
- package/bizar-dash/src/web/lib/types.ts +0 -894
- package/bizar-dash/src/web/lib/utils.ts +0 -114
- package/bizar-dash/src/web/lib/ws.ts +0 -177
- package/bizar-dash/src/web/locales/en.json +0 -52
- package/bizar-dash/src/web/main.tsx +0 -43
- package/bizar-dash/src/web/mobile/MobileApp.tsx +0 -309
- package/bizar-dash/src/web/mobile/MobileBottomNav.tsx +0 -38
- package/bizar-dash/src/web/mobile/MobileChat.tsx +0 -138
- package/bizar-dash/src/web/mobile/MobileDoctor.tsx +0 -80
- package/bizar-dash/src/web/mobile/MobileEval.tsx +0 -167
- package/bizar-dash/src/web/mobile/MobileMemory.tsx +0 -108
- package/bizar-dash/src/web/mobile/MobileOverview.tsx +0 -213
- package/bizar-dash/src/web/mobile/MobileSettings.tsx +0 -251
- package/bizar-dash/src/web/mobile/MobileTasks.tsx +0 -94
- package/bizar-dash/src/web/mobile/MobileTopbar.tsx +0 -115
- package/bizar-dash/src/web/mobile/components/MobileBottomSheet.tsx +0 -182
- package/bizar-dash/src/web/mobile/components/MobileListItem.tsx +0 -64
- package/bizar-dash/src/web/mobile/components/MobileModal.tsx +0 -123
- package/bizar-dash/src/web/mobile/views/MobileActivity.tsx +0 -273
- package/bizar-dash/src/web/mobile/views/MobileAgents.tsx +0 -374
- package/bizar-dash/src/web/mobile/views/MobileArtifactCanvas.tsx +0 -439
- package/bizar-dash/src/web/mobile/views/MobileArtifacts.tsx +0 -143
- package/bizar-dash/src/web/mobile/views/MobileChat.tsx +0 -257
- package/bizar-dash/src/web/mobile/views/MobileConfig.tsx +0 -175
- package/bizar-dash/src/web/mobile/views/MobileHistory.tsx +0 -191
- package/bizar-dash/src/web/mobile/views/MobileMods.tsx +0 -149
- package/bizar-dash/src/web/mobile/views/MobileMore.tsx +0 -121
- package/bizar-dash/src/web/mobile/views/MobileNotifications.tsx +0 -137
- package/bizar-dash/src/web/mobile/views/MobilePlans.tsx +0 -26
- package/bizar-dash/src/web/mobile/views/MobileSchedules.tsx +0 -685
- package/bizar-dash/src/web/mobile/views/MobileSearchModal.tsx +0 -172
- package/bizar-dash/src/web/mobile/views/MobileSettings.tsx +0 -363
- package/bizar-dash/src/web/mobile/views/MobileSkills.tsx +0 -153
- package/bizar-dash/src/web/mobile/views/MobileTasks.tsx +0 -564
- package/bizar-dash/src/web/mobile/views/QrCodePanel.tsx +0 -69
- package/bizar-dash/src/web/mobile.tsx +0 -14
- package/bizar-dash/src/web/styles/agents-redesign.css +0 -311
- package/bizar-dash/src/web/styles/chat.css +0 -1740
- package/bizar-dash/src/web/styles/glyphs.css +0 -960
- package/bizar-dash/src/web/styles/main.css +0 -10389
- package/bizar-dash/src/web/styles/memory.css +0 -1177
- package/bizar-dash/src/web/styles/minimax-usage.css +0 -842
- package/bizar-dash/src/web/styles/mobile-chat.css +0 -5
- package/bizar-dash/src/web/styles/mobile-layout.css +0 -233
- package/bizar-dash/src/web/styles/mobile.css +0 -2181
- package/bizar-dash/src/web/styles/settings.css +0 -775
- package/bizar-dash/src/web/styles/skills.css +0 -302
- package/bizar-dash/src/web/styles/tasks-redesign.css +0 -253
- package/bizar-dash/src/web/styles/tasks.css +0 -605
- package/bizar-dash/src/web/ui/controls/Button.tsx +0 -77
- package/bizar-dash/src/web/ui/controls/Checkbox.tsx +0 -95
- package/bizar-dash/src/web/ui/controls/IconButton.tsx +0 -66
- package/bizar-dash/src/web/ui/controls/Kbd.tsx +0 -24
- package/bizar-dash/src/web/ui/controls/NumberInput.tsx +0 -77
- package/bizar-dash/src/web/ui/controls/RadioGroup.tsx +0 -109
- package/bizar-dash/src/web/ui/controls/SearchInput.tsx +0 -91
- package/bizar-dash/src/web/ui/controls/Select.tsx +0 -92
- package/bizar-dash/src/web/ui/controls/Slider.tsx +0 -70
- package/bizar-dash/src/web/ui/controls/TextInput.tsx +0 -67
- package/bizar-dash/src/web/ui/controls/Textarea.tsx +0 -56
- package/bizar-dash/src/web/ui/controls/Toggle.tsx +0 -79
- package/bizar-dash/src/web/ui/controls/controls.css +0 -476
- package/bizar-dash/src/web/ui/controls/index.ts +0 -35
- package/bizar-dash/src/web/ui/data/BarChart.tsx +0 -60
- package/bizar-dash/src/web/ui/data/DataTable.tsx +0 -216
- package/bizar-dash/src/web/ui/data/EmptyState.tsx +0 -60
- package/bizar-dash/src/web/ui/data/ErrorState.tsx +0 -56
- package/bizar-dash/src/web/ui/data/KeyValueList.tsx +0 -106
- package/bizar-dash/src/web/ui/data/LoadingState.tsx +0 -65
- package/bizar-dash/src/web/ui/data/Sparkline.tsx +0 -87
- package/bizar-dash/src/web/ui/data/StatTile.tsx +0 -87
- package/bizar-dash/src/web/ui/data/data.css +0 -540
- package/bizar-dash/src/web/ui/data/index.ts +0 -31
- package/bizar-dash/src/web/ui/feedback/Badge.tsx +0 -49
- package/bizar-dash/src/web/ui/feedback/Dialog.tsx +0 -209
- package/bizar-dash/src/web/ui/feedback/ProgressBar.tsx +0 -69
- package/bizar-dash/src/web/ui/feedback/StatusDot.tsx +0 -50
- package/bizar-dash/src/web/ui/feedback/Toast.tsx +0 -200
- package/bizar-dash/src/web/ui/feedback/Tooltip.tsx +0 -126
- package/bizar-dash/src/web/ui/feedback/feedback.css +0 -314
- package/bizar-dash/src/web/ui/feedback/index.ts +0 -43
- package/bizar-dash/src/web/ui/index.ts +0 -57
- package/bizar-dash/src/web/ui/layout/AppShell.tsx +0 -51
- package/bizar-dash/src/web/ui/layout/Breadcrumbs.tsx +0 -97
- package/bizar-dash/src/web/ui/layout/Panel.tsx +0 -73
- package/bizar-dash/src/web/ui/layout/PanelHeader.tsx +0 -39
- package/bizar-dash/src/web/ui/layout/Sidebar.tsx +0 -131
- package/bizar-dash/src/web/ui/layout/Tabs.tsx +0 -133
- package/bizar-dash/src/web/ui/layout/Topbar.tsx +0 -42
- package/bizar-dash/src/web/ui/layout/ViewHeader.tsx +0 -48
- package/bizar-dash/src/web/ui/layout/index.ts +0 -34
- package/bizar-dash/src/web/ui/layout/layout.css +0 -464
- package/bizar-dash/src/web/ui/navigation/CommandPalette.tsx +0 -199
- package/bizar-dash/src/web/ui/navigation/NavGroup.tsx +0 -95
- package/bizar-dash/src/web/ui/navigation/NavLink.tsx +0 -93
- package/bizar-dash/src/web/ui/navigation/index.ts +0 -17
- package/bizar-dash/src/web/ui/navigation/navigation.css +0 -343
- package/bizar-dash/src/web/ui/primitives/Box.tsx +0 -91
- package/bizar-dash/src/web/ui/primitives/Grid.tsx +0 -49
- package/bizar-dash/src/web/ui/primitives/Inline.tsx +0 -55
- package/bizar-dash/src/web/ui/primitives/Separator.tsx +0 -46
- package/bizar-dash/src/web/ui/primitives/Stack.tsx +0 -54
- package/bizar-dash/src/web/ui/primitives/VisuallyHidden.tsx +0 -26
- package/bizar-dash/src/web/ui/primitives/index.ts +0 -23
- package/bizar-dash/src/web/ui/primitives/primitives.css +0 -183
- package/bizar-dash/src/web/ui/styles/globals.css +0 -86
- package/bizar-dash/src/web/ui/styles/reset.css +0 -125
- package/bizar-dash/src/web/ui/styles/tokens.css +0 -208
- package/bizar-dash/src/web/ui/theme/ThemeProvider.tsx +0 -142
- package/bizar-dash/src/web/ui/theme/tokens.ts +0 -131
- package/bizar-dash/src/web/ui/theme/useTheme.ts +0 -22
- package/bizar-dash/src/web/ui/utils/cx.ts +0 -42
- package/bizar-dash/src/web/views/Activity.tsx +0 -1221
- package/bizar-dash/src/web/views/Agents.tsx +0 -964
- package/bizar-dash/src/web/views/Artifacts.tsx +0 -1494
- package/bizar-dash/src/web/views/BackgroundAgents.tsx +0 -822
- package/bizar-dash/src/web/views/Chat.tsx +0 -532
- package/bizar-dash/src/web/views/Config.tsx +0 -3
- package/bizar-dash/src/web/views/Doctor.tsx +0 -317
- package/bizar-dash/src/web/views/Eval.tsx +0 -372
- package/bizar-dash/src/web/views/EvalReport.tsx +0 -353
- package/bizar-dash/src/web/views/GoalPlanner.tsx +0 -158
- package/bizar-dash/src/web/views/Harness.tsx +0 -306
- package/bizar-dash/src/web/views/History.tsx +0 -353
- package/bizar-dash/src/web/views/Memory.tsx +0 -193
- package/bizar-dash/src/web/views/MiniMaxUsage.tsx +0 -942
- package/bizar-dash/src/web/views/ModView.tsx +0 -207
- package/bizar-dash/src/web/views/Mods.tsx +0 -706
- package/bizar-dash/src/web/views/Overview.tsx +0 -1343
- package/bizar-dash/src/web/views/Providers.tsx +0 -302
- package/bizar-dash/src/web/views/Schedules.tsx +0 -902
- package/bizar-dash/src/web/views/Settings.tsx +0 -308
- package/bizar-dash/src/web/views/Skills.tsx +0 -383
- package/bizar-dash/src/web/views/SpawnAgentModal.tsx +0 -221
- package/bizar-dash/src/web/views/Tasks.tsx +0 -789
- package/bizar-dash/src/web/views/Workspace.tsx +0 -294
- package/bizar-dash/src/web/views/glyphs/GlyphRenderer.tsx +0 -844
- package/bizar-dash/src/web/views/glyphs/components.tsx +0 -1098
- package/bizar-dash/src/web/views/memory/ConfigPanel.tsx +0 -426
- package/bizar-dash/src/web/views/memory/FromScreenshotPanel.tsx +0 -23
- package/bizar-dash/src/web/views/memory/GitSyncPanel.tsx +0 -220
- package/bizar-dash/src/web/views/memory/LightragPanel.tsx +0 -310
- package/bizar-dash/src/web/views/memory/MemoryGraphLegend.tsx +0 -29
- package/bizar-dash/src/web/views/memory/MemoryGraphPanel.tsx +0 -192
- package/bizar-dash/src/web/views/memory/MemoryGraphView.tsx +0 -336
- package/bizar-dash/src/web/views/memory/MemoryOverview.tsx +0 -367
- package/bizar-dash/src/web/views/memory/MemoryStatusCard.tsx +0 -160
- package/bizar-dash/src/web/views/memory/ObsidianPanel.tsx +0 -650
- package/bizar-dash/src/web/views/memory/SemanticSearchPanel.tsx +0 -197
- package/bizar-dash/src/web/views/memory/VaultFromClipboardPanel.tsx +0 -101
- package/bizar-dash/src/web/views/settings/ActivitySection.tsx +0 -205
- package/bizar-dash/src/web/views/settings/AgentSection.tsx +0 -305
- package/bizar-dash/src/web/views/settings/AuthSection.tsx +0 -159
- package/bizar-dash/src/web/views/settings/EnvVarsSection.tsx +0 -15
- package/bizar-dash/src/web/views/settings/GeneralSection.tsx +0 -128
- package/bizar-dash/src/web/views/settings/HeadroomSection.tsx +0 -39
- package/bizar-dash/src/web/views/settings/MemorySection.tsx +0 -154
- package/bizar-dash/src/web/views/settings/NetworkSection.tsx +0 -87
- package/bizar-dash/src/web/views/settings/NotificationsSection.tsx +0 -34
- package/bizar-dash/src/web/views/settings/SystemLlmSection.tsx +0 -81
- package/bizar-dash/src/web/views/settings/ThemeSection.tsx +0 -168
- package/bizar-dash/src/web/views/settings/UpdatesSection.tsx +0 -256
- package/bizar-dash/src/web/views/settings/WorkspacesSection.tsx +0 -189
- package/packages/sdk/.harness/agents.json +0 -17
- package/packages/sdk/.harness/topology.json +0 -4
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{j as e}from"./cmdk-BwN8hcKQ.js";import{a as n,c as o,S as d}from"./main-Cw6gybzS.js";import{V as p}from"./ViewHeader-D6c2cw1b.js";import{B as m}from"./Badge-Cd61wsBa.js";import{E as h}from"./EmptyState-BWQuKnk9.js";import{B as u}from"./brain-DeoXNDE2.js";/**
|
|
2
|
+
* @license lucide-react v0.460.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const v=n("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/**
|
|
7
|
+
* @license lucide-react v0.460.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const y=n("Hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]),g={project:"Project",global:"Global"},x={project:"accent",global:"info"};function f(l){const{entries:s,onOpen:a,empty:r,className:c}=l;return s.length===0&&r!==void 0?e.jsx(e.Fragment,{children:r}):e.jsxs("div",{className:o("v8-memory-vault",c),children:[s.map(t=>e.jsxs("button",{type:"button",onClick:()=>a==null?void 0:a(t),className:o("v8-memory-vault__item",`v8-memory-vault__item--${t.scope}`),style:{display:"block",width:"100%",padding:"var(--space-3) var(--space-4)",background:"var(--surface-1)",border:"1px solid var(--border)",borderRadius:"var(--radius)",textAlign:"left",cursor:a!==void 0?"pointer":"default",font:"inherit",color:"inherit",marginBottom:"var(--space-2)"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-2)",marginBottom:6},children:[e.jsx(m,{tone:x[t.scope],size:"sm",children:g[t.scope]}),e.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:"var(--fs-12)",color:"var(--fg-subtle)",fontVariantNumeric:"tabular-nums"},children:[e.jsx(v,{size:12,"aria-hidden":"true"}),t.updatedAt]})]}),e.jsx("div",{style:{fontSize:"var(--fs-13)",color:"var(--fg)",lineHeight:"var(--lh-snug)",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:t.content}),t.tags!==void 0&&t.tags.length>0&&e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,marginTop:"var(--space-2)",flexWrap:"wrap"},children:[e.jsx(y,{size:11,"aria-hidden":"true",style:{color:"var(--fg-subtle)"}}),t.tags.map(i=>e.jsx("span",{style:{fontSize:"var(--fs-12)",color:"var(--fg-muted)"},children:i},i))]})]},t.id)),e.jsx("style",{children:`
|
|
12
|
+
.v8-memory-vault__item:hover { border-color: var(--accent); }
|
|
13
|
+
`})]})}const b=[{id:"m1",content:"The dashboard rewrite lives in v8 tree under `bizar-dash/src/web/v8/`. Sprint boundaries: S1..S9 (per PLAN.md).",tags:["dashboard","rewrite","sprint"],scope:"project",updatedAt:"Just now"},{id:"m2",content:"User prefers OKLch tokens, minimal visual flair, and token-driven styling only. No hardcoded hex anywhere in the v8 tree.",tags:["preferences","design"],scope:"global",updatedAt:"3 days ago"},{id:"m3",content:"Pre-existing test failures in `tests/a11y/forms.test.tsx` predate v8 work — do not chase them in this branch.",tags:["tests","a11y"],scope:"project",updatedAt:"1 week ago"},{id:"m4",content:"WIP=1 rule: only one feature active at a time per `feature_list.json`.",tags:["process"],scope:"project",updatedAt:"2 weeks ago"}];function M(){return e.jsxs(d,{gap:5,children:[e.jsx(p,{title:"Memory",description:"Cross-session notes. Project memos live in the repo; global memos live on the user."}),e.jsx(f,{entries:b,empty:e.jsx(h,{icon:e.jsx(u,{size:24,"aria-hidden":"true"}),title:"No memos yet",description:"Memos appear here as you and the harness accumulate them."})})]})}export{M as MemoryView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryView-49wR4u-y.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/file-text.js","../../../node_modules/lucide-react/dist/esm/icons/hash.js","../../src/web/v8/ui/memory/MemoryVault.tsx","../../src/web/v8/views/Memory/MemoryView.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 FileText = createLucideIcon(\"FileText\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n]);\n\nexport { FileText as default };\n//# sourceMappingURL=file-text.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 Hash = createLucideIcon(\"Hash\", [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"9\", y2: \"9\", key: \"4lhtct\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"15\", y2: \"15\", key: \"vyu0kd\" }],\n [\"line\", { x1: \"10\", x2: \"8\", y1: \"3\", y2: \"21\", key: \"1ggp8o\" }],\n [\"line\", { x1: \"16\", x2: \"14\", y1: \"3\", y2: \"21\", key: \"weycgp\" }]\n]);\n\nexport { Hash as default };\n//# sourceMappingURL=hash.js.map\n","import { type ReactNode } from 'react';\nimport { FileText, Hash } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\nimport { Badge } from '../data/Badge.js';\n\n/**\n * MemoryVault — list of memory entries (memos) grouped by scope.\n *\n * PLAN.md: memos are the durable cross-session notes the harness writes\n * down. Scopes: `project` (committed to repo) vs `global` (user-wide).\n * Each entry: content (truncated to 3 lines), tags, last-updated time,\n * scope badge.\n */\n\nexport type MemoryScope = 'project' | 'global';\n\nexport interface MemoryEntry {\n id: string;\n content: string;\n tags?: readonly string[];\n scope: MemoryScope;\n /** Relative time label (\"3 days ago\", \"Just now\"). */\n updatedAt: string;\n}\n\nexport interface MemoryVaultProps {\n entries: readonly MemoryEntry[];\n /** Optional click handler — opens memo detail. */\n onOpen?: (entry: MemoryEntry) => void;\n /** Optional empty state. */\n empty?: ReactNode;\n className?: string;\n}\n\nconst SCOPE_LABEL: Record<MemoryScope, string> = {\n project: 'Project',\n global: 'Global',\n};\n\nconst SCOPE_TONE: Record<MemoryScope, 'accent' | 'info'> = {\n project: 'accent',\n global: 'info',\n};\n\nexport function MemoryVault(props: MemoryVaultProps) {\n const { entries, onOpen, empty, className } = props;\n\n if (entries.length === 0 && empty !== undefined) {\n return <>{empty}</>;\n }\n\n return (\n <div className={cx('v8-memory-vault', className)}>\n {entries.map((entry) => (\n <button\n type=\"button\"\n key={entry.id}\n onClick={() => onOpen?.(entry)}\n className={cx('v8-memory-vault__item', `v8-memory-vault__item--${entry.scope}`)}\n style={{\n display: 'block',\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 marginBottom: 'var(--space-2)',\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 'var(--space-2)',\n marginBottom: 6,\n }}\n >\n <Badge tone={SCOPE_TONE[entry.scope]} size=\"sm\">\n {SCOPE_LABEL[entry.scope]}\n </Badge>\n <span\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 4,\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-subtle)',\n fontVariantNumeric: 'tabular-nums',\n }}\n >\n <FileText size={12} aria-hidden=\"true\" />\n {entry.updatedAt}\n </span>\n </div>\n <div\n style={{\n fontSize: 'var(--fs-13)',\n color: 'var(--fg)',\n lineHeight: 'var(--lh-snug)',\n display: '-webkit-box',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n }}\n >\n {entry.content}\n </div>\n {entry.tags !== undefined && entry.tags.length > 0 && (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 4,\n marginTop: 'var(--space-2)',\n flexWrap: 'wrap',\n }}\n >\n <Hash size={11} aria-hidden=\"true\" style={{ color: 'var(--fg-subtle)' }} />\n {entry.tags.map((tag) => (\n <span\n key={tag}\n style={{\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n }}\n >\n {tag}\n </span>\n ))}\n </div>\n )}\n </button>\n ))}\n <style>{`\n .v8-memory-vault__item:hover { border-color: var(--accent); }\n `}</style>\n </div>\n );\n}","import { Stack } from '../../ui/primitives/Stack.js';\nimport { ViewHeader } from '../../ui/data/ViewHeader.js';\nimport { MemoryVault, type MemoryEntry } from '../../ui/memory/MemoryVault.js';\nimport { EmptyState } from '../../ui/feedback/EmptyState.js';\nimport { Brain } from 'lucide-react';\n\n/**\n * MemoryView — the durable cross-session memos the harness writes down.\n */\n\nconst ENTRIES: MemoryEntry[] = [\n {\n id: 'm1',\n content: 'The dashboard rewrite lives in v8 tree under `bizar-dash/src/web/v8/`. Sprint boundaries: S1..S9 (per PLAN.md).',\n tags: ['dashboard', 'rewrite', 'sprint'],\n scope: 'project',\n updatedAt: 'Just now',\n },\n {\n id: 'm2',\n content: 'User prefers OKLch tokens, minimal visual flair, and token-driven styling only. No hardcoded hex anywhere in the v8 tree.',\n tags: ['preferences', 'design'],\n scope: 'global',\n updatedAt: '3 days ago',\n },\n {\n id: 'm3',\n content: 'Pre-existing test failures in `tests/a11y/forms.test.tsx` predate v8 work — do not chase them in this branch.',\n tags: ['tests', 'a11y'],\n scope: 'project',\n updatedAt: '1 week ago',\n },\n {\n id: 'm4',\n content: 'WIP=1 rule: only one feature active at a time per `feature_list.json`.',\n tags: ['process'],\n scope: 'project',\n updatedAt: '2 weeks ago',\n },\n];\n\nexport function MemoryView(): JSX.Element {\n return (\n <Stack gap={5}>\n <ViewHeader\n title=\"Memory\"\n description=\"Cross-session notes. Project memos live in the repo; global memos live on the user.\"\n />\n <MemoryVault\n entries={ENTRIES}\n empty={\n <EmptyState\n icon={<Brain size={24} aria-hidden=\"true\" />}\n title=\"No memos yet\"\n description=\"Memos appear here as you and the harness accumulate them.\"\n />\n }\n />\n </Stack>\n );\n}"],"names":["FileText","createLucideIcon","Hash","SCOPE_LABEL","SCOPE_TONE","MemoryVault","props","entries","onOpen","empty","className","cx","entry","jsxs","jsx","Badge","tag","ENTRIES","MemoryView","Stack","ViewHeader","EmptyState","Brain"],"mappings":"sQAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMA,EAAWC,EAAiB,WAAY,CAC5C,CAAC,OAAQ,CAAE,EAAG,6DAA8D,IAAK,QAAQ,CAAE,EAC3F,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAQ,CAAE,EACxD,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAQ,CAAE,EACxC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,EACzC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC,ECfD;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMC,EAAOD,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAC/D,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,EACjE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,IAAK,GAAI,IAAK,GAAI,KAAM,IAAK,QAAQ,CAAE,EAChE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,IAAK,QAAQ,CAAE,CACnE,CAAC,ECoBKE,EAA2C,CAC/C,QAAS,UACT,OAAQ,QACV,EAEMC,EAAqD,CACzD,QAAS,SACT,OAAQ,MACV,EAEO,SAASC,EAAYC,EAAyB,CACnD,KAAM,CAAE,QAAAC,EAAS,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,GAAcJ,EAE9C,OAAIC,EAAQ,SAAW,GAAKE,IAAU,yBAC1B,SAAAA,CAAA,CAAM,SAIf,MAAA,CAAI,UAAWE,EAAG,kBAAmBD,CAAS,EAC5C,SAAA,CAAAH,EAAQ,IAAKK,GACZC,EAAAA,KAAC,SAAA,CACC,KAAK,SAEL,QAAS,IAAML,GAAA,YAAAA,EAASI,GACxB,UAAWD,EAAG,wBAAyB,0BAA0BC,EAAM,KAAK,EAAE,EAC9E,MAAO,CACL,QAAS,QACT,MAAO,OACP,QAAS,gCACT,WAAY,mBACZ,OAAQ,0BACR,aAAc,gBACd,UAAW,OACX,OAAQJ,IAAW,OAAY,UAAY,UAC3C,KAAM,UACN,MAAO,UACP,aAAc,gBAAA,EAGhB,SAAA,CAAAK,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,IAAK,iBACL,aAAc,CAAA,EAGhB,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAM,KAAMX,EAAWQ,EAAM,KAAK,EAAG,KAAK,KACxC,SAAAT,EAAYS,EAAM,KAAK,CAAA,CAC1B,EACAC,EAAAA,KAAC,OAAA,CACC,MAAO,CACL,QAAS,cACT,WAAY,SACZ,IAAK,EACL,SAAU,eACV,MAAO,mBACP,mBAAoB,cAAA,EAGtB,SAAA,CAAAC,EAAAA,IAACd,EAAA,CAAS,KAAM,GAAI,cAAY,OAAO,EACtCY,EAAM,SAAA,CAAA,CAAA,CACT,CAAA,CAAA,EAEFE,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,SAAU,eACV,MAAO,YACP,WAAY,iBACZ,QAAS,cACT,gBAAiB,EACjB,gBAAiB,WACjB,SAAU,QAAA,EAGX,SAAAF,EAAM,OAAA,CAAA,EAERA,EAAM,OAAS,QAAaA,EAAM,KAAK,OAAS,GAC/CC,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,WAAY,SACZ,IAAK,EACL,UAAW,iBACX,SAAU,MAAA,EAGZ,SAAA,CAAAC,EAAAA,IAACZ,EAAA,CAAK,KAAM,GAAI,cAAY,OAAO,MAAO,CAAE,MAAO,kBAAA,CAAmB,CAAG,EACxEU,EAAM,KAAK,IAAKI,GACfF,EAAAA,IAAC,OAAA,CAEC,MAAO,CACL,SAAU,eACV,MAAO,iBAAA,EAGR,SAAAE,CAAA,EANIA,CAAA,CAQR,CAAA,CAAA,CAAA,CACH,CAAA,EA9EGJ,EAAM,EAAA,CAiFd,QACA,QAAA,CAAO,SAAA;AAAA;AAAA,OAAA,CAEN,CAAA,EACJ,CAEJ,CCrIA,MAAMK,EAAyB,CAC7B,CACE,GAAI,KACJ,QAAS,kHACT,KAAM,CAAC,YAAa,UAAW,QAAQ,EACvC,MAAO,UACP,UAAW,UAAA,EAEb,CACE,GAAI,KACJ,QAAS,4HACT,KAAM,CAAC,cAAe,QAAQ,EAC9B,MAAO,SACP,UAAW,YAAA,EAEb,CACE,GAAI,KACJ,QAAS,gHACT,KAAM,CAAC,QAAS,MAAM,EACtB,MAAO,UACP,UAAW,YAAA,EAEb,CACE,GAAI,KACJ,QAAS,yEACT,KAAM,CAAC,SAAS,EAChB,MAAO,UACP,UAAW,aAAA,CAEf,EAEO,SAASC,GAA0B,CACxC,OACEL,EAAAA,KAACM,EAAA,CAAM,IAAK,EACV,SAAA,CAAAL,EAAAA,IAACM,EAAA,CACC,MAAM,SACN,YAAY,qFAAA,CAAA,EAEdN,EAAAA,IAACT,EAAA,CACC,QAASY,EACT,MACEH,EAAAA,IAACO,EAAA,CACC,KAAMP,EAAAA,IAACQ,EAAA,CAAM,KAAM,GAAI,cAAY,OAAO,EAC1C,MAAM,eACN,YAAY,2DAAA,CAAA,CACd,CAAA,CAEJ,EACF,CAEJ","x_google_ignoreList":[0,1]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e}from"./cmdk-BwN8hcKQ.js";import{S as s}from"./main-Cw6gybzS.js";import{S as n,a as t}from"./StatTile-BkIP32gG.js";import{C as i,a,b as r}from"./Card-C_bvqXdQ.js";import{B as o}from"./Badge-Cd61wsBa.js";import{A as l,T as d}from"./ActivityFeed-BRBtQOHB.js";import{V as c}from"./ViewHeader-D6c2cw1b.js";import{G as m}from"./git-merge-OoqBKQer.js";import{G as h}from"./git-pull-request-CXBQTR2f.js";import{C as x}from"./circle-check-DmYQ3vGp.js";import"./minus-CrStJTZ7.js";const u=[{id:"o1",icon:e.jsx(m,{size:14,"aria-hidden":"true"}),title:"Merged PR #42 — OKLch token system",meta:"2m ago",tone:"success"},{id:"o2",icon:e.jsx(h,{size:14,"aria-hidden":"true"}),title:"Opened PR #43 — Kanban centerpiece",meta:"12m ago",tone:"info"},{id:"o3",icon:e.jsx(x,{size:14,"aria-hidden":"true"}),title:'Goal "Ship v8 dashboard" advanced to 42%',meta:"34m ago",tone:"success"},{id:"o4",icon:e.jsx(d,{size:14,"aria-hidden":"true"}),title:"3 tests failing in tests/a11y/forms.test.tsx",meta:"1h ago",tone:"warning"}];function A(){return e.jsxs(s,{gap:5,children:[e.jsx(c,{title:"Overview",description:"What's moving in the harness right now.",actions:e.jsx(o,{tone:"success",dot:!0,children:"Live"})}),e.jsxs(n,{cols:4,children:[e.jsx(t,{label:"Active tasks",value:"47",trend:"up",delta:"+6 today"}),e.jsx(t,{label:"Goals on track",value:"2 / 3",trend:"flat",delta:"no change"}),e.jsx(t,{label:"Agents running",value:"8 / 16",trend:"up",delta:"+2 since yesterday"}),e.jsx(t,{label:"Tokens (24h)",value:"1.4M",trend:"down",delta:"−12% vs avg"})]}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"var(--space-4)"},children:[e.jsxs(i,{children:[e.jsx(a,{title:"Recent activity"}),e.jsx(r,{children:e.jsx(l,{items:u})})]}),e.jsxs(i,{children:[e.jsx(a,{title:"Needs attention"}),e.jsx(r,{children:e.jsxs(s,{gap:3,children:[e.jsx(t,{label:"At-risk goal",value:"Cut S9 polish in half",hint:"Owner: sam · Due Aug 1"}),e.jsx(t,{label:"Failing tests",value:"3 in tests/a11y/forms.test.tsx",hint:"Pre-existing — does not block v8 work."}),e.jsx(t,{label:"Token budget",value:"73% of daily limit",hint:"Resets at midnight UTC."})]})})]})]})]})}export{A as OverviewView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OverviewView-BtQ_UWYj.js","sources":["../../src/web/v8/views/Overview/OverviewView.tsx"],"sourcesContent":["import { GitMerge, GitPullRequest, AlertTriangle, CheckCircle2 } from 'lucide-react';\nimport { Stack } from '../../ui/primitives/Stack.js';\nimport { StatTile, StatGrid } from '../../ui/data/StatTile.js';\nimport { Card, CardBody, CardHeader } from '../../ui/data/Card.js';\nimport { Badge } from '../../ui/data/Badge.js';\nimport { ActivityFeed, type ActivityItem } from '../../ui/activity/ActivityFeed.js';\nimport { ViewHeader } from '../../ui/data/ViewHeader.js';\n\n/**\n * OverviewView — the home/dashboard landing page.\n */\n\nconst RECENT: ActivityItem[] = [\n {\n id: 'o1',\n icon: <GitMerge size={14} aria-hidden=\"true\" />,\n title: 'Merged PR #42 — OKLch token system',\n meta: '2m ago',\n tone: 'success',\n },\n {\n id: 'o2',\n icon: <GitPullRequest size={14} aria-hidden=\"true\" />,\n title: 'Opened PR #43 — Kanban centerpiece',\n meta: '12m ago',\n tone: 'info',\n },\n {\n id: 'o3',\n icon: <CheckCircle2 size={14} aria-hidden=\"true\" />,\n title: 'Goal \"Ship v8 dashboard\" advanced to 42%',\n meta: '34m ago',\n tone: 'success',\n },\n {\n id: 'o4',\n icon: <AlertTriangle size={14} aria-hidden=\"true\" />,\n title: '3 tests failing in tests/a11y/forms.test.tsx',\n meta: '1h ago',\n tone: 'warning',\n },\n];\n\nexport function OverviewView(): JSX.Element {\n return (\n <Stack gap={5}>\n <ViewHeader\n title=\"Overview\"\n description=\"What's moving in the harness right now.\"\n actions={<Badge tone=\"success\" dot>Live</Badge>}\n />\n\n <StatGrid cols={4}>\n <StatTile label=\"Active tasks\" value=\"47\" trend=\"up\" delta=\"+6 today\" />\n <StatTile label=\"Goals on track\" value=\"2 / 3\" trend=\"flat\" delta=\"no change\" />\n <StatTile label=\"Agents running\" value=\"8 / 16\" trend=\"up\" delta=\"+2 since yesterday\" />\n <StatTile label=\"Tokens (24h)\" value=\"1.4M\" trend=\"down\" delta=\"−12% vs avg\" />\n </StatGrid>\n\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 'var(--space-4)' }}>\n <Card>\n <CardHeader title=\"Recent activity\" />\n <CardBody>\n <ActivityFeed items={RECENT} />\n </CardBody>\n </Card>\n <Card>\n <CardHeader title=\"Needs attention\" />\n <CardBody>\n <Stack gap={3}>\n <StatTile\n label=\"At-risk goal\"\n value=\"Cut S9 polish in half\"\n hint=\"Owner: sam · Due Aug 1\"\n />\n <StatTile\n label=\"Failing tests\"\n value=\"3 in tests/a11y/forms.test.tsx\"\n hint=\"Pre-existing — does not block v8 work.\"\n />\n <StatTile\n label=\"Token budget\"\n value=\"73% of daily limit\"\n hint=\"Resets at midnight UTC.\"\n />\n </Stack>\n </CardBody>\n </Card>\n </div>\n </Stack>\n );\n}"],"names":["RECENT","jsx","GitMerge","GitPullRequest","CheckCircle2","AlertTriangle","OverviewView","jsxs","Stack","ViewHeader","Badge","StatGrid","StatTile","Card","CardHeader","CardBody","ActivityFeed"],"mappings":"qeAYA,MAAMA,EAAyB,CAC7B,CACE,GAAI,KACJ,KAAMC,EAAAA,IAACC,EAAA,CAAS,KAAM,GAAI,cAAY,OAAO,EAC7C,MAAO,qCACP,KAAM,SACN,KAAM,SAAA,EAER,CACE,GAAI,KACJ,KAAMD,EAAAA,IAACE,EAAA,CAAe,KAAM,GAAI,cAAY,OAAO,EACnD,MAAO,qCACP,KAAM,UACN,KAAM,MAAA,EAER,CACE,GAAI,KACJ,KAAMF,EAAAA,IAACG,EAAA,CAAa,KAAM,GAAI,cAAY,OAAO,EACjD,MAAO,2CACP,KAAM,UACN,KAAM,SAAA,EAER,CACE,GAAI,KACJ,KAAMH,EAAAA,IAACI,EAAA,CAAc,KAAM,GAAI,cAAY,OAAO,EAClD,MAAO,+CACP,KAAM,SACN,KAAM,SAAA,CAEV,EAEO,SAASC,GAA4B,CAC1C,OACEC,EAAAA,KAACC,EAAA,CAAM,IAAK,EACV,SAAA,CAAAP,EAAAA,IAACQ,EAAA,CACC,MAAM,WACN,YAAY,0CACZ,QAASR,EAAAA,IAACS,EAAA,CAAM,KAAK,UAAU,IAAG,GAAC,SAAA,MAAA,CAAI,CAAA,CAAA,EAGzCH,EAAAA,KAACI,EAAA,CAAS,KAAM,EACd,SAAA,CAAAV,EAAAA,IAACW,EAAA,CAAS,MAAM,eAAe,MAAM,KAAK,MAAM,KAAK,MAAM,UAAA,CAAW,EACtEX,EAAAA,IAACW,GAAS,MAAM,iBAAiB,MAAM,QAAQ,MAAM,OAAO,MAAM,WAAA,CAAY,EAC9EX,EAAAA,IAACW,GAAS,MAAM,iBAAiB,MAAM,SAAS,MAAM,KAAK,MAAM,oBAAA,CAAqB,EACtFX,EAAAA,IAACW,GAAS,MAAM,eAAe,MAAM,OAAO,MAAM,OAAO,MAAM,aAAA,CAAc,CAAA,EAC/E,EAEAL,EAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAS,OAAQ,oBAAqB,UAAW,IAAK,gBAAA,EAClE,SAAA,CAAAA,OAACM,EAAA,CACC,SAAA,CAAAZ,EAAAA,IAACa,EAAA,CAAW,MAAM,iBAAA,CAAkB,QACnCC,EAAA,CACC,SAAAd,EAAAA,IAACe,EAAA,CAAa,MAAOhB,EAAQ,CAAA,CAC/B,CAAA,EACF,SACCa,EAAA,CACC,SAAA,CAAAZ,EAAAA,IAACa,EAAA,CAAW,MAAM,iBAAA,CAAkB,EACpCb,MAACc,EAAA,CACC,SAAAR,EAAAA,KAACC,EAAA,CAAM,IAAK,EACV,SAAA,CAAAP,EAAAA,IAACW,EAAA,CACC,MAAM,eACN,MAAM,wBACN,KAAK,wBAAA,CAAA,EAEPX,EAAAA,IAACW,EAAA,CACC,MAAM,gBACN,MAAM,iCACN,KAAK,wCAAA,CAAA,EAEPX,EAAAA,IAACW,EAAA,CACC,MAAM,eACN,MAAM,qBACN,KAAK,yBAAA,CAAA,CACP,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,EACF,CAEJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as v,j as r}from"./cmdk-BwN8hcKQ.js";import{c as g}from"./main-Cw6gybzS.js";const h={accent:"var(--accent)",info:"var(--info)",success:"var(--success)",warning:"var(--warning)",danger:"var(--danger)"},x=v.forwardRef(function(s,e){const{value:t,max:i=1,tone:n="accent",showLabel:o,height:c=6,className:d,style:l,...u}=s,a=Math.min(100,Math.max(0,t/i*100));return r.jsxs("div",{ref:e,className:g("v8-progress",d),style:{position:"relative",display:"flex",alignItems:"center",gap:"var(--space-2)",...l},...u,children:[r.jsx("div",{style:{flex:1,height:c,background:"var(--surface-2)",borderRadius:"var(--radius-pill)",overflow:"hidden"},children:r.jsx("div",{style:{width:`${a}%`,height:"100%",background:h[n],borderRadius:"var(--radius-pill)",transition:"width var(--motion-base) var(--ease-out)"}})}),o===!0&&r.jsxs("span",{style:{fontSize:"var(--fs-12)",color:"var(--fg-muted)",fontVariantNumeric:"tabular-nums",minWidth:32,textAlign:"right"},children:[Math.round(a),"%"]})]})});export{x as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar-CpvDeq9F.js","sources":["../../src/web/v8/ui/data/ProgressBar.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * ProgressBar — linear progress indicator.\n *\n * Use cases: Goal progress, task completion, capacity usage.\n * For circular progress use the inline circle ring (S9) or a third-party.\n */\n\nexport interface ProgressBarProps extends HTMLAttributes<HTMLDivElement> {\n /** 0..1 (or 0..100 if `max` is 100). */\n value: number;\n max?: number;\n /** Tone color for the filled portion. */\n tone?: 'accent' | 'info' | 'success' | 'warning' | 'danger';\n /** Render the value as a percentage label on the right. */\n showLabel?: boolean;\n /** Bar height in px. */\n height?: number;\n}\n\nconst TONE_BG: Record<NonNullable<ProgressBarProps['tone']>, string> = {\n accent: 'var(--accent)',\n info: 'var(--info)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n danger: 'var(--danger)',\n};\n\nexport const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(function ProgressBar(\n props,\n ref,\n) {\n const {\n value,\n max = 1,\n tone = 'accent',\n showLabel,\n height = 6,\n className,\n style,\n ...rest\n } = props;\n const pct = Math.min(100, Math.max(0, (value / max) * 100));\n return (\n <div\n ref={ref}\n className={cx('v8-progress', className)}\n style={{\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n ...style,\n }}\n {...rest}\n >\n <div\n style={{\n flex: 1,\n height,\n background: 'var(--surface-2)',\n borderRadius: 'var(--radius-pill)',\n overflow: 'hidden',\n }}\n >\n <div\n style={{\n width: `${pct}%`,\n height: '100%',\n background: TONE_BG[tone],\n borderRadius: 'var(--radius-pill)',\n transition: 'width var(--motion-base) var(--ease-out)',\n }}\n />\n </div>\n {showLabel === true && (\n <span\n style={{\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n fontVariantNumeric: 'tabular-nums',\n minWidth: 32,\n textAlign: 'right',\n }}\n >\n {Math.round(pct)}%\n </span>\n )}\n </div>\n );\n});"],"names":["TONE_BG","ProgressBar","forwardRef","props","ref","value","max","tone","showLabel","height","className","style","rest","pct","jsxs","cx","jsx"],"mappings":"qFAsBA,MAAMA,EAAiE,CACrE,OAAQ,gBACR,KAAM,cACN,QAAS,iBACT,QAAS,iBACT,OAAQ,eACV,EAEaC,EAAcC,EAAAA,WAA6C,SACtEC,EACAC,EACA,CACA,KAAM,CACJ,MAAAC,EACA,IAAAC,EAAM,EACN,KAAAC,EAAO,SACP,UAAAC,EACA,OAAAC,EAAS,EACT,UAAAC,EACA,MAAAC,EACA,GAAGC,CAAA,EACDT,EACEU,EAAM,KAAK,IAAI,IAAK,KAAK,IAAI,EAAIR,EAAQC,EAAO,GAAG,CAAC,EAC1D,OACEQ,EAAAA,KAAC,MAAA,CACC,IAAAV,EACA,UAAWW,EAAG,cAAeL,CAAS,EACtC,MAAO,CACL,SAAU,WACV,QAAS,OACT,WAAY,SACZ,IAAK,iBACL,GAAGC,CAAA,EAEJ,GAAGC,EAEJ,SAAA,CAAAI,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,KAAM,EACN,OAAAP,EACA,WAAY,mBACZ,aAAc,qBACd,SAAU,QAAA,EAGZ,SAAAO,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,MAAO,GAAGH,CAAG,IACb,OAAQ,OACR,WAAYb,EAAQO,CAAI,EACxB,aAAc,qBACd,WAAY,0CAAA,CACd,CAAA,CACF,CAAA,EAEDC,IAAc,IACbM,EAAAA,KAAC,OAAA,CACC,MAAO,CACL,SAAU,eACV,MAAO,kBACP,mBAAoB,eACpB,SAAU,GACV,UAAW,OAAA,EAGZ,SAAA,CAAA,KAAK,MAAMD,CAAG,EAAE,GAAA,CAAA,CAAA,CACnB,CAAA,CAAA,CAIR,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import{r as d,j as h,S as Po,o as Q,h as W,u as Fe,i as U,k as z,l as je,x as lt,a as xt,p as Xe,n as wt,P as Ao,v as Eo,y as _o,w as To,F as Io,s as No,q as Oo}from"./cmdk-BwN8hcKQ.js";import{a as Ge,c as pe}from"./main-Cw6gybzS.js";/**
|
|
2
|
+
* @license lucide-react v0.460.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const Mo=Ge("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
|
|
7
|
+
* @license lucide-react v0.460.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const Ut=Ge("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
|
|
12
|
+
* @license lucide-react v0.460.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/const jo=Ge("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
|
|
17
|
+
* @license lucide-react v0.460.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/const ko=Ge("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),Do={sm:{h:28,px:10,fs:"var(--fs-12)"},md:{h:32,px:14,fs:"var(--fs-13)"},lg:{h:40,px:18,fs:"var(--fs-14)"},icon:{h:32,px:0,fs:"var(--fs-13)"}},Lo={primary:"var(--accent)",secondary:"var(--surface-1)",ghost:"transparent",danger:"var(--danger)",outline:"transparent"},Bo={primary:"var(--fg-on-accent)",secondary:"var(--fg)",ghost:"var(--fg-muted)",danger:"var(--fg-on-accent)",outline:"var(--fg)"},Vo={primary:"transparent",secondary:"var(--border)",ghost:"transparent",danger:"transparent",outline:"var(--border)"},Ho={primary:"var(--accent-hover)",secondary:"var(--surface-2)",ghost:"var(--surface-1)",danger:"color-mix(in oklch, var(--danger), black 10%)",outline:"var(--surface-1)"},Zs=d.forwardRef(function(t,n){const{variant:o="secondary",size:r="md",asChild:s,loading:i,disabled:c,leftIcon:a,rightIcon:l,fullWidth:p,children:u,className:m,style:g,type:x,...f}=t,y=s?Po:"button",v=Do[r],w=c===!0||i===!0,S={display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"var(--space-2)",height:v.h,paddingLeft:v.px,paddingRight:v.px,width:p===!0?"100%":void 0,fontSize:v.fs,fontWeight:500,lineHeight:1,letterSpacing:"var(--tracking-base)",background:Lo[o],color:Bo[o],border:"1px solid",borderColor:Vo[o],borderRadius:"var(--radius-sm)",cursor:w?"not-allowed":"pointer",opacity:w?.55:1,transition:"background var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out)",whiteSpace:"nowrap",userSelect:"none",...g},b={"--btn-hover-bg":Ho[o]};return h.jsxs(y,{ref:n,type:s?void 0:x??"button",disabled:w,"aria-busy":i===!0?"true":void 0,className:pe("v8-btn",`v8-btn--${o}`,`v8-btn--${r}`,m),style:{...S,...b},...f,children:[i===!0?h.jsx(ko,{size:14,"aria-hidden":"true",className:"v8-btn__spinner"}):a,u,l]})});function yt(e){const t=d.useRef({value:e,previous:e});return d.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function St(e){const[t,n]=d.useState(void 0);return Q(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const s=r[0];let i,c;if("borderBoxSize"in s){const a=s.borderBoxSize,l=Array.isArray(a)?a[0]:a;i=l.inlineSize,c=l.blockSize}else i=e.offsetWidth,c=e.offsetHeight;n({width:i,height:c})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}var qe="Switch",[Fo]=je(qe),[$o,bt]=Fo(qe);function Wo(e){const{__scopeSwitch:t,checked:n,children:o,defaultChecked:r,disabled:s,form:i,name:c,onCheckedChange:a,required:l,value:p="on",internal_do_not_use_render:u}=e,[m,g]=Fe({prop:n,defaultProp:r??!1,onChange:a,caller:qe}),[x,f]=d.useState(null),[y,v]=d.useState(null),w=d.useRef(!1),S=x?!!i||!!x.closest("form"):!0,b={checked:m,setChecked:g,disabled:s,control:x,setControl:f,name:c,form:i,value:p,hasConsumerStoppedPropagationRef:w,required:l,defaultChecked:r,isFormControl:S,bubbleInput:y,setBubbleInput:v};return h.jsx($o,{scope:t,...b,children:zo(u)?u(b):o})}var Yt="SwitchTrigger",Xt=d.forwardRef(({__scopeSwitch:e,onClick:t,...n},o)=>{const{control:r,form:s,value:i,disabled:c,checked:a,required:l,setControl:p,setChecked:u,hasConsumerStoppedPropagationRef:m,isFormControl:g,bubbleInput:x}=bt(Yt,e),f=U(o,p),y=d.useRef(a);return d.useEffect(()=>{const v=s?r==null?void 0:r.ownerDocument.getElementById(s):r==null?void 0:r.form;if(v instanceof HTMLFormElement){const w=()=>u(y.current);return v.addEventListener("reset",w),()=>v.removeEventListener("reset",w)}},[r,s,u]),h.jsx(W.button,{type:"button",role:"switch","aria-checked":a,"aria-required":l,"data-state":en(a),"data-disabled":c?"":void 0,disabled:c,value:i,...n,ref:f,onClick:z(t,v=>{u(w=>!w),x&&g&&(m.current=v.isPropagationStopped(),m.current||v.stopPropagation())})})});Xt.displayName=Yt;var Gt=d.forwardRef((e,t)=>{const{__scopeSwitch:n,name:o,checked:r,defaultChecked:s,required:i,disabled:c,value:a,onCheckedChange:l,form:p,...u}=e;return h.jsx(Wo,{__scopeSwitch:n,checked:r,defaultChecked:s,disabled:c,required:i,onCheckedChange:l,name:o,form:p,value:a,internal_do_not_use_render:({isFormControl:m})=>h.jsxs(h.Fragment,{children:[h.jsx(Xt,{...u,ref:t,__scopeSwitch:n}),m&&h.jsx(Qt,{__scopeSwitch:n})]})})});Gt.displayName=qe;var qt="SwitchThumb",Zt=d.forwardRef((e,t)=>{const{__scopeSwitch:n,...o}=e,r=bt(qt,n);return h.jsx(W.span,{"data-state":en(r.checked),"data-disabled":r.disabled?"":void 0,...o,ref:t})});Zt.displayName=qt;var Jt="SwitchBubbleInput",Qt=d.forwardRef(({__scopeSwitch:e,...t},n)=>{const{control:o,hasConsumerStoppedPropagationRef:r,checked:s,defaultChecked:i,required:c,disabled:a,name:l,value:p,form:u,bubbleInput:m,setBubbleInput:g}=bt(Jt,e),x=U(n,g),f=yt(s),y=St(o);d.useEffect(()=>{const w=m;if(!w)return;const S=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(S,"checked").set,R=!r.current;if(f!==s&&C){const P=new Event("click",{bubbles:R});C.call(w,s),w.dispatchEvent(P)}},[m,f,s,r]);const v=d.useRef(s);return h.jsx(W.input,{type:"checkbox","aria-hidden":!0,defaultChecked:i??v.current,required:c,disabled:a,name:l,value:p,form:u,...t,tabIndex:-1,ref:x,style:{...t.style,...y,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});Qt.displayName=Jt;function zo(e){return typeof e=="function"}function en(e){return e?"checked":"unchecked"}const Js=d.forwardRef(function(t,n){const{className:o,...r}=t;return h.jsxs(Gt,{ref:n,className:pe("v8-switch",o),style:{width:32,height:18,background:"var(--surface-2)",borderRadius:"var(--radius-pill)",position:"relative",border:"1px solid var(--border)",cursor:"pointer",transition:"background var(--motion-fast) var(--ease-out)"},...r,children:[h.jsx(Zt,{style:{display:"block",width:12,height:12,background:"var(--fg)",borderRadius:"var(--radius-pill)",transform:"translateX(2px)",transition:"transform var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out)",willChange:"transform"}}),h.jsx("style",{children:`
|
|
22
|
+
.v8-switch[data-state='checked'] {
|
|
23
|
+
background: var(--accent);
|
|
24
|
+
border-color: var(--accent);
|
|
25
|
+
}
|
|
26
|
+
.v8-switch[data-state='checked'] > span {
|
|
27
|
+
transform: translateX(16px);
|
|
28
|
+
background: var(--fg-on-accent);
|
|
29
|
+
}
|
|
30
|
+
`})]})});function tn(e){const t=e+"CollectionProvider",[n,o]=je(t),[r,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=f=>{const{scope:y,children:v}=f,w=d.useRef(null),S=d.useRef(new Map).current;return h.jsx(r,{scope:y,itemMap:S,collectionRef:w,children:v})};i.displayName=t;const c=e+"CollectionSlot",a=lt(c),l=d.forwardRef((f,y)=>{const{scope:v,children:w}=f,S=s(c,v),b=U(y,S.collectionRef);return h.jsx(a,{ref:b,children:w})});l.displayName=c;const p=e+"CollectionItemSlot",u="data-radix-collection-item",m=lt(p),g=d.forwardRef((f,y)=>{const{scope:v,children:w,...S}=f,b=d.useRef(null),C=U(y,b),R=s(p,v);return d.useEffect(()=>(R.itemMap.set(b,{ref:b,...S}),()=>void R.itemMap.delete(b))),h.jsx(m,{[u]:"",ref:C,children:w})});g.displayName=p;function x(f){const y=s(e+"CollectionConsumer",f);return d.useCallback(()=>{const w=y.collectionRef.current;if(!w)return[];const S=Array.from(w.querySelectorAll(`[${u}]`));return Array.from(y.itemMap.values()).sort((R,P)=>S.indexOf(R.ref.current)-S.indexOf(P.ref.current))},[y.collectionRef,y.itemMap])}return[{Provider:i,Slot:l,ItemSlot:g},x,o]}var Ko=d.createContext(void 0);function nn(e){const t=d.useContext(Ko);return e||t||"ltr"}function $e(e,[t,n]){return Math.min(n,Math.max(t,e))}const Uo=["top","right","bottom","left"],de=Math.min,ie=Math.max,We=Math.round,Le=Math.floor,ce=e=>({x:e,y:e}),Yo={left:"right",right:"left",bottom:"top",top:"bottom"};function on(e,t,n){return ie(e,de(t,n))}function ae(e,t){return typeof e=="function"?e(t):e}function ue(e){return e.split("-")[0]}function Ae(e){return e.split("-")[1]}function Ct(e){return e==="x"?"y":"x"}function Rt(e){return e==="y"?"height":"width"}function oe(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function Pt(e){return Ct(oe(e))}function Xo(e,t,n){n===void 0&&(n=!1);const o=Ae(e),r=Pt(e),s=Rt(r);let i=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(i=ze(i)),[i,ze(i)]}function Go(e){const t=ze(e);return[dt(e),t,dt(t)]}function dt(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Dt=["left","right"],Lt=["right","left"],qo=["top","bottom"],Zo=["bottom","top"];function Jo(e,t,n){switch(e){case"top":case"bottom":return n?t?Lt:Dt:t?Dt:Lt;case"left":case"right":return t?qo:Zo;default:return[]}}function Qo(e,t,n,o){const r=Ae(e);let s=Jo(ue(e),n==="start",o);return r&&(s=s.map(i=>i+"-"+r),t&&(s=s.concat(s.map(dt)))),s}function ze(e){const t=ue(e);return Yo[t]+e.slice(t.length)}function er(e){var t,n,o,r;return{top:(t=e.top)!=null?t:0,right:(n=e.right)!=null?n:0,bottom:(o=e.bottom)!=null?o:0,left:(r=e.left)!=null?r:0}}function rn(e){return typeof e!="number"?er(e):{top:e,right:e,bottom:e,left:e}}function Ke(e){const{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function Bt(e,t,n){let{reference:o,floating:r}=e;const s=oe(t),i=Pt(t),c=Rt(i),a=ue(t),l=s==="y",p=o.x+o.width/2-r.width/2,u=o.y+o.height/2-r.height/2,m=o[c]/2-r[c]/2;let g;switch(a){case"top":g={x:p,y:o.y-r.height};break;case"bottom":g={x:p,y:o.y+o.height};break;case"right":g={x:o.x+o.width,y:u};break;case"left":g={x:o.x-r.width,y:u};break;default:g={x:o.x,y:o.y}}const x=Ae(t);return x&&(g[i]+=m*(x==="end"?1:-1)*(n&&l?-1:1)),g}async function tr(e,t){var n;t===void 0&&(t={});const{x:o,y:r,platform:s,rects:i,elements:c,strategy:a}=e,{boundary:l="clippingAncestors",rootBoundary:p="viewport",elementContext:u="floating",altBoundary:m=!1,padding:g=0}=ae(t,e),x=rn(g),y=c[m?u==="floating"?"reference":"floating":u],v=Ke(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(y)))==null||n?y:y.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(c.floating)),boundary:l,rootBoundary:p,strategy:a})),w=u==="floating"?{x:o,y:r,width:i.floating.width,height:i.floating.height}:i.reference,S=await(s.getOffsetParent==null?void 0:s.getOffsetParent(c.floating)),b=await(s.isElement==null?void 0:s.isElement(S))&&await(s.getScale==null?void 0:s.getScale(S))||{x:1,y:1},C=Ke(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:w,offsetParent:S,strategy:a}):w);return{top:(v.top-C.top+x.top)/b.y,bottom:(C.bottom-v.bottom+x.bottom)/b.y,left:(v.left-C.left+x.left)/b.x,right:(C.right-v.right+x.right)/b.x}}const nr=50,or=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:s=[],platform:i}=n,c=i.detectOverflow?i:{...i,detectOverflow:tr},a=await(i.isRTL==null?void 0:i.isRTL(t));let l=await i.getElementRects({reference:e,floating:t,strategy:r}),{x:p,y:u}=Bt(l,o,a),m=o,g=0;const x={};for(let f=0;f<s.length;f++){const y=s[f];if(!y)continue;const{name:v,fn:w}=y,{x:S,y:b,data:C,reset:R}=await w({x:p,y:u,initialPlacement:o,placement:m,strategy:r,middlewareData:x,rects:l,platform:c,elements:{reference:e,floating:t}});p=S??p,u=b??u,x[v]={...x[v],...C},R&&g<nr&&(g++,typeof R=="object"&&(R.placement&&(m=R.placement),R.rects&&(l=R.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:r}):R.rects),{x:p,y:u}=Bt(l,m,a)),f=-1)}return{x:p,y:u,placement:m,strategy:r,middlewareData:x}},rr=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:s,platform:i,elements:c,middlewareData:a}=t,{element:l,padding:p=0}=ae(e,t)||{};if(l==null)return{};const u=rn(p),m={x:n,y:o},g=Pt(r),x=Rt(g),f=await i.getDimensions(l),y=g==="y",v=y?"top":"left",w=y?"bottom":"right",S=y?"clientHeight":"clientWidth",b=s.reference[x]+s.reference[g]-m[g]-s.floating[x],C=m[g]-s.reference[g],R=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l));let P=R?R[S]:0;(!P||!await(i.isElement==null?void 0:i.isElement(R)))&&(P=c.floating[S]||s.floating[x]);const _=b/2-C/2,H=P/2-f[x]/2-1,N=de(u[v],H),B=de(u[w],H),K=P-f[x]-B,O=P/2-f[x]/2+_,D=on(N,O,K),k=!a.arrow&&Ae(r)!=null&&O!==D&&s.reference[x]/2-(O<N?N:B)-f[x]/2<0,A=k?O<N?O-N:O-K:0;return{[g]:m[g]+A,data:{[g]:D,centerOffset:O-D-A,...k&&{alignmentOffset:A}},reset:k}}}),sr=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,middlewareData:s,rects:i,initialPlacement:c,platform:a,elements:l}=t,{mainAxis:p=!0,crossAxis:u=!0,fallbackPlacements:m,fallbackStrategy:g="bestFit",fallbackAxisSideDirection:x="none",flipAlignment:f=!0,...y}=ae(e,t);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const v=ue(r),w=oe(c),S=ue(c)===c,b=await(a.isRTL==null?void 0:a.isRTL(l.floating)),C=m||(S||!f?[ze(c)]:Go(c)),R=x!=="none";!m&&R&&C.push(...Qo(c,f,x,b));const P=[c,...C],_=await a.detectOverflow(t,y),H=[];let N=((o=s.flip)==null?void 0:o.overflows)||[];if(p&&H.push(_[v]),u){const D=Xo(r,i,b);H.push(_[D[0]],_[D[1]])}if(N=[...N,{placement:r,overflows:H}],!H.every(D=>D<=0)){var B,K;const D=(((B=s.flip)==null?void 0:B.index)||0)+1,k=P[D];if(k&&(!(u==="alignment"?w!==oe(k):!1)||N.every(E=>oe(E.placement)===w?E.overflows[0]>0:!0)))return{data:{index:D,overflows:N},reset:{placement:k}};let A=(K=N.filter(I=>I.overflows[0]<=0).sort((I,E)=>I.overflows[1]-E.overflows[1])[0])==null?void 0:K.placement;if(!A)switch(g){case"bestFit":{var O;const I=(O=N.filter(E=>{if(R){const M=oe(E.placement);return M===w||M==="y"}return!0}).map(E=>[E.placement,E.overflows.filter(M=>M>0).reduce((M,Y)=>M+Y,0)]).sort((E,M)=>E[1]-M[1])[0])==null?void 0:O[0];I&&(A=I);break}case"initialPlacement":A=c;break}if(r!==A)return{reset:{placement:A}}}return{}}}};function Vt(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ht(e){return Uo.some(t=>e[t]>=0)}const ir=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:o}=t,{strategy:r="referenceHidden",...s}=ae(e,t);switch(r){case"referenceHidden":{const i=await o.detectOverflow(t,{...s,elementContext:"reference"}),c=Vt(i,n.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:Ht(c)}}}case"escaped":{const i=await o.detectOverflow(t,{...s,altBoundary:!0}),c=Vt(i,n.floating);return{data:{escapedOffsets:c,escaped:Ht(c)}}}default:return{}}}}},sn=new Set(["left","top"]);async function cr(e,t){const{placement:n,platform:o,elements:r}=e,s=await(o.isRTL==null?void 0:o.isRTL(r.floating)),i=ue(n),c=Ae(n),a=oe(n)==="y",l=sn.has(i)?-1:1,p=s&&a?-1:1,u=ae(t,e);let{mainAxis:m,crossAxis:g,alignmentAxis:x}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return c&&typeof x=="number"&&(g=c==="end"?x*-1:x),a?{x:g*p,y:m*l}:{x:m*l,y:g*p}}const ar=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:s,placement:i,middlewareData:c}=t,a=await cr(t,e);return i===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+a.x,y:s+a.y,data:{...a,placement:i}}}}},lr=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r,platform:s}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:a={fn:w=>{let{x:S,y:b}=w;return{x:S,y:b}}},...l}=ae(e,t),p={x:n,y:o},u=await s.detectOverflow(t,l),m=oe(r),g=Ct(m);let x=p[g],f=p[m];const y=(w,S)=>on(S+u[w==="y"?"top":"left"],S,S-u[w==="y"?"bottom":"right"]);i&&(x=y(g,x)),c&&(f=y(m,f));const v=a.fn({...t,[g]:x,[m]:f});return{...v,data:{x:v.x-n,y:v.y-o,enabled:{[g]:i,[m]:c}}}}}},dr=function(e){return e===void 0&&(e={}),{options:e,fn(t){var n,o;const{x:r,y:s,placement:i,rects:c,middlewareData:a}=t,{offset:l=0,mainAxis:p=!0,crossAxis:u=!0}=ae(e,t),m={x:r,y:s},g=oe(i),x=Ct(g);let f=m[x],y=m[g];const v=ae(l,t),w=typeof v=="number"?{mainAxis:v,crossAxis:0}:{mainAxis:(n=v.mainAxis)!=null?n:0,crossAxis:(o=v.crossAxis)!=null?o:0};if(p){const C=x==="y"?"height":"width",R=c.reference[x]-c.floating[C]+w.mainAxis,P=c.reference[x]+c.reference[C]-w.mainAxis;f<R?f=R:f>P&&(f=P)}if(u){var S,b;const C=x==="y"?"width":"height",R=sn.has(ue(i)),P=c.reference[g]-c.floating[C]+(R&&((S=a.offset)==null?void 0:S[g])||0)+(R?0:w.crossAxis),_=c.reference[g]+c.reference[C]+(R?0:((b=a.offset)==null?void 0:b[g])||0)-(R?w.crossAxis:0);y<P?y=P:y>_&&(y=_)}return{[x]:f,[g]:y}}}},ur=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:o,platform:r,elements:s}=t,{apply:i=()=>{},...c}=ae(e,t),a=await r.detectOverflow(t,c),l=ue(n),p=Ae(n),u=oe(n)==="y",{width:m,height:g}=o.floating;let x,f;l==="top"||l==="bottom"?(x=l,f=p===(await(r.isRTL==null?void 0:r.isRTL(s.floating))?"start":"end")?"left":"right"):(f=l,x=p==="end"?"top":"bottom");const y=g-a.top-a.bottom,v=m-a.left-a.right,w=de(g-a[x],y),S=de(m-a[f],v),b=t.middlewareData.shift,C=!b;let R=w,P=S;b!=null&&b.enabled.x&&(P=v),b!=null&&b.enabled.y&&(R=y),C&&!p&&(u?P=m-2*ie(a.left,a.right):R=g-2*ie(a.top,a.bottom)),await i({...t,availableWidth:P,availableHeight:R});const _=await r.getDimensions(s.floating);return m!==_.width||g!==_.height?{reset:{rects:!0}}:{}}}};function Ze(){return typeof window<"u"}function Ee(e){return cn(e)?(e.nodeName||"").toLowerCase():"#document"}function J(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function le(e){var t;return(t=(cn(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function cn(e){return Ze()?e instanceof Node||e instanceof J(e).Node:!1}function re(e){return Ze()?e instanceof Element||e instanceof J(e).Element:!1}function he(e){return Ze()?e instanceof HTMLElement||e instanceof J(e).HTMLElement:!1}function Ft(e){return!Ze()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof J(e).ShadowRoot}function Je(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=se(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&r!=="inline"&&r!=="contents"}function fr(e){return/^(table|td|th)$/.test(Ee(e))}function Qe(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const pr=/transform|translate|scale|rotate|perspective|filter/,hr=/paint|layout|strict|content/,xe=e=>!!e&&e!=="none";let it;function At(e){const t=re(e)?se(e):e;return xe(t.transform)||xe(t.translate)||xe(t.scale)||xe(t.rotate)||xe(t.perspective)||!Et()&&(xe(t.backdropFilter)||xe(t.filter))||pr.test(t.willChange||"")||hr.test(t.contain||"")}function mr(e){let t=we(e);for(;he(t)&&!Oe(t);){if(At(t))return t;if(Qe(t))return null;t=we(t)}return null}function Et(){return it==null&&(it=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),it}function Oe(e){return/^(html|body|#document)$/.test(Ee(e))}function se(e){return J(e).getComputedStyle(e)}function et(e){return re(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function we(e){if(Ee(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Ft(e)&&e.host||le(e);return Ft(t)?t.host:t}function an(e){const t=we(e);return Oe(t)?(e.ownerDocument||e).body:he(t)&&Je(t)?t:an(t)}function Me(e,t,n){var o;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=an(e),s=r===((o=e.ownerDocument)==null?void 0:o.body),i=J(r);if(s){const c=ut(i);return t.concat(i,i.visualViewport||[],Je(r)?r:[],c&&n?Me(c):[])}else return t.concat(r,Me(r,[],n))}function ut(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function ln(e){const t=se(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=he(e),s=r?e.offsetWidth:n,i=r?e.offsetHeight:o,c=We(n)!==s||We(o)!==i;return c&&(n=s,o=i),{width:n,height:o,$:c}}function _t(e){return re(e)?e:e.contextElement}function Pe(e){const t=_t(e);if(!he(t))return ce(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:s}=ln(t);let i=(s?We(n.width):n.width)/o,c=(s?We(n.height):n.height)/r;return(!i||!Number.isFinite(i))&&(i=1),(!c||!Number.isFinite(c))&&(c=1),{x:i,y:c}}const gr=ce(0);function dn(e){const t=J(e);return!Et()||!t.visualViewport?gr:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function vr(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===J(e)}function ye(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),s=_t(e);let i=ce(1);t&&(o?re(o)&&(i=Pe(o)):i=Pe(e));const c=vr(s,n,o)?dn(s):ce(0);let a=(r.left+c.x)/i.x,l=(r.top+c.y)/i.y,p=r.width/i.x,u=r.height/i.y;if(s&&o){const m=J(s),g=re(o)?J(o):o;let x=m,f=ut(x);for(;f&&g!==x;){const y=Pe(f),v=f.getBoundingClientRect(),w=se(f),S=v.left+(f.clientLeft+parseFloat(w.paddingLeft))*y.x,b=v.top+(f.clientTop+parseFloat(w.paddingTop))*y.y;a*=y.x,l*=y.y,p*=y.x,u*=y.y,a+=S,l+=b,x=J(f),f=ut(x)}}return Ke({width:p,height:u,x:a,y:l})}function tt(e,t){const n=et(e).scrollLeft;return t?t.left+n:ye(le(e)).left+n}function un(e,t){const n=e.getBoundingClientRect(),o=n.left+t.scrollLeft-tt(e,n),r=n.top+t.scrollTop;return{x:o,y:r}}function xr(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const s=r==="fixed",i=le(o),c=t?Qe(t.floating):!1;if(o===i||c&&s)return n;let a={scrollLeft:0,scrollTop:0},l=ce(1);const p=ce(0),u=he(o);if((u||!s)&&((Ee(o)!=="body"||Je(i))&&(a=et(o)),u)){const g=ye(o);l=Pe(o),p.x=g.x+o.clientLeft,p.y=g.y+o.clientTop}const m=i&&!u&&!s?un(i,a):ce(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-a.scrollLeft*l.x+p.x+m.x,y:n.y*l.y-a.scrollTop*l.y+p.y+m.y}}function wr(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function yr(e){const t=et(e),n=e.ownerDocument.body,o=ie(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),r=ie(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight);let s=-t.scrollLeft+tt(e);const i=-t.scrollTop;return se(n).direction==="rtl"&&(s+=ie(e.clientWidth,n.clientWidth)-o),{width:o,height:r,x:s,y:i}}const Sr=25;function br(e,t,n){n===void 0&&(n="viewport");const o=n==="layoutViewport",r=J(e),s=le(e),i=r.visualViewport;let c=s.clientWidth,a=s.clientHeight,l=0,p=0;if(i){const m=!Et()||t==="fixed";o?m||(l=-i.offsetLeft,p=-i.offsetTop):(c=i.width,a=i.height,m&&(l=i.offsetLeft,p=i.offsetTop))}if(tt(s)<=0){const m=s.ownerDocument,g=m.body,x=getComputedStyle(g),f=m.compatMode==="CSS1Compat"&&parseFloat(x.marginLeft)+parseFloat(x.marginRight)||0,y=Math.abs(s.clientWidth-g.clientWidth-f),v=getComputedStyle(s).scrollbarGutter==="stable both-edges"?y/2:y;v<=Sr&&(c-=v)}return{width:c,height:a,x:l,y:p}}function Cr(e,t){const n=ye(e,!0,t==="fixed"),o=n.top+e.clientTop,r=n.left+e.clientLeft,s=Pe(e),i=e.clientWidth*s.x,c=e.clientHeight*s.y,a=r*s.x,l=o*s.y;return{width:i,height:c,x:a,y:l}}function $t(e,t,n){let o;if(t==="viewport"||t==="layoutViewport")o=br(e,n,t);else if(t==="document")o=yr(le(e));else if(re(t))o=Cr(t,n);else{const r=dn(e);o={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return Ke(o)}function Rr(e,t){const n=t.get(e);if(n)return n;let o=Me(e,[],!1).filter(c=>re(c)&&Ee(c)!=="body"),r=null;const s=se(e).position==="fixed";let i=s?we(e):e;for(;re(i)&&!Oe(i);){const c=se(i),a=At(i),l=r?r.position:s?"fixed":"";!a&&(l==="fixed"||l==="absolute"&&c.position==="static")?o=o.filter(u=>u!==i):r=c,i=we(i)}return t.set(e,o),o}function Pr(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const i=[...n==="clippingAncestors"?Qe(t)?[]:Rr(t,this._c):[].concat(n),o],c=$t(t,i[0],r);let a=c.top,l=c.right,p=c.bottom,u=c.left;for(let m=1;m<i.length;m++){const g=$t(t,i[m],r);a=ie(g.top,a),l=de(g.right,l),p=de(g.bottom,p),u=ie(g.left,u)}return{width:l-u,height:p-a,x:u,y:a}}function Ar(e){const{width:t,height:n}=ln(e);return{width:t,height:n}}function Er(e,t,n){const o=he(t),r=le(t),s=n==="fixed",i=ye(e,!0,s,t);let c={scrollLeft:0,scrollTop:0};const a=ce(0);if((o||!s)&&((Ee(t)!=="body"||Je(r))&&(c=et(t)),o)){const m=ye(t,!0,s,t);a.x=m.x+t.clientLeft,a.y=m.y+t.clientTop}!o&&r&&(a.x=tt(r));const l=r&&!o&&!s?un(r,c):ce(0),p=i.left+c.scrollLeft-a.x-l.x,u=i.top+c.scrollTop-a.y-l.y;return{x:p,y:u,width:i.width,height:i.height}}function ct(e){return se(e).position==="static"}function Wt(e,t){if(!he(e)||se(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return le(e)===n&&(n=n.ownerDocument.body),n}function fn(e,t){const n=J(e);if(Qe(e))return n;if(!he(e)){let r=we(e);for(;r&&!Oe(r);){if(re(r)&&!ct(r))return r;r=we(r)}return n}let o=Wt(e,t);for(;o&&fr(o)&&ct(o);)o=Wt(o,t);return o&&Oe(o)&&ct(o)&&!At(o)?n:o||mr(e)||n}const _r=async function(e){const t=this.getOffsetParent||fn,n=this.getDimensions,o=await n(e.floating);return{reference:Er(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function Tr(e){return se(e).direction==="rtl"}const Ir={convertOffsetParentRelativeRectToViewportRelativeRect:xr,getDocumentElement:le,getClippingRect:Pr,getOffsetParent:fn,getElementRects:_r,getClientRects:wr,getDimensions:Ar,getScale:Pe,isElement:re,isRTL:Tr};function pn(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Nr(e,t,n){let o=null,r;const s=le(e);function i(){var p;clearTimeout(r),(p=o)==null||p.disconnect(),o=null}function c(p,u){p===void 0&&(p=!1),u===void 0&&(u=1),i();const m=e.getBoundingClientRect(),{left:g,top:x,width:f,height:y}=m;if(p||t(),!f||!y)return;const v=Le(x),w=Le(s.clientWidth-(g+f)),S=Le(s.clientHeight-(x+y)),b=Le(g),R={rootMargin:-v+"px "+-w+"px "+-S+"px "+-b+"px",threshold:ie(0,de(1,u))||1};let P=!0;function _(H){const N=H[0].intersectionRatio;if(!pn(m,e.getBoundingClientRect()))return c();if(N!==u){if(!P)return c();N?c(!1,N):r=setTimeout(()=>{c(!1,1e-7)},1e3)}P=!1}try{o=new IntersectionObserver(_,{...R,root:s.ownerDocument})}catch{o=new IntersectionObserver(_,R)}o.observe(e)}const a=J(e),l=()=>c(n);return a.addEventListener("resize",l),c(!0),()=>{a.removeEventListener("resize",l),i()}}function Or(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:s=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:a=!1}=o,l=_t(e),p=r||s?[...l?Me(l):[],...t?Me(t):[]]:[];p.forEach(v=>{r&&v.addEventListener("scroll",n),s&&v.addEventListener("resize",n)});const u=l&&c?Nr(l,n,s):null;let m=-1,g=null;i&&(g=new ResizeObserver(v=>{let[w]=v;w&&w.target===l&&g&&t&&(g.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var S;(S=g)==null||S.observe(t)})),n()}),l&&!a&&g.observe(l),t&&g.observe(t));let x,f=a?ye(e):null;a&&y();function y(){const v=ye(e);f&&!pn(f,v)&&n(),f=v,x=requestAnimationFrame(y)}return n(),()=>{var v;p.forEach(w=>{r&&w.removeEventListener("scroll",n),s&&w.removeEventListener("resize",n)}),u==null||u(),(v=g)==null||v.disconnect(),g=null,a&&cancelAnimationFrame(x)}}const Mr=ar,jr=lr,kr=sr,Dr=ur,Lr=ir,zt=rr,Br=dr,Vr=(e,t,n)=>{const o=new Map,r=n??{},s={...Ir,...r.platform,_c:o};return or(e,t,{...r,platform:s})};var Hr=typeof document<"u",Fr=function(){},Be=Hr?d.useLayoutEffect:Fr;function Ue(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,o,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(!Ue(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;o--!==0;){const s=r[o];if(!(s==="_owner"&&e.$$typeof)&&!Ue(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function hn(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Kt(e,t){const n=hn(e);return Math.round(t*n)/n}function at(e){const t=d.useRef(e);return Be(()=>{t.current=e}),t}function $r(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:s,floating:i}={},transform:c=!0,whileElementsMounted:a,open:l}=e,[p,u]=d.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,g]=d.useState(o);Ue(m,o)||g(o);const[x,f]=d.useState(null),[y,v]=d.useState(null),w=d.useCallback(E=>{E!==R.current&&(R.current=E,f(E))},[]),S=d.useCallback(E=>{E!==P.current&&(P.current=E,v(E))},[]),b=s||x,C=i||y,R=d.useRef(null),P=d.useRef(null),_=d.useRef(p),H=a!=null,N=at(a),B=at(r),K=at(l),O=d.useCallback(()=>{if(!R.current||!P.current)return;const E={placement:t,strategy:n,middleware:m};B.current&&(E.platform=B.current),Vr(R.current,P.current,E).then(M=>{const Y={...M,isPositioned:K.current!==!1};D.current&&!Ue(_.current,Y)&&(_.current=Y,xt.flushSync(()=>{u(Y)}))})},[m,t,n,B,K]);Be(()=>{l===!1&&_.current.isPositioned&&(_.current.isPositioned=!1,u(E=>({...E,isPositioned:!1})))},[l]);const D=d.useRef(!1);Be(()=>(D.current=!0,()=>{D.current=!1}),[]),Be(()=>{if(b&&(R.current=b),C&&(P.current=C),b&&C){if(N.current)return N.current(b,C,O);O()}},[b,C,O,N,H]);const k=d.useMemo(()=>({reference:R,floating:P,setReference:w,setFloating:S}),[w,S]),A=d.useMemo(()=>({reference:b,floating:C}),[b,C]),I=d.useMemo(()=>{const E={position:n,left:0,top:0};if(!A.floating)return E;const M=Kt(A.floating,p.x),Y=Kt(A.floating,p.y);return c?{...E,transform:"translate("+M+"px, "+Y+"px)",...hn(A.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:M,top:Y}},[n,c,A.floating,p.x,p.y]);return d.useMemo(()=>({...p,update:O,refs:k,elements:A,floatingStyles:I}),[p,O,k,A,I])}const Wr=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:r}=typeof e=="function"?e(n):e;return o&&t(o)?o.current!=null?zt({element:o.current,padding:r}).fn(n):{}:o?zt({element:o,padding:r}).fn(n):{}}}},zr=(e,t)=>{const n=Mr(e);return{name:n.name,fn:n.fn,options:[e,t]}},Kr=(e,t)=>{const n=jr(e);return{name:n.name,fn:n.fn,options:[e,t]}},Ur=(e,t)=>({fn:Br(e).fn,options:[e,t]}),Yr=(e,t)=>{const n=kr(e);return{name:n.name,fn:n.fn,options:[e,t]}},Xr=(e,t)=>{const n=Dr(e);return{name:n.name,fn:n.fn,options:[e,t]}},Gr=(e,t)=>{const n=Lr(e);return{name:n.name,fn:n.fn,options:[e,t]}},qr=(e,t)=>{const n=Wr(e);return{name:n.name,fn:n.fn,options:[e,t]}};var Zr="Arrow",mn=d.forwardRef((e,t)=>{const{children:n,width:o=10,height:r=5,...s}=e;return h.jsx(W.svg,{...s,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:h.jsx("polygon",{points:"0,0 30,0 15,10"})})});mn.displayName=Zr;var Jr=mn,Tt="Popper",[gn,vn]=je(Tt),[Qr,xn]=gn(Tt),wn=e=>{const{__scopePopper:t,children:n}=e,[o,r]=d.useState(null),[s,i]=d.useState(void 0);return h.jsx(Qr,{scope:t,anchor:o,onAnchorChange:r,placementState:s,setPlacementState:i,children:n})};wn.displayName=Tt;var yn="PopperAnchor",Sn=d.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,s=xn(yn,n),i=d.useRef(null),c=s.onAnchorChange,a=d.useCallback(x=>{i.current=x,x&&c(x)},[c]),l=U(t,a),p=d.useRef(null);d.useEffect(()=>{if(!o)return;const x=p.current;p.current=o.current,x!==p.current&&c(p.current)});const u=s.placementState&&Nt(s.placementState),m=u==null?void 0:u[0],g=u==null?void 0:u[1];return o?null:h.jsx(W.div,{"data-radix-popper-side":m,"data-radix-popper-align":g,...r,ref:l})});Sn.displayName=yn;var It="PopperContent",[es,ts]=gn(It),bn=d.forwardRef((e,t)=>{var $,q,V,j,L,ne;const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:s="center",alignOffset:i=0,arrowPadding:c=0,avoidCollisions:a=!0,collisionBoundary:l=[],collisionPadding:p=0,sticky:u="partial",hideWhenDetached:m=!1,updatePositionStrategy:g="optimized",onPlaced:x,...f}=e,y=xn(It,n),[v,w]=d.useState(null),S=U(t,w),[b,C]=d.useState(null),R=St(b),P=(R==null?void 0:R.width)??0,_=(R==null?void 0:R.height)??0,H=o+(s!=="center"?"-"+s:""),N=typeof p=="number"?p:{top:0,right:0,bottom:0,left:0,...p},B=Array.isArray(l)?l:[l],K=B.length>0,O={padding:N,boundary:B.filter(os),altBoundary:K},{refs:D,floatingStyles:k,placement:A,isPositioned:I,middlewareData:E}=$r({strategy:"fixed",placement:H,whileElementsMounted:(...ee)=>Or(...ee,{animationFrame:g==="always"}),elements:{reference:y.anchor},middleware:[zr({mainAxis:r+_,alignmentAxis:i}),a&&Kr({mainAxis:!0,crossAxis:!1,limiter:u==="partial"?Ur():void 0,...O}),a&&Yr({...O}),Xr({...O,apply:({elements:ee,rects:Re,availableWidth:Te,availableHeight:Ie})=>{const{width:Co,height:Ro}=Re.reference,De=ee.floating.style;De.setProperty("--radix-popper-available-width",`${Te}px`),De.setProperty("--radix-popper-available-height",`${Ie}px`),De.setProperty("--radix-popper-anchor-width",`${Co}px`),De.setProperty("--radix-popper-anchor-height",`${Ro}px`)}}),b&&qr({element:b,padding:c}),rs({arrowWidth:P,arrowHeight:_}),m&&Gr({strategy:"referenceHidden",...O,boundary:K?O.boundary:void 0})]}),M=y.setPlacementState;Q(()=>(M(A),()=>{M(void 0)}),[A,M]);const[Y,G]=Nt(A),F=Xe(x);Q(()=>{I&&(F==null||F())},[I,F]);const X=($=E.arrow)==null?void 0:$.x,Z=(q=E.arrow)==null?void 0:q.y,Ce=((V=E.arrow)==null?void 0:V.centerOffset)!==0,[ve,T]=d.useState();return Q(()=>{v&&T(window.getComputedStyle(v).zIndex)},[v]),h.jsx("div",{ref:D.setFloating,"data-radix-popper-content-wrapper":"",style:{...k,transform:I?k.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ve,"--radix-popper-transform-origin":[(j=E.transformOrigin)==null?void 0:j.x,(L=E.transformOrigin)==null?void 0:L.y].join(" "),...((ne=E.hide)==null?void 0:ne.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:h.jsx(es,{scope:n,placedSide:Y,placedAlign:G,onArrowChange:C,arrowX:X,arrowY:Z,shouldHideArrow:Ce,children:h.jsx(W.div,{"data-side":Y,"data-align":G,...f,ref:S,style:{...f.style,animation:I?void 0:"none"}})})})});bn.displayName=It;var Cn="PopperArrow",ns={top:"bottom",right:"left",bottom:"top",left:"right"},Rn=d.forwardRef(function(t,n){const{__scopePopper:o,...r}=t,s=ts(Cn,o),i=ns[s.placedSide];return h.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:h.jsx(Jr,{...r,ref:n,style:{...r.style,display:"block"}})})});Rn.displayName=Cn;function os(e){return e!==null}var rs=e=>({name:"transformOrigin",options:e,fn(t){var y,v,w;const{placement:n,rects:o,middlewareData:r}=t,i=((y=r.arrow)==null?void 0:y.centerOffset)!==0,c=i?0:e.arrowWidth,a=i?0:e.arrowHeight,[l,p]=Nt(n),u={start:"0%",center:"50%",end:"100%"}[p],m=(((v=r.arrow)==null?void 0:v.x)??0)+c/2,g=(((w=r.arrow)==null?void 0:w.y)??0)+a/2;let x="",f="";return l==="bottom"?(x=i?u:`${m}px`,f=`${-a}px`):l==="top"?(x=i?u:`${m}px`,f=`${o.floating.height+a}px`):l==="right"?(x=`${-a}px`,f=i?u:`${g}px`):l==="left"&&(x=`${o.floating.width+a}px`,f=i?u:`${g}px`),{data:{x,y:f}}}});function Nt(e){const[t,n="center"]=e.split("-");return[t,n]}var ss=wn,is=Sn,cs=bn,as=Rn,Pn=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),ls="VisuallyHidden",An=d.forwardRef((e,t)=>h.jsx(W.span,{...e,ref:t,style:{...Pn,...e.style}}));An.displayName=ls;var Qs=An,ds=[" ","Enter","ArrowUp","ArrowDown"],us=[" ","Enter"],Se="Select",[nt,ot,fs]=tn(Se),[be]=je(Se,[fs,vn]),rt=vn(),[ps,me]=be(Se),[hs,ms]=be(Se),gs="SelectProvider";function En(e){const{__scopeSelect:t,children:n,open:o,defaultOpen:r,onOpenChange:s,value:i,defaultValue:c,onValueChange:a,dir:l,name:p,autoComplete:u,disabled:m,required:g,form:x,internal_do_not_use_render:f}=e,y=rt(t),[v,w]=d.useState(null),[S,b]=d.useState(null),[C,R]=d.useState(!1),P=nn(l),[_,H]=Fe({prop:o,defaultProp:r??!1,onChange:s,caller:Se}),[N,B]=Fe({prop:i,defaultProp:c,onChange:a,caller:Se}),K=d.useRef(null),O=d.useRef(N);d.useEffect(()=>{const F=x?v==null?void 0:v.ownerDocument.getElementById(x):v==null?void 0:v.form;if(F instanceof HTMLFormElement){const X=()=>B(O.current);return F.addEventListener("reset",X),()=>F.removeEventListener("reset",X)}},[x,v,B]);const D=v?!!x||!!v.closest("form"):!0,[k,A]=d.useState(new Set),I=wt(),E=Array.from(k).map(F=>F.props.value).join(";"),M=d.useCallback(F=>{A(X=>new Set(X).add(F))},[]),Y=d.useCallback(F=>{A(X=>{const Z=new Set(X);return Z.delete(F),Z})},[]),G={required:g,trigger:v,onTriggerChange:w,valueNode:S,onValueNodeChange:b,valueNodeHasChildren:C,onValueNodeHasChildrenChange:R,contentId:I,value:N,onValueChange:B,open:_,onOpenChange:H,dir:P,triggerPointerDownPosRef:K,disabled:m,name:p,autoComplete:u,form:x,nativeOptions:k,nativeSelectKey:E,isFormControl:D};return h.jsx(ss,{...y,children:h.jsx(ps,{scope:t,...G,children:h.jsx(nt.Provider,{scope:t,children:h.jsx(hs,{scope:t,onNativeOptionAdd:M,onNativeOptionRemove:Y,children:Ms(f)?f(G):n})})})})}En.displayName=gs;var _n=e=>{const{__scopeSelect:t,children:n,...o}=e;return h.jsx(En,{__scopeSelect:t,...o,internal_do_not_use_render:({isFormControl:r})=>h.jsxs(h.Fragment,{children:[n,r?h.jsx(Qn,{__scopeSelect:t}):null]})})};_n.displayName=Se;var Tn="SelectTrigger",Ot=d.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:o=!1,...r}=e,s=rt(n),i=me(Tn,n),c=i.disabled||o,a=U(t,i.onTriggerChange),l=ot(n),p=d.useRef("touch"),[u,m,g]=eo(f=>{const y=l().filter(S=>!S.disabled),v=y.find(S=>S.value===i.value),w=to(y,f,v);w!==void 0&&i.onValueChange(w.value)}),x=f=>{c||(i.onOpenChange(!0),g()),f&&(i.triggerPointerDownPosRef.current={x:Math.round(f.pageX),y:Math.round(f.pageY)})};return h.jsx(is,{asChild:!0,...s,children:h.jsx(W.button,{type:"button",role:"combobox","aria-controls":i.open?i.contentId:void 0,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":st(i.value)?"":void 0,...r,ref:a,onClick:z(r.onClick,f=>{f.currentTarget.focus(),p.current!=="mouse"&&x(f)}),onPointerDown:z(r.onPointerDown,f=>{p.current=f.pointerType;const y=f.target;y.hasPointerCapture(f.pointerId)&&y.releasePointerCapture(f.pointerId),f.button===0&&f.ctrlKey===!1&&f.pointerType==="mouse"&&(x(f),f.preventDefault())}),onKeyDown:z(r.onKeyDown,f=>{const y=u.current!=="";!(f.ctrlKey||f.altKey||f.metaKey)&&f.key.length===1&&m(f.key),!(y&&f.key===" ")&&ds.includes(f.key)&&(x(),f.preventDefault())})})})});Ot.displayName=Tn;var In="SelectValue",Nn=d.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,children:s,placeholder:i="",...c}=e,a=me(In,n),{onValueNodeHasChildrenChange:l}=a,p=s!==void 0,u=U(t,a.onValueNodeChange);Q(()=>{l(p)},[l,p]);const m=st(a.value);return h.jsx(W.span,{...c,asChild:m?!1:c.asChild,ref:u,style:{pointerEvents:"none"},children:h.jsx(d.Fragment,{children:m?i:s},m?"placeholder":"value")})});Nn.displayName=In;var vs="SelectIcon",On=d.forwardRef((e,t)=>{const{__scopeSelect:n,children:o,...r}=e;return h.jsx(W.span,{"aria-hidden":!0,...r,ref:t,children:o||"▼"})});On.displayName=vs;var Mn="SelectPortal",[xs,ws]=be(Mn,{forceMount:void 0}),jn=e=>{const{__scopeSelect:t,forceMount:n,...o}=e;return h.jsx(xs,{scope:e.__scopeSelect,forceMount:n,children:h.jsx(Oo,{asChild:!0,...o})})};jn.displayName=Mn;var fe="SelectContent",kn=d.forwardRef((e,t)=>{const n=ws(fe,e.__scopeSelect),{forceMount:o=n.forceMount,...r}=e,s=me(fe,e.__scopeSelect),[i,c]=d.useState();return Q(()=>{c(new DocumentFragment)},[]),h.jsx(Ao,{present:o||s.open,children:({present:a})=>a?h.jsx(Bn,{...r,ref:t}):h.jsx(Dn,{...r,fragment:i})})});kn.displayName=fe;var Dn=d.forwardRef((e,t)=>{const{__scopeSelect:n,children:o,fragment:r}=e;return r?xt.createPortal(h.jsx(Ln,{scope:n,children:h.jsx(nt.Slot,{scope:n,children:h.jsx("div",{ref:t,children:o})})}),r):null});Dn.displayName="SelectContentFragment";var te=10,[Ln,ge]=be(fe),ys="SelectContentImpl",Ss=lt("SelectContent.RemoveScroll"),Bn=d.forwardRef((e,t)=>{const{__scopeSelect:n}=e,{position:o="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:s,onPointerDownOutside:i,side:c,sideOffset:a,align:l,alignOffset:p,arrowPadding:u,collisionBoundary:m,collisionPadding:g,sticky:x,hideWhenDetached:f,avoidCollisions:y,...v}=e,w=me(fe,n),[S,b]=d.useState(null),[C,R]=d.useState(null),P=U(t,b),[_,H]=d.useState(null),[N,B]=d.useState(null),K=ot(n),[O,D]=d.useState(!1),k=d.useRef(!1);d.useEffect(()=>{if(S)return Eo(S)},[S]),_o();const A=d.useCallback(T=>{const[$,...q]=K().map(L=>L.ref.current),[V]=q.slice(-1),j=document.activeElement;for(const L of T)if(L===j||(L==null||L.scrollIntoView({block:"nearest"}),L===$&&C&&(C.scrollTop=0),L===V&&C&&(C.scrollTop=C.scrollHeight),L==null||L.focus(),document.activeElement!==j))return},[K,C]),I=d.useCallback(()=>A([_,S]),[A,_,S]);d.useEffect(()=>{O&&I()},[O,I]);const{onOpenChange:E,triggerPointerDownPosRef:M}=w;d.useEffect(()=>{if(S){let T={x:0,y:0};const $=V=>{var j,L;T={x:Math.abs(Math.round(V.pageX)-(((j=M.current)==null?void 0:j.x)??0)),y:Math.abs(Math.round(V.pageY)-(((L=M.current)==null?void 0:L.y)??0))}},q=V=>{T.x<=10&&T.y<=10?V.preventDefault():V.composedPath().includes(S)||E(!1),document.removeEventListener("pointermove",$),M.current=null};return M.current!==null&&(document.addEventListener("pointermove",$),document.addEventListener("pointerup",q,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",$),document.removeEventListener("pointerup",q,{capture:!0})}}},[S,E,M]),d.useEffect(()=>{const T=()=>E(!1);return window.addEventListener("blur",T),window.addEventListener("resize",T),()=>{window.removeEventListener("blur",T),window.removeEventListener("resize",T)}},[E]);const[Y,G]=eo(T=>{const $=K().filter(j=>!j.disabled),q=$.find(j=>j.ref.current===document.activeElement),V=to($,T,q);V&&setTimeout(()=>{var j;return(j=V.ref.current)==null?void 0:j.focus()})}),F=d.useCallback((T,$,q)=>{const V=!k.current&&!q;(w.value!==void 0&&w.value===$||V)&&(H(T),V&&(k.current=!0))},[w.value]),X=d.useCallback(()=>S==null?void 0:S.focus(),[S]),Z=d.useCallback((T,$,q)=>{const V=!k.current&&!q;(w.value!==void 0&&w.value===$||V)&&B(T)},[w.value]),Ce=o==="popper"?ft:Vn,ve=Ce===ft?{side:c,sideOffset:a,align:l,alignOffset:p,arrowPadding:u,collisionBoundary:m,collisionPadding:g,sticky:x,hideWhenDetached:f,avoidCollisions:y}:{};return h.jsx(Ln,{scope:n,content:S,viewport:C,onViewportChange:R,itemRefCallback:F,selectedItem:_,onItemLeave:X,itemTextRefCallback:Z,focusSelectedItem:I,selectedItemText:N,position:o,isPositioned:O,searchRef:Y,children:h.jsx(To,{as:Ss,allowPinchZoom:!0,children:h.jsx(Io,{asChild:!0,trapped:w.open,onMountAutoFocus:T=>{T.preventDefault()},onUnmountAutoFocus:z(r,T=>{var $;($=w.trigger)==null||$.focus({preventScroll:!0}),T.preventDefault()}),children:h.jsx(No,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:T=>T.preventDefault(),onDismiss:()=>w.onOpenChange(!1),children:h.jsx(Ce,{role:"listbox",id:w.contentId,"data-state":w.open?"open":"closed",dir:w.dir,onContextMenu:T=>T.preventDefault(),...v,...ve,onPlaced:()=>D(!0),ref:P,style:{display:"flex",flexDirection:"column",outline:"none",...v.style},onKeyDown:z(v.onKeyDown,T=>{const $=T.ctrlKey||T.altKey||T.metaKey;if(T.key==="Tab"&&T.preventDefault(),!$&&T.key.length===1&&G(T.key),["ArrowUp","ArrowDown","Home","End"].includes(T.key)){let V=K().filter(j=>!j.disabled).map(j=>j.ref.current);if(["ArrowUp","End"].includes(T.key)&&(V=V.slice().reverse()),["ArrowUp","ArrowDown"].includes(T.key)){const j=T.target,L=V.indexOf(j);V=V.slice(L+1)}setTimeout(()=>A(V)),T.preventDefault()}})})})})})})});Bn.displayName=ys;var bs="SelectItemAlignedPosition",Vn=d.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:o,...r}=e,s=me(fe,n),i=ge(fe,n),[c,a]=d.useState(null),[l,p]=d.useState(null),u=U(t,p),m=ot(n),g=d.useRef(!1),x=d.useRef(!0),{viewport:f,selectedItem:y,selectedItemText:v,focusSelectedItem:w}=i,S=d.useCallback(()=>{if(s.trigger&&s.valueNode&&c&&l&&f&&y&&v){const P=s.trigger.getBoundingClientRect(),_=l.getBoundingClientRect(),H=s.valueNode.getBoundingClientRect(),N=v.getBoundingClientRect();if(s.dir!=="rtl"){const j=N.left-_.left,L=H.left-j,ne=P.left-L,ee=P.width+ne,Re=Math.max(ee,_.width),Te=window.innerWidth-te,Ie=$e(L,[te,Math.max(te,Te-Re)]);c.style.minWidth=ee+"px",c.style.left=Ie+"px"}else{const j=_.right-N.right,L=window.innerWidth-H.right-j,ne=window.innerWidth-P.right-L,ee=P.width+ne,Re=Math.max(ee,_.width),Te=window.innerWidth-te,Ie=$e(L,[te,Math.max(te,Te-Re)]);c.style.minWidth=ee+"px",c.style.right=Ie+"px"}const B=m(),K=window.innerHeight-te*2,O=f.scrollHeight,D=window.getComputedStyle(l),k=parseInt(D.borderTopWidth,10),A=parseInt(D.paddingTop,10),I=parseInt(D.borderBottomWidth,10),E=parseInt(D.paddingBottom,10),M=k+A+O+E+I,Y=Math.min(y.offsetHeight*5,M),G=window.getComputedStyle(f),F=parseInt(G.paddingTop,10),X=parseInt(G.paddingBottom,10),Z=P.top+P.height/2-te,Ce=K-Z,ve=y.offsetHeight/2,T=y.offsetTop+ve,$=k+A+T,q=M-$;if($<=Z){const j=B.length>0&&y===B[B.length-1].ref.current;c.style.bottom="0px";const L=l.clientHeight-f.offsetTop-f.offsetHeight,ne=Math.max(Ce,ve+(j?X:0)+L+I),ee=$+ne;c.style.height=ee+"px"}else{const j=B.length>0&&y===B[0].ref.current;c.style.top="0px";const ne=Math.max(Z,k+f.offsetTop+(j?F:0)+ve)+q;c.style.height=ne+"px",f.scrollTop=$-Z+f.offsetTop}c.style.margin=`${te}px 0`,c.style.minHeight=Y+"px",c.style.maxHeight=K+"px",o==null||o(),requestAnimationFrame(()=>g.current=!0)}},[m,s.trigger,s.valueNode,c,l,f,y,v,s.dir,o]);Q(()=>S(),[S]);const[b,C]=d.useState();Q(()=>{l&&C(window.getComputedStyle(l).zIndex)},[l]);const R=d.useCallback(P=>{P&&x.current===!0&&(S(),w==null||w(),x.current=!1)},[S,w]);return h.jsx(Rs,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:g,onScrollButtonChange:R,children:h.jsx("div",{ref:a,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:b},children:h.jsx(W.div,{...r,ref:u,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});Vn.displayName=bs;var Cs="SelectPopperPosition",ft=d.forwardRef((e,t)=>{const{__scopeSelect:n,align:o="start",collisionPadding:r=te,...s}=e,i=rt(n);return h.jsx(cs,{...i,...s,ref:t,align:o,collisionPadding:r,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});ft.displayName=Cs;var[Rs,Mt]=be(fe,{}),pt="SelectViewport",Hn=d.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:o,...r}=e,s=ge(pt,n),i=Mt(pt,n),c=U(t,s.onViewportChange),a=d.useRef(0);return h.jsxs(h.Fragment,{children:[h.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),h.jsx(nt.Slot,{scope:n,children:h.jsx(W.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:z(r.onScroll,l=>{const p=l.currentTarget,{contentWrapper:u,shouldExpandOnScrollRef:m}=i;if(m!=null&&m.current&&u){const g=Math.abs(a.current-p.scrollTop);if(g>0){const x=window.innerHeight-te*2,f=parseFloat(u.style.minHeight),y=parseFloat(u.style.height),v=Math.max(f,y);if(v<x){const w=v+g,S=Math.min(x,w),b=w-S;u.style.height=S+"px",u.style.bottom==="0px"&&(p.scrollTop=b>0?b:0,u.style.justifyContent="flex-end")}}}a.current=p.scrollTop})})})]})});Hn.displayName=pt;var Fn="SelectGroup",[Ps,As]=be(Fn),Es=d.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=wt();return h.jsx(Ps,{scope:n,id:r,children:h.jsx(W.div,{role:"group","aria-labelledby":r,...o,ref:t})})});Es.displayName=Fn;var $n="SelectLabel",_s=d.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=As($n,n);return h.jsx(W.div,{id:r.id,...o,ref:t})});_s.displayName=$n;var Ye="SelectItem",[Ts,Wn]=be(Ye),zn=d.forwardRef((e,t)=>{const{__scopeSelect:n,value:o,disabled:r=!1,textValue:s,...i}=e,c=me(Ye,n),a=ge(Ye,n),l=c.value===o,[p,u]=d.useState(s??""),[m,g]=d.useState(!1),x=Xe(S=>{var b;return(b=a.itemRefCallback)==null?void 0:b.call(a,S,o,r)}),f=U(t,x),y=wt(),v=d.useRef("touch"),w=()=>{r||(c.onValueChange(o),c.onOpenChange(!1))};return h.jsx(Ts,{scope:n,value:o,disabled:r,textId:y,isSelected:l,onItemTextChange:d.useCallback(S=>{u(b=>b||((S==null?void 0:S.textContent)??"").trim())},[]),children:h.jsx(nt.ItemSlot,{scope:n,value:o,disabled:r,textValue:p,children:h.jsx(W.div,{role:"option","aria-labelledby":y,"data-highlighted":m?"":void 0,"aria-selected":l&&m,"data-state":l?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...i,ref:f,onFocus:z(i.onFocus,()=>g(!0)),onBlur:z(i.onBlur,()=>g(!1)),onClick:z(i.onClick,()=>{v.current!=="mouse"&&w()}),onPointerUp:z(i.onPointerUp,()=>{v.current==="mouse"&&w()}),onPointerDown:z(i.onPointerDown,S=>{v.current=S.pointerType}),onPointerMove:z(i.onPointerMove,S=>{var b;v.current=S.pointerType,r?(b=a.onItemLeave)==null||b.call(a):v.current==="mouse"&&S.currentTarget.focus({preventScroll:!0})}),onPointerLeave:z(i.onPointerLeave,S=>{var b;S.currentTarget===document.activeElement&&((b=a.onItemLeave)==null||b.call(a))}),onKeyDown:z(i.onKeyDown,S=>{var C;r||S.target!==S.currentTarget||((C=a.searchRef)==null?void 0:C.current)!==""&&S.key===" "||(us.includes(S.key)&&w(),S.key===" "&&S.preventDefault())})})})})});zn.displayName=Ye;var Ne="SelectItemText",Kn=d.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,...s}=e,i=me(Ne,n),c=ge(Ne,n),a=Wn(Ne,n),l=ms(Ne,n),[p,u]=d.useState(null),m=Xe(w=>{var S;return(S=c.itemTextRefCallback)==null?void 0:S.call(c,w,a.value,a.disabled)}),g=U(t,u,a.onItemTextChange,m),x=p==null?void 0:p.textContent,f=d.useMemo(()=>h.jsx("option",{value:a.value,disabled:a.disabled,children:x},a.value),[a.disabled,a.value,x]),{onNativeOptionAdd:y,onNativeOptionRemove:v}=l;return Q(()=>(y(f),()=>v(f)),[y,v,f]),h.jsxs(h.Fragment,{children:[h.jsx(W.span,{id:a.textId,...s,ref:g}),a.isSelected&&i.valueNode&&!i.valueNodeHasChildren&&!st(i.value)?xt.createPortal(s.children,i.valueNode):null]})});Kn.displayName=Ne;var Un="SelectItemIndicator",Yn=d.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return Wn(Un,n).isSelected?h.jsx(W.span,{"aria-hidden":!0,...o,ref:t}):null});Yn.displayName=Un;var ht="SelectScrollUpButton",Xn=d.forwardRef((e,t)=>{const n=ge(ht,e.__scopeSelect),o=Mt(ht,e.__scopeSelect),[r,s]=d.useState(!1),i=U(t,o.onScrollButtonChange);return Q(()=>{if(n.viewport&&n.isPositioned){let c=function(){const l=a.scrollTop>0;s(l)};const a=n.viewport;return c(),a.addEventListener("scroll",c),()=>a.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),r?h.jsx(qn,{...e,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=n;c&&a&&(c.scrollTop=c.scrollTop-a.offsetHeight)}}):null});Xn.displayName=ht;var mt="SelectScrollDownButton",Gn=d.forwardRef((e,t)=>{const n=ge(mt,e.__scopeSelect),o=Mt(mt,e.__scopeSelect),[r,s]=d.useState(!1),i=U(t,o.onScrollButtonChange);return Q(()=>{if(n.viewport&&n.isPositioned){let c=function(){const l=a.scrollHeight-a.clientHeight,p=Math.ceil(a.scrollTop)<l;s(p)};const a=n.viewport;return c(),a.addEventListener("scroll",c),()=>a.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),r?h.jsx(qn,{...e,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=n;c&&a&&(c.scrollTop=c.scrollTop+a.offsetHeight)}}):null});Gn.displayName=mt;var qn=d.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:o,...r}=e,s=ge("SelectScrollButton",n),i=d.useRef(null),c=ot(n),a=d.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return d.useEffect(()=>()=>a(),[a]),Q(()=>{var p;const l=c().find(u=>u.ref.current===document.activeElement);(p=l==null?void 0:l.ref.current)==null||p.scrollIntoView({block:"nearest"})},[c]),h.jsx(W.div,{"aria-hidden":!0,...r,ref:t,style:{flexShrink:0,...r.style},onPointerDown:z(r.onPointerDown,()=>{i.current===null&&(i.current=window.setInterval(o,50))}),onPointerMove:z(r.onPointerMove,()=>{var l;(l=s.onItemLeave)==null||l.call(s),i.current===null&&(i.current=window.setInterval(o,50))}),onPointerLeave:z(r.onPointerLeave,()=>{a()})})}),Is="SelectSeparator",Ns=d.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return h.jsx(W.div,{"aria-hidden":!0,...o,ref:t})});Ns.displayName=Is;var Zn="SelectArrow",Os=d.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=rt(n);return ge(Zn,n).position==="popper"?h.jsx(as,{...r,...o,ref:t}):null});Os.displayName=Zn;var Jn="SelectBubbleInput",Qn=d.forwardRef(({__scopeSelect:e,...t},n)=>{const o=me(Jn,e),{value:r,onValueChange:s,required:i,disabled:c,name:a,autoComplete:l,form:p}=o,{nativeOptions:u,nativeSelectKey:m}=o,g=d.useRef(null),x=U(n,g),f=r??"",y=yt(f),v=Array.from(u).some(w=>(w.props.value??"")==="");return d.useEffect(()=>{const w=g.current;if(!w)return;const S=window.HTMLSelectElement.prototype,C=Object.getOwnPropertyDescriptor(S,"value").set;if(y!==f&&C){const R=new Event("change",{bubbles:!0});C.call(w,f),w.dispatchEvent(R)}},[y,f]),h.jsxs(W.select,{"aria-hidden":!0,required:i,tabIndex:-1,name:a,autoComplete:l,disabled:c,form:p,onChange:w=>s(w.target.value),...t,style:{...Pn,...t.style},ref:x,defaultValue:f,children:[st(r)&&!v?h.jsx("option",{value:""}):null,Array.from(u)]},m)});Qn.displayName=Jn;function Ms(e){return typeof e=="function"}function st(e){return e===""||e===void 0}function eo(e){const t=Xe(e),n=d.useRef(""),o=d.useRef(0),r=d.useCallback(i=>{const c=n.current+i;t(c),function a(l){n.current=l,window.clearTimeout(o.current),l!==""&&(o.current=window.setTimeout(()=>a(""),1e3))}(c)},[t]),s=d.useCallback(()=>{n.current="",window.clearTimeout(o.current)},[]);return d.useEffect(()=>()=>window.clearTimeout(o.current),[]),[n,r,s]}function to(e,t,n){const r=t.length>1&&Array.from(t).every(l=>l===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let i=js(e,Math.max(s,0));r.length===1&&(i=i.filter(l=>l!==n));const a=i.find(l=>l.textValue.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function js(e,t){return e.map((n,o)=>e[(t+o)%e.length])}const ei=d.forwardRef(function(t,n){const{children:o,...r}=t;return h.jsxs(_n,{...r,children:[o,h.jsx("span",{hidden:!0,children:h.jsx(Ot,{ref:n})})]})});d.forwardRef(function(t,n){const{className:o,placeholder:r,size:s="md",children:i,...c}=t;return h.jsxs(Ot,{ref:n,className:pe("v8-select__trigger",o),style:{display:"inline-flex",alignItems:"center",justifyContent:"space-between",gap:"var(--space-2)",minWidth:120,height:s==="sm"?28:32,padding:"0 var(--space-3)",background:"var(--input-bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",fontSize:"var(--fs-13)",color:"var(--fg)",cursor:"pointer"},...c,children:[h.jsx(Nn,{placeholder:r}),h.jsx(On,{children:h.jsx(Ut,{size:14,"aria-hidden":"true",style:{color:"var(--fg-muted)"}})}),i]})});d.forwardRef(function(t,n){const{className:o,children:r,position:s="popper",...i}=t;return h.jsx(jn,{children:h.jsxs(kn,{ref:n,position:s,sideOffset:4,className:pe("v8-select__content",o),style:{background:"var(--surface-popover)",border:"1px solid var(--border)",borderRadius:"var(--radius)",boxShadow:"var(--shadow-3)",padding:"var(--space-1)",minWidth:"var(--radix-select-trigger-width)",maxHeight:"var(--radix-select-content-available-height, 320px)",overflow:"hidden",zIndex:"var(--z-popover)"},...i,children:[h.jsx(Xn,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:20,color:"var(--fg-muted)"},children:h.jsx(jo,{size:14,"aria-hidden":"true"})}),h.jsx(Hn,{children:r}),h.jsx(Gn,{style:{display:"flex",alignItems:"center",justifyContent:"center",height:20,color:"var(--fg-muted)"},children:h.jsx(Ut,{size:14,"aria-hidden":"true"})})]})})});d.forwardRef(function(t,n){const{className:o,children:r,...s}=t;return h.jsxs(zn,{ref:n,className:pe("v8-select__item",o),style:{display:"flex",alignItems:"center",gap:"var(--space-2)",height:28,padding:"0 var(--space-3) 0 var(--space-6)",borderRadius:"var(--radius-sm)",fontSize:"var(--fs-13)",color:"var(--fg)",cursor:"pointer",outline:0,userSelect:"none",position:"relative"},...s,children:[h.jsx(Yn,{style:{position:"absolute",left:6,display:"inline-flex",alignItems:"center",color:"var(--accent)"},children:h.jsx(Mo,{size:14,"aria-hidden":"true"})}),h.jsx(Kn,{children:r})]})});var no=["PageUp","PageDown"],oo=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],ro={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},_e="Slider",[gt,ks,Ds]=tn(_e),[jt]=je(_e,[Ds]),[Ls,ke]=jt(_e),so=d.forwardRef((e,t)=>{const{name:n,min:o=0,max:r=100,step:s=1,orientation:i="horizontal",disabled:c=!1,minStepsBetweenThumbs:a=0,defaultValue:l=[o],value:p,onValueChange:u=()=>{},onValueCommit:m=()=>{},inverted:g=!1,form:x,...f}=e,y=d.useRef(new Set),v=d.useRef(0),w=d.useRef(!1),b=i==="horizontal"?Bs:Vs,[C,R]=d.useState(null),P=U(t,R),[_=[],H]=Fe({prop:p,defaultProp:l,onChange:A=>{var E;(E=[...y.current][v.current])==null||E.focus({preventScroll:!0,focusVisible:w.current}),w.current=!1,u(A)}}),N=d.useRef(_),B=d.useRef(_);d.useEffect(()=>{const A=x?C==null?void 0:C.ownerDocument.getElementById(x):C==null?void 0:C.closest("form");if(A instanceof HTMLFormElement){const I=()=>H(B.current);return A.addEventListener("reset",I),()=>A.removeEventListener("reset",I)}},[C,x,H]);function K(A){const I=Ws(_,A);k(A,I)}function O(A){k(A,v.current)}function D(){const A=N.current[v.current];_[v.current]!==A&&m(_)}function k(A,I,{commit:E}={commit:!1}){const M=bo(s),Y=He(Math.round((A-o)/s)*s+o,M),G=$e(Y,[o,r]);H((F=[])=>{const X=Fs(F,G,I);if(Us(X,a*s)){v.current=X.indexOf(G);const Z=String(X)!==String(F);return Z&&E&&m(X),Z?X:F}else return F})}return h.jsx(Ls,{scope:e.__scopeSlider,name:n,disabled:c,min:o,max:r,valueIndexToChangeRef:v,thumbs:y.current,values:_,orientation:i,form:x,children:h.jsx(gt.Provider,{scope:e.__scopeSlider,children:h.jsx(gt.Slot,{scope:e.__scopeSlider,children:h.jsx(b,{"aria-disabled":c,"data-disabled":c?"":void 0,...f,ref:P,onPointerDown:z(f.onPointerDown,()=>{c||(N.current=_,w.current=!1)}),min:o,max:r,inverted:g,onSlideStart:c?void 0:K,onSlideMove:c?void 0:O,onSlideEnd:c?void 0:D,onHomeKeyDown:()=>{c||(w.current=!0,k(o,0,{commit:!0}))},onEndKeyDown:()=>{c||(w.current=!0,k(r,_.length-1,{commit:!0}))},onStepKeyDown:({event:A,direction:I})=>{if(!c){w.current=!0;const Y=no.includes(A.key)||A.shiftKey&&oo.includes(A.key)?10:1,G=v.current,F=_[G],X=Ys(F,{min:o,step:s,direction:I,multiplier:Y});k(X,G,{commit:!0})}}})})})})});so.displayName=_e;var[io,co]=jt(_e,{startEdge:"left",endEdge:"right",size:"width",direction:1}),Bs=d.forwardRef((e,t)=>{const{min:n,max:o,dir:r,inverted:s,onSlideStart:i,onSlideMove:c,onSlideEnd:a,onStepKeyDown:l,...p}=e,[u,m]=d.useState(null),g=U(t,m),x=d.useRef(void 0),f=nn(r),y=f==="ltr",v=y&&!s||!y&&s;function w(S){const b=x.current||u.getBoundingClientRect(),C=[0,b.width],P=kt(C,v?[n,o]:[o,n]);return x.current=b,P(S-b.left)}return h.jsx(io,{scope:e.__scopeSlider,startEdge:v?"left":"right",endEdge:v?"right":"left",direction:v?1:-1,size:"width",children:h.jsx(ao,{dir:f,"data-orientation":"horizontal",...p,ref:g,style:{...p.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:S=>{const b=w(S.clientX);i==null||i(b)},onSlideMove:S=>{const b=w(S.clientX);c==null||c(b)},onSlideEnd:()=>{x.current=void 0,a==null||a()},onStepKeyDown:S=>{const C=ro[v?"from-left":"from-right"].includes(S.key);l==null||l({event:S,direction:C?-1:1})}})})}),Vs=d.forwardRef((e,t)=>{const{min:n,max:o,inverted:r,onSlideStart:s,onSlideMove:i,onSlideEnd:c,onStepKeyDown:a,...l}=e,p=d.useRef(null),u=U(t,p),m=d.useRef(void 0),g=!r;function x(f){const y=m.current||p.current.getBoundingClientRect(),v=[0,y.height],S=kt(v,g?[o,n]:[n,o]);return m.current=y,S(f-y.top)}return h.jsx(io,{scope:e.__scopeSlider,startEdge:g?"bottom":"top",endEdge:g?"top":"bottom",size:"height",direction:g?1:-1,children:h.jsx(ao,{"data-orientation":"vertical",...l,ref:u,style:{...l.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:f=>{const y=x(f.clientY);s==null||s(y)},onSlideMove:f=>{const y=x(f.clientY);i==null||i(y)},onSlideEnd:()=>{m.current=void 0,c==null||c()},onStepKeyDown:f=>{const v=ro[g?"from-bottom":"from-top"].includes(f.key);a==null||a({event:f,direction:v?-1:1})}})})}),ao=d.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:o,onSlideMove:r,onSlideEnd:s,onHomeKeyDown:i,onEndKeyDown:c,onStepKeyDown:a,...l}=e,p=ke(_e,n);return h.jsx(W.span,{...l,ref:t,onKeyDown:z(e.onKeyDown,u=>{u.key==="Home"?(i(u),u.preventDefault()):u.key==="End"?(c(u),u.preventDefault()):no.concat(oo).includes(u.key)&&(a(u),u.preventDefault())}),onPointerDown:z(e.onPointerDown,u=>{const m=u.target;m.setPointerCapture(u.pointerId),u.preventDefault(),p.thumbs.has(m)?m.focus({preventScroll:!0,focusVisible:!1}):o(u)}),onPointerMove:z(e.onPointerMove,u=>{u.target.hasPointerCapture(u.pointerId)&&r(u)}),onPointerUp:z(e.onPointerUp,u=>{const m=u.target;m.hasPointerCapture(u.pointerId)&&(m.releasePointerCapture(u.pointerId),s(u))})})}),lo="SliderTrack",uo=d.forwardRef((e,t)=>{const{__scopeSlider:n,...o}=e,r=ke(lo,n);return h.jsx(W.span,{"data-disabled":r.disabled?"":void 0,"data-orientation":r.orientation,...o,ref:t})});uo.displayName=lo;var vt="SliderRange",fo=d.forwardRef((e,t)=>{const{__scopeSlider:n,...o}=e,r=ke(vt,n),s=co(vt,n),i=d.useRef(null),c=U(t,i),a=r.values.length,l=r.values.map(m=>So(m,r.min,r.max)),p=a>1?Math.min(...l):0,u=100-Math.max(...l);return h.jsx(W.span,{"data-orientation":r.orientation,"data-disabled":r.disabled?"":void 0,...o,ref:c,style:{...e.style,[s.startEdge]:p+"%",[s.endEdge]:u+"%"}})});fo.displayName=vt;var po="SliderThumb",[Hs,ho]=jt(po),mo="SliderThumbProvider";function go(e){const{__scopeSlider:t,name:n,children:o,internal_do_not_use_render:r}=e,s=ke(mo,t),i=ks(t),[c,a]=d.useState(null),l=d.useMemo(()=>c?i().findIndex(y=>y.ref.current===c):-1,[i,c]),p=St(c),u=c?!!s.form||!!c.closest("form"):!0,m=s.values[l],g=n??(s.name?s.name+(s.values.length>1?"[]":""):void 0),x=m===void 0?0:So(m,s.min,s.max);d.useEffect(()=>{if(c)return s.thumbs.add(c),()=>{s.thumbs.delete(c)}},[c,s.thumbs]);const f={value:m,name:g,form:s.form,isFormControl:u,index:l,thumb:c,onThumbChange:a,percent:x,size:p};return h.jsx(Hs,{scope:t,...f,children:Xs(r)?r(f):o})}go.displayName=mo;var Ve="SliderThumbTrigger",vo=d.forwardRef((e,t)=>{const{__scopeSlider:n,...o}=e,r=ke(Ve,n),s=co(Ve,n),{index:i,value:c,percent:a,size:l,onThumbChange:p}=ho(Ve,n),u=U(t,p),m=$s(i,r.values.length),g=l==null?void 0:l[s.size],x=g?zs(g,a,s.direction):0;return h.jsx("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${a}% + ${x}px)`},children:h.jsx(gt.ItemSlot,{scope:n,children:h.jsx(W.span,{role:"slider","aria-label":e["aria-label"]||m,"aria-valuemin":r.min,"aria-valuenow":c,"aria-valuemax":r.max,"aria-orientation":r.orientation,"data-orientation":r.orientation,"data-disabled":r.disabled?"":void 0,tabIndex:r.disabled?void 0:0,...o,ref:u,style:c===void 0?{display:"none"}:e.style,onFocus:z(e.onFocus,()=>{r.valueIndexToChangeRef.current=i})})})})});vo.displayName=Ve;var xo=d.forwardRef((e,t)=>{const{__scopeSlider:n,name:o,...r}=e;return h.jsx(go,{__scopeSlider:n,name:o,internal_do_not_use_render:({index:s,isFormControl:i})=>h.jsxs(h.Fragment,{children:[h.jsx(vo,{...r,ref:t,__scopeSlider:n}),i?h.jsx(yo,{__scopeSlider:n},s):null]})})});xo.displayName=po;var wo="SliderBubbleInput",yo=d.forwardRef(({__scopeSlider:e,...t},n)=>{const{value:o,name:r,form:s}=ho(wo,e),i=d.useRef(null),c=U(i,n),a=yt(o);return d.useEffect(()=>{const l=i.current;if(!l)return;const p=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(p,"value").set;if(a!==o&&m){const g=new Event("input",{bubbles:!0});m.call(l,o),l.dispatchEvent(g)}},[a,o]),h.jsx(W.input,{style:{display:"none"},name:r,form:s,...t,ref:c,defaultValue:o})});yo.displayName=wo;function Fs(e=[],t,n){const o=[...e];return o[n]=t,o.sort((r,s)=>r-s)}function So(e,t,n){const s=100/(n-t)*(e-t);return $e(s,[0,100])}function $s(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Ws(e,t){if(e.length===1)return 0;const n=e.map(r=>Math.abs(r-t)),o=Math.min(...n);return n.indexOf(o)}function zs(e,t,n){const o=e/2,s=kt([0,50],[0,o]);return(o-s(t)*n)*n}function Ks(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Us(e,t){if(t>0){const n=Ks(e);return Math.min(...n)>=t}return!0}function kt(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const o=(t[1]-t[0])/(e[1]-e[0]);return t[0]+o*(n-e[0])}}function bo(e){if(!Number.isFinite(e))return 0;const t=e.toString();if(t.includes("e")){const[o,r]=t.split("e"),s=o.split(".")[1]||"",i=Number(r);return Math.max(0,s.length-i)}const n=t.split(".")[1];return n?n.length:0}function He(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}function Ys(e,{min:t,step:n,direction:o,multiplier:r}){const s=bo(n),i=(e-t)/n,c=Math.round(i),a=He(c*n+t,s)===He(e,s);let l;return a?l=c+r*o:o>0?l=Math.ceil(i):l=Math.floor(i),He(l*n+t,s)}function Xs(e){return typeof e=="function"}const ti=d.forwardRef(function(t,n){const{className:o,...r}=t;return h.jsxs(so,{ref:n,className:pe("v8-slider",o),style:{position:"relative",display:"flex",alignItems:"center",userSelect:"none",touchAction:"none",width:"100%",height:20},...r,children:[h.jsx(uo,{style:{background:"var(--surface-2)",position:"relative",flexGrow:1,borderRadius:"var(--radius-pill)",height:4},children:h.jsx(fo,{style:{position:"absolute",background:"var(--accent)",borderRadius:"var(--radius-pill)",height:"100%"}})}),(Array.isArray(t.value??t.defaultValue)?t.value??t.defaultValue??[]:[t.value??t.defaultValue??0]).map((s,i)=>h.jsx(xo,{"aria-label":t["aria-label"]??`Thumb ${i+1}`,style:{display:"block",width:14,height:14,background:"var(--fg)",border:"2px solid var(--accent)",borderRadius:"var(--radius-pill)",cursor:"grab",boxShadow:"var(--shadow-1)"}},i))]})}),ni=d.forwardRef(function(t,n){const{id:o,title:r,description:s,icon:i,children:c,headerActions:a,className:l,...p}=t;return h.jsxs("section",{ref:n,id:o,"aria-labelledby":`${o}-title`,className:pe("v8-settings-section",l),style:{padding:"var(--space-5) var(--space-6)",background:"var(--surface-1)",border:"1px solid var(--border)",borderRadius:"var(--radius-lg)"},...p,children:[h.jsxs("header",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:[h.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"var(--space-3)",minWidth:0},children:[i!==void 0&&h.jsx("span",{"aria-hidden":"true",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:"var(--radius-sm)",background:"color-mix(in oklch, var(--accent) 14%, transparent)",color:"var(--accent)",flexShrink:0},children:i}),h.jsxs("div",{style:{minWidth:0},children:[h.jsx("h2",{id:`${o}-title`,style:{fontSize:"var(--fs-15)",fontWeight:600,color:"var(--fg)",lineHeight:"var(--lh-snug)",margin:0},children:r}),s!==void 0&&h.jsx("p",{style:{fontSize:"var(--fs-13)",color:"var(--fg-muted)",margin:"4px 0 0 0",lineHeight:"var(--lh-snug)"},children:s})]})]}),a!==void 0&&h.jsx("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",flexShrink:0},children:a})]}),h.jsx("div",{className:"v8-settings-section__body",children:c})]})}),oi=d.forwardRef(function(t,n){const{id:o,label:r,description:s,control:i,disabled:c=!1,className:a,...l}=t,p=`${o}-label`;return h.jsxs("div",{ref:n,"data-disabled":c||void 0,"aria-disabled":c||void 0,className:pe("v8-settings-row",a),style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"var(--space-4)",padding:"var(--space-3) 0",borderBottom:"1px solid var(--border)",opacity:c?.5:1},...l,children:[h.jsxs("div",{id:p,style:{flex:1,minWidth:0},children:[h.jsx("span",{style:{display:"block",fontSize:"var(--fs-13)",fontWeight:500,color:"var(--fg)",cursor:c?"not-allowed":"default",lineHeight:"var(--lh-snug)"},children:r}),s!==void 0&&h.jsx("p",{style:{fontSize:"var(--fs-12)",color:"var(--fg-muted)",margin:"4px 0 0 0",lineHeight:"var(--lh-snug)"},children:s})]}),h.jsx("div",{role:"group","aria-labelledby":p,style:{flexShrink:0,alignSelf:"center"},children:i})]})});export{is as A,Zs as B,Mo as C,ss as R,ni as S,St as a,nn as b,tn as c,as as d,vn as e,cs as f,Qs as g,Ut as h,oi as i,ei as j,ti as k,Js as l,yt as u};
|