@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,39 +1,56 @@
1
- <!-- source-hash: 32d71d29579661580177180e5a23c34d -->
2
- Renders the correct compact card component for a given `ChatRef` by dispatching on document type, handling fetch/skeleton states, and wiring navigation props for the chat shell.
1
+ <!-- source-hash: 662d570ca898ee06d2fcb44e45351ac9 -->
2
+ Dispatches canonical chat card types to their corresponding React components, serving as the lib-portable rendering layer for inline entity cards within the chat shell.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### Types
7
- - **`ChatCardDispatchExtras`** — Host-supplied builders for hub-specific derived props (program configs, product-release prop builder, OG placeholder URL generator)
8
- - **`ChatCardRenderOptions`** — Per-render options including `baseRoute`, `chipBasePlatform`, `extras`, and the pre-computed `isNewTab` flag
6
+ ### Types & Interfaces
9
7
 
10
- ### Internal Card Wrappers
11
- - **`GitHubChatCard`** — Renders a compact `GitHubActivityCard` from a `ChatRef`
12
- - **`HubspotTicketChatCard`** — Extracts ticket metadata (status, priority, customer) from `chatRef.metadata` and renders `HubspotTicketCard`
13
- - **`SlackChatCard`** — Maps channel name from metadata and renders `SlackMessageCard`
14
- - **`DataRoomDocChatCard`** — Renders `DataRoomDocCard` with provenance badge resolved via `getSourceLabel`; intentionally falls back to `"Document"` (never `"Data room"`) to avoid false sensitivity labeling
15
- - **`GenericFinancialChatCard`** — Renders `GenericEntityCard` with badge, color scheme, optional facts list, and subtitle
16
- - **`ChatInlineVideoPill`** — Inline pill span for video references (non-block contexts)
8
+ - **`ChatCardDispatchExtras`** Host-supplied builder functions for hub-dependent card props (program configs, product-release props, OG placeholder URLs)
9
+ - **`ChatCardRenderOptions`** — Per-card render options including `baseRoute`, `isNewTab`, `extras`, and `discuss` action
10
+ - **`CardDiscussAction`** — Action descriptor for the "Ask Mingo"/"Display" affordance in card menus
17
11
 
18
- ### Utilities Used
19
- - `buildAnchorProps` / `computeIsNewTab` / `newTabAnchorAttrs` — Anchor attribute construction
20
- - `resolveHrefForRuntime` / `handleChatNavClick` Runtime-aware navigation
21
- - `resolveSourceRowCTA` / `resolveSourceIcon` / `getSourceLabel` Source chip metadata
12
+ ### Internal Components
13
+
14
+ - **`GitHubChatCard`** Renders GitHub activity cards (commits, PRs, PR reviews) using `MingoInfoCard` with kind-specific icons and review state color variants
15
+ - **`githubKindIcon(kind)`** Maps `GitHubActivityKind` to the appropriate icon component
16
+ - **`reviewStateToVariant(state)`** — Converts PR review state to a `MingoInfoCardStatus` variant (`success`, `error`, `warning`, `grey`)
17
+
18
+ ### Public Entry Points
19
+
20
+ - **`renderChatInlineEntityCard(ref, opts)`** — Top-level dispatch function; hoists video refs to block cards, otherwise renders compact inline cards
21
+ - **`ChatCardLoader`** — Fetch + skeleton + render component for fetch-mode entries
22
+
23
+ ### Registry
24
+
25
+ - **`CHAT_CARD_REGISTRY`** — Central map of document types to their card component and skeleton, enabling O(1) dispatch without nested conditionals
22
26
 
23
27
  ## Usage Example
24
28
 
25
29
  ```typescript
26
- // In the chat shell dispatch a compact inline card
30
+ // Rendering an inline entity card from chat context
31
+ import { renderChatInlineEntityCard } from './dispatch'
32
+
27
33
  const card = renderChatInlineEntityCard(chatRef, {
28
- isNewTab: computeIsNewTab(chatRef.url, runtime.source),
29
- baseRoute: '/app',
30
- chipBasePlatform: 'hub',
34
+ isNewTab: false,
35
+ baseRoute: '/hub',
31
36
  extras: {
32
- programConfigs: { podcast: myPodcastConfig },
33
- buildProductReleaseCardProps: (release) => ({ iconUrl: release.icon }),
34
- buildOgPlaceholderUrl: (title) => `/og?title=${encodeURIComponent(title)}`,
37
+ buildOgPlaceholderUrl: (title) => `/api/og?title=${encodeURIComponent(title)}`,
38
+ buildProductReleaseCardProps: (release) => ({ /* hub-derived props */ }),
39
+ programConfigs: {
40
+ podcast: podcastConfig,
41
+ webinar: webinarConfig,
42
+ },
35
43
  },
36
44
  })
37
45
  ```
38
46
 
39
- > **Adding a new card type:** Implement the `size='sm'` branch in `./<card>.tsx`, then register one entry in the `CHAT_CARD_REGISTRY` switch inside this file.
47
+ ## Adding a New Card Type
48
+
49
+ 1. Implement a `size='sm'` branch + skeleton in `./<card>.tsx` (pure presentation, accepts `href` + `targetPlatform`)
50
+ 2. Add one entry to `CHAT_CARD_REGISTRY`
51
+
52
+ ## Related Files
53
+
54
+ - [`chat-ref.types.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/types/chat-ref.types.ts) — `ChatRef` shape
55
+ - [`nav-click-handler.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/utils/nav-click-handler.ts) — `handleChatNavClick`
56
+ - [`product-release-card-defaults.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/components/cards/product-release-card-defaults.ts) — Fallback prop builder
@@ -1,51 +1,54 @@
1
- <!-- source-hash: 7fa68fe7633e75913b75cba411a322f1 -->
2
- Renders author and publication metadata as a bordered grid card, matching the visual contract of the release detail page. Supports 1–4 cells with responsive dividers.
1
+ <!-- source-hash: 5bff6cdc476cf1a4ab5b1da3aac188eb -->
2
+ Renders author and publication metadata as a bordered grid card, matching the visual layout used on release detail pages. Supports 1–4 cells with responsive column sizing.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `EntityAuthorCard` | Component | Convenience composer rendering a "Published + Author" grid. Primary public API. |
9
- | `EntityMetadataValueCell` | Component | Single cell with a large uppercase value (`text-h4`) and a small secondary label. |
10
- | `EntityMetadataAuthorCell` | Component | Single cell with `SquareAvatar`, name, and role/job-title label. |
11
- | `EMPTY_AUTHOR_PLACEHOLDER` | Constant | Fallback author shape (`"—"` / `"Unknown"`) used when `renderEmptyAuthor` is `true`. |
12
- | `EntityAuthorCardProps` | Interface | Full props contract for `EntityAuthorCard`. |
6
+ ### `EntityAuthorCard` (default export)
7
+ Main composer component. Renders a bordered grid with optional extra cells, a publication date cell, and an author cell. Returns `null` when `author` is empty unless `renderEmptyAuthor` is set.
8
+
9
+ ### `EntityMetadataValueCell`
10
+ Standalone value cell: large `text-h4` label (uppercase by default) above a secondary `DM_Sans` 14px descriptor. Used for Type, Status, Date, or custom `extraCells`.
11
+
12
+ ### `EntityMetadataAuthorCell`
13
+ Avatar + name + role label cell. Wraps the name in a link only when both `authorHref` and a real (non-placeholder) name are present — prevents linking placeholder text like "Unknown Author".
14
+
15
+ ### `EMPTY_AUTHOR_PLACEHOLDER`
16
+ Exported constant (`full_name: '—'`, `job_title: 'Unknown'`) used by catalog grids that require a fixed skeleton shape when no author is available.
17
+
18
+ ### `EntityAuthorCardProps`
19
+ Full prop interface. Key props:
20
+
21
+ | Prop | Type | Description |
22
+ |---|---|---|
23
+ | `author` | `EntityAuthor \| null` | Author data |
24
+ | `publishedAt` | `string \| Date \| null` | Triggers 2-cell (Published + Author) layout |
25
+ | `extraCells` | `Array<{value, label, uppercase?}>` | Prepended value cells (e.g. Section, Step) |
26
+ | `authorHref` | `string` | Link URL for author name |
27
+ | `renderEmptyAuthor` | `boolean` | Force render with placeholder when author is absent |
13
28
 
14
29
  ## Usage Example
15
30
 
16
31
  ```typescript
17
- // Basic: author only (single-cell)
32
+ // Two-cell: Published + Author
18
33
  <EntityAuthorCard
19
- author={{ full_name: 'Ada Lovelace', avatar_url: '/ada.jpg', job_title: 'Engineer' }}
20
- />
21
-
22
- // With publication date (2-cell grid)
23
- <EntityAuthorCard
24
- author={{ full_name: 'Ada Lovelace', avatar_url: null, job_title: null }}
34
+ author={{ full_name: 'Jane Doe', avatar_url: '/avatar.jpg', job_title: 'Engineer' }}
25
35
  publishedAt="2024-06-01"
26
- publishedLabel="Released"
27
- roleLabel="Contributor"
36
+ authorHref="/authors/jane-doe"
28
37
  />
29
38
 
30
- // Extra cells before the date (4-cell grid)
39
+ // Four-cell: Section + Step + Published + Author
31
40
  <EntityAuthorCard
32
- author={author}
33
- publishedAt={guide.publishedAt}
41
+ author={guide.author}
42
+ publishedAt={guide.published_at}
34
43
  extraCells={[
35
- { value: 'Onboarding', label: 'Section' },
36
- { value: '3', label: 'Step' },
44
+ { value: 'Setup', label: 'Section' },
45
+ { value: '3', label: 'Step' },
37
46
  ]}
38
- />
39
-
40
- // Skeleton-safe: render even when author is absent
41
- <EntityAuthorCard
42
- author={null}
43
47
  renderEmptyAuthor
44
48
  />
45
- ```
46
49
 
47
- ## Behavior Notes
50
+ // Author-only (no date), placeholder fallback
51
+ <EntityAuthorCard author={null} renderEmptyAuthor />
52
+ ```
48
53
 
49
- - Returns `null` when `author.full_name` is empty **unless** `renderEmptyAuthor` is set — keeps catalog grids skeleton-aligned.
50
- - Grid columns (`md:grid-cols-1` → `md:grid-cols-4`) are computed at render time so Tailwind JIT picks up the literal class strings at build.
51
- - Invalid date strings from `formatDate` are silently suppressed — the Published cell is hidden rather than showing `"Invalid Date"`.
54
+ **Source:** [`entity-author-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/entity-author-card.tsx)
@@ -0,0 +1,47 @@
1
+ <!-- source-hash: 04c12d798410d197c90950258dda5c3e -->
2
+ Shared portrait-density card anatomy used by all entity card types (`size="portrait"`), encoding media zone, title zone, and footer zone layout exactly once to prevent per-card drift.
3
+
4
+ ## Key Components
5
+
6
+ ### Interfaces
7
+
8
+ - **`EntityPortraitPerson`** — Author/person data: `name`, optional `avatarUrl`, `subtitle`, and `iconOverlayUrl` (small round overlay on avatar bottom-right, e.g. MSP company icon)
9
+ - **`EntityPortraitCardProps`** — Full card props: `href`, `typeLabel` (content-type chip), `imageUrl`, `placeholderUrl`, `title`, `titleClassName` (typography override per entity), `person`, and `className`
10
+
11
+ ### Component
12
+
13
+ - **`EntityPortraitCard`** — Renders three fixed anatomical zones inside a hover-styled `Card`:
14
+ - **Media zone** (`aspect-[1200/630]`): Wide covers fill `object-cover`; non-wide covers (e.g. square podcast art) render `object-contain` on an edge-sampled background color via `useImageEdgeColor`
15
+ - **Title zone** (`h-[72px]`): Optional `StatusBadge` eyebrow chip + 2- or 3-line clamped title with per-entity `titleClassName`
16
+ - **Footer zone** (`h-[60px]`): Avatar (or initial fallback) + name + subtitle, with optional `iconOverlayUrl` overlay
17
+
18
+ ### Constants
19
+
20
+ - **`MIN_WIDE_RATIO`** (`1.3`) — Aspect ratio threshold distinguishing wide OG-style covers from square/portrait artwork
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ import { EntityPortraitCard } from './entity-portrait-card'
26
+
27
+ <EntityPortraitCard
28
+ href="/case-studies/acme-corp"
29
+ typeLabel="Case Study"
30
+ imageUrl="https://cdn.example.com/covers/acme-1200x630.jpg"
31
+ placeholderUrl="https://cdn.example.com/og-fallback.jpg"
32
+ imageAlt="Acme Corp case study cover"
33
+ title="How Acme Corp reduced IT tickets by 60%"
34
+ person={{
35
+ name: "Jane Smith",
36
+ avatarUrl: "https://cdn.example.com/avatars/jane.jpg",
37
+ subtitle: "IT Director, Acme Corp",
38
+ iconOverlayUrl: "https://cdn.example.com/logos/acme-icon.png",
39
+ }}
40
+ />
41
+ ```
42
+
43
+ ## Notes
44
+
45
+ - The `typeLabel` prop should be omitted on single-type rails (all cards are the same content type) and passed only on mixed-type rails
46
+ - Cover image resolution follows the shared `useCoverImageFallback` chain: real image → `placeholderUrl` → hidden
47
+ - The footer zone renders an empty fixed-height box even when `person` is `null`, preserving baseline alignment across a rail
@@ -1,13 +1,13 @@
1
- <!-- source-hash: 775503f0a371e047d64f92c3ad355efe -->
2
- A pure-presentation React component that renders a compact, reusable entity card for chat contexts that don't require a bespoke component. Supports optional linking, status badges, key-value facts, and a skeleton loading state.
1
+ <!-- source-hash: bb992ce717c9d3fc2ce3e4ae967ccebd -->
2
+ A pure-presentation React component that renders a compact, reusable entity/document card for chat interfaces, supporting optional links, status badges, key-value facts, and a loading skeleton state.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `GenericEntityCard`
7
- Main card component. Renders as an `<a>` tag (clickable) or `<span>` (static) depending on whether a URL or `anchorProps` is provided. Displays an `ExternalLink` icon when a URL is present.
7
+ Main card component. Renders as an `<a>` (with `anchorProps` or derived `href`) or a static `<span>` when no URL is available. Displays title, optional badge, subtitle, preview text, fact rows, and a formatted date.
8
8
 
9
9
  ### `GenericEntityCardSkeleton`
10
- Animated placeholder component that mirrors the layout of `GenericEntityCard` for use during loading states.
10
+ Shimmer/placeholder version of the card for loading states, matching the layout of the full card.
11
11
 
12
12
  ### Interfaces
13
13
 
@@ -15,48 +15,49 @@ Animated placeholder component that mirrors the layout of `GenericEntityCard` fo
15
15
  |---|---|
16
16
  | `GenericEntityCardItem` | Data shape for the card content |
17
17
  | `GenericEntityCardAnchorProps` | Pre-composed anchor element props (href, target, rel, onClick) |
18
- | `GenericEntityCardProps` | Combined props for the card (item + anchorProps + className) |
18
+ | `GenericEntityCardProps` | Combined props for `GenericEntityCard` |
19
19
 
20
20
  ### `GenericEntityCardItem` Fields
21
21
 
22
22
  | Field | Type | Description |
23
23
  |---|---|---|
24
+ | `id` | `string` | Unique identifier |
24
25
  | `title` | `string` | Primary heading |
25
- | `preview` | `string \| null` | Truncated body text (2-line clamp) |
26
- | `subtitle` | `string \| null` | Monospace secondary label |
27
- | `badge` | `{ text, scheme? }` | Status badge with color scheme |
28
- | `facts` | `Array<{ label, value }>` | Inline key-value metadata pairs |
29
- | `dateUpdated` | `string \| number \| null` | Formatted UTC timestamp |
30
- | `url` | `string \| null` | Optional navigation target |
26
+ | `preview` | `string \| null` | 2-line clamped body text |
27
+ | `url` | `string \| null` | Link target (sanitized via `safeHref`) |
28
+ | `subtitle` | `string \| null` | Monospace secondary line |
29
+ | `badge` | `{ text, scheme? } \| null` | Status badge with color scheme |
30
+ | `facts` | `Array<{ label, value }>` | Inline key-value pairs |
31
+ | `dateUpdated` | `string \| number \| null` | Formatted as local UTC date |
31
32
 
32
33
  ## Usage Example
33
34
 
34
35
  ```typescript
35
36
  import { GenericEntityCard, GenericEntityCardSkeleton } from './generic-entity-card'
36
37
 
37
- // Basic card with URL
38
+ // With external link controlled by parent
38
39
  <GenericEntityCard
39
40
  item={{
40
41
  id: 'ticket-42',
41
- title: 'Printer offline on Floor 2',
42
- subtitle: 'TKT-0042',
43
- preview: 'User reports printer is unreachable since 9am.',
42
+ title: 'Printer offline HQ Floor 2',
43
+ subtitle: 'TKT-00042',
44
44
  badge: { text: 'Open', scheme: 'warning' },
45
+ preview: 'User reports printer is not responding since 09:00.',
45
46
  facts: [{ label: 'Priority', value: 'High' }],
46
- dateUpdated: '2024-06-01T10:00:00Z',
47
- url: 'https://app.example.com/tickets/42',
47
+ url: 'https://psa.example.com/tickets/42',
48
+ dateUpdated: '2024-06-01T09:00:00Z',
48
49
  }}
49
- />
50
-
51
- // Custom anchor props (e.g. SPA router navigation)
52
- <GenericEntityCard
53
- item={item}
54
50
  anchorProps={{
55
- href: '/tickets/42',
56
- onClick: (e) => { e.preventDefault(); router.push('/tickets/42') },
51
+ href: 'https://psa.example.com/tickets/42',
52
+ target: '_blank',
53
+ rel: 'noopener noreferrer',
57
54
  }}
58
55
  />
59
56
 
60
57
  // Loading state
61
58
  <GenericEntityCardSkeleton />
62
- ```
59
+ ```
60
+
61
+ ## Source
62
+
63
+ [`generic-entity-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/generic-entity-card.tsx)
@@ -1,51 +1,50 @@
1
- <!-- source-hash: c0769109de52014dbb4d350262e4d01d -->
2
- A pure-presentation React component that renders GitHub activity items (commits, pull requests, and PR reviews) in two layout variants: a list row and a compact inline card.
1
+ <!-- source-hash: 76bf0c6e541cd02e03174f0063150c97 -->
2
+ A pure-presentation React component that renders GitHub activity (commits, pull requests, and PR reviews) as a unified visual card in two layout variants: a horizontal `row` for list views and a `compact` inline card for chat markers.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### Exports
6
+ ### `GitHubActivityCard`
7
+ Main export. Renders a `GitHubActivityItem` in either `"row"` or `"compact"` variant. Accepts an optional `anchorProps` bundle from the caller (e.g., a `useNavLink` hook) to control navigation without internal routing logic.
7
8
 
8
- | Name | Type | Description |
9
- |------|------|-------------|
10
- | `GitHubActivityCard` | Component | Main card renderer supporting `row` and `compact` variants |
11
- | `GitHubActivityCardSkeleton` | Component | Animated loading placeholder matching both variants |
12
- | `GitHubActivityCardAnchorProps` | Interface | Pre-composed `<a>` prop bundle passed from caller navigation hooks |
13
- | `GitHubActivityCardProps` | Interface | Full props shape for `GitHubActivityCard` |
9
+ ### `GitHubActivityCardSkeleton`
10
+ Loading placeholder matching the layout of `GitHubActivityCard` for both variants.
14
11
 
15
- ### Internal Helpers
12
+ ### Exported Utilities
16
13
 
17
- | Name | Description |
18
- |------|-------------|
19
- | `parseRepoFromUrl` | Extracts `owner/repo` string from a GitHub URL |
20
- | `kindIcon` | Returns the appropriate Lucide/GitHub icon for `commit`, `pull_request`, or `pr_review` |
21
- | `kindLabel` | Maps `GitHubActivityKind` to a short display string |
22
- | `formatActivityId` | Shortens commit SHAs to 7 chars; prefixes PR/review IDs with `#` |
23
- | `parseGithubTitle` | Parses bracket-prefixed tags (e.g. `[Review:APPROVED]`) from titles without regex backtracking |
24
- | `ReviewStateBadge` | Renders a color-coded badge for PR review states (`APPROVED`, `CHANGES_REQUESTED`, etc.) |
14
+ | Function | Description |
15
+ |---|---|
16
+ | `kindLabel(kind)` | Maps `GitHubActivityKind` `"Commit"` / `"PR"` / `"Review"` |
17
+ | `formatActivityId(id, kind)` | Shortens a SHA to 7 chars or prefixes PR/review IDs with `#` |
18
+ | `parseGithubTitle(title, kind)` | Strips bracket prefix tags (e.g., `[Review:APPROVED]`), returns display text and `PrReviewState` |
19
+ | `reviewStateLabel(state)` | Maps `PrReviewState` human label (`"Approved"`, `"Changes"`, etc.) |
25
20
 
26
21
  ## Usage Example
27
22
 
28
23
  ```typescript
29
- import { GitHubActivityCard, GitHubActivityCardSkeleton } from './github-activity-card'
30
-
31
- // Compact inline card (default) with external link
32
- <GitHubActivityCard
33
- item={{
34
- kind: 'pull_request',
35
- id: '42',
36
- title: 'Fix memory leak in worker pool',
37
- url: 'https://github.com/org/repo/pull/42',
38
- dateUpdated: '2024-11-01T10:00:00Z',
39
- }}
40
- />
41
-
42
- // Row variant for activity lists, with caller-composed navigation
24
+ import { GitHubActivityCard } from './github-activity-card'
25
+ import type { GitHubActivityItem } from '../types/entities/github-activity'
26
+
27
+ const item: GitHubActivityItem = {
28
+ kind: 'pull_request',
29
+ id: '42',
30
+ title: 'Fix auth token refresh',
31
+ repo: 'flamingo-stack/openframe-oss-lib',
32
+ url: 'https://github.com/flamingo-stack/openframe-oss-lib/pull/42',
33
+ dateUpdated: '2024-11-01T12:00:00Z',
34
+ }
35
+
36
+ // Compact card (chat inline)
37
+ <GitHubActivityCard item={item} variant="compact" />
38
+
39
+ // Row with caller-controlled navigation
43
40
  <GitHubActivityCard
41
+ item={item}
44
42
  variant="row"
45
- item={activityItem}
46
43
  anchorProps={{
47
- href: '/activity/commit/abc1234',
48
- onClick: (e) => handleNavigation(e),
44
+ href: item.url,
45
+ target: '_blank',
46
+ rel: 'noopener noreferrer',
47
+ onClick: (e) => handleNav(e),
49
48
  }}
50
49
  />
51
50
 
@@ -53,9 +52,4 @@ import { GitHubActivityCard, GitHubActivityCardSkeleton } from './github-activit
53
52
  <GitHubActivityCardSkeleton variant="row" />
54
53
  ```
55
54
 
56
- ## Variants
57
-
58
- | Variant | Use Case |
59
- |---------|----------|
60
- | `compact` | Chat inline markers (`[card://github_commit:<sha>]`) |
61
- | `row` | Activity list rows in employee detail views |
55
+ **Source:** [`github-activity-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/github-activity-card.tsx)
@@ -1,53 +1,47 @@
1
- <!-- source-hash: 526a5a2e2cd1e53b04aca51a563fe490 -->
2
- Pure presentation component that renders HubSpot ticket data as a compact card or inline row, with a matching skeleton loader for loading states.
1
+ <!-- source-hash: fa39082d0ecd56100a736a21747fae80 -->
2
+ Unified presentation component for rendering HubSpot ticket data as a card or inline row, with no internal navigation logic link behavior is fully delegated to the caller via `anchorProps`.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `HubspotTicketCard`
7
- Main card component supporting two layout variants:
8
- - **`compact`** (default) Full card with title, priority/status badges, customer email, description preview, meta row (company + date), and optional external link icon
9
- - **`row`** Slim inline layout for use in lists/tables: title, preview snippet, status badge, and date
10
-
11
- Accepts an `anchorProps` bundle for caller-controlled navigation (e.g. from a runtime hook), falling back to a plain `<a>` using `item.url`, or a static `<span>` if no URL is available.
7
+ Primary export. Renders a `HubspotTicketItem` in one of two layouts:
8
+ - **`compact`** (default): Full card with title, priority/status badges, customer email, preview text, company, and date. Links via `anchorProps`, a derived `href`, or renders as a static `<span>` if no URL is available.
9
+ - **`row`**: Minimal inline layout title, preview snippet, status badge, and date — suited for list or table rows.
12
10
 
13
11
  ### `HubspotTicketCardSkeleton`
14
- Animated pulse placeholder matching the `compact` and `row` layouts, used during data fetching.
12
+ Loading placeholder matching the `compact` or `row` layout with animated pulse shimmer blocks.
13
+
14
+ ### Helper functions
15
15
 
16
- ### Helper Functions
17
16
  | Function | Purpose |
18
17
  |---|---|
19
- | `formatToken` | Normalizes `snake_case` enum strings to `Title case` |
20
- | `priorityScheme` | Maps `URGENT/HIGH/MEDIUM/LOW` badge color scheme |
21
- | `statusScheme` | Maps `CLOSED/OPEN/...` badge color scheme |
18
+ | `formatToken` | Normalizes `SNAKE_CASE` enum strings to `Title case` for display |
19
+ | `priorityScheme` | Maps `URGENT / HIGH / MEDIUM / …` to badge color variants |
20
+ | `statusScheme` | Maps `CLOSED / OPEN / …` to badge color variants |
22
21
 
23
- ## Interfaces
22
+ ### Interfaces
24
23
 
25
- ```typescript
26
- interface HubspotTicketCardProps {
27
- item: HubspotTicketItem // Ticket data shape
28
- variant?: 'row' | 'compact' // Layout mode (default: 'compact')
29
- className?: string
30
- anchorProps?: HubspotTicketCardAnchorProps // Caller-controlled <a> props
31
- }
32
- ```
24
+ - **`HubspotTicketCardAnchorProps`** — `href`, optional `target`, `rel`, and `onClick` passed through to the rendered `<a>`.
25
+ - **`HubspotTicketCardProps`** — `item`, `variant`, `className`, `anchorProps`.
33
26
 
34
27
  ## Usage Example
35
28
 
36
29
  ```typescript
37
- // Compact card with caller-supplied navigation
30
+ // Compact card driven by caller-composed anchor props
38
31
  <HubspotTicketCard
39
- item={ticket}
32
+ item={ticketItem}
33
+ variant="compact"
40
34
  anchorProps={{
41
- href: buildTicketHref(ticket.id),
35
+ href: ticketItem.url,
42
36
  target: '_blank',
43
37
  rel: 'noopener noreferrer',
44
- onClick: (e) => handleTicketClick(e, ticket.id),
38
+ onClick: (e) => handleTicketClick(e, ticketItem.id),
45
39
  }}
46
40
  />
47
41
 
48
- // Inline row variant (e.g. inside a list)
49
- <HubspotTicketCard item={ticket} variant="row" />
42
+ // Inline row variant (e.g. inside a search result list)
43
+ <HubspotTicketCard item={ticketItem} variant="row" />
50
44
 
51
- // Loading state
45
+ // Skeleton while data loads
52
46
  <HubspotTicketCardSkeleton variant="compact" />
53
47
  ```
@@ -1,66 +1,55 @@
1
- <!-- source-hash: 153106e38c4d90f80e36ec34a77c2d0d -->
2
- Barrel export file that consolidates all chat-surface entity card components under a single import path, enabling consumers to access any presentation card without knowing its subdirectory location.
1
+ <!-- source-hash: 791f7cf08b31a1737cab8b5f7f5f9512 -->
2
+ Barrel file that consolidates all chat-surface entity card components, primitives, and utilities into a single import path for consumers.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### Supporting Primitives
7
- - **`EntityAuthorCard`** — Renders author metadata with `EMPTY_AUTHOR_PLACEHOLDER` fallback
8
- - **`BlogImagePlaceholder`** — Placeholder image for blog content
7
+ - **`EntityAuthorCard`** — Author display card with metadata cells (`EntityMetadataValueCell`, `EntityMetadataAuthorCell`)
8
+ - **`EntityPortraitCard`** — Portrait-style entity card with person data
9
+ - **`BlogImagePlaceholder`** — Placeholder component for blog cover images
10
+ - **`useCoverImageFallback` / `hideOnError`** — Hook and utility for cover image error handling
9
11
  - **`AdminContentCard`** — Admin-facing content card
12
+ - **`WhatIShippedCard`** — Shipped-item card with skeleton loader
10
13
 
11
- ### Flat Cards
12
- - **`BlockCard`** — Generic block-level card
13
- - **`ChatTicketItem`** — Ticket representation within chat surfaces
14
- - **`ChatVideoEntityCard`** — Video entity display in chat
14
+ ### Chat Surface Cards
15
+ - **`BlockCard`**, **`ChatTicketItem`**, **`ChatVideoEntityCard`** — Flat inline chat cards
16
+ - **`ProductReleaseCard`** — Release card with size variants and prop builders (`defaultBuildProductReleaseCardProps`, `buildProductReleaseCardProps`)
17
+ - **`BlogCard`**, **`CaseStudyCard`**, **`CustomerInterviewCard`**, **`InvestorUpdateCard`** — Content-type cards with skeleton loaders
18
+ - **`OnboardingGuideCard`**, **`RoadmapCard`**, **`GitHubActivityCard`**, **`SlackMessageCard`** — Operational entity cards
19
+ - **`HubspotTicketCard`**, **`DataRoomDocCard`**, **`ProgramCard`**, **`CampaignCardAdmin`**, **`GenericEntityCard`** — Integration and generic cards
15
20
 
16
- ### Pure-Presentation Cards (with Skeleton variants)
17
- | Card | Skeleton | Notes |
18
- |------|----------|-------|
19
- | `BlogCard` | `BlogCardSkeleton` | — |
20
- | `CaseStudyCard` | `CaseStudyCardSkeleton` | — |
21
- | `CustomerInterviewCard` | `CustomerInterviewCardSkeleton` | — |
22
- | `InvestorUpdateCard` | `InvestorUpdateCardSkeleton` | — |
23
- | `OnboardingGuideCard` | `OnboardingGuideCardSkeleton` | — |
24
- | `RoadmapCard` | `RoadmapCardSkeleton` | Includes `VoteType` + `RoadmapVoteButton` |
25
- | `GitHubActivityCard` | `GitHubActivityCardSkeleton` | — |
26
- | `SlackMessageCard` | `SlackMessageCardSkeleton` | — |
27
- | `HubspotTicketCard` | `HubspotTicketCardSkeleton` | — |
28
- | `DataRoomDocCard` | `DataRoomDocCardSkeleton` | — |
29
- | `ProgramCard` | `ProgramCardSkeleton` | — |
30
- | `CampaignCardAdmin` | `CampaignCardAdminSkeleton` | — |
31
- | `GenericEntityCard` | `GenericEntityCardSkeleton` | Fallback catch-all |
21
+ ### Dispatch System
22
+ - **`renderChatInlineEntityCard`** Function that resolves and renders the correct card for a given entity type
23
+ - **`ChatCardLoader`** — Component wrapper driven by `CHAT_CARD_REGISTRY` in `dispatch.tsx`
32
24
 
33
- ### Dispatch Layer
34
- - **`renderChatInlineEntityCard`** — Renders the correct card given an entity type
35
- - **`ChatCardLoader`** — Async card loader; new card types registered in `./dispatch.tsx` via `CHAT_CARD_REGISTRY`
25
+ ### Utilities
26
+ - **`programItemToStripProfile`** — Adapter converting program items to strip profile format
27
+ - **`TaskTypeIcon`**, **`RoadmapVoteButton`** — Shared UI primitives used across card types
36
28
 
37
29
  ## Usage Example
38
30
 
39
31
  ```typescript
40
- // Single import replaces per-directory imports
41
32
  import {
42
33
  BlogCard,
43
34
  BlogCardSkeleton,
44
- RoadmapCard,
35
+ ProductReleaseCard,
36
+ buildProductReleaseCardProps,
45
37
  ChatCardLoader,
46
38
  renderChatInlineEntityCard,
47
39
  type BlogCardProps,
48
- type ChatCardRenderOptions,
49
- } from '@/components/entity-cards'
40
+ } from '@openframe/lib/entity-cards'
50
41
 
51
- // Pure-presentation: consumer owns the anchor
52
- function MyFeed({ post }: { post: BlogCardProps }) {
53
- return (
54
- <NavLinkAnchor href={post.href}>
55
- <BlogCard {...post} />
56
- </NavLinkAnchor>
57
- )
58
- }
42
+ // Render a blog card — consumer provides the anchor wrapper
43
+ const props: BlogCardProps = { href: '/blog/my-post', title: 'Hello', coverUrl: '...' }
44
+ ;<NavLinkAnchor href={props.href}>
45
+ <BlogCard {...props} />
46
+ </NavLinkAnchor>
59
47
 
60
- // Dynamic dispatch resolves card type at runtime
61
- function ChatEntity({ entity, options }: { entity: unknown; options: ChatCardRenderOptions }) {
62
- return renderChatInlineEntityCard(entity, options)
63
- }
48
+ // Dispatch a card by entity type in a chat surface
49
+ renderChatInlineEntityCard({ type: 'blog', entity: blogEntity }, options)
50
+
51
+ // Build rich product release card props
52
+ const cardProps = buildProductReleaseCardProps(release, { size: 'lg' })
64
53
  ```
65
54
 
66
- > **Design contract:** All cards in this directory are **pure presentation** — they accept a pre-resolved `href` and entity data as props and contain no internal navigation logic. Click handling belongs to the consumer (`NavLinkAnchor` or `NavLinkAnchorViaRuntime`).
55
+ > **Design contract:** All cards in this directory are pure-presentation components — they accept a pre-resolved `href` and entity data as props and contain no internal navigation logic. Consumers are responsible for wrapping cards with their own anchor components (`NavLinkAnchor` or `NavLinkAnchorViaRuntime`).