@burdenoff/microfe-vibecontrols 2026.623.1 → 2026.623.3

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 (295) hide show
  1. package/dist/components/actions/ActionCard.js +2 -2
  2. package/dist/components/actions/ActionCard.js.map +1 -1
  3. package/dist/components/actions/ActionTypeBadge.js +1 -1
  4. package/dist/components/actions/ActionTypeBadge.js.map +1 -1
  5. package/dist/components/actions/ExecutionHistory.js +1 -1
  6. package/dist/components/actions/ExecutionHistory.js.map +1 -1
  7. package/dist/components/agent-manager/AgentManagerAdminBar.js +1 -1
  8. package/dist/components/agent-manager/AgentManagerAdminBar.js.map +1 -1
  9. package/dist/components/agent-manager/AgentManagerChatPane.js +2 -2
  10. package/dist/components/agent-manager/AgentManagerChatPane.js.map +1 -1
  11. package/dist/components/agent-manager/AgentManagerInputArea.js +4 -4
  12. package/dist/components/agent-manager/AgentManagerInputArea.js.map +1 -1
  13. package/dist/components/agent-manager/AgentManagerLayout.js +1 -1
  14. package/dist/components/agent-manager/AgentManagerLayout.js.map +1 -1
  15. package/dist/components/agent-manager/AgentManagerMessageItem.js +1 -1
  16. package/dist/components/agent-manager/AgentManagerMessageItem.js.map +1 -1
  17. package/dist/components/agent-manager/AgentManagerSidebar.js +5 -5
  18. package/dist/components/agent-manager/AgentManagerSidebar.js.map +1 -1
  19. package/dist/components/agent-manager/AgentManagerTab.js +1 -1
  20. package/dist/components/agent-manager/AgentManagerTab.js.map +1 -1
  21. package/dist/components/agent-manager/AgentManagerTabBar.js +1 -1
  22. package/dist/components/agent-manager/AgentManagerTabBar.js.map +1 -1
  23. package/dist/components/agent-manager/BridleConfigPanel.js +24 -24
  24. package/dist/components/agent-manager/BridleConfigPanel.js.map +1 -1
  25. package/dist/components/agent-manager/PluginInstallModal.js +1 -1
  26. package/dist/components/agent-manager/PluginInstallModal.js.map +1 -1
  27. package/dist/components/agent-manager/ProfilesPanel.js +5 -5
  28. package/dist/components/agent-manager/ProfilesPanel.js.map +1 -1
  29. package/dist/components/agent-manager/controls/AutonomySelector.js +1 -1
  30. package/dist/components/agent-manager/controls/AutonomySelector.js.map +1 -1
  31. package/dist/components/agent-manager/controls/SdkSelector.js +1 -1
  32. package/dist/components/agent-manager/controls/SdkSelector.js.map +1 -1
  33. package/dist/components/agent-manager/controls/VoiceToggle.js +1 -1
  34. package/dist/components/agent-manager/controls/VoiceToggle.js.map +1 -1
  35. package/dist/components/agent-manager/detail/SessionConfigPanel.js +6 -6
  36. package/dist/components/agent-manager/detail/SessionConfigPanel.js.map +1 -1
  37. package/dist/components/agent-manager/detail/SessionLogsPanel.js +5 -5
  38. package/dist/components/agent-manager/detail/SessionLogsPanel.js.map +1 -1
  39. package/dist/components/agent-manager/detail/SessionToolsPanel.js +1 -1
  40. package/dist/components/agent-manager/detail/SessionToolsPanel.js.map +1 -1
  41. package/dist/components/agent-manager/dialogs/NewSessionDialog.js +2 -2
  42. package/dist/components/agent-manager/dialogs/NewSessionDialog.js.map +1 -1
  43. package/dist/components/agent-manager/dialogs/RenameSessionDialog.js +1 -1
  44. package/dist/components/agent-manager/dialogs/RenameSessionDialog.js.map +1 -1
  45. package/dist/components/agents/AgentCard.js +14 -11
  46. package/dist/components/agents/AgentCard.js.map +1 -1
  47. package/dist/components/ai/AIContextsTab.js +1 -1
  48. package/dist/components/ai/AIContextsTab.js.map +1 -1
  49. package/dist/components/ai/AIOverviewTab.js +4 -4
  50. package/dist/components/ai/AIOverviewTab.js.map +1 -1
  51. package/dist/components/ai/AIPlanPanel.js +4 -4
  52. package/dist/components/ai/AIPlanPanel.js.map +1 -1
  53. package/dist/components/ai/AIPlaygroundTab.js +1 -1
  54. package/dist/components/ai/AIPlaygroundTab.js.map +1 -1
  55. package/dist/components/ai/AIPromptsTab.js +2 -2
  56. package/dist/components/ai/AIPromptsTab.js.map +1 -1
  57. package/dist/components/ai/AIProviderCredentialsCard.js +4 -4
  58. package/dist/components/ai/AIProviderCredentialsCard.js.map +1 -1
  59. package/dist/components/ai/AIQueueTab.js +4 -4
  60. package/dist/components/ai/AIQueueTab.js.map +1 -1
  61. package/dist/components/ai/AISessionsTab.js +4 -4
  62. package/dist/components/ai/AISessionsTab.js.map +1 -1
  63. package/dist/components/ai/AITasksTab.js +1 -1
  64. package/dist/components/ai/AITasksTab.js.map +1 -1
  65. package/dist/components/ai/ClaudeCredentialsCard.js +3 -3
  66. package/dist/components/ai/ClaudeCredentialsCard.js.map +1 -1
  67. package/dist/components/ai/PluginHarnessPicker.js +3 -3
  68. package/dist/components/ai/PluginHarnessPicker.js.map +1 -1
  69. package/dist/components/analytics/AnalyticsBreakdownChart.js +8 -8
  70. package/dist/components/analytics/AnalyticsBreakdownChart.js.map +1 -1
  71. package/dist/components/analytics/AnalyticsTimeSeriesChart.js +5 -5
  72. package/dist/components/analytics/AnalyticsTimeSeriesChart.js.map +1 -1
  73. package/dist/components/audit/AuditDeleteDialog.js +2 -2
  74. package/dist/components/audit/AuditDeleteDialog.js.map +1 -1
  75. package/dist/components/audit/AuditExportButton.js +5 -5
  76. package/dist/components/audit/AuditExportButton.js.map +1 -1
  77. package/dist/components/audit/AuditLogDetail.js +9 -9
  78. package/dist/components/audit/AuditLogDetail.js.map +1 -1
  79. package/dist/components/audit/AuditLogFilters.js +1 -1
  80. package/dist/components/audit/AuditLogFilters.js.map +1 -1
  81. package/dist/components/audit/AuditLogStats.js +1 -1
  82. package/dist/components/audit/AuditLogStats.js.map +1 -1
  83. package/dist/components/audit/AuditLogTable.js +28 -28
  84. package/dist/components/audit/AuditLogTable.js.map +1 -1
  85. package/dist/components/catalog/CatalogCard.js +3 -3
  86. package/dist/components/catalog/CatalogCard.js.map +1 -1
  87. package/dist/components/catalog/CatalogForm.js +1 -1
  88. package/dist/components/catalog/CatalogForm.js.map +1 -1
  89. package/dist/components/common/ActionAgentTargetNotice.js +6 -6
  90. package/dist/components/common/ActionAgentTargetNotice.js.map +1 -1
  91. package/dist/components/common/CommandEditor.js +1 -1
  92. package/dist/components/common/CommandEditor.js.map +1 -1
  93. package/dist/components/docs/DocsPageTree.js +1 -1
  94. package/dist/components/docs/DocsPageTree.js.map +1 -1
  95. package/dist/components/docs/DocsPreviewPanel.js +1 -1
  96. package/dist/components/docs/DocsPreviewPanel.js.map +1 -1
  97. package/dist/components/docs/DocsRevisionHistory.js +4 -4
  98. package/dist/components/docs/DocsRevisionHistory.js.map +1 -1
  99. package/dist/components/docs/DocsSettingsPanel.js +7 -7
  100. package/dist/components/docs/DocsSettingsPanel.js.map +1 -1
  101. package/dist/components/docs/DocsTabPanel.js +1 -1
  102. package/dist/components/docs/DocsTabPanel.js.map +1 -1
  103. package/dist/components/graph/ConnectionPermissionsDialog.js +2 -2
  104. package/dist/components/graph/ConnectionPermissionsDialog.js.map +1 -1
  105. package/dist/components/graph/MeshDeployWizard.js +3 -3
  106. package/dist/components/graph/MeshDeployWizard.js.map +1 -1
  107. package/dist/components/graph/MeshRequestPanel.js +2 -2
  108. package/dist/components/graph/MeshRequestPanel.js.map +1 -1
  109. package/dist/components/idp-components/ComponentCard.js +5 -5
  110. package/dist/components/idp-components/ComponentCard.js.map +1 -1
  111. package/dist/components/idp-components/ComponentForm.js +1 -1
  112. package/dist/components/idp-components/ComponentForm.js.map +1 -1
  113. package/dist/components/idp-components/DependencyGraphTab.js +7 -7
  114. package/dist/components/idp-components/DependencyGraphTab.js.map +1 -1
  115. package/dist/components/logs/LogViewer.js +14 -14
  116. package/dist/components/logs/LogViewer.js.map +1 -1
  117. package/dist/components/notes/NoteCard.js +1 -1
  118. package/dist/components/notes/NoteCard.js.map +1 -1
  119. package/dist/components/notes/NoteEditor.js +2 -2
  120. package/dist/components/notes/NoteEditor.js.map +1 -1
  121. package/dist/components/notes/NoteList.js +1 -1
  122. package/dist/components/notes/NoteList.js.map +1 -1
  123. package/dist/components/notes/NotesTabPanel.js +1 -1
  124. package/dist/components/notes/NotesTabPanel.js.map +1 -1
  125. package/dist/components/scorecard/ScorecardEmptyState.js +1 -1
  126. package/dist/components/scorecard/ScorecardEmptyState.js.map +1 -1
  127. package/dist/components/scorecard/ScorecardPanel.js +3 -3
  128. package/dist/components/scorecard/ScorecardPanel.js.map +1 -1
  129. package/dist/components/security/SecurityScanList.js +11 -11
  130. package/dist/components/security/SecurityScanList.js.map +1 -1
  131. package/dist/components/sessions/SessionCard.js +26 -19
  132. package/dist/components/sessions/SessionCard.js.map +1 -1
  133. package/dist/components/sessions/SessionStatusBadge.js +7 -7
  134. package/dist/components/sessions/SessionStatusBadge.js.map +1 -1
  135. package/dist/components/shared/AgentSelector.js +4 -4
  136. package/dist/components/shared/AgentSelector.js.map +1 -1
  137. package/dist/components/shared/AgentSetupBanner.js +4 -4
  138. package/dist/components/shared/AgentSetupBanner.js.map +1 -1
  139. package/dist/components/shared/Card.js +4 -4
  140. package/dist/components/shared/Card.js.map +1 -1
  141. package/dist/components/shared/ErrorState.js +15 -9
  142. package/dist/components/shared/ErrorState.js.map +1 -1
  143. package/dist/components/shared/FilterDropdown.js +2 -2
  144. package/dist/components/shared/FilterDropdown.js.map +1 -1
  145. package/dist/components/shared/PageSkeleton.js +6 -6
  146. package/dist/components/shared/PageSkeleton.js.map +1 -1
  147. package/dist/components/shared/SearchInput.js +1 -1
  148. package/dist/components/shared/SearchInput.js.map +1 -1
  149. package/dist/components/shared/StatCard.js +7 -7
  150. package/dist/components/shared/StatCard.js.map +1 -1
  151. package/dist/components/templates/PublishTemplateForm.js +2 -2
  152. package/dist/components/templates/PublishTemplateForm.js.map +1 -1
  153. package/dist/components/templates/TemplateCard.js +5 -5
  154. package/dist/components/templates/TemplateCard.js.map +1 -1
  155. package/dist/components/templates/TemplateWizard.js +2 -2
  156. package/dist/components/templates/TemplateWizard.js.map +1 -1
  157. package/dist/components/tunnels/DomainVerificationBadge.js +4 -4
  158. package/dist/components/tunnels/DomainVerificationBadge.js.map +1 -1
  159. package/dist/components/tunnels/ProviderBadge.js +1 -1
  160. package/dist/components/tunnels/ProviderBadge.js.map +1 -1
  161. package/dist/components/tunnels/TunnelCard.js +16 -16
  162. package/dist/components/tunnels/TunnelCard.js.map +1 -1
  163. package/dist/components/tunnels/TunnelCreateWizard.js +1 -1
  164. package/dist/components/tunnels/TunnelCreateWizard.js.map +1 -1
  165. package/dist/components/tunnels/TunnelPublicAccessPanel.js +1 -1
  166. package/dist/components/tunnels/TunnelPublicAccessPanel.js.map +1 -1
  167. package/dist/components/tunnels/TunnelStatusBadge.js +4 -4
  168. package/dist/components/tunnels/TunnelStatusBadge.js.map +1 -1
  169. package/dist/components/vibecalendar/LogsDrawer.js +2 -2
  170. package/dist/components/vibecalendar/LogsDrawer.js.map +1 -1
  171. package/dist/components/vibecalendar/ScheduleTaskModal.js +5 -5
  172. package/dist/components/vibecalendar/ScheduleTaskModal.js.map +1 -1
  173. package/dist/components/vibecalendar/VibeCalAgendaView.js +2 -2
  174. package/dist/components/vibecalendar/VibeCalAgendaView.js.map +1 -1
  175. package/dist/components/vibecalendar/VibeCalDayView.js +3 -3
  176. package/dist/components/vibecalendar/VibeCalDayView.js.map +1 -1
  177. package/dist/components/vibecalendar/VibeCalMonthView.js +1 -1
  178. package/dist/components/vibecalendar/VibeCalMonthView.js.map +1 -1
  179. package/dist/components/vibecalendar/VibeCalWeekView.js +4 -4
  180. package/dist/components/vibecalendar/VibeCalWeekView.js.map +1 -1
  181. package/dist/components/vibecalendar/VibeCalendarHeader.js +4 -4
  182. package/dist/components/vibecalendar/VibeCalendarHeader.js.map +1 -1
  183. package/dist/components/vibecalendar/VibeTaskBlock.js +2 -2
  184. package/dist/components/vibecalendar/VibeTaskBlock.js.map +1 -1
  185. package/dist/components/vibecalendar/types.js +7 -7
  186. package/dist/components/vibecalendar/types.js.map +1 -1
  187. package/dist/components/vibedeck/VibeDeckButtonForm.js +9 -9
  188. package/dist/components/vibedeck/VibeDeckButtonForm.js.map +1 -1
  189. package/dist/components/vibedeck/VibeDeckButtonTile.js +6 -6
  190. package/dist/components/vibedeck/VibeDeckButtonTile.js.map +1 -1
  191. package/dist/components/vibedeck/VibeDeckExecutionLog.js +10 -10
  192. package/dist/components/vibedeck/VibeDeckExecutionLog.js.map +1 -1
  193. package/dist/components/vibedeck/VibeDeckForm.js +8 -8
  194. package/dist/components/vibedeck/VibeDeckForm.js.map +1 -1
  195. package/dist/components/vibedeck/VibeDeckGrid.js +2 -2
  196. package/dist/components/vibedeck/VibeDeckGrid.js.map +1 -1
  197. package/dist/components/vibedeck/VibeDeckPublicLinkPanel.js +2 -2
  198. package/dist/components/vibedeck/VibeDeckPublicLinkPanel.js.map +1 -1
  199. package/dist/components/vibedeck/VibeDeckSwitcher.js +8 -8
  200. package/dist/components/vibedeck/VibeDeckSwitcher.js.map +1 -1
  201. package/dist/components/vibes/VibeCard.js +22 -18
  202. package/dist/components/vibes/VibeCard.js.map +1 -1
  203. package/dist/components/vibes/VibeList.js +16 -12
  204. package/dist/components/vibes/VibeList.js.map +1 -1
  205. package/dist/pages/ActionsPage.js +4 -3
  206. package/dist/pages/ActionsPage.js.map +1 -1
  207. package/dist/pages/AgentDetailsPage.js +9 -9
  208. package/dist/pages/AgentDetailsPage.js.map +1 -1
  209. package/dist/pages/AgentsLandingPage.js +4 -4
  210. package/dist/pages/AgentsLandingPage.js.map +1 -1
  211. package/dist/pages/AgentsPage.js +14 -14
  212. package/dist/pages/AgentsPage.js.map +1 -1
  213. package/dist/pages/AnalyticsPage.js +8 -8
  214. package/dist/pages/AnalyticsPage.js.map +1 -1
  215. package/dist/pages/CatalogDetailPage.js +11 -11
  216. package/dist/pages/CatalogDetailPage.js.map +1 -1
  217. package/dist/pages/CatalogPage.js +12 -9
  218. package/dist/pages/CatalogPage.js.map +1 -1
  219. package/dist/pages/ComponentDetailPage.js +7 -7
  220. package/dist/pages/ComponentDetailPage.js.map +1 -1
  221. package/dist/pages/ComponentsPage.js +12 -9
  222. package/dist/pages/ComponentsPage.js.map +1 -1
  223. package/dist/pages/EnvTopologyPage.js +2 -2
  224. package/dist/pages/EnvTopologyPage.js.map +1 -1
  225. package/dist/pages/GettingStartedPage.js +12 -12
  226. package/dist/pages/GettingStartedPage.js.map +1 -1
  227. package/dist/pages/HealthPage.js +12 -12
  228. package/dist/pages/HealthPage.js.map +1 -1
  229. package/dist/pages/LogsPage.js +4 -4
  230. package/dist/pages/LogsPage.js.map +1 -1
  231. package/dist/pages/NoteDetailsPage.js +5 -5
  232. package/dist/pages/NoteDetailsPage.js.map +1 -1
  233. package/dist/pages/OverviewPage.js +76 -43
  234. package/dist/pages/OverviewPage.js.map +1 -1
  235. package/dist/pages/PluginsCatalogPage.js +7 -4
  236. package/dist/pages/PluginsCatalogPage.js.map +1 -1
  237. package/dist/pages/ScheduledJobDetailPage.js +7 -7
  238. package/dist/pages/ScheduledJobDetailPage.js.map +1 -1
  239. package/dist/pages/SessionDetailsPage.js +21 -21
  240. package/dist/pages/SessionDetailsPage.js.map +1 -1
  241. package/dist/pages/SessionsPage.js +20 -20
  242. package/dist/pages/SessionsPage.js.map +1 -1
  243. package/dist/pages/SettingsPage.js +64 -52
  244. package/dist/pages/SettingsPage.js.map +1 -1
  245. package/dist/pages/SharedSessionPage.js +21 -21
  246. package/dist/pages/SharedSessionPage.js.map +1 -1
  247. package/dist/pages/SharedVibeDeckPage.js +5 -5
  248. package/dist/pages/SharedVibeDeckPage.js.map +1 -1
  249. package/dist/pages/TargetDetailsPage.js +56 -65
  250. package/dist/pages/TargetDetailsPage.js.map +1 -1
  251. package/dist/pages/TargetsPage.js +4 -4
  252. package/dist/pages/TargetsPage.js.map +1 -1
  253. package/dist/pages/TemplateDetailPage.js +10 -10
  254. package/dist/pages/TemplateDetailPage.js.map +1 -1
  255. package/dist/pages/TemplatesPage.js +6 -5
  256. package/dist/pages/TemplatesPage.js.map +1 -1
  257. package/dist/pages/VibeAuditPage.js +3 -3
  258. package/dist/pages/VibeAuditPage.js.map +1 -1
  259. package/dist/pages/VibeCalendarPage.js +3 -3
  260. package/dist/pages/VibeCalendarPage.js.map +1 -1
  261. package/dist/pages/VibeDeckPage.js +3 -3
  262. package/dist/pages/VibeDeckPage.js.map +1 -1
  263. package/dist/pages/VibeDetailsPage.js +15 -15
  264. package/dist/pages/VibeDetailsPage.js.map +1 -1
  265. package/dist/pages/VibeTaskDetailPage.js +5 -5
  266. package/dist/pages/VibeTaskDetailPage.js.map +1 -1
  267. package/dist/pages/VibesPage.js +18 -18
  268. package/dist/pages/VibesPage.js.map +1 -1
  269. package/dist/pages/WebhooksPage.js +11 -11
  270. package/dist/pages/WebhooksPage.js.map +1 -1
  271. package/dist/pages/ai/AIBookmarksPage.js +1 -1
  272. package/dist/pages/ai/AIBookmarksPage.js.map +1 -1
  273. package/dist/pages/ai/AISessionDetailPage.js +6 -6
  274. package/dist/pages/ai/AISessionDetailPage.js.map +1 -1
  275. package/dist/pages/tunnels/AuditTab.js +1 -1
  276. package/dist/pages/tunnels/AuditTab.js.map +1 -1
  277. package/dist/pages/tunnels/DomainsTab.js +1 -1
  278. package/dist/pages/tunnels/DomainsTab.js.map +1 -1
  279. package/dist/pages/tunnels/ProvidersTab.js +1 -1
  280. package/dist/pages/tunnels/ProvidersTab.js.map +1 -1
  281. package/dist/pages/tunnels/SessionsTab.js +1 -1
  282. package/dist/pages/tunnels/SessionsTab.js.map +1 -1
  283. package/dist/pages/tunnels/TunnelDetailsPage.js +3 -3
  284. package/dist/pages/tunnels/TunnelDetailsPage.js.map +1 -1
  285. package/dist/pages/tunnels/UsageTab.js +1 -1
  286. package/dist/pages/tunnels/UsageTab.js.map +1 -1
  287. package/dist/pages/tunnels/tabs/TunnelDomainsTab.js +16 -16
  288. package/dist/pages/tunnels/tabs/TunnelDomainsTab.js.map +1 -1
  289. package/dist/pages/tunnels/tabs/TunnelOverviewTab.js +1 -1
  290. package/dist/pages/tunnels/tabs/TunnelOverviewTab.js.map +1 -1
  291. package/dist/pages/tunnels/tabs/TunnelSessionsTab.js +52 -49
  292. package/dist/pages/tunnels/tabs/TunnelSessionsTab.js.map +1 -1
  293. package/dist/pages/tunnels/tabs/TunnelSettingsTab.js +9 -9
  294. package/dist/pages/tunnels/tabs/TunnelSettingsTab.js.map +1 -1
  295. package/package.json +1 -1
@@ -45,7 +45,7 @@ function S() {
45
45
  children: /* @__PURE__ */ v("div", {
46
46
  className: "text-center space-y-2",
47
47
  children: [/* @__PURE__ */ _("h2", {
48
- className: "text-lg font-semibold text-foreground",
48
+ className: "text-lg font-semibold text-text-primary",
49
49
  children: C("vibeTask.accessDenied", "Access Denied")
50
50
  }), /* @__PURE__ */ _("p", {
51
51
  className: "text-sm text-text-secondary",
@@ -70,7 +70,7 @@ function S() {
70
70
  /* @__PURE__ */ _("button", {
71
71
  type: "button",
72
72
  onClick: () => T(-1),
73
- className: "p-1.5 rounded hover:bg-bg-secondary transition-colors",
73
+ className: "p-1.5 rounded hover:bg-bg-sunken transition-colors",
74
74
  children: /* @__PURE__ */ _(l, { size: 18 })
75
75
  }),
76
76
  /* @__PURE__ */ v("div", {
@@ -88,7 +88,7 @@ function S() {
88
88
  children: /* @__PURE__ */ v("button", {
89
89
  type: "button",
90
90
  onClick: () => w && z({ variables: { id: w } }),
91
- className: "flex items-center gap-1.5 px-3 py-1.5 text-sm bg-status-success-bg/10 text-status-success-text border border-status-success-border/30 rounded-lg hover:bg-status-success-bg/20 transition-colors",
91
+ className: "flex items-center gap-1.5 px-3 py-1.5 text-sm bg-status-success-bg-subtle text-status-success-text border border-status-success-border rounded-button hover:bg-bg-sunken transition-colors",
92
92
  children: [/* @__PURE__ */ _(f, { size: 14 }), C("vibeTask.triggerNow", "Trigger Now")]
93
93
  })
94
94
  })
@@ -214,7 +214,7 @@ function S() {
214
214
  })
215
215
  ]
216
216
  }) }), /* @__PURE__ */ _("tbody", { children: R.map((e) => /* @__PURE__ */ v("tr", {
217
- className: "border-b border-border-default hover:bg-bg-secondary/50 transition-colors",
217
+ className: "border-b border-border-default hover:bg-bg-sunken transition-colors",
218
218
  children: [
219
219
  /* @__PURE__ */ _("td", {
220
220
  className: "px-4 py-2.5 text-text-primary",
@@ -239,7 +239,7 @@ function S() {
239
239
  children: k ? /* @__PURE__ */ v("button", {
240
240
  type: "button",
241
241
  onClick: () => B(e),
242
- className: "inline-flex items-center gap-1 px-2 py-1 text-xs text-text-secondary hover:text-text-primary rounded hover:bg-bg-secondary transition-colors",
242
+ className: "inline-flex items-center gap-1 px-2 py-1 text-xs text-text-secondary hover:text-text-primary rounded hover:bg-bg-sunken transition-colors",
243
243
  children: [/* @__PURE__ */ _(d, { size: 12 }), C("vibeTask.viewLogs", "View Logs")]
244
244
  }) : /* @__PURE__ */ _("span", {
245
245
  className: "text-xs text-text-tertiary",
@@ -1 +1 @@
1
- {"version":3,"file":"VibeTaskDetailPage.js","names":[],"sources":["../../src/pages/VibeTaskDetailPage.tsx"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { VIBE_PERMISSIONS } from '../constants/permissions';\nimport { ArrowLeft, Play, Clock, Zap, Eye } from 'lucide-react';\nimport { MotionPage, MotionList, MotionItem } from '@burdenoff/fe-libs/shared/motion';\nimport { LogsDrawer } from '../components/vibecalendar/LogsDrawer';\nimport { STATUS_COLORS } from '../components/vibecalendar/types';\nimport type { VibeCalendarExecution } from '../components/vibecalendar/types';\nimport {\n useGetVibeCalendarTaskQuery,\n useListVibeCalendarExecutionsQuery,\n useTriggerVibeCalendarTaskNowMutation,\n} from '@/generated/wspace-operations';\n\n/**\n * Vibe Task Detail Page\n *\n * Shows full details of a scheduled calendar task. In the simplified\n * Action-only schema a task is just a reference to a VibeControls\n * Action plus a schedule — the executor details live on the Action.\n */\nexport function VibeTaskDetailPage() {\n const { t } = useI18n();\n const tr = useCallback(\n (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n },\n [t]\n );\n const { taskId } = useParams<{ taskId: string }>();\n const navigate = useNavigate();\n const { hasPermission, isLoading: permissionsLoading, permissions } = usePermissions();\n const canReadExecutionLogs = hasPermission(VIBE_PERMISSIONS.LOG_READ);\n\n const [showLogsDrawer, setShowLogsDrawer] = useState(false);\n const [selectedExecution, setSelectedExecution] = useState<VibeCalendarExecution | null>(null);\n\n const { data: taskData, loading: taskLoading } = useGetVibeCalendarTaskQuery({\n variables: { id: taskId! },\n skip: !taskId,\n });\n const task = taskData?.vibeCalendarTask;\n\n const { data: execData } = useListVibeCalendarExecutionsQuery({\n variables: { taskId: taskId! },\n skip: !taskId,\n });\n type RawExecArray = NonNullable<typeof execData>['vibeCalendarExecutions'];\n type RawExec = NonNullable<RawExecArray>[number];\n const executions: VibeCalendarExecution[] = (execData?.vibeCalendarExecutions ?? []).map(\n (raw: RawExec): VibeCalendarExecution => {\n return {\n id: raw.id,\n taskId: raw.taskId,\n status: raw.status,\n output: canReadExecutionLogs ? (raw.output ?? null) : null,\n exitCode: raw.exitCode ?? null,\n webhookStatusCode: null,\n startedAt: raw.startedAt ?? raw.completedAt ?? null,\n completedAt: raw.completedAt ?? null,\n error: canReadExecutionLogs ? (raw.error ?? null) : null,\n };\n }\n );\n\n const [triggerNow] = useTriggerVibeCalendarTaskNowMutation({\n refetchQueries: ['GetVibeCalendarTask', 'ListVibeCalendarExecutions'],\n });\n\n const handleViewLogs = useCallback((execution: VibeCalendarExecution) => {\n setSelectedExecution(execution);\n setShowLogsDrawer(true);\n }, []);\n\n if (permissionsLoading)\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <p className=\"text-text-secondary\">\n {tr('vibeTask.loadingPermissions', 'Loading permissions...')}\n </p>\n </div>\n );\n if (\n permissions &&\n (permissions.permissionStrings?.length ?? 0) > 0 &&\n !hasPermission(VIBE_PERMISSIONS.CALENDAR_AGENT_TASK_READ)\n )\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <div className=\"text-center space-y-2\">\n <h2 className=\"text-lg font-semibold text-foreground\">\n {tr('vibeTask.accessDenied', 'Access Denied')}\n </h2>\n <p className=\"text-sm text-text-secondary\">\n {tr('vibeTask.accessDeniedDesc', \"You don't have permission to access this page.\")}\n </p>\n </div>\n </div>\n );\n\n if (taskLoading && !task) {\n return (\n <div className=\"flex items-center justify-center h-full\">\n <p className=\"text-sm text-text-secondary\">\n {tr('vibeTask.loadingTask', 'Loading task details...')}\n </p>\n </div>\n );\n }\n\n const title = task?.actionId\n ? `${tr('vibeTask.action', 'Action')}: ${task.actionId}`\n : 'Task Details';\n const description = task?.cronExpression || `Task ID: ${taskId}`;\n const isRecurringTask = Boolean(task?.cronExpression || task?.rrule);\n\n return (\n <MotionPage className=\"flex flex-col h-full p-4 gap-6\">\n {/* Back + Header */}\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <button\n type=\"button\"\n onClick={() => navigate(-1)}\n className=\"p-1.5 rounded hover:bg-bg-secondary transition-colors\"\n >\n <ArrowLeft size={18} />\n </button>\n <div className=\"flex-1 min-w-0\">\n <h1 className=\"text-xl font-bold text-text-primary\">{title}</h1>\n <p className=\"text-sm text-text-secondary\">{description}</p>\n </div>\n <div className=\"flex w-full flex-wrap items-center gap-2 sm:w-auto sm:justify-end\">\n <button\n type=\"button\"\n onClick={() => taskId && triggerNow({ variables: { id: taskId } })}\n className=\"flex items-center gap-1.5 px-3 py-1.5 text-sm bg-status-success-bg/10 text-status-success-text border border-status-success-border/30 rounded-lg hover:bg-status-success-bg/20 transition-colors\"\n >\n <Play size={14} />\n {tr('vibeTask.triggerNow', 'Trigger Now')}\n </button>\n </div>\n </div>\n\n {/* Info Cards */}\n <MotionList stagger={0.04} className=\"grid grid-cols-1 md:grid-cols-3 gap-4\">\n <MotionItem className=\"bg-bg-surface border border-border-default rounded-lg p-4\">\n <div className=\"flex items-center gap-2 mb-2\">\n <Zap size={16} className=\"text-text-tertiary\" />\n <span className=\"text-sm font-medium text-text-secondary\">\n {tr('vibeTask.action', 'Action')}\n </span>\n </div>\n <p className=\"text-sm font-mono text-text-primary break-all\">{task?.actionId || 'N/A'}</p>\n <p className=\"text-xs text-text-tertiary mt-1\">\n {tr('vibeTask.actionExecutorHint', 'Executor config comes from the Action definition.')}\n </p>\n </MotionItem>\n\n <MotionItem className=\"bg-bg-surface border border-border-default rounded-lg p-4\">\n <div className=\"flex items-center gap-2 mb-2\">\n <Clock size={16} className=\"text-text-tertiary\" />\n <span className=\"text-sm font-medium text-text-secondary\">\n {tr('vibeTask.schedule', 'Schedule')}\n </span>\n </div>\n <p className=\"text-sm text-text-primary\">\n {isRecurringTask\n ? tr('vibeTask.recurring', 'Recurring')\n : tr('vibeTask.oneTime', 'One-time')}\n </p>\n {task?.cronExpression && (\n <p className=\"text-xs font-mono text-text-tertiary mt-1\">{task.cronExpression}</p>\n )}\n {task?.nextExecutionAt && (\n <p className=\"text-xs text-text-tertiary mt-1\">\n {tr('vibeTask.next', 'Next')}: {new Date(task.nextExecutionAt).toLocaleString()}\n </p>\n )}\n </MotionItem>\n\n <MotionItem className=\"bg-bg-surface border border-border-default rounded-lg p-4\">\n <div className=\"flex items-center gap-2 mb-2\">\n <span className=\"text-sm font-medium text-text-secondary\">\n {tr('vibeTask.status', 'Status')}\n </span>\n </div>\n <span\n className={`inline-flex px-2 py-0.5 text-xs rounded-full border ${\n STATUS_COLORS[task?.status ?? ''] || ''\n }`}\n >\n {task?.status ?? 'UNKNOWN'}\n </span>\n {task?.lastExecutedAt && (\n <p className=\"text-xs text-text-tertiary mt-2\">\n {tr('vibeTask.lastRun', 'Last run')}: {new Date(task.lastExecutedAt).toLocaleString()}\n </p>\n )}\n </MotionItem>\n </MotionList>\n\n {/* Execution History */}\n <div className=\"flex-1 overflow-auto\">\n <h2 className=\"text-base font-semibold text-text-primary mb-3\">\n {tr('vibeTask.execHistory', 'Execution History')}\n </h2>\n\n {executions.length === 0 ? (\n <div className=\"flex items-center justify-center py-12\">\n <p className=\"text-sm text-text-secondary\">\n {tr('vibeTask.noExecutions', 'No executions yet')}\n </p>\n </div>\n ) : (\n <div className=\"overflow-x-auto rounded-lg border border-border-default\">\n <table className=\"w-full text-sm min-w-[640px]\">\n <thead>\n <tr className=\"bg-bg-sunken border-b border-border-default\">\n <th className=\"text-left px-4 py-2 text-text-secondary font-medium\">\n {tr('vibeTask.started', 'Started')}\n </th>\n <th className=\"text-left px-4 py-2 text-text-secondary font-medium\">\n {tr('vibeTask.status', 'Status')}\n </th>\n <th className=\"text-left px-4 py-2 text-text-secondary font-medium\">\n {tr('vibeTask.exitCode', 'Exit Code')}\n </th>\n <th className=\"text-right px-4 py-2 text-text-secondary font-medium\">\n {tr('vibeTask.actions', 'Actions')}\n </th>\n </tr>\n </thead>\n <tbody>\n {executions.map((exec) => (\n <tr\n key={exec.id}\n className=\"border-b border-border-default hover:bg-bg-secondary/50 transition-colors\"\n >\n <td className=\"px-4 py-2.5 text-text-primary\">\n {exec.startedAt ? new Date(exec.startedAt).toLocaleString() : '-'}\n </td>\n <td className=\"px-4 py-2.5\">\n <span\n className={`inline-flex px-2 py-0.5 text-xs rounded-full border ${\n STATUS_COLORS[exec.status] || ''\n }`}\n >\n {exec.status}\n </span>\n </td>\n <td className=\"px-4 py-2.5\">\n {exec.exitCode !== null ? (\n <span\n className={`font-mono ${exec.exitCode === 0 ? 'text-status-success-text' : 'text-status-error-text'}`}\n >\n {exec.exitCode}\n </span>\n ) : (\n '-'\n )}\n </td>\n <td className=\"px-4 py-2.5 text-right\">\n {canReadExecutionLogs ? (\n <button\n type=\"button\"\n onClick={() => handleViewLogs(exec)}\n className=\"inline-flex items-center gap-1 px-2 py-1 text-xs text-text-secondary hover:text-text-primary rounded hover:bg-bg-secondary transition-colors\"\n >\n <Eye size={12} />\n {tr('vibeTask.viewLogs', 'View Logs')}\n </button>\n ) : (\n <span className=\"text-xs text-text-tertiary\">\n {tr('vibeTask.logsPermissionRequired', 'Log access required')}\n </span>\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </div>\n\n {/* Logs Drawer */}\n <LogsDrawer\n isOpen={showLogsDrawer}\n onClose={() => setShowLogsDrawer(false)}\n execution={selectedExecution}\n taskTitle={title}\n agentId=\"\"\n />\n </MotionPage>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VibeTaskDetailPage.js","names":[],"sources":["../../src/pages/VibeTaskDetailPage.tsx"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { VIBE_PERMISSIONS } from '../constants/permissions';\nimport { ArrowLeft, Play, Clock, Zap, Eye } from 'lucide-react';\nimport { MotionPage, MotionList, MotionItem } from '@burdenoff/fe-libs/shared/motion';\nimport { LogsDrawer } from '../components/vibecalendar/LogsDrawer';\nimport { STATUS_COLORS } from '../components/vibecalendar/types';\nimport type { VibeCalendarExecution } from '../components/vibecalendar/types';\nimport {\n useGetVibeCalendarTaskQuery,\n useListVibeCalendarExecutionsQuery,\n useTriggerVibeCalendarTaskNowMutation,\n} from '@/generated/wspace-operations';\n\n/**\n * Vibe Task Detail Page\n *\n * Shows full details of a scheduled calendar task. In the simplified\n * Action-only schema a task is just a reference to a VibeControls\n * Action plus a schedule — the executor details live on the Action.\n */\nexport function VibeTaskDetailPage() {\n const { t } = useI18n();\n const tr = useCallback(\n (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n },\n [t]\n );\n const { taskId } = useParams<{ taskId: string }>();\n const navigate = useNavigate();\n const { hasPermission, isLoading: permissionsLoading, permissions } = usePermissions();\n const canReadExecutionLogs = hasPermission(VIBE_PERMISSIONS.LOG_READ);\n\n const [showLogsDrawer, setShowLogsDrawer] = useState(false);\n const [selectedExecution, setSelectedExecution] = useState<VibeCalendarExecution | null>(null);\n\n const { data: taskData, loading: taskLoading } = useGetVibeCalendarTaskQuery({\n variables: { id: taskId! },\n skip: !taskId,\n });\n const task = taskData?.vibeCalendarTask;\n\n const { data: execData } = useListVibeCalendarExecutionsQuery({\n variables: { taskId: taskId! },\n skip: !taskId,\n });\n type RawExecArray = NonNullable<typeof execData>['vibeCalendarExecutions'];\n type RawExec = NonNullable<RawExecArray>[number];\n const executions: VibeCalendarExecution[] = (execData?.vibeCalendarExecutions ?? []).map(\n (raw: RawExec): VibeCalendarExecution => {\n return {\n id: raw.id,\n taskId: raw.taskId,\n status: raw.status,\n output: canReadExecutionLogs ? (raw.output ?? null) : null,\n exitCode: raw.exitCode ?? null,\n webhookStatusCode: null,\n startedAt: raw.startedAt ?? raw.completedAt ?? null,\n completedAt: raw.completedAt ?? null,\n error: canReadExecutionLogs ? (raw.error ?? null) : null,\n };\n }\n );\n\n const [triggerNow] = useTriggerVibeCalendarTaskNowMutation({\n refetchQueries: ['GetVibeCalendarTask', 'ListVibeCalendarExecutions'],\n });\n\n const handleViewLogs = useCallback((execution: VibeCalendarExecution) => {\n setSelectedExecution(execution);\n setShowLogsDrawer(true);\n }, []);\n\n if (permissionsLoading)\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <p className=\"text-text-secondary\">\n {tr('vibeTask.loadingPermissions', 'Loading permissions...')}\n </p>\n </div>\n );\n if (\n permissions &&\n (permissions.permissionStrings?.length ?? 0) > 0 &&\n !hasPermission(VIBE_PERMISSIONS.CALENDAR_AGENT_TASK_READ)\n )\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <div className=\"text-center space-y-2\">\n <h2 className=\"text-lg font-semibold text-text-primary\">\n {tr('vibeTask.accessDenied', 'Access Denied')}\n </h2>\n <p className=\"text-sm text-text-secondary\">\n {tr('vibeTask.accessDeniedDesc', \"You don't have permission to access this page.\")}\n </p>\n </div>\n </div>\n );\n\n if (taskLoading && !task) {\n return (\n <div className=\"flex items-center justify-center h-full\">\n <p className=\"text-sm text-text-secondary\">\n {tr('vibeTask.loadingTask', 'Loading task details...')}\n </p>\n </div>\n );\n }\n\n const title = task?.actionId\n ? `${tr('vibeTask.action', 'Action')}: ${task.actionId}`\n : 'Task Details';\n const description = task?.cronExpression || `Task ID: ${taskId}`;\n const isRecurringTask = Boolean(task?.cronExpression || task?.rrule);\n\n return (\n <MotionPage className=\"flex flex-col h-full p-4 gap-6\">\n {/* Back + Header */}\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <button\n type=\"button\"\n onClick={() => navigate(-1)}\n className=\"p-1.5 rounded hover:bg-bg-sunken transition-colors\"\n >\n <ArrowLeft size={18} />\n </button>\n <div className=\"flex-1 min-w-0\">\n <h1 className=\"text-xl font-bold text-text-primary\">{title}</h1>\n <p className=\"text-sm text-text-secondary\">{description}</p>\n </div>\n <div className=\"flex w-full flex-wrap items-center gap-2 sm:w-auto sm:justify-end\">\n <button\n type=\"button\"\n onClick={() => taskId && triggerNow({ variables: { id: taskId } })}\n className=\"flex items-center gap-1.5 px-3 py-1.5 text-sm bg-status-success-bg-subtle text-status-success-text border border-status-success-border rounded-button hover:bg-bg-sunken transition-colors\"\n >\n <Play size={14} />\n {tr('vibeTask.triggerNow', 'Trigger Now')}\n </button>\n </div>\n </div>\n\n {/* Info Cards */}\n <MotionList stagger={0.04} className=\"grid grid-cols-1 md:grid-cols-3 gap-4\">\n <MotionItem className=\"bg-bg-surface border border-border-default rounded-lg p-4\">\n <div className=\"flex items-center gap-2 mb-2\">\n <Zap size={16} className=\"text-text-tertiary\" />\n <span className=\"text-sm font-medium text-text-secondary\">\n {tr('vibeTask.action', 'Action')}\n </span>\n </div>\n <p className=\"text-sm font-mono text-text-primary break-all\">{task?.actionId || 'N/A'}</p>\n <p className=\"text-xs text-text-tertiary mt-1\">\n {tr('vibeTask.actionExecutorHint', 'Executor config comes from the Action definition.')}\n </p>\n </MotionItem>\n\n <MotionItem className=\"bg-bg-surface border border-border-default rounded-lg p-4\">\n <div className=\"flex items-center gap-2 mb-2\">\n <Clock size={16} className=\"text-text-tertiary\" />\n <span className=\"text-sm font-medium text-text-secondary\">\n {tr('vibeTask.schedule', 'Schedule')}\n </span>\n </div>\n <p className=\"text-sm text-text-primary\">\n {isRecurringTask\n ? tr('vibeTask.recurring', 'Recurring')\n : tr('vibeTask.oneTime', 'One-time')}\n </p>\n {task?.cronExpression && (\n <p className=\"text-xs font-mono text-text-tertiary mt-1\">{task.cronExpression}</p>\n )}\n {task?.nextExecutionAt && (\n <p className=\"text-xs text-text-tertiary mt-1\">\n {tr('vibeTask.next', 'Next')}: {new Date(task.nextExecutionAt).toLocaleString()}\n </p>\n )}\n </MotionItem>\n\n <MotionItem className=\"bg-bg-surface border border-border-default rounded-lg p-4\">\n <div className=\"flex items-center gap-2 mb-2\">\n <span className=\"text-sm font-medium text-text-secondary\">\n {tr('vibeTask.status', 'Status')}\n </span>\n </div>\n <span\n className={`inline-flex px-2 py-0.5 text-xs rounded-full border ${\n STATUS_COLORS[task?.status ?? ''] || ''\n }`}\n >\n {task?.status ?? 'UNKNOWN'}\n </span>\n {task?.lastExecutedAt && (\n <p className=\"text-xs text-text-tertiary mt-2\">\n {tr('vibeTask.lastRun', 'Last run')}: {new Date(task.lastExecutedAt).toLocaleString()}\n </p>\n )}\n </MotionItem>\n </MotionList>\n\n {/* Execution History */}\n <div className=\"flex-1 overflow-auto\">\n <h2 className=\"text-base font-semibold text-text-primary mb-3\">\n {tr('vibeTask.execHistory', 'Execution History')}\n </h2>\n\n {executions.length === 0 ? (\n <div className=\"flex items-center justify-center py-12\">\n <p className=\"text-sm text-text-secondary\">\n {tr('vibeTask.noExecutions', 'No executions yet')}\n </p>\n </div>\n ) : (\n <div className=\"overflow-x-auto rounded-lg border border-border-default\">\n <table className=\"w-full text-sm min-w-[640px]\">\n <thead>\n <tr className=\"bg-bg-sunken border-b border-border-default\">\n <th className=\"text-left px-4 py-2 text-text-secondary font-medium\">\n {tr('vibeTask.started', 'Started')}\n </th>\n <th className=\"text-left px-4 py-2 text-text-secondary font-medium\">\n {tr('vibeTask.status', 'Status')}\n </th>\n <th className=\"text-left px-4 py-2 text-text-secondary font-medium\">\n {tr('vibeTask.exitCode', 'Exit Code')}\n </th>\n <th className=\"text-right px-4 py-2 text-text-secondary font-medium\">\n {tr('vibeTask.actions', 'Actions')}\n </th>\n </tr>\n </thead>\n <tbody>\n {executions.map((exec) => (\n <tr\n key={exec.id}\n className=\"border-b border-border-default hover:bg-bg-sunken transition-colors\"\n >\n <td className=\"px-4 py-2.5 text-text-primary\">\n {exec.startedAt ? new Date(exec.startedAt).toLocaleString() : '-'}\n </td>\n <td className=\"px-4 py-2.5\">\n <span\n className={`inline-flex px-2 py-0.5 text-xs rounded-full border ${\n STATUS_COLORS[exec.status] || ''\n }`}\n >\n {exec.status}\n </span>\n </td>\n <td className=\"px-4 py-2.5\">\n {exec.exitCode !== null ? (\n <span\n className={`font-mono ${exec.exitCode === 0 ? 'text-status-success-text' : 'text-status-error-text'}`}\n >\n {exec.exitCode}\n </span>\n ) : (\n '-'\n )}\n </td>\n <td className=\"px-4 py-2.5 text-right\">\n {canReadExecutionLogs ? (\n <button\n type=\"button\"\n onClick={() => handleViewLogs(exec)}\n className=\"inline-flex items-center gap-1 px-2 py-1 text-xs text-text-secondary hover:text-text-primary rounded hover:bg-bg-sunken transition-colors\"\n >\n <Eye size={12} />\n {tr('vibeTask.viewLogs', 'View Logs')}\n </button>\n ) : (\n <span className=\"text-xs text-text-tertiary\">\n {tr('vibeTask.logsPermissionRequired', 'Log access required')}\n </span>\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </div>\n\n {/* Logs Drawer */}\n <LogsDrawer\n isOpen={showLogsDrawer}\n onClose={() => setShowLogsDrawer(false)}\n execution={selectedExecution}\n taskTitle={title}\n agentId=\"\"\n />\n </MotionPage>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAuBA,SAAgB,IAAqB;CACnC,IAAM,EAAE,SAAM,GAAS,EACjB,IAAK,GACR,GAAa,MAA6B;EACzC,IAAM,IAAQ,EAAE,EAAI;AACpB,SAAO,MAAU,IAAM,IAAW;IAEpC,CAAC,EAAE,CACJ,EACK,EAAE,cAAW,GAA+B,EAC5C,IAAW,GAAa,EACxB,EAAE,kBAAe,WAAW,GAAoB,mBAAgB,GAAgB,EAChF,IAAuB,EAAc,EAAiB,SAAS,EAE/D,CAAC,GAAgB,KAAqB,EAAS,GAAM,EACrD,CAAC,GAAmB,KAAwB,EAAuC,KAAK,EAExF,EAAE,MAAM,GAAU,SAAS,MAAgB,EAA4B;EAC3E,WAAW,EAAE,IAAI,GAAS;EAC1B,MAAM,CAAC;EACR,CAAC,EACI,IAAO,GAAU,kBAEjB,EAAE,MAAM,MAAa,EAAmC;EAC5D,WAAW,EAAU,WAAS;EAC9B,MAAM,CAAC;EACR,CAAC,EAGI,KAAuC,GAAU,0BAA0B,EAAE,EAAE,KAClF,OACQ;EACL,IAAI,EAAI;EACR,QAAQ,EAAI;EACZ,QAAQ,EAAI;EACZ,QAAQ,IAAwB,EAAI,UAAU,OAAQ;EACtD,UAAU,EAAI,YAAY;EAC1B,mBAAmB;EACnB,WAAW,EAAI,aAAa,EAAI,eAAe;EAC/C,aAAa,EAAI,eAAe;EAChC,OAAO,IAAwB,EAAI,SAAS,OAAQ;EACrD,EAEJ,EAEK,CAAC,KAAc,EAAsC,EACzD,gBAAgB,CAAC,uBAAuB,6BAA6B,EACtE,CAAC,EAEI,IAAiB,GAAa,MAAqC;AAEvE,EADA,EAAqB,EAAU,EAC/B,EAAkB,GAAK;IACtB,EAAE,CAAC;AAEN,KAAI,EACF,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,KAAD;GAAG,WAAU;aACV,EAAG,+BAA+B,yBAAyB;GAC1D,CAAA;EACA,CAAA;AAEV,KACE,MACC,EAAY,mBAAmB,UAAU,KAAK,KAC/C,CAAC,EAAc,EAAiB,yBAAyB,CAEzD,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,MAAD;IAAI,WAAU;cACX,EAAG,yBAAyB,gBAAgB;IAC1C,CAAA,EACL,kBAAC,KAAD;IAAG,WAAU;cACV,EAAG,6BAA6B,iDAAiD;IAChF,CAAA,CACA;;EACF,CAAA;AAGV,KAAI,KAAe,CAAC,EAClB,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,KAAD;GAAG,WAAU;aACV,EAAG,wBAAwB,0BAA0B;GACpD,CAAA;EACA,CAAA;CAIV,IAAM,IAAQ,GAAM,WAChB,GAAG,EAAG,mBAAmB,SAAS,CAAC,IAAI,EAAK,aAC5C,gBACE,IAAc,GAAM,kBAAkB,YAAY,KAClD,IAAkB,GAAQ,GAAM,kBAAkB,GAAM;AAE9D,QACE,kBAAC,GAAD;EAAY,WAAU;YAAtB;GAEE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,UAAD;MACE,MAAK;MACL,eAAe,EAAS,GAAG;MAC3B,WAAU;gBAEV,kBAAC,GAAD,EAAW,MAAM,IAAM,CAAA;MAChB,CAAA;KACT,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,MAAD;OAAI,WAAU;iBAAuC;OAAW,CAAA,EAChE,kBAAC,KAAD;OAAG,WAAU;iBAA+B;OAAgB,CAAA,CACxD;;KACN,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,UAAD;OACE,MAAK;OACL,eAAe,KAAU,EAAW,EAAE,WAAW,EAAE,IAAI,GAAQ,EAAE,CAAC;OAClE,WAAU;iBAHZ,CAKE,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA,EACjB,EAAG,uBAAuB,cAAc,CAClC;;MACL,CAAA;KACF;;GAGN,kBAAC,GAAD;IAAY,SAAS;IAAM,WAAU;cAArC;KACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD;SAAK,MAAM;SAAI,WAAU;SAAuB,CAAA,EAChD,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAG,mBAAmB,SAAS;SAC3B,CAAA,CACH;;OACN,kBAAC,KAAD;QAAG,WAAU;kBAAiD,GAAM,YAAY;QAAU,CAAA;OAC1F,kBAAC,KAAD;QAAG,WAAU;kBACV,EAAG,+BAA+B,oDAAoD;QACrF,CAAA;OACO;;KAEb,kBAAC,GAAD;MAAY,WAAU;gBAAtB;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD;SAAO,MAAM;SAAI,WAAU;SAAuB,CAAA,EAClD,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAG,qBAAqB,WAAW;SAC/B,CAAA,CACH;;OACN,kBAAC,KAAD;QAAG,WAAU;kBACV,IACG,EAAG,sBAAsB,YAAY,GACrC,EAAG,oBAAoB,WAAW;QACpC,CAAA;OACH,GAAM,kBACL,kBAAC,KAAD;QAAG,WAAU;kBAA6C,EAAK;QAAmB,CAAA;OAEnF,GAAM,mBACL,kBAAC,KAAD;QAAG,WAAU;kBAAb;SACG,EAAG,iBAAiB,OAAO;SAAC;SAAG,IAAI,KAAK,EAAK,gBAAgB,CAAC,gBAAgB;SAC7E;;OAEK;;KAEb,kBAAC,GAAD;MAAY,WAAU;gBAAtB;OACE,kBAAC,OAAD;QAAK,WAAU;kBACb,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAG,mBAAmB,SAAS;SAC3B,CAAA;QACH,CAAA;OACN,kBAAC,QAAD;QACE,WAAW,uDACT,EAAc,GAAM,UAAU,OAAO;kBAGtC,GAAM,UAAU;QACZ,CAAA;OACN,GAAM,kBACL,kBAAC,KAAD;QAAG,WAAU;kBAAb;SACG,EAAG,oBAAoB,WAAW;SAAC;SAAG,IAAI,KAAK,EAAK,eAAe,CAAC,gBAAgB;SACnF;;OAEK;;KACF;;GAGb,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,MAAD;KAAI,WAAU;eACX,EAAG,wBAAwB,oBAAoB;KAC7C,CAAA,EAEJ,EAAW,WAAW,IACrB,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,KAAD;MAAG,WAAU;gBACV,EAAG,yBAAyB,oBAAoB;MAC/C,CAAA;KACA,CAAA,GAEN,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,SAAD;MAAO,WAAU;gBAAjB,CACE,kBAAC,SAAD,EAAA,UACE,kBAAC,MAAD;OAAI,WAAU;iBAAd;QACE,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAG,oBAAoB,UAAU;SAC/B,CAAA;QACL,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAG,mBAAmB,SAAS;SAC7B,CAAA;QACL,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAG,qBAAqB,YAAY;SAClC,CAAA;QACL,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAG,oBAAoB,UAAU;SAC/B,CAAA;QACF;UACC,CAAA,EACR,kBAAC,SAAD,EAAA,UACG,EAAW,KAAK,MACf,kBAAC,MAAD;OAEE,WAAU;iBAFZ;QAIE,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAK,YAAY,IAAI,KAAK,EAAK,UAAU,CAAC,gBAAgB,GAAG;SAC3D,CAAA;QACL,kBAAC,MAAD;SAAI,WAAU;mBACZ,kBAAC,QAAD;UACE,WAAW,uDACT,EAAc,EAAK,WAAW;oBAG/B,EAAK;UACD,CAAA;SACJ,CAAA;QACL,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAK,aAAa,OAOjB,MANA,kBAAC,QAAD;UACE,WAAW,aAAa,EAAK,aAAa,IAAI,6BAA6B;oBAE1E,EAAK;UACD,CAAA;SAIN,CAAA;QACL,kBAAC,MAAD;SAAI,WAAU;mBACX,IACC,kBAAC,UAAD;UACE,MAAK;UACL,eAAe,EAAe,EAAK;UACnC,WAAU;oBAHZ,CAKE,kBAAC,GAAD,EAAK,MAAM,IAAM,CAAA,EAChB,EAAG,qBAAqB,YAAY,CAC9B;cAET,kBAAC,QAAD;UAAM,WAAU;oBACb,EAAG,mCAAmC,sBAAsB;UACxD,CAAA;SAEN,CAAA;QACF;SA1CE,EAAK,GA0CP,CACL,EACI,CAAA,CACF;;KACJ,CAAA,CAEJ;;GAGN,kBAAC,GAAD;IACE,QAAQ;IACR,eAAe,EAAkB,GAAM;IACvC,WAAW;IACX,WAAW;IACX,SAAQ;IACR,CAAA;GACS"}
@@ -264,7 +264,7 @@ function p() {
264
264
  inactive: U.filter((e) => e.status === "INACTIVE").length
265
265
  }, Z = g, Q = !g && !!qe && (qe.permissionStrings?.length ?? 0) > 0 && !Qe, Jt = !Z && !Q && B && U.length === 0, $ = !Z && !Q && !!Et && U.length === 0, Yt = !Z && !Q && !$;
266
266
  return /* @__PURE__ */ d(Ge, {
267
- className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
267
+ className: "space-y-6 px-6 lg:px-8 py-6 bg-bg-canvas min-h-screen",
268
268
  children: [
269
269
  Z && /* @__PURE__ */ u(de, { message: v("vibesPage.loadingPermissions", "Loading permissions...") }),
270
270
  Q && /* @__PURE__ */ u(Ve, {
@@ -310,7 +310,7 @@ function p() {
310
310
  children: /* @__PURE__ */ d("button", {
311
311
  type: "button",
312
312
  onClick: J,
313
- className: "flex items-center gap-2 px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
313
+ className: "flex items-center gap-2 px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-button hover:bg-action-primary-bgHover transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
314
314
  children: [/* @__PURE__ */ u(Pe, { className: "size-4" }), v("vibesPage.addVibe", "Add Vibe")]
315
315
  })
316
316
  })
@@ -327,17 +327,17 @@ function p() {
327
327
  placeholder: v("vibesPage.searchPlaceholder", "Search vibes..."),
328
328
  className: "flex-1 sm:w-64 sm:flex-none"
329
329
  }), /* @__PURE__ */ d("div", {
330
- className: "flex items-center gap-1 bg-bg-sunken rounded-md p-1 flex-shrink-0",
330
+ className: "flex items-center gap-1 bg-bg-sunken rounded-button p-1 flex-shrink-0 border border-border-subtle",
331
331
  children: [/* @__PURE__ */ u("button", {
332
332
  type: "button",
333
333
  onClick: () => T("grid"),
334
- className: `p-1.5 sm:p-2 rounded ${w === "grid" ? "bg-bg-surface shadow-sm" : "hover:bg-bg-surface/50"}`,
334
+ className: `p-1.5 sm:p-2 rounded ${w === "grid" ? "bg-[var(--color-accent-soft)] text-text-primary" : "text-text-secondary hover:bg-bg-surface/60"}`,
335
335
  title: v("vibesPage.gridViewTitle", "Grid view"),
336
336
  children: /* @__PURE__ */ u(je, { className: "size-4 text-text-secondary" })
337
337
  }), /* @__PURE__ */ u("button", {
338
338
  type: "button",
339
339
  onClick: () => T("list"),
340
- className: `p-1.5 sm:p-2 rounded ${w === "list" ? "bg-bg-surface shadow-sm" : "hover:bg-bg-surface/50"}`,
340
+ className: `p-1.5 sm:p-2 rounded ${w === "list" ? "bg-[var(--color-accent-soft)] text-text-primary" : "text-text-secondary hover:bg-bg-surface/60"}`,
341
341
  title: v("vibesPage.listViewTitle", "List view"),
342
342
  children: /* @__PURE__ */ u(Me, { className: "size-4 text-text-secondary" })
343
343
  })]
@@ -372,7 +372,7 @@ function p() {
372
372
  })]
373
373
  }) : null,
374
374
  W.length > 0 && /* @__PURE__ */ u("div", {
375
- className: "rounded-lg border border-border-default bg-bg-surface p-4",
375
+ className: "rounded-card border border-border-subtle bg-bg-surface shadow-elevation-1 p-5",
376
376
  children: /* @__PURE__ */ d("div", {
377
377
  className: "flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between",
378
378
  children: [/* @__PURE__ */ d("div", {
@@ -406,7 +406,7 @@ function p() {
406
406
  onClick: () => I("activate"),
407
407
  disabled: G.length === 0,
408
408
  title: "Mark selected vibes as ACTIVE so they appear in the default vibe list and can run sessions/tunnels via their attached agent(s).",
409
- className: "rounded-md border border-status-success-border px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg disabled:cursor-not-allowed disabled:opacity-50",
409
+ className: "rounded-button border border-status-success-border px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg-subtle transition-colors disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
410
410
  children: /* @__PURE__ */ d("span", {
411
411
  className: "inline-flex items-center gap-2",
412
412
  children: [
@@ -420,7 +420,7 @@ function p() {
420
420
  type: "button",
421
421
  onClick: () => I("archive"),
422
422
  disabled: K.length === 0,
423
- className: "rounded-md border border-status-warning-border px-3 py-2 text-sm font-medium text-status-warning-text hover:bg-status-warning-bg disabled:cursor-not-allowed disabled:opacity-50",
423
+ className: "rounded-button border border-status-warning-border px-3 py-2 text-sm font-medium text-status-warning-text hover:bg-status-warning-bg-subtle transition-colors disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
424
424
  children: /* @__PURE__ */ d("span", {
425
425
  className: "inline-flex items-center gap-2",
426
426
  children: [
@@ -477,14 +477,14 @@ function p() {
477
477
  children: /* @__PURE__ */ d("button", {
478
478
  type: "button",
479
479
  onClick: J,
480
- className: "flex items-center gap-2 px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors",
480
+ className: "flex items-center gap-2 px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-button hover:bg-action-primary-bgHover transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
481
481
  children: [/* @__PURE__ */ u(Pe, { className: "size-4" }), v("vibesPage.addVibe", "Add Vibe")]
482
482
  })
483
483
  }), /* @__PURE__ */ u(ve, { prompt: "What is a Vibe in VibeControls and how do I create one?" })]
484
484
  }) : void 0
485
485
  }),
486
486
  ct && /* @__PURE__ */ u("div", {
487
- className: "fixed bottom-4 right-4 z-50 px-4 py-3 bg-status-success-bg text-status-success-text rounded-md shadow-lg text-sm",
487
+ className: "fixed bottom-4 right-4 z-50 px-4 py-3 bg-status-success-bg-subtle text-status-success-text border border-status-success-border rounded-card shadow-elevation-3 text-sm",
488
488
  children: ct
489
489
  }),
490
490
  /* @__PURE__ */ u(ne, {
@@ -507,7 +507,7 @@ function p() {
507
507
  }),
508
508
  ut && /* @__PURE__ */ d("div", {
509
509
  role: "alert",
510
- className: "fixed bottom-4 right-4 z-50 px-4 py-3 bg-status-error-bg text-status-error-text rounded-md shadow-lg text-sm",
510
+ className: "fixed bottom-4 right-4 z-50 px-4 py-3 bg-status-error-bg-subtle text-status-error-text border border-status-error-border rounded-card shadow-elevation-3 text-sm",
511
511
  children: [ut, /* @__PURE__ */ u("button", {
512
512
  type: "button",
513
513
  onClick: ft,
@@ -518,7 +518,7 @@ function p() {
518
518
  at && /* @__PURE__ */ u("div", {
519
519
  className: "fixed inset-0 bg-bg-overlay flex items-center justify-center z-50 p-4",
520
520
  children: /* @__PURE__ */ d("div", {
521
- className: "bg-bg-surface rounded-lg p-6 w-full max-w-lg",
521
+ className: "bg-bg-surface rounded-card border border-border-subtle shadow-[var(--shadow-elevation-4)] p-6 w-full max-w-lg",
522
522
  children: [
523
523
  /* @__PURE__ */ u("h2", {
524
524
  className: "text-lg font-semibold text-text-primary mb-4",
@@ -528,7 +528,7 @@ function p() {
528
528
  className: "space-y-4",
529
529
  children: [
530
530
  ot && /* @__PURE__ */ u("div", {
531
- className: "p-3 bg-status-error-bg text-status-error-text text-sm rounded-md",
531
+ className: "p-3 bg-status-error-bg-subtle text-status-error-text border border-status-error-border text-sm rounded-card",
532
532
  children: ot
533
533
  }),
534
534
  /* @__PURE__ */ d("div", { children: [
@@ -545,7 +545,7 @@ function p() {
545
545
  ...e,
546
546
  name: void 0
547
547
  })),
548
- className: `w-full px-3 py-2 bg-bg-sunken border rounded-md text-text-primary placeholder:text-text-placeholder ${j.name ? "border-status-error-border" : "border-border-default"}`
548
+ className: `w-full px-3 py-2 bg-bg-sunken border rounded-input text-text-primary placeholder:text-text-placeholder transition-colors focus:outline-none focus:ring-1 focus:ring-[var(--color-focus-ring)] focus:border-border-strong ${j.name ? "border-status-error-border" : "border-border-subtle"}`
549
549
  }),
550
550
  j.name && /* @__PURE__ */ u("p", {
551
551
  className: "mt-1 text-xs text-status-error-text",
@@ -569,7 +569,7 @@ function p() {
569
569
  ...e,
570
570
  path: void 0
571
571
  })),
572
- className: `w-full px-3 py-2 bg-bg-sunken border rounded-md text-text-primary placeholder:text-text-placeholder ${j.path ? "border-status-error-border" : "border-border-default"}`
572
+ className: `w-full px-3 py-2 bg-bg-sunken border rounded-input text-text-primary placeholder:text-text-placeholder transition-colors focus:outline-none focus:ring-1 focus:ring-[var(--color-focus-ring)] focus:border-border-strong ${j.path ? "border-status-error-border" : "border-border-subtle"}`
573
573
  }),
574
574
  j.path && /* @__PURE__ */ u("p", {
575
575
  className: "mt-1 text-xs text-status-error-text",
@@ -581,7 +581,7 @@ function p() {
581
581
  children: v("vibesPage.agentLabel", "Agent")
582
582
  }), /* @__PURE__ */ d("select", {
583
583
  ref: ht,
584
- className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary",
584
+ className: "w-full px-3 py-2 bg-bg-sunken border border-border-subtle rounded-input text-text-primary transition-colors focus:outline-none focus:ring-1 focus:ring-[var(--color-focus-ring)] focus:border-border-strong",
585
585
  children: [/* @__PURE__ */ u("option", {
586
586
  value: "",
587
587
  children: v("vibesPage.selectAgent", "Select an agent")
@@ -598,7 +598,7 @@ function p() {
598
598
  ]
599
599
  }),
600
600
  /* @__PURE__ */ d("div", {
601
- className: "mt-4 border-t border-border-default pt-4",
601
+ className: "mt-4 border-t border-border-subtle pt-4",
602
602
  children: [/* @__PURE__ */ u("h3", {
603
603
  className: "text-sm font-medium text-text-secondary mb-2",
604
604
  children: v("vibesPage.tags", "Tags")
@@ -619,7 +619,7 @@ function p() {
619
619
  type: "button",
620
620
  onClick: Kt,
621
621
  disabled: O,
622
- className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50",
622
+ className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-button hover:bg-action-primary-bgHover transition-all duration-200 disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
623
623
  children: O ? v("vibesPage.creating", "Creating...") : v("vibesPage.createVibe", "Create Vibe")
624
624
  })]
625
625
  })