@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
@@ -0,0 +1,57 @@
1
+ <!-- source-hash: ec30097feafd8e14e66c0760d7da51a3 -->
2
+ React hooks for subscribing to NATS subjects via the shared connection provided by `<NatsProvider>`, with support for both raw byte messages and JSON-decoded payloads.
3
+
4
+ ## Key Components
5
+
6
+ ### `useNatsSubscription`
7
+ Core hook that subscribes to a NATS subject using the shared connection from `<NatsProvider>`. Automatically resubscribes when the subject changes, the connection becomes ready, or a reconnection occurs.
8
+
9
+ **Parameters:**
10
+ - `subject` — NATS subject string, or `null` to disable
11
+ - `onMessage` — callback receiving raw `Msg` objects
12
+ - `options` — optional `NatsSubscribeOptions` plus `enabled` flag
13
+
14
+ **Returns:** `{ isSubscribed, isReady }`
15
+
16
+ ### `useNatsJsonSubscription`
17
+ Convenience wrapper around `useNatsSubscription` that automatically decodes incoming message bytes as JSON and passes the parsed payload to the callback. Malformed payloads are silently ignored.
18
+
19
+ **Parameters:**
20
+ - `subject` — NATS subject string, or `null` to disable
21
+ - `onPayload` — callback receiving `(payload: T, msg: Msg)`
22
+ - `options` — same options as `useNatsSubscription`
23
+
24
+ ### `UseNatsSubscriptionOptions`
25
+ Extends `NatsSubscribeOptions` with an `enabled?: boolean` flag to conditionally pause subscriptions without unmounting the component.
26
+
27
+ ## Usage Example
28
+
29
+ ```typescript
30
+ // Raw byte subscription
31
+ function MyComponent() {
32
+ const { isSubscribed } = useNatsSubscription(
33
+ 'events.updates',
34
+ (msg) => console.log('raw bytes:', msg.data),
35
+ { queue: 'workers', enabled: true },
36
+ )
37
+
38
+ return <span>{isSubscribed ? 'Listening' : 'Disconnected'}</span>
39
+ }
40
+
41
+ // JSON subscription with typed payload
42
+ interface TickerEvent {
43
+ symbol: string
44
+ price: number
45
+ }
46
+
47
+ function TickerDisplay() {
48
+ const { isReady } = useNatsJsonSubscription<TickerEvent>(
49
+ 'market.ticker',
50
+ (payload, msg) => {
51
+ console.log(`${payload.symbol}: $${payload.price}`)
52
+ },
53
+ )
54
+ }
55
+ ```
56
+
57
+ > Both hooks stabilize the message handler via `useRef` so the subscription is not torn down on every render when an inline callback is passed.
@@ -0,0 +1,57 @@
1
+ <!-- source-hash: 42e64113d86d5eae0ead175437c52358 -->
2
+ Storybook stories file for the `ActionsMenu` and `ActionsMenuDropdown` components, providing interactive visual documentation of all supported menu variants and item types.
3
+
4
+ ## Key Components
5
+
6
+ **Stories exported:**
7
+
8
+ | Story | Description |
9
+ |---|---|
10
+ | `Default` | Single-group menu with icon items |
11
+ | `GroupedWithDanger` | Multi-group menu with separator and destructive delete row |
12
+ | `WithCheckboxes` | Checkbox-type items with checked/unchecked states |
13
+ | `WithSubmenu` | Nested submenu via `ActionsMenuDropdown` (requires Radix DropdownMenu context) |
14
+ | `WithDisabledItem` | Dimmed, non-interactive disabled row |
15
+ | `WithSecondaryAction` | Row with an independently clickable secondary icon button (e.g. open in new tab) |
16
+ | `Dropdown` | `ActionsMenuDropdown` with an ellipsis trigger button |
17
+
18
+ **Key props documented:**
19
+
20
+ - `groups` — Array of `ActionsMenuGroup` objects, each containing an array of items
21
+ - `className` — Additional CSS classes for the menu panel
22
+ - `onItemClick` — Callback fired when any item is activated
23
+
24
+ ## Usage Example
25
+
26
+ ```typescript
27
+ import { ActionsMenu, ActionsMenuDropdown } from '../components/ui/actions-menu';
28
+
29
+ // Inline panel
30
+ <ActionsMenu
31
+ groups={[
32
+ {
33
+ id: 'primary',
34
+ separator: true,
35
+ items: [
36
+ { id: 'edit', label: 'Edit', icon: <PencilIcon />, onClick: handleEdit },
37
+ { id: 'download', label: 'Download', icon: <Download01Icon />, onClick: handleDownload },
38
+ ],
39
+ },
40
+ {
41
+ id: 'destructive',
42
+ items: [
43
+ { id: 'delete', label: 'Delete', icon: <TrashBlankIcon />, danger: true, onClick: handleDelete },
44
+ ],
45
+ },
46
+ ]}
47
+ />
48
+
49
+ // Trigger-attached dropdown
50
+ <ActionsMenuDropdown groups={dropdownGroups} onItemClick={handleItemClick} />
51
+ ```
52
+
53
+ > **Note:** Submenu items (`type: 'submenu'`) require `ActionsMenuDropdown` — the inline `ActionsMenu` panel has no Radix DropdownMenu context.
54
+
55
+ ## Source
56
+
57
+ [`ActionsMenu.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ActionsMenu.stories.tsx)
@@ -0,0 +1,46 @@
1
+ <!-- source-hash: dc7266b2b4457b06de407dc273e1e31e -->
2
+ Storybook stories for the `Alert` UI component, showcasing all available variants and a real-world usage example.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Variant | Description |
7
+ |---|---|---|
8
+ | `Default` | `default` | Neutral informational alert |
9
+ | `Destructive` | `destructive` | Error state alert (e.g. session expired) |
10
+ | `Warning` | `warning` | Caution state alert |
11
+ | `EmailVerification` | `warning` | Real-world example mirroring the Settings page email-verification banner |
12
+ | `AllVariants` | — | Renders all three variants stacked for visual comparison |
13
+
14
+ ## Usage Example
15
+
16
+ ```typescript
17
+ import { Alert, AlertDescription, AlertTitle } from '../components/ui/alert';
18
+
19
+ // Basic usage
20
+ <Alert variant="default">
21
+ <AlertTitle>Heads up!</AlertTitle>
22
+ <AlertDescription>You can add components to your app using the CLI.</AlertDescription>
23
+ </Alert>
24
+
25
+ // With icon and custom layout (email verification banner pattern)
26
+ import { AlertTriangleIcon } from '../components/icons-v2-generated/interface/alert-triangle-icon';
27
+
28
+ <Alert
29
+ variant="warning"
30
+ className="flex items-center justify-center gap-[var(--spacing-system-m)] p-[var(--spacing-system-s)]"
31
+ >
32
+ <span className="shrink-0">
33
+ <AlertTriangleIcon size={24} />
34
+ </span>
35
+ <p className="flex-1 text-h4 font-bold">Verify your email to keep access to system.</p>
36
+ <button type="button" className="shrink-0 text-h4 font-medium underline whitespace-nowrap">
37
+ Resend Verification Mail
38
+ </button>
39
+ </Alert>
40
+ ```
41
+
42
+ ## Notes
43
+
44
+ - The `variant` prop accepts `'default'`, `'destructive'`, or `'warning'` and is controlled via a Storybook `select` control.
45
+ - `EmailVerification` is pinned to the `warning` variant and demonstrates composing `Alert` with an icon, bold message text, and an inline action button — matching the Figma design for the Settings page banner.
46
+ - Source: [`Alert.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/Alert.stories.tsx)
@@ -1,45 +1,72 @@
1
- <!-- source-hash: cf04b71bf17cf6b35fdcdc036bdc8b09 -->
2
- Storybook stories for the `AnnouncementBar` component, providing isolated visual variants with mocked API responses and localStorage state to simulate the full announcement lifecycle without a real backend.
1
+ <!-- source-hash: 73d3a98384e609c3fd1b1b5c733bdc5f -->
2
+ Storybook stories for the `AnnouncementBar` component, covering SSR-seeded, client-fetched, and admin preview rendering paths across multiple visual configurations.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  | Export | Description |
7
- |--------|-------------|
8
- | `mockAnnouncement()` | Helper that intercepts `window.fetch` to return mock announcement data and clears dismiss flags from `localStorage` |
9
- | `Default` | Basic announcement with icon and description using the Flamingo yellow (`#FFD951`) background |
10
- | `WithCTA` | Announcement with a fully configured call-to-action button opening in a new tab |
11
- | `WithCTASameTab` | CTA variant targeting `_self` for same-tab navigation |
7
+ |---|---|
8
+ | `Default` | Basic announcement with icon and description |
9
+ | `WithCTA` | Announcement with a styled call-to-action button (new tab) |
10
+ | `WithoutCloseButton` | Non-dismissible bar (`dismissible={false}`) |
11
+ | `WithCTASameTab` | CTA that navigates within the same tab |
12
+ | `DarkBackground` | Validates contrast-aware text color via `pickReadableTextColor` |
12
13
  | `BlueBackground` / `GreenBackground` | Color theme variants |
13
- | `WithOpenFrameLogo` | Uses the `openframe-logo` SVG icon with a branded CTA |
14
- | `WithPNGIcon` | Tests PNG icon rendering via `icon_png_url` |
15
- | `LongContent` | Stress-tests truncation behavior on long titles and descriptions |
16
- | `NoAnnouncement` | Renders with `null` announcement to verify the bar hides itself |
14
+ | `WithOpenFrameLogo` | Uses the `openframe-logo` named icon |
15
+ | `WithPNGIcon` | Icon sourced from an external `icon_url` |
16
+ | `LongContent` | Truncation behavior under long titles and descriptions |
17
+ | `PreviewMode` | Admin live-preview renders bar inert; no storage/fetch side effects |
18
+ | `NoAnnouncement` | Null announcement; bar renders nothing |
19
+ | `ClientOnlyEmbed` | Mounts an `EndpointsRuntimeContext` provider and mocks `window.fetch` to simulate client-only embedding without SSR |
17
20
 
18
21
  ## Usage Example
19
22
 
20
23
  ```typescript
21
- // How the fetch mock works in each story decorator
22
- const cleanup = mockAnnouncement({
23
- id: 'story-1',
24
- title: 'New Feature Released',
25
- description: 'Check out our latest updates.',
26
- background_color: '#FFD951',
27
- icon_type: 'svg',
28
- icon_svg_name: 'rocket',
29
- platform_id: 'openframe',
30
- is_active: true,
31
- created_at: new Date().toISOString(),
32
- updated_at: new Date().toISOString(),
33
- })
34
-
35
- // The mock intercepts /api/announcements/active
36
- // and returns the provided announcement object.
37
- // Pass null to simulate no active announcement.
38
- mockAnnouncement(null)
24
+ // Replicate the SSR-seeded path used by most stories
25
+ import { AnnouncementBar } from '../components/announcement-bar'
26
+
27
+ export const WithCTA: Story = {
28
+ args: {
29
+ initialAnnouncement: {
30
+ id: 'example-1',
31
+ title: 'OpenFrame v2.0 is here!',
32
+ description: 'Explore the new dashboard.',
33
+ background_color: '#FFD951',
34
+ icon_name: 'star',
35
+ is_active: true,
36
+ cta_enabled: true,
37
+ cta_text: 'Learn More',
38
+ cta_url: 'https://example.com',
39
+ cta_target: '_blank',
40
+ },
41
+ },
42
+ }
43
+
44
+ // Replicate the client-only embed path (mocks fetch, no SSR prop)
45
+ export const ClientOnlyEmbed: Story = {
46
+ args: {},
47
+ decorators: [
48
+ (Story) => {
49
+ window.fetch = async (input) => {
50
+ if (input.toString().includes('/api/announcements/active')) {
51
+ return new Response(JSON.stringify({ announcement: { ...} }), {
52
+ status: 200,
53
+ headers: { 'Content-Type': 'application/json' },
54
+ })
55
+ }
56
+ return originalFetch(input)
57
+ }
58
+ return (
59
+ <EndpointsRuntimeContext.Provider value={embedEndpoints}>
60
+ <Story />
61
+ </EndpointsRuntimeContext.Provider>
62
+ )
63
+ },
64
+ ],
65
+ }
39
66
  ```
40
67
 
41
68
  ## Notes
42
69
 
43
- - All stories use the `fullscreen` layout to replicate the top-of-page bar context
44
- - The `mockAnnouncement` helper automatically restores `window.fetch` and removes `localStorage` dismiss keys to prevent state leaking between story renders
45
- - `autodocs` is enabled, generating a component API table from the `Announcement` type
70
+ - Every story's decorator calls `clearAnnouncementDismissals(getAppType())` before rendering, ensuring each story starts with the bar visible regardless of prior interactions.
71
+ - Without an `EndpointsRuntimeContext` provider mounted, the bar never issues a fetch — stories remain self-contained and require no network mocking unless explicitly testing the embed path (`ClientOnlyEmbed`).
72
+ - Source: [`AnnouncementBar.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/AnnouncementBar.stories.tsx)
@@ -0,0 +1,60 @@
1
+ <!-- source-hash: eb65307855df2f5b364327378b10b165 -->
2
+ Storybook stories for the `AppLayoutDrawer` component, demonstrating an in-layout drawer panel that renders within `AppLayout`'s main content area without covering the global chrome (header and sidebar).
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |---|---|
8
+ | `Right` | Default right-side drawer, persistent (does not close on chrome clicks) |
9
+ | `ResizableRight` | Right-side drawer with drag-to-resize handle, clamped to the main content area |
10
+ | `Left` | Left-side drawer variant, suitable for filters or secondary navigation |
11
+ | `DashboardChildren` | Internal helper rendering a mock dashboard with a button to trigger the drawer |
12
+
13
+ ## Usage Example
14
+
15
+ ```typescript
16
+ import {
17
+ AppLayout,
18
+ AppLayoutDrawer,
19
+ AppLayoutDrawerBody,
20
+ AppLayoutDrawerContent,
21
+ AppLayoutDrawerHeader,
22
+ AppLayoutDrawerTitle,
23
+ } from '../components/navigation'
24
+
25
+ function Page() {
26
+ const [open, setOpen] = useState(false)
27
+
28
+ return (
29
+ <AppLayout
30
+ sidebarConfig={{ items: navigationItems, onNavigate: handleNav, onToggleMinimized: handleToggle }}
31
+ drawer={
32
+ <AppLayoutDrawer open={open} onOpenChange={setOpen}>
33
+ <AppLayoutDrawerContent
34
+ side="right"
35
+ resizable
36
+ minSize={360}
37
+ defaultSize={560}
38
+ storageKey="my-app:drawer:right"
39
+ >
40
+ <AppLayoutDrawerHeader>
41
+ <AppLayoutDrawerTitle>Panel Title</AppLayoutDrawerTitle>
42
+ </AppLayoutDrawerHeader>
43
+ <AppLayoutDrawerBody>
44
+ <p>Panel content here.</p>
45
+ </AppLayoutDrawerBody>
46
+ </AppLayoutDrawerContent>
47
+ </AppLayoutDrawer>
48
+ }
49
+ >
50
+ <button onClick={() => setOpen(true)}>Open Panel</button>
51
+ </AppLayout>
52
+ )
53
+ }
54
+ ```
55
+
56
+ > **When to use `AppLayoutDrawer` vs `Drawer`:** Use `AppLayoutDrawer` for page-level panels (chat, details, filters) that should coexist with the app chrome. Use the standard `Drawer` from `components/ui` for viewport-covering overlays such as notifications or auth modals.
57
+
58
+ ## Source
59
+
60
+ [`AppLayoutDrawer.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/AppLayoutDrawer.stories.tsx)
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: 99e6880161138f9d238720bc80b322d2 -->
2
+ Storybook stories for the `AppLayoutSidebar` component, demonstrating how `AppLayout` integrates with `AppLayoutDrawer` to render a toggleable right-side AI chat panel within the main content area.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `Default` | `Story` | Toggle-driven sidebar that opens/closes via the Mingo AI header button |
9
+ | `Resizable` | `Story` | Starts open with a draggable resize handle; persists width via `storageKey` |
10
+ | `DashboardChildren` | Internal component | Mock dashboard UI used as page content behind the drawer |
11
+ | `navigationItems` | `NavigationSidebarConfig['items']` | Sample nav config with Dashboard, Customers, Devices, Scripts, and Settings |
12
+
13
+ ## Usage Example
14
+
15
+ ```typescript
16
+ // Minimal AppLayout with a toggleable Mingo AI drawer
17
+ const [open, setOpen] = useState(false)
18
+
19
+ <AppLayout
20
+ sidebarConfig={{ items: navigationItems, onNavigate: fn(), onToggleMinimized: fn() }}
21
+ headerProps={{
22
+ showMingoAI: true,
23
+ onMingoAI: () => setOpen((prev) => !prev),
24
+ isMingoAIActive: open,
25
+ }}
26
+ drawer={
27
+ <AppLayoutDrawer open={open} onOpenChange={setOpen}>
28
+ <AppLayoutDrawerContent side="right">
29
+ <AppLayoutDrawerHeader>
30
+ <AppLayoutDrawerTitle>Mingo AI</AppLayoutDrawerTitle>
31
+ </AppLayoutDrawerHeader>
32
+ <AppLayoutDrawerBody>
33
+ <p>Chat content goes here.</p>
34
+ </AppLayoutDrawerBody>
35
+ </AppLayoutDrawerContent>
36
+ </AppLayoutDrawer>
37
+ }
38
+ >
39
+ <PageContent />
40
+ </AppLayout>
41
+ ```
42
+
43
+ For a resizable drawer, add `resizable`, `minSize`, `defaultSize`, and `storageKey` to `AppLayoutDrawerContent`. The navigation sidebar and header remain fully interactive while the drawer is open; close via the X button or Escape key.
44
+
45
+ **Source:** [`AppLayoutSidebar.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/AppLayoutSidebar.stories.tsx)
@@ -0,0 +1,46 @@
1
+ <!-- source-hash: 42e35c13ea5f57f4bad0c0ee1df57d09 -->
2
+ Storybook stories for the `ApprovalBatchMessage` chat component, covering all approval lifecycle states (pending, executing, done, rejected, cancelled) for the "Command Block" UI pattern from Figma node 1092-2807.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `Pending` | `Story` | Shows Approve/Reject buttons; row is expandable to reveal call arguments |
9
+ | `ApprovedExecuting` | `Story` | Approved state with a grey loader while the tool call runs |
10
+ | `ApprovedDone` | `Story` | Approved and finished; green check with an expandable Result block |
11
+ | `Rejected` | `Story` | Red status tag, no execution initiated |
12
+ | `Cancelled` | `Story` | Grey status tag, no execution initiated |
13
+ | `AllStates` | `Story` | All five states rendered vertically for side-by-side Figma comparison |
14
+
15
+ **Helpers:**
16
+
17
+ - `toolCall` — a `PendingToolCallData` fixture for a `run_script` RMM tool requiring admin approval
18
+ - `makeData()` — factory producing `ApprovalBatchData` with optional per-call `ApprovalBatchExecutionState` overrides
19
+ - `constrainedDecorator()` — wraps stories in a `max-width` container (default 400 px) to match chat panel dimensions
20
+
21
+ ## Usage Example
22
+
23
+ ```typescript
24
+ import { ApprovalBatchMessage } from "../components/chat/approval-batch-message";
25
+
26
+ // Pending approval
27
+ <ApprovalBatchMessage
28
+ data={{
29
+ approvalRequestId: "batch-1",
30
+ approvalType: "ADMIN",
31
+ toolCalls: [toolCall],
32
+ }}
33
+ status="pending"
34
+ onApprove={() => handleApprove()}
35
+ onReject={() => handleReject()}
36
+ />
37
+
38
+ // Approved and finished
39
+ <ApprovalBatchMessage
40
+ data={doneData}
41
+ status="approved"
42
+ resolvedByName="Michael Johnson"
43
+ />
44
+ ```
45
+
46
+ **Source:** [`ApprovalBatchMessage.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ApprovalBatchMessage.stories.tsx)
@@ -0,0 +1,55 @@
1
+ <!-- source-hash: 97d757bd7f6ce826c293b7cabfdf5f49 -->
2
+ Storybook stories for the **client-facing (Fae end-user)** variant of `ApprovalBatchMessage`, demonstrating all approval states a client can encounter.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |---|---|
8
+ | `Pending` | Title + Approve/Reject buttons; no command details exposed |
9
+ | `Approved` | Full-text green status pill with resolver name |
10
+ | `Rejected` | Full-text red status pill with resolver name |
11
+ | `Cancelled` | Full-text grey status pill with resolver name |
12
+ | `AllStates` | Composite story rendering all four states stacked vertically |
13
+
14
+ ## Usage Example
15
+
16
+ ```typescript
17
+ import { ApprovalBatchMessage } from "../components/chat/approval-batch-message";
18
+
19
+ // Pending state — client sees only the BE-generated title + action buttons
20
+ <ApprovalBatchMessage
21
+ variant="client"
22
+ data={{
23
+ approvalRequestId: "batch-1",
24
+ approvalType: "CLIENT",
25
+ toolCalls: [{
26
+ toolExecutionRequestId: "req-1",
27
+ toolName: "run_script",
28
+ toolTitle: "Run Script",
29
+ toolExplanation: "Exports today's event logs to CSV.",
30
+ toolType: "OPENFRAME_RMM",
31
+ requiresApproval: true,
32
+ approvalType: "CLIENT",
33
+ toolCallArguments: { command: "...", timeoutSeconds: 60 },
34
+ }],
35
+ }}
36
+ status="pending"
37
+ onApprove={() => {}}
38
+ onReject={() => {}}
39
+ />
40
+
41
+ // Resolved state — client sees a status pill only
42
+ <ApprovalBatchMessage
43
+ variant="client"
44
+ data={data}
45
+ status="approved"
46
+ resolvedByName="Michael Johnson"
47
+ />
48
+ ```
49
+
50
+ ## Notes
51
+
52
+ - Gated by `variant="client"` — commands, scripts, expandable args/results, and execution icons are **never rendered** in this variant.
53
+ - The client sees only the BE-generated `toolExplanation` field as the card title.
54
+ - Mirrors Figma node `203-11947` ("fae-approval-block") and frames `1-6575`, `1-6621`, `1-6637`, `1-6653`.
55
+ - Source: [`ApprovalBatchMessageClient.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ApprovalBatchMessageClient.stories.tsx)
@@ -0,0 +1,50 @@
1
+ <!-- source-hash: 2177d7e46f18605feaab85e2a98af352 -->
2
+ Storybook stories for the `ApprovalRequestMessage` component, covering all approval states (pending, approved, rejected, cancelled) and content variants (structured fields vs. explanation prose).
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |---|---|
8
+ | `Pending` | Default state with Approve/Reject action buttons visible |
9
+ | `Approved` | Resolved state showing a green status tag |
10
+ | `Rejected` | Resolved state showing a red status tag |
11
+ | `Cancelled` | Resolved state showing a grey status tag |
12
+ | `WithExplanation` | Pending state using free-text explanation instead of structured fields |
13
+ | `constrainedDecorator` | Local helper that wraps each story in a `400px`-wide container to simulate chat bubble constraints |
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ import { ApprovalRequestMessage } from "../components/chat/approval-request-message";
19
+ import type { ApprovalRequestData } from "../components/chat/types";
20
+
21
+ const data: ApprovalRequestData = {
22
+ command: `Get-CimInstance Win32_Process | Select-Object ProcessId, Name`,
23
+ requestId: "req-1",
24
+ approvalType: "ADMIN",
25
+ fields: [
26
+ { label: "Tool", value: "OpenFrame RMM" },
27
+ { label: "RunAsUser", value: "False" },
28
+ { label: "timeoutSeconds", value: "60" },
29
+ ],
30
+ };
31
+
32
+ // Pending — shows Approve / Reject buttons
33
+ <ApprovalRequestMessage
34
+ data={data}
35
+ status="pending"
36
+ onApprove={() => handleApprove()}
37
+ onReject={() => handleReject()}
38
+ />
39
+
40
+ // Resolved — buttons replaced by a status tag
41
+ <ApprovalRequestMessage data={data} status="approved" />
42
+ ```
43
+
44
+ ## Notes
45
+
46
+ - This is the **legacy single-command variant**. For new surfaces, prefer `ApprovalBatchMessage`, which additionally tracks per-tool execution results.
47
+ - The `fields` array and `explanation` string are mutually exclusive — use one or the other to provide context below the command bar.
48
+ - Stories are registered under `Chat/Admin/ApprovalRequestMessage` in the Storybook sidebar.
49
+
50
+ **Source:** [`ApprovalRequestMessage.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ApprovalRequestMessage.stories.tsx)
@@ -0,0 +1,41 @@
1
+ <!-- source-hash: 3206ceb65aad5349f453e11274a069c1 -->
2
+ Storybook stories for the **client-facing (Fae end-user) variant** of the `ApprovalRequestMessage` component, covering all approval lifecycle states as seen by the end client — where only the BE-generated explanation title is shown, never the raw command.
3
+
4
+ ## Key Components
5
+
6
+ - **`meta`** — Storybook metadata configuring the story group under `Chat/Client/ApprovalRequestMessage`, with `variant="client"` applied globally via `args`
7
+ - **`baseData`** — Shared `ApprovalRequestData` fixture (`approvalType: "CLIENT"`, `command`, `explanation`, `requestId`) used across all stories
8
+ - **`plainDecorator`** — Wrapper utility that constrains story width and applies the CSS background token
9
+
10
+ ## Exported Stories
11
+
12
+ | Story | Status | Description |
13
+ |---|---|---|
14
+ | `Pending` | `pending` | Title + Approve/Reject buttons; no command block rendered |
15
+ | `ApprovedByUser` | `approved` | Green `APPROVED BY JOHN SMITH` pill |
16
+ | `Approved` | `approved` | Plain `APPROVED` pill (no resolver name) |
17
+ | `RejectedByUser` | `rejected` | Red `REJECTED BY JOHN SMITH` pill |
18
+ | `Cancelled` | `cancelled` | Grey status pill |
19
+ | `NoTitleFallback` | `pending` | `explanation: undefined` triggers `"Approval required"` placeholder |
20
+
21
+ ## Usage Example
22
+
23
+ ```typescript
24
+ // Render the client approval card in pending state
25
+ import { ApprovalRequestMessage } from "../components/chat/approval-request-message";
26
+
27
+ <ApprovalRequestMessage
28
+ variant="client"
29
+ data={{
30
+ command: "brew install --cask slack",
31
+ requestId: "req-client-1",
32
+ approvalType: "CLIENT",
33
+ explanation: "Install Slack via Homebrew Cask on macOS",
34
+ }}
35
+ status="pending"
36
+ onApprove={() => handleApprove()}
37
+ onReject={() => handleReject()}
38
+ />
39
+ ```
40
+
41
+ > **Note:** With `variant="client"`, the raw `command` string is never rendered — only the `explanation` title is visible to the end user, per Figma node 203-11947 (`fae-approval-block`).
@@ -0,0 +1,52 @@
1
+ <!-- source-hash: f25255e37142438b85c6b2df6de4a52f -->
2
+ Storybook story file for the `BlogCard` entity card component, providing interactive visual stories for both compact chat-inline and full vertical catalog display densities.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `meta` | `Meta<typeof BlogCard>` | Storybook configuration for `Chat/EntityCards/BlogCard` |
9
+ | `ChatInlineSm` | `Story` | Compact horizontal card (`size="sm"`, ~80px tall) for chat-inline rendering |
10
+ | `ChatInlineWithVideoBadge` | `Story` | Compact card variant with `hasEmbeddedVideo` badge overlay |
11
+ | `Default` | `Story` | Full vertical catalog card (`size="default"`) for related-content rail use |
12
+
13
+ ## Usage Example
14
+
15
+ ```typescript
16
+ import { BlogCard } from '../components/chat/entity-cards'
17
+
18
+ // Chat-inline compact form (dispatched by chat with size="sm")
19
+ <BlogCard
20
+ post={blogPostSummary}
21
+ href={`/blog/${blogPostSummary.slug}`}
22
+ size="sm"
23
+ target="_blank"
24
+ rel="noopener noreferrer"
25
+ />
26
+
27
+ // Full vertical catalog card (e.g. related-content rail)
28
+ <BlogCard
29
+ post={blogPostSummary}
30
+ href={`/blog/${blogPostSummary.slug}`}
31
+ size="default"
32
+ target="_blank"
33
+ rel="noopener noreferrer"
34
+ />
35
+
36
+ // With embedded video badge
37
+ <BlogCard
38
+ post={blogPostSummary}
39
+ href={`/blog/${blogPostSummary.slug}`}
40
+ size="sm"
41
+ hasEmbeddedVideo
42
+ />
43
+ ```
44
+
45
+ ## Notes
46
+
47
+ - All stories are wrapped in `ChatColumnDecorator` to simulate the chat column layout context.
48
+ - `href` should be resolved by the caller via `buildContentURL` or `useNavLink`; the card renders its own `<a>` internally.
49
+ - `size="sm"` is the standard chat dispatch variant; `size="default"` is reserved for catalog/rail contexts.
50
+ - Fixture data (`blogPostSummary`) is sourced from `./__fixtures__/chat-cards`.
51
+
52
+ **Source:** [`BlogCard.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/BlogCard.stories.tsx)