@flamingo-stack/openframe-frontend-core 0.0.439-snapshot.20260717095442 → 0.0.439

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 (467) hide show
  1. package/dist/{chunk-QAG357PE.js → chunk-2ELBNZJ3.js} +7 -7
  2. package/dist/chunk-2ELBNZJ3.js.map +1 -0
  3. package/dist/{chunk-IZ6A6K6N.cjs → chunk-3WJQL4DN.cjs} +25 -25
  4. package/dist/chunk-3WJQL4DN.cjs.map +1 -0
  5. package/dist/{chunk-6CITW5BD.js → chunk-4ACSUJ7Q.js} +10 -10
  6. package/dist/chunk-4ACSUJ7Q.js.map +1 -0
  7. package/dist/{chunk-JYI4R25Q.js → chunk-7WM77CSW.js} +5 -5
  8. package/dist/chunk-7WM77CSW.js.map +1 -0
  9. package/dist/{chunk-TAQMYVO6.cjs → chunk-AUJXLVXA.cjs} +42 -42
  10. package/dist/{chunk-TAQMYVO6.cjs.map → chunk-AUJXLVXA.cjs.map} +1 -1
  11. package/dist/{chunk-UFBUQO7Z.cjs → chunk-C3FH53AP.cjs} +19 -19
  12. package/dist/{chunk-UFBUQO7Z.cjs.map → chunk-C3FH53AP.cjs.map} +1 -1
  13. package/dist/{chunk-FPE3SQ5D.js → chunk-COMBYYQY.js} +13 -13
  14. package/dist/chunk-COMBYYQY.js.map +1 -0
  15. package/dist/{chunk-J5NO7PAG.cjs → chunk-EE5NH5SH.cjs} +3 -3
  16. package/dist/{chunk-J5NO7PAG.cjs.map → chunk-EE5NH5SH.cjs.map} +1 -1
  17. package/dist/{chunk-SM26C2L7.js → chunk-EGRZHR7J.js} +9 -9
  18. package/dist/chunk-EGRZHR7J.js.map +1 -0
  19. package/dist/{chunk-W3JZXLJ2.js → chunk-F7YVI54P.js} +10 -10
  20. package/dist/chunk-F7YVI54P.js.map +1 -0
  21. package/dist/{chunk-63TSTDME.js → chunk-G5FALXNO.js} +21 -21
  22. package/dist/chunk-G5FALXNO.js.map +1 -0
  23. package/dist/{chunk-DUQQEQ7G.cjs → chunk-HTVVXVJL.cjs} +1594 -1431
  24. package/dist/chunk-HTVVXVJL.cjs.map +1 -0
  25. package/dist/{chunk-JNC4LVD6.cjs → chunk-IAN7GUIV.cjs} +42 -42
  26. package/dist/chunk-IAN7GUIV.cjs.map +1 -0
  27. package/dist/{chunk-PYR4LVAF.cjs → chunk-IMK6RUEC.cjs} +10 -10
  28. package/dist/chunk-IMK6RUEC.cjs.map +1 -0
  29. package/dist/{chunk-LFWPWIAC.cjs → chunk-M3LD6DNE.cjs} +16 -16
  30. package/dist/{chunk-LFWPWIAC.cjs.map → chunk-M3LD6DNE.cjs.map} +1 -1
  31. package/dist/{chunk-KUXGQ2FQ.cjs → chunk-M6QGB6DC.cjs} +36 -36
  32. package/dist/chunk-M6QGB6DC.cjs.map +1 -0
  33. package/dist/{chunk-QO6MCQYE.cjs → chunk-N2TJ3HAM.cjs} +9 -9
  34. package/dist/chunk-N2TJ3HAM.cjs.map +1 -0
  35. package/dist/{chunk-ZQYFDYWV.js → chunk-NQQ4NLUT.js} +4461 -4298
  36. package/dist/chunk-NQQ4NLUT.js.map +1 -0
  37. package/dist/{chunk-Y3NFB6HR.js → chunk-P7PISHM5.js} +5 -5
  38. package/dist/chunk-P7PISHM5.js.map +1 -0
  39. package/dist/{chunk-YZJUHEPZ.js → chunk-PBTY7AH5.js} +95 -95
  40. package/dist/chunk-PBTY7AH5.js.map +1 -0
  41. package/dist/{chunk-7KNOHGMI.js → chunk-PEIR7D25.js} +2 -2
  42. package/dist/{chunk-7KDR5P23.js → chunk-QXYOGJQJ.js} +2 -2
  43. package/dist/{chunk-LUKRPHEW.cjs → chunk-R46QEE3R.cjs} +96 -96
  44. package/dist/chunk-R46QEE3R.cjs.map +1 -0
  45. package/dist/{chunk-IPEIOR77.cjs → chunk-RQQZF6G6.cjs} +130 -130
  46. package/dist/chunk-RQQZF6G6.cjs.map +1 -0
  47. package/dist/{chunk-2BTDPDME.js → chunk-RVWC4P3H.js} +9 -9
  48. package/dist/chunk-RVWC4P3H.js.map +1 -0
  49. package/dist/{chunk-JOH5D76X.cjs → chunk-VWGF6IFR.cjs} +108 -108
  50. package/dist/chunk-VWGF6IFR.cjs.map +1 -0
  51. package/dist/{chunk-IAZ5AN2E.js → chunk-WAGTZVQN.js} +30 -30
  52. package/dist/chunk-WAGTZVQN.js.map +1 -0
  53. package/dist/{chunk-AGV26PUR.js → chunk-WPVBTVI3.js} +6 -6
  54. package/dist/{chunk-AGV26PUR.js.map → chunk-WPVBTVI3.js.map} +1 -1
  55. package/dist/{chunk-XMCVUYKC.cjs → chunk-WZ6TCAYQ.cjs} +14 -14
  56. package/dist/chunk-WZ6TCAYQ.cjs.map +1 -0
  57. package/dist/{chunk-7QP65IE4.cjs → chunk-ZMUFTGL7.cjs} +5 -5
  58. package/dist/{chunk-7QP65IE4.cjs.map → chunk-ZMUFTGL7.cjs.map} +1 -1
  59. package/dist/components/accordion.d.ts +8 -0
  60. package/dist/components/accordion.d.ts.map +1 -0
  61. package/dist/components/alert-dialog.d.ts +21 -0
  62. package/dist/components/alert-dialog.d.ts.map +1 -0
  63. package/dist/components/alert.d.ts +9 -0
  64. package/dist/components/alert.d.ts.map +1 -0
  65. package/dist/components/badge.d.ts +10 -0
  66. package/dist/components/badge.d.ts.map +1 -0
  67. package/dist/components/breadcrumb.d.ts +20 -0
  68. package/dist/components/breadcrumb.d.ts.map +1 -0
  69. package/dist/components/case-studies/index.cjs +15 -15
  70. package/dist/components/case-studies/index.cjs.map +1 -1
  71. package/dist/components/case-studies/index.js +9 -9
  72. package/dist/components/case-studies/index.js.map +1 -1
  73. package/dist/components/chat/approval-request-message.d.ts.map +1 -1
  74. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
  75. package/dist/components/chat/index.cjs +4 -4
  76. package/dist/components/chat/index.js +3 -3
  77. package/dist/components/chat/tool-call-blocks.d.ts.map +1 -1
  78. package/dist/components/chat/utils/compact-card-classes.d.ts +3 -3
  79. package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
  80. package/dist/components/chevron-button.d.ts +14 -0
  81. package/dist/components/chevron-button.d.ts.map +1 -0
  82. package/dist/components/contact/index.cjs +5 -5
  83. package/dist/components/contact/index.js +4 -4
  84. package/dist/components/dialog.d.ts +29 -0
  85. package/dist/components/dialog.d.ts.map +1 -0
  86. package/dist/components/docs/index.cjs +7 -7
  87. package/dist/components/docs/index.js +6 -6
  88. package/dist/components/dropdown-menu.d.ts +28 -0
  89. package/dist/components/dropdown-menu.d.ts.map +1 -0
  90. package/dist/components/embeds/index.cjs +5 -5
  91. package/dist/components/embeds/index.js +4 -4
  92. package/dist/components/faq/index.cjs +6 -6
  93. package/dist/components/faq/index.js +5 -5
  94. package/dist/components/features/index.cjs +4 -4
  95. package/dist/components/features/index.js +3 -3
  96. package/dist/components/help-center-pages/index.cjs +23 -23
  97. package/dist/components/help-center-pages/index.js +14 -14
  98. package/dist/components/index.cjs +256 -262
  99. package/dist/components/index.cjs.map +1 -1
  100. package/dist/components/index.js +111 -117
  101. package/dist/components/index.js.map +1 -1
  102. package/dist/components/input.d.ts +8 -0
  103. package/dist/components/input.d.ts.map +1 -0
  104. package/dist/components/label.d.ts +6 -0
  105. package/dist/components/label.d.ts.map +1 -0
  106. package/dist/components/menubar.d.ts +34 -0
  107. package/dist/components/menubar.d.ts.map +1 -0
  108. package/dist/components/msp-display.d.ts.map +1 -1
  109. package/dist/components/navigation/index.cjs +4 -4
  110. package/dist/components/navigation/index.js +3 -3
  111. package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
  112. package/dist/components/navigation-menu.d.ts +13 -0
  113. package/dist/components/navigation-menu.d.ts.map +1 -0
  114. package/dist/components/onboarding-guides/index.cjs +8 -8
  115. package/dist/components/onboarding-guides/index.js +7 -7
  116. package/dist/components/pricing-display.d.ts +9 -9
  117. package/dist/components/related-content/index.cjs +6 -6
  118. package/dist/components/related-content/index.js +5 -5
  119. package/dist/components/select.d.ts +14 -0
  120. package/dist/components/select.d.ts.map +1 -0
  121. package/dist/components/sidebar.d.ts +67 -0
  122. package/dist/components/sidebar.d.ts.map +1 -0
  123. package/dist/components/square-avatar.d.ts +21 -0
  124. package/dist/components/square-avatar.d.ts.map +1 -0
  125. package/dist/components/table.d.ts +11 -0
  126. package/dist/components/table.d.ts.map +1 -0
  127. package/dist/components/tabs.d.ts +18 -0
  128. package/dist/components/tabs.d.ts.map +1 -0
  129. package/dist/components/tickets/index.cjs +7 -7
  130. package/dist/components/tickets/index.js +6 -6
  131. package/dist/components/toast/index.cjs +5 -5
  132. package/dist/components/toast/index.cjs.map +1 -1
  133. package/dist/components/toast/index.js +5 -5
  134. package/dist/components/toast/index.js.map +1 -1
  135. package/dist/components/toggle.d.ts +13 -0
  136. package/dist/components/toggle.d.ts.map +1 -0
  137. package/dist/components/ui/bullet-list.d.ts.map +1 -1
  138. package/dist/components/ui/drawer.d.ts +1 -1
  139. package/dist/components/ui/drawer.d.ts.map +1 -1
  140. package/dist/components/ui/file-manager/index.cjs +73 -73
  141. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  142. package/dist/components/ui/file-manager/index.js +24 -24
  143. package/dist/components/ui/file-manager/index.js.map +1 -1
  144. package/dist/components/ui/index.cjs +4 -4
  145. package/dist/components/ui/index.js +3 -3
  146. package/dist/components/ui/markdown-editor.d.ts.map +1 -1
  147. package/dist/components/ui/square-avatar.d.ts +0 -3
  148. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  149. package/dist/components/user-display.d.ts.map +1 -1
  150. package/dist/components/vendor-tag.d.ts.map +1 -1
  151. package/dist/hooks/index.cjs +2 -2
  152. package/dist/hooks/index.js +1 -1
  153. package/dist/index.cjs +4 -4
  154. package/dist/index.js +3 -3
  155. package/dist/tailwind.config.cjs +5 -38
  156. package/dist/tailwind.config.cjs.map +1 -1
  157. package/dist/tailwind.config.js +5 -38
  158. package/dist/tailwind.config.js.map +1 -1
  159. package/package.json +1 -1
  160. package/src/ODS_TOKEN_RULES.md +0 -5
  161. package/src/components/.accordion.md +42 -0
  162. package/src/components/.alert-dialog.md +58 -0
  163. package/src/components/.alert.md +43 -0
  164. package/src/components/.badge.md +40 -0
  165. package/src/components/.breadcrumb.md +54 -0
  166. package/src/components/.chevron-button.md +46 -0
  167. package/src/components/.dialog.md +60 -0
  168. package/src/components/.dropdown-menu.md +51 -0
  169. package/src/components/.footer.md +2 -2
  170. package/src/components/.input.md +40 -0
  171. package/src/components/.label.md +41 -0
  172. package/src/components/.menubar.md +49 -0
  173. package/src/components/.navigation-menu.md +44 -0
  174. package/src/components/.select.md +54 -0
  175. package/src/components/.sidebar.md +58 -0
  176. package/src/components/.square-avatar.md +42 -0
  177. package/src/components/.table.md +51 -0
  178. package/src/components/.tabs.md +38 -0
  179. package/src/components/.toggle.md +49 -0
  180. package/src/components/accordion.tsx +56 -0
  181. package/src/components/alert-dialog.tsx +141 -0
  182. package/src/components/alert.tsx +59 -0
  183. package/src/components/announcement-bar.tsx +1 -1
  184. package/src/components/authors/author-detail-view.tsx +3 -3
  185. package/src/components/badge.tsx +30 -0
  186. package/src/components/breadcrumb.tsx +115 -0
  187. package/src/components/calendar.tsx +2 -2
  188. package/src/components/case-studies/share-experience-section.tsx +5 -5
  189. package/src/components/categories-cart.tsx +6 -6
  190. package/src/components/category-card.tsx +5 -5
  191. package/src/components/chart.tsx +3 -3
  192. package/src/components/chat/approval-request-message.tsx +5 -2
  193. package/src/components/chat/chat-attachment-bar.tsx +3 -3
  194. package/src/components/chat/chat-message-enhanced.tsx +1 -1
  195. package/src/components/chat/chat-message-list.tsx +1 -1
  196. package/src/components/chat/chat-message-row.tsx +3 -3
  197. package/src/components/chat/chat-quick-action.tsx +1 -1
  198. package/src/components/chat/chat-sidebar-skeleton.tsx +1 -1
  199. package/src/components/chat/chat-sidebar.tsx +6 -6
  200. package/src/components/chat/chat-typing-indicator.tsx +1 -1
  201. package/src/components/chat/context-compaction-display.tsx +1 -1
  202. package/src/components/chat/embeddable-chat.tsx +3 -3
  203. package/src/components/chat/entity-cards/admin-content-card.tsx +5 -5
  204. package/src/components/chat/entity-cards/blog-card.tsx +8 -5
  205. package/src/components/chat/entity-cards/case-study-card.tsx +5 -5
  206. package/src/components/chat/entity-cards/chat-ticket-item.tsx +1 -1
  207. package/src/components/chat/entity-cards/customer-interview-card.tsx +9 -9
  208. package/src/components/chat/entity-cards/data-room-doc-card.tsx +2 -2
  209. package/src/components/chat/entity-cards/dispatch.tsx +1 -1
  210. package/src/components/chat/entity-cards/entity-author-card.tsx +3 -3
  211. package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -4
  212. package/src/components/chat/entity-cards/generic-entity-card.tsx +3 -3
  213. package/src/components/chat/entity-cards/github-activity-card.tsx +11 -11
  214. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +5 -5
  215. package/src/components/chat/entity-cards/investor-update-card.tsx +1 -1
  216. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +12 -12
  217. package/src/components/chat/entity-cards/program-card.tsx +12 -12
  218. package/src/components/chat/entity-cards/roadmap-card.tsx +6 -6
  219. package/src/components/chat/entity-cards/roadmap-vote-button.tsx +1 -1
  220. package/src/components/chat/entity-cards/slack-message-card.tsx +4 -4
  221. package/src/components/chat/error-message-display.tsx +2 -2
  222. package/src/components/chat/mingo-info-card.tsx +2 -2
  223. package/src/components/chat/model-display.tsx +7 -7
  224. package/src/components/chat/quick-action-chip.tsx +1 -1
  225. package/src/components/chat/source-action-button.tsx +2 -2
  226. package/src/components/chat/tool-call-blocks.tsx +5 -3
  227. package/src/components/chat/utils/.chip-action-class.md +1 -1
  228. package/src/components/chat/utils/.chip-styles.md +2 -2
  229. package/src/components/chat/utils/chip-action-class.ts +1 -1
  230. package/src/components/chat/utils/chip-styles.ts +2 -2
  231. package/src/components/chat/utils/compact-card-classes.ts +3 -3
  232. package/src/components/chevron-button.tsx +68 -0
  233. package/src/components/command.tsx +3 -3
  234. package/src/components/comment-card.tsx +1 -1
  235. package/src/components/contact/contact-form.tsx +9 -9
  236. package/src/components/context-menu.tsx +5 -5
  237. package/src/components/date-time-picker.tsx +2 -2
  238. package/src/components/dialog.tsx +150 -0
  239. package/src/components/docs/doc-viewer.tsx +4 -4
  240. package/src/components/dropdown-menu.tsx +200 -0
  241. package/src/components/embeds/figma-embed.tsx +2 -2
  242. package/src/components/embeds/file-download-card.tsx +2 -2
  243. package/src/components/embeds/google-sheets-viewer.tsx +1 -1
  244. package/src/components/embeds/linkedin-embed-client.tsx +3 -3
  245. package/src/components/embeds/og-link-preview.tsx +14 -14
  246. package/src/components/embeds/pdf-viewer.tsx +1 -1
  247. package/src/components/embeds/reddit-embed-client.tsx +9 -9
  248. package/src/components/embeds/twitter-embed-client.tsx +9 -9
  249. package/src/components/empty-state.tsx +5 -5
  250. package/src/components/faq/faq-section.tsx +1 -1
  251. package/src/components/features/ai-enrich/AIEnrichSection.tsx +14 -14
  252. package/src/components/features/ai-enrich/AIRequiredBadge.tsx +5 -5
  253. package/src/components/features/ai-enrich/AIStatusIndicator.tsx +8 -8
  254. package/src/components/features/ai-enrich/AIWarningsSection.tsx +4 -4
  255. package/src/components/features/ai-enrich/ConfidenceBadge.tsx +4 -4
  256. package/src/components/features/array-entry-manager.tsx +7 -7
  257. package/src/components/features/auth-providers-list.tsx +1 -1
  258. package/src/components/features/board/ticket-card.tsx +1 -1
  259. package/src/components/features/changelog-manager.tsx +10 -10
  260. package/src/components/features/command-box.tsx +2 -2
  261. package/src/components/features/entity-summary-editor.tsx +3 -3
  262. package/src/components/features/figma-prototype-viewer.tsx +9 -9
  263. package/src/components/features/filters-dropdown.tsx +2 -2
  264. package/src/components/features/highlight-config-section.tsx +3 -3
  265. package/src/components/features/highlight-video-combined-section.tsx +2 -2
  266. package/src/components/features/highlight-video-preview.tsx +2 -2
  267. package/src/components/features/highlight-video-section.tsx +9 -9
  268. package/src/components/features/media-gallery-manager.tsx +14 -14
  269. package/src/components/features/og-editor-preview.tsx +4 -4
  270. package/src/components/features/os-type-badge-group.tsx +1 -1
  271. package/src/components/features/os-type-badge.tsx +2 -2
  272. package/src/components/features/platform-badge.tsx +4 -4
  273. package/src/components/features/policy-configuration-panel.tsx +6 -6
  274. package/src/components/features/provider-button.tsx +1 -1
  275. package/src/components/features/push-button-selector.tsx +21 -21
  276. package/src/components/features/release-media-manager.tsx +16 -16
  277. package/src/components/features/section-selector.tsx +8 -8
  278. package/src/components/features/select-button.tsx +4 -4
  279. package/src/components/features/seo-editor-preview.tsx +20 -20
  280. package/src/components/features/social-links-manager.tsx +3 -3
  281. package/src/components/features/start-with-openframe-button.tsx +3 -3
  282. package/src/components/features/status-filter-component.tsx +1 -1
  283. package/src/components/features/tags-selector.tsx +6 -6
  284. package/src/components/features/transcript-summary-editor.tsx +9 -9
  285. package/src/components/features/video-bites-strip.tsx +1 -1
  286. package/src/components/features/video-ratio-tabs.tsx +1 -1
  287. package/src/components/features/video-source-selector.tsx +7 -7
  288. package/src/components/features/video.tsx +1 -1
  289. package/src/components/features/waitlist-form.tsx +3 -3
  290. package/src/components/filter-chip.tsx +13 -13
  291. package/src/components/footer.tsx +3 -3
  292. package/src/components/form.tsx +2 -2
  293. package/src/components/hero-image-uploader.tsx +3 -3
  294. package/src/components/image-cropper.tsx +2 -2
  295. package/src/components/input.tsx +39 -0
  296. package/src/components/label.tsx +19 -0
  297. package/src/components/layout/page-container.tsx +6 -6
  298. package/src/components/layout/page-heading.tsx +1 -1
  299. package/src/components/loading/card-skeleton.tsx +2 -2
  300. package/src/components/loading/category-card-skeleton.tsx +1 -1
  301. package/src/components/loading/margin-report-skeleton.tsx +22 -22
  302. package/src/components/loading/openmsp-heartbeat.tsx +1 -1
  303. package/src/components/loading/page-layout-skeleton.tsx +83 -83
  304. package/src/components/loading/unified-skeleton.tsx +1 -1
  305. package/src/components/loading/users-grid-skeleton.tsx +2 -2
  306. package/src/components/logs-list.tsx +8 -8
  307. package/src/components/media-carousel.tsx +7 -7
  308. package/src/components/menubar.tsx +236 -0
  309. package/src/components/metric-value.tsx +2 -2
  310. package/src/components/msp-display.tsx +2 -8
  311. package/src/components/navigation/app-header.tsx +6 -6
  312. package/src/components/navigation/header-organization-filter.tsx +2 -2
  313. package/src/components/navigation/header.tsx +4 -4
  314. package/src/components/navigation/mobile-burger-menu.tsx +7 -7
  315. package/src/components/navigation/mobile-nav-panel.tsx +1 -1
  316. package/src/components/navigation/multi-level-navigation.tsx +7 -7
  317. package/src/components/navigation/navigation-sidebar.tsx +1 -1
  318. package/src/components/navigation/sticky-section-nav.tsx +2 -2
  319. package/src/components/navigation-menu.tsx +128 -0
  320. package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +4 -4
  321. package/src/components/pagination.tsx +2 -2
  322. package/src/components/persistent-filter-controls.tsx +1 -1
  323. package/src/components/platform/.ShellTypeBadge.md +1 -1
  324. package/src/components/platform/CveLink.tsx +1 -1
  325. package/src/components/platform/ScriptArguments.tsx +2 -2
  326. package/src/components/platform/ScriptInfoSection.tsx +5 -5
  327. package/src/components/platform/ShellTypeBadge.tsx +6 -6
  328. package/src/components/platform/SoftwareInfo.tsx +2 -2
  329. package/src/components/pricing-display.tsx +9 -9
  330. package/src/components/profile/ProfileLoadingSkeleton.tsx +6 -6
  331. package/src/components/related-content/related-content-section.tsx +3 -3
  332. package/src/components/results-count.tsx +1 -1
  333. package/src/components/select.tsx +160 -0
  334. package/src/components/shared/delivery/delivery-row.tsx +1 -1
  335. package/src/components/shared/delivery/delivery-table.tsx +1 -1
  336. package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
  337. package/src/components/shared/doc-search/doc-search-result-row.tsx +2 -2
  338. package/src/components/shared/legal-document/legal-document-page.tsx +5 -5
  339. package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
  340. package/src/components/shared/product-release/product-release-card-skeleton.tsx +3 -3
  341. package/src/components/shared/product-release/product-release-card.tsx +14 -14
  342. package/src/components/shared/product-release/release-detail-page.tsx +16 -16
  343. package/src/components/shared/roadmap/roadmap-grid.tsx +2 -2
  344. package/src/components/sidebar.tsx +764 -0
  345. package/src/components/smooth-accordion.tsx +1 -1
  346. package/src/components/social-icon-row.tsx +1 -1
  347. package/src/components/sonner.tsx +5 -5
  348. package/src/components/square-avatar.tsx +61 -0
  349. package/src/components/steps.tsx +3 -3
  350. package/src/components/table.tsx +72 -0
  351. package/src/components/tabs.tsx +65 -0
  352. package/src/components/tickets/help-center-create-form.tsx +1 -1
  353. package/src/components/tickets/help-center-list.tsx +1 -1
  354. package/src/components/tickets/ticket-center.tsx +2 -2
  355. package/src/components/tickets/ticket-detail-drawer.tsx +5 -5
  356. package/src/components/tickets/ticket-open-form.tsx +6 -6
  357. package/src/components/toggle.tsx +45 -0
  358. package/src/components/ui/.title-content-block.md +1 -1
  359. package/src/components/ui/accordion.tsx +2 -2
  360. package/src/components/ui/actions-menu.tsx +1 -1
  361. package/src/components/ui/alert-dialog.tsx +3 -3
  362. package/src/components/ui/alert.tsx +2 -2
  363. package/src/components/ui/allowed-domains-input.tsx +3 -3
  364. package/src/components/ui/autocomplete.tsx +3 -3
  365. package/src/components/ui/badge.tsx +2 -2
  366. package/src/components/ui/brand-association-card.tsx +2 -2
  367. package/src/components/ui/breadcrumb.tsx +3 -3
  368. package/src/components/ui/bullet-list.tsx +2 -2
  369. package/src/components/ui/button/button.tsx +1 -1
  370. package/src/components/ui/card.tsx +4 -4
  371. package/src/components/ui/checkbox-with-description.tsx +1 -1
  372. package/src/components/ui/chevron-button.tsx +1 -1
  373. package/src/components/ui/content-loader.tsx +16 -16
  374. package/src/components/ui/cursor-pagination.tsx +1 -1
  375. package/src/components/ui/date-picker.tsx +2 -2
  376. package/src/components/ui/device-card-compact.tsx +2 -2
  377. package/src/components/ui/device-card.tsx +3 -3
  378. package/src/components/ui/dialog.tsx +3 -3
  379. package/src/components/ui/drawer.tsx +4 -4
  380. package/src/components/ui/dropdown-menu.tsx +6 -6
  381. package/src/components/ui/error-state.tsx +9 -9
  382. package/src/components/ui/fade-preview.tsx +1 -1
  383. package/src/components/ui/field-wrapper.tsx +1 -1
  384. package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +2 -2
  385. package/src/components/ui/file-manager/file-manager-empty.tsx +3 -3
  386. package/src/components/ui/file-manager/file-manager-skeleton.tsx +4 -4
  387. package/src/components/ui/file-manager/file-manager-table-row.tsx +7 -7
  388. package/src/components/ui/file-manager/file-manager-table.tsx +8 -8
  389. package/src/components/ui/file-upload.tsx +9 -9
  390. package/src/components/ui/filter-pill-row.tsx +1 -1
  391. package/src/components/ui/floating-tooltip.tsx +1 -1
  392. package/src/components/ui/highlight-card.tsx +1 -1
  393. package/src/components/ui/hover-dropdown.tsx +1 -1
  394. package/src/components/ui/image-gallery-modal.tsx +1 -1
  395. package/src/components/ui/info-row.tsx +1 -1
  396. package/src/components/ui/input.tsx +1 -1
  397. package/src/components/ui/label.tsx +5 -5
  398. package/src/components/ui/markdown-editor.tsx +5 -4
  399. package/src/components/ui/menubar.tsx +7 -7
  400. package/src/components/ui/modal-v2.tsx +1 -1
  401. package/src/components/ui/modal.tsx +1 -1
  402. package/src/components/ui/more-actions-menu.tsx +1 -1
  403. package/src/components/ui/navigation-menu.tsx +1 -1
  404. package/src/components/ui/organization-card.tsx +8 -8
  405. package/src/components/ui/page-loader.tsx +6 -6
  406. package/src/components/ui/phone-input.tsx +1 -1
  407. package/src/components/ui/progress-bar.tsx +5 -5
  408. package/src/components/ui/query-report-table/.query-report-table-header.md +1 -1
  409. package/src/components/ui/query-report-table/query-report-table-header.tsx +1 -1
  410. package/src/components/ui/query-report-table/query-report-table-row.tsx +2 -2
  411. package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
  412. package/src/components/ui/release-changelog-section.tsx +2 -2
  413. package/src/components/ui/rich-markdown-renderer.tsx +6 -6
  414. package/src/components/ui/search-input.tsx +7 -7
  415. package/src/components/ui/select.tsx +1 -1
  416. package/src/components/ui/service-card.tsx +4 -4
  417. package/src/components/ui/sheet.tsx +3 -3
  418. package/src/components/ui/simple-markdown-renderer.tsx +4 -4
  419. package/src/components/ui/square-avatar.tsx +5 -9
  420. package/src/components/ui/status-badge.tsx +11 -11
  421. package/src/components/ui/status-indicator.tsx +6 -6
  422. package/src/components/ui/tab-content.tsx +1 -1
  423. package/src/components/ui/tab-navigation.tsx +2 -2
  424. package/src/components/ui/table/table-column-filter-dropdown.tsx +1 -1
  425. package/src/components/ui/table/table-description-cell.tsx +1 -1
  426. package/src/components/ui/table/table-timestamp-cell.tsx +1 -1
  427. package/src/components/ui/table/table.tsx +2 -2
  428. package/src/components/ui/tabs.tsx +1 -1
  429. package/src/components/ui/tag-search-input.tsx +1 -1
  430. package/src/components/ui/tag.tsx +23 -23
  431. package/src/components/ui/tags-input.tsx +2 -2
  432. package/src/components/ui/ticket-status-tag.tsx +1 -1
  433. package/src/components/ui/toaster.tsx +8 -8
  434. package/src/components/ui/toggle.tsx +1 -1
  435. package/src/components/ui/tooltip.tsx +1 -1
  436. package/src/components/user-display.tsx +6 -12
  437. package/src/components/user-summary-stub.tsx +4 -4
  438. package/src/components/vendor-display-button.tsx +2 -2
  439. package/src/components/vendor-icon.tsx +1 -1
  440. package/src/components/vendor-tag.tsx +10 -9
  441. package/src/components/yes-no-display.tsx +3 -3
  442. package/src/styles/ods-colors.css +0 -2
  443. package/tailwind.config.ts +4 -49
  444. package/dist/chunk-2BTDPDME.js.map +0 -1
  445. package/dist/chunk-63TSTDME.js.map +0 -1
  446. package/dist/chunk-6CITW5BD.js.map +0 -1
  447. package/dist/chunk-DUQQEQ7G.cjs.map +0 -1
  448. package/dist/chunk-FPE3SQ5D.js.map +0 -1
  449. package/dist/chunk-IAZ5AN2E.js.map +0 -1
  450. package/dist/chunk-IPEIOR77.cjs.map +0 -1
  451. package/dist/chunk-IZ6A6K6N.cjs.map +0 -1
  452. package/dist/chunk-JNC4LVD6.cjs.map +0 -1
  453. package/dist/chunk-JOH5D76X.cjs.map +0 -1
  454. package/dist/chunk-JYI4R25Q.js.map +0 -1
  455. package/dist/chunk-KUXGQ2FQ.cjs.map +0 -1
  456. package/dist/chunk-LUKRPHEW.cjs.map +0 -1
  457. package/dist/chunk-PYR4LVAF.cjs.map +0 -1
  458. package/dist/chunk-QAG357PE.js.map +0 -1
  459. package/dist/chunk-QO6MCQYE.cjs.map +0 -1
  460. package/dist/chunk-SM26C2L7.js.map +0 -1
  461. package/dist/chunk-W3JZXLJ2.js.map +0 -1
  462. package/dist/chunk-XMCVUYKC.cjs.map +0 -1
  463. package/dist/chunk-Y3NFB6HR.js.map +0 -1
  464. package/dist/chunk-YZJUHEPZ.js.map +0 -1
  465. package/dist/chunk-ZQYFDYWV.js.map +0 -1
  466. /package/dist/{chunk-7KNOHGMI.js.map → chunk-PEIR7D25.js.map} +0 -0
  467. /package/dist/{chunk-7KDR5P23.js.map → chunk-QXYOGJQJ.js.map} +0 -0
@@ -47,7 +47,7 @@ export const SmoothAccordionTrigger = React.forwardRef<
47
47
  size="md"
48
48
  isExpanded={false}
49
49
  backgroundColor="transparent"
50
- borderColor="var(--color-border-default)"
50
+ borderColor="#3A3A3A"
51
51
  className="transition-transform duration-300 ease-in-out group-data-[state=open]:rotate-180"
52
52
  />
53
53
  </AccordionPrimitive.Trigger>
@@ -86,7 +86,7 @@ function renderSocialIcon(platform: string) {
86
86
  // force the themed foreground via the ODS token (white on the dark
87
87
  // theme, tracking the theme unlike the literal the reddit/slack cases
88
88
  // still carry).
89
- return <CopyIcon className="w-5 h-5" color="var(--color-text-primary)" />;
89
+ return <CopyIcon className="w-5 h-5" color="var(--ods-text-primary)" />;
90
90
  default:
91
91
  return <GlobeIcon className="w-5 h-5" />;
92
92
  }
@@ -13,14 +13,14 @@ const Toaster = ({ ...props }: ToasterProps) => {
13
13
  toastOptions={{
14
14
  classNames: {
15
15
  toast:
16
- "group toast group-[.toaster]:bg-ods-card group-[.toaster]:text-ods-text-primary group-[.toaster]:border-ods-border group-[.toaster]:shadow-lg",
16
+ "group toast group-[.toaster]:bg-ods-background-secondary group-[.toaster]:text-ods-text-primary group-[.toaster]:border-ods-border group-[.toaster]:shadow-lg",
17
17
  description: "group-[.toast]:text-ods-text-secondary",
18
18
  actionButton:
19
- "group-[.toast]:bg-ods-accent group-[.toast]:text-ods-text-on-accent",
19
+ "group-[.toast]:bg-ods-accent group-[.toast]:text-ods-text-inverted",
20
20
  cancelButton:
21
- "group-[.toast]:bg-ods-bg-surface group-[.toast]:text-ods-text-secondary",
22
- error: "group-[.toaster]:bg-ods-error-secondary group-[.toaster]:text-ods-text-primary group-[.toaster]:border-ods-error",
23
- success: "group-[.toaster]:bg-ods-success-secondary group-[.toaster]:text-ods-text-primary group-[.toaster]:border-ods-success",
21
+ "group-[.toast]:bg-ods-background-tertiary group-[.toast]:text-ods-text-secondary",
22
+ error: "group-[.toaster]:bg-red-950 group-[.toaster]:text-red-50 group-[.toaster]:border-red-900",
23
+ success: "group-[.toaster]:bg-green-950 group-[.toaster]:text-green-50 group-[.toaster]:border-green-900",
24
24
  },
25
25
  }}
26
26
  {...props}
@@ -0,0 +1,61 @@
1
+ "use client";
2
+
3
+ import React from 'react';
4
+ import { cn } from "../utils/cn";
5
+ import { getProxiedImageUrl } from '../utils/image-proxy';
6
+
7
+ interface SquareAvatarProps {
8
+ /** Image URL (if null/undefined, renders initials fallback) */
9
+ src?: string | null;
10
+ /** Fallback name used to derive initials when no image */
11
+ fallbackName?: string;
12
+ /** Size in px (applied to width & height). Defaults to 56 (Tailwind w-14 h-14). */
13
+ size?: number;
14
+ /** If true, avatar takes full width with square aspect ratio */
15
+ fullWidth?: boolean;
16
+ /** Corner treatment. `'square'` = rounded-lg (default, historical look); `'round'` = fully circular. */
17
+ shape?: 'square' | 'round';
18
+ className?: string;
19
+ }
20
+
21
+ /**
22
+ * Square avatar with rounded edges used across cards / dashboards.
23
+ * Automatically shows image (via proxied URL) or initials fallback.
24
+ */
25
+ export function SquareAvatar({ src, fallbackName = '', size = 56, fullWidth = false, shape = 'square', className }: SquareAvatarProps) {
26
+ const initials = React.useMemo(() => {
27
+ if (!fallbackName) return '';
28
+ return fallbackName
29
+ .split(' ')
30
+ .map((n) => n.charAt(0))
31
+ .join('')
32
+ .slice(0, 2)
33
+ .toUpperCase();
34
+ }, [fallbackName]);
35
+
36
+ const style: React.CSSProperties = fullWidth ? {} : { width: size, height: size };
37
+
38
+ return (
39
+ <div
40
+ className={cn(
41
+ 'border border-ods-border flex items-center justify-center overflow-hidden bg-ods-bg-secondary',
42
+ shape === 'round' ? 'rounded-full' : 'rounded-lg',
43
+ fullWidth ? 'w-full aspect-square' : 'flex-shrink-0',
44
+ className,
45
+ )}
46
+ style={style}
47
+ >
48
+ {src ? (
49
+ // eslint-disable-next-line @next/next/no-img-element
50
+ <img src={getProxiedImageUrl(src) || src} alt="Avatar" className="object-cover w-full h-full" />
51
+ ) : (
52
+ <span className={cn(
53
+ "font-['DM_Sans'] text-ods-text-primary font-bold",
54
+ fullWidth ? 'text-4xl' : 'text-lg'
55
+ )}>
56
+ {initials}
57
+ </span>
58
+ )}
59
+ </div>
60
+ );
61
+ }
@@ -65,7 +65,7 @@ const Step = React.forwardRef<HTMLDivElement, StepProps>(
65
65
  <polyline points="20 6 9 17 4 12" />
66
66
  </svg>
67
67
  ) : (
68
- <span className={cn("text-h6", isActive ? "text-primary" : "text-muted-foreground")}>
68
+ <span className={cn("text-sm font-medium", isActive ? "text-primary" : "text-muted-foreground")}>
69
69
  {stepNumber}
70
70
  </span>
71
71
  )}
@@ -75,7 +75,7 @@ const Step = React.forwardRef<HTMLDivElement, StepProps>(
75
75
  <div className="flex flex-col gap-0.5">
76
76
  <h3
77
77
  className={cn(
78
- "text-h6",
78
+ "text-base font-medium",
79
79
  isActive ? "text-foreground" : "text-muted-foreground",
80
80
  isCompleted && "text-primary",
81
81
  )}
@@ -83,7 +83,7 @@ const Step = React.forwardRef<HTMLDivElement, StepProps>(
83
83
  {title}
84
84
  </h3>
85
85
  {description && (
86
- <p className={cn("text-h6", isActive ? "text-muted-foreground" : "text-muted-foreground/60")}>
86
+ <p className={cn("text-sm", isActive ? "text-muted-foreground" : "text-muted-foreground/60")}>
87
87
  {description}
88
88
  </p>
89
89
  )}
@@ -0,0 +1,72 @@
1
+ import * as React from "react"
2
+
3
+ import { cn } from "../utils/cn"
4
+
5
+ const Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(
6
+ ({ className, ...props }, ref) => (
7
+ <div className="relative w-full overflow-auto">
8
+ <table ref={ref} className={cn("w-full caption-bottom text-sm", className)} {...props} />
9
+ </div>
10
+ ),
11
+ )
12
+ Table.displayName = "Table"
13
+
14
+ const TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(
15
+ ({ className, ...props }, ref) => <thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} />,
16
+ )
17
+ TableHeader.displayName = "TableHeader"
18
+
19
+ const TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(
20
+ ({ className, ...props }, ref) => (
21
+ <tbody ref={ref} className={cn("[&_tr:last-child]:border-0", className)} {...props} />
22
+ ),
23
+ )
24
+ TableBody.displayName = "TableBody"
25
+
26
+ const TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(
27
+ ({ className, ...props }, ref) => (
28
+ <tfoot ref={ref} className={cn("bg-primary font-medium text-primary-foreground", className)} {...props} />
29
+ ),
30
+ )
31
+ TableFooter.displayName = "TableFooter"
32
+
33
+ const TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(
34
+ ({ className, ...props }, ref) => (
35
+ <tr
36
+ ref={ref}
37
+ className={cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className)}
38
+ {...props}
39
+ />
40
+ ),
41
+ )
42
+ TableRow.displayName = "TableRow"
43
+
44
+ const TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(
45
+ ({ className, ...props }, ref) => (
46
+ <th
47
+ ref={ref}
48
+ className={cn(
49
+ "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
50
+ className,
51
+ )}
52
+ {...props}
53
+ />
54
+ ),
55
+ )
56
+ TableHead.displayName = "TableHead"
57
+
58
+ const TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(
59
+ ({ className, ...props }, ref) => (
60
+ <td ref={ref} className={cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)} {...props} />
61
+ ),
62
+ )
63
+ TableCell.displayName = "TableCell"
64
+
65
+ const TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(
66
+ ({ className, ...props }, ref) => (
67
+ <caption ref={ref} className={cn("mt-4 text-sm text-muted-foreground", className)} {...props} />
68
+ ),
69
+ )
70
+ TableCaption.displayName = "TableCaption"
71
+
72
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }
@@ -0,0 +1,65 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as TabsPrimitive from "@radix-ui/react-tabs"
5
+
6
+ import { cn } from "../utils/cn"
7
+
8
+ /**
9
+ * @deprecated Use `TabNavigation` from `components/ui/tab-navigation` — the
10
+ * single canonical tab component (ODS tokens, URL-sync, overflow scroll
11
+ * shadows). This Radix-based `Tabs` set styles itself with legacy shadcn tokens
12
+ * (`bg-muted`, `text-foreground`, `ring-ring`) that don't exist in ODS and is
13
+ * kept only for un-migrated call sites. Do not use in new code.
14
+ */
15
+ const Tabs = TabsPrimitive.Root
16
+
17
+ /** @deprecated Use `TabNavigation` from `components/ui/tab-navigation`. See {@link Tabs}. */
18
+ const TabsList = React.forwardRef<
19
+ React.ElementRef<typeof TabsPrimitive.List>,
20
+ React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>
21
+ >(({ className, ...props }, ref) => (
22
+ <TabsPrimitive.List
23
+ ref={ref}
24
+ className={cn(
25
+ "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
26
+ className
27
+ )}
28
+ {...props}
29
+ />
30
+ ))
31
+ TabsList.displayName = TabsPrimitive.List.displayName
32
+
33
+ /** @deprecated Use `TabNavigation` from `components/ui/tab-navigation`. See {@link Tabs}. */
34
+ const TabsTrigger = React.forwardRef<
35
+ React.ElementRef<typeof TabsPrimitive.Trigger>,
36
+ React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>
37
+ >(({ className, ...props }, ref) => (
38
+ <TabsPrimitive.Trigger
39
+ ref={ref}
40
+ className={cn(
41
+ "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
42
+ className
43
+ )}
44
+ {...props}
45
+ />
46
+ ))
47
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName
48
+
49
+ /** @deprecated Use `TabNavigation` from `components/ui/tab-navigation`. See {@link Tabs}. */
50
+ const TabsContent = React.forwardRef<
51
+ React.ElementRef<typeof TabsPrimitive.Content>,
52
+ React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>
53
+ >(({ className, ...props }, ref) => (
54
+ <TabsPrimitive.Content
55
+ ref={ref}
56
+ className={cn(
57
+ "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
58
+ className
59
+ )}
60
+ {...props}
61
+ />
62
+ ))
63
+ TabsContent.displayName = TabsPrimitive.Content.displayName
64
+
65
+ export { Tabs, TabsList, TabsTrigger, TabsContent }
@@ -195,7 +195,7 @@ export function HelpCenterCreateForm({
195
195
  {subjectError && (
196
196
  <span
197
197
  id="help-center-subject-error"
198
- className="text-ods-error text-h6 mt-1"
198
+ className="text-ods-error text-xs font-['DM_Sans'] mt-1"
199
199
  >
200
200
  {subjectError}
201
201
  </span>
@@ -319,7 +319,7 @@ function HelpCenterListAuthed({
319
319
  <div className="w-full flex flex-col gap-[40px]">
320
320
  {error && (
321
321
  <div className="bg-ods-card border border-ods-border rounded-[6px] p-[40px] text-center w-full flex flex-col items-center gap-3">
322
- <p className="text-ods-error text-h6">
322
+ <p className="text-ods-error text-base">
323
323
  Couldn&rsquo;t load your tickets. {error.message}
324
324
  </p>
325
325
  <Button type="button" variant="accent" onClick={() => refetch()}>
@@ -134,10 +134,10 @@ function TicketCenterAuthed({
134
134
 
135
135
  <div className="flex flex-col gap-2">
136
136
  <div className="flex items-center justify-between gap-3">
137
- <p className="text-h5 text-ods-text-secondary">
137
+ <p className="text-xs font-medium text-ods-text-secondary uppercase tracking-wider">
138
138
  Your Current Tickets
139
139
  </p>
140
- <div className="flex items-center gap-3 text-h6 text-ods-text-secondary">
140
+ <div className="flex items-center gap-3 text-xs text-ods-text-secondary">
141
141
  {lastUpdatedAt && (
142
142
  <span>Updated {formatRelativeTime(new Date(lastUpdatedAt))}</span>
143
143
  )}
@@ -112,7 +112,7 @@ export function TicketDetailDrawer({
112
112
  )}
113
113
 
114
114
  <div>
115
- <p className="text-h5 text-ods-text-secondary mb-2">
115
+ <p className="text-xs font-medium text-ods-text-secondary mb-2 uppercase tracking-wider">
116
116
  Conversation
117
117
  </p>
118
118
  <TicketTimelinePanel ticket={ticket} />
@@ -580,7 +580,7 @@ function ReplyFailureBanner({
580
580
  <div
581
581
  role="status"
582
582
  aria-live="polite"
583
- className="mb-3 flex items-start gap-3 rounded-md border border-ods-error bg-ods-error-secondary px-3 py-2 text-h6 text-ods-error"
583
+ className="mb-3 flex items-start gap-3 rounded-md border border-ods-attention-red-error bg-ods-attention-red-error-secondary px-3 py-2 text-sm text-ods-attention-red-error"
584
584
  >
585
585
  <span className="font-medium leading-snug">{error.message}</span>
586
586
  <Button
@@ -588,7 +588,7 @@ function ReplyFailureBanner({
588
588
  variant="transparent"
589
589
  onClick={onDismiss}
590
590
  aria-label="Dismiss reply failure"
591
- className="ml-auto px-2 py-0.5 text-h6 uppercase text-ods-error hover:bg-ods-error-secondary border-transparent"
591
+ className="ml-auto px-2 py-0.5 text-xs font-medium uppercase tracking-wider text-ods-attention-red-error hover:bg-ods-attention-red-error-secondary border-transparent"
592
592
  >
593
593
  Dismiss
594
594
  </Button>
@@ -625,8 +625,8 @@ function AssignedAgentRow({
625
625
  const displayLabel =
626
626
  trimmedName ?? (emailFallback ? emailFallback.split('@')[0] : null)
627
627
  return (
628
- <div className="flex items-center gap-2 text-h6">
629
- <span className="text-h5 text-ods-text-secondary">
628
+ <div className="flex items-center gap-2 text-xs">
629
+ <span className="text-ods-text-secondary uppercase tracking-wider font-medium">
630
630
  Assigned to
631
631
  </span>
632
632
  {displayLabel ? (
@@ -83,15 +83,15 @@ export function TicketOpenForm({
83
83
  <Card className="p-6">
84
84
  <form onSubmit={handleSubmit} className="flex flex-col md:flex-row gap-6">
85
85
  <div className="flex-1 min-w-0 md:max-w-md">
86
- <h2 className="text-h2 text-ods-text-primary mb-2">
86
+ <h2 className="text-2xl font-semibold text-ods-text-primary mb-2">
87
87
  Need Support?
88
88
  </h2>
89
- <p className="text-ods-text-secondary text-h6">
89
+ <p className="text-ods-text-secondary text-sm">
90
90
  Can&apos;t find what you&apos;re looking for? Submit a support ticket
91
91
  below — we&apos;ll follow up shortly.
92
92
  </p>
93
93
  {supportSystemDown && (
94
- <p className="mt-4 text-h6 text-ods-error">
94
+ <p className="mt-4 text-sm text-ods-error">
95
95
  Support system temporarily unavailable. Please try again shortly.
96
96
  </p>
97
97
  )}
@@ -101,7 +101,7 @@ export function TicketOpenForm({
101
101
  <div>
102
102
  <label
103
103
  htmlFor="ticket-subject"
104
- className="block text-h6 text-ods-text-primary mb-1"
104
+ className="block text-sm font-medium text-ods-text-primary mb-1"
105
105
  >
106
106
  Ticket Subject
107
107
  </label>
@@ -119,7 +119,7 @@ export function TicketOpenForm({
119
119
  <div>
120
120
  <label
121
121
  htmlFor="ticket-content"
122
- className="block text-h6 text-ods-text-primary mb-1"
122
+ className="block text-sm font-medium text-ods-text-primary mb-1"
123
123
  >
124
124
  Your Message
125
125
  </label>
@@ -134,7 +134,7 @@ export function TicketOpenForm({
134
134
  />
135
135
  {showCounter && (
136
136
  <p
137
- className={`mt-1 text-h6 text-right ${
137
+ className={`mt-1 text-xs text-right ${
138
138
  overCap ? 'text-ods-error' : 'text-ods-text-secondary'
139
139
  }`}
140
140
  >
@@ -0,0 +1,45 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as TogglePrimitive from "@radix-ui/react-toggle"
5
+ import { cva, type VariantProps } from "class-variance-authority"
6
+
7
+ import { cn } from "../utils/cn"
8
+
9
+ const toggleVariants = cva(
10
+ "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2",
11
+ {
12
+ variants: {
13
+ variant: {
14
+ default: "bg-transparent",
15
+ outline:
16
+ "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground",
17
+ },
18
+ size: {
19
+ default: "h-10 px-3 min-w-10",
20
+ sm: "h-9 px-2.5 min-w-9",
21
+ lg: "h-11 px-5 min-w-11",
22
+ },
23
+ },
24
+ defaultVariants: {
25
+ variant: "default",
26
+ size: "default",
27
+ },
28
+ }
29
+ )
30
+
31
+ const Toggle = React.forwardRef<
32
+ React.ElementRef<typeof TogglePrimitive.Root>,
33
+ React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &
34
+ VariantProps<typeof toggleVariants>
35
+ >(({ className, variant, size, ...props }, ref) => (
36
+ <TogglePrimitive.Root
37
+ ref={ref}
38
+ className={cn(toggleVariants({ variant, size, className }))}
39
+ {...props}
40
+ />
41
+ ))
42
+
43
+ Toggle.displayName = TogglePrimitive.Root.displayName
44
+
45
+ export { Toggle, toggleVariants }
@@ -35,6 +35,6 @@ The main export — a client-side React component that pairs a title label with
35
35
  titleAs="h3"
36
36
  contentAs="p"
37
37
  spacing="lg"
38
- containerClassName="p-4 rounded-lg bg-ods-bg-surface"
38
+ containerClassName="p-4 rounded-lg bg-ods-surface"
39
39
  />
40
40
  ```
@@ -24,7 +24,7 @@ const AccordionTrigger = React.forwardRef<
24
24
  <AccordionPrimitive.Trigger
25
25
  ref={ref}
26
26
  className={cn(
27
- "flex flex-1 items-center justify-between py-4 text-h6 transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
27
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
28
28
  className,
29
29
  )}
30
30
  {...props}
@@ -43,7 +43,7 @@ const AccordionContent = React.forwardRef<
43
43
  <AccordionPrimitive.Content
44
44
  ref={ref}
45
45
  className={cn(
46
- "overflow-hidden text-h6 transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
46
+ "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
47
47
  className,
48
48
  )}
49
49
  {...props}
@@ -171,7 +171,7 @@ const MenuItem: React.FC<MenuItemProps> = ({ item, onItemClick }) => {
171
171
  );
172
172
 
173
173
  if (item.type === "separator") {
174
- return <div className="bg-ods-divider h-1 w-full" />;
174
+ return <div className="bg-ods-system-greys-soft-grey h-1 w-full" />;
175
175
  }
176
176
 
177
177
  const itemClasses = cn(
@@ -18,7 +18,7 @@ const AlertDialogOverlay = React.forwardRef<
18
18
  >(({ className, ...props }, ref) => (
19
19
  <AlertDialogPrimitive.Overlay
20
20
  className={cn(
21
- "fixed inset-0 z-50 bg-ods-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
21
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
22
22
  className
23
23
  )}
24
24
  {...props}
@@ -79,7 +79,7 @@ const AlertDialogTitle = React.forwardRef<
79
79
  >(({ className, ...props }, ref) => (
80
80
  <AlertDialogPrimitive.Title
81
81
  ref={ref}
82
- className={cn("text-h3", className)}
82
+ className={cn("text-lg font-semibold", className)}
83
83
  {...props}
84
84
  />
85
85
  ))
@@ -91,7 +91,7 @@ const AlertDialogDescription = React.forwardRef<
91
91
  >(({ className, ...props }, ref) => (
92
92
  <AlertDialogPrimitive.Description
93
93
  ref={ref}
94
- className={cn("text-h6 text-muted-foreground", className)}
94
+ className={cn("text-sm text-muted-foreground", className)}
95
95
  {...props}
96
96
  />
97
97
  ))
@@ -14,7 +14,7 @@ const alertVariants = cva(
14
14
  destructive:
15
15
  "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",
16
16
  warning:
17
- "border-transparent bg-ods-warning-secondary text-ods-warning [&>svg]:text-ods-warning",
17
+ "border-transparent bg-[var(--ods-attention-yellow-warning-secondary)] text-[var(--ods-attention-yellow-warning)] [&>svg]:text-[var(--ods-attention-yellow-warning)]",
18
18
  },
19
19
  },
20
20
  defaultVariants: {
@@ -54,7 +54,7 @@ const AlertDescription = React.forwardRef<
54
54
  >(({ className, ...props }, ref) => (
55
55
  <div
56
56
  ref={ref}
57
- className={cn("text-h6 [&_p]:leading-relaxed", className)}
57
+ className={cn("text-sm [&_p]:leading-relaxed", className)}
58
58
  {...props}
59
59
  />
60
60
  ))
@@ -129,17 +129,17 @@ const AllowedDomainsInput = React.forwardRef<HTMLDivElement, AllowedDomainsInput
129
129
  disabled={disabled}
130
130
  >
131
131
  <PlusCircle className="h-5 w-5 text-ods-text-secondary" />
132
- <span className="text-h6 font-bold">Add Domain</span>
132
+ <span className="font-['DM_Sans'] font-bold text-base">Add Domain</span>
133
133
  </button>
134
134
 
135
135
  {/* Error message */}
136
136
  {displayError && (
137
- <p className="text-h6 text-ods-error">{displayError}</p>
137
+ <p className="text-sm text-ods-error">{displayError}</p>
138
138
  )}
139
139
 
140
140
  {/* Helper text */}
141
141
  {helperText && !displayError && (
142
- <p className="text-h6 text-ods-text-secondary">{helperText}</p>
142
+ <p className="text-sm text-ods-text-secondary">{helperText}</p>
143
143
  )}
144
144
  </div>
145
145
  )
@@ -485,7 +485,7 @@ function AutocompleteInner<T = string>(
485
485
  className={cn(
486
486
  "flex items-center h-8 px-2",
487
487
  "bg-ods-card border border-ods-border rounded-[6px]",
488
- "text-h5 text-ods-text-secondary",
488
+ "font-mono text-[14px] font-medium leading-5 text-ods-text-secondary uppercase tracking-[-0.28px]",
489
489
  "hover:bg-ods-bg-hover transition-colors cursor-pointer"
490
490
  )}
491
491
  >
@@ -569,7 +569,7 @@ function AutocompleteInner<T = string>(
569
569
  <ScrollAreaPrimitive.Viewport className="max-h-[240px] w-full [&>div]:!block">
570
570
  <div role="listbox">
571
571
  {loading ? (
572
- <div className="px-3 py-2 text-ods-text-secondary text-h6">
572
+ <div className="px-3 py-2 text-ods-text-secondary text-[14px]">
573
573
  {loadingText}
574
574
  </div>
575
575
  ) : filteredOptions.length === 0 ? (
@@ -593,7 +593,7 @@ function AutocompleteInner<T = string>(
593
593
  </div>
594
594
  )
595
595
  ) : (
596
- <div className="px-3 py-2 text-ods-text-secondary text-h6">
596
+ <div className="px-3 py-2 text-ods-text-secondary text-[14px]">
597
597
  {freeSolo && inputValue.trim() ? (
598
598
  <span>Press Enter to add &quot;{inputValue}&quot;</span>
599
599
  ) : (
@@ -6,7 +6,7 @@ import { cva, type VariantProps } from "class-variance-authority"
6
6
  import { cn } from "../../utils/cn"
7
7
 
8
8
  const badgeVariants = cva(
9
- "inline-flex items-center rounded-full border px-2.5 py-0.5 text-h6 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
9
+ "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
10
10
  {
11
11
  variants: {
12
12
  variant: {
@@ -14,7 +14,7 @@ const badgeVariants = cva(
14
14
  secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
15
15
  destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
16
16
  outline: "text-foreground",
17
- success: "border-transparent bg-ods-success text-ods-text-on-accent hover:bg-ods-success-hover",
17
+ success: "border-transparent bg-green-500 text-white hover:bg-green-600", // Add this line
18
18
  },
19
19
  },
20
20
  defaultVariants: {
@@ -42,12 +42,12 @@ export function BrandAssociationCard({
42
42
  </div>
43
43
 
44
44
  {/* Title */}
45
- <h3 className="text-h2 text-ods-text-primary">
45
+ <h3 className="text-h2 tracking-[-0.64px] text-ods-text-primary">
46
46
  {item.title}
47
47
  </h3>
48
48
 
49
49
  {/* Description */}
50
- <p className="text-h6 text-ods-text-secondary">
50
+ <p className="font-['DM_Sans'] font-normal text-[16px] leading-[1.5] text-ods-text-secondary">
51
51
  {item.description}
52
52
  </p>
53
53
 
@@ -21,7 +21,7 @@ const BreadcrumbList = React.forwardRef<
21
21
  <ol
22
22
  ref={ref}
23
23
  className={cn(
24
- "flex flex-wrap items-center gap-1.5 break-words text-h6 text-ods-text-muted md:gap-2.5",
24
+ "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground md:gap-2.5",
25
25
  className
26
26
  )}
27
27
  {...props}
@@ -52,7 +52,7 @@ const BreadcrumbLink = React.forwardRef<
52
52
  return (
53
53
  <Comp
54
54
  ref={ref}
55
- className={cn("transition-colors hover:text-ods-text-primary", className)}
55
+ className={cn("transition-colors hover:text-foreground", className)}
56
56
  {...props}
57
57
  />
58
58
  )
@@ -68,7 +68,7 @@ const BreadcrumbPage = React.forwardRef<
68
68
  role="link"
69
69
  aria-disabled="true"
70
70
  aria-current="page"
71
- className={cn("font-normal text-ods-text-primary", className)}
71
+ className={cn("font-normal text-foreground", className)}
72
72
  {...props}
73
73
  />
74
74
  ))
@@ -27,10 +27,10 @@ const spacingMap = {
27
27
 
28
28
  export function BulletList({
29
29
  items,
30
- bulletColor = 'var(--color-text-primary)',
30
+ bulletColor = 'var(--ods-text-primary)',
31
31
  bulletIcon: BulletIcon = ShapeCircleDashIcon,
32
32
  bulletSize = 16,
33
- textClassName = 'text-h4 text-ods-text-primary',
33
+ textClassName = "font-['DM_Sans'] font-medium text-[16px] md:text-[18px] leading-[24px] md:leading-[28px] text-ods-text-primary",
34
34
  itemClassName = 'flex items-start gap-3',
35
35
  containerClassName = '',
36
36
  spacing = 'md'