@flamingo-stack/openframe-frontend-core 0.0.481 → 0.0.482

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 (838) hide show
  1. package/dist/{chunk-H6DFCF44.cjs → chunk-22AED5IC.cjs} +82 -82
  2. package/dist/{chunk-H6DFCF44.cjs.map → chunk-22AED5IC.cjs.map} +1 -1
  3. package/dist/{chunk-MGKCS6KS.js → chunk-3WCARCI4.js} +2 -2
  4. package/dist/{chunk-LNKWY74S.cjs → chunk-4HL6UENH.cjs} +5 -5
  5. package/dist/{chunk-LNKWY74S.cjs.map → chunk-4HL6UENH.cjs.map} +1 -1
  6. package/dist/{chunk-Y3Y2DLNO.js → chunk-6UGYBCEN.js} +3 -3
  7. package/dist/{chunk-BBUEY73L.js → chunk-7I5B5PQ4.js} +6269 -5339
  8. package/dist/chunk-7I5B5PQ4.js.map +1 -0
  9. package/dist/{chunk-PSPWT2Q5.js → chunk-7LWXWXEY.js} +4 -4
  10. package/dist/{chunk-M7O74OWG.cjs → chunk-ACOU5YJI.cjs} +31 -31
  11. package/dist/{chunk-M7O74OWG.cjs.map → chunk-ACOU5YJI.cjs.map} +1 -1
  12. package/dist/{chunk-INDFIVDV.cjs → chunk-AHGSN4AT.cjs} +12 -12
  13. package/dist/{chunk-INDFIVDV.cjs.map → chunk-AHGSN4AT.cjs.map} +1 -1
  14. package/dist/{chunk-VTSRDC4W.js → chunk-CKC3EAYT.js} +2 -2
  15. package/dist/{chunk-SASR7SK5.js → chunk-GZK7FWJJ.js} +20 -4
  16. package/dist/chunk-GZK7FWJJ.js.map +1 -0
  17. package/dist/{chunk-ZRANZNEA.js → chunk-JJE5TUZK.js} +2 -2
  18. package/dist/{chunk-66BNAFO6.js → chunk-JQIUBFHL.js} +4 -4
  19. package/dist/{chunk-MMCBQJKE.cjs → chunk-KUBJHB6I.cjs} +11 -11
  20. package/dist/{chunk-MMCBQJKE.cjs.map → chunk-KUBJHB6I.cjs.map} +1 -1
  21. package/dist/{chunk-ZV6E3U3C.cjs → chunk-MRGTMMJ3.cjs} +30 -30
  22. package/dist/{chunk-ZV6E3U3C.cjs.map → chunk-MRGTMMJ3.cjs.map} +1 -1
  23. package/dist/{chunk-OZJN54R5.cjs → chunk-NWVKG7QC.cjs} +37 -37
  24. package/dist/{chunk-OZJN54R5.cjs.map → chunk-NWVKG7QC.cjs.map} +1 -1
  25. package/dist/{chunk-AN47EIIJ.cjs → chunk-PHTSSHIQ.cjs} +59 -59
  26. package/dist/{chunk-AN47EIIJ.cjs.map → chunk-PHTSSHIQ.cjs.map} +1 -1
  27. package/dist/{chunk-N2JZ33V7.cjs → chunk-RUA3OXSJ.cjs} +26 -26
  28. package/dist/{chunk-N2JZ33V7.cjs.map → chunk-RUA3OXSJ.cjs.map} +1 -1
  29. package/dist/{chunk-LK623WCC.cjs → chunk-RZPF7MJ2.cjs} +9 -9
  30. package/dist/{chunk-LK623WCC.cjs.map → chunk-RZPF7MJ2.cjs.map} +1 -1
  31. package/dist/{chunk-G3UN2DXU.cjs → chunk-STYA77PH.cjs} +20 -4
  32. package/dist/chunk-STYA77PH.cjs.map +1 -0
  33. package/dist/{chunk-JUJY3HQS.cjs → chunk-U37UTLP7.cjs} +19 -19
  34. package/dist/{chunk-JUJY3HQS.cjs.map → chunk-U37UTLP7.cjs.map} +1 -1
  35. package/dist/{chunk-2DIOV7BR.js → chunk-UPN6EFOM.js} +4 -4
  36. package/dist/{chunk-OWMLWJQY.cjs → chunk-VPVOJD5X.cjs} +2432 -1502
  37. package/dist/chunk-VPVOJD5X.cjs.map +1 -0
  38. package/dist/{chunk-4SMRQ4SN.js → chunk-WBL5Y4PS.js} +3 -3
  39. package/dist/{chunk-FP4H6Y5O.js → chunk-WPYPSIY2.js} +3 -3
  40. package/dist/{chunk-R5WJJL4V.js → chunk-X5X43HFV.js} +5 -5
  41. package/dist/{chunk-DEHZ5CTC.js → chunk-XTWKDMCG.js} +2 -2
  42. package/dist/components/case-studies/index.cjs +9 -9
  43. package/dist/components/case-studies/index.js +3 -3
  44. package/dist/components/chat/index.cjs +3 -3
  45. package/dist/components/chat/index.js +2 -2
  46. package/dist/components/contact/index.cjs +4 -4
  47. package/dist/components/contact/index.js +3 -3
  48. package/dist/components/docs/index.cjs +6 -6
  49. package/dist/components/docs/index.js +5 -5
  50. package/dist/components/embeds/index.cjs +4 -4
  51. package/dist/components/embeds/index.js +3 -3
  52. package/dist/components/faq/index.cjs +4 -4
  53. package/dist/components/faq/index.js +3 -3
  54. package/dist/components/features/captions-url.cjs +12 -0
  55. package/dist/components/features/captions-url.cjs.map +1 -0
  56. package/dist/components/features/captions-url.js +10 -0
  57. package/dist/components/features/captions-url.js.map +1 -0
  58. package/dist/components/features/card-hit-layer.d.ts +40 -0
  59. package/dist/components/features/card-hit-layer.d.ts.map +1 -0
  60. package/dist/components/features/floating-walkthrough-video.d.ts +71 -0
  61. package/dist/components/features/floating-walkthrough-video.d.ts.map +1 -0
  62. package/dist/components/features/index.cjs +11 -3
  63. package/dist/components/features/index.cjs.map +1 -1
  64. package/dist/components/features/index.d.ts +4 -0
  65. package/dist/components/features/index.d.ts.map +1 -1
  66. package/dist/components/features/index.js +12 -4
  67. package/dist/components/features/use-walkthrough-video.d.ts +16 -0
  68. package/dist/components/features/use-walkthrough-video.d.ts.map +1 -0
  69. package/dist/components/features/video-bites-strip.d.ts.map +1 -1
  70. package/dist/components/features/video-center-badge.d.ts.map +1 -1
  71. package/dist/components/features/video-hover-preview.d.ts +68 -0
  72. package/dist/components/features/video-hover-preview.d.ts.map +1 -0
  73. package/dist/components/features/video.d.ts +78 -40
  74. package/dist/components/features/video.d.ts.map +1 -1
  75. package/dist/components/form.d.ts +0 -1
  76. package/dist/components/form.d.ts.map +1 -1
  77. package/dist/components/help-center-pages/index.cjs +21 -21
  78. package/dist/components/help-center-pages/index.js +12 -12
  79. package/dist/components/index.cjs +163 -155
  80. package/dist/components/index.cjs.map +1 -1
  81. package/dist/components/index.js +18 -10
  82. package/dist/components/index.js.map +1 -1
  83. package/dist/components/navigation/index.cjs +3 -3
  84. package/dist/components/navigation/index.js +2 -2
  85. package/dist/components/onboarding-guides/index.cjs +6 -6
  86. package/dist/components/onboarding-guides/index.js +5 -5
  87. package/dist/components/related-content/index.cjs +4 -4
  88. package/dist/components/related-content/index.js +3 -3
  89. package/dist/components/tickets/index.cjs +6 -6
  90. package/dist/components/tickets/index.js +5 -5
  91. package/dist/components/ui/button/button-styles.d.ts +2 -0
  92. package/dist/components/ui/button/button-styles.d.ts.map +1 -1
  93. package/dist/components/ui/button/button.d.ts +2 -2
  94. package/dist/components/ui/button/button.d.ts.map +1 -1
  95. package/dist/components/ui/file-manager/index.cjs +50 -50
  96. package/dist/components/ui/file-manager/index.js +1 -1
  97. package/dist/components/ui/index.cjs +3 -3
  98. package/dist/components/ui/index.js +2 -2
  99. package/dist/components/ui/page-actions.d.ts +2 -1
  100. package/dist/components/ui/page-actions.d.ts.map +1 -1
  101. package/dist/index.cjs +27 -3
  102. package/dist/index.cjs.map +1 -1
  103. package/dist/index.js +28 -4
  104. package/dist/types/supabase.d.ts +80 -0
  105. package/dist/types/supabase.d.ts.map +1 -1
  106. package/dist/types/video-processing.d.ts +1 -1
  107. package/dist/types/video-processing.d.ts.map +1 -1
  108. package/dist/utils/announcement-storage.d.ts +1 -1
  109. package/dist/utils/announcement-storage.d.ts.map +1 -1
  110. package/dist/utils/dismiss-cookie.d.ts +27 -0
  111. package/dist/utils/dismiss-cookie.d.ts.map +1 -0
  112. package/dist/utils/dismissal-storage.d.ts +19 -0
  113. package/dist/utils/dismissal-storage.d.ts.map +1 -0
  114. package/dist/utils/index.cjs +48 -10
  115. package/dist/utils/index.cjs.map +1 -1
  116. package/dist/utils/index.d.ts +2 -0
  117. package/dist/utils/index.d.ts.map +1 -1
  118. package/dist/utils/index.js +41 -11
  119. package/dist/utils/index.js.map +1 -1
  120. package/package.json +8 -2
  121. package/src/.index.md +39 -32
  122. package/src/.platform-domains.md +65 -0
  123. package/src/assets/.fae-avatar.md +33 -0
  124. package/src/assets/.index.md +15 -9
  125. package/src/components/.agent-mark.md +31 -0
  126. package/src/components/.announcement-bar.md +47 -35
  127. package/src/components/.calendar.md +19 -15
  128. package/src/components/.categories-cart.md +34 -30
  129. package/src/components/.category-card.md +33 -33
  130. package/src/components/.chart.md +38 -40
  131. package/src/components/.command.md +47 -23
  132. package/src/components/.comment-card.md +31 -26
  133. package/src/components/.content-loading-container.md +45 -20
  134. package/src/components/.context-menu.md +45 -31
  135. package/src/components/.date-time-picker.md +36 -30
  136. package/src/components/.empty-state.md +31 -31
  137. package/src/components/.faq-accordion.md +20 -30
  138. package/src/components/.filter-chip.md +36 -33
  139. package/src/components/.footer-waitlist-button.md +27 -21
  140. package/src/components/.footer.md +39 -24
  141. package/src/components/.form.md +32 -20
  142. package/src/components/.hero-image-uploader.md +35 -31
  143. package/src/components/.icon-display.md +53 -0
  144. package/src/components/.image-cropper.md +34 -33
  145. package/src/components/.index.md +25 -29
  146. package/src/components/.logs-list.md +27 -23
  147. package/src/components/.media-carousel.md +47 -26
  148. package/src/components/.metric-value.md +27 -24
  149. package/src/components/.msp-display.md +29 -23
  150. package/src/components/.open-source-features.md +23 -26
  151. package/src/components/.pagination.md +44 -39
  152. package/src/components/.persistent-filter-controls.md +61 -28
  153. package/src/components/.pricing-display.md +34 -33
  154. package/src/components/.results-count.md +33 -20
  155. package/src/components/.smooth-accordion.md +24 -20
  156. package/src/components/.social-icon-row.md +33 -21
  157. package/src/components/.sonner.md +40 -25
  158. package/src/components/.steps.md +39 -25
  159. package/src/components/.tool-icon.md +34 -21
  160. package/src/components/.unified-filter-logic.md +32 -36
  161. package/src/components/.user-display.md +33 -28
  162. package/src/components/.user-summary-stub.md +40 -33
  163. package/src/components/.vendor-display-button.md +17 -15
  164. package/src/components/.vendor-icon.md +17 -25
  165. package/src/components/.vendor-tag.md +39 -34
  166. package/src/components/.why-it-matters.md +15 -11
  167. package/src/components/.yes-no-display.md +36 -31
  168. package/src/components/authors/.author-detail-view.md +50 -0
  169. package/src/components/case-studies/.index.md +26 -0
  170. package/src/components/case-studies/.share-experience-section.md +45 -0
  171. package/src/components/chat/.approval-batch-message.md +48 -33
  172. package/src/components/chat/.approval-request-message.md +37 -26
  173. package/src/components/chat/.chat-archive-page.md +56 -0
  174. package/src/components/chat/.chat-attachment-bar.md +32 -40
  175. package/src/components/chat/.chat-composer.md +43 -0
  176. package/src/components/chat/.chat-container.md +41 -25
  177. package/src/components/chat/.chat-context-memory-bar.md +53 -0
  178. package/src/components/chat/.chat-context-picker.md +89 -0
  179. package/src/components/chat/.chat-header-icon-button.md +43 -0
  180. package/src/components/chat/.chat-header-search-field.md +51 -0
  181. package/src/components/chat/.chat-input.md +63 -30
  182. package/src/components/chat/.chat-list-empty-state.md +44 -0
  183. package/src/components/chat/.chat-message-enhanced.md +29 -31
  184. package/src/components/chat/.chat-message-list.md +34 -44
  185. package/src/components/chat/.chat-message-row.md +56 -0
  186. package/src/components/chat/.chat-message-skeleton.md +32 -26
  187. package/src/components/chat/.chat-panel-header-mobile.md +46 -0
  188. package/src/components/chat/.chat-panel-header.md +80 -0
  189. package/src/components/chat/.chat-sidebar-skeleton.md +31 -30
  190. package/src/components/chat/.chat-sidebar.md +36 -29
  191. package/src/components/chat/.chat-ticket-list.md +38 -23
  192. package/src/components/chat/.chat-typing-indicator.md +37 -19
  193. package/src/components/chat/.context-compaction-display.md +19 -15
  194. package/src/components/chat/.context-items-list.md +57 -0
  195. package/src/components/chat/.embeddable-chat.md +57 -66
  196. package/src/components/chat/.error-message-display.md +40 -22
  197. package/src/components/chat/.guide-mode-banner.md +41 -0
  198. package/src/components/chat/.guide-welcome.md +43 -0
  199. package/src/components/chat/.index.md +26 -21
  200. package/src/components/chat/.mingo-chat-history.md +63 -0
  201. package/src/components/chat/.mingo-chat-modals.md +44 -0
  202. package/src/components/chat/.mingo-history-rail.md +63 -0
  203. package/src/components/chat/.mingo-info-card.md +59 -0
  204. package/src/components/chat/.mingo-onboarding-card.md +21 -27
  205. package/src/components/chat/.mingo-welcome.md +60 -0
  206. package/src/components/chat/.model-display.md +33 -25
  207. package/src/components/chat/.msp-organization-card-skeleton.md +44 -0
  208. package/src/components/chat/.msp-organization-card.md +51 -0
  209. package/src/components/chat/.nav-link-anchor-via-runtime.md +36 -25
  210. package/src/components/chat/.quick-action-chip.md +60 -0
  211. package/src/components/chat/.quick-action-marquee.md +53 -0
  212. package/src/components/chat/.quick-action-wall.md +68 -0
  213. package/src/components/chat/.remark-mention-chips.md +41 -0
  214. package/src/components/chat/.slash-command-suggestions.md +30 -36
  215. package/src/components/chat/.source-action-button.md +28 -25
  216. package/src/components/chat/.tool-call-blocks.md +18 -30
  217. package/src/components/chat/.tool-execution-display.md +29 -34
  218. package/src/components/chat/entity-cards/.admin-content-card.md +29 -22
  219. package/src/components/chat/entity-cards/.blog-card.md +44 -33
  220. package/src/components/chat/entity-cards/.blog-image-placeholder.md +20 -18
  221. package/src/components/chat/entity-cards/.case-study-card.md +24 -33
  222. package/src/components/chat/entity-cards/.chat-ticket-item.md +39 -22
  223. package/src/components/chat/entity-cards/.customer-interview-card.md +29 -32
  224. package/src/components/chat/entity-cards/.data-room-doc-card.md +21 -22
  225. package/src/components/chat/entity-cards/.dispatch.md +41 -24
  226. package/src/components/chat/entity-cards/.entity-author-card.md +36 -33
  227. package/src/components/chat/entity-cards/.entity-portrait-card.md +47 -0
  228. package/src/components/chat/entity-cards/.generic-entity-card.md +26 -25
  229. package/src/components/chat/entity-cards/.github-activity-card.md +35 -41
  230. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +22 -28
  231. package/src/components/chat/entity-cards/.index.md +33 -44
  232. package/src/components/chat/entity-cards/.investor-update-card.md +36 -25
  233. package/src/components/chat/entity-cards/.onboarding-guide-card.md +20 -29
  234. package/src/components/chat/entity-cards/.product-release-card-defaults.md +26 -19
  235. package/src/components/chat/entity-cards/.program-card.md +30 -33
  236. package/src/components/chat/entity-cards/.roadmap-card.md +40 -31
  237. package/src/components/chat/entity-cards/.roadmap-vote-button.md +33 -36
  238. package/src/components/chat/entity-cards/.slack-message-card.md +31 -32
  239. package/src/components/chat/entity-cards/.use-cover-image-fallback.md +47 -0
  240. package/src/components/chat/entity-cards/.use-entity-card-link.md +51 -0
  241. package/src/components/chat/entity-cards/.use-entity-card-placeholder.md +47 -0
  242. package/src/components/chat/entity-cards/.what-i-shipped-card.md +43 -0
  243. package/src/components/chat/hooks/.index.md +33 -30
  244. package/src/components/chat/hooks/.use-chat-card-item.md +30 -17
  245. package/src/components/chat/hooks/.use-chat-dialog-manager.md +59 -0
  246. package/src/components/chat/hooks/.use-chat-identity.md +37 -25
  247. package/src/components/chat/hooks/.use-chunk-catchup.md +53 -36
  248. package/src/components/chat/hooks/.use-empty-state-config.md +39 -0
  249. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +65 -30
  250. package/src/components/chat/hooks/.use-nats-chat-adapter.md +55 -36
  251. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +66 -50
  252. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +58 -31
  253. package/src/components/chat/hooks/.use-scripted-stream.md +46 -0
  254. package/src/components/chat/hooks/.use-slash-commands.md +32 -25
  255. package/src/components/chat/hooks/.use-sse-chat-adapter.md +32 -21
  256. package/src/components/chat/hooks/.use-unified-chat.md +45 -35
  257. package/src/components/chat/types/.api.types.md +49 -41
  258. package/src/components/chat/types/.chat.types.md +56 -34
  259. package/src/components/chat/types/.component.types.md +36 -36
  260. package/src/components/chat/types/.context-item.types.md +61 -0
  261. package/src/components/chat/types/.index.md +32 -17
  262. package/src/components/chat/types/.message.types.md +44 -45
  263. package/src/components/chat/types/.network.types.md +46 -46
  264. package/src/components/chat/types/.processing.types.md +49 -37
  265. package/src/components/chat/types/.unified-chat-state.types.md +41 -26
  266. package/src/components/chat/types/entities/.content-ref.md +20 -31
  267. package/src/components/chat/types/entities/.investor-update.md +14 -16
  268. package/src/components/chat/types/entities/.onboarding-guide.md +35 -34
  269. package/src/components/chat/types/entities/.program-types.md +55 -43
  270. package/src/components/chat/utils/.chip-action-class.md +17 -19
  271. package/src/components/chat/utils/.chip-styles.md +18 -18
  272. package/src/components/chat/utils/.chunk-parser.md +48 -37
  273. package/src/components/chat/utils/.compact-card-classes.md +33 -35
  274. package/src/components/chat/utils/.execute-navigation.md +49 -0
  275. package/src/components/chat/utils/.extract-incomplete-message-state.md +9 -12
  276. package/src/components/chat/utils/.history-merge.md +65 -0
  277. package/src/components/chat/utils/.icon-library.md +33 -31
  278. package/src/components/chat/utils/.icon-registry.md +44 -0
  279. package/src/components/chat/utils/.index.md +37 -33
  280. package/src/components/chat/utils/.is-cross-origin-url.md +26 -22
  281. package/src/components/chat/utils/.message-segment-accumulator.md +46 -25
  282. package/src/components/chat/utils/.nav-anchor-props.md +29 -34
  283. package/src/components/chat/utils/.nav-click-handler.md +29 -33
  284. package/src/components/chat/utils/.process-historical-messages.md +29 -33
  285. package/src/components/chat/utils/.scripted-stream.md +52 -0
  286. package/src/components/chat/utils/.source-row-cta.md +32 -31
  287. package/src/components/chat/utils/.tool-call-helpers.md +25 -17
  288. package/src/components/contact/.contact-form.md +24 -19
  289. package/src/components/docs/.doc-navigation-context.md +49 -0
  290. package/src/components/docs/.doc-viewer.md +64 -0
  291. package/src/components/docs/.docs-hub-page.md +49 -0
  292. package/src/components/docs/.index.md +51 -0
  293. package/src/components/docs/.skeletons.md +47 -0
  294. package/src/components/docs/.use-docs-resolve-link.md +61 -0
  295. package/src/components/docs/.use-document-tree.md +83 -0
  296. package/src/components/docs/.use-scroll-spy.md +58 -0
  297. package/src/components/embeds/.embed-container.md +45 -0
  298. package/src/components/embeds/.embed-iframe.md +51 -0
  299. package/src/components/embeds/.figma-embed.md +43 -0
  300. package/src/components/embeds/.file-download-card.md +47 -0
  301. package/src/components/embeds/.google-sheets-viewer.md +40 -0
  302. package/src/components/embeds/.index.md +58 -0
  303. package/src/components/embeds/.linkedin-embed-client.md +50 -0
  304. package/src/components/embeds/.markdown-image.md +40 -0
  305. package/src/components/embeds/.og-link-preview.md +54 -0
  306. package/src/components/embeds/.pdf-viewer.md +43 -0
  307. package/src/components/embeds/.reddit-embed-client.md +40 -0
  308. package/src/components/embeds/.rich-markdown-runtime.md +53 -0
  309. package/src/components/embeds/.twitter-embed-client.md +44 -0
  310. package/src/components/faq/.faq-document-page.md +68 -0
  311. package/src/components/faq/.faq-section.md +55 -0
  312. package/src/components/faq/.index.md +29 -0
  313. package/src/components/faq/.json-ld.md +48 -0
  314. package/src/components/features/.array-entry-manager.md +32 -24
  315. package/src/components/features/.auth-providers-list.md +33 -32
  316. package/src/components/features/.captions-url.md +43 -0
  317. package/src/components/features/.cards-strip.md +48 -0
  318. package/src/components/features/.changelog-manager.md +17 -20
  319. package/src/components/features/.command-box.md +11 -16
  320. package/src/components/features/.entity-summary-editor.md +20 -15
  321. package/src/components/features/.entity-tag-badges.md +43 -0
  322. package/src/components/features/.entity-video-section.md +31 -41
  323. package/src/components/features/.figma-prototype-viewer.md +55 -37
  324. package/src/components/features/.filters-dropdown.md +14 -13
  325. package/src/components/features/.highlight-config-section.md +19 -16
  326. package/src/components/features/.highlight-video-combined-section.md +28 -19
  327. package/src/components/features/.highlight-video-preview.md +13 -11
  328. package/src/components/features/.highlight-video-section.md +26 -22
  329. package/src/components/features/.index.md +40 -36
  330. package/src/components/features/.media-gallery-manager.md +37 -35
  331. package/src/components/features/.mux-origins.md +46 -0
  332. package/src/components/features/.og-editor-preview.md +29 -24
  333. package/src/components/features/.os-type-badge-group.md +26 -18
  334. package/src/components/features/.os-type-badge.md +41 -24
  335. package/src/components/features/.paths-display.md +42 -25
  336. package/src/components/features/.platform-badge.md +26 -17
  337. package/src/components/features/.policy-configuration-panel.md +33 -31
  338. package/src/components/features/.provider-button.md +29 -20
  339. package/src/components/features/.push-button-selector.md +39 -41
  340. package/src/components/features/.release-media-manager.md +41 -34
  341. package/src/components/features/.section-selector.md +27 -16
  342. package/src/components/features/.select-button.md +21 -32
  343. package/src/components/features/.seo-editor-preview.md +49 -36
  344. package/src/components/features/.social-links-manager.md +40 -18
  345. package/src/components/features/.start-with-openframe-button.md +30 -32
  346. package/src/components/features/.status-filter-component.md +29 -38
  347. package/src/components/features/.tags-selector.md +25 -29
  348. package/src/components/features/.transcript-summary-editor.md +24 -18
  349. package/src/components/features/.use-video-warmup.md +47 -0
  350. package/src/components/features/.video-bites-display.md +36 -37
  351. package/src/components/features/.video-bites-shared.md +44 -0
  352. package/src/components/features/.video-bites-strip.md +63 -0
  353. package/src/components/features/.video-center-badge.md +38 -0
  354. package/src/components/features/.video-ratio-tabs.md +38 -31
  355. package/src/components/features/.video-source-selector.md +24 -27
  356. package/src/components/features/.video.md +35 -27
  357. package/src/components/features/.waitlist-form.md +39 -33
  358. package/src/components/features/.warning-block.md +53 -0
  359. package/src/components/features/ai-enrich/.AIEnrichSection.md +24 -25
  360. package/src/components/features/ai-enrich/.AIRequiredBadge.md +22 -21
  361. package/src/components/features/ai-enrich/.AIStatusIndicator.md +42 -35
  362. package/src/components/features/ai-enrich/.AIWarningsSection.md +23 -20
  363. package/src/components/features/ai-enrich/.ConfidenceBadge.md +35 -20
  364. package/src/components/features/auth/.auth-benefits-panel.md +48 -0
  365. package/src/components/features/auth/.auth-branding.md +51 -0
  366. package/src/components/features/auth/.auth-shell.md +51 -0
  367. package/src/components/features/auth/.back-to-login-link.md +48 -0
  368. package/src/components/features/auth/.complete-account-form.md +45 -0
  369. package/src/components/features/auth/.create-organization-form.md +53 -0
  370. package/src/components/features/auth/.index.md +48 -0
  371. package/src/components/features/auth/.invite-link-invalid-modal.md +42 -0
  372. package/src/components/features/auth/.login-form.md +42 -0
  373. package/src/components/features/auth/.openframe-sso-login-form.md +46 -0
  374. package/src/components/features/auth/.openframe-sso-signup-form.md +51 -0
  375. package/src/components/features/auth/.password-reset-form.md +57 -0
  376. package/src/components/features/auth/.sso-auth-shell.md +35 -0
  377. package/src/components/features/auth/.sso-providers.md +42 -0
  378. package/src/components/features/auth/.terms-agreement-label.md +28 -0
  379. package/src/components/features/board/.board-column-header.md +24 -18
  380. package/src/components/features/board/.board-column.md +32 -32
  381. package/src/components/features/board/.board-ticket-approval.md +42 -0
  382. package/src/components/features/board/.board.md +38 -38
  383. package/src/components/features/board/.index.md +35 -38
  384. package/src/components/features/board/.ticket-card.md +33 -36
  385. package/src/components/features/board/.types.md +38 -31
  386. package/src/components/features/card-hit-layer.tsx +84 -0
  387. package/src/components/features/floating-walkthrough-video.tsx +891 -0
  388. package/src/components/features/index.ts +4 -0
  389. package/src/components/features/notifications/.approval-request-notification-tile.md +45 -0
  390. package/src/components/features/notifications/.index.md +35 -31
  391. package/src/components/features/notifications/.notification-drawer.md +32 -19
  392. package/src/components/features/notifications/.notification-popups.md +51 -0
  393. package/src/components/features/notifications/.notification-tile.md +43 -27
  394. package/src/components/features/notifications/.notifications-context.md +42 -45
  395. package/src/components/features/notifications/.types.md +51 -31
  396. package/src/components/features/ticket-status-config-list/.ticket-status-config-list.md +51 -0
  397. package/src/components/features/time-tracker/.index.md +48 -0
  398. package/src/components/features/time-tracker/.time-tracker-context.md +55 -0
  399. package/src/components/features/time-tracker/.time-tracker-header-button.md +51 -0
  400. package/src/components/features/time-tracker/.time-tracker-panel.md +58 -0
  401. package/src/components/features/time-tracker/.types.md +51 -0
  402. package/src/components/features/time-tracker/.use-tracker-clock.md +32 -0
  403. package/src/components/features/use-walkthrough-video.ts +70 -0
  404. package/src/components/features/video-bites-strip.tsx +46 -146
  405. package/src/components/features/video-center-badge.tsx +11 -2
  406. package/src/components/features/video-hover-preview.tsx +201 -0
  407. package/src/components/features/video.tsx +368 -73
  408. package/src/components/help-center-pages/.delivery-page.md +51 -0
  409. package/src/components/help-center-pages/.index.md +51 -0
  410. package/src/components/help-center-pages/.onboarding-guides-catalog-page.md +53 -0
  411. package/src/components/help-center-pages/.product-releases-list-page.md +51 -0
  412. package/src/components/help-center-pages/.roadmap-page.md +46 -0
  413. package/src/components/icons/.figma-icon.md +13 -7
  414. package/src/components/icons/.index.md +26 -22
  415. package/src/components/icons/.vendor-directory-icon.md +30 -18
  416. package/src/components/icons/.x-logo.md +26 -10
  417. package/src/components/icons-v2-generated/.index.md +30 -41
  418. package/src/components/icons-v2-generated/brand-logos/.index.md +25 -19
  419. package/src/components/icons-v2-generated/communication/.index.md +26 -30
  420. package/src/components/icons-v2-generated/logos/.flamingo-logo-icon.md +41 -0
  421. package/src/components/layout/.article-detail-layout.md +32 -21
  422. package/src/components/layout/.page-container.md +25 -23
  423. package/src/components/layout/.page-heading.md +48 -0
  424. package/src/components/layout/.page-layout.md +30 -25
  425. package/src/components/layout/.title-block.md +43 -24
  426. package/src/components/loading/.card-skeleton.md +28 -35
  427. package/src/components/loading/.category-card-skeleton.md +25 -23
  428. package/src/components/loading/.device-card-skeleton.md +22 -15
  429. package/src/components/loading/.margin-report-skeleton.md +30 -35
  430. package/src/components/loading/.openmsp-heartbeat.md +30 -32
  431. package/src/components/loading/.organization-card-skeleton.md +22 -25
  432. package/src/components/loading/.organization-icon-skeleton.md +39 -27
  433. package/src/components/loading/.page-layout-skeleton.md +50 -28
  434. package/src/components/loading/.unified-skeleton.md +37 -40
  435. package/src/components/loading/.users-grid-skeleton.md +19 -38
  436. package/src/components/navigation/.app-header.md +35 -28
  437. package/src/components/navigation/.app-layout-context.md +48 -0
  438. package/src/components/navigation/.app-layout-drawer.md +56 -0
  439. package/src/components/navigation/.app-layout.md +24 -23
  440. package/src/components/navigation/.header-mingo-button.md +46 -0
  441. package/src/components/navigation/.header-organization-filter.md +32 -18
  442. package/src/components/navigation/.header.md +24 -31
  443. package/src/components/navigation/.index.md +36 -50
  444. package/src/components/navigation/.mingo-ai-button.md +41 -0
  445. package/src/components/navigation/.mobile-burger-menu.md +29 -29
  446. package/src/components/navigation/.mobile-nav-panel.md +41 -49
  447. package/src/components/navigation/.multi-level-navigation.md +76 -0
  448. package/src/components/navigation/.navigation-sidebar-item.md +14 -14
  449. package/src/components/navigation/.navigation-sidebar.md +30 -23
  450. package/src/components/navigation/.sliding-sidebar.md +30 -25
  451. package/src/components/navigation/.sticky-section-nav.md +23 -21
  452. package/src/components/onboarding-guides/.index.md +40 -0
  453. package/src/components/onboarding-guides/.onboarding-guide-detail-view.md +55 -0
  454. package/src/components/onboarding-guides/.onboarding-guides-catalog-skeleton.md +33 -0
  455. package/src/components/onboarding-guides/.onboarding-guides-catalog-view.md +50 -0
  456. package/src/components/onboarding-guides/hooks/.use-onboarding-guides.md +54 -0
  457. package/src/components/platform/.CveLink.md +28 -17
  458. package/src/components/platform/.ScriptArguments.md +18 -23
  459. package/src/components/platform/.ScriptInfoSection.md +27 -21
  460. package/src/components/platform/.ShellTypeBadge.md +34 -18
  461. package/src/components/platform/.SoftwareInfo.md +23 -21
  462. package/src/components/platform/.ToolBadge.md +18 -16
  463. package/src/components/profile/.ProfileLoadingSkeleton.md +24 -23
  464. package/src/components/related-content/.index.md +41 -0
  465. package/src/components/related-content/.related-content-section.md +62 -0
  466. package/src/components/shared/.article-author-byline.md +56 -0
  467. package/src/components/shared/.detail-page-skeleton.md +32 -43
  468. package/src/components/shared/.media-gallery-strip.md +43 -0
  469. package/src/components/shared/delivery/.delivery-lists.md +20 -19
  470. package/src/components/shared/delivery/.delivery-row.md +24 -20
  471. package/src/components/shared/delivery/.delivery-table.md +20 -22
  472. package/src/components/shared/dev-section/.dev-card-row.md +28 -36
  473. package/src/components/shared/dev-section/.dev-section-page.md +36 -25
  474. package/src/components/shared/dev-section/.dev-section-view.md +32 -22
  475. package/src/components/shared/doc-search/.doc-search-bar.md +58 -0
  476. package/src/components/shared/doc-search/.doc-search-result-row.md +50 -0
  477. package/src/components/shared/doc-search/.format-relative-path.md +30 -0
  478. package/src/components/shared/doc-search/.index.md +46 -0
  479. package/src/components/shared/doc-search/.map-doc-search-results.md +44 -0
  480. package/src/components/shared/doc-search/.resolve-search-result-action.md +52 -0
  481. package/src/components/shared/doc-search/.types.md +49 -0
  482. package/src/components/shared/doc-search/.use-doc-search.md +66 -0
  483. package/src/components/shared/legal-document/.legal-document-page.md +26 -20
  484. package/src/components/shared/legal-document/.use-legal-docs.md +36 -30
  485. package/src/components/shared/onboarding/.onboarding-step-card.md +24 -16
  486. package/src/components/shared/onboarding/.onboarding-walkthrough.md +42 -28
  487. package/src/components/shared/product-release/.index.md +33 -24
  488. package/src/components/shared/product-release/.product-release-card-skeleton.md +22 -28
  489. package/src/components/shared/product-release/.product-release-card.md +28 -29
  490. package/src/components/shared/product-release/.product-releases-view.md +49 -0
  491. package/src/components/shared/product-release/.release-detail-page.md +30 -15
  492. package/src/components/shared/roadmap/.index.md +29 -24
  493. package/src/components/shared/roadmap/.roadmap-grid.md +43 -54
  494. package/src/components/shared/roadmap/.roadmap-view.md +41 -0
  495. package/src/components/shared/roadmap/.use-roadmap-voting.md +27 -17
  496. package/src/components/switch.tsx +1 -1
  497. package/src/components/tickets/.help-center-card.md +32 -28
  498. package/src/components/tickets/.help-center-create-form.md +34 -22
  499. package/src/components/tickets/.help-center-list.md +36 -25
  500. package/src/components/tickets/.index.md +30 -45
  501. package/src/components/tickets/.ticket-center.md +31 -38
  502. package/src/components/tickets/.ticket-detail-drawer.md +20 -30
  503. package/src/components/tickets/.ticket-open-form.md +24 -26
  504. package/src/components/tickets/.ticket-reply-composer.md +51 -0
  505. package/src/components/tickets/.ticket-row.md +26 -11
  506. package/src/components/tickets/.types.md +56 -38
  507. package/src/components/tickets/hooks/.use-ticket-actions.md +60 -47
  508. package/src/components/tickets/hooks/.use-ticket-engagements.md +27 -27
  509. package/src/components/tickets/hooks/.use-tickets-list.md +24 -30
  510. package/src/components/ui/.accordion.md +28 -21
  511. package/src/components/ui/.actions-menu.md +36 -54
  512. package/src/components/ui/.ai-generated-badge.md +25 -0
  513. package/src/components/ui/.alert-dialog.md +21 -16
  514. package/src/components/ui/.alert.md +30 -25
  515. package/src/components/ui/.allowed-domains-input.md +26 -15
  516. package/src/components/ui/.announcement-bar-view.md +46 -0
  517. package/src/components/ui/.autocomplete.md +40 -27
  518. package/src/components/ui/.badge.md +34 -31
  519. package/src/components/ui/.brand-association-card.md +22 -18
  520. package/src/components/ui/.breadcrumb.md +18 -14
  521. package/src/components/ui/.bullet-list.md +35 -23
  522. package/src/components/ui/.card.md +47 -30
  523. package/src/components/ui/.checkbox-block.md +34 -22
  524. package/src/components/ui/.checkbox-with-description.md +18 -20
  525. package/src/components/ui/.chevron-button.md +29 -29
  526. package/src/components/ui/.circular-progress.md +30 -41
  527. package/src/components/ui/.color-preset-select.md +54 -0
  528. package/src/components/ui/.color-swatch.md +37 -0
  529. package/src/components/ui/.content-loader.md +34 -27
  530. package/src/components/ui/.crossfade-panels.md +50 -0
  531. package/src/components/ui/.cursor-pagination.md +38 -26
  532. package/src/components/ui/.dashboard-info-card.md +46 -27
  533. package/src/components/ui/.date-picker.md +52 -36
  534. package/src/components/ui/.device-card-compact.md +23 -20
  535. package/src/components/ui/.device-card.md +39 -30
  536. package/src/components/ui/.dialog.md +14 -14
  537. package/src/components/ui/.drawer.md +45 -39
  538. package/src/components/ui/.dropdown-button.md +41 -33
  539. package/src/components/ui/.dropdown-menu.md +40 -23
  540. package/src/components/ui/.duration-input.md +41 -0
  541. package/src/components/ui/.entity-image.md +32 -28
  542. package/src/components/ui/.error-state.md +30 -26
  543. package/src/components/ui/.fade-preview.md +44 -0
  544. package/src/components/ui/.field-wrapper.md +34 -23
  545. package/src/components/ui/.file-upload.md +30 -18
  546. package/src/components/ui/.filter-modal.md +30 -32
  547. package/src/components/ui/.filter-pill-row.md +58 -0
  548. package/src/components/ui/.floating-tooltip.md +27 -32
  549. package/src/components/ui/.hidden-tags-popup.md +18 -20
  550. package/src/components/ui/.highlight-card.md +36 -23
  551. package/src/components/ui/.honeypot-field.md +41 -0
  552. package/src/components/ui/.hover-dropdown.md +44 -31
  553. package/src/components/ui/.image-gallery-modal.md +28 -30
  554. package/src/components/ui/.image-uploader.md +39 -22
  555. package/src/components/ui/.index.md +33 -31
  556. package/src/components/ui/.info-card-row.md +50 -0
  557. package/src/components/ui/.info-card.md +27 -20
  558. package/src/components/ui/.info-row.md +30 -24
  559. package/src/components/ui/.info-section.md +63 -0
  560. package/src/components/ui/.input.md +29 -28
  561. package/src/components/ui/.label.md +34 -26
  562. package/src/components/ui/.markdown-editor.md +26 -25
  563. package/src/components/ui/.marquee-wall.md +64 -0
  564. package/src/components/ui/.menubar.md +50 -16
  565. package/src/components/ui/.modal-v2.md +41 -27
  566. package/src/components/ui/.modal.md +22 -19
  567. package/src/components/ui/.more-actions-menu.md +30 -24
  568. package/src/components/ui/.navigation-menu.md +40 -25
  569. package/src/components/ui/.organization-card.md +46 -27
  570. package/src/components/ui/.page-actions.md +55 -41
  571. package/src/components/ui/.page-loader.md +40 -23
  572. package/src/components/ui/.password-input.md +30 -0
  573. package/src/components/ui/.phone-input.md +20 -22
  574. package/src/components/ui/.portal-container.md +43 -0
  575. package/src/components/ui/.progress-bar.md +40 -27
  576. package/src/components/ui/.release-changelog-section.md +32 -26
  577. package/src/components/ui/.rich-markdown-renderer.md +45 -0
  578. package/src/components/ui/.scroll-fade.md +56 -0
  579. package/src/components/ui/.search-input.md +55 -37
  580. package/src/components/ui/.select.md +25 -26
  581. package/src/components/ui/.service-card.md +25 -19
  582. package/src/components/ui/.sheet.md +21 -21
  583. package/src/components/ui/.simple-markdown-renderer.md +36 -24
  584. package/src/components/ui/.slack-channel-chip.md +49 -0
  585. package/src/components/ui/.square-avatar.md +29 -26
  586. package/src/components/ui/.stacked-rows-panel.md +61 -0
  587. package/src/components/ui/.status-badge.md +30 -24
  588. package/src/components/ui/.status-indicator.md +35 -21
  589. package/src/components/ui/.tab-content.md +34 -22
  590. package/src/components/ui/.tab-navigation.md +40 -50
  591. package/src/components/ui/.tab-selector.md +48 -31
  592. package/src/components/ui/.tabs.md +34 -21
  593. package/src/components/ui/.tag-search-input.md +20 -20
  594. package/src/components/ui/.tag-select-dropdown.md +59 -0
  595. package/src/components/ui/.tag.md +25 -43
  596. package/src/components/ui/.tags-input.md +31 -31
  597. package/src/components/ui/.textarea.md +32 -30
  598. package/src/components/ui/.ticket-attachments-list.md +36 -29
  599. package/src/components/ui/.ticket-info-section.md +37 -42
  600. package/src/components/ui/.ticket-status-config-row.md +66 -0
  601. package/src/components/ui/.ticket-status-tag.md +39 -35
  602. package/src/components/ui/.toaster.md +21 -15
  603. package/src/components/ui/.toggle.md +38 -37
  604. package/src/components/ui/.tooltip.md +16 -13
  605. package/src/components/ui/button/.button-styles.md +17 -18
  606. package/src/components/ui/button/.button.md +30 -37
  607. package/src/components/ui/button/.split-button.md +46 -23
  608. package/src/components/ui/button/button-styles.ts +13 -0
  609. package/src/components/ui/button/button.tsx +5 -0
  610. package/src/components/ui/data-table/.data-table-body.md +50 -35
  611. package/src/components/ui/data-table/.data-table-empty.md +17 -33
  612. package/src/components/ui/data-table/.data-table-header.md +43 -40
  613. package/src/components/ui/data-table/.data-table-row.md +31 -31
  614. package/src/components/ui/data-table/.types.md +23 -28
  615. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +16 -24
  616. package/src/components/ui/file-manager/.file-manager-empty.md +23 -15
  617. package/src/components/ui/file-manager/.file-manager-skeleton.md +34 -36
  618. package/src/components/ui/file-manager/.file-manager-table-row.md +29 -29
  619. package/src/components/ui/file-manager/.file-manager-table.md +39 -24
  620. package/src/components/ui/no-data/.index.md +22 -0
  621. package/src/components/ui/no-data/.no-data-actions.md +29 -0
  622. package/src/components/ui/no-data/.no-data-message.md +37 -0
  623. package/src/components/ui/no-data/.no-data-styles.md +39 -0
  624. package/src/components/ui/no-data/.no-data.md +59 -0
  625. package/src/components/ui/page-actions.tsx +2 -1
  626. package/src/components/ui/query-report-table/.query-report-table-header.md +15 -15
  627. package/src/components/ui/query-report-table/.query-report-table-row.md +16 -16
  628. package/src/components/ui/query-report-table/.query-report-table.md +39 -24
  629. package/src/components/ui/table/.table-column-filter-dropdown.md +15 -9
  630. package/src/components/ui/table/.table-description-cell.md +13 -12
  631. package/src/components/ui/table/.table-empty-state.md +19 -20
  632. package/src/components/ui/table/.table-row.md +30 -20
  633. package/src/components/ui/table/.table-skeleton.md +32 -27
  634. package/src/components/ui/table/.table-timestamp-cell.md +24 -23
  635. package/src/components/ui/table/.table.md +43 -30
  636. package/src/components/ui/table/.types.md +49 -45
  637. package/src/components/ui/table/.use-table-motion.md +45 -0
  638. package/src/contexts/.chat-runtime-context.md +55 -26
  639. package/src/contexts/.endpoints-runtime-context.md +40 -44
  640. package/src/embed-shims/.next-navigation.md +38 -31
  641. package/src/hooks/.api-hooks.md +28 -21
  642. package/src/hooks/.index.md +30 -25
  643. package/src/hooks/.use-authed-image-src.md +38 -0
  644. package/src/hooks/.use-contact-submission.md +35 -36
  645. package/src/hooks/.use-humanity-signals.md +47 -0
  646. package/src/hooks/.use-near-viewport.md +30 -30
  647. package/src/hooks/.use-og-placeholder-url.md +57 -0
  648. package/src/hooks/.use-scroll-to-hash.md +46 -0
  649. package/src/hooks/.use-self-fetch.md +52 -0
  650. package/src/hooks/state/.flatten-schema.md +37 -29
  651. package/src/hooks/ui/.index.md +37 -25
  652. package/src/hooks/ui/.use-auto-limit-tags.md +55 -38
  653. package/src/hooks/ui/.use-deferred-error.md +44 -0
  654. package/src/hooks/ui/.use-focus-trap.md +59 -0
  655. package/src/hooks/ui/.use-header-height.md +37 -0
  656. package/src/hooks/ui/.use-horizontal-scrollbar.md +25 -34
  657. package/src/hooks/ui/.use-marquee-engine.md +73 -0
  658. package/src/hooks/ui/.use-notification-permission.md +49 -0
  659. package/src/hooks/ui/.use-reset-on-page-hidden.md +40 -0
  660. package/src/hooks/ui/.use-suppress-clone-focus.md +41 -0
  661. package/src/nats/.index.md +39 -0
  662. package/src/nats/.nats-provider.md +46 -0
  663. package/src/nats/.nats.md +38 -28
  664. package/src/nats/.shared-connection.md +56 -0
  665. package/src/nats/.use-nats-subscription.md +57 -0
  666. package/src/stories/.ActionsMenu.stories.md +57 -0
  667. package/src/stories/.Alert.stories.md +46 -0
  668. package/src/stories/.AnnouncementBar.stories.md +59 -32
  669. package/src/stories/.AppLayoutDrawer.stories.md +60 -0
  670. package/src/stories/.AppLayoutSidebar.stories.md +45 -0
  671. package/src/stories/.ApprovalBatchMessage.stories.md +46 -0
  672. package/src/stories/.ApprovalBatchMessageClient.stories.md +55 -0
  673. package/src/stories/.ApprovalRequestMessage.stories.md +50 -0
  674. package/src/stories/.ApprovalRequestMessageClient.stories.md +41 -0
  675. package/src/stories/.BlogCard.stories.md +52 -0
  676. package/src/stories/.Board.stories.md +25 -20
  677. package/src/stories/.Button.stories.md +35 -40
  678. package/src/stories/.CampaignCardAdmin.stories.md +38 -0
  679. package/src/stories/.CardsStrip.stories.md +39 -0
  680. package/src/stories/.CaseStudyCard.stories.md +41 -0
  681. package/src/stories/.ChatContainer.stories.md +41 -0
  682. package/src/stories/.ChatInlineVideoPill.stories.md +36 -0
  683. package/src/stories/.ChatMessageEnhanced.stories.md +51 -0
  684. package/src/stories/.ChatMingoInfoCards.stories.md +30 -0
  685. package/src/stories/.ChatTicketList.stories.md +38 -22
  686. package/src/stories/.ChatTypingIndicator.stories.md +47 -0
  687. package/src/stories/.CheckboxBlock.stories.md +34 -35
  688. package/src/stories/.ContextCompactionDisplay.stories.md +28 -0
  689. package/src/stories/.CustomerInterviewCard.stories.md +36 -0
  690. package/src/stories/.DashboardInfoCard.stories.md +40 -33
  691. package/src/stories/.DataRoomDocCard.stories.md +42 -0
  692. package/src/stories/.DataTable.stories.md +37 -32
  693. package/src/stories/.DatePicker.stories.md +34 -30
  694. package/src/stories/.EmbeddableChat.stories.md +45 -28
  695. package/src/stories/.EmptyState.stories.md +55 -0
  696. package/src/stories/.ErrorMessageDisplay.stories.md +45 -0
  697. package/src/stories/.FilterModal.stories.md +28 -22
  698. package/src/stories/.GenericEntityCard.stories.md +50 -0
  699. package/src/stories/.GitHubActivityCard.stories.md +41 -0
  700. package/src/stories/.GuideWelcome.stories.md +38 -0
  701. package/src/stories/.Header.stories.md +32 -22
  702. package/src/stories/.HubspotTicketCard.stories.md +41 -0
  703. package/src/stories/.InfoCard.stories.md +37 -26
  704. package/src/stories/.InfoCardRow.stories.md +48 -0
  705. package/src/stories/.InfoSection.stories.md +55 -0
  706. package/src/stories/.Input.stories.md +45 -35
  707. package/src/stories/.InvestorUpdateCard.stories.md +41 -0
  708. package/src/stories/.MarqueeWall.stories.md +53 -0
  709. package/src/stories/.MingoAiButton.stories.md +31 -0
  710. package/src/stories/.MingoChatModals.stories.md +47 -0
  711. package/src/stories/.MingoInfoCard.stories.md +50 -0
  712. package/src/stories/.MingoOnboardingCard.stories.md +19 -19
  713. package/src/stories/.MingoWelcome.stories.md +41 -0
  714. package/src/stories/.MobileNavPanel.stories.md +52 -0
  715. package/src/stories/.Modal.stories.md +19 -16
  716. package/src/stories/.MspOrganizationCard.stories.md +45 -0
  717. package/src/stories/.NotificationDrawer.stories.md +39 -28
  718. package/src/stories/.OSTypeBadge.stories.md +34 -25
  719. package/src/stories/.OnboardingGuideCard.stories.md +41 -0
  720. package/src/stories/.PageActions.stories.md +21 -21
  721. package/src/stories/.PageContainer.stories.md +29 -24
  722. package/src/stories/.PageLayout.stories.md +18 -35
  723. package/src/stories/.PolicyConfigurationPanel.stories.md +58 -0
  724. package/src/stories/.ProductReleaseCard.stories.md +39 -0
  725. package/src/stories/.ProgramCard.stories.md +51 -0
  726. package/src/stories/.QuickActionChip.stories.md +59 -0
  727. package/src/stories/.QuickActionMarquee.stories.md +51 -0
  728. package/src/stories/.QuickActionWall.stories.md +58 -0
  729. package/src/stories/.RoadmapCard.stories.md +41 -0
  730. package/src/stories/.ShellTypeBadge.stories.md +42 -22
  731. package/src/stories/.SlackMessageCard.stories.md +42 -0
  732. package/src/stories/.SlashCommandSuggestions.stories.md +21 -31
  733. package/src/stories/.SplitButton.stories.md +23 -25
  734. package/src/stories/.StackedRowsPanel.stories.md +65 -0
  735. package/src/stories/.TabSelector.stories.md +26 -38
  736. package/src/stories/.Tag.stories.md +32 -27
  737. package/src/stories/.ThinkingDisplay.stories.md +43 -0
  738. package/src/stories/.TicketCard.stories.md +60 -0
  739. package/src/stories/.TicketInfoSection.stories.md +28 -20
  740. package/src/stories/.TimeTracker.stories.md +35 -0
  741. package/src/stories/.Toaster.stories.md +26 -20
  742. package/src/stories/.ToolBadge.stories.md +34 -24
  743. package/src/stories/.ToolExecutionDisplay.stories.md +22 -20
  744. package/src/stories/.ToolExecutionDisplayClient.stories.md +33 -0
  745. package/src/stories/.VideoBitesStrip.stories.md +37 -0
  746. package/src/stories/.WarningBlock.stories.md +51 -0
  747. package/src/stories/__fixtures__/.chat-card-decorator.md +39 -0
  748. package/src/stories/__fixtures__/.chat-cards.md +57 -0
  749. package/src/stories/auth/.CompleteAccount.stories.md +36 -0
  750. package/src/stories/auth/.CreateOrganization.stories.md +52 -0
  751. package/src/stories/auth/.InviteLinkInvalid.stories.md +21 -0
  752. package/src/stories/auth/.Login.stories.md +32 -0
  753. package/src/stories/auth/.OpenFrameSso.stories.md +58 -0
  754. package/src/stories/auth/.PasswordReset.stories.md +49 -0
  755. package/src/styles/ods-interaction-states.css +32 -0
  756. package/src/types/.announcement.md +67 -35
  757. package/src/types/.blog.md +44 -41
  758. package/src/types/.case-study.md +31 -17
  759. package/src/types/.content-ref.md +37 -0
  760. package/src/types/.customer-interview.md +38 -38
  761. package/src/types/.doc-source.md +87 -0
  762. package/src/types/.entity-author.md +53 -0
  763. package/src/types/.entity-platform.md +40 -0
  764. package/src/types/.index.md +23 -17
  765. package/src/types/.marketing.md +32 -35
  766. package/src/types/.navigation.md +31 -19
  767. package/src/types/.os.types.md +30 -31
  768. package/src/types/.permissions.md +49 -35
  769. package/src/types/.platform.md +44 -28
  770. package/src/types/.product-release.md +59 -42
  771. package/src/types/.shell.types.md +46 -30
  772. package/src/types/.supabase.md +43 -29
  773. package/src/types/.tool.types.md +43 -23
  774. package/src/types/.video-processing.md +40 -31
  775. package/src/types/supabase.ts +80 -0
  776. package/src/types/video-processing.ts +1 -0
  777. package/src/utils/.announcement-storage.md +49 -17
  778. package/src/utils/.app-config.md +22 -18
  779. package/src/utils/.brand-marks.md +46 -0
  780. package/src/utils/.cn.md +40 -29
  781. package/src/utils/.color-analysis.md +34 -25
  782. package/src/utils/.common.md +43 -23
  783. package/src/utils/.content-href.md +64 -0
  784. package/src/utils/.content-ref-groups.md +51 -0
  785. package/src/utils/.date-utils.md +46 -35
  786. package/src/utils/.doc-path-utils.md +38 -0
  787. package/src/utils/.doc-tree-nav.md +51 -0
  788. package/src/utils/.embed-authed-fetch.md +48 -32
  789. package/src/utils/.embed-content-fetch.md +36 -0
  790. package/src/utils/.embed-url-converters.md +52 -0
  791. package/src/utils/.extract-items.md +49 -0
  792. package/src/utils/.faq-anchor.md +48 -0
  793. package/src/utils/.format.md +73 -55
  794. package/src/utils/.humanity-signals.md +59 -0
  795. package/src/utils/.index.md +73 -31
  796. package/src/utils/.list-url.md +43 -0
  797. package/src/utils/.markdown-section-extractor.md +57 -0
  798. package/src/utils/.markdown-to-plain.md +51 -0
  799. package/src/utils/.media-carousel-utils-stub.md +42 -31
  800. package/src/utils/.ods-color-utils.md +84 -43
  801. package/src/utils/.og-placeholder.md +45 -0
  802. package/src/utils/.page-header-constants.md +26 -0
  803. package/src/utils/.platform-config.md +34 -34
  804. package/src/utils/.release-badge.md +47 -0
  805. package/src/utils/.release-cover.md +45 -0
  806. package/src/utils/.same-page-hash-nav.md +45 -0
  807. package/src/utils/.scroll-into-view.md +32 -25
  808. package/src/utils/.seo-description.md +37 -0
  809. package/src/utils/.seo-title.md +25 -0
  810. package/src/utils/.social-embed-cache.md +37 -0
  811. package/src/utils/.source-icons.md +30 -34
  812. package/src/utils/.suggestion-url.md +46 -0
  813. package/src/utils/.tool-utils.md +39 -24
  814. package/src/utils/.tree-builder.md +64 -0
  815. package/src/utils/.video-bite-id.md +42 -0
  816. package/src/utils/announcement-storage.ts +9 -18
  817. package/src/utils/dev-sections/.dev-section-param-keys.md +51 -0
  818. package/src/utils/dev-sections/.openframe-dev-sections.md +40 -28
  819. package/src/utils/dismiss-cookie.ts +55 -0
  820. package/src/utils/dismissal-storage.ts +38 -0
  821. package/src/utils/index.ts +3 -0
  822. package/dist/chunk-BBUEY73L.js.map +0 -1
  823. package/dist/chunk-G3UN2DXU.cjs.map +0 -1
  824. package/dist/chunk-OWMLWJQY.cjs.map +0 -1
  825. package/dist/chunk-SASR7SK5.js.map +0 -1
  826. package/src/components/chat/utils/.onboarding-icons.md +0 -28
  827. package/src/hooks/.use-og-placeholder.md +0 -51
  828. /package/dist/{chunk-MGKCS6KS.js.map → chunk-3WCARCI4.js.map} +0 -0
  829. /package/dist/{chunk-Y3Y2DLNO.js.map → chunk-6UGYBCEN.js.map} +0 -0
  830. /package/dist/{chunk-PSPWT2Q5.js.map → chunk-7LWXWXEY.js.map} +0 -0
  831. /package/dist/{chunk-VTSRDC4W.js.map → chunk-CKC3EAYT.js.map} +0 -0
  832. /package/dist/{chunk-ZRANZNEA.js.map → chunk-JJE5TUZK.js.map} +0 -0
  833. /package/dist/{chunk-66BNAFO6.js.map → chunk-JQIUBFHL.js.map} +0 -0
  834. /package/dist/{chunk-2DIOV7BR.js.map → chunk-UPN6EFOM.js.map} +0 -0
  835. /package/dist/{chunk-4SMRQ4SN.js.map → chunk-WBL5Y4PS.js.map} +0 -0
  836. /package/dist/{chunk-FP4H6Y5O.js.map → chunk-WPYPSIY2.js.map} +0 -0
  837. /package/dist/{chunk-R5WJJL4V.js.map → chunk-X5X43HFV.js.map} +0 -0
  838. /package/dist/{chunk-DEHZ5CTC.js.map → chunk-XTWKDMCG.js.map} +0 -0
@@ -1,44 +1,58 @@
1
- <!-- source-hash: 18962d8a10f85127f723da06d9d49622 -->
2
- A React component for creating visual step-by-step progress indicators with automatic state management and connecting lines between steps.
1
+ <!-- source-hash: 061e3bda4b366c5ccd3858bef10b0bc5 -->
2
+ A client-side React component pair for rendering a vertical step-by-step progress indicator, automatically tracking active, completed, and pending states.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`Steps`**: Main container component that manages step numbering and state distribution
7
- - Props: `currentStep` (number), standard HTML div attributes
8
- - Automatically counts children and passes state to each step
9
- - **`Step`**: Individual step component with indicator, title, and optional description
10
- - Props: `title` (string), `description?` (string), plus auto-injected state props
11
- - Renders step number or checkmark based on completion state
6
+ - **`Steps`** Container component that manages step state. Accepts `currentStep` (1-based index) and automatically injects `stepNumber`, `isActive`, `isCompleted`, and `isLast` props into child `Step` components.
7
+ - **`Step`** Individual step item displaying a numbered circle indicator, title, optional description, and a connecting vertical line. Renders a checkmark SVG when completed.
8
+
9
+ ### Props
10
+
11
+ **`Steps`**
12
+
13
+ | Prop | Type | Description |
14
+ |---|---|---|
15
+ | `currentStep` | `number` | 1-based index of the currently active step |
16
+ | `className` | `string` | Optional additional CSS classes |
17
+
18
+ **`Step`**
19
+
20
+ | Prop | Type | Description |
21
+ |---|---|---|
22
+ | `title` | `string` | Step label (required) |
23
+ | `description` | `string` | Optional subtitle text |
24
+ | `stepNumber` | `number` | Auto-injected by `Steps` |
25
+ | `isActive` | `boolean` | Auto-injected by `Steps` |
26
+ | `isCompleted` | `boolean` | Auto-injected by `Steps` |
27
+ | `isLast` | `boolean` | Auto-injected by `Steps`; suppresses connecting line |
12
28
 
13
29
  ## Usage Example
14
30
 
15
31
  ```typescript
16
- import { Steps, Step } from "./components/ui/steps"
32
+ import { Steps, Step } from "@/components/steps"
17
33
 
18
- function RegistrationWizard() {
19
- const [currentStep, setCurrentStep] = useState(2)
34
+ export function OnboardingFlow() {
35
+ const [currentStep, setCurrentStep] = React.useState(2)
20
36
 
21
37
  return (
22
38
  <Steps currentStep={currentStep}>
23
- <Step
24
- title="Account Setup"
25
- description="Create your account credentials"
26
- />
27
- <Step
28
- title="Profile Information"
29
- description="Add your personal details"
39
+ <Step
40
+ title="Create Account"
41
+ description="Enter your email and password"
30
42
  />
31
- <Step
32
- title="Verification"
33
- description="Verify your email address"
43
+ <Step
44
+ title="Verify Email"
45
+ description="Check your inbox for a confirmation link"
34
46
  />
35
- <Step
36
- title="Complete"
37
- description="Your account is ready"
47
+ <Step
48
+ title="Set Up Profile"
49
+ description="Add your name and preferences"
38
50
  />
39
51
  </Steps>
40
52
  )
41
53
  }
42
54
  ```
43
55
 
44
- The component automatically handles visual states (active, completed, pending) and renders connecting lines between steps. Each step displays a numbered indicator that becomes a checkmark when completed.
56
+ > **Note:** Only direct `Step` children are enhanced with state props other elements pass through unchanged. `stepNumber`, `isActive`, `isCompleted`, and `isLast` are injected automatically; do not pass them manually.
57
+
58
+ **Source:** [`steps.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/steps.tsx)
@@ -1,20 +1,37 @@
1
- <!-- source-hash: 2db0b6673e5d8f02f2a3713fb6528d5d -->
2
- Renders the appropriate logo icon for a given MSP tool type (Fleet MDM, MeshCentral, Authentik, Osquery, or OpenFrame variants).
1
+ <!-- source-hash: 4b8b44919fa215934fa2f582b48d9c94 -->
2
+ Renders the appropriate logo icon for a given MSP tool type, mapping each `ToolType` to its corresponding icon component.
3
3
 
4
4
  ## Key Components
5
5
 
6
+ ### `ToolIcon` (`React.FC<ToolIconProps>`)
7
+ The primary exported component. Looks up the correct icon renderer from `toolIconMap` using the provided `toolType` and delegates rendering with `size` and `className`.
8
+
6
9
  ### `toolIconMap`
7
- Internal mapping from each `ToolType` value to its corresponding icon renderer function. OpenFrame variants (`OPENFRAME`, `OPENFRAME_CHAT`, `OPENFRAME_CLIENT`) all share `renderOpenFrameLogo`, while `SYSTEM` renders nothing (`null`).
10
+ Internal mapping of every `ToolType` value to a render function returning a `React.ReactNode`. All OpenFrame variants share `renderOpenFrameLogo`; `SYSTEM` renders `null`.
11
+
12
+ ### `renderOpenFrameLogo`
13
+ Private helper that renders the `OpenFrameLogo` with themed CSS variable colors (`--color-accent-primary`, `--color-text-primary`).
14
+
15
+ ## Supported Tool Types
8
16
 
9
- ### `ToolIconProps`
10
- | Prop | Type | Default | Description |
11
- |------|------|---------|-------------|
12
- | `toolType` | `ToolType` | required | The tool whose icon should be rendered |
13
- | `size` | `number` | `16` | Width/height passed to the icon component |
14
- | `className` | `string` | — | Optional CSS class override |
17
+ | Tool Type | Icon Component |
18
+ |---|---|
19
+ | `FLEET_MDM` | `FleetMdmLogoGreyIcon` |
20
+ | `MESHCENTRAL` | `MeshcentralLogoGreyIcon` |
21
+ | `OPENFRAME` / `OPENFRAME_CHAT` / `OPENFRAME_CLIENT` / `OPENFRAME_RMM` | `OpenFrameLogo` |
22
+ | `AUTHENTIK` | `AuthentikLogoGreyIcon` |
23
+ | `OSQUERY` | `OsqueryLogoGreyIcon` |
24
+ | `SYSTEM` | *(none — renders `null`)* |
15
25
 
16
- ### `ToolIcon`
17
- A functional React component that looks up the icon renderer from `toolIconMap` and invokes it with `size` and `className`. Returns `null` for unknown or `SYSTEM` tool types.
26
+ ## Props
27
+
28
+ ```typescript
29
+ interface ToolIconProps {
30
+ toolType: ToolType; // Required — determines which icon to render
31
+ size?: number; // Icon size in px (default: 16)
32
+ className?: string; // Optional CSS class override
33
+ }
34
+ ```
18
35
 
19
36
  ## Usage Example
20
37
 
@@ -22,16 +39,12 @@ A functional React component that looks up the icon renderer from `toolIconMap`
22
39
  import { ToolIcon } from "./tool-icon";
23
40
  import { ToolTypeValues } from "../types/tool.types";
24
41
 
25
- // Render a Fleet MDM icon at default size (16px)
26
- <ToolIcon toolType={ToolTypeValues.FLEET_MDM} />
42
+ // Render a Fleet MDM icon at 24px
43
+ <ToolIcon toolType={ToolTypeValues.FLEET_MDM} size={24} />
27
44
 
28
- // Render a MeshCentral icon at 24px with a custom class
29
- <ToolIcon
30
- toolType={ToolTypeValues.MESHCENTRAL}
31
- size={24}
32
- className="h-6 w-6 text-accent"
33
- />
45
+ // Render an OpenFrame icon with a custom class
46
+ <ToolIcon toolType={ToolTypeValues.OPENFRAME} className="h-6 w-auto" />
34
47
 
35
- // Renders nothing — SYSTEM has no visual icon
36
- <ToolIcon toolType={ToolTypeValues.SYSTEM} />
48
+ // SYSTEM type renders nothing
49
+ <ToolIcon toolType={ToolTypeValues.SYSTEM} /> // → null
37
50
  ```
@@ -1,27 +1,33 @@
1
- <!-- source-hash: 1d107abaa66df6045feade13e2cfcdf0 -->
2
- Provides a unified, URL-driven AND-based filtering system for Next.js pages, exposing a React hook and pre-built filter configurations for managing multi-dimensional filter state via search parameters.
1
+ <!-- source-hash: 1f118a5b523ee85acc9c21e5793f2dea -->
2
+ Provides unified AND-based filter logic for URL-driven filtering across different content types (vendors, blog, etc.), managing filter state via search parameters.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### Interfaces
7
- - **`FilterState`** — Represents the current filter state: `search`, `categories`, `subcategories`, `tags`, `filters`, `pricing`, and `page`
8
- - **`FilterConfig`** — Configures a filter instance with a `basePath` and a feature flag map (`supportedFilters`) to enable/disable filter dimensions
7
+
8
+ - **`FilterState`** — Shape of the active filter state: `search`, `categories`, `subcategories`, `tags`, `filters`, `pricing`, `page`
9
+ - **`FilterConfig`** — Per-route configuration declaring `basePath` and which filter types are supported
9
10
 
10
11
  ### Hook
11
- - **`useUnifiedFiltering(config)`** — Core hook that reads/writes filter state from URL search params using AND logic. Returns:
12
- - `getCurrentFilterState()`Parses current URL params into a `FilterState` object
13
- - `updateFilters(newFilters, preserveScroll?)` — Rebuilds the URL with merged filter state
14
- - `addFilter(type, value, preserveScroll?)` — Appends a value to a filter dimension
15
- - `removeFilter(type, value?, preserveScroll?)` — Removes a specific or all values from a filter dimension
16
- - `toggleFilter(type, value, preserveScroll?)` Adds or removes a value depending on current state
17
- - `clearAllFilters()` Navigates to the base path, removing all params
18
- - `getFilterChips(categories?, tags?)` Generates display chip descriptors from active filters
19
- - `handleFilterChipRemove(chipId)` Removes a filter based on a chip's `id` string
20
- - `isPending` React transition pending state for UI feedback
12
+
13
+ **`useUnifiedFiltering(config: FilterConfig)`**Core hook that reads/writes filter state from URL search params. Returns:
14
+
15
+ | Method | Description |
16
+ |---|---|
17
+ | `getCurrentFilterState()` | Parses current URL params into a `FilterState` object |
18
+ | `updateFilters(partial, preserveScroll?)` | Merges new filters into state and pushes updated URL |
19
+ | `addFilter(type, value, preserveScroll?)` | Appends a value to a multi-select filter |
20
+ | `removeFilter(type, value?, preserveScroll?)` | Removes a specific value or clears a filter type |
21
+ | `toggleFilter(type, value, preserveScroll?)` | Adds if absent, removes if present |
22
+ | `clearAllFilters()` | Navigates to `basePath` with no params |
23
+ | `getFilterChips(categories?, tags?)` | Returns display-ready chip objects for active filters |
24
+ | `handleFilterChipRemove(chipId)` | Parses chip ID and dispatches the correct `removeFilter` call |
25
+ | `isPending` | React transition pending state |
21
26
 
22
27
  ### Pre-built Configs
23
- - **`vendorFilterConfig`** — Config for `/vendors` with categories, subcategories, filters, pricing, and search enabled
24
- - **`blogFilterConfig`** — Config for `/blog` with categories, tags, and search enabled
28
+
29
+ - **`vendorFilterConfig`** — `/vendors` route; enables categories, subcategories, filters, pricing, and search
30
+ - **`blogFilterConfig`** — `/blog` route; enables categories, tags, and search
25
31
 
26
32
  ## Usage Example
27
33
 
@@ -29,35 +35,25 @@ Provides a unified, URL-driven AND-based filtering system for Next.js pages, exp
29
35
  import { useUnifiedFiltering, vendorFilterConfig } from './unified-filter-logic'
30
36
 
31
37
  function VendorFilters() {
32
- const {
33
- getCurrentFilterState,
34
- toggleFilter,
35
- clearAllFilters,
36
- getFilterChips,
37
- handleFilterChipRemove,
38
- isPending
39
- } = useUnifiedFiltering(vendorFilterConfig)
38
+ const { getCurrentFilterState, toggleFilter, clearAllFilters, isPending } =
39
+ useUnifiedFiltering(vendorFilterConfig)
40
40
 
41
41
  const state = getCurrentFilterState()
42
42
 
43
43
  return (
44
44
  <div>
45
45
  <button onClick={() => toggleFilter('categories', 'security')}>
46
- Toggle Security
46
+ Security
47
47
  </button>
48
48
  <button onClick={() => toggleFilter('pricing', 'free')}>
49
- Toggle Free
49
+ Free
50
+ </button>
51
+ <button onClick={clearAllFilters} disabled={isPending}>
52
+ Clear All
50
53
  </button>
51
- <button onClick={clearAllFilters}>Clear All</button>
52
-
53
- {getFilterChips().map(chip => (
54
- <span key={chip.id} onClick={() => handleFilterChipRemove(chip.id)}>
55
- {chip.label} ✕
56
- </span>
57
- ))}
58
-
59
- {isPending && <span>Loading...</span>}
60
54
  </div>
61
55
  )
62
56
  }
63
- ```
57
+ ```
58
+
59
+ > **AND semantics:** All active filters must match simultaneously. Selecting two categories returns only items that belong to both.
@@ -1,43 +1,48 @@
1
- <!-- source-hash: 5607b9ca5e1826a2e00e830debb04c5d -->
2
- A reusable React component that displays a user's avatar, name, and optional subtitle in a horizontal layout, following the visual pattern used in comment headers and user cards.
1
+ <!-- source-hash: f339cfe147ff6ce0d04d2438b39e4c5e -->
2
+ Reusable horizontal layout component that renders a user's avatar alongside their name and an optional subtitle, following the visual pattern established by `CommentCard` headers.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`UserDisplay`** - Main component that renders a horizontal user information row
7
- - **`UserDisplayProps`** - TypeScript interface defining component props including name, avatar URL, subtitle, size, and styling options
8
- - **`SquareAvatar`** - Imported avatar component for displaying user profile images
9
- - **`cn`** - Utility function for conditional class name merging
6
+ ### `UserDisplay` (exported function component)
10
7
 
11
- ## Usage Example
8
+ Composes a `SquareAvatar` with a text column for user identity display.
12
9
 
13
- ```typescript
14
- import { UserDisplay } from './user-display';
10
+ **Props (`UserDisplayProps`):**
15
11
 
16
- // Basic user display
17
- <UserDisplay name="John Doe" />
12
+ | Prop | Type | Default | Description |
13
+ |---|---|---|---|
14
+ | `name` | `string` | — | Display name; also used as avatar fallback initials |
15
+ | `avatarUrl` | `string \| null` | — | Optional avatar image URL; routed through the image proxy |
16
+ | `subtitle` | `string \| null` | — | Secondary text (e.g., relative timestamp) |
17
+ | `size` | `number` | `32` | Avatar size in pixels |
18
+ | `shape` | `'square' \| 'round'` | `'square'` | Corner treatment forwarded to `SquareAvatar` |
19
+ | `compact` | `boolean` | `false` | Switches to smaller typography (`text-h6`) for dense overlays |
20
+ | `className` | `string` | — | Additional CSS classes on the root element |
21
+
22
+ ## Usage Example
18
23
 
19
- // With avatar and subtitle
20
- <UserDisplay
24
+ ```typescript
25
+ // Standard header row
26
+ <UserDisplay
21
27
  name="Jane Smith"
22
- avatarUrl="/avatars/jane.jpg"
28
+ avatarUrl="https://example.com/jane.jpg"
23
29
  subtitle="2 hours ago"
24
30
  />
25
31
 
26
- // Custom size and styling
27
- <UserDisplay
28
- name="Bob Wilson"
29
- avatarUrl="/avatars/bob.jpg"
30
- subtitle="Online now"
31
- size={48}
32
- className="bg-gray-50 p-2 rounded"
32
+ // Compact rounded avatar for video-bite overlays
33
+ <UserDisplay
34
+ name="Alex Rivera"
35
+ avatarUrl={user.avatarUrl}
36
+ subtitle="Just now"
37
+ size={24}
38
+ shape="round"
39
+ compact
33
40
  />
34
41
 
35
- // Handling null/undefined values
36
- <UserDisplay
37
- name="Anonymous User"
38
- avatarUrl={null}
39
- subtitle={undefined}
40
- />
42
+ // Name-only, no avatar URL (falls back to initials)
43
+ <UserDisplay name="Bob Chen" />
41
44
  ```
42
45
 
43
- The component uses DM Sans font styling and includes truncation for long names/subtitles to prevent layout overflow. It's designed to be flexible with optional props while maintaining consistent visual patterns across the application.
46
+ > **Image proxying:** `avatarUrl` is automatically passed through `getProxiedImageUrl`; the original URL is used as a fallback if the proxy returns `null`.
47
+
48
+ **Source:** [`user-display.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/user-display.tsx)
@@ -1,57 +1,64 @@
1
- <!-- source-hash: e8fdad9190b0ce783dc9a5712636e90d -->
2
- A client-side React component that renders a user profile summary card with avatar, name, email/subtitle, auth provider icons, and optional MSP organization preview data.
1
+ <!-- source-hash: a3840a17be72a89053bcafc4a27bfd01 -->
2
+ A client-side React component that renders a user profile summary card with avatar, name, email/subtitle, auth provider icons, and optional MSP organization preview — supporting both full and compact display modes.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### `UserSummary` (exported component)
7
- The primary export. Accepts a `Props` interface and renders in two layout modes:
8
- - **Compact mode** (`compact=true`): Horizontal row with small avatar, name, and subtitle — intended for comment headers or inline contexts.
9
- - **Full mode** (default): Vertical card with large avatar, name, email, MSP info row, and auth provider badges. Responsive with a separate mobile row for auth/edit controls.
10
-
11
- ### `getAuthProviderIcon(provider)`
12
- Internal helper that maps provider strings (`"google"`, `"microsoft"`, `"azure"`, `"slack"`) to icon elements.
13
-
14
- ### `formatNumber(n)`
15
- Internal utility that abbreviates large numbers (e.g., `1200 → 1.2K`, `2000000 → 2M`, `1500000000 → 1.5B`).
16
-
17
- ## Key Props
6
+ ### `UserSummary` (default export)
7
+ The primary component accepting the following props:
18
8
 
19
9
  | Prop | Type | Description |
20
10
  |---|---|---|
21
- | `name` / `email` | `string` | Required user identity fields |
22
- | `avatarUrl` | `string \| null` | Optional avatar, proxied via `getProxiedImageUrl` |
23
- | `mspPreview` | object | Optional MSP org info (name, seats, revenue, logo badge) |
24
- | `compact` | `boolean` | Switches to minimal horizontal layout |
25
- | `authProviders` | `string[]` | Displays provider icons (Google, Microsoft, Slack) |
26
- | `showEditButton` | `boolean` | Shows an edit profile affordance |
11
+ | `name` | `string` | User's display name |
12
+ | `email` | `string` | User's email address |
13
+ | `avatarUrl` | `string \| null` | Optional avatar image URL (proxied) |
14
+ | `subtitle` | `string \| null` | Replaces the email line when provided |
15
+ | `authProviders` | `string[]` | Provider names (e.g. `"google"`, `"microsoft"`) |
16
+ | `mspPreview` | `object \| null` | MSP org info: name, logo, seat/technician count, revenue |
17
+ | `compact` | `boolean` | Horizontal mini-row mode for comment headers |
18
+ | `avatarSize` | `number` | Avatar px size in compact mode (default `40`) |
19
+ | `showEditButton` | `boolean` | Renders an Edit Profile placeholder |
20
+ | `editablePhoto` | `boolean` | Swaps static avatar for an upload widget |
21
+ | `onPhotoChange` | `(url) => void` | Callback when photo is updated |
22
+
23
+ ### Internal Helpers
24
+
25
+ - **`getAuthProviderIcon(provider)`** — returns an `<Image>` or fallback `<div>` for Google, Microsoft/Azure, and Slack providers.
26
+ - **`formatNumber(n)`** — abbreviates large numbers to `K`, `M`, or `B` suffixes (e.g. `15000 → 15K`).
27
27
 
28
28
  ## Usage Example
29
29
 
30
30
  ```typescript
31
31
  import { UserSummary } from "./user-summary-stub";
32
32
 
33
- // Full card with MSP info
33
+ // Full card
34
34
  <UserSummary
35
- name="Jane Smith"
35
+ name="Jane Doe"
36
36
  email="jane@example.com"
37
- avatarUrl="https://cdn.example.com/jane.jpg"
37
+ avatarUrl="https://cdn.example.com/avatar.png"
38
38
  authProviders={["google"]}
39
- showEditButton
40
39
  mspPreview={{
41
- name: "Acme MSP",
42
- seatCount: 1500,
43
- technicianCount: 12,
44
- annualRevenue: 2000000,
45
- logoUrl: "https://cdn.example.com/acme-logo.png",
40
+ name: "Acme IT",
41
+ seatCount: 1200,
42
+ technicianCount: 8,
43
+ annualRevenue: 2500000,
44
+ logoUrl: "https://cdn.example.com/msp-logo.png",
46
45
  }}
46
+ showEditButton
47
47
  />
48
48
 
49
- // Compact mode for comment headers
49
+ // Compact mode (e.g. comment header)
50
50
  <UserSummary
51
- name="Jane Smith"
51
+ name="Jane Doe"
52
52
  email="jane@example.com"
53
+ subtitle="2 hours ago"
53
54
  compact
54
55
  avatarSize={32}
55
- subtitle="2 hours ago"
56
56
  />
57
- ```
57
+ ```
58
+
59
+ ## Notes
60
+
61
+ - Avatar images are routed through `getProxiedImageUrl` to avoid CORS/hotlinking issues.
62
+ - Falls back to initials (up to 2 characters in compact, 1 character in full mode) when no `avatarUrl` is provided.
63
+ - Auth provider icons and the Edit button are rendered in a responsive layout — stacked on mobile, inline on `md+` screens.
64
+ - Source: [`user-summary-stub.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/user-summary-stub.tsx)
@@ -1,38 +1,40 @@
1
- <!-- source-hash: 6fb4d3c3dedfd71f1af226c49bd112fd -->
2
- A client-side React button component that renders a vendor with its logo and title, supporting two visual variants and navigation to vendor profile pages.
1
+ <!-- source-hash: e35b5566a5ac5d477a67495f201ffd48 -->
2
+ A React client component that renders a clickable vendor button with logo and title, supporting two visual variants (`default` and `compact`) and two navigation modes (external URL or callback).
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `VendorDisplayButtonProps`
7
+
7
8
  | Prop | Type | Description |
8
9
  |------|------|-------------|
9
10
  | `vendor` | `VendorWithMedia` | Vendor data including slug, title, and media |
10
- | `onClick` | `(vendorSlug: string) => void` | Optional internal click handler |
11
- | `variant` | `'default' \| 'compact'` | Display style (defaults to `'default'`) |
12
- | `externalUrl` | `string` | Fallback base URL for external navigation |
11
+ | `onClick` | `(vendorSlug: string) => void` | Callback invoked with the vendor slug (used when no `externalUrl`) |
12
+ | `variant` | `'default' \| 'compact'` | Visual size variant; defaults to `'default'` |
13
+ | `externalUrl` | `string` | Caller-resolved platform base URL; opens `{externalUrl}/vendor/{slug}` in a new tab |
13
14
 
14
15
  ### `VendorDisplayButton`
15
- Main export. Renders one of two button variants:
16
- - **`default`** — Card-style button with an 8×8 logo container, used in standard listings
17
- - **`compact`** — Pill-shaped button with a smaller 5×5 logo, designed for teaser/inline contexts (e.g. `flamingo-teaser`)
18
16
 
19
- Logo display gracefully falls back to the vendor's initial character when no logo URL is available. External navigation uses `NEXT_PUBLIC_OPENMSP_URL` env variable with `externalUrl` as fallback, opening in a new tab.
17
+ Exported named component. Renders either:
18
+ - **`compact`** — pill-shaped button (`rounded-full`) with a 20×20px logo, suited for inline teaser contexts.
19
+ - **`default`** — card-style button (`rounded-lg`) with a 24×24px logo in an 8×8 container, suited for list or grid layouts.
20
+
21
+ Both variants fall back to an uppercase initial letter when no logo is available, and route clicks through a shared `handleClick` that prefers `externalUrl` over the `onClick` callback.
20
22
 
21
23
  ## Usage Example
22
24
 
23
25
  ```typescript
24
- import { VendorDisplayButton } from "./vendor-display-button"
25
-
26
- // Default variant — navigates externally
26
+ // External URL navigation (opens OpenMSP vendor page in new tab)
27
27
  <VendorDisplayButton
28
28
  vendor={vendorWithMedia}
29
- externalUrl="https://www.openmsp.ai"
29
+ externalUrl="https://openmsp.ai"
30
30
  />
31
31
 
32
- // Compact variant triggers internal handler
32
+ // Compact variant with local callback
33
33
  <VendorDisplayButton
34
34
  vendor={vendorWithMedia}
35
35
  variant="compact"
36
36
  onClick={(slug) => router.push(`/vendors/${slug}`)}
37
37
  />
38
- ```
38
+ ```
39
+
40
+ > **Note:** `externalUrl` should be a fully-qualified, scheme-normalized URL (e.g. `https://openmsp.ai`) — not a scheme-less string — to avoid the relative `window.open()` bug that existed with the removed `NEXT_PUBLIC_OPENMSP_URL` environment variable.
@@ -1,5 +1,5 @@
1
- <!-- source-hash: f84ca33f36e32d62304615a416d5acac -->
2
- Renders a vendor logo icon with configurable size, background style, and fallback initials when no logo is available.
1
+ <!-- source-hash: 0675587ecef66c442db7c41fb0de799a -->
2
+ Renders a vendor logo image with configurable size, background style, and fallback initials display for use across comparison tables, dropdowns, and other UI contexts.
3
3
 
4
4
  ## Key Components
5
5
 
@@ -7,46 +7,38 @@ Renders a vendor logo icon with configurable size, background style, and fallbac
7
7
  | Prop | Type | Default | Description |
8
8
  |------|------|---------|-------------|
9
9
  | `vendor` | `VendorWithMedia & { id?, title, slug?, logo? }` | — | Vendor data including logo URL |
10
- | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'l' \| 'xl'` | `'md'` | Icon container size |
10
+ | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'l' \| 'xl'` | `'md'` | Controls container and image dimensions |
11
11
  | `className` | `string` | `''` | Additional CSS classes |
12
- | `showBackground` | `boolean` | `true` | Toggles container background/border |
13
- | `backgroundStyle` | `'dark' \| 'light' \| 'white'` | `'dark'` | Container background variant |
12
+ | `showBackground` | `boolean` | `true` | Toggles rounded background container |
13
+ | `backgroundStyle` | `'dark' \| 'light' \| 'white'` | `'dark'` | Background and border color theme |
14
14
 
15
- ### Size Map
16
- | Size | Container | Image (px) |
17
- |------|-----------|------------|
18
- | `xs` | 24×24 | 16×16 |
19
- | `sm` | 32×32 | 20×20 |
20
- | `md` | 40×40 | 32×32 |
21
- | `lg` | 48×48 | 40×40 |
22
- | `xl` | 64×64 | 40×40 |
23
-
24
- ### `VendorIcon` (named export)
25
- The primary export. Resolves the logo via `getVendorLogo`, proxies the URL via `getProxiedImageUrl`, and falls back to a two-character uppercase initials placeholder when no logo is found.
15
+ ### `VendorIcon` (exported component)
16
+ Resolves the logo URL via `getVendorLogo`, proxies it through `getProxiedImageUrl`, and renders an `Image` element. Falls back to a two-character uppercase initials placeholder when no logo is available.
26
17
 
27
18
  ## Usage Example
28
19
 
29
20
  ```typescript
30
21
  import { VendorIcon } from './vendor-icon'
31
22
 
32
- // Default dark background, medium size
33
- <VendorIcon vendor={vendor} />
23
+ // Basic usage with defaults
24
+ <VendorIcon vendor={{ title: 'Acme Corp', logo: 'https://cdn.example.com/acme.png' }} />
34
25
 
35
- // White background, large, no border
26
+ // Large icon with white background, no border
36
27
  <VendorIcon
37
- vendor={vendor}
38
- size="lg"
28
+ vendor={{ title: 'Acme Corp', logo: 'https://cdn.example.com/acme.png' }}
29
+ size="xl"
39
30
  backgroundStyle="white"
40
- showBackground={true}
41
31
  />
42
32
 
43
- // Logo only, no background (e.g. inside a styled card)
33
+ // No background fills parent container directly
44
34
  <VendorIcon
45
- vendor={vendor}
35
+ vendor={{ title: 'Unknown Vendor' }}
46
36
  size="sm"
47
37
  showBackground={false}
48
38
  className="rounded-full"
49
39
  />
50
40
  ```
51
41
 
52
- > When `logoUrl` resolves to `null` or `undefined`, the component renders a dark/light pill with the first two characters of `vendor.title` (e.g. `"MI"` for *Microsoft*).
42
+ When `logo` is absent or resolves to falsy, the component renders the first two characters of `vendor.title` (e.g. `"AC"`) as a text placeholder, respecting the active `backgroundStyle` for text color.
43
+
44
+ **Source:** [`vendor-icon.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/vendor-icon.tsx)