@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
@@ -1,60 +0,0 @@
1
- <!-- source-hash: f32246d114b706570b821cefac3455d9 -->
2
- A custom client-side Dialog component system built without external libraries, providing a controlled modal overlay with backdrop blur, centered content panel, and composable sub-components.
3
-
4
- ## Key Components
5
-
6
- | Component | Description |
7
- |-----------|-------------|
8
- | `Dialog` | Root container; renders a full-screen backdrop when `open` is `true`, closes on overlay click |
9
- | `DialogTrigger` | Button wrapper to programmatically open the dialog |
10
- | `DialogPortal` | Passthrough wrapper for portaling children (inline, no actual portal) |
11
- | `DialogOverlay` | Standalone backdrop overlay with blur effect |
12
- | `DialogClose` | Generic close button element |
13
- | `DialogContent` | Centered modal panel (`z-[10000]`) with built-in close (`X`) icon button and click-stop propagation |
14
- | `DialogHeader` | Flex column layout for title/description grouping |
15
- | `DialogFooter` | Responsive footer with reversed column on mobile, row on desktop |
16
- | `DialogTitle` | Styled `<h2>` for the modal heading |
17
- | `DialogDescription` | Styled `<p>` for supporting modal text |
18
-
19
- ## Usage Example
20
-
21
- ```typescript
22
- import {
23
- Dialog,
24
- DialogContent,
25
- DialogHeader,
26
- DialogTitle,
27
- DialogDescription,
28
- DialogFooter,
29
- DialogTrigger,
30
- } from "./dialog"
31
-
32
- export function ConfirmModal() {
33
- const [open, setOpen] = React.useState(false)
34
-
35
- return (
36
- <>
37
- <DialogTrigger onClick={() => setOpen(true)}>
38
- Open Modal
39
- </DialogTrigger>
40
-
41
- <Dialog open={open} onOpenChange={setOpen}>
42
- <DialogContent onCloseClick={() => setOpen(false)}>
43
- <DialogHeader>
44
- <DialogTitle>Confirm Action</DialogTitle>
45
- <DialogDescription>
46
- Are you sure you want to proceed?
47
- </DialogDescription>
48
- </DialogHeader>
49
- <DialogFooter>
50
- <button onClick={() => setOpen(false)}>Cancel</button>
51
- <button onClick={() => setOpen(false)}>Confirm</button>
52
- </DialogFooter>
53
- </DialogContent>
54
- </Dialog>
55
- </>
56
- )
57
- }
58
- ```
59
-
60
- > **Note:** `DialogContent` uses `onCloseClick` (not the standard `onClose`) for the built-in `X` button handler. Backdrop clicks are handled by the root `Dialog` via `onOpenChange`.
@@ -1,51 +0,0 @@
1
- <!-- source-hash: bce1c12cc20621daf9a85c036a451097 -->
2
- A comprehensive dropdown menu component library built on top of Radix UI primitives with custom styling using the OpenFrame design system (ODS). Provides a complete set of accessible dropdown menu components including items, checkboxes, radio groups, submenus, and separators.
3
-
4
- ## Key Components
5
-
6
- - **DropdownMenu** - Root container component
7
- - **DropdownMenuTrigger** - Button that opens the menu
8
- - **DropdownMenuContent** - The dropdown panel with animation and positioning
9
- - **DropdownMenuItem** - Individual menu items with hover states
10
- - **DropdownMenuCheckboxItem** - Checkbox menu items with check indicators
11
- - **DropdownMenuRadioItem** - Radio button menu items for single selection
12
- - **DropdownMenuLabel** - Section headers within the menu
13
- - **DropdownMenuSeparator** - Visual dividers between menu sections
14
- - **DropdownMenuShortcut** - Keyboard shortcut display component
15
- - **DropdownMenuSub/SubContent/SubTrigger** - Nested submenu components
16
- - **DropdownMenuGroup/RadioGroup** - Logical grouping containers
17
-
18
- ## Usage Example
19
-
20
- ```typescript
21
- import {
22
- DropdownMenu,
23
- DropdownMenuContent,
24
- DropdownMenuItem,
25
- DropdownMenuLabel,
26
- DropdownMenuSeparator,
27
- DropdownMenuTrigger,
28
- DropdownMenuCheckboxItem,
29
- DropdownMenuShortcut,
30
- } from "./dropdown-menu"
31
-
32
- function UserMenu() {
33
- return (
34
- <DropdownMenu>
35
- <DropdownMenuTrigger>Open Menu</DropdownMenuTrigger>
36
- <DropdownMenuContent>
37
- <DropdownMenuLabel>My Account</DropdownMenuLabel>
38
- <DropdownMenuSeparator />
39
- <DropdownMenuItem>
40
- Profile
41
- <DropdownMenuShortcut>⌘P</DropdownMenuShortcut>
42
- </DropdownMenuItem>
43
- <DropdownMenuCheckboxItem checked={true}>
44
- Notifications
45
- </DropdownMenuCheckboxItem>
46
- <DropdownMenuItem>Logout</DropdownMenuItem>
47
- </DropdownMenuContent>
48
- </DropdownMenu>
49
- )
50
- }
51
- ```
@@ -1,40 +0,0 @@
1
- <!-- source-hash: 5d248f58ad416e0486c3eb74baeb29fc -->
2
- A styled, accessible HTML input component built with `React.forwardRef`, supporting error states and full HTML input attribute passthrough.
3
-
4
- ## Key Components
5
-
6
- - **`Input`** — Forwarded-ref input component with ODS (OpenFrame Design System) theming, focus/disabled states, hover animations, and optional error styling
7
- - **`InputProps`** — Extended interface adding an `invalid` boolean prop on top of standard `React.InputHTMLAttributes<HTMLInputElement>`
8
-
9
- ## Usage Example
10
-
11
- ```typescript
12
- import { Input } from "./input"
13
-
14
- // Basic usage
15
- <Input placeholder="Enter your email" type="email" />
16
-
17
- // With error state
18
- <Input
19
- type="text"
20
- invalid={true}
21
- placeholder="Invalid field"
22
- />
23
-
24
- // With ref forwarding
25
- const ref = React.useRef<HTMLInputElement>(null)
26
- <Input ref={ref} type="text" />
27
-
28
- // Disabled state
29
- <Input disabled placeholder="Not editable" />
30
- ```
31
-
32
- ## Styling Highlights
33
-
34
- | State | Applied Classes |
35
- |-------|----------------|
36
- | Default | `bg-ods-card border-ods-border text-ods-text-primary` |
37
- | Hover | `hover:border-ods-accent/30` |
38
- | Focus | `focus:border-ods-accent focus-visible:ring-ods-accent/20` |
39
- | Disabled | `disabled:cursor-not-allowed disabled:bg-ods-bg` |
40
- | Invalid | `border-red-500 focus-visible:ring-red-500` |
@@ -1,41 +0,0 @@
1
- <!-- source-hash: 23bab55c76644996a403e0958181e956 -->
2
- A React component that provides a styled form label built on top of Radix UI's Label primitive with consistent typography and styling.
3
-
4
- ## Key Components
5
-
6
- - **Label** - A forwardRef component that wraps `@radix-ui/react-label`
7
- - **labelVariants** - CVA variant configuration defining the label's visual styling
8
- - Accessibility features inherited from Radix UI Label primitive
9
-
10
- ## Usage Example
11
-
12
- ```typescript
13
- import { Label } from "./components/ui/label"
14
-
15
- function FormField() {
16
- return (
17
- <div>
18
- <Label htmlFor="email">Email Address</Label>
19
- <input
20
- id="email"
21
- type="email"
22
- placeholder="Enter your email"
23
- />
24
- </div>
25
- )
26
- }
27
-
28
- // With custom styling
29
- function CustomLabel() {
30
- return (
31
- <Label
32
- htmlFor="username"
33
- className="text-blue-600"
34
- >
35
- Username
36
- </Label>
37
- )
38
- }
39
- ```
40
-
41
- The component uses DM Sans font family with semibold weight, uppercase text transformation, and responsive text sizing. It automatically applies proper semantic labeling for form accessibility when used with the `htmlFor` attribute.
@@ -1,49 +0,0 @@
1
- <!-- source-hash: 1d6d763391c6c349742d108be28d7163 -->
2
- A comprehensive menubar component library built on Radix UI primitives with custom styling and enhanced functionality. Provides a complete set of accessible menubar components including triggers, items, separators, and submenus with built-in keyboard navigation and ARIA support.
3
-
4
- ## Key Components
5
-
6
- - **Menubar** - Root container component with horizontal layout and border styling
7
- - **MenubarTrigger** - Clickable trigger buttons that open menu content
8
- - **MenubarContent/MenubarSubContent** - Dropdown containers with portal rendering and animations
9
- - **MenubarItem** - Basic menu items with hover states and optional inset styling
10
- - **MenubarCheckboxItem** - Checkable items with check mark indicators
11
- - **MenubarRadioItem** - Radio button items with circle indicators for single selection
12
- - **MenubarLabel** - Non-interactive labels for grouping menu sections
13
- - **MenubarSeparator** - Visual dividers between menu sections
14
- - **MenubarShortcut** - Keyboard shortcut display component
15
- - **MenubarSubTrigger** - Items that trigger nested submenus with chevron icons
16
-
17
- ## Usage Example
18
-
19
- ```typescript
20
- import {
21
- Menubar,
22
- MenubarContent,
23
- MenubarItem,
24
- MenubarMenu,
25
- MenubarSeparator,
26
- MenubarShortcut,
27
- MenubarTrigger,
28
- } from "./menubar"
29
-
30
- function AppMenubar() {
31
- return (
32
- <Menubar>
33
- <MenubarMenu>
34
- <MenubarTrigger>File</MenubarTrigger>
35
- <MenubarContent>
36
- <MenubarItem>
37
- New File <MenubarShortcut>⌘N</MenubarShortcut>
38
- </MenubarItem>
39
- <MenubarItem>
40
- Open <MenubarShortcut>⌘O</MenubarShortcut>
41
- </MenubarItem>
42
- <MenubarSeparator />
43
- <MenubarItem>Exit</MenubarItem>
44
- </MenubarContent>
45
- </MenubarMenu>
46
- </Menubar>
47
- )
48
- }
49
- ```
@@ -1,44 +0,0 @@
1
- <!-- source-hash: 36c8899a20576854ae461e8c611427cc -->
2
- A React navigation menu component built on Radix UI primitives with styled variants and animations. Provides a complete set of components for building accessible dropdown navigation menus with smooth transitions and hover states.
3
-
4
- ## Key Components
5
-
6
- - **NavigationMenu** - Root container component with automatic viewport management
7
- - **NavigationMenuList** - Flex container for menu items with centered layout
8
- - **NavigationMenuItem** - Direct export of Radix primitive item component
9
- - **NavigationMenuTrigger** - Clickable trigger with chevron icon and rotation animation
10
- - **NavigationMenuContent** - Dropdown content panel with slide-in/fade animations
11
- - **NavigationMenuLink** - Direct export of Radix primitive link component
12
- - **NavigationMenuViewport** - Animated viewport container for dropdown content
13
- - **NavigationMenuIndicator** - Visual indicator showing active menu state
14
- - **navigationMenuTriggerStyle** - CVA style variant for consistent trigger styling
15
-
16
- ## Usage Example
17
-
18
- ```typescript
19
- import {
20
- NavigationMenu,
21
- NavigationMenuContent,
22
- NavigationMenuItem,
23
- NavigationMenuList,
24
- NavigationMenuTrigger,
25
- } from "./navigation-menu"
26
-
27
- function MainNav() {
28
- return (
29
- <NavigationMenu>
30
- <NavigationMenuList>
31
- <NavigationMenuItem>
32
- <NavigationMenuTrigger>Products</NavigationMenuTrigger>
33
- <NavigationMenuContent>
34
- <div className="p-6">
35
- <a href="/product-1">Product 1</a>
36
- <a href="/product-2">Product 2</a>
37
- </div>
38
- </NavigationMenuContent>
39
- </NavigationMenuItem>
40
- </NavigationMenuList>
41
- </NavigationMenu>
42
- )
43
- }
44
- ```
@@ -1,54 +0,0 @@
1
- <!-- source-hash: edcc0618a769c715daef264fcd0292ee -->
2
- Accessible, styled select/dropdown component built on Radix UI primitives with Flamingo ODS design tokens and smooth open/close animations.
3
-
4
- ## Key Components
5
-
6
- | Export | Description |
7
- |--------|-------------|
8
- | `Select` | Root component managing open/value state |
9
- | `SelectTrigger` | Styled button that opens the dropdown, includes `ChevronDown` icon |
10
- | `SelectContent` | Animated portal-rendered dropdown container with scroll support |
11
- | `SelectItem` | Individual option with a `Check` indicator when selected |
12
- | `SelectGroup` | Groups related items together |
13
- | `SelectLabel` | Section label within a group |
14
- | `SelectValue` | Displays the currently selected value in the trigger |
15
- | `SelectSeparator` | Horizontal divider between items or groups |
16
- | `SelectScrollUpButton` | Scroll control shown when content overflows upward |
17
- | `SelectScrollDownButton` | Scroll control shown when content overflows downward |
18
-
19
- ## Usage Example
20
-
21
- ```typescript
22
- import {
23
- Select,
24
- SelectContent,
25
- SelectGroup,
26
- SelectItem,
27
- SelectLabel,
28
- SelectSeparator,
29
- SelectTrigger,
30
- SelectValue,
31
- } from "@/components/ui/select"
32
-
33
- export function PrioritySelect() {
34
- return (
35
- <Select onValueChange={(value) => console.log(value)}>
36
- <SelectTrigger className="w-[200px]">
37
- <SelectValue placeholder="Select priority..." />
38
- </SelectTrigger>
39
- <SelectContent>
40
- <SelectGroup>
41
- <SelectLabel>Ticket Priority</SelectLabel>
42
- <SelectItem value="critical">Critical</SelectItem>
43
- <SelectItem value="high">High</SelectItem>
44
- <SelectSeparator />
45
- <SelectItem value="medium">Medium</SelectItem>
46
- <SelectItem value="low">Low</SelectItem>
47
- </SelectGroup>
48
- </SelectContent>
49
- </Select>
50
- )
51
- }
52
- ```
53
-
54
- > All sub-components forward refs and accept native Radix UI props, allowing full customization via `className` alongside ODS defaults.
@@ -1,58 +0,0 @@
1
- <!-- source-hash: b66af7d5956b3733b491a303d043d297 -->
2
- A comprehensive sidebar UI component system providing collapsible, responsive navigation panels with mobile drawer support, keyboard shortcuts, and multiple layout variants.
3
-
4
- ## Key Components
5
-
6
- | Component | Description |
7
- |-----------|-------------|
8
- | `SidebarProvider` | Context provider managing open/collapsed state, mobile detection, and cookie persistence |
9
- | `useSidebar` | Hook to access sidebar context (state, toggle, mobile status) |
10
- | `Sidebar` | Core sidebar container supporting `left`/`right` sides, `sidebar`/`floating`/`inset` variants, and `offcanvas`/`icon`/`none` collapsible modes |
11
- | `SidebarTrigger` | Button component that toggles the sidebar (with `PanelLeft` icon) |
12
- | `SidebarRail` | Thin interactive strip for resize/toggle on desktop |
13
- | `SidebarInset` | Main content area companion that adjusts layout based on sidebar state |
14
- | `SidebarInput` | Styled input field scoped to sidebar context |
15
- | `SidebarHeader` | Top section container for branding/navigation |
16
- | `SidebarFooter` | Bottom section container for user/settings actions |
17
- | `SidebarSeparator` | Styled divider using sidebar border token |
18
- | `SidebarContent` | Scrollable middle section for navigation items |
19
-
20
- ## Usage Example
21
-
22
- ```typescript
23
- import {
24
- SidebarProvider,
25
- Sidebar,
26
- SidebarHeader,
27
- SidebarContent,
28
- SidebarFooter,
29
- SidebarTrigger,
30
- SidebarInset,
31
- useSidebar,
32
- } from "./sidebar"
33
-
34
- export function AppLayout() {
35
- return (
36
- <SidebarProvider defaultOpen={true}>
37
- <Sidebar side="left" variant="sidebar" collapsible="icon">
38
- <SidebarHeader>
39
- <span>My App</span>
40
- </SidebarHeader>
41
- <SidebarContent>
42
- {/* Navigation items */}
43
- </SidebarContent>
44
- <SidebarFooter>
45
- {/* User profile */}
46
- </SidebarFooter>
47
- </Sidebar>
48
-
49
- <SidebarInset>
50
- <SidebarTrigger />
51
- {/* Page content */}
52
- </SidebarInset>
53
- </SidebarProvider>
54
- )
55
- }
56
- ```
57
-
58
- > **Keyboard shortcut:** `Ctrl+B` / `Cmd+B` toggles the sidebar globally. State is persisted via a 7-day cookie (`sidebar:state`). On mobile, the sidebar renders as a `Sheet` drawer automatically.
@@ -1,42 +0,0 @@
1
- <!-- source-hash: 0ad0fd1585cc95092b328aab82e5f963 -->
2
- A flexible square avatar component that displays either a user image or initials fallback with automatic image proxying and responsive sizing options.
3
-
4
- ## Key Components
5
-
6
- - **SquareAvatar**: Main component that renders a square avatar with rounded corners
7
- - **SquareAvatarProps**: TypeScript interface defining component props including image source, fallback name, sizing options
8
- - **Automatic fallback**: Generates up to 2 initials from the provided name when no image is available
9
- - **Image proxying**: Uses `getProxiedImageUrl` utility for secure image loading
10
- - **Responsive sizing**: Supports both fixed pixel sizing and full-width responsive layouts
11
-
12
- ## Usage Example
13
-
14
- ```typescript
15
- import { SquareAvatar } from './components/square-avatar';
16
-
17
- // With image
18
- <SquareAvatar
19
- src="https://example.com/avatar.jpg"
20
- fallbackName="John Doe"
21
- size={64}
22
- />
23
-
24
- // Fallback to initials
25
- <SquareAvatar
26
- fallbackName="Jane Smith"
27
- size={48}
28
- />
29
-
30
- // Full width responsive
31
- <SquareAvatar
32
- src="/user-avatar.png"
33
- fallbackName="Alex Johnson"
34
- fullWidth={true}
35
- className="max-w-xs"
36
- />
37
-
38
- // Minimal usage
39
- <SquareAvatar fallbackName="Bob Wilson" />
40
- ```
41
-
42
- The component automatically handles image loading failures by falling back to initials, uses design system colors and borders, and provides both fixed and responsive sizing modes for different layout contexts.
@@ -1,51 +0,0 @@
1
- <!-- source-hash: 233d24ac5b6d195653b75a57fb3cf96a -->
2
- A comprehensive React table component library that provides semantic HTML table elements with consistent styling, responsive design, and accessibility features.
3
-
4
- ## Key Components
5
-
6
- - **Table** - Main table wrapper with responsive overflow handling
7
- - **TableHeader** - Styled `<thead>` element with border styling
8
- - **TableBody** - Table body with conditional border removal for last row
9
- - **TableFooter** - Footer section with primary background styling
10
- - **TableRow** - Interactive row with hover effects and selection states
11
- - **TableHead** - Header cell with medium font weight and muted text
12
- - **TableCell** - Standard table cell with consistent padding
13
- - **TableCaption** - Accessible table caption with muted styling
14
-
15
- ## Usage Example
16
-
17
- ```typescript
18
- import {
19
- Table,
20
- TableHeader,
21
- TableBody,
22
- TableHead,
23
- TableRow,
24
- TableCell,
25
- TableCaption
26
- } from './table'
27
-
28
- function UserTable() {
29
- return (
30
- <Table>
31
- <TableCaption>A list of recent users</TableCaption>
32
- <TableHeader>
33
- <TableRow>
34
- <TableHead>Name</TableHead>
35
- <TableHead>Email</TableHead>
36
- <TableHead>Status</TableHead>
37
- </TableRow>
38
- </TableHeader>
39
- <TableBody>
40
- <TableRow>
41
- <TableCell>John Doe</TableCell>
42
- <TableCell>john@example.com</TableCell>
43
- <TableCell>Active</TableCell>
44
- </TableRow>
45
- </TableBody>
46
- </Table>
47
- )
48
- }
49
- ```
50
-
51
- All components are built with React.forwardRef for ref forwarding and use the `cn` utility for className merging, enabling easy customization while maintaining base styles.
@@ -1,38 +0,0 @@
1
- <!-- source-hash: 40507b5774d55768095b4012b33992e8 -->
2
- A React tabs component built on Radix UI primitives with styled forwarded refs for accessible tabbed interfaces. Provides a complete tab system with customizable styling through className props.
3
-
4
- ## Key Components
5
-
6
- - **`Tabs`** - Root container component (alias for `TabsPrimitive.Root`)
7
- - **`TabsList`** - Container for tab triggers with horizontal flex layout and muted background
8
- - **`TabsTrigger`** - Individual tab button with active/inactive states and focus management
9
- - **`TabsContent`** - Content panels that show/hide based on active tab selection
10
-
11
- ## Usage Example
12
-
13
- ```typescript
14
- import { Tabs, TabsList, TabsTrigger, TabsContent } from "./tabs"
15
-
16
- function MyTabs() {
17
- return (
18
- <Tabs defaultValue="tab1" className="w-[400px]">
19
- <TabsList className="grid w-full grid-cols-2">
20
- <TabsTrigger value="tab1">Account</TabsTrigger>
21
- <TabsTrigger value="tab2">Settings</TabsTrigger>
22
- </TabsList>
23
-
24
- <TabsContent value="tab1" className="space-y-2">
25
- <h3 className="text-lg font-medium">Account Information</h3>
26
- <p>Manage your account details here.</p>
27
- </TabsContent>
28
-
29
- <TabsContent value="tab2" className="space-y-2">
30
- <h3 className="text-lg font-medium">Settings</h3>
31
- <p>Configure your preferences here.</p>
32
- </TabsContent>
33
- </Tabs>
34
- )
35
- }
36
- ```
37
-
38
- All components support standard React props and include built-in accessibility features, keyboard navigation, and focus management through Radix UI primitives.
@@ -1,49 +0,0 @@
1
- <!-- source-hash: 2e278b19202e7067419c145f3d6571fc -->
2
- A customizable toggle button component built on Radix UI Toggle primitive with styled variants for different sizes and appearances.
3
-
4
- ## Key Components
5
-
6
- - **`toggleVariants`** - CVA-powered style variants with size and variant options
7
- - **`Toggle`** - Main toggle component with forwardRef support
8
- - **Variant types**: `default`, `outline`
9
- - **Size types**: `sm`, `default`, `lg`
10
-
11
- ## Usage Example
12
-
13
- ```typescript
14
- import { Toggle } from "@/components/ui/toggle"
15
- import { Bold, Italic } from "lucide-react"
16
-
17
- function TextEditor() {
18
- return (
19
- <div className="flex gap-2">
20
- {/* Default toggle */}
21
- <Toggle>
22
- <Bold />
23
- Bold
24
- </Toggle>
25
-
26
- {/* Outline variant */}
27
- <Toggle variant="outline">
28
- <Italic />
29
- Italic
30
- </Toggle>
31
-
32
- {/* Small size */}
33
- <Toggle size="sm">
34
- Small
35
- </Toggle>
36
-
37
- {/* Controlled state */}
38
- <Toggle
39
- pressed={isBold}
40
- onPressedChange={setIsBold}
41
- >
42
- Controlled
43
- </Toggle>
44
- </div>
45
- )
46
- }
47
- ```
48
-
49
- The component automatically handles pressed/unpressed states, accessibility features, and keyboard navigation through the underlying Radix primitive.
@@ -1,56 +0,0 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import * as AccordionPrimitive from "@radix-ui/react-accordion"
5
- import { ChevronDown } from "lucide-react"
6
-
7
- import { cn } from "../utils/cn"
8
-
9
- const Accordion = AccordionPrimitive.Root
10
-
11
- const AccordionItem = React.forwardRef<
12
- React.ElementRef<typeof AccordionPrimitive.Item>,
13
- React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>
14
- >(({ className, ...props }, ref) => (
15
- <AccordionPrimitive.Item ref={ref} className={cn("border-b", className)} {...props} />
16
- ))
17
- AccordionItem.displayName = "AccordionItem"
18
-
19
- const AccordionTrigger = React.forwardRef<
20
- React.ElementRef<typeof AccordionPrimitive.Trigger>,
21
- React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>
22
- >(({ className, children, ...props }, ref) => (
23
- <AccordionPrimitive.Header className="flex">
24
- <AccordionPrimitive.Trigger
25
- ref={ref}
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",
28
- className,
29
- )}
30
- {...props}
31
- >
32
- {children}
33
- <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" />
34
- </AccordionPrimitive.Trigger>
35
- </AccordionPrimitive.Header>
36
- ))
37
- AccordionTrigger.displayName = "AccordionTrigger"
38
-
39
- const AccordionContent = React.forwardRef<
40
- React.ElementRef<typeof AccordionPrimitive.Content>,
41
- React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>
42
- >(({ className, children, ...props }, ref) => (
43
- <AccordionPrimitive.Content
44
- ref={ref}
45
- className={cn(
46
- "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
47
- className,
48
- )}
49
- {...props}
50
- >
51
- <div className="pb-4 pt-0">{children}</div>
52
- </AccordionPrimitive.Content>
53
- ))
54
- AccordionContent.displayName = "AccordionContent"
55
-
56
- export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }