@wopr-network/platform-ui-core 1.27.8 → 1.27.9

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 (353) hide show
  1. package/next.config.ts +1 -2
  2. package/package.json +17 -17
  3. package/src/__tests__/account-switcher.test.tsx +21 -20
  4. package/src/__tests__/activity-page.test.tsx +2 -6
  5. package/src/__tests__/add-payment-method-dialog.test.tsx +9 -32
  6. package/src/__tests__/admin-api.test.ts +1 -6
  7. package/src/__tests__/admin-gpu-api.test.ts +1 -3
  8. package/src/__tests__/admin-marketplace-api.test.ts +1 -4
  9. package/src/__tests__/admin-middleware.test.ts +76 -83
  10. package/src/__tests__/affiliate-dashboard.test.tsx +3 -3
  11. package/src/__tests__/api-401-redirect.test.ts +46 -9
  12. package/src/__tests__/api-client.test.ts +3 -5
  13. package/src/__tests__/api-config.test.ts +22 -42
  14. package/src/__tests__/api-fleet-resources.test.ts +1 -2
  15. package/src/__tests__/api-fleet-trpc.test.ts +2 -8
  16. package/src/__tests__/api-null-guards.test.ts +3 -1
  17. package/src/__tests__/audit-log-table-pagination.test.tsx +2 -6
  18. package/src/__tests__/auth-password-reset.test.tsx +7 -21
  19. package/src/__tests__/auth-redirect.test.tsx +8 -2
  20. package/src/__tests__/auth.test.tsx +25 -23
  21. package/src/__tests__/auto-topup-card.test.tsx +4 -12
  22. package/src/__tests__/backups-tab.test.tsx +3 -4
  23. package/src/__tests__/billing-layout-nav-hidden.test.tsx +5 -37
  24. package/src/__tests__/billing-payment-org-invoices.test.tsx +2 -18
  25. package/src/__tests__/billing.test.tsx +8 -39
  26. package/src/__tests__/bot-settings/resources-tab.test.tsx +1 -3
  27. package/src/__tests__/bot-settings/storage-tab.test.tsx +1 -3
  28. package/src/__tests__/bot-settings/vps-upgrade-card.test.tsx +1 -3
  29. package/src/__tests__/bot-settings-restart.test.tsx +1 -3
  30. package/src/__tests__/bot-settings.test.tsx +2 -6
  31. package/src/__tests__/brand.test.ts +6 -26
  32. package/src/__tests__/buy-credits-panel.test.tsx +1 -3
  33. package/src/__tests__/buy-crypto-credits-panel.test.tsx +101 -119
  34. package/src/__tests__/capability-conflicts.test.ts +2 -8
  35. package/src/__tests__/capability-resolver.test.tsx +2 -12
  36. package/src/__tests__/channel-wizard.test.tsx +4 -17
  37. package/src/__tests__/chat/chat-panel.test.tsx +1 -4
  38. package/src/__tests__/chat-store.test.ts +5 -15
  39. package/src/__tests__/command-center.test.tsx +10 -12
  40. package/src/__tests__/compliance-retention-edit.test.tsx +3 -6
  41. package/src/__tests__/confirmation-tracker.test.tsx +3 -18
  42. package/src/__tests__/coupon-input.test.tsx +1 -3
  43. package/src/__tests__/create-instance.test.tsx +1 -3
  44. package/src/__tests__/credit-balance.test.tsx +4 -12
  45. package/src/__tests__/credits.test.tsx +32 -85
  46. package/src/__tests__/email-verification-banner.test.tsx +2 -6
  47. package/src/__tests__/error-boundaries.test.tsx +0 -1
  48. package/src/__tests__/fetch-pricing.test.ts +2 -1
  49. package/src/__tests__/field-oauth.test.tsx +2 -6
  50. package/src/__tests__/fixtures/mock-manifests-data.js +1 -3
  51. package/src/__tests__/fixtures/mock-manifests.ts +2 -4
  52. package/src/__tests__/fleet-health-timestamp.test.tsx +1 -8
  53. package/src/__tests__/fleet-health-update.test.tsx +1 -8
  54. package/src/__tests__/gpu-dashboard.test.tsx +2 -6
  55. package/src/__tests__/instance-detail.test.tsx +3 -9
  56. package/src/__tests__/instance-list.test.tsx +1 -5
  57. package/src/__tests__/layout-snapshots.test.tsx +64 -11
  58. package/src/__tests__/marketplace-admin.test.tsx +2 -6
  59. package/src/__tests__/marketplace.test.tsx +11 -35
  60. package/src/__tests__/merge-api-rates.test.ts +1 -6
  61. package/src/__tests__/middleware.test.ts +32 -219
  62. package/src/__tests__/next-config-headers.test.ts +1 -3
  63. package/src/__tests__/notifications.test.tsx +4 -11
  64. package/src/__tests__/oauth-buttons.test.tsx +36 -59
  65. package/src/__tests__/oauth-error-mapping.test.tsx +2 -6
  66. package/src/__tests__/observability.test.tsx +23 -36
  67. package/src/__tests__/onboarding-page.test.tsx +4 -6
  68. package/src/__tests__/org-billing-api.test.tsx +1 -6
  69. package/src/__tests__/plugin-install-flow.test.tsx +28 -58
  70. package/src/__tests__/plugin-registry.test.tsx +3 -11
  71. package/src/__tests__/plugin-tool-sync.test.ts +1 -3
  72. package/src/__tests__/plugins-catalog-error.test.tsx +2 -6
  73. package/src/__tests__/plugins-toggle-race.test.tsx +3 -5
  74. package/src/__tests__/portfolio-chart.test.tsx +2 -6
  75. package/src/__tests__/promotion-form.test.tsx +2 -6
  76. package/src/__tests__/promotions-list.test.tsx +1 -3
  77. package/src/__tests__/provider-key-api.test.ts +2 -1
  78. package/src/__tests__/resend-verification-button.test.tsx +8 -24
  79. package/src/__tests__/secrets-audit-pagination.test.tsx +1 -3
  80. package/src/__tests__/settings.test.tsx +11 -21
  81. package/src/__tests__/setup-checklist.test.tsx +3 -9
  82. package/src/__tests__/setup.ts +25 -6
  83. package/src/__tests__/snapshot-api.test.ts +2 -1
  84. package/src/__tests__/step-superpowers.test.tsx +1 -3
  85. package/src/__tests__/tenant-context.test.tsx +1 -6
  86. package/src/__tests__/tenant-keys-api.test.ts +3 -4
  87. package/src/__tests__/tenant-table-pagination.test.tsx +2 -6
  88. package/src/__tests__/terminal-log-cleanup.test.tsx +0 -1
  89. package/src/__tests__/transaction-history.test.tsx +190 -238
  90. package/src/__tests__/trpc-types.test.ts +2 -6
  91. package/src/__tests__/use-chat.test.ts +1 -3
  92. package/src/__tests__/use-plugin-setup-chat-stale-closure.test.ts +1 -4
  93. package/src/__tests__/use-sidecar-bridge.test.tsx +105 -0
  94. package/src/__tests__/use-webmcp.test.ts +1 -3
  95. package/src/__tests__/validate-elevenlabs-key.test.ts +2 -1
  96. package/src/__tests__/verify-page.test.tsx +4 -13
  97. package/src/__tests__/verify-redirect.test.tsx +2 -6
  98. package/src/app/(auth)/error.tsx +1 -7
  99. package/src/app/(auth)/forgot-password/page.tsx +4 -18
  100. package/src/app/(auth)/login/page.tsx +5 -22
  101. package/src/app/(auth)/reset-password/page.tsx +2 -12
  102. package/src/app/(auth)/signup/page.tsx +10 -44
  103. package/src/app/(auth)/verify/page.tsx +47 -0
  104. package/src/app/(dashboard)/billing/credits/page.tsx +14 -67
  105. package/src/app/(dashboard)/billing/error.tsx +2 -10
  106. package/src/app/(dashboard)/billing/layout.tsx +12 -62
  107. package/src/app/(dashboard)/billing/payment/page.tsx +17 -68
  108. package/src/app/(dashboard)/billing/plans/page.tsx +3 -9
  109. package/src/app/(dashboard)/billing/usage/hosted/page.tsx +8 -25
  110. package/src/app/(dashboard)/billing/usage/page.tsx +63 -103
  111. package/src/app/(dashboard)/changesets/[id]/changeset-detail-client.tsx +9 -27
  112. package/src/app/(dashboard)/changesets/[id]/error.tsx +2 -6
  113. package/src/app/(dashboard)/changesets/error.tsx +1 -7
  114. package/src/app/(dashboard)/chat/page.tsx +2 -6
  115. package/src/app/(dashboard)/dashboard/network/page.tsx +5 -19
  116. package/src/app/(dashboard)/error.tsx +1 -7
  117. package/src/app/(dashboard)/layout.tsx +15 -36
  118. package/src/app/(dashboard)/marketplace/[plugin]/page.tsx +14 -51
  119. package/src/app/(dashboard)/marketplace/error.tsx +1 -7
  120. package/src/app/(dashboard)/marketplace/page.tsx +6 -27
  121. package/src/app/(dashboard)/not-found.tsx +2 -5
  122. package/src/app/(dashboard)/onboarding/page.tsx +5 -22
  123. package/src/app/(dashboard)/settings/account/page.tsx +1 -6
  124. package/src/app/(dashboard)/settings/activity/page.tsx +8 -34
  125. package/src/app/(dashboard)/settings/api-keys/page.tsx +15 -60
  126. package/src/app/(dashboard)/settings/brain/page.tsx +9 -31
  127. package/src/app/(dashboard)/settings/error.tsx +2 -10
  128. package/src/app/(dashboard)/settings/notifications/page.tsx +2 -6
  129. package/src/app/(dashboard)/settings/org/page.tsx +13 -56
  130. package/src/app/(dashboard)/settings/page.tsx +1 -0
  131. package/src/app/(dashboard)/settings/profile/page.tsx +126 -73
  132. package/src/app/(dashboard)/settings/providers/page.tsx +21 -78
  133. package/src/app/(dashboard)/settings/secrets/page.tsx +13 -58
  134. package/src/app/(dashboard)/settings/security/page.tsx +31 -111
  135. package/src/app/admin/email-templates/email-templates-client.tsx +15 -58
  136. package/src/app/admin/error.tsx +1 -7
  137. package/src/app/admin/fleet-updates/error.tsx +1 -7
  138. package/src/app/admin/fleet-updates/fleet-updates-client.tsx +10 -50
  139. package/src/app/admin/layout.tsx +4 -0
  140. package/src/app/admin/payment-methods/page.tsx +9 -38
  141. package/src/app/admin/products/error.tsx +2 -7
  142. package/src/app/admin/products/page.tsx +1 -4
  143. package/src/app/admin/promotions/[id]/page.tsx +9 -38
  144. package/src/app/admin/promotions/page.tsx +9 -36
  145. package/src/app/admin/rate-overrides/page.tsx +9 -45
  146. package/src/app/auth/callback/[provider]/page.tsx +1 -8
  147. package/src/app/auth/verify/page.tsx +9 -36
  148. package/src/app/channels/error.tsx +2 -10
  149. package/src/app/channels/layout.tsx +9 -0
  150. package/src/app/channels/page.tsx +8 -20
  151. package/src/app/channels/setup/[plugin]/page.tsx +3 -5
  152. package/src/app/error.tsx +1 -7
  153. package/src/app/fleet/error.tsx +1 -7
  154. package/src/app/fleet/layout.tsx +5 -0
  155. package/src/app/fleet/settings/page.tsx +1 -3
  156. package/src/app/global-error.tsx +2 -10
  157. package/src/app/globals.css +1 -4
  158. package/src/app/instances/[id]/instance-detail-client.tsx +51 -125
  159. package/src/app/instances/error.tsx +2 -10
  160. package/src/app/instances/instance-list-client.tsx +20 -69
  161. package/src/app/instances/layout.tsx +9 -0
  162. package/src/app/instances/new/create-instance-client.tsx +10 -31
  163. package/src/app/layout.tsx +2 -10
  164. package/src/app/not-found.tsx +1 -3
  165. package/src/app/page.tsx +1 -2
  166. package/src/app/plugins/error.tsx +2 -10
  167. package/src/app/plugins/layout.tsx +5 -0
  168. package/src/app/plugins/page.tsx +16 -48
  169. package/src/app/pricing/error.tsx +1 -7
  170. package/src/app/privacy/page.tsx +93 -150
  171. package/src/app/status/error.tsx +1 -7
  172. package/src/app/terms/page.tsx +89 -144
  173. package/src/components/account-switcher.tsx +25 -52
  174. package/src/components/admin/accounting-dashboard.tsx +1 -3
  175. package/src/components/admin/admin-guard.tsx +1 -3
  176. package/src/components/admin/admin-nav.tsx +1 -3
  177. package/src/components/admin/affiliate-dashboard.tsx +25 -94
  178. package/src/components/admin/audit-log-table.tsx +13 -49
  179. package/src/components/admin/billing-health-dashboard.tsx +7 -25
  180. package/src/components/admin/bulk-actions-bar.test.tsx +1 -7
  181. package/src/components/admin/bulk-actions-bar.tsx +1 -3
  182. package/src/components/admin/bulk-export-dialog.test.tsx +1 -7
  183. package/src/components/admin/bulk-export-dialog.tsx +6 -32
  184. package/src/components/admin/bulk-grant-dialog.test.tsx +2 -6
  185. package/src/components/admin/bulk-grant-dialog.tsx +4 -15
  186. package/src/components/admin/bulk-preview-dialog.tsx +3 -12
  187. package/src/components/admin/bulk-reactivate-dialog.tsx +1 -7
  188. package/src/components/admin/bulk-select-all-banner.tsx +1 -6
  189. package/src/components/admin/bulk-suspend-dialog.tsx +5 -12
  190. package/src/components/admin/bulk-undo-toast.tsx +1 -2
  191. package/src/components/admin/compliance-dashboard.tsx +31 -101
  192. package/src/components/admin/gpu-dashboard.tsx +21 -70
  193. package/src/components/admin/grant-credits-dialog.tsx +4 -17
  194. package/src/components/admin/incident-dashboard.tsx +10 -25
  195. package/src/components/admin/inference-dashboard.tsx +14 -54
  196. package/src/components/admin/marketplace-admin.tsx +18 -60
  197. package/src/components/admin/migrations-dashboard.tsx +9 -42
  198. package/src/components/admin/onboarding-dashboard.tsx +14 -64
  199. package/src/components/admin/pool-config-dashboard.tsx +4 -10
  200. package/src/components/admin/products/fleet-form.tsx +2 -11
  201. package/src/components/admin/products/nav-editor.tsx +3 -10
  202. package/src/components/admin/promotions/promotion-form.tsx +9 -42
  203. package/src/components/admin/roles-dashboard.tsx +7 -34
  204. package/src/components/admin/suspend-dialog.tsx +4 -11
  205. package/src/components/admin/tenant-notes-panel.tsx +1 -3
  206. package/src/components/admin/tenant-row-actions.tsx +4 -20
  207. package/src/components/admin/tenant-table.tsx +12 -49
  208. package/src/components/auth/auth-redirect.tsx +11 -3
  209. package/src/components/auth/email-verification-result-banner.tsx +1 -3
  210. package/src/components/auth/resend-verification-button.tsx +2 -10
  211. package/src/components/auth/wopr-wordmark.tsx +1 -3
  212. package/src/components/billing/add-payment-method-dialog.tsx +1 -2
  213. package/src/components/billing/affiliate-dashboard.tsx +4 -16
  214. package/src/components/billing/amount-selector.tsx +1 -3
  215. package/src/components/billing/auto-topup-card.tsx +2 -11
  216. package/src/components/billing/buy-credits-panel.tsx +4 -14
  217. package/src/components/billing/byok-callout.tsx +6 -8
  218. package/src/components/billing/confirmation-tracker.tsx +4 -14
  219. package/src/components/billing/credit-balance-badge.tsx +22 -0
  220. package/src/components/billing/credit-balance.tsx +3 -9
  221. package/src/components/billing/crypto-checkout.tsx +5 -24
  222. package/src/components/billing/degraded-state-banner.tsx +1 -3
  223. package/src/components/billing/deposit-view.tsx +301 -41
  224. package/src/components/billing/dividend-banner.tsx +1 -3
  225. package/src/components/billing/dividend-eligibility.tsx +3 -12
  226. package/src/components/billing/dividend-pool-stats.tsx +6 -20
  227. package/src/components/billing/first-dividend-dialog.tsx +2 -2
  228. package/src/components/billing/org-billing-page.tsx +8 -31
  229. package/src/components/billing/payment-method-picker.tsx +2 -10
  230. package/src/components/billing/suspension-banner.tsx +2 -7
  231. package/src/components/billing/transaction-history.tsx +10 -58
  232. package/src/components/billing/unified-checkout.tsx +547 -0
  233. package/src/components/bot-settings/backups-tab.tsx +9 -33
  234. package/src/components/bot-settings/bot-settings-client.tsx +32 -134
  235. package/src/components/bot-settings/resources-tab.tsx +2 -9
  236. package/src/components/bot-settings/storage-tab.tsx +19 -48
  237. package/src/components/bot-settings/vps-info-panel.tsx +3 -11
  238. package/src/components/bot-settings/vps-upgrade-card.tsx +3 -4
  239. package/src/components/brand-hydrator.tsx +13 -0
  240. package/src/components/channel-wizard/field-interactive.tsx +1 -3
  241. package/src/components/channel-wizard/field-qr.tsx +10 -39
  242. package/src/components/channel-wizard/step-renderer.tsx +5 -28
  243. package/src/components/channel-wizard/wizard.tsx +6 -31
  244. package/src/components/chat/chat-message.tsx +1 -4
  245. package/src/components/chat/chat-panel.tsx +4 -18
  246. package/src/components/chat/chat-widget.tsx +3 -14
  247. package/src/components/dashboard/command-center.tsx +15 -61
  248. package/src/components/fleet/update-settings-card.tsx +7 -23
  249. package/src/components/instance-update-banner.tsx +130 -0
  250. package/src/components/instances/friends-tab.test.tsx +2 -9
  251. package/src/components/instances/friends-tab.tsx +18 -74
  252. package/src/components/instances/update-available-badge.tsx +2 -11
  253. package/src/components/landing/hero.tsx +3 -9
  254. package/src/components/landing/landing-page.tsx +1 -3
  255. package/src/components/landing/portfolio-chart.tsx +4 -9
  256. package/src/components/landing/story-sections.tsx +1 -3
  257. package/src/components/landing/terminal-sequence.tsx +4 -17
  258. package/src/components/marketplace/empty-state.tsx +2 -6
  259. package/src/components/marketplace/first-visit-hero.tsx +1 -3
  260. package/src/components/marketplace/install-wizard.tsx +20 -77
  261. package/src/components/marketplace/marketplace-tabs.tsx +1 -4
  262. package/src/components/marketplace/plugin-card.tsx +2 -9
  263. package/src/components/marketplace/superpower-content.tsx +1 -3
  264. package/src/components/marketplace/terminal-search.tsx +2 -8
  265. package/src/components/oauth-buttons.tsx +29 -14
  266. package/src/components/observability/fleet-health.tsx +5 -18
  267. package/src/components/observability/health-overview.tsx +7 -20
  268. package/src/components/observability/logs-viewer.tsx +8 -32
  269. package/src/components/observability/metrics-dashboard.tsx +2 -15
  270. package/src/components/onboarding/fallback-setup.tsx +6 -25
  271. package/src/components/onboarding/setup-checklist.tsx +18 -51
  272. package/src/components/onboarding/step-superpowers.tsx +1 -4
  273. package/src/components/plugin-setup/setup-chat-panel.tsx +6 -22
  274. package/src/components/pricing/dividend-calculator.tsx +6 -12
  275. package/src/components/pricing/dividend-stats.tsx +5 -17
  276. package/src/components/pricing/pricing-page.tsx +17 -36
  277. package/src/components/settings/create-org-wizard.tsx +2 -5
  278. package/src/components/sidebar.tsx +7 -42
  279. package/src/components/sidecar-frame.tsx +78 -0
  280. package/src/components/status/status-page.tsx +6 -28
  281. package/src/components/ui/alert-dialog.tsx +8 -25
  282. package/src/components/ui/badge.tsx +2 -8
  283. package/src/components/ui/banner.tsx +1 -6
  284. package/src/components/ui/card.tsx +5 -24
  285. package/src/components/ui/checkbox.tsx +1 -5
  286. package/src/components/ui/collapsible.tsx +3 -8
  287. package/src/components/ui/dialog.tsx +4 -10
  288. package/src/components/ui/dropdown-menu.tsx +9 -18
  289. package/src/components/ui/form.tsx +2 -16
  290. package/src/components/ui/popover.tsx +3 -23
  291. package/src/components/ui/progress.tsx +1 -5
  292. package/src/components/ui/radio-group.tsx +3 -15
  293. package/src/components/ui/select.tsx +4 -17
  294. package/src/components/ui/sheet.tsx +5 -19
  295. package/src/components/ui/skeleton.tsx +1 -7
  296. package/src/components/ui/table.tsx +5 -22
  297. package/src/components/ui/tabs.tsx +3 -13
  298. package/src/components/ui/tooltip.tsx +1 -1
  299. package/src/components/unified-sidebar.tsx +493 -0
  300. package/src/hooks/__tests__/use-fleet-sse.test.ts +1 -4
  301. package/src/hooks/__tests__/use-save-queue.test.ts +2 -8
  302. package/src/hooks/use-credit-balance.ts +27 -0
  303. package/src/hooks/use-my-org-role.ts +1 -3
  304. package/src/hooks/use-plugin-registry.ts +8 -14
  305. package/src/hooks/use-plugin-setup-chat.ts +2 -5
  306. package/src/hooks/use-sidecar-bridge.tsx +148 -0
  307. package/src/hooks/use-webmcp.ts +1 -4
  308. package/src/lib/__tests__/admin-api.test.ts +1 -3
  309. package/src/lib/__tests__/api-bot-crud.test.ts +8 -18
  310. package/src/lib/__tests__/api-fetch.test.ts +4 -16
  311. package/src/lib/__tests__/org-billing-api.test.ts +1 -3
  312. package/src/lib/__tests__/pricing-data.test.ts +0 -8
  313. package/src/lib/__tests__/settings-api.test.ts +1 -3
  314. package/src/lib/admin-affiliate-api.ts +2 -7
  315. package/src/lib/admin-api.ts +6 -26
  316. package/src/lib/admin-incident-api.ts +11 -19
  317. package/src/lib/admin-marketplace-api.ts +1 -5
  318. package/src/lib/api-config.test.ts +5 -50
  319. package/src/lib/api.ts +143 -122
  320. package/src/lib/auth-client.ts +1 -2
  321. package/src/lib/bot-settings-data.ts +11 -36
  322. package/src/lib/brand-config.ts +56 -115
  323. package/src/lib/brand.ts +2 -15
  324. package/src/lib/chat/use-chat.ts +2 -7
  325. package/src/lib/cost-comparison-data.test.ts +1 -3
  326. package/src/lib/cost-comparison-data.ts +1 -4
  327. package/src/lib/errors.ts +1 -4
  328. package/src/lib/fetch-utils.test.ts +26 -9
  329. package/src/lib/fetch-utils.ts +40 -11
  330. package/src/lib/logger.ts +2 -0
  331. package/src/lib/marketplace-data.ts +3 -11
  332. package/src/lib/oauth-errors.ts +2 -4
  333. package/src/lib/onboarding-data.ts +3 -11
  334. package/src/lib/org-api.ts +2 -10
  335. package/src/lib/org-billing-api.ts +5 -19
  336. package/src/lib/plugin/tool-definitions.ts +1 -2
  337. package/src/lib/require-auth.ts +57 -0
  338. package/src/lib/settings-api.ts +1 -4
  339. package/src/lib/sidecar-routes.ts +43 -0
  340. package/src/lib/trpc-server.ts +49 -0
  341. package/src/lib/trpc-types.ts +4 -6
  342. package/src/lib/trpc.tsx +12 -4
  343. package/src/lib/validate-redirect-url.ts +1 -4
  344. package/src/lib/webmcp/marketplace-onboarding-tools.ts +6 -16
  345. package/src/lib/webmcp/register.ts +1 -4
  346. package/src/lib/webmcp/tools.ts +2 -9
  347. package/src/proxy.ts +35 -212
  348. package/src/types/missing-deps.d.ts +2 -8
  349. package/tsconfig.json +1 -8
  350. package/biome.json +0 -52
  351. package/src/__tests__/__snapshots__/layout-snapshots.test.tsx.snap +0 -741
  352. package/src/__tests__/billing-byok-callout.test.tsx +0 -76
  353. package/src/lib/__tests__/__snapshots__/pricing-data.test.ts.snap +0 -112
@@ -1,741 +0,0 @@
1
- // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
-
3
- exports[`Layout snapshots > AdminLayout renders desktop sidebar + admin nav + mobile fallback 1`] = `
4
- <div>
5
- <div
6
- class="hidden lg:flex h-screen"
7
- >
8
- <div
9
- data-testid="sidebar"
10
- >
11
- Sidebar
12
- </div>
13
- <div
14
- class="flex flex-1 flex-col overflow-auto"
15
- >
16
- <nav
17
- data-testid="admin-nav"
18
- >
19
- AdminNav
20
- </nav>
21
- <main
22
- class="flex-1 overflow-auto"
23
- style="opacity: 0;"
24
- >
25
- <div>
26
- admin child
27
- </div>
28
- </main>
29
- </div>
30
- </div>
31
- <div
32
- class="flex lg:hidden h-screen items-center justify-center p-6"
33
- >
34
- <p
35
- class="text-center text-sm text-muted-foreground"
36
- >
37
- Admin panel requires desktop. Minimum width: 1024px.
38
- </p>
39
- </div>
40
- </div>
41
- `;
42
-
43
- exports[`Layout snapshots > AuthLayout renders centered card structure 1`] = `
44
- <div>
45
- <div
46
- class="relative flex min-h-screen items-center justify-center bg-background px-4 overflow-hidden"
47
- >
48
- <div
49
- class="pointer-events-none absolute inset-0 flex items-center justify-center"
50
- >
51
- <div
52
- class="h-[500px] w-[500px] rounded-full bg-terminal/5 blur-[120px]"
53
- />
54
- </div>
55
- <div
56
- class="relative z-10 w-full max-w-sm"
57
- >
58
- <div>
59
- auth child
60
- </div>
61
- </div>
62
- </div>
63
- </div>
64
- `;
65
-
66
- exports[`Layout snapshots > BillingLayout renders billing nav sidebar + content area 1`] = `
67
- <div>
68
- <div
69
- class="flex h-full"
70
- >
71
- <nav
72
- class="w-48 shrink-0 border-r p-4"
73
- >
74
- <h2
75
- class="mb-4 text-sm font-semibold text-muted-foreground"
76
- >
77
- Billing
78
- </h2>
79
- <ul
80
- class="space-y-1"
81
- >
82
- <li
83
- class=""
84
- >
85
- <a
86
- class="block rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground"
87
- href="/billing/plans"
88
- >
89
- Your Plan
90
- </a>
91
- </li>
92
- <li
93
- class=""
94
- >
95
- <a
96
- class="block rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground"
97
- href="/billing/credits"
98
- >
99
- Credits
100
- </a>
101
- </li>
102
- <li
103
- class=""
104
- >
105
- <a
106
- class="block rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground"
107
- href="/billing/usage"
108
- >
109
- Usage
110
- </a>
111
- </li>
112
- <li
113
- class="hidden"
114
- >
115
- <a
116
- class="block rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground"
117
- href="/billing/usage/hosted"
118
- >
119
- Hosted Usage
120
- </a>
121
- </li>
122
- <li
123
- class=""
124
- >
125
- <a
126
- class="block rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground"
127
- href="/billing/payment"
128
- >
129
- Payment
130
- </a>
131
- </li>
132
- <li
133
- class=""
134
- >
135
- <a
136
- class="block rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground text-muted-foreground"
137
- href="/billing/referrals"
138
- >
139
- Refer & Earn
140
- </a>
141
- </li>
142
- </ul>
143
- </nav>
144
- <div
145
- class="flex-1 overflow-auto p-6"
146
- >
147
- <div>
148
- billing child
149
- </div>
150
- <footer
151
- class="mt-8 border-t pt-4 text-xs text-muted-foreground"
152
- >
153
- <div
154
- class="flex gap-4"
155
- >
156
- <a
157
- class="underline underline-offset-4 hover:text-foreground"
158
- href="/terms"
159
- >
160
- Terms of Service
161
- </a>
162
- <a
163
- class="underline underline-offset-4 hover:text-foreground"
164
- href="/privacy"
165
- >
166
- Privacy Policy
167
- </a>
168
- </div>
169
- </footer>
170
- </div>
171
- </div>
172
- </div>
173
- `;
174
-
175
- exports[`Layout snapshots > DashboardLayout renders sidebar + main with mobile sheet 1`] = `
176
- <div>
177
- <div
178
- class="hidden lg:flex h-screen"
179
- >
180
- <div
181
- data-testid="sidebar"
182
- >
183
- Sidebar
184
- </div>
185
- <div
186
- class="crt-scanlines flex flex-1 flex-col overflow-auto"
187
- >
188
- <main
189
- class="flex-1 overflow-auto"
190
- style="opacity: 0;"
191
- >
192
- <div>
193
- dashboard child
194
- </div>
195
- </main>
196
- </div>
197
- </div>
198
- <div
199
- class="crt-scanlines flex lg:hidden h-screen flex-col"
200
- >
201
- <header
202
- class="flex h-14 shrink-0 items-center border-b border-sidebar-border bg-sidebar px-4 gap-3"
203
- >
204
- <button
205
- aria-controls="radix-_r_2_"
206
- aria-expanded="false"
207
- aria-haspopup="dialog"
208
- aria-label="Open navigation menu"
209
- class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm text-sm font-medium font-mono transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9"
210
- data-size="icon"
211
- data-slot="sheet-trigger"
212
- data-state="closed"
213
- data-variant="ghost"
214
- type="button"
215
- >
216
- <svg
217
- aria-hidden="true"
218
- class="lucide lucide-menu size-5"
219
- fill="none"
220
- height="24"
221
- stroke="currentColor"
222
- stroke-linecap="round"
223
- stroke-linejoin="round"
224
- stroke-width="2"
225
- viewBox="0 0 24 24"
226
- width="24"
227
- xmlns="http://www.w3.org/2000/svg"
228
- >
229
- <path
230
- d="M4 5h16"
231
- />
232
- <path
233
- d="M4 12h16"
234
- />
235
- <path
236
- d="M4 19h16"
237
- />
238
- </svg>
239
- </button>
240
- <span
241
- class="text-lg font-semibold tracking-tight"
242
- >
243
- Platform
244
- </span>
245
- </header>
246
- <main
247
- class="flex-1 overflow-auto"
248
- style="opacity: 0;"
249
- >
250
- <div>
251
- dashboard child
252
- </div>
253
- </main>
254
- </div>
255
- <div
256
- data-testid="chat-widget"
257
- >
258
- ChatWidget
259
- </div>
260
- </div>
261
- `;
262
-
263
- exports[`Layout snapshots > FleetLayout renders sidebar + main 1`] = `
264
- <div>
265
- <div
266
- class="flex h-screen"
267
- >
268
- <div
269
- data-testid="sidebar"
270
- >
271
- Sidebar
272
- </div>
273
- <main
274
- class="flex-1 overflow-auto"
275
- >
276
- <div>
277
- fleet child
278
- </div>
279
- </main>
280
- </div>
281
- </div>
282
- `;
283
-
284
- exports[`Layout snapshots > PluginsLayout renders sidebar + main 1`] = `
285
- <div>
286
- <div
287
- class="flex h-screen"
288
- >
289
- <div
290
- data-testid="sidebar"
291
- >
292
- Sidebar
293
- </div>
294
- <main
295
- class="flex-1 overflow-auto"
296
- >
297
- <div>
298
- plugins child
299
- </div>
300
- </main>
301
- </div>
302
- </div>
303
- `;
304
-
305
- exports[`Layout snapshots > SettingsLayout renders desktop nav + mobile sheet 1`] = `
306
- <div>
307
- <div
308
- class="flex h-full flex-col md:flex-row"
309
- >
310
- <div
311
- class="flex items-center gap-2 border-b p-4 md:hidden"
312
- >
313
- <button
314
- aria-controls="radix-_r_9_"
315
- aria-expanded="false"
316
- aria-haspopup="dialog"
317
- class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm text-sm font-medium font-mono transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-8"
318
- data-size="icon-sm"
319
- data-slot="sheet-trigger"
320
- data-state="closed"
321
- data-variant="ghost"
322
- type="button"
323
- >
324
- <svg
325
- aria-hidden="true"
326
- class="lucide lucide-menu size-4"
327
- fill="none"
328
- height="24"
329
- stroke="currentColor"
330
- stroke-linecap="round"
331
- stroke-linejoin="round"
332
- stroke-width="2"
333
- viewBox="0 0 24 24"
334
- width="24"
335
- xmlns="http://www.w3.org/2000/svg"
336
- >
337
- <path
338
- d="M4 5h16"
339
- />
340
- <path
341
- d="M4 12h16"
342
- />
343
- <path
344
- d="M4 19h16"
345
- />
346
- </svg>
347
- </button>
348
- <h2
349
- class="text-sm font-semibold"
350
- >
351
- Settings
352
- </h2>
353
- </div>
354
- <nav
355
- class="hidden w-48 shrink-0 border-r p-4 md:block"
356
- >
357
- <h2
358
- class="mb-4 text-sm font-semibold text-muted-foreground"
359
- >
360
- Settings
361
- </h2>
362
- <ul
363
- class="space-y-1"
364
- >
365
- <li
366
- class="relative"
367
- >
368
- <a
369
- class="relative flex items-center gap-2 rounded-sm px-3 py-2 text-sm font-medium transition-colors hover:text-accent-foreground text-muted-foreground"
370
- href="/settings/profile"
371
- >
372
- <span
373
- class="relative z-10 flex items-center gap-2"
374
- >
375
- <svg
376
- aria-hidden="true"
377
- class="lucide lucide-user size-4"
378
- fill="none"
379
- height="24"
380
- stroke="currentColor"
381
- stroke-linecap="round"
382
- stroke-linejoin="round"
383
- stroke-width="2"
384
- viewBox="0 0 24 24"
385
- width="24"
386
- xmlns="http://www.w3.org/2000/svg"
387
- >
388
- <path
389
- d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"
390
- />
391
- <circle
392
- cx="12"
393
- cy="7"
394
- r="4"
395
- />
396
- </svg>
397
- Profile
398
- </span>
399
- </a>
400
- </li>
401
- <li
402
- class="relative"
403
- >
404
- <a
405
- class="relative flex items-center gap-2 rounded-sm px-3 py-2 text-sm font-medium transition-colors hover:text-accent-foreground text-muted-foreground"
406
- href="/settings/account"
407
- >
408
- <span
409
- class="relative z-10 flex items-center gap-2"
410
- >
411
- <svg
412
- aria-hidden="true"
413
- class="lucide lucide-key-round size-4"
414
- fill="none"
415
- height="24"
416
- stroke="currentColor"
417
- stroke-linecap="round"
418
- stroke-linejoin="round"
419
- stroke-width="2"
420
- viewBox="0 0 24 24"
421
- width="24"
422
- xmlns="http://www.w3.org/2000/svg"
423
- >
424
- <path
425
- d="M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"
426
- />
427
- <circle
428
- cx="16.5"
429
- cy="7.5"
430
- fill="currentColor"
431
- r=".5"
432
- />
433
- </svg>
434
- Account
435
- </span>
436
- </a>
437
- </li>
438
- <li
439
- class="relative"
440
- >
441
- <a
442
- class="relative flex items-center gap-2 rounded-sm px-3 py-2 text-sm font-medium transition-colors hover:text-accent-foreground text-muted-foreground"
443
- href="/settings/security"
444
- >
445
- <span
446
- class="relative z-10 flex items-center gap-2"
447
- >
448
- <svg
449
- aria-hidden="true"
450
- class="lucide lucide-shield size-4"
451
- fill="none"
452
- height="24"
453
- stroke="currentColor"
454
- stroke-linecap="round"
455
- stroke-linejoin="round"
456
- stroke-width="2"
457
- viewBox="0 0 24 24"
458
- width="24"
459
- xmlns="http://www.w3.org/2000/svg"
460
- >
461
- <path
462
- d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"
463
- />
464
- </svg>
465
- Security
466
- </span>
467
- </a>
468
- </li>
469
- <li
470
- class="relative"
471
- >
472
- <a
473
- class="relative flex items-center gap-2 rounded-sm px-3 py-2 text-sm font-medium transition-colors hover:text-accent-foreground text-muted-foreground"
474
- href="/settings/brain"
475
- >
476
- <span
477
- class="relative z-10 flex items-center gap-2"
478
- >
479
- <svg
480
- aria-hidden="true"
481
- class="lucide lucide-brain size-4"
482
- fill="none"
483
- height="24"
484
- stroke="currentColor"
485
- stroke-linecap="round"
486
- stroke-linejoin="round"
487
- stroke-width="2"
488
- viewBox="0 0 24 24"
489
- width="24"
490
- xmlns="http://www.w3.org/2000/svg"
491
- >
492
- <path
493
- d="M12 18V5"
494
- />
495
- <path
496
- d="M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4"
497
- />
498
- <path
499
- d="M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5"
500
- />
501
- <path
502
- d="M17.997 5.125a4 4 0 0 1 2.526 5.77"
503
- />
504
- <path
505
- d="M18 18a4 4 0 0 0 2-7.464"
506
- />
507
- <path
508
- d="M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517"
509
- />
510
- <path
511
- d="M6 18a4 4 0 0 1-2-7.464"
512
- />
513
- <path
514
- d="M6.003 5.125a4 4 0 0 0-2.526 5.77"
515
- />
516
- </svg>
517
- Brain
518
- </span>
519
- </a>
520
- </li>
521
- <li
522
- class="relative"
523
- >
524
- <a
525
- class="relative flex items-center gap-2 rounded-sm px-3 py-2 text-sm font-medium transition-colors hover:text-accent-foreground text-muted-foreground"
526
- href="/settings/providers"
527
- >
528
- <span
529
- class="relative z-10 flex items-center gap-2"
530
- >
531
- <svg
532
- aria-hidden="true"
533
- class="lucide lucide-server size-4"
534
- fill="none"
535
- height="24"
536
- stroke="currentColor"
537
- stroke-linecap="round"
538
- stroke-linejoin="round"
539
- stroke-width="2"
540
- viewBox="0 0 24 24"
541
- width="24"
542
- xmlns="http://www.w3.org/2000/svg"
543
- >
544
- <rect
545
- height="8"
546
- rx="2"
547
- ry="2"
548
- width="20"
549
- x="2"
550
- y="2"
551
- />
552
- <rect
553
- height="8"
554
- rx="2"
555
- ry="2"
556
- width="20"
557
- x="2"
558
- y="14"
559
- />
560
- <line
561
- x1="6"
562
- x2="6.01"
563
- y1="6"
564
- y2="6"
565
- />
566
- <line
567
- x1="6"
568
- x2="6.01"
569
- y1="18"
570
- y2="18"
571
- />
572
- </svg>
573
- Provider Keys
574
- </span>
575
- </a>
576
- </li>
577
- <li
578
- class="relative"
579
- >
580
- <a
581
- class="relative flex items-center gap-2 rounded-sm px-3 py-2 text-sm font-medium transition-colors hover:text-accent-foreground text-muted-foreground"
582
- href="/settings/api-keys"
583
- >
584
- <span
585
- class="relative z-10 flex items-center gap-2"
586
- >
587
- <svg
588
- aria-hidden="true"
589
- class="lucide lucide-key size-4"
590
- fill="none"
591
- height="24"
592
- stroke="currentColor"
593
- stroke-linecap="round"
594
- stroke-linejoin="round"
595
- stroke-width="2"
596
- viewBox="0 0 24 24"
597
- width="24"
598
- xmlns="http://www.w3.org/2000/svg"
599
- >
600
- <path
601
- d="m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4"
602
- />
603
- <path
604
- d="m21 2-9.6 9.6"
605
- />
606
- <circle
607
- cx="7.5"
608
- cy="15.5"
609
- r="5.5"
610
- />
611
- </svg>
612
- API Keys
613
- </span>
614
- </a>
615
- </li>
616
- <li
617
- class="relative"
618
- >
619
- <a
620
- class="relative flex items-center gap-2 rounded-sm px-3 py-2 text-sm font-medium transition-colors hover:text-accent-foreground text-muted-foreground"
621
- href="/settings/secrets"
622
- >
623
- <span
624
- class="relative z-10 flex items-center gap-2"
625
- >
626
- <svg
627
- aria-hidden="true"
628
- class="lucide lucide-lock-keyhole size-4"
629
- fill="none"
630
- height="24"
631
- stroke="currentColor"
632
- stroke-linecap="round"
633
- stroke-linejoin="round"
634
- stroke-width="2"
635
- viewBox="0 0 24 24"
636
- width="24"
637
- xmlns="http://www.w3.org/2000/svg"
638
- >
639
- <circle
640
- cx="12"
641
- cy="16"
642
- r="1"
643
- />
644
- <rect
645
- height="12"
646
- rx="2"
647
- width="18"
648
- x="3"
649
- y="10"
650
- />
651
- <path
652
- d="M7 10V7a5 5 0 0 1 10 0v3"
653
- />
654
- </svg>
655
- Secrets
656
- </span>
657
- </a>
658
- </li>
659
- <li
660
- class="relative"
661
- >
662
- <a
663
- class="relative flex items-center gap-2 rounded-sm px-3 py-2 text-sm font-medium transition-colors hover:text-accent-foreground text-muted-foreground"
664
- href="/settings/notifications"
665
- >
666
- <span
667
- class="relative z-10 flex items-center gap-2"
668
- >
669
- <svg
670
- aria-hidden="true"
671
- class="lucide lucide-bell size-4"
672
- fill="none"
673
- height="24"
674
- stroke="currentColor"
675
- stroke-linecap="round"
676
- stroke-linejoin="round"
677
- stroke-width="2"
678
- viewBox="0 0 24 24"
679
- width="24"
680
- xmlns="http://www.w3.org/2000/svg"
681
- >
682
- <path
683
- d="M10.268 21a2 2 0 0 0 3.464 0"
684
- />
685
- <path
686
- d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"
687
- />
688
- </svg>
689
- Notifications
690
- </span>
691
- </a>
692
- </li>
693
- <li
694
- class="relative"
695
- >
696
- <a
697
- class="relative flex items-center gap-2 rounded-sm px-3 py-2 text-sm font-medium transition-colors hover:text-accent-foreground text-muted-foreground"
698
- href="/settings/activity"
699
- >
700
- <span
701
- class="relative z-10 flex items-center gap-2"
702
- >
703
- <svg
704
- aria-hidden="true"
705
- class="lucide lucide-history size-4"
706
- fill="none"
707
- height="24"
708
- stroke="currentColor"
709
- stroke-linecap="round"
710
- stroke-linejoin="round"
711
- stroke-width="2"
712
- viewBox="0 0 24 24"
713
- width="24"
714
- xmlns="http://www.w3.org/2000/svg"
715
- >
716
- <path
717
- d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"
718
- />
719
- <path
720
- d="M3 3v5h5"
721
- />
722
- <path
723
- d="M12 7v5l4 2"
724
- />
725
- </svg>
726
- Activity
727
- </span>
728
- </a>
729
- </li>
730
- </ul>
731
- </nav>
732
- <div
733
- class="flex-1 overflow-auto p-4 md:p-6"
734
- >
735
- <div>
736
- settings child
737
- </div>
738
- </div>
739
- </div>
740
- </div>
741
- `;