@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
@@ -39,7 +39,7 @@ const buttonVariants = cva(
39
39
  // mono-uppercase control style of "small" nor a heavier weight.
40
40
  // Pinned h-6 across breakpoints (24px = the WCAG 2.5.8 target-size
41
41
  // floor) with horizontal-dominant padding and a 14px glyph.
42
- compact: "py-0 px-[var(--spacing-system-sf)] text-h6 font-normal h-6 [&_svg]:h-3.5 [&_svg]:w-3.5",
42
+ compact: "py-0 px-[var(--spacing-system-sf)] font-body font-normal text-[13px] md:text-sm leading-snug h-6 [&_svg]:h-3.5 [&_svg]:w-3.5",
43
43
  icon: "p-[var(--spacing-system-sf)] h-11 w-11 md:h-12 md:w-12 [&_svg]:h-4 [&_svg]:w-4 md:[&_svg]:h-6 md:[&_svg]:w-6",
44
44
  // Quiet 32px icon target with a 16px glyph, fixed across breakpoints
45
45
  // (Carbon ghost sm / Primer medium / shadcn icon-sm all pin 32px;
@@ -38,7 +38,7 @@ const CardTitle = React.forwardRef<
38
38
  <div
39
39
  ref={ref}
40
40
  className={cn(
41
- "text-h2",
41
+ "text-2xl font-semibold leading-none tracking-tight",
42
42
  className
43
43
  )}
44
44
  {...props}
@@ -52,7 +52,7 @@ const CardDescription = React.forwardRef<
52
52
  >(({ className, ...props }, ref) => (
53
53
  <div
54
54
  ref={ref}
55
- className={cn("text-h6 text-muted-foreground", className)}
55
+ className={cn("text-sm text-muted-foreground", className)}
56
56
  {...props}
57
57
  />
58
58
  ))
@@ -98,8 +98,8 @@ export function CardHorizontal({ icon, title, description, className = '', borde
98
98
  >
99
99
  <div className="w-5 h-5 flex-shrink-0">{icon}</div>
100
100
  <div className="flex flex-col min-w-0">
101
- <span className="text-h6 text-ods-text-primary mb-0.5 text-left">{title}</span>
102
- <span className="text-h6 text-ods-text-secondary text-left">{description}</span>
101
+ <span className="font-medium text-sm md:text-sm text-ods-text-primary leading-tight mb-0.5 text-left">{title}</span>
102
+ <span className="text-xs md:text-sm text-ods-text-secondary leading-tight text-left">{description}</span>
103
103
  </div>
104
104
  </div>
105
105
  );
@@ -56,7 +56,7 @@ const CheckboxWithDescription = React.forwardRef<
56
56
  >
57
57
  {title}
58
58
  </Label>
59
- <span className="text-h6 text-ods-text-secondary">
59
+ <span className="text-sm text-ods-text-secondary leading-relaxed">
60
60
  {description}
61
61
  </span>
62
62
  </div>
@@ -24,7 +24,7 @@ const ChevronButton = React.forwardRef<HTMLButtonElement, ChevronButtonProps>(
24
24
  return (
25
25
  <button
26
26
  className={cn(
27
- "inline-flex items-center justify-center rounded-md text-h6 ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
27
+ "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
28
28
  "h-10 px-4 py-2",
29
29
  className
30
30
  )}
@@ -38,18 +38,18 @@ export function ContentLoader({
38
38
  }: ContentLoaderProps) {
39
39
  const renderCardSkeleton = () => (
40
40
  <div className="animate-pulse">
41
- {showTitle && <div className="h-8 w-64 bg-ods-skeleton rounded mb-6" />}
41
+ {showTitle && <div className="h-8 w-64 bg-ods-bg-secondary rounded mb-6" />}
42
42
  <div className="bg-ods-card border border-ods-border rounded-lg p-6">
43
43
  <div className="grid grid-cols-1 md:grid-cols-4 gap-6 mb-6">
44
44
  {Array.from({ length: items }).map((_, i) => (
45
45
  <div key={i}>
46
- <div className="h-4 w-20 bg-ods-skeleton rounded mb-2" />
47
- <div className="h-6 w-32 bg-ods-skeleton rounded" />
46
+ <div className="h-4 w-20 bg-ods-bg-secondary rounded mb-2" />
47
+ <div className="h-6 w-32 bg-ods-bg-secondary rounded" />
48
48
  </div>
49
49
  ))}
50
50
  </div>
51
51
  <div className="border-t border-ods-border pt-4">
52
- <div className="h-4 w-64 bg-ods-skeleton rounded" />
52
+ <div className="h-4 w-64 bg-ods-bg-secondary rounded" />
53
53
  </div>
54
54
  </div>
55
55
  </div>
@@ -62,8 +62,8 @@ export function ContentLoader({
62
62
  <div className="space-y-4">
63
63
  {Array.from({ length: items }).map((_, i) => (
64
64
  <div key={i}>
65
- <div className="h-4 bg-ods-skeleton rounded w-32 mb-2" />
66
- <div className="h-10 bg-ods-skeleton rounded" />
65
+ <div className="h-4 bg-ods-bg-secondary rounded w-32 mb-2" />
66
+ <div className="h-10 bg-ods-bg-secondary rounded" />
67
67
  </div>
68
68
  ))}
69
69
  </div>
@@ -73,22 +73,22 @@ export function ContentLoader({
73
73
 
74
74
  const renderDetailSkeleton = () => (
75
75
  <div className="animate-pulse">
76
- {showTitle && <div className="h-8 w-64 bg-ods-skeleton rounded mb-6" />}
76
+ {showTitle && <div className="h-8 w-64 bg-ods-bg-secondary rounded mb-6" />}
77
77
  <div className="bg-ods-card border border-ods-border rounded-lg p-6">
78
78
  <div className="grid grid-cols-1 lg:grid-cols-3 gap-6">
79
79
  <div className="lg:col-span-2">
80
- <div className="h-64 bg-ods-skeleton rounded mb-4" />
80
+ <div className="h-64 bg-ods-bg-secondary rounded mb-4" />
81
81
  <div className="space-y-2">
82
82
  {Array.from({ length: 3 }).map((_, i) => (
83
- <div key={i} className="h-4 bg-ods-skeleton rounded" />
83
+ <div key={i} className="h-4 bg-ods-bg-secondary rounded" />
84
84
  ))}
85
85
  </div>
86
86
  </div>
87
87
  <div>
88
- <div className="h-32 bg-ods-skeleton rounded mb-4" />
88
+ <div className="h-32 bg-ods-bg-secondary rounded mb-4" />
89
89
  <div className="space-y-2">
90
90
  {Array.from({ length: items }).map((_, i) => (
91
- <div key={i} className="h-3 bg-ods-skeleton rounded" />
91
+ <div key={i} className="h-3 bg-ods-bg-secondary rounded" />
92
92
  ))}
93
93
  </div>
94
94
  </div>
@@ -99,16 +99,16 @@ export function ContentLoader({
99
99
 
100
100
  const renderListSkeleton = () => (
101
101
  <div className="animate-pulse space-y-3">
102
- {showTitle && <div className="h-8 w-64 bg-ods-skeleton rounded mb-6" />}
102
+ {showTitle && <div className="h-8 w-64 bg-ods-bg-secondary rounded mb-6" />}
103
103
  {Array.from({ length: items }).map((_, i) => (
104
104
  <div key={i} className="bg-ods-card border border-ods-border rounded-lg p-4">
105
105
  <div className="flex items-center gap-4">
106
- <div className="h-12 w-12 bg-ods-skeleton rounded" />
106
+ <div className="h-12 w-12 bg-ods-bg-secondary rounded" />
107
107
  <div className="flex-1">
108
- <div className="h-4 bg-ods-skeleton rounded w-3/4 mb-2" />
109
- <div className="h-3 bg-ods-skeleton rounded w-1/2" />
108
+ <div className="h-4 bg-ods-bg-secondary rounded w-3/4 mb-2" />
109
+ <div className="h-3 bg-ods-bg-secondary rounded w-1/2" />
110
110
  </div>
111
- <div className="h-8 w-20 bg-ods-skeleton rounded" />
111
+ <div className="h-8 w-20 bg-ods-bg-secondary rounded" />
112
112
  </div>
113
113
  </div>
114
114
  ))}
@@ -92,7 +92,7 @@ export function CursorPagination({
92
92
  >
93
93
  {/* Info text */}
94
94
  {showInfo && (
95
- <div className="text-h6 text-ods-text-secondary">
95
+ <div className="text-sm text-ods-text-secondary">
96
96
  {displayText || <span>&nbsp;</span>}
97
97
  </div>
98
98
  )}
@@ -209,7 +209,7 @@ function DatePickerCalendar({
209
209
  weekday: cn(
210
210
  cellOuter,
211
211
  "flex items-center justify-center",
212
- "text-h6 text-ods-text-secondary"
212
+ "text-[14px] font-medium leading-5 text-ods-text-secondary"
213
213
  ),
214
214
  week: "flex",
215
215
  day: cn(
@@ -248,7 +248,7 @@ function DatePickerCalendar({
248
248
  "range-end !bg-ods-accent !text-ods-card !font-bold hover:!bg-ods-accent",
249
249
  hasCompleteRange ? "!rounded-r-[6px] !rounded-l-none" : "!rounded-[6px]"
250
250
  ),
251
- range_middle: "range-middle !bg-ods-open-yellow-light !text-ods-card !font-medium !rounded-none hover:!bg-ods-open-yellow-light",
251
+ range_middle: "range-middle !bg-[var(--ods-open-yellow-light)] !text-ods-card !font-medium !rounded-none hover:!bg-[var(--ods-open-yellow-light)]",
252
252
  };
253
253
 
254
254
  const [month, setMonth] = React.useState<Date>(
@@ -35,12 +35,12 @@ export function DeviceCardCompact({
35
35
  {...props}
36
36
  >
37
37
  {hasName && (
38
- <span className="text-h6 text-ods-text-primary truncate" title={deviceName}>
38
+ <span className="font-['DM_Sans'] font-medium text-[16px] leading-[20px] text-ods-text-primary truncate" title={deviceName}>
39
39
  {deviceName}
40
40
  </span>
41
41
  )}
42
42
  {hasOrg && (
43
- <span className="text-h6 text-ods-text-secondary truncate" title={organization}>
43
+ <span className="font-['DM_Sans'] font-medium text-[14px] leading-[18px] text-ods-text-secondary truncate" title={organization}>
44
44
  {organization}
45
45
  </span>
46
46
  )}
@@ -110,7 +110,7 @@ export function DeviceCard({
110
110
  </span>
111
111
  </div>
112
112
  {device.organization && (
113
- <span className="text-h6 text-ods-text-secondary truncate" title={device.organization}>
113
+ <span className="font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate" title={device.organization}>
114
114
  {device.organization}
115
115
  </span>
116
116
  )}
@@ -141,7 +141,7 @@ export function DeviceCard({
141
141
  className="flex items-center justify-center px-4 py-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors"
142
142
  onClick={(e) => { e.stopPropagation(); action.onClick?.() }}
143
143
  >
144
- <span className="text-h3 text-ods-text-primary text-nowrap">
144
+ <span className="text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]">
145
145
  {action.label}
146
146
  </span>
147
147
  </div>
@@ -162,7 +162,7 @@ export function DeviceCard({
162
162
  />
163
163
  )}
164
164
  {device.lastSeen && (
165
- <span className="flex-1 text-h6 text-ods-text-secondary truncate">
165
+ <span className="flex-1 font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate">
166
166
  Last Seen: {formatLastSeen(device.lastSeen)}
167
167
  </span>
168
168
  )}
@@ -21,7 +21,7 @@ const DialogOverlay = React.forwardRef<
21
21
  <DialogPrimitive.Overlay
22
22
  ref={ref}
23
23
  className={cn(
24
- "fixed inset-0 z-[9998] bg-ods-overlay backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
24
+ "fixed inset-0 z-[9998] bg-black/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
25
25
  className,
26
26
  )}
27
27
  {...props}
@@ -69,7 +69,7 @@ const DialogTitle = React.forwardRef<
69
69
  >(({ className, ...props }, ref) => (
70
70
  <DialogPrimitive.Title
71
71
  ref={ref}
72
- className={cn("text-h3", className)}
72
+ className={cn("text-lg font-semibold leading-none tracking-tight", className)}
73
73
  {...props}
74
74
  />
75
75
  ))
@@ -79,7 +79,7 @@ const DialogDescription = React.forwardRef<
79
79
  React.ElementRef<typeof DialogPrimitive.Description>,
80
80
  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>
81
81
  >(({ className, ...props }, ref) => (
82
- <DialogPrimitive.Description ref={ref} className={cn("text-h6 text-muted-foreground", className)} {...props} />
82
+ <DialogPrimitive.Description ref={ref} className={cn("text-sm text-muted-foreground", className)} {...props} />
83
83
  ))
84
84
  DialogDescription.displayName = DialogPrimitive.Description.displayName
85
85
 
@@ -11,7 +11,7 @@ import { useHeaderHeight } from "../../hooks/ui/use-header-height"
11
11
  /** Unified overlay backdrop — dimmed, no blur. Single source of truth for
12
12
  * every full-screen backdrop (Drawer, AppLayoutDrawer, MobileBurgerMenu,
13
13
  * TimeTracker popover) so all panels dim the page identically. */
14
- const OVERLAY_BACKDROP_CLASS = "bg-ods-overlay"
14
+ const OVERLAY_BACKDROP_CLASS = "bg-black/50"
15
15
 
16
16
  const Drawer = DialogPrimitive.Root
17
17
 
@@ -316,7 +316,7 @@ function DrawerResizeHandle({
316
316
  <div
317
317
  aria-hidden
318
318
  className={cn(
319
- "rounded-full bg-ods-bg-surface",
319
+ "rounded-full bg-[var(--system-greys-soft-grey,#3A3A3A)]",
320
320
  gripClass,
321
321
  )}
322
322
  />
@@ -495,7 +495,7 @@ const DrawerTitle = React.forwardRef<
495
495
  <DialogPrimitive.Title
496
496
  ref={ref}
497
497
  className={cn(
498
- "min-w-0 flex-1 break-words text-h3 text-ods-text-primary",
498
+ "min-w-0 flex-1 break-words font-sans text-lg font-bold leading-6 tracking-[-0.36px] text-ods-text-primary",
499
499
  className
500
500
  )}
501
501
  {...props}
@@ -520,7 +520,7 @@ const DrawerDescription = React.forwardRef<
520
520
  <DialogPrimitive.Description
521
521
  ref={ref}
522
522
  className={cn(
523
- "min-w-0 break-words text-h6 text-ods-text-secondary",
523
+ "min-w-0 break-words font-sans text-sm font-medium leading-5 text-ods-text-secondary",
524
524
  className
525
525
  )}
526
526
  {...props}
@@ -28,7 +28,7 @@ const DropdownMenuSubTrigger = React.forwardRef<
28
28
  <DropdownMenuPrimitive.SubTrigger
29
29
  ref={ref}
30
30
  className={cn(
31
- "flex cursor-pointer gap-2 select-none items-center rounded-sm px-2 py-1.5 text-h6 outline-none hover:bg-ods-bg-hover focus:bg-ods-bg-hover data-[state=open]:bg-ods-bg-hover [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
31
+ "flex cursor-pointer gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-ods-bg-hover focus:bg-ods-bg-hover data-[state=open]:bg-ods-bg-hover [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
32
32
  inset && "pl-8",
33
33
  className
34
34
  )}
@@ -89,7 +89,7 @@ const DropdownMenuItem = React.forwardRef<
89
89
  <DropdownMenuPrimitive.Item
90
90
  ref={ref}
91
91
  className={cn(
92
- "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-h6 outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
92
+ "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-base outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
93
93
  inset && "pl-8",
94
94
  className
95
95
  )}
@@ -105,7 +105,7 @@ const DropdownMenuCheckboxItem = React.forwardRef<
105
105
  <DropdownMenuPrimitive.CheckboxItem
106
106
  ref={ref}
107
107
  className={cn(
108
- "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
108
+ "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
109
109
  className
110
110
  )}
111
111
  checked={checked}
@@ -129,7 +129,7 @@ const DropdownMenuRadioItem = React.forwardRef<
129
129
  <DropdownMenuPrimitive.RadioItem
130
130
  ref={ref}
131
131
  className={cn(
132
- "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
132
+ "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
133
133
  className
134
134
  )}
135
135
  {...props}
@@ -153,7 +153,7 @@ const DropdownMenuLabel = React.forwardRef<
153
153
  <DropdownMenuPrimitive.Label
154
154
  ref={ref}
155
155
  className={cn(
156
- "px-2 py-1.5 text-h6 font-semibold text-ods-text-secondary",
156
+ "px-2 py-1.5 text-sm font-semibold text-ods-text-secondary",
157
157
  inset && "pl-8",
158
158
  className
159
159
  )}
@@ -180,7 +180,7 @@ const DropdownMenuShortcut = ({
180
180
  }: React.HTMLAttributes<HTMLSpanElement>) => {
181
181
  return (
182
182
  <span
183
- className={cn("ml-auto text-h6 text-ods-text-secondary opacity-60", className)}
183
+ className={cn("ml-auto text-xs tracking-widest text-ods-text-secondary opacity-60", className)}
184
184
  {...props}
185
185
  />
186
186
  )
@@ -37,17 +37,17 @@ export function ErrorState({
37
37
  // -secondary tokens, NOT `/20` alpha modifiers: the ods colors are
38
38
  // hex CSS vars, and Tailwind 3.x can't inject alpha into those —
39
39
  // the modifier silently produced no background at all.
40
- bg: 'bg-ods-error-secondary',
41
- border: 'border-ods-error',
42
- text: 'text-ods-error',
43
- icon: 'text-ods-error'
40
+ bg: 'bg-ods-attention-red-error-secondary',
41
+ border: 'border-ods-attention-red-error',
42
+ text: 'text-ods-attention-red-error',
43
+ icon: 'text-ods-attention-red-error'
44
44
  }
45
45
  case 'warning':
46
46
  return {
47
- bg: 'bg-ods-warning-secondary',
48
- border: 'border-ods-warning',
49
- text: 'text-ods-warning',
50
- icon: 'text-ods-warning'
47
+ bg: 'bg-ods-attention-yellow-warning-secondary',
48
+ border: 'border-ods-attention-yellow-warning',
49
+ text: 'text-ods-attention-yellow-warning',
50
+ icon: 'text-ods-attention-yellow-warning'
51
51
  }
52
52
  case 'info':
53
53
  return {
@@ -77,7 +77,7 @@ export function ErrorState({
77
77
  <h3 className={cn("font-semibold mb-1", styles.text)}>
78
78
  {title}
79
79
  </h3>
80
- <p className={cn("text-h6", styles.text)}>
80
+ <p className={cn("text-sm", styles.text)}>
81
81
  {message}
82
82
  </p>
83
83
  {(showRetry || showHome) && (
@@ -75,7 +75,7 @@ export function FadePreview({
75
75
  <button
76
76
  type="button"
77
77
  onClick={() => setExpanded(!expanded)}
78
- className="mt-4 flex items-center gap-1.5 text-h6 text-ods-text-secondary hover:text-ods-accent transition-colors duration-200"
78
+ className="mt-4 flex items-center gap-1.5 text-sm text-ods-text-secondary hover:text-ods-accent transition-colors duration-200"
79
79
  >
80
80
  <span>{expanded ? 'Show less' : `Show ${hiddenCount} more`}</span>
81
81
  <ChevronDown
@@ -17,7 +17,7 @@ export interface FieldWrapperProps {
17
17
 
18
18
  const errorVariantClasses = {
19
19
  error: "text-ods-error",
20
- warning: "text-ods-warning",
20
+ warning: "text-[var(--ods-attention-yellow-warning)]",
21
21
  success: "text-ods-success",
22
22
  muted: "text-ods-text-secondary",
23
23
  } as const
@@ -12,7 +12,7 @@ export function FileManagerBreadcrumb({
12
12
  }: FileManagerBreadcrumbProps) {
13
13
  return (
14
14
  <nav className={cn(
15
- 'flex flex-wrap items-center gap-x-1 gap-y-1 text-h6 break-words',
15
+ 'flex flex-wrap items-center gap-x-1 gap-y-1 text-sm break-words',
16
16
  className
17
17
  )}>
18
18
  {items.map((item, index) => (
@@ -23,7 +23,7 @@ export function FileManagerBreadcrumb({
23
23
  <button
24
24
  onClick={() => onItemClick?.(item.path)}
25
25
  className={cn(
26
- 'shrink-0 px-1 py-0.5 rounded hover:bg-ods-bg-hover transition-colors',
26
+ 'shrink-0 px-1 py-0.5 rounded hover:bg-ods-bg-secondary transition-colors',
27
27
  'text-ods-text-primary hover:text-ods-accent text-left break-all',
28
28
  index === items.length - 1 && 'font-medium'
29
29
  )}
@@ -17,15 +17,15 @@ export function FileManagerEmpty({
17
17
  'flex flex-col items-center justify-center py-20 px-4',
18
18
  className
19
19
  )}>
20
- <div className="p-4 bg-ods-bg-surface rounded-full mb-6">
20
+ <div className="p-4 bg-ods-bg-secondary rounded-full mb-6">
21
21
  <FolderOpen className="h-12 w-12 text-ods-text-tertiary" />
22
22
  </div>
23
23
 
24
- <h3 className="text-h4 text-ods-text-primary mb-2">
24
+ <h3 className="text-lg font-medium text-ods-text-primary mb-2">
25
25
  {message}
26
26
  </h3>
27
27
 
28
- <p className="text-h6 text-ods-text-secondary text-center max-w-md mb-6">
28
+ <p className="text-sm text-ods-text-secondary text-center max-w-md mb-6">
29
29
  {description}
30
30
  </p>
31
31
 
@@ -50,22 +50,22 @@ export function FileManagerSkeleton({
50
50
  <div className="flex-1 min-h-0">
51
51
  <div className="bg-ods-bg border border-ods-border rounded-lg flex flex-col">
52
52
  {/* Table header */}
53
- <div className="flex items-center h-12 px-4 bg-ods-bg-surface border-b border-ods-border rounded-t-lg">
53
+ <div className="flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg">
54
54
  {/* Checkbox */}
55
55
  <div className="mr-4">
56
56
  <Skeleton className="h-5 w-5 rounded" />
57
57
  </div>
58
58
 
59
59
  {/* Column headers */}
60
- <div className="flex items-center gap-3 flex-1 min-w-0 text-h5 text-ods-text-secondary">
60
+ <div className="flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary">
61
61
  NAME
62
62
  </div>
63
63
 
64
- <div className="w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary">
64
+ <div className="w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary">
65
65
  SIZE
66
66
  </div>
67
67
 
68
- <div className="w-36 shrink-0 pl-4 text-h5 text-ods-text-secondary">
68
+ <div className="w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary">
69
69
  EDITED
70
70
  </div>
71
71
 
@@ -48,8 +48,8 @@ export function FileManagerTableRow({
48
48
  <div
49
49
  className={cn(
50
50
  'bg-ods-card group flex items-center h-16 px-4 border-ods-border',
51
- 'hover:bg-ods-bg-hover transition-colors cursor-pointer',
52
- isSelected && 'bg-ods-bg-surface',
51
+ 'hover:bg-ods-bg-secondary transition-colors cursor-pointer',
52
+ isSelected && 'bg-ods-bg-secondary',
53
53
  className
54
54
  )}
55
55
  onClick={handleRowClick}
@@ -76,22 +76,22 @@ export function FileManagerTableRow({
76
76
  size="md"
77
77
  />
78
78
  <div className="flex flex-col min-w-0">
79
- <span className="text-h6 text-ods-text-primary truncate" title={file.name}>
79
+ <span className="text-sm text-ods-text-primary truncate" title={file.name}>
80
80
  {file.name}
81
81
  </span>
82
82
  {showPath && file.path && (
83
- <span className="text-h6 text-ods-text-secondary truncate" title={file.path}>
83
+ <span className="text-xs text-ods-text-secondary truncate" title={file.path}>
84
84
  {file.path}
85
85
  </span>
86
86
  )}
87
87
  </div>
88
88
  </div>
89
89
 
90
- <div className="w-24 shrink-0 pr-4 text-h6 text-ods-text-secondary">
90
+ <div className="w-24 shrink-0 pr-4 text-sm text-ods-text-secondary">
91
91
  {file.size || ''}
92
92
  </div>
93
-
94
- <div className="w-36 shrink-0 pl-4 text-h6 text-ods-text-secondary">
93
+
94
+ <div className="w-36 shrink-0 pl-4 text-sm text-ods-text-secondary">
95
95
  {file.modified}
96
96
  </div>
97
97
 
@@ -76,22 +76,22 @@ export function FileManagerTable({
76
76
  return (
77
77
  <div className={cn('bg-ods-bg border border-ods-border rounded-lg flex flex-col', className)}>
78
78
  {/* Table header */}
79
- <div className="flex items-center h-12 px-4 bg-ods-bg-surface border-b border-ods-border rounded-t-lg">
79
+ <div className="flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg">
80
80
  {showCheckboxes && (
81
81
  <div className="mr-4">
82
82
  <Skeleton className="h-5 w-5 rounded" />
83
83
  </div>
84
84
  )}
85
85
 
86
- <div className="flex items-center gap-3 flex-1 min-w-0 text-h5 text-ods-text-secondary">
86
+ <div className="flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary">
87
87
  NAME
88
88
  </div>
89
89
 
90
- <div className="w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary">
90
+ <div className="w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary">
91
91
  SIZE
92
92
  </div>
93
93
 
94
- <div className="w-36 shrink-0 pl-4 text-h5 text-ods-text-secondary">
94
+ <div className="w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary">
95
95
  EDITED
96
96
  </div>
97
97
 
@@ -153,7 +153,7 @@ export function FileManagerTable({
153
153
  className={cn('bg-ods-bg border border-ods-border rounded-lg flex flex-col', className)}
154
154
  style={tableHeight ? { height: `${tableHeight}px` } : undefined}
155
155
  >
156
- <div className="flex items-center h-12 px-4 bg-ods-bg-surface border-b border-ods-border rounded-t-lg">
156
+ <div className="flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg">
157
157
  {showCheckboxes && (
158
158
  <div className="mr-4">
159
159
  <Checkbox
@@ -164,15 +164,15 @@ export function FileManagerTable({
164
164
  </div>
165
165
  )}
166
166
 
167
- <div className="flex items-center gap-3 flex-1 min-w-0 text-h5 text-ods-text-secondary">
167
+ <div className="flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary">
168
168
  NAME
169
169
  </div>
170
170
 
171
- <div className="w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary">
171
+ <div className="w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary">
172
172
  SIZE
173
173
  </div>
174
174
 
175
- <div className="w-36 shrink-0 pl-4 text-h5 text-ods-text-secondary">
175
+ <div className="w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary">
176
176
  EDITED
177
177
  </div>
178
178
 
@@ -329,21 +329,21 @@ export function FileUpload({
329
329
  <FileIcon className="size-6 text-ods-text-secondary" />
330
330
  </div>
331
331
  <div className="flex-1 min-w-0">
332
- <p className="text-h4 text-ods-text-primary truncate" title={entry.fileName}>
332
+ <p className="text-heading-4 font-medium text-ods-text-primary truncate" title={entry.fileName}>
333
333
  {entry.fileName}
334
334
  </p>
335
335
  <div className="flex items-center gap-[var(--spacing-system-xsf)]">
336
- <span className="text-h6 text-ods-text-secondary">
336
+ <span className="text-heading-5 text-ods-text-secondary">
337
337
  {formatFileSize(entry.fileSize)}
338
338
  </span>
339
339
  {entry.status === "uploading" && (
340
- <span className="flex items-center gap-[var(--spacing-system-xxs)] text-h6 text-ods-text-secondary">
340
+ <span className="flex items-center gap-[var(--spacing-system-xxs)] text-heading-5 text-ods-text-secondary">
341
341
  <Loader2 className="size-3 animate-spin" />
342
342
  Uploading...
343
343
  </span>
344
344
  )}
345
345
  {entry.status === "error" && (
346
- <span className="text-h6 text-ods-error">
346
+ <span className="text-heading-5 text-ods-error">
347
347
  {entry.error || "Upload failed"}
348
348
  </span>
349
349
  )}
@@ -380,10 +380,10 @@ export function FileUpload({
380
380
  <FileIcon className="size-6 text-ods-text-secondary" />
381
381
  </div>
382
382
  <div className="flex-1 min-w-0">
383
- <p className="text-h4 text-ods-text-primary truncate" title={file.name}>
383
+ <p className="text-heading-4 font-medium text-ods-text-primary truncate" title={file.name}>
384
384
  {file.name}
385
385
  </p>
386
- <p className="text-h6 text-ods-text-secondary">
386
+ <p className="text-heading-5 text-ods-text-secondary">
387
387
  {formatFileSize(file.size)}
388
388
  </p>
389
389
  </div>
@@ -424,9 +424,9 @@ export function FileUpload({
424
424
  <div className="flex items-center p-[var(--spacing-system-sf)] rounded-full bg-ods-card border border-ods-border shrink-0">
425
425
  {icon || <ImagePlusIcon className="size-6 text-ods-text-primary" />}
426
426
  </div>
427
- <div className="flex flex-1 flex-col min-w-0">
428
- <span className="text-h4 text-ods-text-primary">{label}</span>
429
- <span className="text-h6 text-ods-text-secondary">{description}</span>
427
+ <div className="flex flex-1 flex-col font-['DM_Sans'] font-medium min-w-0">
428
+ <span className="text-heading-4 text-ods-text-primary">{label}</span>
429
+ <span className="text-heading-5 text-ods-text-secondary">{description}</span>
430
430
  </div>
431
431
  </button>
432
432
  )}
@@ -63,7 +63,7 @@ export function FilterPillRow({
63
63
  </Button>
64
64
  ))}
65
65
  {countLabel && (
66
- <div className="ml-auto text-h6 text-ods-text-secondary shrink-0">
66
+ <div className="ml-auto text-[12px] font-['DM_Sans'] text-ods-text-secondary shrink-0">
67
67
  {countLabel}
68
68
  </div>
69
69
  )}
@@ -175,7 +175,7 @@ export function FloatingTooltip({
175
175
  >
176
176
  {/* Scroll wrapper — `min-h-0` lets it shrink below content height inside
177
177
  the max-height cap set by the `size` middleware, so tall content scrolls. */}
178
- <div className="min-h-0 overflow-y-auto px-3 py-2.5 text-h6 text-ods-text-primary whitespace-pre-line">
178
+ <div className="min-h-0 overflow-y-auto px-3 py-2.5 text-sm leading-relaxed text-ods-text-primary whitespace-pre-line">
179
179
  {parsedContent}
180
180
  </div>
181
181
  {/* Arrow element */}