@flamingo-stack/openframe-frontend-core 0.0.439 → 0.0.440

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-RVWC4P3H.js → chunk-2BTDPDME.js} +9 -9
  2. package/dist/chunk-2BTDPDME.js.map +1 -0
  3. package/dist/{chunk-G5FALXNO.js → chunk-63TSTDME.js} +21 -21
  4. package/dist/chunk-63TSTDME.js.map +1 -0
  5. package/dist/{chunk-4ACSUJ7Q.js → chunk-6CITW5BD.js} +10 -10
  6. package/dist/chunk-6CITW5BD.js.map +1 -0
  7. package/dist/{chunk-QXYOGJQJ.js → chunk-7KDR5P23.js} +2 -2
  8. package/dist/{chunk-PEIR7D25.js → chunk-7KNOHGMI.js} +2 -2
  9. package/dist/{chunk-ZMUFTGL7.cjs → chunk-7QP65IE4.cjs} +5 -5
  10. package/dist/{chunk-ZMUFTGL7.cjs.map → chunk-7QP65IE4.cjs.map} +1 -1
  11. package/dist/{chunk-WPVBTVI3.js → chunk-AGV26PUR.js} +6 -6
  12. package/dist/{chunk-WPVBTVI3.js.map → chunk-AGV26PUR.js.map} +1 -1
  13. package/dist/{chunk-HTVVXVJL.cjs → chunk-DUQQEQ7G.cjs} +1431 -1594
  14. package/dist/chunk-DUQQEQ7G.cjs.map +1 -0
  15. package/dist/{chunk-COMBYYQY.js → chunk-FPE3SQ5D.js} +13 -13
  16. package/dist/chunk-FPE3SQ5D.js.map +1 -0
  17. package/dist/{chunk-WAGTZVQN.js → chunk-IAZ5AN2E.js} +30 -30
  18. package/dist/chunk-IAZ5AN2E.js.map +1 -0
  19. package/dist/{chunk-RQQZF6G6.cjs → chunk-IPEIOR77.cjs} +130 -130
  20. package/dist/chunk-IPEIOR77.cjs.map +1 -0
  21. package/dist/{chunk-3WJQL4DN.cjs → chunk-IZ6A6K6N.cjs} +25 -25
  22. package/dist/chunk-IZ6A6K6N.cjs.map +1 -0
  23. package/dist/{chunk-EE5NH5SH.cjs → chunk-J5NO7PAG.cjs} +3 -3
  24. package/dist/{chunk-EE5NH5SH.cjs.map → chunk-J5NO7PAG.cjs.map} +1 -1
  25. package/dist/{chunk-IAN7GUIV.cjs → chunk-JNC4LVD6.cjs} +42 -42
  26. package/dist/chunk-JNC4LVD6.cjs.map +1 -0
  27. package/dist/{chunk-VWGF6IFR.cjs → chunk-JOH5D76X.cjs} +108 -108
  28. package/dist/chunk-JOH5D76X.cjs.map +1 -0
  29. package/dist/{chunk-7WM77CSW.js → chunk-JYI4R25Q.js} +5 -5
  30. package/dist/chunk-JYI4R25Q.js.map +1 -0
  31. package/dist/{chunk-M6QGB6DC.cjs → chunk-KUXGQ2FQ.cjs} +36 -36
  32. package/dist/chunk-KUXGQ2FQ.cjs.map +1 -0
  33. package/dist/{chunk-M3LD6DNE.cjs → chunk-LFWPWIAC.cjs} +16 -16
  34. package/dist/{chunk-M3LD6DNE.cjs.map → chunk-LFWPWIAC.cjs.map} +1 -1
  35. package/dist/{chunk-R46QEE3R.cjs → chunk-LUKRPHEW.cjs} +96 -96
  36. package/dist/chunk-LUKRPHEW.cjs.map +1 -0
  37. package/dist/{chunk-IMK6RUEC.cjs → chunk-PYR4LVAF.cjs} +10 -10
  38. package/dist/chunk-PYR4LVAF.cjs.map +1 -0
  39. package/dist/{chunk-2ELBNZJ3.js → chunk-QAG357PE.js} +7 -7
  40. package/dist/chunk-QAG357PE.js.map +1 -0
  41. package/dist/{chunk-N2TJ3HAM.cjs → chunk-QO6MCQYE.cjs} +9 -9
  42. package/dist/chunk-QO6MCQYE.cjs.map +1 -0
  43. package/dist/{chunk-EGRZHR7J.js → chunk-SM26C2L7.js} +9 -9
  44. package/dist/chunk-SM26C2L7.js.map +1 -0
  45. package/dist/{chunk-AUJXLVXA.cjs → chunk-TAQMYVO6.cjs} +42 -42
  46. package/dist/{chunk-AUJXLVXA.cjs.map → chunk-TAQMYVO6.cjs.map} +1 -1
  47. package/dist/{chunk-C3FH53AP.cjs → chunk-UFBUQO7Z.cjs} +19 -19
  48. package/dist/{chunk-C3FH53AP.cjs.map → chunk-UFBUQO7Z.cjs.map} +1 -1
  49. package/dist/{chunk-F7YVI54P.js → chunk-W3JZXLJ2.js} +10 -10
  50. package/dist/chunk-W3JZXLJ2.js.map +1 -0
  51. package/dist/{chunk-WZ6TCAYQ.cjs → chunk-XMCVUYKC.cjs} +14 -14
  52. package/dist/chunk-XMCVUYKC.cjs.map +1 -0
  53. package/dist/{chunk-P7PISHM5.js → chunk-Y3NFB6HR.js} +5 -5
  54. package/dist/chunk-Y3NFB6HR.js.map +1 -0
  55. package/dist/{chunk-PBTY7AH5.js → chunk-YZJUHEPZ.js} +95 -95
  56. package/dist/chunk-YZJUHEPZ.js.map +1 -0
  57. package/dist/{chunk-NQQ4NLUT.js → chunk-ZQYFDYWV.js} +4298 -4461
  58. package/dist/chunk-ZQYFDYWV.js.map +1 -0
  59. package/dist/components/case-studies/index.cjs +15 -15
  60. package/dist/components/case-studies/index.cjs.map +1 -1
  61. package/dist/components/case-studies/index.js +9 -9
  62. package/dist/components/case-studies/index.js.map +1 -1
  63. package/dist/components/chat/approval-request-message.d.ts.map +1 -1
  64. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
  65. package/dist/components/chat/index.cjs +4 -4
  66. package/dist/components/chat/index.js +3 -3
  67. package/dist/components/chat/tool-call-blocks.d.ts.map +1 -1
  68. package/dist/components/chat/utils/compact-card-classes.d.ts +3 -3
  69. package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
  70. package/dist/components/contact/index.cjs +5 -5
  71. package/dist/components/contact/index.js +4 -4
  72. package/dist/components/docs/index.cjs +7 -7
  73. package/dist/components/docs/index.js +6 -6
  74. package/dist/components/embeds/index.cjs +5 -5
  75. package/dist/components/embeds/index.js +4 -4
  76. package/dist/components/faq/index.cjs +6 -6
  77. package/dist/components/faq/index.js +5 -5
  78. package/dist/components/features/index.cjs +4 -4
  79. package/dist/components/features/index.js +3 -3
  80. package/dist/components/help-center-pages/index.cjs +23 -23
  81. package/dist/components/help-center-pages/index.js +14 -14
  82. package/dist/components/index.cjs +262 -256
  83. package/dist/components/index.cjs.map +1 -1
  84. package/dist/components/index.js +117 -111
  85. package/dist/components/index.js.map +1 -1
  86. package/dist/components/msp-display.d.ts.map +1 -1
  87. package/dist/components/navigation/index.cjs +4 -4
  88. package/dist/components/navigation/index.js +3 -3
  89. package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
  90. package/dist/components/onboarding-guides/index.cjs +8 -8
  91. package/dist/components/onboarding-guides/index.js +7 -7
  92. package/dist/components/pricing-display.d.ts +9 -9
  93. package/dist/components/related-content/index.cjs +6 -6
  94. package/dist/components/related-content/index.js +5 -5
  95. package/dist/components/tickets/index.cjs +7 -7
  96. package/dist/components/tickets/index.js +6 -6
  97. package/dist/components/toast/index.cjs +5 -5
  98. package/dist/components/toast/index.cjs.map +1 -1
  99. package/dist/components/toast/index.js +5 -5
  100. package/dist/components/toast/index.js.map +1 -1
  101. package/dist/components/ui/bullet-list.d.ts.map +1 -1
  102. package/dist/components/ui/drawer.d.ts +1 -1
  103. package/dist/components/ui/drawer.d.ts.map +1 -1
  104. package/dist/components/ui/file-manager/index.cjs +73 -73
  105. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  106. package/dist/components/ui/file-manager/index.js +24 -24
  107. package/dist/components/ui/file-manager/index.js.map +1 -1
  108. package/dist/components/ui/index.cjs +4 -4
  109. package/dist/components/ui/index.js +3 -3
  110. package/dist/components/ui/markdown-editor.d.ts.map +1 -1
  111. package/dist/components/ui/square-avatar.d.ts +3 -0
  112. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  113. package/dist/components/user-display.d.ts.map +1 -1
  114. package/dist/components/vendor-tag.d.ts.map +1 -1
  115. package/dist/hooks/index.cjs +2 -2
  116. package/dist/hooks/index.js +1 -1
  117. package/dist/index.cjs +4 -4
  118. package/dist/index.js +3 -3
  119. package/dist/tailwind.config.cjs +38 -5
  120. package/dist/tailwind.config.cjs.map +1 -1
  121. package/dist/tailwind.config.js +38 -5
  122. package/dist/tailwind.config.js.map +1 -1
  123. package/package.json +1 -1
  124. package/src/ODS_TOKEN_RULES.md +5 -0
  125. package/src/components/.footer.md +2 -2
  126. package/src/components/announcement-bar.tsx +1 -1
  127. package/src/components/authors/author-detail-view.tsx +3 -3
  128. package/src/components/calendar.tsx +2 -2
  129. package/src/components/case-studies/share-experience-section.tsx +5 -5
  130. package/src/components/categories-cart.tsx +6 -6
  131. package/src/components/category-card.tsx +5 -5
  132. package/src/components/chart.tsx +3 -3
  133. package/src/components/chat/approval-request-message.tsx +2 -5
  134. package/src/components/chat/chat-attachment-bar.tsx +3 -3
  135. package/src/components/chat/chat-message-enhanced.tsx +1 -1
  136. package/src/components/chat/chat-message-list.tsx +1 -1
  137. package/src/components/chat/chat-message-row.tsx +3 -3
  138. package/src/components/chat/chat-quick-action.tsx +1 -1
  139. package/src/components/chat/chat-sidebar-skeleton.tsx +1 -1
  140. package/src/components/chat/chat-sidebar.tsx +6 -6
  141. package/src/components/chat/chat-typing-indicator.tsx +1 -1
  142. package/src/components/chat/context-compaction-display.tsx +1 -1
  143. package/src/components/chat/embeddable-chat.tsx +3 -3
  144. package/src/components/chat/entity-cards/admin-content-card.tsx +5 -5
  145. package/src/components/chat/entity-cards/blog-card.tsx +5 -8
  146. package/src/components/chat/entity-cards/case-study-card.tsx +5 -5
  147. package/src/components/chat/entity-cards/chat-ticket-item.tsx +1 -1
  148. package/src/components/chat/entity-cards/customer-interview-card.tsx +9 -9
  149. package/src/components/chat/entity-cards/data-room-doc-card.tsx +2 -2
  150. package/src/components/chat/entity-cards/dispatch.tsx +1 -1
  151. package/src/components/chat/entity-cards/entity-author-card.tsx +3 -3
  152. package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -4
  153. package/src/components/chat/entity-cards/generic-entity-card.tsx +3 -3
  154. package/src/components/chat/entity-cards/github-activity-card.tsx +11 -11
  155. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +5 -5
  156. package/src/components/chat/entity-cards/investor-update-card.tsx +1 -1
  157. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +12 -12
  158. package/src/components/chat/entity-cards/program-card.tsx +12 -12
  159. package/src/components/chat/entity-cards/roadmap-card.tsx +6 -6
  160. package/src/components/chat/entity-cards/roadmap-vote-button.tsx +1 -1
  161. package/src/components/chat/entity-cards/slack-message-card.tsx +4 -4
  162. package/src/components/chat/error-message-display.tsx +2 -2
  163. package/src/components/chat/mingo-info-card.tsx +2 -2
  164. package/src/components/chat/model-display.tsx +7 -7
  165. package/src/components/chat/quick-action-chip.tsx +1 -1
  166. package/src/components/chat/source-action-button.tsx +2 -2
  167. package/src/components/chat/tool-call-blocks.tsx +3 -5
  168. package/src/components/chat/utils/.chip-action-class.md +1 -1
  169. package/src/components/chat/utils/.chip-styles.md +2 -2
  170. package/src/components/chat/utils/chip-action-class.ts +1 -1
  171. package/src/components/chat/utils/chip-styles.ts +2 -2
  172. package/src/components/chat/utils/compact-card-classes.ts +3 -3
  173. package/src/components/command.tsx +3 -3
  174. package/src/components/comment-card.tsx +1 -1
  175. package/src/components/contact/contact-form.tsx +9 -9
  176. package/src/components/context-menu.tsx +5 -5
  177. package/src/components/date-time-picker.tsx +2 -2
  178. package/src/components/docs/doc-viewer.tsx +4 -4
  179. package/src/components/embeds/figma-embed.tsx +2 -2
  180. package/src/components/embeds/file-download-card.tsx +2 -2
  181. package/src/components/embeds/google-sheets-viewer.tsx +1 -1
  182. package/src/components/embeds/linkedin-embed-client.tsx +3 -3
  183. package/src/components/embeds/og-link-preview.tsx +14 -14
  184. package/src/components/embeds/pdf-viewer.tsx +1 -1
  185. package/src/components/embeds/reddit-embed-client.tsx +9 -9
  186. package/src/components/embeds/twitter-embed-client.tsx +9 -9
  187. package/src/components/empty-state.tsx +5 -5
  188. package/src/components/faq/faq-section.tsx +1 -1
  189. package/src/components/features/ai-enrich/AIEnrichSection.tsx +14 -14
  190. package/src/components/features/ai-enrich/AIRequiredBadge.tsx +5 -5
  191. package/src/components/features/ai-enrich/AIStatusIndicator.tsx +8 -8
  192. package/src/components/features/ai-enrich/AIWarningsSection.tsx +4 -4
  193. package/src/components/features/ai-enrich/ConfidenceBadge.tsx +4 -4
  194. package/src/components/features/array-entry-manager.tsx +7 -7
  195. package/src/components/features/auth-providers-list.tsx +1 -1
  196. package/src/components/features/board/ticket-card.tsx +1 -1
  197. package/src/components/features/changelog-manager.tsx +10 -10
  198. package/src/components/features/command-box.tsx +2 -2
  199. package/src/components/features/entity-summary-editor.tsx +3 -3
  200. package/src/components/features/figma-prototype-viewer.tsx +9 -9
  201. package/src/components/features/filters-dropdown.tsx +2 -2
  202. package/src/components/features/highlight-config-section.tsx +3 -3
  203. package/src/components/features/highlight-video-combined-section.tsx +2 -2
  204. package/src/components/features/highlight-video-preview.tsx +2 -2
  205. package/src/components/features/highlight-video-section.tsx +9 -9
  206. package/src/components/features/media-gallery-manager.tsx +14 -14
  207. package/src/components/features/og-editor-preview.tsx +4 -4
  208. package/src/components/features/os-type-badge-group.tsx +1 -1
  209. package/src/components/features/os-type-badge.tsx +2 -2
  210. package/src/components/features/platform-badge.tsx +4 -4
  211. package/src/components/features/policy-configuration-panel.tsx +6 -6
  212. package/src/components/features/provider-button.tsx +1 -1
  213. package/src/components/features/push-button-selector.tsx +21 -21
  214. package/src/components/features/release-media-manager.tsx +16 -16
  215. package/src/components/features/section-selector.tsx +8 -8
  216. package/src/components/features/select-button.tsx +4 -4
  217. package/src/components/features/seo-editor-preview.tsx +20 -20
  218. package/src/components/features/social-links-manager.tsx +3 -3
  219. package/src/components/features/start-with-openframe-button.tsx +3 -3
  220. package/src/components/features/status-filter-component.tsx +1 -1
  221. package/src/components/features/tags-selector.tsx +6 -6
  222. package/src/components/features/transcript-summary-editor.tsx +9 -9
  223. package/src/components/features/video-bites-strip.tsx +1 -1
  224. package/src/components/features/video-ratio-tabs.tsx +1 -1
  225. package/src/components/features/video-source-selector.tsx +7 -7
  226. package/src/components/features/video.tsx +1 -1
  227. package/src/components/features/waitlist-form.tsx +3 -3
  228. package/src/components/filter-chip.tsx +13 -13
  229. package/src/components/footer.tsx +3 -3
  230. package/src/components/form.tsx +2 -2
  231. package/src/components/hero-image-uploader.tsx +3 -3
  232. package/src/components/image-cropper.tsx +2 -2
  233. package/src/components/layout/page-container.tsx +6 -6
  234. package/src/components/layout/page-heading.tsx +1 -1
  235. package/src/components/loading/card-skeleton.tsx +2 -2
  236. package/src/components/loading/category-card-skeleton.tsx +1 -1
  237. package/src/components/loading/margin-report-skeleton.tsx +22 -22
  238. package/src/components/loading/openmsp-heartbeat.tsx +1 -1
  239. package/src/components/loading/page-layout-skeleton.tsx +83 -83
  240. package/src/components/loading/unified-skeleton.tsx +1 -1
  241. package/src/components/loading/users-grid-skeleton.tsx +2 -2
  242. package/src/components/logs-list.tsx +8 -8
  243. package/src/components/media-carousel.tsx +7 -7
  244. package/src/components/metric-value.tsx +2 -2
  245. package/src/components/msp-display.tsx +8 -2
  246. package/src/components/navigation/app-header.tsx +6 -6
  247. package/src/components/navigation/header-organization-filter.tsx +2 -2
  248. package/src/components/navigation/header.tsx +4 -4
  249. package/src/components/navigation/mobile-burger-menu.tsx +7 -7
  250. package/src/components/navigation/mobile-nav-panel.tsx +1 -1
  251. package/src/components/navigation/multi-level-navigation.tsx +7 -7
  252. package/src/components/navigation/navigation-sidebar.tsx +1 -1
  253. package/src/components/navigation/sticky-section-nav.tsx +2 -2
  254. package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +4 -4
  255. package/src/components/pagination.tsx +2 -2
  256. package/src/components/persistent-filter-controls.tsx +1 -1
  257. package/src/components/platform/.ShellTypeBadge.md +1 -1
  258. package/src/components/platform/CveLink.tsx +1 -1
  259. package/src/components/platform/ScriptArguments.tsx +2 -2
  260. package/src/components/platform/ScriptInfoSection.tsx +5 -5
  261. package/src/components/platform/ShellTypeBadge.tsx +6 -6
  262. package/src/components/platform/SoftwareInfo.tsx +2 -2
  263. package/src/components/pricing-display.tsx +9 -9
  264. package/src/components/profile/ProfileLoadingSkeleton.tsx +6 -6
  265. package/src/components/related-content/related-content-section.tsx +3 -3
  266. package/src/components/results-count.tsx +1 -1
  267. package/src/components/shared/delivery/delivery-row.tsx +1 -1
  268. package/src/components/shared/delivery/delivery-table.tsx +1 -1
  269. package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
  270. package/src/components/shared/doc-search/doc-search-result-row.tsx +2 -2
  271. package/src/components/shared/legal-document/legal-document-page.tsx +5 -5
  272. package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
  273. package/src/components/shared/product-release/product-release-card-skeleton.tsx +3 -3
  274. package/src/components/shared/product-release/product-release-card.tsx +14 -14
  275. package/src/components/shared/product-release/release-detail-page.tsx +16 -16
  276. package/src/components/shared/roadmap/roadmap-grid.tsx +2 -2
  277. package/src/components/smooth-accordion.tsx +1 -1
  278. package/src/components/social-icon-row.tsx +1 -1
  279. package/src/components/sonner.tsx +5 -5
  280. package/src/components/steps.tsx +3 -3
  281. package/src/components/tickets/help-center-create-form.tsx +1 -1
  282. package/src/components/tickets/help-center-list.tsx +1 -1
  283. package/src/components/tickets/ticket-center.tsx +2 -2
  284. package/src/components/tickets/ticket-detail-drawer.tsx +5 -5
  285. package/src/components/tickets/ticket-open-form.tsx +6 -6
  286. package/src/components/ui/.title-content-block.md +1 -1
  287. package/src/components/ui/accordion.tsx +2 -2
  288. package/src/components/ui/actions-menu.tsx +1 -1
  289. package/src/components/ui/alert-dialog.tsx +3 -3
  290. package/src/components/ui/alert.tsx +2 -2
  291. package/src/components/ui/allowed-domains-input.tsx +3 -3
  292. package/src/components/ui/autocomplete.tsx +3 -3
  293. package/src/components/ui/badge.tsx +2 -2
  294. package/src/components/ui/brand-association-card.tsx +2 -2
  295. package/src/components/ui/breadcrumb.tsx +3 -3
  296. package/src/components/ui/bullet-list.tsx +2 -2
  297. package/src/components/ui/button/button.tsx +1 -1
  298. package/src/components/ui/card.tsx +4 -4
  299. package/src/components/ui/checkbox-with-description.tsx +1 -1
  300. package/src/components/ui/chevron-button.tsx +1 -1
  301. package/src/components/ui/content-loader.tsx +16 -16
  302. package/src/components/ui/cursor-pagination.tsx +1 -1
  303. package/src/components/ui/date-picker.tsx +2 -2
  304. package/src/components/ui/device-card-compact.tsx +2 -2
  305. package/src/components/ui/device-card.tsx +3 -3
  306. package/src/components/ui/dialog.tsx +3 -3
  307. package/src/components/ui/drawer.tsx +4 -4
  308. package/src/components/ui/dropdown-menu.tsx +6 -6
  309. package/src/components/ui/error-state.tsx +9 -9
  310. package/src/components/ui/fade-preview.tsx +1 -1
  311. package/src/components/ui/field-wrapper.tsx +1 -1
  312. package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +2 -2
  313. package/src/components/ui/file-manager/file-manager-empty.tsx +3 -3
  314. package/src/components/ui/file-manager/file-manager-skeleton.tsx +4 -4
  315. package/src/components/ui/file-manager/file-manager-table-row.tsx +7 -7
  316. package/src/components/ui/file-manager/file-manager-table.tsx +8 -8
  317. package/src/components/ui/file-upload.tsx +9 -9
  318. package/src/components/ui/filter-pill-row.tsx +1 -1
  319. package/src/components/ui/floating-tooltip.tsx +1 -1
  320. package/src/components/ui/highlight-card.tsx +1 -1
  321. package/src/components/ui/hover-dropdown.tsx +1 -1
  322. package/src/components/ui/image-gallery-modal.tsx +1 -1
  323. package/src/components/ui/info-row.tsx +1 -1
  324. package/src/components/ui/input.tsx +1 -1
  325. package/src/components/ui/label.tsx +5 -5
  326. package/src/components/ui/markdown-editor.tsx +4 -5
  327. package/src/components/ui/menubar.tsx +7 -7
  328. package/src/components/ui/modal-v2.tsx +1 -1
  329. package/src/components/ui/modal.tsx +1 -1
  330. package/src/components/ui/more-actions-menu.tsx +1 -1
  331. package/src/components/ui/navigation-menu.tsx +1 -1
  332. package/src/components/ui/organization-card.tsx +8 -8
  333. package/src/components/ui/page-loader.tsx +6 -6
  334. package/src/components/ui/phone-input.tsx +1 -1
  335. package/src/components/ui/progress-bar.tsx +5 -5
  336. package/src/components/ui/query-report-table/.query-report-table-header.md +1 -1
  337. package/src/components/ui/query-report-table/query-report-table-header.tsx +1 -1
  338. package/src/components/ui/query-report-table/query-report-table-row.tsx +2 -2
  339. package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
  340. package/src/components/ui/release-changelog-section.tsx +2 -2
  341. package/src/components/ui/rich-markdown-renderer.tsx +6 -6
  342. package/src/components/ui/search-input.tsx +7 -7
  343. package/src/components/ui/select.tsx +1 -1
  344. package/src/components/ui/service-card.tsx +4 -4
  345. package/src/components/ui/sheet.tsx +3 -3
  346. package/src/components/ui/simple-markdown-renderer.tsx +4 -4
  347. package/src/components/ui/square-avatar.tsx +9 -5
  348. package/src/components/ui/status-badge.tsx +11 -11
  349. package/src/components/ui/status-indicator.tsx +6 -6
  350. package/src/components/ui/tab-content.tsx +1 -1
  351. package/src/components/ui/tab-navigation.tsx +2 -2
  352. package/src/components/ui/table/table-column-filter-dropdown.tsx +1 -1
  353. package/src/components/ui/table/table-description-cell.tsx +1 -1
  354. package/src/components/ui/table/table-timestamp-cell.tsx +1 -1
  355. package/src/components/ui/table/table.tsx +2 -2
  356. package/src/components/ui/tabs.tsx +1 -1
  357. package/src/components/ui/tag-search-input.tsx +1 -1
  358. package/src/components/ui/tag.tsx +23 -23
  359. package/src/components/ui/tags-input.tsx +2 -2
  360. package/src/components/ui/ticket-status-tag.tsx +1 -1
  361. package/src/components/ui/toaster.tsx +8 -8
  362. package/src/components/ui/toggle.tsx +1 -1
  363. package/src/components/ui/tooltip.tsx +1 -1
  364. package/src/components/user-display.tsx +12 -6
  365. package/src/components/user-summary-stub.tsx +4 -4
  366. package/src/components/vendor-display-button.tsx +2 -2
  367. package/src/components/vendor-icon.tsx +1 -1
  368. package/src/components/vendor-tag.tsx +9 -10
  369. package/src/components/yes-no-display.tsx +3 -3
  370. package/src/styles/ods-colors.css +2 -0
  371. package/tailwind.config.ts +49 -4
  372. package/dist/chunk-2ELBNZJ3.js.map +0 -1
  373. package/dist/chunk-3WJQL4DN.cjs.map +0 -1
  374. package/dist/chunk-4ACSUJ7Q.js.map +0 -1
  375. package/dist/chunk-7WM77CSW.js.map +0 -1
  376. package/dist/chunk-COMBYYQY.js.map +0 -1
  377. package/dist/chunk-EGRZHR7J.js.map +0 -1
  378. package/dist/chunk-F7YVI54P.js.map +0 -1
  379. package/dist/chunk-G5FALXNO.js.map +0 -1
  380. package/dist/chunk-HTVVXVJL.cjs.map +0 -1
  381. package/dist/chunk-IAN7GUIV.cjs.map +0 -1
  382. package/dist/chunk-IMK6RUEC.cjs.map +0 -1
  383. package/dist/chunk-M6QGB6DC.cjs.map +0 -1
  384. package/dist/chunk-N2TJ3HAM.cjs.map +0 -1
  385. package/dist/chunk-NQQ4NLUT.js.map +0 -1
  386. package/dist/chunk-P7PISHM5.js.map +0 -1
  387. package/dist/chunk-PBTY7AH5.js.map +0 -1
  388. package/dist/chunk-R46QEE3R.cjs.map +0 -1
  389. package/dist/chunk-RQQZF6G6.cjs.map +0 -1
  390. package/dist/chunk-RVWC4P3H.js.map +0 -1
  391. package/dist/chunk-VWGF6IFR.cjs.map +0 -1
  392. package/dist/chunk-WAGTZVQN.js.map +0 -1
  393. package/dist/chunk-WZ6TCAYQ.cjs.map +0 -1
  394. package/dist/components/accordion.d.ts +0 -8
  395. package/dist/components/accordion.d.ts.map +0 -1
  396. package/dist/components/alert-dialog.d.ts +0 -21
  397. package/dist/components/alert-dialog.d.ts.map +0 -1
  398. package/dist/components/alert.d.ts +0 -9
  399. package/dist/components/alert.d.ts.map +0 -1
  400. package/dist/components/badge.d.ts +0 -10
  401. package/dist/components/badge.d.ts.map +0 -1
  402. package/dist/components/breadcrumb.d.ts +0 -20
  403. package/dist/components/breadcrumb.d.ts.map +0 -1
  404. package/dist/components/chevron-button.d.ts +0 -14
  405. package/dist/components/chevron-button.d.ts.map +0 -1
  406. package/dist/components/dialog.d.ts +0 -29
  407. package/dist/components/dialog.d.ts.map +0 -1
  408. package/dist/components/dropdown-menu.d.ts +0 -28
  409. package/dist/components/dropdown-menu.d.ts.map +0 -1
  410. package/dist/components/input.d.ts +0 -8
  411. package/dist/components/input.d.ts.map +0 -1
  412. package/dist/components/label.d.ts +0 -6
  413. package/dist/components/label.d.ts.map +0 -1
  414. package/dist/components/menubar.d.ts +0 -34
  415. package/dist/components/menubar.d.ts.map +0 -1
  416. package/dist/components/navigation-menu.d.ts +0 -13
  417. package/dist/components/navigation-menu.d.ts.map +0 -1
  418. package/dist/components/select.d.ts +0 -14
  419. package/dist/components/select.d.ts.map +0 -1
  420. package/dist/components/sidebar.d.ts +0 -67
  421. package/dist/components/sidebar.d.ts.map +0 -1
  422. package/dist/components/square-avatar.d.ts +0 -21
  423. package/dist/components/square-avatar.d.ts.map +0 -1
  424. package/dist/components/table.d.ts +0 -11
  425. package/dist/components/table.d.ts.map +0 -1
  426. package/dist/components/tabs.d.ts +0 -18
  427. package/dist/components/tabs.d.ts.map +0 -1
  428. package/dist/components/toggle.d.ts +0 -13
  429. package/dist/components/toggle.d.ts.map +0 -1
  430. package/src/components/.accordion.md +0 -42
  431. package/src/components/.alert-dialog.md +0 -58
  432. package/src/components/.alert.md +0 -43
  433. package/src/components/.badge.md +0 -40
  434. package/src/components/.breadcrumb.md +0 -54
  435. package/src/components/.chevron-button.md +0 -46
  436. package/src/components/.dialog.md +0 -60
  437. package/src/components/.dropdown-menu.md +0 -51
  438. package/src/components/.input.md +0 -40
  439. package/src/components/.label.md +0 -41
  440. package/src/components/.menubar.md +0 -49
  441. package/src/components/.navigation-menu.md +0 -44
  442. package/src/components/.select.md +0 -54
  443. package/src/components/.sidebar.md +0 -58
  444. package/src/components/.square-avatar.md +0 -42
  445. package/src/components/.table.md +0 -51
  446. package/src/components/.tabs.md +0 -38
  447. package/src/components/.toggle.md +0 -49
  448. package/src/components/accordion.tsx +0 -56
  449. package/src/components/alert-dialog.tsx +0 -141
  450. package/src/components/alert.tsx +0 -59
  451. package/src/components/badge.tsx +0 -30
  452. package/src/components/breadcrumb.tsx +0 -115
  453. package/src/components/chevron-button.tsx +0 -68
  454. package/src/components/dialog.tsx +0 -150
  455. package/src/components/dropdown-menu.tsx +0 -200
  456. package/src/components/input.tsx +0 -39
  457. package/src/components/label.tsx +0 -19
  458. package/src/components/menubar.tsx +0 -236
  459. package/src/components/navigation-menu.tsx +0 -128
  460. package/src/components/select.tsx +0 -160
  461. package/src/components/sidebar.tsx +0 -764
  462. package/src/components/square-avatar.tsx +0 -61
  463. package/src/components/table.tsx +0 -72
  464. package/src/components/tabs.tsx +0 -65
  465. package/src/components/toggle.tsx +0 -45
  466. /package/dist/{chunk-QXYOGJQJ.js.map → chunk-7KDR5P23.js.map} +0 -0
  467. /package/dist/{chunk-PEIR7D25.js.map → chunk-7KNOHGMI.js.map} +0 -0
@@ -13,7 +13,7 @@ export interface ProductReleaseCardSkeletonProps {
13
13
 
14
14
  export function ProductReleaseCardSkeleton({ className, size = 'lg' }: ProductReleaseCardSkeletonProps) {
15
15
  // ----- LG branch — must match ProductReleaseCard size='lg'.
16
- // Same outer frame (`bg-ods-system-greys-black border border-ods-border …
16
+ // Same outer frame (`bg-ods-card border border-ods-border …
17
17
  // p-6 gap-4`). Inner: hero (16:9 cover + version pill + title + summary),
18
18
  // changelog strip placeholder, metadata-grid footer (4 cells via grid).
19
19
  // Heights chosen to match the loaded card's rendered metrics so the
@@ -25,14 +25,14 @@ export function ProductReleaseCardSkeleton({ className, size = 'lg' }: ProductRe
25
25
  return (
26
26
  <div
27
27
  className={cn(
28
- 'bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden',
28
+ 'bg-ods-card border border-ods-border rounded-lg overflow-hidden',
29
29
  'flex flex-col p-6 gap-4',
30
30
  'animate-pulse',
31
31
  className,
32
32
  )}
33
33
  >
34
34
  {/* HERO — placeholders use `bg-ods-border` (#3a3a3a) so they
35
- contrast against the card's `bg-ods-system-greys-black`
35
+ contrast against the card's `bg-ods-card`
36
36
  (#212121) container. The metadata grid cells below use
37
37
  `bg-ods-card` containers so `bg-ods-bg` placeholders work
38
38
  there, but in the hero the card IS `bg-ods-card`-equivalent —
@@ -220,7 +220,7 @@ export function ProductReleaseCard({
220
220
  const dividerClass = 'border-b md:border-b-0 md:border-r border-ods-border'
221
221
 
222
222
  const frameClass = cn(
223
- 'group bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden',
223
+ 'group bg-ods-card border border-ods-border rounded-lg overflow-hidden',
224
224
  'flex flex-col p-6 gap-4',
225
225
  'transition-all duration-300 ease-out transform hover:translate-y-[-2px]',
226
226
  'hover:border-ods-accent hover:shadow-lg hover:shadow-ods-accent/[0.08]',
@@ -251,14 +251,14 @@ export function ProductReleaseCard({
251
251
  )}
252
252
  {hasVideoCover && coverImage && (
253
253
  <span className="absolute inset-0 flex items-center justify-center bg-black/30">
254
- <Play className="w-10 h-10 text-white" fill="white" />
254
+ <Play className="w-10 h-10 text-ods-text-on-dark" fill="white" />
255
255
  </span>
256
256
  )}
257
257
  </div>
258
258
  </div>
259
259
  <div className="flex-1 min-w-0 flex flex-col">
260
260
  <div className="flex items-center gap-3 mb-3">
261
- <span className="font-mono font-semibold text-lg text-ods-text-primary truncate">
261
+ <span className="text-code font-semibold text-ods-text-primary truncate">
262
262
  v{version}
263
263
  </span>
264
264
  </div>
@@ -290,7 +290,7 @@ export function ProductReleaseCard({
290
290
  (zero reflow on resolve). When `totalChangelog === 0`, an
291
291
  empty-state line takes the same vertical space as the
292
292
  populated row. */}
293
- <div className="border-t border-ods-border pt-3 flex flex-wrap items-center gap-x-4 gap-y-1.5 font-['DM_Sans'] text-sm text-ods-text-secondary">
293
+ <div className="border-t border-ods-border pt-3 flex flex-wrap items-center gap-x-4 gap-y-1.5 text-h6 text-ods-text-secondary">
294
294
  {totalChangelog > 0 && changelogCounts ? (
295
295
  <>
296
296
  {changelogCounts.features > 0 && (
@@ -312,14 +312,14 @@ export function ProductReleaseCard({
312
312
  </span>
313
313
  )}
314
314
  {changelogCounts.breaking > 0 && (
315
- <span className="inline-flex items-center gap-1.5 text-[var(--ods-attention-yellow-warning)]">
315
+ <span className="inline-flex items-center gap-1.5 text-ods-warning">
316
316
  <AlertTriangle className="w-3.5 h-3.5" />
317
317
  {changelogCounts.breaking} breaking
318
318
  </span>
319
319
  )}
320
320
  </>
321
321
  ) : (
322
- <span className="text-sm text-ods-text-secondary">No changelog entries yet</span>
322
+ <span className="text-ods-text-secondary">No changelog entries yet</span>
323
323
  )}
324
324
  </div>
325
325
 
@@ -362,7 +362,7 @@ export function ProductReleaseCard({
362
362
  {cell.uppercase ? cell.value.toLocaleUpperCase() : cell.value}
363
363
  </p>
364
364
  )}
365
- <p className="font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary">
365
+ <p className="text-h6 text-ods-text-secondary">
366
366
  {cell.label}
367
367
  </p>
368
368
  </div>
@@ -380,7 +380,7 @@ export function ProductReleaseCard({
380
380
  <p className="text-h3 tracking-[-0.36px] text-ods-text-primary truncate">
381
381
  {effectiveAuthor.full_name}
382
382
  </p>
383
- <p className="font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary">
383
+ <p className="text-h6 text-ods-text-secondary">
384
384
  {effectiveAuthor.job_title || 'Author'}
385
385
  </p>
386
386
  </div>
@@ -388,7 +388,7 @@ export function ProductReleaseCard({
388
388
  </div>
389
389
 
390
390
  {typeof viewCount === 'number' && viewCount > 0 && (
391
- <div className="flex items-center gap-1.5 text-xs text-ods-text-secondary">
391
+ <div className="flex items-center gap-1.5 text-h6 text-ods-text-secondary">
392
392
  <Eye className="w-3.5 h-3.5" />
393
393
  <span>{viewCount.toLocaleString()} views</span>
394
394
  </div>
@@ -492,7 +492,7 @@ export function ProductReleaseCard({
492
492
  )}
493
493
  {hasVideoCover && coverImage && (
494
494
  <span className="absolute inset-0 flex items-center justify-center bg-black/30">
495
- <Play className="h-4 w-4 text-white" fill="white" />
495
+ <Play className="h-4 w-4 text-ods-text-on-dark" fill="white" />
496
496
  </span>
497
497
  )}
498
498
  </span>
@@ -506,22 +506,22 @@ export function ProductReleaseCard({
506
506
  as the loaded text — zero load-to-resolve baseline shift. */}
507
507
  <span className="flex min-w-0 flex-1 flex-col gap-0.5 min-h-14">
508
508
  <span className="flex items-center gap-2 min-w-0 h-5">
509
- <span className="truncate text-sm font-semibold leading-5 text-ods-text-primary min-w-0" title={title}>
509
+ <span className="truncate text-h6 font-semibold text-ods-text-primary min-w-0" title={title}>
510
510
  {title}
511
511
  </span>
512
512
  {version ? (
513
- <span className="shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 font-mono text-[10px] font-medium text-ods-accent">
513
+ <span className="shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-code text-ods-accent">
514
514
  {version}
515
515
  </span>
516
516
  ) : null}
517
517
  </span>
518
518
  <span className="flex items-center min-w-0 h-4">
519
- <span className="truncate text-[11px] leading-4 text-ods-text-secondary">
519
+ <span className="truncate text-h6 text-ods-text-secondary">
520
520
  {formattedDate || 'Product release'}
521
521
  </span>
522
522
  </span>
523
523
  <span className="flex items-center min-w-0 h-4">
524
- <span className="truncate text-[11px] leading-4 text-ods-text-secondary/80" title={summary || undefined}>
524
+ <span className="truncate text-h6 text-ods-text-secondary/80" title={summary || undefined}>
525
525
  {/* The literal between the curly-quote string is U+00A0
526
526
  (NBSP). The hub's `COMPACT_CARD_ROW_FILLER` is also
527
527
  NBSP; ASCII space here would let React collapse the
@@ -220,8 +220,8 @@ export function ReleaseDetailPage({
220
220
  if (error || !release) {
221
221
  return renderShell(
222
222
  <div className="text-center py-16">
223
- <h1 className="text-4xl font-bold text-ods-text-primary mb-4">Release Not Found</h1>
224
- <p className="text-xl text-ods-text-secondary">The release you&apos;re looking for doesn&apos;t exist.</p>
223
+ <h1 className="text-h1 text-ods-text-primary mb-4">Release Not Found</h1>
224
+ <p className="text-h4 text-ods-text-secondary">The release you&apos;re looking for doesn&apos;t exist.</p>
225
225
  </div>
226
226
  );
227
227
  }
@@ -276,7 +276,7 @@ export function ReleaseDetailPage({
276
276
  <p className="text-h4 text-ods-text-primary">
277
277
  {releaseType.toLocaleUpperCase()}
278
278
  </p>
279
- <p className="font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary">
279
+ <p className="text-h6 text-ods-text-secondary">
280
280
  Release Type
281
281
  </p>
282
282
  </div>
@@ -288,7 +288,7 @@ export function ReleaseDetailPage({
288
288
  <p className="text-h4 text-ods-text-primary">
289
289
  {releaseStatus.toLocaleUpperCase()}
290
290
  </p>
291
- <p className="font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary">
291
+ <p className="text-h6 text-ods-text-secondary">
292
292
  Release Status
293
293
  </p>
294
294
  </div>
@@ -300,7 +300,7 @@ export function ReleaseDetailPage({
300
300
  <p className="text-h4 text-ods-text-primary">
301
301
  {formatReleaseDate(releaseDate)}
302
302
  </p>
303
- <p className="font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary">
303
+ <p className="text-h6 text-ods-text-secondary">
304
304
  Release Date
305
305
  </p>
306
306
  </div>
@@ -385,12 +385,12 @@ export function ReleaseDetailPage({
385
385
 
386
386
  {/* Breaking Changes Warning */}
387
387
  {hasBreakingChanges && (
388
- <Card className="border-red-500 bg-red-500/10">
388
+ <Card className="border-ods-error bg-ods-error/10">
389
389
  <CardContent className="p-6">
390
390
  <div className="flex items-center gap-3">
391
- <AlertTriangle className="h-6 w-6 text-red-500" />
391
+ <AlertTriangle className="h-6 w-6 text-ods-error" />
392
392
  <div>
393
- <h3 className="font-bold text-red-500 text-lg">Breaking Changes</h3>
393
+ <h3 className="text-h3 text-ods-error">Breaking Changes</h3>
394
394
  <p className="text-ods-text-secondary">This release contains breaking changes. Review carefully before upgrading.</p>
395
395
  </div>
396
396
  </div>
@@ -510,11 +510,11 @@ export function ReleaseDetailPage({
510
510
  href={ghRelease.github_release_url}
511
511
  target="_blank"
512
512
  rel="noopener noreferrer"
513
- className="text-h4 text-[#ffc008] hover:underline"
513
+ className="text-h4 text-ods-accent hover:underline"
514
514
  >
515
515
  {ghRelease.github_release_url.split('/').pop()}
516
516
  </a>
517
- <ExternalLink className="h-6 w-6 text-[#ffc008] shrink-0" />
517
+ <ExternalLink className="h-6 w-6 text-ods-accent shrink-0" />
518
518
  </div>
519
519
  ))}
520
520
  </>
@@ -534,11 +534,11 @@ export function ReleaseDetailPage({
534
534
  </span>
535
535
  <Link
536
536
  href={path.startsWith('http') ? path : `/knowledge-base${path.startsWith('/') ? '' : '/'}${path}`}
537
- className="text-h4 text-[#ffc008] hover:underline"
537
+ className="text-h4 text-ods-accent hover:underline"
538
538
  >
539
539
  {path.replace(/^\//, '').split('/').pop()?.replace(/-/g, ' ') || 'View Article'}
540
540
  </Link>
541
- <ExternalLink className="h-6 w-6 text-[#ffc008] shrink-0" />
541
+ <ExternalLink className="h-6 w-6 text-ods-accent shrink-0" />
542
542
  </div>
543
543
  );
544
544
  })}
@@ -553,11 +553,11 @@ export function ReleaseDetailPage({
553
553
  href={migrationGuideUrl}
554
554
  target="_blank"
555
555
  rel="noopener noreferrer"
556
- className="text-h4 text-[#ffc008] hover:underline"
556
+ className="text-h4 text-ods-accent hover:underline"
557
557
  >
558
558
  📖 Migration Guide
559
559
  </a>
560
- <ExternalLink className="h-6 w-6 text-[#ffc008] shrink-0" />
560
+ <ExternalLink className="h-6 w-6 text-ods-accent shrink-0" />
561
561
  </div>
562
562
  )}
563
563
 
@@ -569,11 +569,11 @@ export function ReleaseDetailPage({
569
569
  href={documentationUrl}
570
570
  target="_blank"
571
571
  rel="noopener noreferrer"
572
- className="text-h4 text-[#ffc008] hover:underline"
572
+ className="text-h4 text-ods-accent hover:underline"
573
573
  >
574
574
  📚 Documentation
575
575
  </a>
576
- <ExternalLink className="h-6 w-6 text-[#ffc008] shrink-0" />
576
+ <ExternalLink className="h-6 w-6 text-ods-accent shrink-0" />
577
577
  </div>
578
578
  )}
579
579
  </div>
@@ -283,7 +283,7 @@ export function RoadmapGrid({
283
283
  <div className="flex items-center gap-3">
284
284
  <h3
285
285
  className={cn(
286
- "font-['Azeret_Mono'] font-semibold text-[24px] md:text-[28px] lg:text-[32px] leading-[32px] md:leading-[36px] lg:leading-[40px] text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] transition-opacity",
286
+ 'text-h2 text-ods-text-primary transition-opacity',
287
287
  isExpanded ? 'opacity-100' : 'opacity-60',
288
288
  )}
289
289
  >
@@ -292,7 +292,7 @@ export function RoadmapGrid({
292
292
  </h3>
293
293
  <span
294
294
  className={cn(
295
- 'text-sm font-medium transition-opacity',
295
+ 'text-h6 transition-opacity',
296
296
  isExpanded ? 'text-ods-text-secondary opacity-100' : 'text-ods-text-tertiary opacity-60',
297
297
  )}
298
298
  >
@@ -47,7 +47,7 @@ export const SmoothAccordionTrigger = React.forwardRef<
47
47
  size="md"
48
48
  isExpanded={false}
49
49
  backgroundColor="transparent"
50
- borderColor="#3A3A3A"
50
+ borderColor="var(--color-border-default)"
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(--ods-text-primary)" />;
89
+ return <CopyIcon className="w-5 h-5" color="var(--color-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-background-secondary group-[.toaster]:text-ods-text-primary group-[.toaster]:border-ods-border group-[.toaster]:shadow-lg",
16
+ "group toast group-[.toaster]:bg-ods-card 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-inverted",
19
+ "group-[.toast]:bg-ods-accent group-[.toast]:text-ods-text-on-accent",
20
20
  cancelButton:
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",
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",
24
24
  },
25
25
  }}
26
26
  {...props}
@@ -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-sm font-medium", isActive ? "text-primary" : "text-muted-foreground")}>
68
+ <span className={cn("text-h6", 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-base font-medium",
78
+ "text-h6",
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-sm", isActive ? "text-muted-foreground" : "text-muted-foreground/60")}>
86
+ <p className={cn("text-h6", isActive ? "text-muted-foreground" : "text-muted-foreground/60")}>
87
87
  {description}
88
88
  </p>
89
89
  )}
@@ -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-xs font-['DM_Sans'] mt-1"
198
+ className="text-ods-error text-h6 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-base">
322
+ <p className="text-ods-error text-h6">
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-xs font-medium text-ods-text-secondary uppercase tracking-wider">
137
+ <p className="text-h5 text-ods-text-secondary">
138
138
  Your Current Tickets
139
139
  </p>
140
- <div className="flex items-center gap-3 text-xs text-ods-text-secondary">
140
+ <div className="flex items-center gap-3 text-h6 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-xs font-medium text-ods-text-secondary mb-2 uppercase tracking-wider">
115
+ <p className="text-h5 text-ods-text-secondary mb-2">
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-attention-red-error bg-ods-attention-red-error-secondary px-3 py-2 text-sm text-ods-attention-red-error"
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"
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-xs font-medium uppercase tracking-wider text-ods-attention-red-error hover:bg-ods-attention-red-error-secondary border-transparent"
591
+ className="ml-auto px-2 py-0.5 text-h6 uppercase text-ods-error hover:bg-ods-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-xs">
629
- <span className="text-ods-text-secondary uppercase tracking-wider font-medium">
628
+ <div className="flex items-center gap-2 text-h6">
629
+ <span className="text-h5 text-ods-text-secondary">
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-2xl font-semibold text-ods-text-primary mb-2">
86
+ <h2 className="text-h2 text-ods-text-primary mb-2">
87
87
  Need Support?
88
88
  </h2>
89
- <p className="text-ods-text-secondary text-sm">
89
+ <p className="text-ods-text-secondary text-h6">
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-sm text-ods-error">
94
+ <p className="mt-4 text-h6 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-sm font-medium text-ods-text-primary mb-1"
104
+ className="block text-h6 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-sm font-medium text-ods-text-primary mb-1"
122
+ className="block text-h6 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-xs text-right ${
137
+ className={`mt-1 text-h6 text-right ${
138
138
  overCap ? 'text-ods-error' : 'text-ods-text-secondary'
139
139
  }`}
140
140
  >
@@ -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-surface"
38
+ containerClassName="p-4 rounded-lg bg-ods-bg-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 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
27
+ "flex flex-1 items-center justify-between py-4 text-h6 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-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
46
+ "overflow-hidden text-h6 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-system-greys-soft-grey h-1 w-full" />;
174
+ return <div className="bg-ods-divider 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-black/80 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-ods-overlay 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-lg font-semibold", className)}
82
+ className={cn("text-h3", 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-sm text-muted-foreground", className)}
94
+ className={cn("text-h6 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-[var(--ods-attention-yellow-warning-secondary)] text-[var(--ods-attention-yellow-warning)] [&>svg]:text-[var(--ods-attention-yellow-warning)]",
17
+ "border-transparent bg-ods-warning-secondary text-ods-warning [&>svg]:text-ods-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-sm [&_p]:leading-relaxed", className)}
57
+ className={cn("text-h6 [&_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="font-['DM_Sans'] font-bold text-base">Add Domain</span>
132
+ <span className="text-h6 font-bold">Add Domain</span>
133
133
  </button>
134
134
 
135
135
  {/* Error message */}
136
136
  {displayError && (
137
- <p className="text-sm text-ods-error">{displayError}</p>
137
+ <p className="text-h6 text-ods-error">{displayError}</p>
138
138
  )}
139
139
 
140
140
  {/* Helper text */}
141
141
  {helperText && !displayError && (
142
- <p className="text-sm text-ods-text-secondary">{helperText}</p>
142
+ <p className="text-h6 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
- "font-mono text-[14px] font-medium leading-5 text-ods-text-secondary uppercase tracking-[-0.28px]",
488
+ "text-h5 text-ods-text-secondary",
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-[14px]">
572
+ <div className="px-3 py-2 text-ods-text-secondary text-h6">
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-[14px]">
596
+ <div className="px-3 py-2 text-ods-text-secondary text-h6">
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-xs 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-h6 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-green-500 text-white hover:bg-green-600", // Add this line
17
+ success: "border-transparent bg-ods-success text-ods-text-on-accent hover:bg-ods-success-hover",
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 tracking-[-0.64px] text-ods-text-primary">
45
+ <h3 className="text-h2 text-ods-text-primary">
46
46
  {item.title}
47
47
  </h3>
48
48
 
49
49
  {/* Description */}
50
- <p className="font-['DM_Sans'] font-normal text-[16px] leading-[1.5] text-ods-text-secondary">
50
+ <p className="text-h6 text-ods-text-secondary">
51
51
  {item.description}
52
52
  </p>
53
53