@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,16 +1,25 @@
1
- <!-- source-hash: 347abba356d14a3c4bf7cf70892add4e -->
2
- Defines TypeScript interfaces and types for the Case Study content entity within the Flamingo/OpenMSP platform, following the same structural pattern as `blog.ts`.
1
+ <!-- source-hash: 214619bf625ae18d6ede7c3a67ec6b5b -->
2
+ Defines TypeScript interfaces for case study content entities in the OpenFrame platform, covering the full lifecycle from creation to publishing with video processing, SEO, and relational data support.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  | Export | Type | Description |
7
7
  |--------|------|-------------|
8
- | `CaseStudy` | `interface` | Full case study record with all fields, relations, and metadata |
8
+ | `CaseStudy` | `interface` | Full case study record with all fields, relations, and video pipeline data |
9
9
  | `CreateCaseStudyData` | `interface` | Payload shape for creating a new case study |
10
- | `UpdateCaseStudyData` | `type` | Partial version of `CreateCaseStudyData` for updates |
10
+ | `UpdateCaseStudyData` | `type` | Partial version of `CreateCaseStudyData` for PATCH operations |
11
11
  | `CaseStudyFilters` | `interface` | Query filter options for listing/searching case studies |
12
12
  | `CaseStudyListResponse` | `interface` | Paginated response wrapper for case study arrays |
13
13
 
14
+ ## Field Groups (CaseStudy)
15
+
16
+ - **Story structure** — `challenge`, `solution`, `results`
17
+ - **Video** — `testimonial_video_url` (YouTube preferred), `main_video_url` (uploaded fallback), `video_bites`, `main_video_thumbnail`
18
+ - **Video processing pipeline** — `transcript`, `srt_content`, `video_summary`, `highlight_video_url`, `config` (full parity with `customer_interviews`)
19
+ - **SEO** — `seo_title`, `seo_description`, `seo_keywords`, `og_image_url`
20
+ - **Publishing** — `status` (`draft` | `ai_drafted` | `published` | `scheduled` | `archived`), `published_at`
21
+ - **Relations** — `msp`, `user`, `platforms`, `tags`, `customer_interview`
22
+
14
23
  ## Usage Example
15
24
 
16
25
  ```typescript
@@ -23,33 +32,38 @@ import type {
23
32
 
24
33
  // Create a new case study
25
34
  const payload: CreateCaseStudyData = {
26
- title: 'How Acme IT Reduced Ticket Volume by 40%',
27
- slug: 'acme-it-ticket-reduction',
35
+ title: 'How Acme MSP Cut Ticket Resolution by 40%',
36
+ slug: 'acme-msp-ticket-resolution',
28
37
  status: 'draft',
29
38
  author_id: 'uuid-author',
30
39
  platforms: ['uuid-platform-1'],
31
- tags: [1, 2],
40
+ tags: [12, 34],
32
41
  challenge: 'High volume of repetitive L1 tickets...',
33
- solution: 'Deployed Mingo AI with automated triage...',
34
- results: '40% reduction in ticket volume in 30 days.',
35
- testimonial_video_url: 'https://www.youtube.com/watch?v=EXAMPLE',
42
+ solution: 'Deployed Mingo AI triage automation...',
43
+ results: '40% reduction in mean time to resolve...',
44
+ testimonial_video_url: 'https://www.youtube.com/watch?v=example',
36
45
  }
37
46
 
38
- // Filter published case studies by industry
47
+ // Filter for published case studies by industry
39
48
  const filters: CaseStudyFilters = {
40
- industry: 'healthcare',
41
49
  status: 'published',
50
+ industry: 'healthcare',
42
51
  limit: 10,
43
52
  offset: 0,
44
53
  }
45
54
 
46
- // Typed paginated response
55
+ // Typed response
47
56
  const response: CaseStudyListResponse = await fetchCaseStudies(filters)
48
- console.log(response.count, response.data)
57
+ response.data.forEach((cs: CaseStudy) => console.log(cs.title))
49
58
  ```
50
59
 
51
60
  ## Notes
52
61
 
53
- - **Video fields**: `testimonial_video_url` (YouTube, preferred) and `main_video_url` (uploaded fallback) follow the same `ENTITY_FIELD_CONFIG` convention used across `customer_interviews`, `webinars`, `podcasts`, and `investor_updates`.
54
- - **MSP relation**: Company, industry, and testimonial data are resolved indirectly via `user.msp_id`, not stored directly on the case study.
55
- - `video_source_type` is deprecated consumers should detect source from URL presence instead.
62
+ - `video_source_type` is **deprecated**; prefer URL-based detection via `testimonial_video_url` vs `main_video_url`
63
+ - `transcript_words_data` is intentionally omitted server-only field
64
+ - `main_video_thumbnail` is optional for backward compatibility with existing consumers
65
+ - MSP company/industry/testimonial data is accessed through the `msp` relation, resolved via `user.msp_id`
66
+
67
+ ## Source
68
+
69
+ [`case-study.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/case-study.ts)
@@ -0,0 +1,37 @@
1
+ <!-- source-hash: 134dd81f40b3ecbbabb4fde92ba7a6a4 -->
2
+ Defines the canonical `ContentRef` interface — the unified shape for link/embed metadata stored in JSONB columns across investor updates, performance baselines, and other entities that surface "related content" rails. This is the single package-wide definition; all other paths (including chat components) re-export from here.
3
+
4
+ ## Key Components
5
+
6
+ - **`ContentRef`** — Core interface describing a linked or embedded content item, including identity fields (`type`, `id`, `slug`, `url`), display metadata (`title`, `summary`, `image_url`, `image_bg_color`), visibility scope (`'public' | 'internal'`), and optional `targetPlatform`.
7
+ - **`ContentRefWithReason`** — Extension of `ContentRef` that appends a `reason: string` field, representing the placement rationale returned by the suggestion service (`/api/related-content`). Used for data transport only; never rendered by the rail.
8
+
9
+ ## Usage Example
10
+
11
+ ```typescript
12
+ import type { ContentRef, ContentRefWithReason } from '@openframe-oss-lib/content-ref';
13
+
14
+ // Persisting a content reference in a JSONB column
15
+ const ref: ContentRef = {
16
+ type: 'article',
17
+ id: 'abc-123',
18
+ slug: 'q1-performance-review',
19
+ url: 'https://example.com/q1-performance-review',
20
+ title: 'Q1 Performance Review',
21
+ summary: 'A breakdown of Q1 metrics.',
22
+ visibility: 'internal',
23
+ display_order: 1,
24
+ };
25
+
26
+ // Consuming a suggestion-service response
27
+ const suggested: ContentRefWithReason = {
28
+ ...ref,
29
+ reason: 'top_performer',
30
+ };
31
+ ```
32
+
33
+ ## Notes
34
+
35
+ - `ContentRef` is safe for server-side use; it carries no rendering dependencies.
36
+ - `reason` on `ContentRefWithReason` is typed as `string` (not a narrow union) intentionally — the narrow vocabulary is hub-server only.
37
+ - Source: [`content-ref.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/content-ref.ts)
@@ -1,17 +1,26 @@
1
- <!-- source-hash: 110781f95cc87ef6269255e1ff54d089 -->
2
- Brief description: Defines TypeScript types and interfaces for the Customer Interview content module, covering the full lifecycle from creation and AI processing to publishing and analytics within the Flamingo/OpenFrame platform.
1
+ <!-- source-hash: 95f69519f0878413e2b796e8c36607d2 -->
2
+ Customer interview domain types defining the full data model for video-based customer testimonial interviews, including AI processing pipelines, video content management, and publishing workflows.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `CustomerInterview` | Interface | Core entity representing a recorded customer interview with all fields including video, AI processing state, SEO, and relations |
9
- | `CustomerInterviewConfig` | Interface | Per-interview configuration options (highlight video duration, subtitle burning) |
10
- | `CreateCustomerInterviewData` | Interface | Input shape for creating a new interview record |
11
- | `UpdateCustomerInterviewData` | Type alias | Partial version of `CreateCustomerInterviewData` for patch updates |
12
- | `CustomerInterviewFilters` | Interface | Query filter options for listing interviews (platform, industry, search, pagination) |
13
- | `CustomerInterviewListResponse` | Interface | Paginated response wrapper for interview list queries |
14
- | Re-exports | Types | `VideoTeaser`, `Speaker`, `VideoClip`, `TranscriptWord`, `SpeakerMapping`, `ExcludedRange` from `./video-processing` for backwards compatibility |
6
+ ### Interfaces
7
+
8
+ - **`CustomerInterview`** Core entity with fields for video content, AI processing status/results, SEO metadata, speaker identification, and relational joins to users, MSPs, platforms, and case studies
9
+ - **`CustomerInterviewConfig`** Per-interview configuration for AI highlight video generation (target duration, subtitle burning)
10
+ - **`CreateCustomerInterviewData`** Input shape for creating new interviews; requires `title`, `slug`, `status`, `author_id`, and `platforms`
11
+ - **`UpdateCustomerInterviewData`** Partial of `CreateCustomerInterviewData` for patch operations
12
+ - **`CustomerInterviewFilters`** Query filter parameters including platform, industry, company size, search, status, and pagination
13
+ - **`CustomerInterviewListResponse`** Paginated list wrapper with `data` array and `count`
14
+
15
+ ### Re-exports
16
+
17
+ Re-exports `VideoTeaser`, `Speaker`, `VideoClip`, `TranscriptWord`, `SpeakerMapping`, and `ExcludedRange` from `./video-processing` for backwards compatibility.
18
+
19
+ ### Status Enums
20
+
21
+ - **Publishing:** `'draft' | 'completed'`
22
+ - **AI pipeline stages** (`ai_transcript_status`, `ai_summary_status`, `ai_clips_status`): `'pending' | 'processing' | 'completed' | 'failed'`
23
+ - **Highlight video source:** `'manual' | 'ai_generated'`
15
24
 
16
25
  ## Usage Example
17
26
 
@@ -20,43 +29,31 @@ import type {
20
29
  CustomerInterview,
21
30
  CreateCustomerInterviewData,
22
31
  CustomerInterviewFilters,
23
- CustomerInterviewListResponse
24
32
  } from './customer-interview'
25
33
 
26
- // Creating a new interview
34
+ // Create a new interview record
27
35
  const payload: CreateCustomerInterviewData = {
28
- title: 'How Acme IT Scaled Support with Flamingo',
29
- slug: 'acme-it-flamingo-interview',
36
+ title: 'How Acme IT Reduced Ticket Volume by 40%',
37
+ slug: 'acme-it-ticket-reduction',
30
38
  status: 'draft',
31
- author_id: 'user-uuid-123',
32
- platforms: ['platform-uuid-abc'],
33
- user_id: 'customer-uuid-456',
39
+ author_id: 'usr_abc123',
40
+ platforms: ['plt_uuid_1', 'plt_uuid_2'],
34
41
  main_video_url: 'https://cdn.example.com/interviews/acme.mp4',
35
42
  config: {
36
43
  highlight_target_duration_seconds: 120,
37
- skipSubtitleBurning: false
44
+ skipSubtitleBurning: false,
38
45
  },
39
- custom_instructions: 'Focus on ROI and ticket volume reduction metrics.'
40
46
  }
41
47
 
42
- // Filtering interviews for a listing page
48
+ // Filter published interviews by platform
43
49
  const filters: CustomerInterviewFilters = {
44
- platform: 'all',
50
+ platform: 'plt_uuid_1',
45
51
  status: 'completed',
46
- search: 'managed services',
47
- limit: 12,
48
- offset: 0
52
+ limit: 10,
53
+ offset: 0,
49
54
  }
50
55
 
51
- // Consuming a list response
52
- async function fetchInterviews(
53
- filters: CustomerInterviewFilters
54
- ): Promise<CustomerInterviewListResponse> {
55
- const response = await api.get('/interviews', { params: filters })
56
- return response.data
57
- }
58
-
59
- // Checking AI processing state
56
+ // Access AI pipeline status on a fetched record
60
57
  function isReadyToPublish(interview: CustomerInterview): boolean {
61
58
  return (
62
59
  interview.ai_transcript_status === 'completed' &&
@@ -68,7 +65,10 @@ function isReadyToPublish(interview: CustomerInterview): boolean {
68
65
 
69
66
  ## Notes
70
67
 
71
- - AI processing fields (`ai_transcript_status`, `ai_summary_status`, `ai_clips_status`) follow a `pending → processing → completed | failed` lifecycle driven by **AssemblyAI** (transcription) and **TwelveLabs** (video understanding).
72
- - `speaker_mapping` maps AssemblyAI speaker labels (e.g. `"A"`, `"B"`) to real `UserProfile` identities resolved during transcription.
73
- - `incentive_excluded_ranges` stores timestamp ranges where promotional/incentive language was detected and should be excluded from highlight clip generation.
74
- - Relations (`user`, `msp`, `author`, `case_study`, `platforms`) are populated only when explicitly joined — treat them as optional at the call site.
68
+ - External transcript/video APIs are tracked via `assemblyai_transcript_id` and `twelvelabs_video_id`
69
+ - `incentive_excluded_ranges` and `speaker_mapping` are computed during transcription and stored as JSONB
70
+ - `custom_instructions` steers AI prompts for both case study generation and video processing
71
+
72
+ ---
73
+
74
+ **Source:** [`customer-interview.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/customer-interview.ts)
@@ -0,0 +1,87 @@
1
+ <!-- source-hash: 37a4c2cdf765511c217fb40ef3c7ec1e -->
2
+ Canonical type definitions for the doc-source system, providing a unified tree structure, content payload, and data-access contract for all doc-viewer consumers (knowledge base, data room, and future sources).
3
+
4
+ ## Key Components
5
+
6
+ | Export | Kind | Description |
7
+ |---|---|---|
8
+ | `DocNode` | `interface` | Single node in a doc-source tree; discriminates folders vs. files and supports rich content types via `documentType` |
9
+ | `DocumentType` | `type` | Non-nullable alias for `DocNode['documentType']`; use as renderer-map key |
10
+ | `DocContent` | `interface` | Content payload from a DAL's `getContent` call; covers both markdown and rich-content (PDF, Google Sheet, Figma) fields |
11
+ | `DocSourceDal<Client>` | `interface` | Generic DAL contract each doc source must satisfy; `Client` defaults to `unknown` to avoid pulling in `@supabase/supabase-js` |
12
+ | `DocSourceId` | `type` | Registry discriminator union (`'openframe-docs' \| 'data-room-docs'`); type-narrowing handle only — no runtime registry |
13
+ | `ResolveLinkResult` | `interface` | Discriminator-style result from the resolve-link endpoint; drives navigate / expand-folder / broken-link behaviour |
14
+ | `DocRenderHandlers` | `interface` | Callbacks and context passed into a consumer's `renderContent`; includes optional async link resolver |
15
+
16
+ ## Usage Example
17
+
18
+ ```typescript
19
+ import type {
20
+ DocNode,
21
+ DocContent,
22
+ DocSourceDal,
23
+ DocSourceId,
24
+ DocRenderHandlers,
25
+ DocumentType,
26
+ } from '@openframe-oss-lib/doc-source'
27
+
28
+ // Implement a DAL for a new doc source
29
+ class MyDocsDal implements DocSourceDal<SupabaseClient> {
30
+ async getStructure(client: SupabaseClient): Promise<DocNode[]> {
31
+ // Return the full nav tree
32
+ return [
33
+ {
34
+ id: 'intro',
35
+ name: 'Introduction',
36
+ slug: 'introduction',
37
+ path: 'docs/introduction',
38
+ type: 'file',
39
+ documentType: 'markdown',
40
+ },
41
+ ]
42
+ }
43
+
44
+ async getContent(
45
+ client: SupabaseClient,
46
+ path: string,
47
+ ): Promise<DocContent | null> {
48
+ return {
49
+ content: '# Hello world',
50
+ sections: [{ id: 'hello-world', title: 'Hello world', level: 1 }],
51
+ path,
52
+ documentType: 'markdown',
53
+ }
54
+ }
55
+ }
56
+
57
+ // Build a renderer map keyed by DocumentType
58
+ const renderers: Record<DocumentType, React.FC<{ content: DocContent }>> = {
59
+ markdown: MarkdownRenderer,
60
+ pdf: PdfRenderer,
61
+ google_sheet: SheetRenderer,
62
+ figma: FigmaRenderer,
63
+ file: FileRenderer,
64
+ }
65
+
66
+ // Wire render handlers from DocViewer into a page shell
67
+ const handlers: DocRenderHandlers = {
68
+ currentPath: 'docs/introduction',
69
+ sourceId: 'openframe-docs' satisfies DocSourceId,
70
+ onInternalLinkClick: (path, opts) => router.push(path),
71
+ onResolveLink: async (href, currentPath) => {
72
+ const res = await fetch('/api/docs/resolve-link', {
73
+ method: 'POST',
74
+ body: JSON.stringify({ href, currentPath, sourceId: 'openframe-docs' }),
75
+ })
76
+ return res.json()
77
+ },
78
+ }
79
+ ```
80
+
81
+ ## Notes
82
+
83
+ - `documentType` is optional on both `DocNode` and `DocContent`; `undefined` is treated as `'markdown'` by all consumers.
84
+ - `DocSourceDal<Client>` is intentionally generic — hub callers tighten `Client` to `SupabaseClient`; the lib itself never imports Supabase.
85
+ - Adding a new source requires both adding its id to `DocSourceId` **and** registering it in the hub's `DOC_SOURCES` registry.
86
+
87
+ **Source:** [`doc-source.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/doc-source.ts)
@@ -0,0 +1,53 @@
1
+ <!-- source-hash: 18b303f8d0b4bb28e8b6346d79dc5665 -->
2
+ Shared TypeScript interfaces defining the author data shapes used across content surfaces — detail pages, bylines, metadata grids, and author profile pages.
3
+
4
+ ## Key Components
5
+
6
+ ### `EntityAuthor`
7
+ The universal author shape attached to content entities (product releases, onboarding guides, etc.) by the hub's `hydrateAuthor`. Powers metadata-grid author cells, bylines, and `/authors/[slug]` links.
8
+
9
+ | Field | Notes |
10
+ |---|---|
11
+ | `full_name` | Display name, nullable |
12
+ | `avatar_url` | Profile image, nullable |
13
+ | `about` | Bio paragraph fed to `<ArticleAuthorByline bio>` |
14
+ | `slug` | Present only when `is_real` profile gate passes |
15
+ | `email` | Server/admin payloads only — stripped by public DALs |
16
+
17
+ ### `AuthorSocialLink`
18
+ A single curated social link from the `profile_social_links` junction, ordered by `display_order`. The `platform` key (e.g. `'linkedin'`, `'x'`) feeds directly into `SocialIconRow`.
19
+
20
+ ### `AuthorProfile`
21
+ Public author-page view model rendered by `<AuthorDetailView>`. Uses camelCase fields (contrast with `EntityAuthor`'s snake_case). The hub's `PublicAuthor` extends this with server-side extras like `updatedAt`.
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ import type { EntityAuthor, AuthorProfile, AuthorSocialLink } from './entity-author'
27
+
28
+ // Attach to a content entity (hub hydrateAuthor output)
29
+ const author: EntityAuthor = {
30
+ id: 'usr_123',
31
+ full_name: 'Jane Smith',
32
+ avatar_url: 'https://cdn.example.com/avatars/jane.webp',
33
+ about: 'Infrastructure engineer focused on MSP automation.',
34
+ slug: 'jane-smith',
35
+ }
36
+
37
+ // Construct a public author-page view model
38
+ const profile: AuthorProfile = {
39
+ id: 'usr_123',
40
+ slug: 'jane-smith',
41
+ fullName: 'Jane Smith',
42
+ avatarUrl: author.avatar_url,
43
+ about: author.about ?? null,
44
+ jobTitle: 'Infrastructure Engineer',
45
+ company: 'Flamingo',
46
+ knowsAbout: ['MSP', 'AI Automation'],
47
+ socialLinks: [
48
+ { platform: 'linkedin', url: 'https://linkedin.com/in/janesmith', username: 'janesmith' },
49
+ ],
50
+ }
51
+ ```
52
+
53
+ > **Note:** `EntityAuthor` uses snake_case (database-aligned); `AuthorProfile` uses camelCase (view-model aligned). Keep this distinction in mind when mapping between DAL output and UI components.
@@ -0,0 +1,40 @@
1
+ <!-- source-hash: d81e612913b63836481c6fd2b114b7ae -->
2
+ Defines the shared `EntityPlatformAssoc` interface representing a hydrated `entity_platforms` junction row, used by all per-entity platform association types to ensure a consistent shape across the codebase.
3
+
4
+ ## Key Components
5
+
6
+ ### `EntityPlatformAssoc`
7
+ A single interface describing the shape that `attachPlatformsToRows` places on every `<entity>_platforms[]` array (e.g. `case_study_platforms`, `blog_post_platforms`, `customer_interview_platforms`).
8
+
9
+ | Field | Type | Description |
10
+ |---|---|---|
11
+ | `platform_id` | `string` | Required platform identifier |
12
+ | `is_featured` | `boolean` | Whether the platform is featured |
13
+ | `featured_order` | `number \| null` | Optional ordering for featured platforms |
14
+ | `name` | `string` | Platform name, spread from the platform record; used by `composeContentUrlFromPlatforms` |
15
+ | `display_name` | `string` | Optional display-friendly name |
16
+ | `platform_name` | `string` | Alias added by some admin fetches (e.g. `getCaseStudyForAdmin`) |
17
+ | `id` | `string` | Optional platform record ID |
18
+ | `created_at` | `string` | Optional creation timestamp |
19
+
20
+ ## Usage Example
21
+
22
+ ```typescript
23
+ import type { EntityPlatformAssoc } from './entity-platform'
24
+
25
+ // Typed per-entity association reusing the shared interface
26
+ type CaseStudyPlatform = EntityPlatformAssoc
27
+
28
+ function getFeaturedPlatforms(platforms: EntityPlatformAssoc[]): EntityPlatformAssoc[] {
29
+ return platforms
30
+ .filter(p => p.is_featured)
31
+ .sort((a, b) => (a.featured_order ?? 0) - (b.featured_order ?? 0))
32
+ }
33
+ ```
34
+
35
+ ## Notes
36
+
37
+ - All per-entity platform types reference this single interface, preventing shape drift across entity types.
38
+ - Fields spread from the platform record (via `PLATFORM_EMBED`) allow URL composition without casting.
39
+
40
+ **Source:** [`entity-platform.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/entity-platform.ts)
@@ -1,41 +1,47 @@
1
- <!-- source-hash: 2dec9acc6154e0160c391613c83b192e -->
2
- Centralized barrel export file for all type definitions in the `@flamingo/ui-kit` package, providing a single import entry point for platform, application, and domain types.
1
+ <!-- source-hash: 803ae4425b112973a12ba40c193e0cdc -->
2
+ Centralized barrel export file for the `@flamingo/ui-kit` package, re-exporting all platform, application, and domain types from a single entry point.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export Group | Modules |
6
+ | Export Group | Source Modules |
7
7
  |---|---|
8
- | **Core Platform** | `announcement`, `categories`, `category`, `media`, `platform` |
8
+ | **Core Platform** | `announcement`, `doc-source`, `categories`, `category`, `media`, `platform` |
9
9
  | **Database & API** | `supabase` |
10
10
  | **Authentication** | `auth` |
11
- | **Content** | `blog`, `case-study`, `customer-interview`, `luma`, `product-release`, `delivery`, `vendor`, `video-processing` |
11
+ | **Content** | `blog`, `entity-author`, `case-study`, `customer-interview`, `luma`, `product-release`, `delivery`, `vendor`, `video-processing` |
12
12
  | **User & Profile** | `employee`, `profile`, `team`, `user` |
13
13
  | **Communication** | `slack`, `waitlist` |
14
- | **Business Logic** | `faq`, `report`, `stack` |
14
+ | **Business Logic** | `faq`, `content-ref`, `report`, `stack` |
15
15
  | **Navigation** | `navigation` |
16
- | **Tools & Shell** | `tool.types`, `shell.types`, `os.types` |
16
+ | **Shell / OS / Tools** | `shell.types`, `os.types`, `tool.types` |
17
17
  | **Marketing & Access** | `marketing`, `access-code-cohorts`, `icons`, `permissions`, `tmcg` |
18
18
 
19
- > **Note:** `platform` uses named re-exports (`export type { ... }`) to avoid conflicts with internal types, exposing only `LegacyPlatform`, `PlatformFilter`, `PlatformName`, `PlatformOption`, `PlatformRecord`, `PlatformSettings`, and `PlatformStats`.
19
+ > **Note:** `categories` and `platform` use named-only exports (`export type { ... }`) to avoid conflicts with overlapping identifiers from sibling modules.
20
20
 
21
21
  ## Usage Example
22
22
 
23
23
  ```typescript
24
- // Import any type directly from the package root
24
+ // Import any type directly from the package root — no deep imports needed
25
25
  import type {
26
26
  PlatformSettings,
27
+ PlatformName,
27
28
  Category,
28
- BlogPost,
29
- UserProfile,
30
- NavigationItem,
29
+ DocNode,
30
+ DocContent,
31
31
  } from '@flamingo/ui-kit'
32
32
 
33
- // No need to reach into individual type files
34
- const config: PlatformSettings = { /* ... */ }
35
- const nav: NavigationItem[] = []
33
+ const config: PlatformSettings = {
34
+ name: 'openframe' as PlatformName,
35
+ // ...
36
+ }
36
37
  ```
37
38
 
38
39
  ## Notes
39
40
 
40
- - Prefer importing from `@flamingo/ui-kit` directly rather than deep-importing individual type modules (e.g., `@flamingo/ui-kit/types/platform`).
41
- - `categories` also uses named exports to selectively expose `Category`, `CategoryCardProps`, and `RealCategoryCardProps`.
41
+ - **Single import surface:** consumers never need to reach into sub-paths like `@flamingo/ui-kit/platform`.
42
+ - **`doc-source` types** (`DocNode`, `DocContent`, `DocSourceDal`, `DocRenderHandlers`) are shared across knowledge-base, data-room, and future doc-source viewers.
43
+ - **Selective re-exports** on `categories` and `platform` prevent name collisions while still exposing the most-used public types.
44
+
45
+ ## Source
46
+
47
+ [`index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/index.ts)
@@ -1,39 +1,32 @@
1
- <!-- source-hash: f0baaf40642c975086a4698fa70728a9 -->
2
- Brief description: Defines all TypeScript interfaces, types, and enums for the Flamingo Marketing AI system, covering campaigns, AI-generated content, media assets, social accounts, scheduled posts, approvals, and usage tracking.
1
+ <!-- source-hash: 772ae04d34add00764dbf442ea4f82dc -->
2
+ Defines the complete TypeScript type system for the Marketing AI module, covering campaigns, AI-generated content and media, social accounts, scheduled posts, approvals, and usage tracking.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### Campaign Types
7
7
  - **`MarketingCampaign`** — Core campaign entity with content seed fields (`content_source_type`, `content_source_id`, `custom_instructions`)
8
- - **`CreateCampaignInput`** / **`UpdateCampaignInput`** — Input shapes for campaign mutations
8
+ - **`CreateCampaignInput`** / **`UpdateCampaignInput`** — Mutation payloads for campaign management
9
+ - **`CampaignWithDetails`** — Aggregate type combining campaign, content, and media
10
+ - **`CampaignStats`** — Counters for draft, active, and completed campaigns
9
11
 
10
- ### Content Types
11
- - **`ContentType`** — `'blog_post' | 'social_post' | 'ad_copy' | 'email'`
12
- - **`ContentStatus`** — Lifecycle states from `'draft'` through `'published'`
13
- - **`AIContent`** — Generated text content with publishing, override, and URL injection fields
14
- - **`CreateAIContentInput`** — Input for creating AI-generated content records
15
-
16
- ### Media Types
17
- - **`MediaType`** — `'image' | 'video' | 'figma_export'`
18
- - **`MediaProvider`** — Supported AI providers: `dalle`, `flux-pro`, `kling-v2.5`, `luma-ray2`, and more
19
- - **`AIMedia`** — Media asset entity including storage paths, dimensions, Figma integration, and publish overrides
12
+ ### AI Content & Media Types
13
+ - **`AIContent`** — Generated text assets (`blog_post`, `social_post`, `ad_copy`, `email`) with approval workflow and URL injection fields
14
+ - **`AIMedia`** — Generated image/video assets with provider tracking (`dalle-3`, `flux-pro`, `kling-v2.5`, etc.) and Figma export support
20
15
  - **`MediaDimensions`** — Width, height, and aspect ratio descriptor
16
+ - **`ContentStatus`** / **`MediaStatus`** — Lifecycle enums from `draft` through `published`
21
17
 
22
18
  ### Social & Scheduling Types
23
- - **`SocialChannel`** — `'slack' | 'linkedin' | 'facebook' | 'instagram' | 'twitter' | 'youtube'`
24
- - **`SocialAccount`** / **`CreateSocialAccountInput`** OAuth account records with encrypted tokens
25
- - **`ScheduledPost`** / **`CreateScheduledPostInput`** — Post scheduling with retry tracking
19
+ - **`SocialAccount`** — OAuth-connected social channel (`slack`, `linkedin`, `facebook`, `instagram`, `twitter`, `youtube`)
20
+ - **`ScheduledPost`** Post scheduling with retry tracking and external post URL reference
21
+ - **`SocialChannel`** / **`SocialAccountType`** — Channel and account classification enums
26
22
 
27
- ### Approval & Usage Types
28
- - **`ContentApproval`** — Approval workflow for content, media, and campaigns
29
- - **`AIUsage`** / **`TrackAIUsageInput`** — Cost and token tracking per AI service and operation
30
- - **`AIService`** — `'anthropic' | 'openai' | 'replicate' | 'figma' | 'google'`
23
+ ### Approval & Usage Tracking
24
+ - **`ContentApproval`** — Review workflow for content and media items
25
+ - **`AIUsage`** / **`TrackAIUsageInput`** — Token and cost tracking per service (`anthropic`, `openai`, `replicate`, `figma`, `google`)
26
+ - **`AIUsageSummary`** — Aggregated cost and token totals broken down by service
31
27
 
32
- ### Aggregate & Source Types
33
- - **`CampaignWithDetails`** — Campaign bundled with its content and media arrays
34
- - **`CampaignStats`** / **`AIUsageSummary`** — Dashboard-level rollup statistics
35
- - **`ContentSourceType`** — Union of 11 seed content origins (`product_release`, `blog_post_seed`, `event`, `podcast`, etc.)
36
- - **`URLInjectionPreference`** — `'none' | 'in_post' | 'as_comment'`
28
+ ### Content Source Types
29
+ - **`ContentSourceType`** — Union type covering 13 content origin strategies (`product_release`, `blog_post_seed`, `event`, `podcast`, `faq`, etc.)
37
30
 
38
31
  ## Usage Example
39
32
 
@@ -41,25 +34,29 @@ Brief description: Defines all TypeScript interfaces, types, and enums for the F
41
34
  import type {
42
35
  CreateCampaignInput,
43
36
  AIContent,
44
- ContentType,
45
- URLInjectionPreference,
37
+ ContentSourceType,
38
+ MediaProvider,
46
39
  } from './marketing';
47
40
 
48
- // Create a campaign seeded from a product release
49
41
  const newCampaign: CreateCampaignInput = {
50
42
  name: 'Q3 Product Launch',
51
43
  content_source_type: 'product_release',
52
44
  content_source_id: 42,
53
- custom_instructions: 'Emphasize enterprise features and ROI',
54
- start_date: '2025-07-01',
45
+ custom_instructions: 'Emphasize enterprise features and security compliance.',
46
+ start_date: '2025-08-01',
55
47
  };
56
48
 
57
- // Type-safe AI content with URL injection preference
58
- const socialPost: Partial<AIContent> = {
59
- content_type: 'social_post' as ContentType,
49
+ const generatedPost: Partial<AIContent> = {
50
+ content_type: 'social_post',
60
51
  status: 'draft',
61
52
  social_account_id: 7,
62
- url_injection_preference: 'as_comment' as URLInjectionPreference,
53
+ url_injection_preference: 'as_comment',
63
54
  selected_for_publish: false,
64
55
  };
65
- ```
56
+
57
+ const provider: MediaProvider = 'flux-pro';
58
+ ```
59
+
60
+ ## Source
61
+
62
+ [`marketing.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/marketing.ts)