@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
@@ -6,10 +6,7 @@ function Card({ className, ...props }: React.ComponentProps<"div">) {
6
6
  return (
7
7
  <div
8
8
  data-slot="card"
9
- className={cn(
10
- "bg-card text-card-foreground flex flex-col gap-6 rounded-sm border py-6 shadow-sm",
11
- className,
12
- )}
9
+ className={cn("bg-card text-card-foreground flex flex-col gap-6 rounded-sm border py-6 shadow-sm", className)}
13
10
  {...props}
14
11
  />
15
12
  );
@@ -29,23 +26,11 @@ function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
29
26
  }
30
27
 
31
28
  function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
32
- return (
33
- <div
34
- data-slot="card-title"
35
- className={cn("leading-none font-semibold font-mono", className)}
36
- {...props}
37
- />
38
- );
29
+ return <div data-slot="card-title" className={cn("leading-none font-semibold font-mono", className)} {...props} />;
39
30
  }
40
31
 
41
32
  function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
42
- return (
43
- <div
44
- data-slot="card-description"
45
- className={cn("text-muted-foreground text-sm", className)}
46
- {...props}
47
- />
48
- );
33
+ return <div data-slot="card-description" className={cn("text-muted-foreground text-sm", className)} {...props} />;
49
34
  }
50
35
 
51
36
  function CardAction({ className, ...props }: React.ComponentProps<"div">) {
@@ -64,12 +49,8 @@ function CardContent({ className, ...props }: React.ComponentProps<"div">) {
64
49
 
65
50
  function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
66
51
  return (
67
- <div
68
- data-slot="card-footer"
69
- className={cn("flex items-center px-6 [.border-t]:pt-6", className)}
70
- {...props}
71
- />
52
+ <div data-slot="card-footer" className={cn("flex items-center px-6 [.border-t]:pt-6", className)} {...props} />
72
53
  );
73
54
  }
74
55
 
75
- export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent };
56
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
@@ -39,11 +39,7 @@ function Checkbox({
39
39
  data-slot="checkbox-indicator"
40
40
  className="flex items-center justify-center text-current transition-none"
41
41
  >
42
- {checked === "indeterminate" ? (
43
- <MinusIcon className="size-3.5" />
44
- ) : (
45
- <CheckIcon className="size-3.5" />
46
- )}
42
+ {checked === "indeterminate" ? <MinusIcon className="size-3.5" /> : <CheckIcon className="size-3.5" />}
47
43
  </CheckboxPrimitive.Indicator>
48
44
  </CheckboxPrimitive.Root>
49
45
  );
@@ -9,16 +9,11 @@ function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimit
9
9
  return <CollapsiblePrimitive.Root data-slot="collapsible" {...props} />;
10
10
  }
11
11
 
12
- function CollapsibleTrigger({
13
- ...props
14
- }: React.ComponentProps<typeof CollapsiblePrimitive.Trigger>) {
12
+ function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Trigger>) {
15
13
  return <CollapsiblePrimitive.Trigger data-slot="collapsible-trigger" {...props} />;
16
14
  }
17
15
 
18
- function CollapsibleContent({
19
- className,
20
- ...props
21
- }: React.ComponentProps<typeof CollapsiblePrimitive.Content>) {
16
+ function CollapsibleContent({ className, ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Content>) {
22
17
  return (
23
18
  <CollapsiblePrimitive.Content
24
19
  data-slot="collapsible-content"
@@ -28,4 +23,4 @@ function CollapsibleContent({
28
23
  );
29
24
  }
30
25
 
31
- export { Collapsible, CollapsibleTrigger, CollapsibleContent };
26
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
@@ -22,15 +22,12 @@ function DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.C
22
22
  return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
23
23
  }
24
24
 
25
- function DialogOverlay({
26
- className,
27
- ...props
28
- }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
25
+ function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
29
26
  return (
30
27
  <DialogPrimitive.Overlay
31
28
  data-slot="dialog-overlay"
32
29
  className={cn(
33
- "fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
30
+ "fixed inset-0 z-50 bg-black/80 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
34
31
  className,
35
32
  )}
36
33
  {...props}
@@ -47,7 +44,7 @@ function DialogContent({
47
44
  showCloseButton?: boolean;
48
45
  }) {
49
46
  return (
50
- <DialogPortal data-slot="dialog-portal">
47
+ <DialogPortal>
51
48
  <DialogOverlay />
52
49
  <DialogPrimitive.Content
53
50
  data-slot="dialog-content"
@@ -116,10 +113,7 @@ function DialogTitle({ className, ...props }: React.ComponentProps<typeof Dialog
116
113
  );
117
114
  }
118
115
 
119
- function DialogDescription({
120
- className,
121
- ...props
122
- }: React.ComponentProps<typeof DialogPrimitive.Description>) {
116
+ function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {
123
117
  return (
124
118
  <DialogPrimitive.Description
125
119
  data-slot="dialog-description"
@@ -10,15 +10,11 @@ function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrim
10
10
  return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />;
11
11
  }
12
12
 
13
- function DropdownMenuPortal({
14
- ...props
15
- }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {
13
+ function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {
16
14
  return <DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />;
17
15
  }
18
16
 
19
- function DropdownMenuTrigger({
20
- ...props
21
- }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {
17
+ function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {
22
18
  return <DropdownMenuPrimitive.Trigger data-slot="dropdown-menu-trigger" {...props} />;
23
19
  }
24
20
 
@@ -95,9 +91,7 @@ function DropdownMenuCheckboxItem({
95
91
  );
96
92
  }
97
93
 
98
- function DropdownMenuRadioGroup({
99
- ...props
100
- }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {
94
+ function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {
101
95
  return <DropdownMenuPrimitive.RadioGroup data-slot="dropdown-menu-radio-group" {...props} />;
102
96
  }
103
97
 
@@ -142,10 +136,7 @@ function DropdownMenuLabel({
142
136
  );
143
137
  }
144
138
 
145
- function DropdownMenuSeparator({
146
- className,
147
- ...props
148
- }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {
139
+ function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {
149
140
  return (
150
141
  <DropdownMenuPrimitive.Separator
151
142
  data-slot="dropdown-menu-separator"
@@ -211,18 +202,18 @@ function DropdownMenuSubContent({
211
202
 
212
203
  export {
213
204
  DropdownMenu,
214
- DropdownMenuPortal,
215
- DropdownMenuTrigger,
205
+ DropdownMenuCheckboxItem,
216
206
  DropdownMenuContent,
217
207
  DropdownMenuGroup,
218
- DropdownMenuLabel,
219
208
  DropdownMenuItem,
220
- DropdownMenuCheckboxItem,
209
+ DropdownMenuLabel,
210
+ DropdownMenuPortal,
221
211
  DropdownMenuRadioGroup,
222
212
  DropdownMenuRadioItem,
223
213
  DropdownMenuSeparator,
224
214
  DropdownMenuShortcut,
225
215
  DropdownMenuSub,
226
- DropdownMenuSubTrigger,
227
216
  DropdownMenuSubContent,
217
+ DropdownMenuSubTrigger,
218
+ DropdownMenuTrigger,
228
219
  };
@@ -128,24 +128,10 @@ function FormMessage({ className, ...props }: React.ComponentProps<"p">) {
128
128
  }
129
129
 
130
130
  return (
131
- <p
132
- data-slot="form-message"
133
- id={formMessageId}
134
- className={cn("text-destructive text-sm", className)}
135
- {...props}
136
- >
131
+ <p data-slot="form-message" id={formMessageId} className={cn("text-destructive text-sm", className)} {...props}>
137
132
  {body}
138
133
  </p>
139
134
  );
140
135
  }
141
136
 
142
- export {
143
- useFormField,
144
- Form,
145
- FormItem,
146
- FormLabel,
147
- FormControl,
148
- FormDescription,
149
- FormMessage,
150
- FormField,
151
- };
137
+ export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
@@ -40,13 +40,7 @@ function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitiv
40
40
  }
41
41
 
42
42
  function PopoverHeader({ className, ...props }: React.ComponentProps<"div">) {
43
- return (
44
- <div
45
- data-slot="popover-header"
46
- className={cn("flex flex-col gap-1 text-sm", className)}
47
- {...props}
48
- />
49
- );
43
+ return <div data-slot="popover-header" className={cn("flex flex-col gap-1 text-sm", className)} {...props} />;
50
44
  }
51
45
 
52
46
  function PopoverTitle({ className, ...props }: React.ComponentProps<"h2">) {
@@ -54,21 +48,7 @@ function PopoverTitle({ className, ...props }: React.ComponentProps<"h2">) {
54
48
  }
55
49
 
56
50
  function PopoverDescription({ className, ...props }: React.ComponentProps<"p">) {
57
- return (
58
- <p
59
- data-slot="popover-description"
60
- className={cn("text-muted-foreground", className)}
61
- {...props}
62
- />
63
- );
51
+ return <p data-slot="popover-description" className={cn("text-muted-foreground", className)} {...props} />;
64
52
  }
65
53
 
66
- export {
67
- Popover,
68
- PopoverTrigger,
69
- PopoverContent,
70
- PopoverAnchor,
71
- PopoverHeader,
72
- PopoverTitle,
73
- PopoverDescription,
74
- };
54
+ export { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger };
@@ -5,11 +5,7 @@ import type * as React from "react";
5
5
 
6
6
  import { cn } from "@/lib/utils";
7
7
 
8
- function Progress({
9
- className,
10
- value,
11
- ...props
12
- }: React.ComponentProps<typeof ProgressPrimitive.Root>) {
8
+ function Progress({ className, value, ...props }: React.ComponentProps<typeof ProgressPrimitive.Root>) {
13
9
  return (
14
10
  <ProgressPrimitive.Root
15
11
  data-slot="progress"
@@ -6,23 +6,11 @@ import type * as React from "react";
6
6
 
7
7
  import { cn } from "@/lib/utils";
8
8
 
9
- function RadioGroup({
10
- className,
11
- ...props
12
- }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {
13
- return (
14
- <RadioGroupPrimitive.Root
15
- data-slot="radio-group"
16
- className={cn("grid gap-3", className)}
17
- {...props}
18
- />
19
- );
9
+ function RadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {
10
+ return <RadioGroupPrimitive.Root data-slot="radio-group" className={cn("grid gap-3", className)} {...props} />;
20
11
  }
21
12
 
22
- function RadioGroupItem({
23
- className,
24
- ...props
25
- }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {
13
+ function RadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {
26
14
  return (
27
15
  <RadioGroupPrimitive.Item
28
16
  data-slot="radio-group-item"
@@ -91,11 +91,7 @@ function SelectLabel({ className, ...props }: React.ComponentProps<typeof Select
91
91
  );
92
92
  }
93
93
 
94
- function SelectItem({
95
- className,
96
- children,
97
- ...props
98
- }: React.ComponentProps<typeof SelectPrimitive.Item>) {
94
+ function SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) {
99
95
  return (
100
96
  <SelectPrimitive.Item
101
97
  data-slot="select-item"
@@ -105,10 +101,7 @@ function SelectItem({
105
101
  )}
106
102
  {...props}
107
103
  >
108
- <span
109
- data-slot="select-item-indicator"
110
- className="absolute right-2 flex size-3.5 items-center justify-center"
111
- >
104
+ <span data-slot="select-item-indicator" className="absolute right-2 flex size-3.5 items-center justify-center">
112
105
  <SelectPrimitive.ItemIndicator>
113
106
  <CheckIcon className="size-4" />
114
107
  </SelectPrimitive.ItemIndicator>
@@ -118,10 +111,7 @@ function SelectItem({
118
111
  );
119
112
  }
120
113
 
121
- function SelectSeparator({
122
- className,
123
- ...props
124
- }: React.ComponentProps<typeof SelectPrimitive.Separator>) {
114
+ function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) {
125
115
  return (
126
116
  <SelectPrimitive.Separator
127
117
  data-slot="select-separator"
@@ -131,10 +121,7 @@ function SelectSeparator({
131
121
  );
132
122
  }
133
123
 
134
- function SelectScrollUpButton({
135
- className,
136
- ...props
137
- }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {
124
+ function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {
138
125
  return (
139
126
  <SelectPrimitive.ScrollUpButton
140
127
  data-slot="select-scroll-up-button"
@@ -21,10 +21,7 @@ function SheetClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Cl
21
21
  return <DialogPrimitive.Close data-slot="sheet-close" {...props} />;
22
22
  }
23
23
 
24
- function SheetOverlay({
25
- className,
26
- ...props
27
- }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
24
+ function SheetOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
28
25
  return (
29
26
  <DialogPrimitive.Overlay
30
27
  data-slot="sheet-overlay"
@@ -47,11 +44,9 @@ function SheetContent({
47
44
  }) {
48
45
  const sideClasses = {
49
46
  left: "inset-y-0 left-0 data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left",
50
- right:
51
- "inset-y-0 right-0 data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right",
47
+ right: "inset-y-0 right-0 data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right",
52
48
  top: "inset-x-0 top-0 data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top",
53
- bottom:
54
- "inset-x-0 bottom-0 data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom",
49
+ bottom: "inset-x-0 bottom-0 data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom",
55
50
  };
56
51
 
57
52
  return (
@@ -80,13 +75,7 @@ function SheetContent({
80
75
  }
81
76
 
82
77
  function SheetHeader({ className, ...props }: React.ComponentProps<"div">) {
83
- return (
84
- <div
85
- data-slot="sheet-header"
86
- className={cn("flex flex-col gap-2 p-6 pb-0", className)}
87
- {...props}
88
- />
89
- );
78
+ return <div data-slot="sheet-header" className={cn("flex flex-col gap-2 p-6 pb-0", className)} {...props} />;
90
79
  }
91
80
 
92
81
  function SheetTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {
@@ -99,10 +88,7 @@ function SheetTitle({ className, ...props }: React.ComponentProps<typeof DialogP
99
88
  );
100
89
  }
101
90
 
102
- function SheetDescription({
103
- className,
104
- ...props
105
- }: React.ComponentProps<typeof DialogPrimitive.Description>) {
91
+ function SheetDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {
106
92
  return (
107
93
  <DialogPrimitive.Description
108
94
  data-slot="sheet-description"
@@ -3,13 +3,7 @@ import type * as React from "react";
3
3
  import { cn } from "@/lib/utils";
4
4
 
5
5
  function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
6
- return (
7
- <div
8
- data-slot="skeleton"
9
- className={cn("animate-pulse rounded-md bg-primary/10", className)}
10
- {...props}
11
- />
12
- );
6
+ return <div data-slot="skeleton" className={cn("animate-pulse rounded-md bg-primary/10", className)} {...props} />;
13
7
  }
14
8
 
15
9
  export { Skeleton };
@@ -7,11 +7,7 @@ import { cn } from "@/lib/utils";
7
7
  function Table({ className, ...props }: React.ComponentProps<"table">) {
8
8
  return (
9
9
  <div data-slot="table-container" className="relative w-full overflow-x-auto">
10
- <table
11
- data-slot="table"
12
- className={cn("w-full caption-bottom text-sm", className)}
13
- {...props}
14
- />
10
+ <table data-slot="table" className={cn("w-full caption-bottom text-sm", className)} {...props} />
15
11
  </div>
16
12
  );
17
13
  }
@@ -21,13 +17,7 @@ function TableHeader({ className, ...props }: React.ComponentProps<"thead">) {
21
17
  }
22
18
 
23
19
  function TableBody({ className, ...props }: React.ComponentProps<"tbody">) {
24
- return (
25
- <tbody
26
- data-slot="table-body"
27
- className={cn("[&_tr:last-child]:border-0", className)}
28
- {...props}
29
- />
30
- );
20
+ return <tbody data-slot="table-body" className={cn("[&_tr:last-child]:border-0", className)} {...props} />;
31
21
  }
32
22
 
33
23
  function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">) {
@@ -44,10 +34,7 @@ function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
44
34
  return (
45
35
  <tr
46
36
  data-slot="table-row"
47
- className={cn(
48
- "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
49
- className,
50
- )}
37
+ className={cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className)}
51
38
  {...props}
52
39
  />
53
40
  );
@@ -81,12 +68,8 @@ function TableCell({ className, ...props }: React.ComponentProps<"td">) {
81
68
 
82
69
  function TableCaption({ className, ...props }: React.ComponentProps<"caption">) {
83
70
  return (
84
- <caption
85
- data-slot="table-caption"
86
- className={cn("text-muted-foreground mt-4 text-sm", className)}
87
- {...props}
88
- />
71
+ <caption data-slot="table-caption" className={cn("text-muted-foreground mt-4 text-sm", className)} {...props} />
89
72
  );
90
73
  }
91
74
 
92
- export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };
75
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
@@ -6,11 +6,7 @@ import type * as React from "react";
6
6
 
7
7
  import { cn } from "@/lib/utils";
8
8
 
9
- function Tabs({
10
- className,
11
- orientation = "horizontal",
12
- ...props
13
- }: React.ComponentProps<typeof TabsPrimitive.Root>) {
9
+ function Tabs({ className, orientation = "horizontal", ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {
14
10
  return (
15
11
  <TabsPrimitive.Root
16
12
  data-slot="tabs"
@@ -69,13 +65,7 @@ function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPr
69
65
  }
70
66
 
71
67
  function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {
72
- return (
73
- <TabsPrimitive.Content
74
- data-slot="tabs-content"
75
- className={cn("flex-1 outline-none", className)}
76
- {...props}
77
- />
78
- );
68
+ return <TabsPrimitive.Content data-slot="tabs-content" className={cn("flex-1 outline-none", className)} {...props} />;
79
69
  }
80
70
 
81
- export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
71
+ export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants };
@@ -41,4 +41,4 @@ function TooltipContent({
41
41
  );
42
42
  }
43
43
 
44
- export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
44
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };