@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.
Files changed (489) hide show
  1. package/.claude/settings.local.json +8 -0
  2. package/bizar-dash/DESIGN.md +729 -969
  3. package/bizar-dash/GLYPH.md +418 -0
  4. package/bizar-dash/PLAN.md +1135 -0
  5. package/bizar-dash/dist/assets/ActivityFeed-BRBtQOHB.js +6 -0
  6. package/bizar-dash/dist/assets/ActivityFeed-BRBtQOHB.js.map +1 -0
  7. package/bizar-dash/dist/assets/ActivityView-CwqhxBfh.js +1 -0
  8. package/bizar-dash/dist/assets/ActivityView-CwqhxBfh.js.map +1 -0
  9. package/bizar-dash/dist/assets/AgentActivity-6MxU-a9F.js +1 -0
  10. package/bizar-dash/dist/assets/AgentActivity-6MxU-a9F.js.map +1 -0
  11. package/bizar-dash/dist/assets/AgentsView-BYrOFdwl.js +8 -0
  12. package/bizar-dash/dist/assets/AgentsView-BYrOFdwl.js.map +1 -0
  13. package/bizar-dash/dist/assets/Badge-Cd61wsBa.js +1 -0
  14. package/bizar-dash/dist/assets/Badge-Cd61wsBa.js.map +1 -0
  15. package/bizar-dash/dist/assets/Card-C_bvqXdQ.js +1 -0
  16. package/bizar-dash/dist/assets/Card-C_bvqXdQ.js.map +1 -0
  17. package/bizar-dash/dist/assets/EmptyState-BWQuKnk9.js +1 -0
  18. package/bizar-dash/dist/assets/EmptyState-BWQuKnk9.js.map +1 -0
  19. package/bizar-dash/dist/assets/GoalsView-Dok0yt9S.js +11 -0
  20. package/bizar-dash/dist/assets/GoalsView-Dok0yt9S.js.map +1 -0
  21. package/bizar-dash/dist/assets/Grid-C62gCPqt.js +1 -0
  22. package/bizar-dash/dist/assets/Grid-C62gCPqt.js.map +1 -0
  23. package/bizar-dash/dist/assets/KanbanCard-CtTKP6ZX.js +21 -0
  24. package/bizar-dash/dist/assets/KanbanCard-CtTKP6ZX.js.map +1 -0
  25. package/bizar-dash/dist/assets/LibrariesView-BcyBQXiY.js +67 -0
  26. package/bizar-dash/dist/assets/LibrariesView-BcyBQXiY.js.map +1 -0
  27. package/bizar-dash/dist/assets/MemoryView-49wR4u-y.js +13 -0
  28. package/bizar-dash/dist/assets/MemoryView-49wR4u-y.js.map +1 -0
  29. package/bizar-dash/dist/assets/OverviewView-BtQ_UWYj.js +1 -0
  30. package/bizar-dash/dist/assets/OverviewView-BtQ_UWYj.js.map +1 -0
  31. package/bizar-dash/dist/assets/ProgressBar-CpvDeq9F.js +1 -0
  32. package/bizar-dash/dist/assets/ProgressBar-CpvDeq9F.js.map +1 -0
  33. package/bizar-dash/dist/assets/SettingsRow-DmIe5OUu.js +30 -0
  34. package/bizar-dash/dist/assets/SettingsRow-DmIe5OUu.js.map +1 -0
  35. package/bizar-dash/dist/assets/SettingsView-D1KmGWbi.js +48 -0
  36. package/bizar-dash/dist/assets/SettingsView-D1KmGWbi.js.map +1 -0
  37. package/bizar-dash/dist/assets/StatTile-BkIP32gG.js +11 -0
  38. package/bizar-dash/dist/assets/StatTile-BkIP32gG.js.map +1 -0
  39. package/bizar-dash/dist/assets/TasksView-Cba3GJ42.js +1 -0
  40. package/bizar-dash/dist/assets/TasksView-Cba3GJ42.js.map +1 -0
  41. package/bizar-dash/dist/assets/ViewHeader-D6c2cw1b.js +6 -0
  42. package/bizar-dash/dist/assets/ViewHeader-D6c2cw1b.js.map +1 -0
  43. package/bizar-dash/dist/assets/brain-DeoXNDE2.js +6 -0
  44. package/bizar-dash/dist/assets/brain-DeoXNDE2.js.map +1 -0
  45. package/bizar-dash/dist/assets/calendar-DRlQkGJc.js +6 -0
  46. package/bizar-dash/dist/assets/calendar-DRlQkGJc.js.map +1 -0
  47. package/bizar-dash/dist/assets/circle-check-DmYQ3vGp.js +6 -0
  48. package/bizar-dash/dist/assets/circle-check-DmYQ3vGp.js.map +1 -0
  49. package/bizar-dash/dist/assets/cmdk-BwN8hcKQ.js +80 -0
  50. package/bizar-dash/dist/assets/cmdk-BwN8hcKQ.js.map +1 -0
  51. package/bizar-dash/dist/assets/dnd-kit-DR2Qzzxk.js +5 -0
  52. package/bizar-dash/dist/assets/dnd-kit-DR2Qzzxk.js.map +1 -0
  53. package/bizar-dash/dist/assets/git-merge-OoqBKQer.js +6 -0
  54. package/bizar-dash/dist/assets/git-merge-OoqBKQer.js.map +1 -0
  55. package/bizar-dash/dist/assets/git-pull-request-CXBQTR2f.js +6 -0
  56. package/bizar-dash/dist/assets/git-pull-request-CXBQTR2f.js.map +1 -0
  57. package/bizar-dash/dist/assets/main-COdgjqbZ.css +1 -0
  58. package/bizar-dash/dist/assets/main-Cw6gybzS.js +109 -0
  59. package/bizar-dash/dist/assets/main-Cw6gybzS.js.map +1 -0
  60. package/bizar-dash/dist/assets/message-square-DUTeIQAR.js +6 -0
  61. package/bizar-dash/dist/assets/message-square-DUTeIQAR.js.map +1 -0
  62. package/bizar-dash/dist/assets/minus-CrStJTZ7.js +6 -0
  63. package/bizar-dash/dist/assets/minus-CrStJTZ7.js.map +1 -0
  64. package/bizar-dash/dist/assets/wrench-BJ1WIC4u.js +6 -0
  65. package/bizar-dash/dist/assets/wrench-BJ1WIC4u.js.map +1 -0
  66. package/bizar-dash/dist/{mobile.html → v8.html} +6 -9
  67. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  68. package/bizar-dash/src/server/server.mjs +1 -57
  69. package/bizar-dash/src/web/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  70. package/bizar-dash/src/web/v8/App.tsx +188 -0
  71. package/bizar-dash/src/web/v8/__tests__/App.test.tsx +102 -0
  72. package/bizar-dash/src/web/v8/__tests__/AppShell.test.tsx +79 -0
  73. package/bizar-dash/src/web/v8/__tests__/PageSkeleton.test.tsx +12 -0
  74. package/bizar-dash/src/web/v8/__tests__/SettingsView.test.tsx +84 -0
  75. package/bizar-dash/src/web/v8/__tests__/Sidebar.test.tsx +95 -0
  76. package/bizar-dash/src/web/v8/__tests__/activity.test.tsx +63 -0
  77. package/bizar-dash/src/web/v8/__tests__/agents.test.tsx +90 -0
  78. package/bizar-dash/src/web/v8/__tests__/controls.test.tsx +135 -0
  79. package/bizar-dash/src/web/v8/__tests__/cx.test.ts +25 -0
  80. package/bizar-dash/src/web/v8/__tests__/data.test.tsx +293 -0
  81. package/bizar-dash/src/web/v8/__tests__/feedback.test.tsx +213 -0
  82. package/bizar-dash/src/web/v8/__tests__/goals.test.tsx +105 -0
  83. package/bizar-dash/src/web/v8/__tests__/kanban.test.tsx +176 -0
  84. package/bizar-dash/src/web/v8/__tests__/libraries.test.tsx +70 -0
  85. package/bizar-dash/src/web/v8/__tests__/memory.test.tsx +60 -0
  86. package/bizar-dash/src/web/v8/__tests__/navigation.test.tsx +137 -0
  87. package/bizar-dash/src/web/v8/__tests__/settings.test.tsx +104 -0
  88. package/bizar-dash/src/web/v8/__tests__/theme.test.tsx +98 -0
  89. package/bizar-dash/src/web/v8/__tests__/views.test.tsx +112 -0
  90. package/bizar-dash/src/web/v8/main.tsx +28 -0
  91. package/bizar-dash/src/web/v8/shell/AppShell.tsx +90 -0
  92. package/bizar-dash/src/web/v8/shell/PageSkeleton.tsx +29 -0
  93. package/bizar-dash/src/web/v8/shell/Sidebar.tsx +361 -0
  94. package/bizar-dash/src/web/v8/shell/StatusBar.tsx +63 -0
  95. package/bizar-dash/src/web/v8/shell/Topbar.tsx +113 -0
  96. package/bizar-dash/src/web/v8/shell/index.ts +15 -0
  97. package/bizar-dash/src/web/v8/ui/activity/ActivityFeed.tsx +137 -0
  98. package/bizar-dash/src/web/v8/ui/agents/AgentActivity.tsx +101 -0
  99. package/bizar-dash/src/web/v8/ui/agents/AgentCard.tsx +158 -0
  100. package/bizar-dash/src/web/v8/ui/controls/Button.tsx +141 -0
  101. package/bizar-dash/src/web/v8/ui/controls/ButtonGroup.tsx +32 -0
  102. package/bizar-dash/src/web/v8/ui/controls/Checkbox.tsx +49 -0
  103. package/bizar-dash/src/web/v8/ui/controls/Field.tsx +78 -0
  104. package/bizar-dash/src/web/v8/ui/controls/Form.tsx +23 -0
  105. package/bizar-dash/src/web/v8/ui/controls/IconButton.tsx +112 -0
  106. package/bizar-dash/src/web/v8/ui/controls/Input.tsx +94 -0
  107. package/bizar-dash/src/web/v8/ui/controls/RadioGroup.tsx +74 -0
  108. package/bizar-dash/src/web/v8/ui/controls/Select.tsx +171 -0
  109. package/bizar-dash/src/web/v8/ui/controls/Slider.tsx +68 -0
  110. package/bizar-dash/src/web/v8/ui/controls/Switch.tsx +56 -0
  111. package/bizar-dash/src/web/v8/ui/controls/Textarea.tsx +64 -0
  112. package/bizar-dash/src/web/v8/ui/controls/Toggle.tsx +36 -0
  113. package/bizar-dash/src/web/v8/ui/controls/ToggleGroup.tsx +85 -0
  114. package/bizar-dash/src/web/v8/ui/data/Accordion.tsx +134 -0
  115. package/bizar-dash/src/web/v8/ui/data/Avatar.tsx +175 -0
  116. package/bizar-dash/src/web/v8/ui/data/Badge.tsx +93 -0
  117. package/bizar-dash/src/web/v8/ui/data/BarList.tsx +101 -0
  118. package/bizar-dash/src/web/v8/ui/data/Card.tsx +140 -0
  119. package/bizar-dash/src/web/v8/ui/data/Chip.tsx +96 -0
  120. package/bizar-dash/src/web/v8/ui/data/Kbd.tsx +42 -0
  121. package/bizar-dash/src/web/v8/ui/data/ProgressBar.tsx +93 -0
  122. package/bizar-dash/src/web/v8/ui/data/Sparkline.tsx +98 -0
  123. package/bizar-dash/src/web/v8/ui/data/StatTile.tsx +150 -0
  124. package/bizar-dash/src/web/v8/ui/data/Table.tsx +170 -0
  125. package/bizar-dash/src/web/v8/ui/data/Timeline.tsx +130 -0
  126. package/bizar-dash/src/web/v8/ui/data/ViewHeader.tsx +122 -0
  127. package/bizar-dash/src/web/v8/ui/feedback/Alert.tsx +95 -0
  128. package/bizar-dash/src/web/v8/ui/feedback/Banner.tsx +39 -0
  129. package/bizar-dash/src/web/v8/ui/feedback/ContextMenu.tsx +143 -0
  130. package/bizar-dash/src/web/v8/ui/feedback/Dialog.tsx +149 -0
  131. package/bizar-dash/src/web/v8/ui/feedback/Drawer.tsx +8 -0
  132. package/bizar-dash/src/web/v8/ui/feedback/DropdownMenu.tsx +231 -0
  133. package/bizar-dash/src/web/v8/ui/feedback/EmptyState.tsx +48 -0
  134. package/bizar-dash/src/web/v8/ui/feedback/Popover.tsx +56 -0
  135. package/bizar-dash/src/web/v8/ui/feedback/Sheet.tsx +103 -0
  136. package/bizar-dash/src/web/v8/ui/feedback/Skeleton.tsx +67 -0
  137. package/bizar-dash/src/web/v8/ui/feedback/Spinner.tsx +30 -0
  138. package/bizar-dash/src/web/v8/ui/feedback/Toast.tsx +66 -0
  139. package/bizar-dash/src/web/v8/ui/feedback/Tooltip.tsx +89 -0
  140. package/bizar-dash/src/web/v8/ui/goals/GoalCard.tsx +176 -0
  141. package/bizar-dash/src/web/v8/ui/goals/KeyResult.tsx +115 -0
  142. package/bizar-dash/src/web/v8/ui/index.ts +322 -0
  143. package/bizar-dash/src/web/v8/ui/kanban/KanbanBoard.tsx +80 -0
  144. package/bizar-dash/src/web/v8/ui/kanban/KanbanCard.tsx +247 -0
  145. package/bizar-dash/src/web/v8/ui/kanban/KanbanColumn.tsx +181 -0
  146. package/bizar-dash/src/web/v8/ui/kanban/KanbanContextMenu.tsx +122 -0
  147. package/bizar-dash/src/web/v8/ui/kanban/KanbanQuickAdd.tsx +141 -0
  148. package/bizar-dash/src/web/v8/ui/libraries/LibraryGrid.tsx +30 -0
  149. package/bizar-dash/src/web/v8/ui/libraries/LibraryItem.tsx +161 -0
  150. package/bizar-dash/src/web/v8/ui/memory/MemoryVault.tsx +144 -0
  151. package/bizar-dash/src/web/v8/ui/navigation/CommandPalette.tsx +224 -0
  152. package/bizar-dash/src/web/v8/ui/navigation/NavLink.tsx +81 -0
  153. package/bizar-dash/src/web/v8/ui/navigation/Pagination.tsx +164 -0
  154. package/bizar-dash/src/web/v8/ui/navigation/Tabs.tsx +128 -0
  155. package/bizar-dash/src/web/v8/ui/navigation/useCommandPaletteHotkey.test.ts +79 -0
  156. package/bizar-dash/src/web/v8/ui/primitives/Box.tsx +144 -0
  157. package/bizar-dash/src/web/v8/ui/primitives/Center.tsx +40 -0
  158. package/bizar-dash/src/web/v8/ui/primitives/Cluster.tsx +67 -0
  159. package/bizar-dash/src/web/v8/ui/primitives/Grid.tsx +104 -0
  160. package/bizar-dash/src/web/v8/ui/primitives/Inline.tsx +77 -0
  161. package/bizar-dash/src/web/v8/ui/primitives/Portal.tsx +33 -0
  162. package/bizar-dash/src/web/v8/ui/primitives/ScrollArea.tsx +62 -0
  163. package/bizar-dash/src/web/v8/ui/primitives/Separator.tsx +42 -0
  164. package/bizar-dash/src/web/v8/ui/primitives/Stack.tsx +73 -0
  165. package/bizar-dash/src/web/v8/ui/primitives/VisuallyHidden.tsx +49 -0
  166. package/bizar-dash/src/web/v8/ui/settings/SettingsNav.tsx +91 -0
  167. package/bizar-dash/src/web/v8/ui/settings/SettingsRow.tsx +88 -0
  168. package/bizar-dash/src/web/v8/ui/settings/SettingsSection.tsx +109 -0
  169. package/bizar-dash/src/web/v8/ui/styles/globals.css +220 -0
  170. package/bizar-dash/src/web/v8/ui/styles/reset.css +57 -0
  171. package/bizar-dash/src/web/v8/ui/styles/tokens.css +217 -0
  172. package/bizar-dash/src/web/v8/ui/theme/DensityProvider.test.tsx +74 -0
  173. package/bizar-dash/src/web/v8/ui/theme/DensityProvider.tsx +66 -0
  174. package/bizar-dash/src/web/v8/ui/theme/ThemeProvider.test.tsx +86 -0
  175. package/bizar-dash/src/web/v8/ui/theme/ThemeProvider.tsx +94 -0
  176. package/bizar-dash/src/web/v8/ui/theme/ThemeToggle.tsx +88 -0
  177. package/bizar-dash/src/web/v8/ui/theme/useDensity.ts +15 -0
  178. package/bizar-dash/src/web/v8/ui/theme/useTheme.ts +16 -0
  179. package/bizar-dash/src/web/v8/ui/utils/cx.ts +19 -0
  180. package/bizar-dash/src/web/v8/views/Activity/ActivityView.tsx +33 -0
  181. package/bizar-dash/src/web/v8/views/Agents/AgentsView.tsx +108 -0
  182. package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.test.tsx +142 -0
  183. package/bizar-dash/src/web/v8/views/CommandPalette/AppCommandPalette.tsx +144 -0
  184. package/bizar-dash/src/web/v8/views/Goals/GoalsView.tsx +84 -0
  185. package/bizar-dash/src/web/v8/views/Libraries/LibrariesView.tsx +41 -0
  186. package/bizar-dash/src/web/v8/views/Memory/MemoryView.tsx +61 -0
  187. package/bizar-dash/src/web/v8/views/Overview/OverviewView.tsx +92 -0
  188. package/bizar-dash/src/web/v8/views/Router.tsx +96 -0
  189. package/bizar-dash/src/web/v8/views/Settings/SettingsView.tsx +305 -0
  190. package/bizar-dash/src/web/v8/views/Tasks/CommandPalettePlaceholder.tsx +106 -0
  191. package/bizar-dash/src/web/v8/views/Tasks/TasksKanbanPlaceholder.tsx +62 -0
  192. package/bizar-dash/src/web/v8/views/Tasks/TasksView.tsx +74 -0
  193. package/bizar-dash/src/web/v8/vite-env.d.ts +15 -0
  194. package/bizar-dash/src/web/{mobile.html → v8.html} +4 -7
  195. package/bizar-dash/tests/setup.ts +26 -0
  196. package/bizar-dash/vite.config.ts +26 -2
  197. package/bizar-dash/vitest.config.ts +5 -3
  198. package/package.json +36 -3
  199. package/bizar-dash/dist/assets/EnvVarsSection-BfhAz3ax.js +0 -114
  200. package/bizar-dash/dist/assets/EnvVarsSection-BfhAz3ax.js.map +0 -1
  201. package/bizar-dash/dist/assets/MobileChat-DLWdv6tQ.js +0 -1
  202. package/bizar-dash/dist/assets/MobileChat-DLWdv6tQ.js.map +0 -1
  203. package/bizar-dash/dist/assets/MobileSettings-Bxv62uPY.js +0 -1
  204. package/bizar-dash/dist/assets/MobileSettings-Bxv62uPY.js.map +0 -1
  205. package/bizar-dash/dist/assets/Toast-ATSAmbdi.js +0 -26
  206. package/bizar-dash/dist/assets/Toast-ATSAmbdi.js.map +0 -1
  207. package/bizar-dash/dist/assets/__vite-browser-external-BIHI7g3E.js +0 -1
  208. package/bizar-dash/dist/assets/__vite-browser-external-BIHI7g3E.js.map +0 -1
  209. package/bizar-dash/dist/assets/main-CJAtrosO.css +0 -1
  210. package/bizar-dash/dist/assets/main-DKKj9dsq.js +0 -430
  211. package/bizar-dash/dist/assets/main-DKKj9dsq.js.map +0 -1
  212. package/bizar-dash/dist/assets/mobile-C_naUN91.js +0 -1
  213. package/bizar-dash/dist/assets/mobile-C_naUN91.js.map +0 -1
  214. package/bizar-dash/dist/assets/mobile-layout-BWLtwtfQ.css +0 -1
  215. package/bizar-dash/dist/assets/mobile-layout-GZ3bE8L6.js +0 -211
  216. package/bizar-dash/dist/assets/mobile-layout-GZ3bE8L6.js.map +0 -1
  217. package/bizar-dash/dist/assets/useSlashCommands-BOwD7lNb.js +0 -65
  218. package/bizar-dash/dist/assets/useSlashCommands-BOwD7lNb.js.map +0 -1
  219. package/bizar-dash/dist/index.html +0 -43
  220. package/bizar-dash/src/web/App.tsx +0 -915
  221. package/bizar-dash/src/web/MobileApp.tsx +0 -414
  222. package/bizar-dash/src/web/components/ArtifactCreateDialog.tsx +0 -95
  223. package/bizar-dash/src/web/components/ArtifactListDialog.tsx +0 -55
  224. package/bizar-dash/src/web/components/ArtifactViewer.tsx +0 -144
  225. package/bizar-dash/src/web/components/AuditDialog.tsx +0 -79
  226. package/bizar-dash/src/web/components/AutosaveField.tsx +0 -50
  227. package/bizar-dash/src/web/components/BackupRestore.tsx +0 -330
  228. package/bizar-dash/src/web/components/BgStatusBadge.tsx +0 -32
  229. package/bizar-dash/src/web/components/Button.tsx +0 -56
  230. package/bizar-dash/src/web/components/CanvasContextMenu.tsx +0 -68
  231. package/bizar-dash/src/web/components/Card.tsx +0 -40
  232. package/bizar-dash/src/web/components/CollapsibleSection.tsx +0 -72
  233. package/bizar-dash/src/web/components/CommandDialog.tsx +0 -66
  234. package/bizar-dash/src/web/components/DoctorPanel.tsx +0 -160
  235. package/bizar-dash/src/web/components/EmptyState.tsx +0 -30
  236. package/bizar-dash/src/web/components/EnvVarManager.tsx +0 -430
  237. package/bizar-dash/src/web/components/EvalDiff.tsx +0 -157
  238. package/bizar-dash/src/web/components/EvalExportButton.tsx +0 -27
  239. package/bizar-dash/src/web/components/EvalRunCard.tsx +0 -78
  240. package/bizar-dash/src/web/components/FileBrowser.tsx +0 -633
  241. package/bizar-dash/src/web/components/HeadroomSettings.tsx +0 -418
  242. package/bizar-dash/src/web/components/HeadroomStatus.tsx +0 -158
  243. package/bizar-dash/src/web/components/HelpDialog.tsx +0 -55
  244. package/bizar-dash/src/web/components/InviteDialog.tsx +0 -205
  245. package/bizar-dash/src/web/components/KillConfirmDialog.tsx +0 -88
  246. package/bizar-dash/src/web/components/MobileBottomNav.tsx +0 -38
  247. package/bizar-dash/src/web/components/MobileDrawer.tsx +0 -68
  248. package/bizar-dash/src/web/components/MobileHeader.tsx +0 -50
  249. package/bizar-dash/src/web/components/MobileLayout.tsx +0 -63
  250. package/bizar-dash/src/web/components/Modal.tsx +0 -215
  251. package/bizar-dash/src/web/components/Notifications.tsx +0 -242
  252. package/bizar-dash/src/web/components/ScheduleTemplateCard.tsx +0 -72
  253. package/bizar-dash/src/web/components/ScreenshotCapture.tsx +0 -138
  254. package/bizar-dash/src/web/components/ScreenshotOCR.tsx +0 -42
  255. package/bizar-dash/src/web/components/SearchModal.tsx +0 -227
  256. package/bizar-dash/src/web/components/SettingsNav.tsx +0 -117
  257. package/bizar-dash/src/web/components/SettingsSearch.tsx +0 -328
  258. package/bizar-dash/src/web/components/Sidebar.tsx +0 -89
  259. package/bizar-dash/src/web/components/Spinner.tsx +0 -19
  260. package/bizar-dash/src/web/components/StatusBadge.tsx +0 -56
  261. package/bizar-dash/src/web/components/Tag.tsx +0 -41
  262. package/bizar-dash/src/web/components/TailscaleSettings.tsx +0 -161
  263. package/bizar-dash/src/web/components/TaskCard.tsx +0 -69
  264. package/bizar-dash/src/web/components/TaskCreateSheet.tsx +0 -76
  265. package/bizar-dash/src/web/components/Toast.tsx +0 -150
  266. package/bizar-dash/src/web/components/Toggle.tsx +0 -31
  267. package/bizar-dash/src/web/components/Topbar.tsx +0 -455
  268. package/bizar-dash/src/web/components/UsageChart.tsx +0 -250
  269. package/bizar-dash/src/web/components/UsageTable.tsx +0 -90
  270. package/bizar-dash/src/web/components/VirtualList.tsx +0 -53
  271. package/bizar-dash/src/web/components/VisualPlanDialog.tsx +0 -58
  272. package/bizar-dash/src/web/components/VoiceNotesPanel.tsx +0 -211
  273. package/bizar-dash/src/web/components/VoiceRecorder.tsx +0 -105
  274. package/bizar-dash/src/web/components/WorkspaceSelector.tsx +0 -158
  275. package/bizar-dash/src/web/components/agents/CommunicationLog.tsx +0 -126
  276. package/bizar-dash/src/web/components/agents/DependencyGraph.tsx +0 -163
  277. package/bizar-dash/src/web/components/agents/QualityGates.tsx +0 -123
  278. package/bizar-dash/src/web/components/agents/RealTimeEventLog.tsx +0 -127
  279. package/bizar-dash/src/web/components/agents/RoutingDecisions.test.tsx +0 -148
  280. package/bizar-dash/src/web/components/agents/RoutingDecisions.tsx +0 -160
  281. package/bizar-dash/src/web/components/background/AttachButton.tsx +0 -96
  282. package/bizar-dash/src/web/components/background/TmuxAttachCard.tsx +0 -122
  283. package/bizar-dash/src/web/components/chat/AgentChip.tsx +0 -68
  284. package/bizar-dash/src/web/components/chat/AgentNode.tsx +0 -127
  285. package/bizar-dash/src/web/components/chat/AgentTree.tsx +0 -80
  286. package/bizar-dash/src/web/components/chat/ChatBubble.tsx +0 -60
  287. package/bizar-dash/src/web/components/chat/ChatComposer.tsx +0 -72
  288. package/bizar-dash/src/web/components/chat/ChatInfoPanel.tsx +0 -370
  289. package/bizar-dash/src/web/components/chat/ChatRail.tsx +0 -387
  290. package/bizar-dash/src/web/components/chat/ChatThread.tsx +0 -127
  291. package/bizar-dash/src/web/components/chat/ChatTopBar.tsx +0 -50
  292. package/bizar-dash/src/web/components/chat/Composer.tsx +0 -166
  293. package/bizar-dash/src/web/components/chat/ConfirmModal.tsx +0 -54
  294. package/bizar-dash/src/web/components/chat/EmptyState.tsx +0 -21
  295. package/bizar-dash/src/web/components/chat/FirstRunGreeting.tsx +0 -18
  296. package/bizar-dash/src/web/components/chat/FloatingComposer.tsx +0 -38
  297. package/bizar-dash/src/web/components/chat/InfoPanel.tsx +0 -184
  298. package/bizar-dash/src/web/components/chat/JumpToLatest.tsx +0 -58
  299. package/bizar-dash/src/web/components/chat/LoadingSkeleton.tsx +0 -19
  300. package/bizar-dash/src/web/components/chat/MessageBlock.tsx +0 -260
  301. package/bizar-dash/src/web/components/chat/MessageBubble.tsx +0 -60
  302. package/bizar-dash/src/web/components/chat/SessionList.tsx +0 -163
  303. package/bizar-dash/src/web/components/chat/SessionRowMenu.tsx +0 -206
  304. package/bizar-dash/src/web/components/chat/StreamingIndicator.tsx +0 -37
  305. package/bizar-dash/src/web/components/chat/SuggestionCards.tsx +0 -55
  306. package/bizar-dash/src/web/components/chat/WelcomeScreen.tsx +0 -36
  307. package/bizar-dash/src/web/components/chat/_legacy.ts +0 -30
  308. package/bizar-dash/src/web/components/chat/index.ts +0 -31
  309. package/bizar-dash/src/web/components/chat/useAutoGrowTextarea.ts +0 -18
  310. package/bizar-dash/src/web/components/chat/useChat.ts +0 -1190
  311. package/bizar-dash/src/web/components/chat/useSlashCommands.ts +0 -47
  312. package/bizar-dash/src/web/components/goals/GoalInput.tsx +0 -86
  313. package/bizar-dash/src/web/components/goals/PlanVisualization.tsx +0 -111
  314. package/bizar-dash/src/web/components/tasks/BacklogPanel.css +0 -109
  315. package/bizar-dash/src/web/components/tasks/BacklogPanel.tsx +0 -209
  316. package/bizar-dash/src/web/hooks/useAutosave.ts +0 -107
  317. package/bizar-dash/src/web/hooks/useI18n.ts +0 -13
  318. package/bizar-dash/src/web/index.html +0 -37
  319. package/bizar-dash/src/web/lib/api.ts +0 -237
  320. package/bizar-dash/src/web/lib/goapPlanner.ts +0 -614
  321. package/bizar-dash/src/web/lib/i18n.ts +0 -25
  322. package/bizar-dash/src/web/lib/logger.ts +0 -30
  323. package/bizar-dash/src/web/lib/markdown.tsx +0 -59
  324. package/bizar-dash/src/web/lib/search.ts +0 -115
  325. package/bizar-dash/src/web/lib/types.ts +0 -894
  326. package/bizar-dash/src/web/lib/utils.ts +0 -114
  327. package/bizar-dash/src/web/lib/ws.ts +0 -177
  328. package/bizar-dash/src/web/locales/en.json +0 -52
  329. package/bizar-dash/src/web/main.tsx +0 -43
  330. package/bizar-dash/src/web/mobile/MobileApp.tsx +0 -309
  331. package/bizar-dash/src/web/mobile/MobileBottomNav.tsx +0 -38
  332. package/bizar-dash/src/web/mobile/MobileChat.tsx +0 -138
  333. package/bizar-dash/src/web/mobile/MobileDoctor.tsx +0 -80
  334. package/bizar-dash/src/web/mobile/MobileEval.tsx +0 -167
  335. package/bizar-dash/src/web/mobile/MobileMemory.tsx +0 -108
  336. package/bizar-dash/src/web/mobile/MobileOverview.tsx +0 -213
  337. package/bizar-dash/src/web/mobile/MobileSettings.tsx +0 -251
  338. package/bizar-dash/src/web/mobile/MobileTasks.tsx +0 -94
  339. package/bizar-dash/src/web/mobile/MobileTopbar.tsx +0 -115
  340. package/bizar-dash/src/web/mobile/components/MobileBottomSheet.tsx +0 -182
  341. package/bizar-dash/src/web/mobile/components/MobileListItem.tsx +0 -64
  342. package/bizar-dash/src/web/mobile/components/MobileModal.tsx +0 -123
  343. package/bizar-dash/src/web/mobile/views/MobileActivity.tsx +0 -273
  344. package/bizar-dash/src/web/mobile/views/MobileAgents.tsx +0 -374
  345. package/bizar-dash/src/web/mobile/views/MobileArtifactCanvas.tsx +0 -439
  346. package/bizar-dash/src/web/mobile/views/MobileArtifacts.tsx +0 -143
  347. package/bizar-dash/src/web/mobile/views/MobileChat.tsx +0 -257
  348. package/bizar-dash/src/web/mobile/views/MobileConfig.tsx +0 -175
  349. package/bizar-dash/src/web/mobile/views/MobileHistory.tsx +0 -191
  350. package/bizar-dash/src/web/mobile/views/MobileMods.tsx +0 -149
  351. package/bizar-dash/src/web/mobile/views/MobileMore.tsx +0 -121
  352. package/bizar-dash/src/web/mobile/views/MobileNotifications.tsx +0 -137
  353. package/bizar-dash/src/web/mobile/views/MobilePlans.tsx +0 -26
  354. package/bizar-dash/src/web/mobile/views/MobileSchedules.tsx +0 -685
  355. package/bizar-dash/src/web/mobile/views/MobileSearchModal.tsx +0 -172
  356. package/bizar-dash/src/web/mobile/views/MobileSettings.tsx +0 -363
  357. package/bizar-dash/src/web/mobile/views/MobileSkills.tsx +0 -153
  358. package/bizar-dash/src/web/mobile/views/MobileTasks.tsx +0 -564
  359. package/bizar-dash/src/web/mobile/views/QrCodePanel.tsx +0 -69
  360. package/bizar-dash/src/web/mobile.tsx +0 -14
  361. package/bizar-dash/src/web/styles/agents-redesign.css +0 -311
  362. package/bizar-dash/src/web/styles/chat.css +0 -1740
  363. package/bizar-dash/src/web/styles/glyphs.css +0 -960
  364. package/bizar-dash/src/web/styles/main.css +0 -10389
  365. package/bizar-dash/src/web/styles/memory.css +0 -1177
  366. package/bizar-dash/src/web/styles/minimax-usage.css +0 -842
  367. package/bizar-dash/src/web/styles/mobile-chat.css +0 -5
  368. package/bizar-dash/src/web/styles/mobile-layout.css +0 -233
  369. package/bizar-dash/src/web/styles/mobile.css +0 -2181
  370. package/bizar-dash/src/web/styles/settings.css +0 -775
  371. package/bizar-dash/src/web/styles/skills.css +0 -302
  372. package/bizar-dash/src/web/styles/tasks-redesign.css +0 -253
  373. package/bizar-dash/src/web/styles/tasks.css +0 -605
  374. package/bizar-dash/src/web/ui/controls/Button.tsx +0 -77
  375. package/bizar-dash/src/web/ui/controls/Checkbox.tsx +0 -95
  376. package/bizar-dash/src/web/ui/controls/IconButton.tsx +0 -66
  377. package/bizar-dash/src/web/ui/controls/Kbd.tsx +0 -24
  378. package/bizar-dash/src/web/ui/controls/NumberInput.tsx +0 -77
  379. package/bizar-dash/src/web/ui/controls/RadioGroup.tsx +0 -109
  380. package/bizar-dash/src/web/ui/controls/SearchInput.tsx +0 -91
  381. package/bizar-dash/src/web/ui/controls/Select.tsx +0 -92
  382. package/bizar-dash/src/web/ui/controls/Slider.tsx +0 -70
  383. package/bizar-dash/src/web/ui/controls/TextInput.tsx +0 -67
  384. package/bizar-dash/src/web/ui/controls/Textarea.tsx +0 -56
  385. package/bizar-dash/src/web/ui/controls/Toggle.tsx +0 -79
  386. package/bizar-dash/src/web/ui/controls/controls.css +0 -476
  387. package/bizar-dash/src/web/ui/controls/index.ts +0 -35
  388. package/bizar-dash/src/web/ui/data/BarChart.tsx +0 -60
  389. package/bizar-dash/src/web/ui/data/DataTable.tsx +0 -216
  390. package/bizar-dash/src/web/ui/data/EmptyState.tsx +0 -60
  391. package/bizar-dash/src/web/ui/data/ErrorState.tsx +0 -56
  392. package/bizar-dash/src/web/ui/data/KeyValueList.tsx +0 -106
  393. package/bizar-dash/src/web/ui/data/LoadingState.tsx +0 -65
  394. package/bizar-dash/src/web/ui/data/Sparkline.tsx +0 -87
  395. package/bizar-dash/src/web/ui/data/StatTile.tsx +0 -87
  396. package/bizar-dash/src/web/ui/data/data.css +0 -540
  397. package/bizar-dash/src/web/ui/data/index.ts +0 -31
  398. package/bizar-dash/src/web/ui/feedback/Badge.tsx +0 -49
  399. package/bizar-dash/src/web/ui/feedback/Dialog.tsx +0 -209
  400. package/bizar-dash/src/web/ui/feedback/ProgressBar.tsx +0 -69
  401. package/bizar-dash/src/web/ui/feedback/StatusDot.tsx +0 -50
  402. package/bizar-dash/src/web/ui/feedback/Toast.tsx +0 -200
  403. package/bizar-dash/src/web/ui/feedback/Tooltip.tsx +0 -126
  404. package/bizar-dash/src/web/ui/feedback/feedback.css +0 -314
  405. package/bizar-dash/src/web/ui/feedback/index.ts +0 -43
  406. package/bizar-dash/src/web/ui/index.ts +0 -57
  407. package/bizar-dash/src/web/ui/layout/AppShell.tsx +0 -51
  408. package/bizar-dash/src/web/ui/layout/Breadcrumbs.tsx +0 -97
  409. package/bizar-dash/src/web/ui/layout/Panel.tsx +0 -73
  410. package/bizar-dash/src/web/ui/layout/PanelHeader.tsx +0 -39
  411. package/bizar-dash/src/web/ui/layout/Sidebar.tsx +0 -131
  412. package/bizar-dash/src/web/ui/layout/Tabs.tsx +0 -133
  413. package/bizar-dash/src/web/ui/layout/Topbar.tsx +0 -42
  414. package/bizar-dash/src/web/ui/layout/ViewHeader.tsx +0 -48
  415. package/bizar-dash/src/web/ui/layout/index.ts +0 -34
  416. package/bizar-dash/src/web/ui/layout/layout.css +0 -464
  417. package/bizar-dash/src/web/ui/navigation/CommandPalette.tsx +0 -199
  418. package/bizar-dash/src/web/ui/navigation/NavGroup.tsx +0 -95
  419. package/bizar-dash/src/web/ui/navigation/NavLink.tsx +0 -93
  420. package/bizar-dash/src/web/ui/navigation/index.ts +0 -17
  421. package/bizar-dash/src/web/ui/navigation/navigation.css +0 -343
  422. package/bizar-dash/src/web/ui/primitives/Box.tsx +0 -91
  423. package/bizar-dash/src/web/ui/primitives/Grid.tsx +0 -49
  424. package/bizar-dash/src/web/ui/primitives/Inline.tsx +0 -55
  425. package/bizar-dash/src/web/ui/primitives/Separator.tsx +0 -46
  426. package/bizar-dash/src/web/ui/primitives/Stack.tsx +0 -54
  427. package/bizar-dash/src/web/ui/primitives/VisuallyHidden.tsx +0 -26
  428. package/bizar-dash/src/web/ui/primitives/index.ts +0 -23
  429. package/bizar-dash/src/web/ui/primitives/primitives.css +0 -183
  430. package/bizar-dash/src/web/ui/styles/globals.css +0 -86
  431. package/bizar-dash/src/web/ui/styles/reset.css +0 -125
  432. package/bizar-dash/src/web/ui/styles/tokens.css +0 -208
  433. package/bizar-dash/src/web/ui/theme/ThemeProvider.tsx +0 -142
  434. package/bizar-dash/src/web/ui/theme/tokens.ts +0 -131
  435. package/bizar-dash/src/web/ui/theme/useTheme.ts +0 -22
  436. package/bizar-dash/src/web/ui/utils/cx.ts +0 -42
  437. package/bizar-dash/src/web/views/Activity.tsx +0 -1221
  438. package/bizar-dash/src/web/views/Agents.tsx +0 -964
  439. package/bizar-dash/src/web/views/Artifacts.tsx +0 -1494
  440. package/bizar-dash/src/web/views/BackgroundAgents.tsx +0 -822
  441. package/bizar-dash/src/web/views/Chat.tsx +0 -532
  442. package/bizar-dash/src/web/views/Config.tsx +0 -3
  443. package/bizar-dash/src/web/views/Doctor.tsx +0 -317
  444. package/bizar-dash/src/web/views/Eval.tsx +0 -372
  445. package/bizar-dash/src/web/views/EvalReport.tsx +0 -353
  446. package/bizar-dash/src/web/views/GoalPlanner.tsx +0 -158
  447. package/bizar-dash/src/web/views/Harness.tsx +0 -306
  448. package/bizar-dash/src/web/views/History.tsx +0 -353
  449. package/bizar-dash/src/web/views/Memory.tsx +0 -193
  450. package/bizar-dash/src/web/views/MiniMaxUsage.tsx +0 -942
  451. package/bizar-dash/src/web/views/ModView.tsx +0 -207
  452. package/bizar-dash/src/web/views/Mods.tsx +0 -706
  453. package/bizar-dash/src/web/views/Overview.tsx +0 -1343
  454. package/bizar-dash/src/web/views/Providers.tsx +0 -302
  455. package/bizar-dash/src/web/views/Schedules.tsx +0 -902
  456. package/bizar-dash/src/web/views/Settings.tsx +0 -308
  457. package/bizar-dash/src/web/views/Skills.tsx +0 -383
  458. package/bizar-dash/src/web/views/SpawnAgentModal.tsx +0 -221
  459. package/bizar-dash/src/web/views/Tasks.tsx +0 -789
  460. package/bizar-dash/src/web/views/Workspace.tsx +0 -294
  461. package/bizar-dash/src/web/views/glyphs/GlyphRenderer.tsx +0 -844
  462. package/bizar-dash/src/web/views/glyphs/components.tsx +0 -1098
  463. package/bizar-dash/src/web/views/memory/ConfigPanel.tsx +0 -426
  464. package/bizar-dash/src/web/views/memory/FromScreenshotPanel.tsx +0 -23
  465. package/bizar-dash/src/web/views/memory/GitSyncPanel.tsx +0 -220
  466. package/bizar-dash/src/web/views/memory/LightragPanel.tsx +0 -310
  467. package/bizar-dash/src/web/views/memory/MemoryGraphLegend.tsx +0 -29
  468. package/bizar-dash/src/web/views/memory/MemoryGraphPanel.tsx +0 -192
  469. package/bizar-dash/src/web/views/memory/MemoryGraphView.tsx +0 -336
  470. package/bizar-dash/src/web/views/memory/MemoryOverview.tsx +0 -367
  471. package/bizar-dash/src/web/views/memory/MemoryStatusCard.tsx +0 -160
  472. package/bizar-dash/src/web/views/memory/ObsidianPanel.tsx +0 -650
  473. package/bizar-dash/src/web/views/memory/SemanticSearchPanel.tsx +0 -197
  474. package/bizar-dash/src/web/views/memory/VaultFromClipboardPanel.tsx +0 -101
  475. package/bizar-dash/src/web/views/settings/ActivitySection.tsx +0 -205
  476. package/bizar-dash/src/web/views/settings/AgentSection.tsx +0 -305
  477. package/bizar-dash/src/web/views/settings/AuthSection.tsx +0 -159
  478. package/bizar-dash/src/web/views/settings/EnvVarsSection.tsx +0 -15
  479. package/bizar-dash/src/web/views/settings/GeneralSection.tsx +0 -128
  480. package/bizar-dash/src/web/views/settings/HeadroomSection.tsx +0 -39
  481. package/bizar-dash/src/web/views/settings/MemorySection.tsx +0 -154
  482. package/bizar-dash/src/web/views/settings/NetworkSection.tsx +0 -87
  483. package/bizar-dash/src/web/views/settings/NotificationsSection.tsx +0 -34
  484. package/bizar-dash/src/web/views/settings/SystemLlmSection.tsx +0 -81
  485. package/bizar-dash/src/web/views/settings/ThemeSection.tsx +0 -168
  486. package/bizar-dash/src/web/views/settings/UpdatesSection.tsx +0 -256
  487. package/bizar-dash/src/web/views/settings/WorkspacesSection.tsx +0 -189
  488. package/packages/sdk/.harness/agents.json +0 -17
  489. package/packages/sdk/.harness/topology.json +0 -4
@@ -1,464 +0,0 @@
1
- /*
2
- * layout.css — Styles for Bizar layout components (Wave 2C).
3
- *
4
- * Ships the visual surface for AppShell, Sidebar, Topbar, Panel,
5
- * PanelHeader, Tabs, and Breadcrumbs. Every value references a token —
6
- * no literals — so the design-system lights up both light and dark by
7
- * inheriting tokens.css. Side-effect import from `ui/layout/index.ts`.
8
- *
9
- * Layout primitives here are additive: the legacy main.css / topbar
10
- * styles in styles/ keep working unchanged. Class names are scoped
11
- * under `.bizar-` so they never collide with legacy `.sidebar` etc.
12
- */
13
-
14
- /* ─────────────────────────────────────────────────────────────────────
15
- * AppShell — topbar + sidebar + content
16
- * ──────────────────────────────────────────────────────────────────── */
17
-
18
- .bizar-app-shell {
19
- display: grid;
20
- grid-template-areas:
21
- 'topbar topbar'
22
- 'sidebar main';
23
- grid-template-rows: var(--layout-topbar-height) 1fr;
24
- grid-template-columns: auto 1fr;
25
- min-height: 100vh;
26
- background: var(--surface-0);
27
- color: var(--text-primary);
28
- }
29
-
30
- .bizar-app-shell__topbar {
31
- grid-area: topbar;
32
- position: sticky;
33
- top: 0;
34
- z-index: var(--z-sticky);
35
- background: var(--surface-0);
36
- border-bottom: 1px solid var(--border-subtle);
37
- }
38
-
39
- .bizar-app-shell__sidebar {
40
- grid-area: sidebar;
41
- width: var(--layout-sidebar-width);
42
- border-right: 1px solid var(--border-subtle);
43
- background: var(--surface-1);
44
- overflow-y: auto;
45
- }
46
-
47
- .bizar-app-shell__sidebar--collapsed {
48
- width: 0;
49
- border-right: 0;
50
- overflow: hidden;
51
- }
52
-
53
- .bizar-app-shell__main {
54
- grid-area: main;
55
- min-width: 0;
56
- overflow-y: auto;
57
- background: var(--surface-0);
58
- }
59
-
60
- .bizar-app-shell__main-inner {
61
- max-width: var(--layout-content-max);
62
- margin: 0 auto;
63
- padding: var(--space-6) var(--space-7);
64
- }
65
-
66
- /* ─────────────────────────────────────────────────────────────────────
67
- * Sidebar — left vertical nav rail
68
- * ──────────────────────────────────────────────────────────────────── */
69
-
70
- .bizar-sidebar {
71
- display: flex;
72
- flex-direction: column;
73
- height: 100%;
74
- padding: var(--space-4) var(--space-3);
75
- font-size: var(--text-base);
76
- }
77
-
78
- .bizar-sidebar__group + .bizar-sidebar__group {
79
- margin-top: var(--space-5);
80
- }
81
-
82
- .bizar-sidebar__label {
83
- padding: 0 var(--space-3);
84
- margin-bottom: var(--space-2);
85
- font-size: var(--text-xs);
86
- font-weight: var(--weight-semibold);
87
- text-transform: uppercase;
88
- letter-spacing: 0.04em;
89
- color: var(--text-tertiary);
90
- }
91
-
92
- .bizar-sidebar__items {
93
- display: flex;
94
- flex-direction: column;
95
- gap: var(--space-1);
96
- }
97
-
98
- .bizar-sidebar__footer {
99
- margin-top: auto;
100
- padding-top: var(--space-4);
101
- border-top: 1px solid var(--border-subtle);
102
- }
103
-
104
- .bizar-sidebar__item {
105
- display: flex;
106
- align-items: center;
107
- gap: var(--space-3);
108
- padding: var(--space-2) var(--space-3);
109
- font-size: var(--text-base);
110
- font-family: inherit;
111
- color: var(--text-secondary);
112
- background: transparent;
113
- border: 0;
114
- border-radius: var(--radius-md);
115
- cursor: pointer;
116
- text-align: left;
117
- width: 100%;
118
- transition: background var(--duration-fast) var(--ease-out),
119
- color var(--duration-fast) var(--ease-out);
120
- line-height: var(--leading-snug);
121
- }
122
-
123
- .bizar-sidebar__item:hover:not([disabled]):not([aria-disabled='true']) {
124
- background: var(--surface-overlay);
125
- color: var(--text-primary);
126
- }
127
-
128
- .bizar-sidebar__item--active {
129
- background: var(--accent-subtle);
130
- color: var(--text-primary);
131
- font-weight: var(--weight-medium);
132
- }
133
-
134
- .bizar-sidebar__item[disabled],
135
- .bizar-sidebar__item[aria-disabled='true'] {
136
- opacity: 0.5;
137
- cursor: not-allowed;
138
- color: var(--text-tertiary);
139
- }
140
-
141
- .bizar-sidebar__item-label {
142
- flex: 1 1 auto;
143
- min-width: 0;
144
- overflow: hidden;
145
- text-overflow: ellipsis;
146
- white-space: nowrap;
147
- }
148
-
149
- .bizar-sidebar__item-badge {
150
- font-size: var(--text-xs);
151
- padding: 0 var(--space-2);
152
- background: var(--surface-overlay);
153
- color: var(--text-secondary);
154
- border-radius: var(--radius-full);
155
- font-weight: var(--weight-medium);
156
- line-height: var(--leading-tight);
157
- }
158
-
159
- /* ─────────────────────────────────────────────────────────────────────
160
- * Topbar — header bar
161
- * ──────────────────────────────────────────────────────────────────── */
162
-
163
- .bizar-topbar {
164
- display: flex;
165
- align-items: center;
166
- width: 100%;
167
- height: var(--layout-topbar-height);
168
- padding: 0 var(--space-5);
169
- gap: var(--space-4);
170
- background: var(--surface-0);
171
- border-bottom: 1px solid var(--border-subtle);
172
- }
173
-
174
- .bizar-topbar--sticky {
175
- position: sticky;
176
- top: 0;
177
- z-index: var(--z-sticky);
178
- }
179
-
180
- .bizar-topbar__brand {
181
- display: flex;
182
- align-items: center;
183
- flex-shrink: 0;
184
- }
185
-
186
- .bizar-topbar__center {
187
- flex: 1;
188
- display: flex;
189
- justify-content: center;
190
- min-width: 0;
191
- }
192
-
193
- .bizar-topbar__right {
194
- display: flex;
195
- align-items: center;
196
- gap: var(--space-3);
197
- flex-shrink: 0;
198
- margin-left: auto;
199
- }
200
-
201
- /* ─────────────────────────────────────────────────────────────────────
202
- * Panel — bordered card
203
- * ──────────────────────────────────────────────────────────────────── */
204
-
205
- .bizar-panel {
206
- background: var(--surface-1);
207
- border: 1px solid var(--border-subtle);
208
- border-radius: var(--radius-md);
209
- overflow: hidden;
210
- display: flex;
211
- flex-direction: column;
212
- }
213
-
214
- .bizar-panel--filled {
215
- background: var(--surface-2);
216
- border-color: var(--border-default);
217
- }
218
-
219
- .bizar-panel__header {
220
- display: flex;
221
- align-items: flex-start;
222
- justify-content: space-between;
223
- gap: var(--space-4);
224
- padding: var(--space-4) var(--space-5);
225
- border-bottom: 1px solid var(--border-subtle);
226
- }
227
-
228
- .bizar-panel__header-text {
229
- flex: 1 1 auto;
230
- min-width: 0;
231
- }
232
-
233
- .bizar-panel__title {
234
- margin: 0;
235
- font-size: var(--text-md);
236
- font-weight: var(--weight-semibold);
237
- color: var(--text-primary);
238
- line-height: var(--leading-tight);
239
- }
240
-
241
- .bizar-panel__description {
242
- margin: var(--space-1) 0 0;
243
- font-size: var(--text-sm);
244
- color: var(--text-secondary);
245
- line-height: var(--leading-snug);
246
- }
247
-
248
- .bizar-panel__actions {
249
- display: flex;
250
- align-items: center;
251
- gap: var(--space-2);
252
- flex-shrink: 0;
253
- }
254
-
255
- .bizar-panel__body {
256
- flex: 1 1 auto;
257
- }
258
-
259
- .bizar-panel__padding--0 { padding: 0; }
260
- .bizar-panel__padding--1 { padding: var(--space-1); }
261
- .bizar-panel__padding--2 { padding: var(--space-2); }
262
- .bizar-panel__padding--3 { padding: var(--space-3); }
263
- .bizar-panel__padding--4 { padding: var(--space-4); }
264
- .bizar-panel__padding--5 { padding: var(--space-5); }
265
-
266
- /* ─────────────────────────────────────────────────────────────────────
267
- * ViewHeader — top-of-view title row (F-041)
268
- *
269
- * Sibling of PanelHeader, distinct because it lives at the page level
270
- * (above the first Panel) rather than inside one. One header per top-
271
- * level view so the dashboard reads as one system.
272
- * ──────────────────────────────────────────────────────────────────── */
273
-
274
- .bizar-view-header {
275
- display: flex;
276
- align-items: flex-start;
277
- justify-content: space-between;
278
- gap: var(--space-4);
279
- padding: var(--space-3) 0 var(--space-4);
280
- flex-wrap: wrap;
281
- }
282
- .bizar-view-header__text {
283
- display: flex;
284
- flex-direction: column;
285
- gap: var(--space-1);
286
- min-width: 0;
287
- flex: 1 1 auto;
288
- }
289
- .bizar-view-header__eyebrow {
290
- font-size: var(--text-xs);
291
- font-weight: var(--weight-medium);
292
- color: var(--text-tertiary);
293
- text-transform: uppercase;
294
- letter-spacing: 0.04em;
295
- }
296
- .bizar-view-header__title {
297
- margin: 0;
298
- font-size: var(--text-xl);
299
- font-weight: var(--weight-semibold);
300
- color: var(--text-primary);
301
- line-height: var(--leading-tight);
302
- }
303
- .bizar-view-header__subtitle {
304
- margin: 0;
305
- font-size: var(--text-sm);
306
- color: var(--text-secondary);
307
- line-height: var(--leading-snug);
308
- }
309
- .bizar-view-header__actions {
310
- display: flex;
311
- align-items: center;
312
- gap: var(--space-2);
313
- flex-wrap: wrap;
314
- flex: 0 0 auto;
315
- }
316
-
317
- /* ─────────────────────────────────────────────────────────────────────
318
- * Tabs — horizontal tab strip
319
- * ──────────────────────────────────────────────────────────────────── */
320
-
321
- .bizar-tabs {
322
- display: flex;
323
- align-items: center;
324
- gap: 0;
325
- }
326
-
327
- .bizar-tabs--sm .bizar-tab {
328
- font-size: var(--text-sm);
329
- padding-top: var(--space-2);
330
- padding-bottom: var(--space-2);
331
- }
332
-
333
- /* Underline variant */
334
- .bizar-tabs--underline {
335
- border-bottom: 1px solid var(--border-subtle);
336
- gap: var(--space-2);
337
- }
338
-
339
- .bizar-tabs--underline .bizar-tab {
340
- padding: var(--space-3) var(--space-4);
341
- border-bottom: 2px solid transparent;
342
- margin-bottom: -1px;
343
- border-radius: 0;
344
- font-size: var(--text-base);
345
- color: var(--text-secondary);
346
- background: transparent;
347
- transition: color var(--duration-fast) var(--ease-out),
348
- border-color var(--duration-fast) var(--ease-out);
349
- cursor: pointer;
350
- display: inline-flex;
351
- align-items: center;
352
- gap: var(--space-2);
353
- }
354
-
355
- .bizar-tabs--underline .bizar-tab:hover:not([disabled]) {
356
- color: var(--text-primary);
357
- }
358
-
359
- .bizar-tabs--underline .bizar-tab--active {
360
- color: var(--text-primary);
361
- border-bottom-color: var(--accent);
362
- }
363
-
364
- .bizar-tabs--underline .bizar-tab[disabled] {
365
- color: var(--text-tertiary);
366
- cursor: not-allowed;
367
- }
368
-
369
- /* Pill variant */
370
- .bizar-tabs--pill {
371
- gap: var(--space-2);
372
- padding: var(--space-1);
373
- }
374
-
375
- .bizar-tabs--pill .bizar-tab {
376
- padding: var(--space-2) var(--space-4);
377
- font-size: var(--text-base);
378
- color: var(--text-secondary);
379
- background: transparent;
380
- border-radius: var(--radius-md);
381
- cursor: pointer;
382
- display: inline-flex;
383
- align-items: center;
384
- gap: var(--space-2);
385
- transition: background var(--duration-fast) var(--ease-out),
386
- color var(--duration-fast) var(--ease-out);
387
- }
388
-
389
- .bizar-tabs--pill .bizar-tab:hover:not([disabled]) {
390
- background: var(--surface-2);
391
- color: var(--text-primary);
392
- }
393
-
394
- .bizar-tabs--pill .bizar-tab--active {
395
- background: var(--surface-3);
396
- color: var(--text-primary);
397
- font-weight: var(--weight-medium);
398
- }
399
-
400
- .bizar-tabs--pill .bizar-tab[disabled] {
401
- color: var(--text-tertiary);
402
- cursor: not-allowed;
403
- }
404
-
405
- .bizar-tab__badge {
406
- background: var(--surface-overlay);
407
- color: var(--text-secondary);
408
- font-size: var(--text-xs);
409
- padding: 0 var(--space-2);
410
- border-radius: var(--radius-full);
411
- font-weight: var(--weight-medium);
412
- line-height: var(--leading-tight);
413
- }
414
-
415
- .bizar-tab__icon {
416
- flex-shrink: 0;
417
- }
418
-
419
- /* ─────────────────────────────────────────────────────────────────────
420
- * Breadcrumbs
421
- * ──────────────────────────────────────────────────────────────────── */
422
-
423
- .bizar-breadcrumbs {
424
- display: flex;
425
- align-items: center;
426
- flex-wrap: wrap;
427
- font-size: var(--text-sm);
428
- color: var(--text-secondary);
429
- gap: var(--space-2);
430
- }
431
-
432
- .bizar-breadcrumbs__item {
433
- color: var(--text-secondary);
434
- background: transparent;
435
- border: 0;
436
- padding: 0;
437
- font-size: inherit;
438
- cursor: pointer;
439
- display: inline-flex;
440
- align-items: center;
441
- border-radius: var(--radius-sm);
442
- }
443
-
444
- .bizar-breadcrumbs__item:hover:not([disabled]) {
445
- color: var(--text-primary);
446
- }
447
-
448
- .bizar-breadcrumbs__item[disabled] {
449
- color: var(--text-tertiary);
450
- cursor: default;
451
- }
452
-
453
- .bizar-breadcrumbs__item--current {
454
- color: var(--text-primary);
455
- font-weight: var(--weight-medium);
456
- cursor: default;
457
- }
458
-
459
- .bizar-breadcrumbs__separator {
460
- color: var(--text-tertiary);
461
- display: inline-flex;
462
- align-items: center;
463
- flex-shrink: 0;
464
- }
@@ -1,199 +0,0 @@
1
- /*
2
- * CommandPalette.tsx — Cmd+K command palette (Wave 2B).
3
- *
4
- * Self-contained palette: provides its own overlay, input, results list
5
- * and keyboard handling. The next Wave 2C Dialog component will replace
6
- * the overlay/modal wrapper, but the search/filter/keyboard guts stay here
7
- * because the search UX (fuzzy match, grouping, arrow nav) is intrinsic to
8
- * the palette rather than the modal primitive.
9
- *
10
- * Filter pipeline: input change → fuse.js (weighted across label +
11
- * description, threshold loose so typos still hit) → group-by-type →
12
- * flatten into a flat list for arrow-key navigation.
13
- */
14
-
15
- import {
16
- useCallback, useEffect, useMemo, useRef, useState, type ReactNode,
17
- } from 'react';
18
- import { Search } from 'lucide-react';
19
- import Fuse from 'fuse.js';
20
- import { cx } from '../utils/cx';
21
-
22
- export type CommandPaletteItemType =
23
- | 'agent' | 'task' | 'mod' | 'schedule' | 'project' | 'command' | 'setting';
24
-
25
- export type CommandPaletteItem = {
26
- id: string;
27
- type: CommandPaletteItemType;
28
- label: string;
29
- description?: string;
30
- icon?: ReactNode;
31
- shortcut?: string[];
32
- onSelect: () => void;
33
- };
34
-
35
- export type CommandPaletteProps = {
36
- open: boolean;
37
- onClose: () => void;
38
- items: CommandPaletteItem[];
39
- placeholder?: string;
40
- className?: string;
41
- };
42
-
43
- const TYPE_LABELS: Record<CommandPaletteItemType, string> = {
44
- agent: 'Agents', task: 'Tasks', mod: 'Mods', schedule: 'Schedules',
45
- project: 'Projects', command: 'Commands', setting: 'Settings',
46
- };
47
- const TYPE_ORDER = Object.keys(TYPE_LABELS) as CommandPaletteItemType[];
48
-
49
- type Grouped = Array<readonly [CommandPaletteItemType, CommandPaletteItem[]]>;
50
- type FlatRow = { index: number; item: CommandPaletteItem };
51
-
52
- function groupByType(items: CommandPaletteItem[]): Grouped {
53
- const byType = new Map<CommandPaletteItemType, CommandPaletteItem[]>();
54
- for (const it of items) {
55
- const arr = byType.get(it.type) ?? [];
56
- arr.push(it);
57
- byType.set(it.type, arr);
58
- }
59
- return TYPE_ORDER.flatMap((t) => {
60
- const arr = byType.get(t);
61
- return arr && arr.length > 0 ? ([[t, arr]] as const) : [];
62
- });
63
- }
64
-
65
- function flatten(rows: Grouped): FlatRow[] {
66
- const flat: FlatRow[] = [];
67
- let i = 0;
68
- for (const [, items] of rows) for (const it of items) flat.push({ index: i++, item: it });
69
- return flat;
70
- }
71
-
72
- export function CommandPalette({
73
- open, onClose, items, placeholder = 'Search anything…', className,
74
- }: CommandPaletteProps): React.JSX.Element | null {
75
- const [query, setQuery] = useState('');
76
- const [activeIndex, setActiveIndex] = useState(0);
77
- const inputRef = useRef<HTMLInputElement | null>(null);
78
- const listRef = useRef<HTMLDivElement | null>(null);
79
-
80
- const fuse = useMemo(
81
- () => new Fuse(items, {
82
- keys: [{ name: 'label', weight: 2 }, { name: 'description', weight: 1 }],
83
- threshold: 0.4, ignoreLocation: true,
84
- }),
85
- [items],
86
- );
87
-
88
- const grouped = useMemo<Grouped>(() => {
89
- const base = query.trim() === '' ? items : fuse.search(query).map((r) => r.item);
90
- return groupByType(base);
91
- }, [query, items, fuse]);
92
- const flat = useMemo(() => flatten(grouped), [grouped]);
93
-
94
- // Side-effects: reset on open, clamp activeIndex, focus input, scroll into
95
- // view, lock body scroll. jsdom lacks scrollIntoView so we guard the call.
96
- useEffect(() => { if (open) { setQuery(''); setActiveIndex(0); } }, [open]);
97
- useEffect(() => {
98
- if (activeIndex >= flat.length) setActiveIndex(Math.max(0, flat.length - 1));
99
- }, [flat.length, activeIndex]);
100
- useEffect(() => {
101
- if (!open) return;
102
- const t = setTimeout(() => inputRef.current?.focus(), 0);
103
- return () => clearTimeout(t);
104
- }, [open]);
105
- useEffect(() => {
106
- const el = listRef.current?.querySelector<HTMLElement>(
107
- `[data-cmdk-index="${activeIndex}"]`,
108
- );
109
- if (el && typeof el.scrollIntoView === 'function') el.scrollIntoView({ block: 'nearest' });
110
- }, [activeIndex]);
111
- useEffect(() => {
112
- if (!open) return;
113
- const prev = document.body.style.overflow;
114
- document.body.style.overflow = 'hidden';
115
- return () => { document.body.style.overflow = prev; };
116
- }, [open]);
117
-
118
- const selectIndex = useCallback(
119
- (i: number) => { const row = flat[i]; if (!row) return; row.item.onSelect(); onClose(); },
120
- [flat, onClose],
121
- );
122
- const onKeyDown = useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {
123
- if (e.key === 'Escape') { e.preventDefault(); onClose(); return; }
124
- if (flat.length === 0) return;
125
- if (e.key === 'ArrowDown') { e.preventDefault(); setActiveIndex((i) => (i + 1) % flat.length); return; }
126
- if (e.key === 'ArrowUp') { e.preventDefault(); setActiveIndex((i) => (i - 1 + flat.length) % flat.length); return; }
127
- if (e.key === 'Enter') { e.preventDefault(); selectIndex(activeIndex); }
128
- }, [flat.length, activeIndex, onClose, selectIndex]);
129
-
130
- if (!open) return null;
131
-
132
- return (
133
- <div
134
- className="bd-cmdk-overlay" role="dialog" aria-modal="true" aria-label="Command palette"
135
- onMouseDown={(e) => { if (e.target === e.currentTarget) onClose(); }}
136
- >
137
- <div className={cx('bd-cmdk', className)} onKeyDown={onKeyDown}>
138
- <div className="bd-cmdk__input-wrap">
139
- <Search size={16} aria-hidden="true" />
140
- <input
141
- ref={inputRef} className="bd-cmdk__input" value={query}
142
- onChange={(e) => { setQuery(e.target.value); setActiveIndex(0); }}
143
- placeholder={placeholder} autoComplete="off" spellCheck={false}
144
- />
145
- <kbd className="bd-cmdk__kbd-hint">esc</kbd>
146
- </div>
147
- <div className="bd-cmdk__results" ref={listRef}>
148
- {flat.length === 0 ? <div className="bd-cmdk__empty">No results</div> : (
149
- grouped.map(([type, list]) => (
150
- <div key={type} className="bd-cmdk__group">
151
- <div className="bd-cmdk__group-header">{TYPE_LABELS[type]}</div>
152
- {list.map((item) => {
153
- const rowIndex = flat.find((r) => r.item === item)!.index;
154
- return <PaletteRow
155
- key={item.id}
156
- item={item}
157
- rowIndex={rowIndex}
158
- active={rowIndex === activeIndex}
159
- onHover={setActiveIndex}
160
- onSelect={selectIndex}
161
- />;
162
- })}
163
- </div>
164
- ))
165
- )}
166
- </div>
167
- </div>
168
- </div>
169
- );
170
- }
171
-
172
- type PaletteRowProps = {
173
- item: CommandPaletteItem;
174
- rowIndex: number;
175
- active: boolean;
176
- onHover: (i: number) => void;
177
- onSelect: (i: number) => void;
178
- };
179
- function PaletteRow({ item, rowIndex, active, onHover, onSelect }: PaletteRowProps): React.JSX.Element {
180
- return (
181
- <button
182
- type="button" data-cmdk-index={rowIndex}
183
- className={cx('bd-cmdk__item', active && 'bd-cmdk__item--active')}
184
- onMouseEnter={() => onHover(rowIndex)}
185
- onClick={() => onSelect(rowIndex)}
186
- >
187
- {item.icon && <span className="bd-cmdk__item-icon" aria-hidden="true">{item.icon}</span>}
188
- <span className="bd-cmdk__item-body">
189
- <span className="bd-cmdk__item-label">{item.label}</span>
190
- {item.description && <span className="bd-cmdk__item-description">{item.description}</span>}
191
- </span>
192
- {item.shortcut && item.shortcut.length > 0 && (
193
- <span className="bd-cmdk__item-shortcut">
194
- {item.shortcut.map((k, i) => <kbd key={`${k}-${i}`}>{k}</kbd>)}
195
- </span>
196
- )}
197
- </button>
198
- );
199
- }