@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,59 +1,58 @@
1
- <!-- source-hash: d29f5d2cc4bf17eb228a4dc4aebe30a3 -->
2
- Storybook stories for the `CheckboxBlock` UI component, covering all interactive states, variants, and theme configurations for visual testing and documentation.
1
+ <!-- source-hash: 4b530add022047c28303f0a957f8927e -->
2
+ Storybook stories for the `CheckboxBlock` UI component, covering all interactive states, variants, and theming options for visual testing and documentation.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### Stories Exported
6
+ ### Stories
7
7
 
8
8
  | Story | Description |
9
9
  |---|---|
10
- | `Default` | Unchecked checkbox block baseline |
11
- | `Checked` / `Disabled` / `DisabledChecked` | State variants |
12
- | `Controlled` | Stateful example using `useState` with live feedback |
13
- | `WithDescription` | Taller `h-16` variant with secondary description text |
14
- | `Error` / `FlamingoError` | Red border validation failure state |
15
- | `FlamingoChecked` | Pink accent theme via `data-app-type="flamingo"` wrapper |
16
- | `AllVariants` | Side-by-side comparison of all variants |
10
+ | `Default` | Unchecked checkbox block with basic label |
11
+ | `RepeatScriptRun` | Matches the Figma design reference label |
12
+ | `Checked` | Pre-checked via `defaultChecked` |
13
+ | `Disabled` / `DisabledChecked` | Non-interactive disabled states |
14
+ | `Controlled` | Fully controlled with `useState`, displays live checked value |
15
+ | `LongLabel` | Demonstrates text wrapping behavior |
16
+ | `WithDescription` | Two-line variant (`label` + `description`) |
17
+ | `WithTrailingAction` | Appends a `Button` via the `trailing` prop; uses `e.preventDefault()` to prevent label toggle |
18
+ | `Error` | Red border validation failure state |
19
+ | `FlamingoError` / `FlamingoChecked` | Pink accent theme via `data-app-type="flamingo"` |
20
+ | `AllVariants` | Side-by-side comparison of all states |
17
21
 
18
22
  ### Configured `argTypes`
19
23
 
20
- - `label` — checkbox label text
24
+ - `label` — primary checkbox label text
21
25
  - `checked` / `defaultChecked` — controlled vs. uncontrolled state
22
- - `description` — optional secondary text below label
26
+ - `description` — optional secondary text (renders taller `h-16` variant)
23
27
  - `disabled` — disables interaction
24
- - `onCheckedChange` — action callback on state change
28
+ - `onCheckedChange` — change callback (Storybook action logged)
25
29
 
26
30
  ## Usage Example
27
31
 
28
32
  ```typescript
29
- import { CheckboxBlock } from '../components/ui/checkbox-block';
30
-
31
- // Uncontrolled
32
- <CheckboxBlock label="Repeat Script Run" defaultChecked />
33
-
34
- // With description
33
+ // Controlled usage with trailing action
35
34
  <CheckboxBlock
36
- label="Run as User"
37
- description="Windows Only"
38
- disabled
39
- />
40
-
41
- // Controlled
42
- const [checked, setChecked] = useState(false);
43
- <CheckboxBlock
44
- label="Controlled Checkbox"
35
+ label="Use the default guardrails settings"
36
+ description="This customer follows guardrails defaults."
45
37
  checked={checked}
46
38
  onCheckedChange={setChecked}
39
+ trailing={
40
+ <Button variant="outline" onClick={e => e.preventDefault()}>
41
+ Edit Default Guardrails
42
+ </Button>
43
+ }
47
44
  />
48
45
 
49
46
  // Error state
50
47
  <CheckboxBlock
51
- label="Accept terms"
52
- error="Please accept to continue."
48
+ label="Send me an SMS"
49
+ description="Msg & data rates may apply."
50
+ error="Please agree to SMS notifications to continue."
53
51
  />
52
+ ```
53
+
54
+ > **Note:** When using a `trailing` interactive element, always call `e.preventDefault()` on its click handler to prevent the wrapping `<label>` from toggling the checkbox — as used in the OpenFrame customer guardrails tab.
55
+
56
+ ## Source
54
57
 
55
- // Flamingo theme
56
- <div data-app-type="flamingo">
57
- <CheckboxBlock label="Accept terms" defaultChecked />
58
- </div>
59
- ```
58
+ [`CheckboxBlock.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/CheckboxBlock.stories.tsx)
@@ -0,0 +1,28 @@
1
+ <!-- source-hash: a00c050a6f1eac8477435dd9a06e4ae0 -->
2
+ Storybook stories for `ContextCompactionDisplay`, a chat UI component that renders inline status pills when conversation context is compacted — showing a dots loader for the `started` state and a green check for `completed`.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `Started` | `Story` | Displays the in-progress state with a dots loader (`status: "started"`) |
9
+ | `Completed` | `Story` | Displays the finished state with a green check (`status: "completed"`) |
10
+ | `meta` | `Meta` | Storybook metadata wiring `ContextCompactionDisplay` under `Chat/ContextCompactionDisplay` |
11
+
12
+ ## Usage Example
13
+
14
+ ```typescript
15
+ import { ContextCompactionDisplay } from "../components/chat/context-compaction-display";
16
+
17
+ // In-progress: shows "Context limit reached…" with a dots loader
18
+ <ContextCompactionDisplay status="started" />
19
+
20
+ // Finished: shows "Earlier context summarized." with a check
21
+ <ContextCompactionDisplay status="completed" />
22
+ ```
23
+
24
+ ## Notes
25
+
26
+ - Stories are tagged with `autodocs` for automatic Storybook documentation generation.
27
+ - The `plainDecorator` wraps each story in a `max-width: 640px` container with the `--color-bg` CSS variable applied, matching the chat surface background.
28
+ - The underlying component (`context-compaction-display`) lives at [`components/chat/context-compaction-display`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/components/chat/context-compaction-display.tsx).
@@ -0,0 +1,36 @@
1
+ <!-- source-hash: fbb7728f24a18cda956623e4fa987806 -->
2
+ Storybook story file for the `CustomerInterviewCard` component, providing visual test stories across two display sizes (`sm` and `default`).
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `meta` | `Meta` | Storybook metadata configuration for `Chat/EntityCards/CustomerInterviewCard` |
9
+ | `ChatInlineSm` | `Story` | Small-size card variant, intended for inline chat usage |
10
+ | `Default` | `Story` | Default-size card variant |
11
+
12
+ ## Usage Example
13
+
14
+ ```typescript
15
+ // Render the Default story in isolation (e.g. in a test or preview)
16
+ import { Default } from './CustomerInterviewCard.stories'
17
+
18
+ // Story args passed to CustomerInterviewCard:
19
+ // {
20
+ // interview: customerInterview, // fixture data for the customer_interview doc type
21
+ // href: '/customer-interviews/slug', // deep-link to the full interview page
22
+ // size: 'default', // 'sm' | 'default'
23
+ // target: '_blank',
24
+ // rel: 'noopener noreferrer',
25
+ // }
26
+ ```
27
+
28
+ ## Notes
29
+
30
+ - Both stories use shared fixture data from `./__fixtures__/chat-cards` (`customerInterview`).
31
+ - The `ChatColumnDecorator` wraps each story to simulate the chat column layout context.
32
+ - The component's `main_video_url` field controls whether a play-button overlay appears on the cover image.
33
+ - A user + MSP badge overlay renders in both size variants.
34
+ - Stories are registered under the `Chat/EntityCards/CustomerInterviewCard` Storybook path.
35
+
36
+ **Source:** [`CustomerInterviewCard.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/CustomerInterviewCard.stories.tsx)
@@ -1,41 +1,39 @@
1
- <!-- source-hash: 903a9f23525777b275b7f8c4003cd050 -->
2
- Storybook stories for the `DashboardInfoCard` UI component, covering all props and visual states used in dashboard layouts.
1
+ <!-- source-hash: 93ee5247b34f46a210b1c67f6352a00a -->
2
+ Storybook stories file for the `DashboardInfoCard` component, providing interactive examples and documentation for all supported prop combinations and visual variants.
3
3
 
4
4
  ## Key Components
5
5
 
6
+ ### Stories
7
+
6
8
  | Story | Description |
7
9
  |---|---|
8
10
  | `Default` | Basic card with title and numeric value |
9
- | `WithPercentage` | Card showing a percentage alongside the value |
10
- | `WithProgress` | Circular progress indicator with percentage |
11
- | `CustomProgressVariant` | Progress ring with `error`/`warning`/`success`/`info`/`accent` variants |
12
- | `WithTooltip` | Question-mark icon with tooltip text |
13
- | `WithHref` | Clickable card rendered as a Next.js `Link` |
14
- | `WarningWithTag` / `ErrorWithTag` | Overflow percentage displayed as a colored `Tag` component |
15
- | `OverflowWrap` / `OverflowComparison` | Demonstrates `progressOverflow="wrap"` vs `"clamp"` for values >100% |
16
- | `FullyLoaded` | All props enabled simultaneously |
17
- | `CardGrid` | Multi-card dashboard grid layout decorator |
11
+ | `StringValue` | Card with a string value |
12
+ | `WithPercentage` | Value with percentage display |
13
+ | `WithProgress` | Circular progress indicator |
14
+ | `CustomProgressVariant` | Progress ring color variants (`success`, `warning`, `error`, `info`, `accent`) |
15
+ | `WithTooltip` | Question-mark icon tooltip |
16
+ | `WithHref` | Clickable card via Next.js Link |
17
+ | `WarningWithTag` / `ErrorWithTag` | Overflow percentage rendered as colored `Tag` |
18
+ | `OverflowWrap` / `OverflowComparison` | `progressOverflow="wrap"` vs `"clamp"` behavior |
19
+ | `PlainPercentageWithColoredRing` | Colored ring with neutral plain-text percentage |
20
+ | `DeviceStatusesOverview` | Four-column Figma "Devices Overview" grid |
21
+ | `ProgressSizeComparison` | 24px vs 56px responsive ring sizes |
22
+ | `WithTitleTag` / `WithTitleAndTag` | Figma "status" variant with `Tag` in title row |
23
+ | `WithIcon` / `WithImage` | Bordered icon/image slot (Figma "icon" variant) |
24
+ | `KitchenSink` | All props combined |
18
25
 
19
26
  ## Usage Example
20
27
 
21
28
  ```typescript
22
- import { DashboardInfoCard } from '@/components/ui/dashboard-info-card'
29
+ import { DashboardInfoCard } from '../components/ui/dashboard-info-card'
30
+ import { Tag } from '../components/ui/tag'
31
+ import { MonitorIcon } from '../components/icons-v2-generated/devices/monitor-icon'
23
32
 
24
- // Basic usage
33
+ // Basic card
25
34
  <DashboardInfoCard title="Total Devices" value={1284} />
26
35
 
27
- // With progress ring and navigation
28
- <DashboardInfoCard
29
- title="Compliance Score"
30
- value={92}
31
- percentage={92}
32
- showProgress
33
- progressVariant="success"
34
- tooltip="Based on the latest audit results"
35
- href="/compliance"
36
- />
37
-
38
- // Overflow handling for values exceeding 100%
36
+ // With circular progress and overflow wrapping
39
37
  <DashboardInfoCard
40
38
  title="Device Usage"
41
39
  value={520}
@@ -44,14 +42,23 @@ import { DashboardInfoCard } from '@/components/ui/dashboard-info-card'
44
42
  progressVariant="warning"
45
43
  progressOverflow="wrap"
46
44
  />
45
+
46
+ // Figma "icon" variant with navigation
47
+ <DashboardInfoCard
48
+ title="Endpoints"
49
+ value={4046}
50
+ icon={<MonitorIcon />}
51
+ href="/devices"
52
+ />
53
+
54
+ // Figma "status" variant with title Tag
55
+ <DashboardInfoCard
56
+ title="Tickets"
57
+ value={75}
58
+ titleTag={<Tag variant="outline" label="Resolved" />}
59
+ />
47
60
  ```
48
61
 
49
- ### `progressVariant` options
62
+ ## Source
50
63
 
51
- | Value | Use Case |
52
- |---|---|
53
- | `success` | Healthy / on-target metrics |
54
- | `warning` | Approaching limits |
55
- | `error` | Critical / over-limit |
56
- | `info` | Neutral informational |
57
- | `accent` | Brand highlight |
64
+ [`DashboardInfoCard.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/DashboardInfoCard.stories.tsx)
@@ -0,0 +1,42 @@
1
+ <!-- source-hash: f7d4866713e90d4e1df564c5e131e04d -->
2
+ Storybook stories for `DataRoomDocCard`, demonstrating the inline chat card component used to render `data_room_doc` and `markdown` document types in the chat UI.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `meta` | `Meta<typeof DataRoomDocCard>` | Storybook metadata — mounts component inside `ChatColumnDecorator` with `fullscreen` layout |
9
+ | `DataRoom` | `Story` | Card variant using a `data_room_doc` item with `"Data room"` badge |
10
+ | `KnowledgeBaseMarkdown` | `Story` | Card variant using a `markdown` item with `"OpenFrame Docs"` badge |
11
+
12
+ ## Key Concepts
13
+
14
+ - **Single component, multiple source types** — `DataRoomDocCard` renders both `data_room_doc` and `markdown` doc types; the `sourceRepo` field on the item drives the badge label.
15
+ - **`badgeText` is required** — callers must resolve the label before rendering (e.g. via `SOURCE_LABELS_BY_TABLE`) and pass it explicitly as a prop.
16
+ - **`anchorProps`** — generated via `makeAnchorProps(url)` from the shared fixture helper; wraps the card in a navigable link.
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ import { DataRoomDocCard } from '@/components/chat/entity-cards'
22
+ import { makeAnchorProps } from './__fixtures__/chat-card-decorator'
23
+ import { dataRoomDocItem } from './__fixtures__/chat-cards'
24
+
25
+ // Data room document
26
+ <DataRoomDocCard
27
+ item={dataRoomDocItem}
28
+ badgeText="Data room"
29
+ anchorProps={makeAnchorProps(dataRoomDocItem.url ?? '#')}
30
+ />
31
+
32
+ // Markdown / OpenFrame Docs document
33
+ <DataRoomDocCard
34
+ item={openframeDocsMarkdownItem}
35
+ badgeText="OpenFrame Docs"
36
+ anchorProps={makeAnchorProps(openframeDocsMarkdownItem.url ?? '#')}
37
+ />
38
+ ```
39
+
40
+ ## Source
41
+
42
+ [`DataRoomDocCard.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/DataRoomDocCard.stories.tsx)
@@ -1,41 +1,46 @@
1
- <!-- source-hash: 4b92799da5c1a1952b02f5fb9273c343 -->
2
- Storybook showcase for the `DataTable` component, demonstrating all interactive features (sorting, filtering, row selection, column visibility, pagination, and row actions) using a mock device dataset built on TanStack Table.
1
+ <!-- source-hash: 1540bbe5e22e7deb55cf8375776c08db -->
2
+ Storybook showcase file demonstrating all major features of the `DataTable` component, which is a headless wrapper over TanStack Table (`@tanstack/react-table`) with a card-row UI.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`Basic`** — Minimal setup with data and columns; no extra state
7
- - **`WithSorting`** — Consumer-owned sort cycle with `DataTableSortState`, supporting server-side or in-memory sorting
8
- - **`useDataTable`** — Hook wrapping TanStack Table; accepts `data`, `columns`, and flags like `clientSideSorting` / `clientSideFiltering`
9
- - **`baseColumns()`** — Reusable `ColumnDef<Device>[]` factory shared across stories, with responsive `hideAt` breakpoints
10
- - **Cell renderers** `StatusTag`, `OSBadge`, `OwnerCell`, `TagsCell`, `LoadCell`, `LastSeenCell` — composable display-only cells
11
- - **`multiSelectFilterFn`** Column filter function for multi-value faceted filtering (OS, Status)
12
- - **`makeDevices(count, startId?)`** — Deterministic fake device data generator seeded by index
6
+ - **`DataTable`** — Root compound component accepting a TanStack `table` instance
7
+ - **`DataTable.Header`** — Renders column headers with optional sort indicators
8
+ - **`DataTable.Body`** — Renders data rows with configurable empty state
9
+ - **`useDataTable`** — Hook that creates and manages the TanStack table instance
10
+ - **`multiSelectFilterFn`**Filter function for multi-value column filters
11
+ - **Story exports**: `Basic`, `WithSorting` (and implied additional stories for filtering, selection, column visibility, etc.)
13
12
 
14
13
  ## Usage Example
15
14
 
16
15
  ```typescript
17
- import { DataTable, useDataTable, type ColumnDef } from '@/components/ui/data-table'
18
-
19
- const columns: ColumnDef<Device>[] = [
20
- { accessorKey: 'hostname', header: 'Hostname', meta: { width: 'w-[200px]' } },
21
- { accessorKey: 'status', header: 'Status', cell: ({ row }) => <StatusTag status={row.original.status} /> },
22
- ]
23
-
24
- export function DevicesTable({ data }: { data: Device[] }) {
25
- const table = useDataTable<Device>({
26
- data,
27
- columns,
28
- clientSideSorting: true,
29
- clientSideFiltering: true,
30
- })
31
-
32
- return (
33
- <DataTable table={table}>
34
- <DataTable.Header />
35
- <DataTable.Body emptyMessage="No devices found" />
36
- </DataTable>
37
- )
38
- }
16
+ // Minimal setup (Basic story pattern)
17
+ const columns = useMemo<ColumnDef<Device>[]>(() => [
18
+ { accessorKey: 'hostname', header: 'Hostname', meta: { width: 'w-[260px]' } },
19
+ {
20
+ accessorKey: 'status',
21
+ header: 'Status',
22
+ cell: ({ row }) => <StatusTag status={row.original.status} />,
23
+ meta: { width: 'w-[140px]' },
24
+ },
25
+ ], [])
26
+
27
+ const table = useDataTable<Device>({ data, columns })
28
+
29
+ return (
30
+ <DataTable table={table}>
31
+ <DataTable.Header />
32
+ <DataTable.Body emptyMessage="No devices" />
33
+ </DataTable>
34
+ )
35
+
36
+ // Client-side sorting (WithSorting story pattern)
37
+ const table = useDataTable<Device>({
38
+ data: sortedData,
39
+ columns,
40
+ clientSideSorting: true,
41
+ })
39
42
  ```
40
43
 
41
- > **Note:** Row actions, checkboxes, and chevron links are regular `ColumnDef` entries — not magic props. Use `data-no-row-click` on interactive cell wrappers to prevent click-event bubbling to `onRowClick`.
44
+ > **Note:** `useDataTable` defaults to `manualSorting: true` / `manualFiltering: true` for server-side use. Pass `clientSideSorting: true` or `clientSideFiltering: true` for in-memory operations. Row actions, chevron links, and selection checkboxes are declared as regular `ColumnDef` entries — not special props. Interactive cells that should not bubble clicks to `onRowClick` must wrap their content in a `data-no-row-click` div.
45
+
46
+ **Source:** [`DataTable.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/DataTable.stories.tsx)
@@ -1,38 +1,31 @@
1
- <!-- source-hash: 62c605b851ea957354fc89970178b5ca -->
2
- Storybook stories for the `DatePicker` UI component, covering single date, date range, input variants, time selection, constraints, and all-variants showcase.
1
+ <!-- source-hash: db07b4e2e8a6c654b5b46e0057a004cc -->
2
+ Storybook stories file for the `DatePicker` component, showcasing all variants, modes, and sub-components with interactive state management.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export | Description |
7
- |--------|-------------|
8
- | `Single` | Basic single-date picker, uncontrolled initial state |
9
- | `SingleWithValue` | Single picker pre-seeded with today's date |
10
- | `Range` | Date range picker (from/to selection) |
11
- | `RangeWithValue` | Range picker pre-filled with today + 7 days |
12
- | `RangeTwoMonths` | Range picker showing two calendar months simultaneously |
6
+ | Story | Description |
7
+ |---|---|
8
+ | `Single` | Basic single-date picker, empty initial state |
9
+ | `SingleWithValue` | Single-date picker pre-seeded with today's date |
10
+ | `Range` | Date range picker with `from`/`to` selection |
11
+ | `RangeWithValue` | Range picker pre-seeded with a 7-day window |
12
+ | `RangeTwoMonths` | Range picker rendering two calendar months |
13
13
  | `Disabled` | Non-interactive picker in disabled state |
14
- | `WithLabel` / `WithLabelAndError` | Picker with ODS label and optional error message |
15
- | `RangeWithLabel` | Range picker with label |
16
- | `CustomFormat` | Single picker with custom `formatDate` callback (en-GB locale) |
17
- | `WithConstraints` | Single picker limited to the next 30 days via `fromDate`/`toDate` |
18
- | `InputStyle` | `DatePickerInput` calendar-icon-styled input variant |
19
- | `InputWithLabel` / `InputWithLabelAndError` | Input variant with label/error |
20
- | `InputWithTimeEmpty` | `DatePickerInput` with `showTime`, no initial value |
21
- | `InputWithTime` | `DatePickerInput` with `showTime`, pre-seeded with today |
22
- | `InputWithTime24Hour` | `DatePickerInput` with `use24HourFormat` flag |
23
- | `AllVariants` | Side-by-side showcase of all major variants |
14
+ | `WithLabel` / `WithLabelAndError` | Picker with a field label and optional error message |
15
+ | `CustomFormat` | Single picker using a custom `formatDate` callback |
16
+ | `WithConstraints` | Single picker locked to the next 30 days via `fromDate`/`toDate` |
17
+ | `InputStyle` | `DatePickerInput` calendar-icon input field variant |
18
+ | `InputWithTime` / `InputWithTimeEmpty` | `DatePickerInput` with 12-hour time selector |
19
+ | `InputWithTime24Hour` | `DatePickerInput` with 24-hour time selector |
20
+ | `AllVariants` | Side-by-side showcase of every picker variant |
24
21
 
25
22
  ## Usage Example
26
23
 
27
24
  ```typescript
25
+ import { DatePicker, DatePickerInput, type DateRange } from "../components/ui/date-picker";
28
26
  import { useState } from "react";
29
- import {
30
- DatePicker,
31
- DatePickerInput,
32
- type DateRange,
33
- } from "../components/ui/date-picker";
34
27
 
35
- // Single date picker
28
+ // Single date
36
29
  function SingleExample() {
37
30
  const [date, setDate] = useState<Date | undefined>();
38
31
  return (
@@ -46,22 +39,28 @@ function SingleExample() {
46
39
  );
47
40
  }
48
41
 
49
- // Range picker with two months
42
+ // Date range with constraints
50
43
  function RangeExample() {
51
44
  const [range, setRange] = useState<DateRange | undefined>();
45
+ const today = new Date();
46
+ const maxDate = new Date();
47
+ maxDate.setDate(today.getDate() + 30);
48
+
52
49
  return (
53
50
  <DatePicker
54
51
  mode="range"
55
- placeholder="Select date range"
52
+ placeholder="Select range"
56
53
  value={range}
57
54
  onChange={setRange}
55
+ fromDate={today}
56
+ toDate={maxDate}
58
57
  numberOfMonths={2}
59
58
  />
60
59
  );
61
60
  }
62
61
 
63
- // Input variant with time (12h)
64
- function InputTimeExample() {
62
+ // Input style with time selector
63
+ function InputWithTimeExample() {
65
64
  const [date, setDate] = useState<Date | undefined>(new Date());
66
65
  return (
67
66
  <DatePickerInput
@@ -69,8 +68,13 @@ function InputTimeExample() {
69
68
  value={date}
70
69
  onChange={setDate}
71
70
  showTime
71
+ use24HourFormat
72
72
  label="Event Date"
73
73
  />
74
74
  );
75
75
  }
76
- ```
76
+ ```
77
+
78
+ ## Source
79
+
80
+ [`DatePicker.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/DatePicker.stories.tsx)
@@ -1,41 +1,58 @@
1
- <!-- source-hash: 928a4aa8278d9b5dca88c4e94782c25c -->
2
- Storybook stories for the `EmbeddableChat` component, covering three chat surface configurations: Guide-only, Mingo-only, and dual-mode (both transports enabled with a toggle).
1
+ <!-- source-hash: 9e8b462d0e5c8f06f95dbf57d2bb9d98 -->
2
+ Storybook visual stories for the `EmbeddableChat` component, covering new-user, returning-user, loading, error, and agent-mode states using mocked runtimes and NATS chat adapters.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `GuideOnly` | `Story` | Legacy single-mode Guide consumer matching `multi-platform-hub` mount pattern |
9
- | `MingoOnly` | `Story` | NATS agent transport surface with no mode toggle |
10
- | `BothModes` | `Story` | Dual-mode consumer with segmented Guide/Mingo header toggle |
11
- | `StoryShell` | Decorator | Wraps stories with `QueryClientProvider` + `ChatRuntimeContext` + canvas background |
12
- | `createMockRuntime()` | Helper | Returns a `ChatRuntime` with stub endpoints (all `/__story__/*`) |
13
- | `createMockMingoConfig()` | Helper | Returns a `UseNatsChatAdapterConfig` with `getNatsWsUrl: () => null` (no WS handshake) |
14
- | `SAMPLE_SLASH_COMMANDS` | Constant | 13 mock slash commands used to populate the empty-state chip grid |
6
+ | Export / Identifier | Purpose |
7
+ |---|---|
8
+ | `createMockRuntime()` | Builds a minimal `ChatRuntime` with stub endpoints (no real server calls) |
9
+ | `createMockMingoConfig()` | Base NATS adapter config; `getNatsWsUrl` returns `null` to keep WS idle |
10
+ | `createMockMingoConfigWithDialogs()` | Extends base config with a paginated dialog history, rename/archive callbacks, and archived dialog support |
11
+ | `createMockMingoConfigChatsLoading()` | Pins `isDialogsLoading: true` via a never-settling `fetchDialogs` promise |
12
+ | `createMockMingoConfigChatLoading()` | Resolves the dialog list but pins message loading via a never-settling `fetchDialogMessages` |
13
+ | `createMockMingoConfigChatsError()` | Rejects `fetchDialogs` to exercise the load-error + retry UI path |
14
+ | `createMockMingoConfigArchiveEmpty()` | Resolves an empty archived dialogs page to render the archive empty state |
15
+ | `SAMPLE_DIALOGS` | Eight canned `DialogItem` entries representing a returning user's chat history |
16
+ | `SAMPLE_QUICK_ACTIONS` | Five `MingoQuickAction` chips passed to `EmbeddableChat` for the welcome view |
17
+ | `FAE_AGENT_CONFIG` | Mocked `/api/ai-agents/fae` response for agent-mode quick-action chip rendering |
18
+ | `COMMANDS_URL` / `COMMANDS_PREFIX` | Constants shared between the runtime mock and the `fetch` shim for slash-command stubs |
15
19
 
16
20
  ## Usage Example
17
21
 
18
22
  ```typescript
19
- // Minimal dual-mode story using the same pattern as BothModes
20
- export const MyStory: Story = {
21
- render: (args) => (
22
- <EmbeddableChat
23
- {...args}
24
- modes={{
25
- guide: {},
26
- mingo: createMockMingoConfig(),
27
- }}
28
- defaultActiveMode="mingo"
29
- defaultOpen
30
- showInternalTrigger={false}
31
- />
23
+ // Wrap EmbeddableChat in the required providers for a story
24
+ function MemoizedRuntime({ children }: { children: React.ReactNode }) {
25
+ const runtime = useMemo(() => createMockRuntime(), [])
26
+ const queryClient = useMemo(() => new QueryClient(), [])
27
+
28
+ return (
29
+ <QueryClientProvider client={queryClient}>
30
+ <ChatRuntimeContext.Provider value={runtime}>
31
+ {children}
32
+ </ChatRuntimeContext.Provider>
33
+ </QueryClientProvider>
34
+ )
35
+ }
36
+
37
+ // Returning-user story with dialog history
38
+ export const ReturningUser: StoryObj<typeof EmbeddableChat> = {
39
+ render: () => (
40
+ <MemoizedRuntime>
41
+ <EmbeddableChat
42
+ mingoConfig={createMockMingoConfigWithDialogs()}
43
+ quickActions={SAMPLE_QUICK_ACTIONS}
44
+ />
45
+ </MemoizedRuntime>
32
46
  ),
33
- args: {},
47
+ play: async ({ canvasElement }) => {
48
+ const canvas = within(canvasElement)
49
+ await userEvent.click(canvas.getByRole('button', { name: /history/i }))
50
+ },
34
51
  }
35
52
  ```
36
53
 
37
54
  ## Notes
38
55
 
39
- - The `window.fetch` shim is installed **at module level** (not inside an effect) so the mock is in place before `EmbeddableChat`'s `useEffect` fires. A `__embeddableChatStoriesMockInstalled__` flag prevents double-patching across hot reloads.
40
- - All story endpoints resolve to `/__story__/*` accidental real fetches return 404, not real server data.
41
- - `getNatsWsUrl: () => null` keeps the NATS dialog subscription idle in all stories.
56
+ - The `pending<T>()` helper (`new Promise<T>(() => {})`) is the idiomatic way to freeze a loading state in Storybook without fake timers.
57
+ - The `fetch` shim intercepts `COMMANDS_URL` and `AI_AGENT_CONFIG_PREFIX` requests so agent-mode and slash-command UI renders without a live backend.
58
+ - Source: [`EmbeddableChat.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/EmbeddableChat.stories.tsx)
@@ -0,0 +1,55 @@
1
+ <!-- source-hash: b386b620f40c6970f6aa58f7c44bc3eb -->
2
+ Storybook stories for the `NoData` empty-state component, covering the full range of compositional variants from a complete layout to individual sub-components.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |---|---|
8
+ | `Default` | Full composition with icon, title, description, feature actions, and Mingo CTA button |
9
+ | `MessageTitleOnly` | Minimal state showing only an icon and title |
10
+ | `WithoutActions` | Layout without the feature actions block |
11
+ | `WithoutButton` | Layout without the footer CTA button |
12
+ | `TwoActions` / `FourActions` | Dynamic action block with 2 or 4 items |
13
+ | `ButtonAsLink` | CTA button rendered as an anchor (`href`) instead of a click handler |
14
+ | `CustomButton` | Escape-hatch story passing arbitrary JSX via the `button` prop |
15
+ | `StandaloneActions` | Renders `NoDataActions` + `NoDataAction` sub-components in isolation |
16
+ | `StandaloneMessage` | Renders the `NoDataMessage` sub-component in isolation |
17
+ | `Showcase` | Side-by-side gallery of the three most common configurations |
18
+
19
+ ## Usage Example
20
+
21
+ ```typescript
22
+ // Full composition (mirrors the Default story)
23
+ <NoData
24
+ icon={<Inbox />}
25
+ title="No data available"
26
+ description="Start by adding an item"
27
+ actions={[
28
+ { icon: <Zap />, label: 'Real-time sync' },
29
+ { icon: <Sparkles />, label: 'Smart suggestions' },
30
+ { icon: <Database />, label: 'Unlimited storage' },
31
+ ]}
32
+ buttonLabel="Ask Mingo about Item"
33
+ buttonIcon={<MingoIcon className="size-5" />}
34
+ onButtonClick={() => openMingoPanel()}
35
+ />
36
+
37
+ // Custom footer via escape hatch
38
+ <NoData
39
+ icon={<Settings />}
40
+ title="No sources configured"
41
+ description="Connect a source to get started"
42
+ button={
43
+ <div className="flex gap-2">
44
+ <Button variant="outline" leftIcon={<Plus />}>Connect source</Button>
45
+ <Button variant="transparent" leftIcon={<FileText />}>View docs</Button>
46
+ </div>
47
+ }
48
+ />
49
+ ```
50
+
51
+ ## Notes
52
+
53
+ - Stories are registered under **UI/EmptyState** in the Storybook sidebar.
54
+ - `icon`, `actions`, `button`, `buttonIcon`, `onButtonClick`, and `buttonProps` controls are disabled in the Storybook controls panel; `title`, `description`, and `buttonLabel` accept free-text input.
55
+ - The `MingoIcon` CTA uses design-token CSS variables (`--ods-flamingo-cyan-base`) for brand-consistent colouring.