@polderlabs/bizar 7.0.2 → 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 (490) 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 -0
  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/settings-layout.test.tsx +2 -2
  196. package/bizar-dash/tests/settings-nav.test.tsx +6 -6
  197. package/bizar-dash/tests/setup.ts +26 -0
  198. package/bizar-dash/vite.config.ts +26 -2
  199. package/bizar-dash/vitest.config.ts +5 -3
  200. package/cli/provision-claude.mjs +108 -5
  201. package/package.json +36 -3
  202. package/bizar-dash/dist/assets/EnvVarsSection-BfhAz3ax.js +0 -114
  203. package/bizar-dash/dist/assets/EnvVarsSection-BfhAz3ax.js.map +0 -1
  204. package/bizar-dash/dist/assets/MobileChat-DLWdv6tQ.js +0 -1
  205. package/bizar-dash/dist/assets/MobileChat-DLWdv6tQ.js.map +0 -1
  206. package/bizar-dash/dist/assets/MobileSettings-Bxv62uPY.js +0 -1
  207. package/bizar-dash/dist/assets/MobileSettings-Bxv62uPY.js.map +0 -1
  208. package/bizar-dash/dist/assets/Toast-ATSAmbdi.js +0 -26
  209. package/bizar-dash/dist/assets/Toast-ATSAmbdi.js.map +0 -1
  210. package/bizar-dash/dist/assets/__vite-browser-external-BIHI7g3E.js +0 -1
  211. package/bizar-dash/dist/assets/__vite-browser-external-BIHI7g3E.js.map +0 -1
  212. package/bizar-dash/dist/assets/main-306CZfn6.js +0 -430
  213. package/bizar-dash/dist/assets/main-306CZfn6.js.map +0 -1
  214. package/bizar-dash/dist/assets/main-G3bNDpY3.css +0 -1
  215. package/bizar-dash/dist/assets/mobile-C_naUN91.js +0 -1
  216. package/bizar-dash/dist/assets/mobile-C_naUN91.js.map +0 -1
  217. package/bizar-dash/dist/assets/mobile-layout-BWLtwtfQ.css +0 -1
  218. package/bizar-dash/dist/assets/mobile-layout-GZ3bE8L6.js +0 -211
  219. package/bizar-dash/dist/assets/mobile-layout-GZ3bE8L6.js.map +0 -1
  220. package/bizar-dash/dist/assets/useSlashCommands-BOwD7lNb.js +0 -65
  221. package/bizar-dash/dist/assets/useSlashCommands-BOwD7lNb.js.map +0 -1
  222. package/bizar-dash/dist/index.html +0 -43
  223. package/bizar-dash/src/web/App.tsx +0 -915
  224. package/bizar-dash/src/web/MobileApp.tsx +0 -414
  225. package/bizar-dash/src/web/components/ArtifactCreateDialog.tsx +0 -95
  226. package/bizar-dash/src/web/components/ArtifactListDialog.tsx +0 -55
  227. package/bizar-dash/src/web/components/ArtifactViewer.tsx +0 -144
  228. package/bizar-dash/src/web/components/AuditDialog.tsx +0 -79
  229. package/bizar-dash/src/web/components/AutosaveField.tsx +0 -50
  230. package/bizar-dash/src/web/components/BackupRestore.tsx +0 -330
  231. package/bizar-dash/src/web/components/BgStatusBadge.tsx +0 -32
  232. package/bizar-dash/src/web/components/Button.tsx +0 -56
  233. package/bizar-dash/src/web/components/CanvasContextMenu.tsx +0 -68
  234. package/bizar-dash/src/web/components/Card.tsx +0 -40
  235. package/bizar-dash/src/web/components/CollapsibleSection.tsx +0 -72
  236. package/bizar-dash/src/web/components/CommandDialog.tsx +0 -66
  237. package/bizar-dash/src/web/components/DoctorPanel.tsx +0 -160
  238. package/bizar-dash/src/web/components/EmptyState.tsx +0 -30
  239. package/bizar-dash/src/web/components/EnvVarManager.tsx +0 -430
  240. package/bizar-dash/src/web/components/EvalDiff.tsx +0 -157
  241. package/bizar-dash/src/web/components/EvalExportButton.tsx +0 -27
  242. package/bizar-dash/src/web/components/EvalRunCard.tsx +0 -78
  243. package/bizar-dash/src/web/components/FileBrowser.tsx +0 -633
  244. package/bizar-dash/src/web/components/HeadroomSettings.tsx +0 -418
  245. package/bizar-dash/src/web/components/HeadroomStatus.tsx +0 -158
  246. package/bizar-dash/src/web/components/HelpDialog.tsx +0 -55
  247. package/bizar-dash/src/web/components/InviteDialog.tsx +0 -205
  248. package/bizar-dash/src/web/components/KillConfirmDialog.tsx +0 -88
  249. package/bizar-dash/src/web/components/MobileBottomNav.tsx +0 -38
  250. package/bizar-dash/src/web/components/MobileDrawer.tsx +0 -68
  251. package/bizar-dash/src/web/components/MobileHeader.tsx +0 -50
  252. package/bizar-dash/src/web/components/MobileLayout.tsx +0 -63
  253. package/bizar-dash/src/web/components/Modal.tsx +0 -215
  254. package/bizar-dash/src/web/components/Notifications.tsx +0 -242
  255. package/bizar-dash/src/web/components/ScheduleTemplateCard.tsx +0 -72
  256. package/bizar-dash/src/web/components/ScreenshotCapture.tsx +0 -138
  257. package/bizar-dash/src/web/components/ScreenshotOCR.tsx +0 -42
  258. package/bizar-dash/src/web/components/SearchModal.tsx +0 -227
  259. package/bizar-dash/src/web/components/SettingsNav.tsx +0 -112
  260. package/bizar-dash/src/web/components/SettingsSearch.tsx +0 -328
  261. package/bizar-dash/src/web/components/Sidebar.tsx +0 -89
  262. package/bizar-dash/src/web/components/Spinner.tsx +0 -19
  263. package/bizar-dash/src/web/components/StatusBadge.tsx +0 -56
  264. package/bizar-dash/src/web/components/Tag.tsx +0 -41
  265. package/bizar-dash/src/web/components/TailscaleSettings.tsx +0 -161
  266. package/bizar-dash/src/web/components/TaskCard.tsx +0 -69
  267. package/bizar-dash/src/web/components/TaskCreateSheet.tsx +0 -76
  268. package/bizar-dash/src/web/components/Toast.tsx +0 -150
  269. package/bizar-dash/src/web/components/Toggle.tsx +0 -31
  270. package/bizar-dash/src/web/components/Topbar.tsx +0 -410
  271. package/bizar-dash/src/web/components/UsageChart.tsx +0 -250
  272. package/bizar-dash/src/web/components/UsageTable.tsx +0 -90
  273. package/bizar-dash/src/web/components/VirtualList.tsx +0 -53
  274. package/bizar-dash/src/web/components/VisualPlanDialog.tsx +0 -58
  275. package/bizar-dash/src/web/components/VoiceNotesPanel.tsx +0 -211
  276. package/bizar-dash/src/web/components/VoiceRecorder.tsx +0 -105
  277. package/bizar-dash/src/web/components/WorkspaceSelector.tsx +0 -158
  278. package/bizar-dash/src/web/components/agents/CommunicationLog.tsx +0 -126
  279. package/bizar-dash/src/web/components/agents/DependencyGraph.tsx +0 -163
  280. package/bizar-dash/src/web/components/agents/QualityGates.tsx +0 -123
  281. package/bizar-dash/src/web/components/agents/RealTimeEventLog.tsx +0 -127
  282. package/bizar-dash/src/web/components/agents/RoutingDecisions.test.tsx +0 -148
  283. package/bizar-dash/src/web/components/agents/RoutingDecisions.tsx +0 -160
  284. package/bizar-dash/src/web/components/background/AttachButton.tsx +0 -96
  285. package/bizar-dash/src/web/components/background/TmuxAttachCard.tsx +0 -122
  286. package/bizar-dash/src/web/components/chat/AgentChip.tsx +0 -68
  287. package/bizar-dash/src/web/components/chat/AgentNode.tsx +0 -127
  288. package/bizar-dash/src/web/components/chat/AgentTree.tsx +0 -80
  289. package/bizar-dash/src/web/components/chat/ChatBubble.tsx +0 -60
  290. package/bizar-dash/src/web/components/chat/ChatComposer.tsx +0 -72
  291. package/bizar-dash/src/web/components/chat/ChatInfoPanel.tsx +0 -370
  292. package/bizar-dash/src/web/components/chat/ChatRail.tsx +0 -387
  293. package/bizar-dash/src/web/components/chat/ChatThread.tsx +0 -127
  294. package/bizar-dash/src/web/components/chat/ChatTopBar.tsx +0 -50
  295. package/bizar-dash/src/web/components/chat/Composer.tsx +0 -166
  296. package/bizar-dash/src/web/components/chat/ConfirmModal.tsx +0 -54
  297. package/bizar-dash/src/web/components/chat/EmptyState.tsx +0 -21
  298. package/bizar-dash/src/web/components/chat/FirstRunGreeting.tsx +0 -18
  299. package/bizar-dash/src/web/components/chat/FloatingComposer.tsx +0 -38
  300. package/bizar-dash/src/web/components/chat/InfoPanel.tsx +0 -184
  301. package/bizar-dash/src/web/components/chat/JumpToLatest.tsx +0 -58
  302. package/bizar-dash/src/web/components/chat/LoadingSkeleton.tsx +0 -19
  303. package/bizar-dash/src/web/components/chat/MessageBlock.tsx +0 -260
  304. package/bizar-dash/src/web/components/chat/MessageBubble.tsx +0 -60
  305. package/bizar-dash/src/web/components/chat/SessionList.tsx +0 -163
  306. package/bizar-dash/src/web/components/chat/SessionRowMenu.tsx +0 -206
  307. package/bizar-dash/src/web/components/chat/StreamingIndicator.tsx +0 -37
  308. package/bizar-dash/src/web/components/chat/SuggestionCards.tsx +0 -55
  309. package/bizar-dash/src/web/components/chat/WelcomeScreen.tsx +0 -36
  310. package/bizar-dash/src/web/components/chat/_legacy.ts +0 -30
  311. package/bizar-dash/src/web/components/chat/index.ts +0 -31
  312. package/bizar-dash/src/web/components/chat/useAutoGrowTextarea.ts +0 -18
  313. package/bizar-dash/src/web/components/chat/useChat.ts +0 -1190
  314. package/bizar-dash/src/web/components/chat/useSlashCommands.ts +0 -47
  315. package/bizar-dash/src/web/components/goals/GoalInput.tsx +0 -86
  316. package/bizar-dash/src/web/components/goals/PlanVisualization.tsx +0 -111
  317. package/bizar-dash/src/web/components/tasks/BacklogPanel.css +0 -109
  318. package/bizar-dash/src/web/components/tasks/BacklogPanel.tsx +0 -209
  319. package/bizar-dash/src/web/hooks/useAutosave.ts +0 -107
  320. package/bizar-dash/src/web/hooks/useI18n.ts +0 -13
  321. package/bizar-dash/src/web/index.html +0 -37
  322. package/bizar-dash/src/web/lib/api.ts +0 -237
  323. package/bizar-dash/src/web/lib/goapPlanner.ts +0 -614
  324. package/bizar-dash/src/web/lib/i18n.ts +0 -25
  325. package/bizar-dash/src/web/lib/logger.ts +0 -30
  326. package/bizar-dash/src/web/lib/markdown.tsx +0 -59
  327. package/bizar-dash/src/web/lib/search.ts +0 -115
  328. package/bizar-dash/src/web/lib/types.ts +0 -894
  329. package/bizar-dash/src/web/lib/utils.ts +0 -114
  330. package/bizar-dash/src/web/lib/ws.ts +0 -177
  331. package/bizar-dash/src/web/locales/en.json +0 -52
  332. package/bizar-dash/src/web/main.tsx +0 -43
  333. package/bizar-dash/src/web/mobile/MobileApp.tsx +0 -309
  334. package/bizar-dash/src/web/mobile/MobileBottomNav.tsx +0 -38
  335. package/bizar-dash/src/web/mobile/MobileChat.tsx +0 -138
  336. package/bizar-dash/src/web/mobile/MobileDoctor.tsx +0 -80
  337. package/bizar-dash/src/web/mobile/MobileEval.tsx +0 -167
  338. package/bizar-dash/src/web/mobile/MobileMemory.tsx +0 -108
  339. package/bizar-dash/src/web/mobile/MobileOverview.tsx +0 -213
  340. package/bizar-dash/src/web/mobile/MobileSettings.tsx +0 -251
  341. package/bizar-dash/src/web/mobile/MobileTasks.tsx +0 -94
  342. package/bizar-dash/src/web/mobile/MobileTopbar.tsx +0 -115
  343. package/bizar-dash/src/web/mobile/components/MobileBottomSheet.tsx +0 -182
  344. package/bizar-dash/src/web/mobile/components/MobileListItem.tsx +0 -64
  345. package/bizar-dash/src/web/mobile/components/MobileModal.tsx +0 -123
  346. package/bizar-dash/src/web/mobile/views/MobileActivity.tsx +0 -273
  347. package/bizar-dash/src/web/mobile/views/MobileAgents.tsx +0 -374
  348. package/bizar-dash/src/web/mobile/views/MobileArtifactCanvas.tsx +0 -439
  349. package/bizar-dash/src/web/mobile/views/MobileArtifacts.tsx +0 -143
  350. package/bizar-dash/src/web/mobile/views/MobileChat.tsx +0 -257
  351. package/bizar-dash/src/web/mobile/views/MobileConfig.tsx +0 -175
  352. package/bizar-dash/src/web/mobile/views/MobileHistory.tsx +0 -191
  353. package/bizar-dash/src/web/mobile/views/MobileMods.tsx +0 -149
  354. package/bizar-dash/src/web/mobile/views/MobileMore.tsx +0 -121
  355. package/bizar-dash/src/web/mobile/views/MobileNotifications.tsx +0 -137
  356. package/bizar-dash/src/web/mobile/views/MobilePlans.tsx +0 -26
  357. package/bizar-dash/src/web/mobile/views/MobileSchedules.tsx +0 -685
  358. package/bizar-dash/src/web/mobile/views/MobileSearchModal.tsx +0 -172
  359. package/bizar-dash/src/web/mobile/views/MobileSettings.tsx +0 -363
  360. package/bizar-dash/src/web/mobile/views/MobileSkills.tsx +0 -153
  361. package/bizar-dash/src/web/mobile/views/MobileTasks.tsx +0 -564
  362. package/bizar-dash/src/web/mobile/views/QrCodePanel.tsx +0 -69
  363. package/bizar-dash/src/web/mobile.tsx +0 -14
  364. package/bizar-dash/src/web/styles/agents-redesign.css +0 -311
  365. package/bizar-dash/src/web/styles/chat.css +0 -1740
  366. package/bizar-dash/src/web/styles/glyphs.css +0 -960
  367. package/bizar-dash/src/web/styles/main.css +0 -10391
  368. package/bizar-dash/src/web/styles/memory.css +0 -1182
  369. package/bizar-dash/src/web/styles/minimax-usage.css +0 -842
  370. package/bizar-dash/src/web/styles/mobile-chat.css +0 -5
  371. package/bizar-dash/src/web/styles/mobile-layout.css +0 -233
  372. package/bizar-dash/src/web/styles/mobile.css +0 -2181
  373. package/bizar-dash/src/web/styles/settings.css +0 -795
  374. package/bizar-dash/src/web/styles/skills.css +0 -302
  375. package/bizar-dash/src/web/styles/tasks-redesign.css +0 -253
  376. package/bizar-dash/src/web/styles/tasks.css +0 -605
  377. package/bizar-dash/src/web/ui/controls/Button.tsx +0 -77
  378. package/bizar-dash/src/web/ui/controls/Checkbox.tsx +0 -95
  379. package/bizar-dash/src/web/ui/controls/IconButton.tsx +0 -66
  380. package/bizar-dash/src/web/ui/controls/Kbd.tsx +0 -24
  381. package/bizar-dash/src/web/ui/controls/NumberInput.tsx +0 -77
  382. package/bizar-dash/src/web/ui/controls/RadioGroup.tsx +0 -109
  383. package/bizar-dash/src/web/ui/controls/SearchInput.tsx +0 -91
  384. package/bizar-dash/src/web/ui/controls/Select.tsx +0 -92
  385. package/bizar-dash/src/web/ui/controls/Slider.tsx +0 -70
  386. package/bizar-dash/src/web/ui/controls/TextInput.tsx +0 -67
  387. package/bizar-dash/src/web/ui/controls/Textarea.tsx +0 -56
  388. package/bizar-dash/src/web/ui/controls/Toggle.tsx +0 -79
  389. package/bizar-dash/src/web/ui/controls/controls.css +0 -476
  390. package/bizar-dash/src/web/ui/controls/index.ts +0 -35
  391. package/bizar-dash/src/web/ui/data/BarChart.tsx +0 -60
  392. package/bizar-dash/src/web/ui/data/DataTable.tsx +0 -216
  393. package/bizar-dash/src/web/ui/data/EmptyState.tsx +0 -60
  394. package/bizar-dash/src/web/ui/data/ErrorState.tsx +0 -56
  395. package/bizar-dash/src/web/ui/data/KeyValueList.tsx +0 -106
  396. package/bizar-dash/src/web/ui/data/LoadingState.tsx +0 -65
  397. package/bizar-dash/src/web/ui/data/Sparkline.tsx +0 -87
  398. package/bizar-dash/src/web/ui/data/StatTile.tsx +0 -87
  399. package/bizar-dash/src/web/ui/data/data.css +0 -535
  400. package/bizar-dash/src/web/ui/data/index.ts +0 -31
  401. package/bizar-dash/src/web/ui/feedback/Badge.tsx +0 -49
  402. package/bizar-dash/src/web/ui/feedback/Dialog.tsx +0 -209
  403. package/bizar-dash/src/web/ui/feedback/ProgressBar.tsx +0 -69
  404. package/bizar-dash/src/web/ui/feedback/StatusDot.tsx +0 -50
  405. package/bizar-dash/src/web/ui/feedback/Toast.tsx +0 -200
  406. package/bizar-dash/src/web/ui/feedback/Tooltip.tsx +0 -126
  407. package/bizar-dash/src/web/ui/feedback/feedback.css +0 -314
  408. package/bizar-dash/src/web/ui/feedback/index.ts +0 -43
  409. package/bizar-dash/src/web/ui/index.ts +0 -56
  410. package/bizar-dash/src/web/ui/layout/AppShell.tsx +0 -51
  411. package/bizar-dash/src/web/ui/layout/Breadcrumbs.tsx +0 -97
  412. package/bizar-dash/src/web/ui/layout/Panel.tsx +0 -73
  413. package/bizar-dash/src/web/ui/layout/PanelHeader.tsx +0 -39
  414. package/bizar-dash/src/web/ui/layout/Sidebar.tsx +0 -131
  415. package/bizar-dash/src/web/ui/layout/Tabs.tsx +0 -133
  416. package/bizar-dash/src/web/ui/layout/Topbar.tsx +0 -42
  417. package/bizar-dash/src/web/ui/layout/ViewHeader.tsx +0 -48
  418. package/bizar-dash/src/web/ui/layout/index.ts +0 -34
  419. package/bizar-dash/src/web/ui/layout/layout.css +0 -464
  420. package/bizar-dash/src/web/ui/navigation/CommandPalette.tsx +0 -199
  421. package/bizar-dash/src/web/ui/navigation/NavGroup.tsx +0 -95
  422. package/bizar-dash/src/web/ui/navigation/NavLink.tsx +0 -93
  423. package/bizar-dash/src/web/ui/navigation/index.ts +0 -17
  424. package/bizar-dash/src/web/ui/navigation/navigation.css +0 -343
  425. package/bizar-dash/src/web/ui/primitives/Box.tsx +0 -91
  426. package/bizar-dash/src/web/ui/primitives/Grid.tsx +0 -49
  427. package/bizar-dash/src/web/ui/primitives/Inline.tsx +0 -55
  428. package/bizar-dash/src/web/ui/primitives/Separator.tsx +0 -46
  429. package/bizar-dash/src/web/ui/primitives/Stack.tsx +0 -54
  430. package/bizar-dash/src/web/ui/primitives/VisuallyHidden.tsx +0 -26
  431. package/bizar-dash/src/web/ui/primitives/index.ts +0 -23
  432. package/bizar-dash/src/web/ui/primitives/primitives.css +0 -183
  433. package/bizar-dash/src/web/ui/styles/globals.css +0 -86
  434. package/bizar-dash/src/web/ui/styles/reset.css +0 -125
  435. package/bizar-dash/src/web/ui/styles/tokens.css +0 -208
  436. package/bizar-dash/src/web/ui/theme/ThemeProvider.tsx +0 -142
  437. package/bizar-dash/src/web/ui/theme/tokens.ts +0 -131
  438. package/bizar-dash/src/web/ui/theme/useTheme.ts +0 -22
  439. package/bizar-dash/src/web/ui/utils/cx.ts +0 -42
  440. package/bizar-dash/src/web/views/Activity.tsx +0 -1221
  441. package/bizar-dash/src/web/views/Agents.tsx +0 -964
  442. package/bizar-dash/src/web/views/Artifacts.tsx +0 -1494
  443. package/bizar-dash/src/web/views/BackgroundAgents.tsx +0 -822
  444. package/bizar-dash/src/web/views/Chat.tsx +0 -532
  445. package/bizar-dash/src/web/views/Config.tsx +0 -3
  446. package/bizar-dash/src/web/views/Doctor.tsx +0 -317
  447. package/bizar-dash/src/web/views/Eval.tsx +0 -372
  448. package/bizar-dash/src/web/views/EvalReport.tsx +0 -353
  449. package/bizar-dash/src/web/views/GoalPlanner.tsx +0 -158
  450. package/bizar-dash/src/web/views/Harness.tsx +0 -306
  451. package/bizar-dash/src/web/views/History.tsx +0 -353
  452. package/bizar-dash/src/web/views/Memory.tsx +0 -161
  453. package/bizar-dash/src/web/views/MiniMaxUsage.tsx +0 -942
  454. package/bizar-dash/src/web/views/ModView.tsx +0 -207
  455. package/bizar-dash/src/web/views/Mods.tsx +0 -706
  456. package/bizar-dash/src/web/views/Overview.tsx +0 -1364
  457. package/bizar-dash/src/web/views/Providers.tsx +0 -302
  458. package/bizar-dash/src/web/views/Schedules.tsx +0 -902
  459. package/bizar-dash/src/web/views/Settings.tsx +0 -308
  460. package/bizar-dash/src/web/views/Skills.tsx +0 -383
  461. package/bizar-dash/src/web/views/SpawnAgentModal.tsx +0 -221
  462. package/bizar-dash/src/web/views/Tasks.tsx +0 -789
  463. package/bizar-dash/src/web/views/Workspace.tsx +0 -294
  464. package/bizar-dash/src/web/views/glyphs/GlyphRenderer.tsx +0 -844
  465. package/bizar-dash/src/web/views/glyphs/components.tsx +0 -1098
  466. package/bizar-dash/src/web/views/memory/ConfigPanel.tsx +0 -426
  467. package/bizar-dash/src/web/views/memory/FromScreenshotPanel.tsx +0 -23
  468. package/bizar-dash/src/web/views/memory/GitSyncPanel.tsx +0 -220
  469. package/bizar-dash/src/web/views/memory/LightragPanel.tsx +0 -310
  470. package/bizar-dash/src/web/views/memory/MemoryGraphLegend.tsx +0 -29
  471. package/bizar-dash/src/web/views/memory/MemoryGraphPanel.tsx +0 -192
  472. package/bizar-dash/src/web/views/memory/MemoryGraphView.tsx +0 -336
  473. package/bizar-dash/src/web/views/memory/MemoryOverview.tsx +0 -367
  474. package/bizar-dash/src/web/views/memory/MemoryStatusCard.tsx +0 -160
  475. package/bizar-dash/src/web/views/memory/ObsidianPanel.tsx +0 -650
  476. package/bizar-dash/src/web/views/memory/SemanticSearchPanel.tsx +0 -197
  477. package/bizar-dash/src/web/views/memory/VaultFromClipboardPanel.tsx +0 -101
  478. package/bizar-dash/src/web/views/settings/ActivitySection.tsx +0 -205
  479. package/bizar-dash/src/web/views/settings/AgentSection.tsx +0 -305
  480. package/bizar-dash/src/web/views/settings/AuthSection.tsx +0 -159
  481. package/bizar-dash/src/web/views/settings/EnvVarsSection.tsx +0 -15
  482. package/bizar-dash/src/web/views/settings/GeneralSection.tsx +0 -128
  483. package/bizar-dash/src/web/views/settings/HeadroomSection.tsx +0 -39
  484. package/bizar-dash/src/web/views/settings/MemorySection.tsx +0 -154
  485. package/bizar-dash/src/web/views/settings/NetworkSection.tsx +0 -87
  486. package/bizar-dash/src/web/views/settings/NotificationsSection.tsx +0 -34
  487. package/bizar-dash/src/web/views/settings/SystemLlmSection.tsx +0 -81
  488. package/bizar-dash/src/web/views/settings/ThemeSection.tsx +0 -168
  489. package/bizar-dash/src/web/views/settings/UpdatesSection.tsx +0 -256
  490. package/bizar-dash/src/web/views/settings/WorkspacesSection.tsx +0 -189
@@ -1,1182 +0,0 @@
1
- /* ============================================================================
2
- * src/web/styles/memory.css
3
- *
4
- * v4.7.0 — Styles for the dedicated Memory tab (Memory.tsx + sub-panels).
5
- *
6
- * Reuses the dashboard's CSS variables (--bg, --bg-elev, --border, --text,
7
- * --text-dim, --accent, --radius, --space-*, etc.) and matches the existing
8
- * skills/settings tab patterns.
9
- * ========================================================================== */
10
-
11
- /* ── View layout ──────────────────────────────────────────────────────────── */
12
-
13
- .view-memory {
14
- display: flex;
15
- flex-direction: column;
16
- gap: var(--space-4, 16px);
17
- padding: 16px 20px 32px;
18
- max-width: 1400px;
19
- margin: 0 auto;
20
- width: 100%;
21
- }
22
-
23
- .memory-tab .view-header {
24
- display: flex;
25
- justify-content: space-between;
26
- align-items: flex-end;
27
- gap: 16px;
28
- flex-wrap: wrap;
29
- }
30
-
31
- /* ── Body grid (rail + main) ─────────────────────────────────────────────── */
32
-
33
- .memory-tab-body {
34
- display: grid;
35
- grid-template-columns: 200px 1fr;
36
- gap: var(--space-4, 16px);
37
- align-items: start;
38
- }
39
-
40
- @media (max-width: 900px) {
41
- .memory-tab-body {
42
- grid-template-columns: 1fr;
43
- }
44
- }
45
-
46
- /* ── Source rail ─────────────────────────────────────────────────────────── */
47
-
48
- .memory-source-rail {
49
- display: flex;
50
- flex-direction: column;
51
- gap: 4px;
52
- padding: 12px;
53
- background: var(--bg-elev, #12161f);
54
- border: 1px solid var(--border, #232a39);
55
- border-radius: var(--radius, 8px);
56
- position: sticky;
57
- top: 16px;
58
- }
59
-
60
- .memory-source-button {
61
- display: flex;
62
- align-items: center;
63
- gap: 10px;
64
- padding: 10px 12px;
65
- background: transparent;
66
- border: 1px solid transparent;
67
- border-radius: var(--radius-sm, 6px);
68
- color: var(--text-dim, #b4bcd0);
69
- font-size: 13px;
70
- font-weight: 500;
71
- cursor: pointer;
72
- text-align: left;
73
- transition: background var(--motion-fast, 120ms), color var(--motion-fast, 120ms), border-color var(--motion-fast, 120ms);
74
- }
75
-
76
- .memory-source-button:hover {
77
- background: var(--bg-elev-2, #1a1f2b);
78
- color: var(--text, #c9d1d9);
79
- }
80
-
81
- .memory-source-button-active {
82
- background: var(--accent-bg, rgba(139, 92, 246, 0.12));
83
- border-color: var(--accent-border, rgba(139, 92, 246, 0.4));
84
- color: var(--accent, #8b5cf6);
85
- }
86
-
87
- /* ── Main panel column ──────────────────────────────────────────────────── */
88
-
89
- .memory-main {
90
- display: flex;
91
- flex-direction: column;
92
- gap: var(--space-4, 16px);
93
- min-width: 0;
94
- }
95
-
96
- .memory-panel-content {
97
- display: flex;
98
- flex-direction: column;
99
- gap: var(--space-4, 16px);
100
- }
101
-
102
- /* ── Source pills (overview) ───────────────────────────────────────────── */
103
-
104
- .memory-source-pills {
105
- display: flex;
106
- gap: 8px;
107
- flex-wrap: wrap;
108
- }
109
-
110
- .memory-source-pill {
111
- display: flex;
112
- align-items: center;
113
- gap: 8px;
114
- padding: 8px 14px;
115
- background: var(--bg-elev, #12161f);
116
- border: 1px solid var(--border, #232a39);
117
- border-radius: var(--radius, 8px);
118
- color: var(--text, #c9d1d9);
119
- font-size: 12px;
120
- font-weight: 500;
121
- cursor: pointer;
122
- transition: border-color var(--motion-fast, 120ms);
123
- }
124
-
125
- .memory-source-pill:hover {
126
- border-color: var(--border-strong, #2d3648);
127
- }
128
-
129
- .memory-source-pill-status {
130
- font-size: 11px;
131
- padding: 2px 8px;
132
- border-radius: 10px;
133
- background: var(--bg-elev-2, #1a1f2b);
134
- color: var(--text-dim, #b4bcd0);
135
- text-transform: lowercase;
136
- letter-spacing: 0.02em;
137
- }
138
-
139
- .memory-source-pill-status.on {
140
- background: var(--success-soft, rgba(52, 211, 153, 0.15));
141
- color: var(--success, #34d399);
142
- }
143
-
144
- .memory-source-pill-status.off {
145
- background: var(--bg-elev-2, #1a1f2b);
146
- color: var(--text-dim, #b4bcd0);
147
- }
148
-
149
- .memory-source-pill-status.warn {
150
- background: var(--warning-soft, rgba(251, 191, 36, 0.15));
151
- color: var(--warning, #fbbf24);
152
- }
153
-
154
- .memory-source-pill-status.na {
155
- background: var(--bg-elev-2, #1a1f2b);
156
- color: var(--text-muted, #8b949e);
157
- }
158
-
159
- /* ── Health hero card ───────────────────────────────────────────────────── */
160
-
161
- .memory-health-hero {
162
- display: flex;
163
- align-items: center;
164
- gap: var(--space-5, 20px);
165
- }
166
-
167
- .memory-health-score {
168
- display: flex;
169
- flex-direction: column;
170
- align-items: center;
171
- justify-content: center;
172
- width: 88px;
173
- height: 88px;
174
- border-radius: 50%;
175
- border: 4px solid var(--accent, #8b5cf6);
176
- flex-shrink: 0;
177
- }
178
-
179
- .memory-health-score-value {
180
- font-size: 28px;
181
- font-weight: 700;
182
- line-height: 1;
183
- }
184
-
185
- .memory-health-score-label {
186
- font-size: 11px;
187
- color: var(--text-dim, #b4bcd0);
188
- margin-top: 2px;
189
- }
190
-
191
- .memory-health-meta {
192
- flex: 1;
193
- min-width: 0;
194
- }
195
-
196
- .memory-health-title {
197
- margin: 0 0 6px;
198
- font-size: 16px;
199
- font-weight: 600;
200
- display: flex;
201
- align-items: center;
202
- gap: 8px;
203
- }
204
-
205
- .memory-health-message {
206
- margin: 0 0 8px;
207
- color: var(--text-dim, #b4bcd0);
208
- font-size: 13px;
209
- }
210
-
211
- /* v6.x — Vault path display under the health hero so users always
212
- know where their notes live without scrolling to the Config panel. */
213
- .memory-health-vault {
214
- margin: 4px 0 12px;
215
- font-size: 12px;
216
- display: flex;
217
- align-items: center;
218
- gap: 4px;
219
- word-break: break-all;
220
- }
221
-
222
- .memory-health-vault-label {
223
- font-weight: 600;
224
- color: var(--text-dim, #b4bcd0);
225
- margin-right: 4px;
226
- }
227
-
228
- /* ── Stat grid + cards ──────────────────────────────────────────────────── */
229
-
230
- .memory-stat-grid {
231
- display: grid;
232
- grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
233
- gap: var(--space-3, 12px);
234
- }
235
-
236
- .memory-stat-card {
237
- display: flex;
238
- align-items: flex-start;
239
- gap: 12px;
240
- padding: 14px 16px;
241
- background: var(--bg-elev, #12161f);
242
- border: 1px solid var(--border, #232a39);
243
- border-radius: var(--radius, 8px);
244
- text-align: left;
245
- color: inherit;
246
- font: inherit;
247
- cursor: default;
248
- transition: border-color var(--motion-fast, 120ms), background var(--motion-fast, 120ms);
249
- }
250
-
251
- button.memory-stat-card {
252
- background: var(--bg-elev, #12161f);
253
- border: 1px solid var(--border, #232a39);
254
- border-radius: var(--radius, 8px);
255
- cursor: pointer;
256
- }
257
-
258
- .memory-stat-card-clickable:hover {
259
- border-color: var(--accent-border, rgba(139, 92, 246, 0.4));
260
- background: var(--accent-soft, rgba(139, 92, 246, 0.08));
261
- }
262
-
263
- .memory-stat-icon {
264
- display: flex;
265
- align-items: center;
266
- justify-content: center;
267
- width: 32px;
268
- height: 32px;
269
- border-radius: var(--radius-sm, 6px);
270
- background: var(--accent-bg, rgba(139, 92, 246, 0.12));
271
- color: var(--accent, #8b5cf6);
272
- flex-shrink: 0;
273
- }
274
-
275
- .memory-stat-body {
276
- flex: 1;
277
- min-width: 0;
278
- }
279
-
280
- .memory-stat-label {
281
- font-size: 11px;
282
- text-transform: uppercase;
283
- letter-spacing: 0.06em;
284
- color: var(--text-dim, #b4bcd0);
285
- margin-bottom: 2px;
286
- }
287
-
288
- .memory-stat-value {
289
- font-size: 16px;
290
- font-weight: 600;
291
- line-height: 1.2;
292
- color: var(--text-strong, #f0f6fc);
293
- }
294
-
295
- .memory-stat-sub {
296
- font-size: 12px;
297
- margin-top: 2px;
298
- }
299
-
300
- /* ── Health check rows ──────────────────────────────────────────────────── */
301
-
302
- .memory-check-list {
303
- list-style: none;
304
- margin: 0;
305
- padding: 0;
306
- display: flex;
307
- flex-direction: column;
308
- gap: 6px;
309
- }
310
-
311
- .memory-check-row {
312
- display: grid;
313
- grid-template-columns: 24px 140px 1fr;
314
- gap: 8px;
315
- align-items: center;
316
- padding: 8px 10px;
317
- border: 1px solid var(--border, #232a39);
318
- border-radius: var(--radius-sm, 6px);
319
- background: var(--bg-elev, #12161f);
320
- font-size: 13px;
321
- }
322
-
323
- .memory-check-icon {
324
- display: flex;
325
- align-items: center;
326
- justify-content: center;
327
- }
328
-
329
- .memory-check-name {
330
- font-family: var(--font-mono, monospace);
331
- font-size: 12px;
332
- color: var(--text-strong, #f0f6fc);
333
- }
334
-
335
- .memory-check-detail {
336
- font-size: 12px;
337
- white-space: nowrap;
338
- overflow: hidden;
339
- text-overflow: ellipsis;
340
- }
341
-
342
- /* ── Action row (Start/Stop/Restart etc.) ──────────────────────────────── */
343
-
344
- .memory-action-row {
345
- display: flex;
346
- gap: 8px;
347
- flex-wrap: wrap;
348
- margin-top: 12px;
349
- }
350
-
351
- /* ── Search rows ────────────────────────────────────────────────────────── */
352
-
353
- .memory-search-row {
354
- display: flex;
355
- gap: 8px;
356
- margin-top: 8px;
357
- }
358
-
359
- .memory-search-row .input {
360
- flex: 1;
361
- min-width: 0;
362
- }
363
-
364
- .memory-query-result {
365
- margin-top: 12px;
366
- padding: 10px 12px;
367
- border: 1px solid var(--border, #232a39);
368
- border-radius: var(--radius, 8px);
369
- background: var(--bg-elev, #12161f);
370
- max-height: 280px;
371
- overflow: auto;
372
- }
373
-
374
- .memory-query-result.ok {
375
- border-color: var(--accent-border, rgba(139, 92, 246, 0.4));
376
- }
377
-
378
- .memory-query-result.err {
379
- border-color: var(--error, #f87171);
380
- }
381
-
382
- .memory-query-result pre {
383
- margin: 0;
384
- white-space: pre-wrap;
385
- word-break: break-word;
386
- font-size: 12px;
387
- color: var(--text, #c9d1d9);
388
- }
389
-
390
- /* ── Source toggle chips (semantic search) ──────────────────────────────── */
391
-
392
- .memory-source-toggle-row {
393
- display: flex;
394
- gap: 8px;
395
- align-items: center;
396
- margin-top: 12px;
397
- flex-wrap: wrap;
398
- }
399
-
400
- .memory-toggle-chip {
401
- display: inline-flex;
402
- align-items: center;
403
- gap: 6px;
404
- padding: 6px 10px;
405
- background: transparent;
406
- border: 1px solid var(--border, #232a39);
407
- border-radius: 999px;
408
- color: var(--text-dim, #b4bcd0);
409
- font-size: 12px;
410
- font-weight: 500;
411
- cursor: pointer;
412
- transition: border-color var(--motion-fast, 120ms), color var(--motion-fast, 120ms);
413
- }
414
-
415
- .memory-toggle-chip-active {
416
- border-color: var(--accent, #8b5cf6);
417
- color: var(--accent, #8b5cf6);
418
- background: var(--accent-bg, rgba(139, 92, 246, 0.12));
419
- }
420
-
421
- /* ── Config rows ────────────────────────────────────────────────────────── */
422
-
423
- .memory-config-form {
424
- display: flex;
425
- flex-direction: column;
426
- gap: 12px;
427
- margin-top: 12px;
428
- }
429
-
430
- .memory-config-row-stack {
431
- display: flex;
432
- flex-direction: column;
433
- gap: 4px;
434
- font-size: 12px;
435
- color: var(--text-dim, #b4bcd0);
436
- }
437
-
438
- .memory-config-row-stack span {
439
- font-size: 11px;
440
- text-transform: uppercase;
441
- letter-spacing: 0.06em;
442
- }
443
-
444
- .memory-config-row-inline {
445
- display: flex;
446
- align-items: center;
447
- gap: 12px;
448
- font-size: 12px;
449
- color: var(--text-dim, #b4bcd0);
450
- }
451
-
452
- .memory-config-row-label {
453
- min-width: 130px;
454
- font-size: 11px;
455
- text-transform: uppercase;
456
- letter-spacing: 0.06em;
457
- }
458
-
459
- .memory-config-row-control {
460
- flex: 1;
461
- }
462
-
463
- .memory-switch {
464
- display: inline-flex;
465
- align-items: center;
466
- gap: 8px;
467
- font-size: 13px;
468
- color: var(--text, #c9d1d9);
469
- }
470
-
471
- .memory-switch input[type="checkbox"] {
472
- accent-color: var(--accent, #8b5cf6);
473
- }
474
-
475
- /* Definition list (config + repos) */
476
- dl.memory-config-row {
477
- display: grid;
478
- grid-template-columns: 130px 1fr;
479
- gap: 8px 16px;
480
- margin: 12px 0 0;
481
- }
482
-
483
- dl.memory-config-row dt {
484
- font-size: 11px;
485
- text-transform: uppercase;
486
- letter-spacing: 0.06em;
487
- color: var(--text-dim, #b4bcd0);
488
- }
489
-
490
- dl.memory-config-row dd {
491
- margin: 0;
492
- font-size: 13px;
493
- color: var(--text-strong, #f0f6fc);
494
- word-break: break-all;
495
- }
496
-
497
- /* ── Obsidian panel 3-col layout ─────────────────────────────────────────── */
498
-
499
- .memory-obsidian-grid {
500
- display: grid;
501
- grid-template-columns: 240px 360px 1fr;
502
- gap: var(--space-3, 12px);
503
- align-items: start;
504
- }
505
-
506
- @media (max-width: 1200px) {
507
- .memory-obsidian-grid {
508
- grid-template-columns: 200px 1fr;
509
- }
510
- .memory-obsidian-detail-col {
511
- grid-column: 1 / -1;
512
- }
513
- }
514
-
515
- @media (max-width: 720px) {
516
- .memory-obsidian-grid {
517
- grid-template-columns: 1fr;
518
- }
519
- }
520
-
521
- .memory-tree-card {
522
- position: sticky;
523
- top: 16px;
524
- max-height: 70vh;
525
- overflow: auto;
526
- }
527
-
528
- .memory-tree-body {
529
- margin-top: 8px;
530
- display: flex;
531
- flex-direction: column;
532
- gap: 1px;
533
- }
534
-
535
- .memory-tree-folder {
536
- display: flex;
537
- flex-direction: column;
538
- }
539
-
540
- .memory-tree-children {
541
- display: flex;
542
- flex-direction: column;
543
- gap: 1px;
544
- }
545
-
546
- .memory-tree-node {
547
- display: flex;
548
- align-items: center;
549
- gap: 6px;
550
- padding: 4px 6px;
551
- background: transparent;
552
- border: 1px solid transparent;
553
- border-radius: var(--radius-sm, 4px);
554
- color: var(--text-dim, #b4bcd0);
555
- font-size: 12px;
556
- cursor: pointer;
557
- text-align: left;
558
- transition: background var(--motion-fast, 120ms), color var(--motion-fast, 120ms);
559
- }
560
-
561
- .memory-tree-node:hover {
562
- background: var(--bg-elev-2, #1a1f2b);
563
- color: var(--text, #c9d1d9);
564
- }
565
-
566
- .memory-tree-node-folder {
567
- font-weight: 500;
568
- color: var(--text, #c9d1d9);
569
- }
570
-
571
- .memory-tree-node-active {
572
- background: var(--accent-bg, rgba(139, 92, 246, 0.12));
573
- color: var(--accent, #8b5cf6);
574
- }
575
-
576
- /* ── Note list + cards ──────────────────────────────────────────────────── */
577
-
578
- .memory-obsidian-list-col {
579
- display: flex;
580
- flex-direction: column;
581
- gap: 8px;
582
- min-width: 0;
583
- }
584
-
585
- .memory-list-toolbar {
586
- display: flex;
587
- gap: 8px;
588
- align-items: center;
589
- flex-wrap: wrap;
590
- }
591
-
592
- .memory-list-toolbar .search-input {
593
- flex: 1;
594
- min-width: 160px;
595
- }
596
-
597
- .memory-note-list {
598
- list-style: none;
599
- margin: 0;
600
- padding: 0;
601
- display: flex;
602
- flex-direction: column;
603
- gap: 4px;
604
- }
605
-
606
- .memory-note-card {
607
- display: flex;
608
- align-items: center;
609
- gap: 4px;
610
- padding: 8px 10px;
611
- background: var(--bg-elev, #12161f);
612
- border: 1px solid var(--border, #232a39);
613
- border-radius: var(--radius, 8px);
614
- transition: border-color var(--motion-fast, 120ms);
615
- }
616
-
617
- .memory-note-card:hover {
618
- border-color: var(--border-strong, #2d3648);
619
- }
620
-
621
- .memory-note-card-active {
622
- border-color: var(--accent, #8b5cf6);
623
- background: var(--accent-bg, rgba(139, 92, 246, 0.12));
624
- }
625
-
626
- .memory-note-card-main {
627
- flex: 1;
628
- display: flex;
629
- flex-direction: column;
630
- gap: 2px;
631
- background: transparent;
632
- border: none;
633
- text-align: left;
634
- cursor: pointer;
635
- color: inherit;
636
- font: inherit;
637
- padding: 0;
638
- min-width: 0;
639
- }
640
-
641
- .memory-note-card-title {
642
- display: flex;
643
- align-items: center;
644
- gap: 6px;
645
- font-size: 13px;
646
- font-weight: 500;
647
- color: var(--text-strong, #f0f6fc);
648
- overflow: hidden;
649
- text-overflow: ellipsis;
650
- white-space: nowrap;
651
- }
652
-
653
- .memory-note-card-meta {
654
- display: flex;
655
- align-items: center;
656
- gap: 6px;
657
- font-size: 11px;
658
- color: var(--text-dim, #b4bcd0);
659
- overflow: hidden;
660
- }
661
-
662
- .memory-note-card-meta code {
663
- font-size: 11px;
664
- overflow: hidden;
665
- text-overflow: ellipsis;
666
- white-space: nowrap;
667
- }
668
-
669
- .memory-note-card-actions {
670
- display: flex;
671
- gap: 2px;
672
- flex-shrink: 0;
673
- }
674
-
675
- .memory-pill-warn {
676
- display: inline-block;
677
- font-size: 10px;
678
- padding: 1px 6px;
679
- border-radius: 8px;
680
- background: var(--warning-soft, rgba(251, 191, 36, 0.15));
681
- color: var(--warning, #fbbf24);
682
- }
683
-
684
- .memory-pill {
685
- display: inline-block;
686
- font-size: 10px;
687
- padding: 1px 6px;
688
- border-radius: 8px;
689
- font-weight: 600;
690
- }
691
-
692
- .memory-pill-ok {
693
- background: var(--success-soft, rgba(52, 211, 153, 0.15));
694
- color: var(--success, #34d399);
695
- }
696
-
697
- .memory-pill-warn {
698
- background: var(--warning-soft, rgba(251, 191, 36, 0.15));
699
- color: var(--warning, #fbbf24);
700
- }
701
-
702
- /* ── Note detail pane ───────────────────────────────────────────────────── */
703
-
704
- .memory-obsidian-detail-col {
705
- min-width: 0;
706
- background: var(--bg-elev, #12161f);
707
- border: 1px solid var(--border, #232a39);
708
- border-radius: var(--radius, 8px);
709
- padding: 14px 16px;
710
- }
711
-
712
- .memory-note-detail-head {
713
- display: flex;
714
- align-items: center;
715
- justify-content: space-between;
716
- gap: 8px;
717
- }
718
-
719
- .memory-note-detail-head h3 {
720
- margin: 0;
721
- font-size: 15px;
722
- font-weight: 600;
723
- }
724
-
725
- .memory-note-detail-meta {
726
- display: flex;
727
- align-items: center;
728
- gap: 8px;
729
- font-size: 12px;
730
- color: var(--text-dim, #b4bcd0);
731
- margin: 4px 0 12px;
732
- }
733
-
734
- .memory-note-body {
735
- margin: 0;
736
- padding: 12px;
737
- background: var(--bg, #0b0e14);
738
- border: 1px solid var(--border, #232a39);
739
- border-radius: var(--radius-sm, 6px);
740
- white-space: pre-wrap;
741
- word-break: break-word;
742
- max-height: 360px;
743
- overflow: auto;
744
- }
745
-
746
- .memory-tag-row {
747
- display: flex;
748
- gap: 6px;
749
- flex-wrap: wrap;
750
- margin-bottom: 12px;
751
- }
752
-
753
- .memory-tag {
754
- display: inline-block;
755
- font-size: 11px;
756
- padding: 2px 8px;
757
- border-radius: 999px;
758
- background: var(--accent-bg, rgba(139, 92, 246, 0.12));
759
- color: var(--accent, #8b5cf6);
760
- }
761
-
762
- .memory-backlinks {
763
- margin-top: 16px;
764
- padding-top: 12px;
765
- border-top: 1px solid var(--border, #232a39);
766
- }
767
-
768
- .memory-backlinks h4 {
769
- margin: 0 0 8px;
770
- font-size: 12px;
771
- text-transform: uppercase;
772
- letter-spacing: 0.06em;
773
- color: var(--text-dim, #b4bcd0);
774
- }
775
-
776
- .memory-backlinks ul {
777
- list-style: none;
778
- margin: 0;
779
- padding: 0;
780
- display: flex;
781
- flex-direction: column;
782
- gap: 8px;
783
- }
784
-
785
- .memory-backlinks li {
786
- padding: 6px 8px;
787
- background: var(--bg, #0b0e14);
788
- border: 1px solid var(--border, #232a39);
789
- border-radius: var(--radius-sm, 6px);
790
- }
791
-
792
- .memory-backlinks li code {
793
- font-size: 11px;
794
- }
795
-
796
- /* ── Note editor modal ──────────────────────────────────────────────────── */
797
-
798
- .memory-editor-modal {
799
- display: flex;
800
- flex-direction: column;
801
- }
802
-
803
- .memory-editor-textarea {
804
- width: 100%;
805
- padding: 8px 10px;
806
- background: var(--bg, #0b0e14);
807
- border: 1px solid var(--border, #232a39);
808
- border-radius: var(--radius-sm, 6px);
809
- color: var(--text, #c9d1d9);
810
- font-family: var(--font-mono, monospace);
811
- font-size: 13px;
812
- line-height: 1.5;
813
- resize: vertical;
814
- }
815
-
816
- /* ── Git status row ─────────────────────────────────────────────────────── */
817
-
818
- .memory-git-status-row {
819
- display: flex;
820
- gap: 8px;
821
- flex-wrap: wrap;
822
- margin-top: 8px;
823
- }
824
-
825
- .memory-git-status-pill {
826
- display: inline-flex;
827
- align-items: center;
828
- gap: 4px;
829
- padding: 4px 10px;
830
- border-radius: 999px;
831
- font-size: 11px;
832
- font-weight: 500;
833
- }
834
-
835
- .memory-git-status-pill.ok {
836
- background: var(--success-soft, rgba(52, 211, 153, 0.15));
837
- color: var(--success, #34d399);
838
- }
839
-
840
- .memory-git-status-pill.warn {
841
- background: var(--warning-soft, rgba(251, 191, 36, 0.15));
842
- color: var(--warning, #fbbf24);
843
- }
844
-
845
- .memory-diff-files {
846
- list-style: none;
847
- margin: 8px 0;
848
- padding: 0;
849
- display: flex;
850
- flex-wrap: wrap;
851
- gap: 6px;
852
- }
853
-
854
- .memory-diff-files li code {
855
- font-size: 11px;
856
- padding: 2px 8px;
857
- border-radius: var(--radius-sm, 4px);
858
- background: var(--bg, #0b0e14);
859
- border: 1px solid var(--border, #232a39);
860
- }
861
-
862
- /* ── Log tail + small badges ────────────────────────────────────────────── */
863
-
864
- .memory-log-tail {
865
- margin: 8px 0 0;
866
- padding: 10px 12px;
867
- background: var(--bg, #0b0e14);
868
- border: 1px solid var(--border, #232a39);
869
- border-radius: var(--radius-sm, 6px);
870
- white-space: pre-wrap;
871
- word-break: break-word;
872
- max-height: 280px;
873
- overflow: auto;
874
- color: var(--text-dim, #b4bcd0);
875
- }
876
-
877
- .memory-mini-badge {
878
- position: absolute;
879
- top: -4px;
880
- right: -6px;
881
- background: var(--accent, #8b5cf6);
882
- color: var(--text-strong, #f0f6fc);
883
- font-size: 9px;
884
- padding: 0 4px;
885
- border-radius: 999px;
886
- line-height: 14px;
887
- font-weight: 600;
888
- }
889
-
890
- /* ── Search result rows ─────────────────────────────────────────────────── */
891
-
892
- .memory-search-result-list {
893
- list-style: none;
894
- margin: 0;
895
- padding: 0;
896
- display: flex;
897
- flex-direction: column;
898
- gap: 8px;
899
- }
900
-
901
- .memory-search-result {
902
- padding: 10px 12px;
903
- background: var(--bg, #0b0e14);
904
- border: 1px solid var(--border, #232a39);
905
- border-radius: var(--radius-sm, 6px);
906
- }
907
-
908
- .memory-search-result-head {
909
- display: flex;
910
- align-items: center;
911
- justify-content: space-between;
912
- gap: 8px;
913
- margin-bottom: 4px;
914
- }
915
-
916
- .memory-search-result-head code {
917
- font-size: 11px;
918
- }
919
-
920
- .memory-search-result p {
921
- margin: 0;
922
- white-space: pre-wrap;
923
- }
924
-
925
- /* ── Misc helpers ───────────────────────────────────────────────────────── */
926
-
927
- .memory-spin {
928
- animation: memory-spin 1s linear infinite;
929
- }
930
-
931
- @keyframes memory-spin {
932
- to { transform: rotate(360deg); }
933
- }
934
-
935
- /* ── Memory status card on Overview ─────────────────────────────────────── */
936
-
937
- .memory-status-card-grid {
938
- display: grid;
939
- grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
940
- gap: var(--space-3, 12px);
941
- margin-top: 8px;
942
- }
943
-
944
- .memory-status-card-cell {
945
- display: flex;
946
- flex-direction: column;
947
- gap: 4px;
948
- padding: 10px 12px;
949
- background: var(--bg-elev-2, #1a1f2b);
950
- border: 1px solid var(--border, #232a39);
951
- border-radius: var(--radius-sm, 6px);
952
- }
953
-
954
- .memory-status-card-label {
955
- display: flex;
956
- align-items: center;
957
- gap: 4px;
958
- font-size: 11px;
959
- text-transform: uppercase;
960
- letter-spacing: 0.06em;
961
- color: var(--text-dim, #b4bcd0);
962
- }
963
-
964
- .memory-status-card-value {
965
- font-size: 16px;
966
- font-weight: 600;
967
- color: var(--text-strong, #f0f6fc);
968
- }
969
-
970
- .memory-status-card-sub {
971
- font-size: 11px;
972
- }
973
-
974
- /* ── Memory Graph ─────────────────────────────────────────────────────── */
975
-
976
- .memory-graph-canvas {
977
- display: block;
978
- background: var(--bg, #0b0e14);
979
- border: 1px solid var(--border, #232a39);
980
- border-radius: var(--radius, 8px);
981
- user-select: none;
982
- }
983
-
984
- .memory-graph-canvas-svg {
985
- height: 480px;
986
- }
987
-
988
- .memory-graph-node {
989
- transition: opacity var(--motion-fast, 120ms);
990
- }
991
-
992
- .memory-graph-node:hover circle {
993
- opacity: 1;
994
- }
995
-
996
- .memory-graph-tooltip {
997
- position: absolute;
998
- padding: 6px 10px;
999
- background: var(--bg-elev, #12161f);
1000
- border: 1px solid var(--border, #232a39);
1001
- border-radius: var(--radius-sm, 6px);
1002
- font-size: 12px;
1003
- color: var(--text, #c9d1d9);
1004
- pointer-events: none;
1005
- z-index: 10;
1006
- max-width: 200px;
1007
- white-space: nowrap;
1008
- overflow: hidden;
1009
- text-overflow: ellipsis;
1010
- }
1011
-
1012
- .memory-graph-controls {
1013
- display: flex;
1014
- flex-direction: column;
1015
- gap: 10px;
1016
- margin-top: 12px;
1017
- }
1018
-
1019
- .memory-graph-search-row {
1020
- display: flex;
1021
- gap: 8px;
1022
- align-items: center;
1023
- flex-wrap: wrap;
1024
- }
1025
-
1026
- .memory-graph-legend {
1027
- display: flex;
1028
- gap: 12px;
1029
- flex-wrap: wrap;
1030
- align-items: center;
1031
- }
1032
-
1033
- .memory-graph-legend-item {
1034
- display: flex;
1035
- align-items: center;
1036
- gap: 6px;
1037
- font-size: 12px;
1038
- color: var(--text-dim, #b4bcd0);
1039
- }
1040
-
1041
- .memory-graph-legend-dot {
1042
- display: inline-block;
1043
- width: 10px;
1044
- height: 10px;
1045
- border-radius: 50%;
1046
- flex-shrink: 0;
1047
- }
1048
-
1049
- .memory-graph-stats {
1050
- display: flex;
1051
- gap: 8px;
1052
- align-items: center;
1053
- font-size: 13px;
1054
- color: var(--text, #c9d1d9);
1055
- }
1056
-
1057
- /* ── Voice Notes ─────────────────────────────────────────────────────────── */
1058
-
1059
- .voice-recorder {
1060
- display: flex;
1061
- align-items: center;
1062
- gap: 8px;
1063
- }
1064
-
1065
- .voice-recorder-row {
1066
- display: flex;
1067
- align-items: center;
1068
- gap: 8px;
1069
- padding: 8px 0;
1070
- }
1071
-
1072
- .voice-note-list {
1073
- display: flex;
1074
- flex-direction: column;
1075
- gap: 6px;
1076
- }
1077
-
1078
- .voice-note-card {
1079
- display: flex;
1080
- flex-direction: column;
1081
- gap: 6px;
1082
- padding: 10px 12px;
1083
- background: var(--bg-elev, #12161f);
1084
- border: 1px solid var(--border, #232a39);
1085
- border-radius: var(--radius, 8px);
1086
- transition: border-color var(--motion-fast, 120ms);
1087
- }
1088
-
1089
- .voice-note-card:hover {
1090
- border-color: var(--border-strong, #2d3648);
1091
- }
1092
-
1093
- .voice-note-card-head {
1094
- display: flex;
1095
- align-items: center;
1096
- justify-content: space-between;
1097
- gap: 8px;
1098
- }
1099
-
1100
- .voice-note-card-meta {
1101
- display: flex;
1102
- align-items: center;
1103
- gap: 8px;
1104
- font-size: 11px;
1105
- color: var(--text-dim, #b4bcd0);
1106
- }
1107
-
1108
- .voice-note-date {
1109
- font-family: var(--font-mono, monospace);
1110
- }
1111
-
1112
- .voice-note-duration {
1113
- font-family: var(--font-mono, monospace);
1114
- padding: 1px 6px;
1115
- background: var(--bg-elev-2, #1a1f2b);
1116
- border-radius: 4px;
1117
- }
1118
-
1119
- .voice-note-card-actions {
1120
- display: flex;
1121
- gap: 4px;
1122
- flex-shrink: 0;
1123
- }
1124
-
1125
- .voice-note-transcript {
1126
- margin: 0;
1127
- font-size: 13px;
1128
- color: var(--text, #c9d1d9);
1129
- white-space: pre-wrap;
1130
- word-break: break-word;
1131
- line-height: 1.5;
1132
- }
1133
-
1134
- .voice-note-no-transcript {
1135
- margin: 0;
1136
- font-style: italic;
1137
- }
1138
-
1139
- /* ─────────────────────────────────────────────────────────────────────
1140
- v5.4 — Mobile Memory view
1141
- ───────────────────────────────────────────────────────────────────── */
1142
-
1143
- .mobile-memory {
1144
- padding: 16px;
1145
- }
1146
-
1147
- .mobile-memory-tabs {
1148
- display: flex;
1149
- gap: 6px;
1150
- margin-bottom: 16px;
1151
- overflow-x: auto;
1152
- padding-bottom: 4px;
1153
- -webkit-overflow-scrolling: touch;
1154
- }
1155
-
1156
- .mobile-memory-tab {
1157
- display: flex;
1158
- align-items: center;
1159
- gap: 6px;
1160
- padding: 6px 12px;
1161
- background: var(--surface-2, var(--bg-elev-2, #1e1e2e));
1162
- border: 1px solid var(--border, #3a3a4a);
1163
- border-radius: 14px;
1164
- color: var(--text-dim, #888);
1165
- font-size: 12px;
1166
- font-weight: 500;
1167
- white-space: nowrap;
1168
- cursor: pointer;
1169
- transition: background 120ms, color 120ms, border-color 120ms;
1170
- }
1171
-
1172
- .mobile-memory-tab.is-active {
1173
- background: var(--accent, #8b5cf6);
1174
- color: #fff;
1175
- border-color: var(--accent, #8b5cf6);
1176
- }
1177
-
1178
- .mobile-memory-content {
1179
- display: flex;
1180
- flex-direction: column;
1181
- gap: 12px;
1182
- }