@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,42 +1,47 @@
1
- <!-- source-hash: 4f91f1efeb0b18cbf93d3b4ed385c331 -->
2
- Central barrel export for the `chat` UI package re-exports every public component, hook, utility, type, and constant from the chat feature module, making the entire surface area available via a single import path.
1
+ <!-- source-hash: 81dec73c1b378eb59ab6833dce65f1b7 -->
2
+ Public barrel index for the `chat` UI component library. Aggregates and re-exports all chat-related components, hooks, utilities, types, and entity cards for downstream consumption as a single import surface.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export | Description |
7
- |--------|-------------|
8
- | `EmbeddableChat` | Top-level chat orchestrator; mount once at the app root inside a `ChatRuntimeContext.Provider` |
9
- | `ChatRef` | Type for imperative chat handle refs |
10
- | `remarkCardLinks` | Remark plugin for rendering card-style links in chat messages |
11
- | `NavLinkAnchorViaRuntime` | Runtime-aware navigation anchor component |
12
- | `SourceActionButton` | Action button with configurable density for source references |
13
- | `ChatAttachmentAddButton` / `ChatAttachmentChipStrip` | Attachment UI with MIME type constants and upload concurrency limits |
14
- | `entity-cards` | Suite of 12+ refactored entity card components |
15
- | `hooks` | All chat-related React hooks |
16
- | `utils` | Chat utility functions |
17
- | `types` | Shared chat types and constants |
6
+ | Export Group | Description |
7
+ |---|---|
8
+ | **Core Chat UI** | `ChatContainer`, `ChatInput`, `ChatComposer`, `ChatMessageEnhanced`, `ChatMessageList`, `ChatMessageRow` |
9
+ | **AI Interaction** | `ThinkingDisplay`, `ToolExecutionDisplay`, `ToolCallBlocks`, `ApprovalRequestMessage`, `ApprovalBatchMessage` |
10
+ | **Mingo / Guide** | `MingoOnboardingCard`, `MingoWelcome`, `GuideWelcome`, `GuideModeTooltip`, `MingoChatHistory`, `MingoHistoryRail` |
11
+ | **Context & Memory** | `ChatContextPicker`, `ChatContextMemoryBar`, `ContextItemsList`, `ContextCompactionDisplay` |
12
+ | **Quick Actions** | `QuickActionChip`, `QuickActionMarquee`, `QuickActionWall` |
13
+ | **Attachments** | `ChatAttachmentAddButton`, `ChatAttachmentChipStrip`, `CHAT_ATTACHMENT_MIME_TYPES` |
14
+ | **Entity Cards** | Full set of entity cards and supporting primitives via `./entity-cards` |
15
+ | **Remark Plugins** | `remarkCardLinks`, `remarkMentionChips` |
16
+ | **Orchestrator** | `EmbeddableChat` root-level chat orchestrator, portable across host apps |
17
+ | **Primitives** | `hooks`, `utils`, `types`, `ChatRef` |
18
18
 
19
19
  ## Usage Example
20
20
 
21
21
  ```typescript
22
- // Import anything from the chat package via this single entry point
22
+ // Single import surface no deep path imports needed
23
23
  import {
24
24
  EmbeddableChat,
25
+ ChatContainer,
26
+ ChatInput,
27
+ MingoWelcome,
28
+ QuickActionChip,
25
29
  ChatAttachmentAddButton,
26
30
  CHAT_ATTACHMENT_MIME_TYPES,
31
+ remarkCardLinks,
27
32
  type ChatRef,
28
33
  type EmbeddableChatProps,
29
- } from '@flamingo/chat'
30
-
31
- function AppRoot() {
32
- const chatRef = useRef<ChatRef>(null)
34
+ type StagedAttachment,
35
+ } from '@openframe/chat'
33
36
 
37
+ // Mount the full chat orchestrator at your app root
38
+ function App() {
34
39
  return (
35
40
  <ChatRuntimeContext.Provider value={runtime}>
36
- <EmbeddableChat ref={chatRef} />
41
+ <EmbeddableChat userId="usr_123" tenantId="msp_456" />
37
42
  </ChatRuntimeContext.Provider>
38
43
  )
39
44
  }
40
45
  ```
41
46
 
42
- > **Note:** This file is marked `'use client'` — all exports are React Client Components or client-safe utilities, intended for browser rendering in Next.js App Router environments.
47
+ > **Note:** This module is marked `'use client'` — all exports are React Client Components intended for browser rendering only. Mount `EmbeddableChat` once at the root after providing a `ChatRuntimeContext.Provider`.
@@ -0,0 +1,63 @@
1
+ <!-- source-hash: 5f18f183bb0da99f376729304439764e -->
2
+ Renders a scrollable, date-grouped list of Mingo AI chat dialogs with support for row actions, unread badges, owner avatars, infinite scroll, skeleton loading states, and empty state handling.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |---|---|
8
+ | `MingoChatHistoryProps` | Primary props interface for the list component |
9
+ | `MingoChatHistory` *(default export implied)* | Root scrollable dialog list with grouped sections |
10
+ | `MingoChatHistoryRow` | Individual dialog row with title, unread badge, avatar, and actions menu |
11
+ | `MingoChatHistorySkeleton` | Animated pulse placeholder shown during initial page load |
12
+ | `groupDialogs` | Pure utility that buckets dialogs into **Today / Yesterday / Older** groups |
13
+ | `DialogGroup` | Internal type representing a labeled group of `DialogItem` entries |
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ import {
19
+ MingoChatHistory,
20
+ MingoChatHistorySkeleton,
21
+ } from '@openframe/oss-lib'
22
+ import type { DialogItem } from '@openframe/oss-lib'
23
+
24
+ const dialogs: DialogItem[] = [
25
+ {
26
+ id: 'abc-123',
27
+ title: 'Network outage triage',
28
+ timestamp: new Date(),
29
+ unreadMessagesCount: 3,
30
+ owner: { name: 'Ada Lovelace', avatarUrl: 'https://cdn.example.com/ada.png' },
31
+ },
32
+ ]
33
+
34
+ // Show skeleton while loading the first page
35
+ if (isLoading) return <MingoChatHistorySkeleton />
36
+
37
+ // Render the list once data arrives
38
+ return (
39
+ <MingoChatHistory
40
+ dialogs={dialogs}
41
+ activeDialogId="abc-123"
42
+ searchQuery={query}
43
+ hasMore={hasNextPage}
44
+ isLoadingMore={isFetchingNextPage}
45
+ onSelectDialog={(id) => router.push(`/chat/${id}`)}
46
+ onRequestRename={(dialog) => openRenameModal(dialog)}
47
+ onRequestArchive={(dialog) => openArchiveModal(dialog)}
48
+ onLoadMore={fetchNextPage}
49
+ />
50
+ )
51
+ ```
52
+
53
+ ## Behavior Notes
54
+
55
+ - **Date grouping** is computed client-side from `dialog.timestamp` (accepts both `string` and `Date`); dialogs without a timestamp fall into **Older**.
56
+ - **Infinite scroll** is driven by an Intersection Observer on a bottom sentinel; `onLoadMore` fires automatically when it enters the viewport.
57
+ - **Search** is server-side — the list renders whatever `dialogs` the host provides and uses `searchQuery` only to render the correct empty-state message.
58
+ - **Active row** renders an amber accent bar and yellow title text per the ODS design spec.
59
+ - The `⋯` actions menu is desktop-only (hidden on touch via `max-md:hidden`) and stays visible while the Radix dropdown is open via controlled `menuOpen` state.
60
+
61
+ ## Source
62
+
63
+ [`mingo-chat-history.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-chat-history.tsx)
@@ -0,0 +1,44 @@
1
+ <!-- source-hash: 84980ba72f1825d869b36d8a7a15c4e7 -->
2
+ Provides three chat management modals — Rename, Archive, and Unarchive — plus a composite `ChatDialogModals` component that renders all three together, driven by target dialog state.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |---|---|
8
+ | `RenameChatModal` | Modal with a controlled text input to rename a chat; seeds from `initialName` on open, fires `onSave` with the trimmed value |
9
+ | `ArchiveChatModal` | Destructive confirmation modal to hide a chat from the current list |
10
+ | `UnarchiveChatModal` | Confirmation modal to restore an archived chat back to the current list |
11
+ | `ChatDialogModals` | Composite wrapper rendering all three modals; pairs with `useChatDialogManager` which produces the expected prop shape |
12
+
13
+ ## Usage Example
14
+
15
+ ```typescript
16
+ // Standalone modal usage
17
+ <RenameChatModal
18
+ isOpen={isOpen}
19
+ initialName="Support Session"
20
+ onClose={() => setIsOpen(false)}
21
+ onSave={(newName) => updateChatName(chatId, newName)}
22
+ />
23
+
24
+ // Composite usage with useChatDialogManager
25
+ const dialogManager = useChatDialogManager()
26
+
27
+ <ChatDialogModals
28
+ renameTarget={dialogManager.renameTarget}
29
+ setRenameTarget={dialogManager.setRenameTarget}
30
+ onConfirmRename={(name) => renameChat(name)}
31
+ archiveTarget={dialogManager.archiveTarget}
32
+ setArchiveTarget={dialogManager.setArchiveTarget}
33
+ onConfirmArchive={() => archiveChat()}
34
+ restoreTarget={dialogManager.restoreTarget}
35
+ setRestoreTarget={dialogManager.setRestoreTarget}
36
+ onConfirmRestore={() => restoreChat()}
37
+ />
38
+ ```
39
+
40
+ ## Notes
41
+
42
+ - All modals are capped at `600px` width on `md+` breakpoints via `ModalV2`.
43
+ - `RenameChatModal` re-seeds the input via `useEffect` whenever `isOpen` or `initialName` changes, safely handling different chats sharing the same modal instance.
44
+ - Button styles (`cancelBtn`, `saveBtn`, `dangerBtn`) follow the Figma `button-full` spec: full-width, DM Sans Bold 18px, `rounded-md`.
@@ -0,0 +1,63 @@
1
+ <!-- source-hash: 91ed9862c8dd8b9c0d7182ce412e2488 -->
2
+ Persistent left-rail component for the wide (split) Mingo layout that displays the chat history list alongside the active conversation panel.
3
+
4
+ ## Key Components
5
+
6
+ ### `MingoHistoryRail` (default export)
7
+
8
+ The root component renders a vertical flex column containing three logical zones:
9
+
10
+ - **"Start New Chat" button** — always pinned at top when `onNewChat` is provided
11
+ - **Scope selector** (`TabSelector`) — toggles between "My Chats" / "All Chats" when both `scope` and `onScopeChange` are provided; hidden on load error
12
+ - **Content area** — renders one of four mutually exclusive states:
13
+ - `loadError` → error message with optional retry button
14
+ - `isLoadingHistory` → `MingoChatHistorySkeleton`
15
+ - Dialogs present or active search → `MingoChatHistory`
16
+ - Empty, no search → `ChatListEmptyState`
17
+
18
+ ### `MingoHistoryScope`
19
+
20
+ ```typescript
21
+ export type MingoHistoryScope = 'my' | 'all'
22
+ ```
23
+
24
+ Union type controlling whether the rail lists only the current user's dialogs (`'my'`) or all tenant-admin dialogs (`'all'`).
25
+
26
+ ### `MingoHistoryRailProps`
27
+
28
+ Full prop interface. Key props:
29
+
30
+ | Prop | Type | Description |
31
+ |---|---|---|
32
+ | `dialogs` | `ReadonlyArray<DialogItem>` | Pre-sorted (newest-first) dialog list |
33
+ | `activeDialogId` | `string` | Highlights the currently open chat |
34
+ | `scope` / `onScopeChange` | `MingoHistoryScope` / handler | Opt-in ownership filter; host owns state |
35
+ | `isLoadingHistory` | `boolean` | Shows skeleton on first page load |
36
+ | `loadError` | `boolean` | Triggers error + retry UI |
37
+ | `hasMore` / `onLoadMore` | `boolean` / handler | Cursor-based pagination |
38
+
39
+ ## Usage Example
40
+
41
+ ```typescript
42
+ <MingoHistoryRail
43
+ dialogs={dialogs}
44
+ activeDialogId={activeId}
45
+ onSelectDialog={(id) => setActiveId(id)}
46
+ onNewChat={() => setActiveId(undefined)}
47
+ onRequestRename={(dialog) => openRenameModal(dialog)}
48
+ onRequestArchive={(dialog) => openArchiveModal(dialog)}
49
+ scope={scope}
50
+ onScopeChange={setScope}
51
+ searchQuery={searchQuery}
52
+ hasMore={hasMore}
53
+ isLoadingMore={isFetchingMore}
54
+ onLoadMore={fetchNextPage}
55
+ isLoadingHistory={isLoading}
56
+ loadError={isError}
57
+ onRetry={refetch}
58
+ />
59
+ ```
60
+
61
+ ## Source
62
+
63
+ [`mingo-history-rail.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-history-rail.tsx)
@@ -0,0 +1,59 @@
1
+ <!-- source-hash: 511a5004fe6fe4628e28098d4d2873fa -->
2
+ A React component that renders an inline-safe information card designed for use inside chat message paragraphs, using only phrasing-content elements (`<span>`, `<a>`, `<button>`, `<img>`) to remain valid within `<p>` tags.
3
+
4
+ ## Key Components
5
+
6
+ ### Exports
7
+
8
+ - **`MingoInfoCard`** — Primary card component rendering title, optional description, leading media, status pill, and overflow menu
9
+ - **`CardMedia`** *(internal)* — 40px leading media slot supporting avatar images (with initials fallback) or icon glyphs
10
+ - **`MingoInfoCardProps`** — Full prop interface for the card
11
+ - **`MingoInfoCardStatus`** — Shape for the status pill (`label` + `variant`)
12
+ - **`MingoInfoCardAnchorProps`** — Anchor-prop bundle (`href`, `target`, `rel`, `onClick`) for navigation mode
13
+
14
+ ### Content Region Modes
15
+
16
+ | Condition | Rendered as |
17
+ |---|---|
18
+ | `anchorProps` supplied | `<a>` (takes precedence) |
19
+ | `onClick` supplied | `<button type="button">` |
20
+ | Neither | `<span>` (static) |
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ import { MingoInfoCard } from '@openframe/ui'
26
+
27
+ // Static card with avatar and status pill
28
+ <MingoInfoCard
29
+ imageSrc="https://cdn.example.com/avatar.png"
30
+ imageAlt="Jane Doe"
31
+ title="Jane Doe"
32
+ description="Senior Technician"
33
+ status={{ label: 'Online', variant: 'success' }}
34
+ />
35
+
36
+ // Navigable card with icon and overflow menu
37
+ <MingoInfoCard
38
+ icon={<ServerIcon size={24} />}
39
+ title="Prod Server"
40
+ description="192.168.1.1"
41
+ anchorProps={{ href: '/devices/42', target: '_blank' }}
42
+ menuGroups={[
43
+ {
44
+ items: [
45
+ { label: 'View details', onClick: handleView },
46
+ { label: 'Restart', onClick: handleRestart },
47
+ ],
48
+ },
49
+ ]}
50
+ />
51
+ ```
52
+
53
+ ## Notes
54
+
55
+ - The `imageSrc` avatar gracefully degrades to initials (via `getFirstLastInitials`) on image load failure
56
+ - The `⋯` menu button is always a sibling of the content anchor — never nested — preserving valid HTML
57
+ - Status pill reuses `tagVariants` for colour consistency without introducing block-level `<div>` elements
58
+
59
+ **Source:** [`mingo-info-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-info-card.tsx)
@@ -1,24 +1,24 @@
1
- <!-- source-hash: 86ac59c4c1438a33b694f4b3fbba9291 -->
2
- A chat empty-state onboarding card component that renders a single slash-command or feature row, supporting optional action buttons, icons, and interactive/non-interactive modes.
1
+ <!-- source-hash: 5c7bea0689601e74e88dd84bfa270626 -->
2
+ A React client component that renders a single onboarding/slash-command row card for the Mingo AI chat empty-state list. Supports optional icons, slash-command labels, descriptions, and inline action buttons, rendering as either an interactive `<button>` or a static `<div>` depending on props.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### Interfaces
7
7
 
8
8
  - **`MingoOnboardingCardAction`** — Defines a single action button with `id`, `label`, and `onClick` handler
9
- - **`MingoOnboardingCardProps`** — Full card configuration including `icon`, `title`, `slashCommand`, `description`, `actions`, `onClick`, and `className`
9
+ - **`MingoOnboardingCardProps`** — Full prop surface for the card: `icon`, `title`, `slashCommand`, `description`, `actions`, `onClick`, `className`
10
10
 
11
11
  ### Component
12
12
 
13
- - **`MingoOnboardingCard`** — Root component that conditionally renders as a `<button>` (when `onClick` is set and no `actions`) or a `<div>` (when `actions` are present or no `onClick`)
13
+ - **`MingoOnboardingCard`** — Main export. Conditionally renders as a `<button>` (when `onClick` is set and `actions` is empty) or a `<div>` (when `actions` are present or no `onClick` is provided). Action buttons use `e.stopPropagation()` to prevent card-level click conflicts.
14
14
 
15
- ### Behavior Logic
15
+ ## Rendering Behavior
16
16
 
17
- | Condition | Rendered Element |
18
- |-----------|-----------------|
17
+ | Condition | Root element |
18
+ |---|---|
19
+ | `actions` provided (non-empty) | `<div>` (non-interactive) |
19
20
  | `onClick` set, no `actions` | `<button>` with hover/focus styles |
20
- | `actions` present | `<div>` with per-action `<button>` chips |
21
- | Neither | Static `<div>` |
21
+ | Neither | `<div>` |
22
22
 
23
23
  ## Usage Example
24
24
 
@@ -28,35 +28,29 @@ import {
28
28
  MingoOnboardingCardAction,
29
29
  } from './mingo-onboarding-card'
30
30
 
31
- // Static card with slash command
31
+ // Static card with description
32
32
  <MingoOnboardingCard
33
33
  icon={<SearchIcon />}
34
- title="Search Knowledge Base"
34
+ title="Search tickets"
35
35
  slashCommand="/search"
36
- description="Find articles, runbooks, and past tickets"
36
+ description="Find tickets by keyword or ID"
37
+ onClick={() => console.log('card clicked')}
37
38
  />
38
39
 
39
- // Interactive card (renders as <button>)
40
- <MingoOnboardingCard
41
- icon={<RoadmapIcon />}
42
- title="View Roadmap"
43
- slashCommand="/roadmap"
44
- onClick={() => router.push('/roadmap')}
45
- />
46
-
47
- // Card with action chips (renders as <div>)
40
+ // Card with inline action buttons (renders as non-interactive div)
48
41
  const actions: MingoOnboardingCardAction[] = [
49
- { id: 'recent', label: 'Recent', onClick: () => fetchRecent() },
50
- { id: 'search', label: 'Search', onClick: (e) => { e.stopPropagation(); openSearch() } },
42
+ { id: 'recent', label: 'Recent', onClick: (e) => handleRecent(e) },
43
+ { id: 'search', label: 'Search', onClick: (e) => handleSearch(e) },
51
44
  ]
52
45
 
53
46
  <MingoOnboardingCard
54
47
  icon={<TicketIcon />}
55
- title="Tickets"
56
- slashCommand="/tickets"
57
- description="Browse and manage open tickets"
48
+ title="Roadmap"
49
+ slashCommand="/roadmap"
58
50
  actions={actions}
59
51
  />
60
52
  ```
61
53
 
62
- > **Note:** Stack multiple cards inside a `rounded-md` container the `last:border-b-0` rule automatically removes the bottom divider from the final card, keeping the visual frame clean.
54
+ > Cards are designed to be stacked in a `rounded-md` container. The `border-b` divider on each card and `last:border-b-0` keep the visual frame clean without a trailing border.
55
+
56
+ **Source:** [`mingo-onboarding-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-onboarding-card.tsx)
@@ -0,0 +1,60 @@
1
+ <!-- source-hash: 9eec10a801d679d0ee1d460966bca7a5 -->
2
+ Mingo's chat empty-state screen, rendering a greeting, feature grid, optional "New to OpenFrame?" promo notification, and quick-action chips for new and returning users.
3
+
4
+ ## Key Components
5
+
6
+ ### Exported Types
7
+
8
+ - **`MingoWelcomePromo`** — Config object (`title`, `description`) for the one-time "New to OpenFrame?" notification card. Pass `null` to suppress.
9
+ - **`MingoQuickAction`** — Descriptor for an extra quick-action chip: `id`, `label`, optional `icon`, `variant` (`'primary'` | `'outline'`), `onClick`, and a `prompt` string previewed on hover.
10
+ - **`MingoWelcomeProps`** — Full props surface for `MingoWelcome`.
11
+
12
+ ### Main Export
13
+
14
+ - **`MingoWelcome`** — Primary empty-state component. Handles three distinct states:
15
+ - **New user** — Greeting, feature grid, optional promo notification, and quick-action chips.
16
+ - **Returning user** — Replaces greeting/grid with `dialogHistory` content; chips remain pinned.
17
+ - **Loading / Error** — Renders `MingoChatHistorySkeleton` or a retry block while history resolves.
18
+
19
+ ### Key Behaviors
20
+
21
+ - **Promo persistence** — Dismissal stored in `localStorage` or `sessionStorage` (SSR-safe; hydrated after mount).
22
+ - **Scroll-fade affordances** — Uses `useScrollFade` to show 48 px edge gradients when content overflows the scrollable greeting/grid region.
23
+ - **Pinned region gating** — The promo and chips are suppressed while `isLoadingHistory` or `loadError` is active (avoids misleadingly showing the new-user layout).
24
+
25
+ ## Usage Example
26
+
27
+ ```typescript
28
+ import {
29
+ MingoWelcome,
30
+ MingoWelcomeProps,
31
+ MingoQuickAction,
32
+ } from '@openframe-oss-lib/components/mingo/mingo-welcome'
33
+
34
+ const quickActions: MingoQuickAction[] = [
35
+ {
36
+ id: 'run-diagnostic',
37
+ label: 'Run Diagnostic',
38
+ variant: 'outline',
39
+ prompt: 'Run a full system diagnostic and summarize the results.',
40
+ onClick: () => console.log('diagnostic triggered'),
41
+ },
42
+ ]
43
+
44
+ export function MingoChatPanel() {
45
+ return (
46
+ <MingoWelcome
47
+ subtitle="What can I help you with today?"
48
+ quickActions={quickActions}
49
+ onQuickActionHover={(action) => previewPrompt(action.prompt ?? action.label)}
50
+ onQuickActionHoverEnd={() => clearPreview()}
51
+ onStartGuideChat={() => switchToGuideMode()}
52
+ hasExistingChats={false}
53
+ isLoadingHistory={false}
54
+ promoStorage="local"
55
+ />
56
+ )
57
+ }
58
+ ```
59
+
60
+ **Source:** [`mingo-welcome.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-welcome.tsx)
@@ -1,46 +1,54 @@
1
- <!-- source-hash: 75472e90962007832fb7ea753283d69c -->
2
- Renders an inline pill showing the AI provider icon, model name, and token usage against the context window. When per-call token breakdown data is available, a hover card expands to show input/output splits across the answer model and any auxiliary Haiku sub-agents (rewriter, classifier, summarizer), plus an optional prompt-cache hit rate.
1
+ <!-- source-hash: 5ec42a1329af78781e4ae04ac5e8abe8 -->
2
+ Renders an inline pill showing the AI model provider icon, model name, and token usage, with an optional hover card that breaks down token consumption across sub-models (rewriter, classifier, summarizer).
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export / Function | Description |
7
- |---|---|
8
- | `ModelDisplay` | Primary `forwardRef` component rendering the inline token pill and optional hover card breakdown |
9
- | `BreakdownRow` | Internal helper rendering a single `label / X in / Y out` row in the hover card |
10
- | `getProviderIcon` | Maps provider string (`anthropic`, `openai`, `google`, etc.) to the corresponding grey logo icon |
11
- | `formatTokenCount` | Formats raw token integers to human-readable strings (`1.2K`, `200M`, etc.) |
12
- | `hasAnyBreakdownRow` | Guards hover card rendering returns `true` only when at least one Haiku sub-agent row exists |
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `ModelDisplay` | `React.forwardRef` component | Primary display pill with provider icon, model name, token counter, and hover breakdown card |
9
+ | `ModelDisplaySkeleton` | `React.forwardRef` component | Loading placeholder that mirrors `ModelDisplay` layout to prevent layout shift |
10
+ | `BreakdownRow` | Internal component | Single row in the hover card showing input/output token counts for one model call |
11
+ | `getProviderIcon` | Helper function | Maps provider string (`anthropic`, `openai`, `google`, etc.) to the matching grey logo icon |
12
+ | `formatTokenCount` | Helper function | Formats raw token integers to human-readable strings (`1.2K`, `200M`) |
13
13
 
14
14
  ## Usage Example
15
15
 
16
16
  ```typescript
17
- import { ModelDisplay } from './model-display';
18
-
19
- // Minimal — inline pill only (no hover card)
17
+ // Basic pill shows provider icon + name only
20
18
  <ModelDisplay
21
19
  provider="anthropic"
22
20
  modelName="claude-opus-4-5"
23
21
  displayName="Claude Opus"
24
- usedTokens={12_400}
25
- contextWindow={200_000}
26
22
  />
27
23
 
28
- // With full breakdown activates hover card on mouse-over
24
+ // With token usage counter (renders once contextWindow is known)
25
+ <ModelDisplay
26
+ provider="openai"
27
+ modelName="gpt-4o"
28
+ usedTokens={12340}
29
+ contextWindow={128000}
30
+ inputTokens={10000}
31
+ outputTokens={2340}
32
+ />
33
+
34
+ // With sub-model breakdown (enables hover card)
29
35
  <ModelDisplay
30
36
  provider="anthropic"
31
37
  modelName="claude-opus-4-5"
32
- displayName="Claude Opus"
33
- usedTokens={18_750}
34
- contextWindow={200_000}
35
- inputTokens={15_200}
36
- outputTokens={3_550}
37
- hitRatePct={34}
38
+ usedTokens={15000}
39
+ contextWindow={200000}
40
+ inputTokens={12000}
41
+ outputTokens={3000}
42
+ hitRatePct={42}
38
43
  breakdown={{
39
- haikuRewriter: { input: 420, output: 80 },
40
- haikuClassifier: { input: 310, output: 45 },
41
- haikuSummarizer: { input: 1100, output: 200 },
44
+ haikuRewriter: { input: 500, output: 200 },
45
+ haikuClassifier: { input: 300, output: 100 },
46
+ haikuSummarizer: { input: 1200, output: 400 },
42
47
  }}
43
48
  />
49
+
50
+ // Skeleton during loading — opt-in token tail placeholder
51
+ <ModelDisplaySkeleton showTokens />
44
52
  ```
45
53
 
46
- > **Note:** The `usedTokens` / `contextWindow` tail renders as soon as `contextWindow` is available, intentionally showing `—/200K tokens used` before the first usage frame arrives so users can see model capacity without waiting for streaming to begin.
54
+ The hover card only mounts when at least one `breakdown` sub-model row (`haikuRewriter`, `haikuClassifier`, `haikuSummarizer`) is present, avoiding unnecessary accessibility chrome on surfaces that don't capture cross-call usage.
@@ -0,0 +1,44 @@
1
+ <!-- source-hash: c9249823535d22722e2d0a1620a2ff31 -->
2
+ Loading placeholder that mirrors the layout of `MspOrganizationCard` — preserving dimensions during data fetch to prevent layout shift on the welcome screen.
3
+
4
+ ## Key Components
5
+
6
+ ### `MspOrganizationCardSkeleton`
7
+
8
+ A shimmer placeholder component that replicates the visual structure of `MspOrganizationCard` with three skeleton blocks:
9
+
10
+ - **Logo placeholder** — 48×48px square (left)
11
+ - **Text placeholders** — title line (60% width) and website line (40% width) stacked vertically
12
+ - **Action button placeholder** — 48×48px square (right)
13
+
14
+ ### `MspOrganizationCardSkeletonProps`
15
+
16
+ | Prop | Type | Description |
17
+ |---|---|---|
18
+ | `className` | `string` (optional) | Appended to the root element for layout overrides |
19
+
20
+ ## Usage Example
21
+
22
+ ```typescript
23
+ import { MspOrganizationCardSkeleton } from './msp-organization-card-skeleton'
24
+
25
+ // Show while tenant data is loading
26
+ function WelcomeScreen() {
27
+ const { data, isLoading } = useTenantInfo()
28
+
29
+ if (isLoading) {
30
+ return <MspOrganizationCardSkeleton />
31
+ }
32
+
33
+ return <MspOrganizationCard {...data} />
34
+ }
35
+
36
+ // With a custom class override
37
+ <MspOrganizationCardSkeleton className="my-4 max-w-sm" />
38
+ ```
39
+
40
+ ## Notes
41
+
42
+ - Rendered as a client component (`'use client'`)
43
+ - Uses the same container dimensions and spacing tokens (`--spacing-system-m`) as `MspOrganizationCard`, ensuring a seamless swap once data resolves
44
+ - Source: [`msp-organization-card-skeleton.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/components/msp-organization-card-skeleton.tsx)
@@ -0,0 +1,51 @@
1
+ <!-- source-hash: d24890257e6931aa4965bfc927c49767 -->
2
+ Renders a horizontal card identifying the MSP organization managing a user's IT, designed for AI Assistant welcome screens.
3
+
4
+ ## Key Components
5
+
6
+ **`MspOrganizationCard`** — Primary export. Composes a square org logo (`SquareAvatar`), a title/website text block, and an optional external-link button into a styled card matching Figma spec `openframe — fae-chat` (node 1:5540).
7
+
8
+ **`MspOrganizationCardProps`** — Interface defining all accepted props:
9
+
10
+ | Prop | Type | Description |
11
+ |---|---|---|
12
+ | `name` | `string` | Organization name; used in default title and avatar fallback |
13
+ | `website` | `string?` | Displayed beneath the title |
14
+ | `logoUrl` | `string?` | Logo URL; falls back to initials when absent |
15
+ | `title` | `React.ReactNode?` | Overrides the default "Your IT is managed by {name}" title |
16
+ | `href` | `string?` | Renders trailing action as `<a target="_blank">` |
17
+ | `onOpenWebsite` | `() => void?` | Click handler when `href` is not provided |
18
+ | `className` | `string?` | Appended to the root element |
19
+
20
+ **Trailing action priority:** `href` (anchor) → `onOpenWebsite` (button) → hidden.
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ // With a direct link (renders as anchor)
26
+ <MspOrganizationCard
27
+ name="TechFlow IT"
28
+ website="www.techflow.com"
29
+ logoUrl="https://cdn.example.com/techflow-logo.png"
30
+ href="https://www.techflow.com"
31
+ />
32
+
33
+ // With a click handler
34
+ <MspOrganizationCard
35
+ name="TechFlow IT"
36
+ website="www.techflow.com"
37
+ onOpenWebsite={() => router.push('/org-info')}
38
+ />
39
+
40
+ // Custom title, no action button
41
+ <MspOrganizationCard
42
+ name="TechFlow IT"
43
+ title={<strong>Supported by TechFlow IT</strong>}
44
+ />
45
+ ```
46
+
47
+ ## Notes
48
+
49
+ - Uses an inset `ring-1` instead of `border` to preserve the 80px frame height matching Figma's inside-aligned stroke.
50
+ - Styles are driven by ODS design tokens (`--spacing-system-m`, `ods-bg`, `ods-border`, `ods-text-primary`).
51
+ - Source: [`msp-organization-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/msp-organization-card.tsx)