@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,41 +1,41 @@
1
- <!-- source-hash: 0825a14a4aea648af8873376f22c05eb -->
2
- A single table row component for the File Manager UI, rendering file/folder metadata with interactive selection, context menus, and navigation controls.
1
+ <!-- source-hash: f3ccd540c7acf6c008d5b4be2c760260 -->
2
+ Renders a single interactive row in a file manager table, displaying file/folder metadata with selection, context menu, and navigation controls.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### `FileManagerTableRow`
7
- The primary exported component that renders a horizontal row displaying:
8
- - **Checkbox**optional selection toggle (guarded with `data-no-row-click`)
9
- - **FileIcon**type/extension-aware icon with file name and optional path
10
- - **Metadata columns** — file size and last modified date
11
- - **Action controls** — `MoreHorizontal` context menu button (visible on hover) and a `ChevronRight` navigate-into button for folders
12
-
13
- ## Key Behaviors
14
-
15
- | Behavior | Detail |
16
- |---|---|
17
- | `data-no-row-click` | Prevents checkbox and action buttons from bubbling clicks to the row handler |
18
- | Context menu | Managed via `contextMenuOpen` state; closes automatically after an action |
19
- | Folder vs file | Renders `ChevronRight` nav button for folders; renders an empty spacer `div` for files to preserve alignment |
20
- | File extension | Parsed from `file.name` for files; `undefined` for folders |
6
+ - **`FileManagerTableRow`** — Primary export; a client-side React component that renders a row with checkbox, file icon, name, optional path, size, modified date, and action controls
7
+ - **`FileManagerContextMenu`** Dropdown menu triggered by the `MoreHorizontal` button, scoped to the row's file type
8
+ - **`FileIcon`**Displays a type/extension-aware icon alongside the file name
9
+ - **`data-no-row-click`**Attribute used to prevent checkbox and action button clicks from bubbling to the row's `onClick` handler
21
10
 
22
11
  ## Usage Example
23
12
 
24
13
  ```typescript
14
+ import { FileManagerTableRow } from './file-manager-table-row'
15
+
16
+ const file = {
17
+ name: 'quarterly-report.pdf',
18
+ type: 'file',
19
+ size: '2.4 MB',
20
+ modified: 'Jan 15, 2025',
21
+ path: '/documents/reports/',
22
+ }
23
+
25
24
  <FileManagerTableRow
26
- file={{
27
- name: 'report.pdf',
28
- type: 'file',
29
- size: '2.4 MB',
30
- modified: 'Jan 15, 2025',
31
- path: '/documents/reports/report.pdf',
32
- }}
25
+ file={file}
33
26
  isSelected={false}
34
27
  showCheckbox={true}
35
28
  showPath={true}
36
- onSelect={(checked) => handleSelect(fileId, checked)}
37
- onClick={() => handlePreview(file)}
38
- onDoubleClick={() => handleOpen(file)}
39
- onActionClick={(action) => handleFileAction(file, action)}
29
+ onSelect={(checked) => console.log('selected:', checked)}
30
+ onClick={() => console.log('row clicked')}
31
+ onDoubleClick={() => console.log('open file')}
32
+ onContextMenu={(e) => console.log('context menu', e)}
33
+ onActionClick={(action) => console.log('action:', action)}
40
34
  />
41
- ```
35
+ ```
36
+
37
+ ## Behavior Notes
38
+
39
+ - Folder rows render a `ChevronRight` navigation button that triggers `onDoubleClick`; file rows render a spacer div to preserve column alignment
40
+ - The context menu (`MoreHorizontal` button) is hidden by default and fades in on row hover via Tailwind's `group-hover:opacity-100`
41
+ - Row background shifts to `ods-bg-surface` when `isSelected` is `true`
@@ -1,13 +1,29 @@
1
- <!-- source-hash: ad987af7f1e6c7d598ca698076c8ebdb -->
2
- A React component that renders a file browser table with selection, loading states, and responsive height management for file management interfaces.
1
+ <!-- source-hash: 58a15193962e4b16a60c090f4b5422d2 -->
2
+ A client-side React component that renders a file manager table with selection, loading skeleton states, and dynamic height calculation.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **FileManagerTable** - Main table component with header, rows, and selection controls
7
- - **Dynamic height calculation** - Uses `useLayoutEffect` to calculate optimal table height based on viewport
8
- - **Selection management** - Handles individual file selection and "select all" functionality with checkbox states
9
- - **Loading skeleton** - Renders skeleton placeholders during data fetching
10
- - **Responsive layout** - Fixed column widths with flexible name column and overflow handling
6
+ - **`FileManagerTable`** Main exported component that handles file listing, multi-select, and adaptive layout
7
+ - **`allSelected` / `someSelected`** Memoized booleans driving the header checkbox's checked/indeterminate state
8
+ - **`useLayoutEffect` + `ResizeObserver`** Dynamically calculates and updates the table height to fill available viewport space below its top offset
9
+ - **Skeleton loading state** Renders 8 placeholder rows with shimmer UI when `loading` is `true`
10
+ - **`FileManagerEmpty`** Rendered when `files.length === 0`
11
+ - **`FileManagerTableRow`** — Per-row component receiving selection, click, double-click, and action handlers
12
+
13
+ ## Props (`FileManagerTableProps`)
14
+
15
+ | Prop | Description |
16
+ |---|---|
17
+ | `files` | Array of file/folder items to display |
18
+ | `selectedFiles` | Array of selected file IDs |
19
+ | `showCheckboxes` | Toggle selection checkboxes (default: `true`) |
20
+ | `loading` | Shows skeleton UI when `true` (default: `false`) |
21
+ | `isSearchResult` | Renders file path subtitles and changes click behavior |
22
+ | `onSelectFile` | Called with `(id, selected)` on row checkbox change |
23
+ | `onSelectAll` | Called with `(checked)` on header checkbox change |
24
+ | `onFileClick` | Called on single-click (search result mode) |
25
+ | `onFolderOpen` | Called when a folder row is clicked or double-clicked |
26
+ | `onFileAction` | Called with `(action, fileId)` on action button interaction |
11
27
 
12
28
  ## Usage Example
13
29
 
@@ -15,32 +31,31 @@ A React component that renders a file browser table with selection, loading stat
15
31
  import { FileManagerTable } from './file-manager-table'
16
32
 
17
33
  function MyFileManager() {
18
- const [files, setFiles] = useState([])
19
34
  const [selectedFiles, setSelectedFiles] = useState<string[]>([])
20
- const [loading, setLoading] = useState(true)
35
+
36
+ const handleSelectFile = (id: string, selected: boolean) => {
37
+ setSelectedFiles(prev =>
38
+ selected ? [...prev, id] : prev.filter(f => f !== id)
39
+ )
40
+ }
41
+
42
+ const handleSelectAll = (checked: boolean) => {
43
+ setSelectedFiles(checked ? files.map(f => f.id) : [])
44
+ }
21
45
 
22
46
  return (
23
47
  <FileManagerTable
24
48
  files={files}
25
49
  selectedFiles={selectedFiles}
26
- loading={loading}
27
- showCheckboxes={true}
50
+ loading={false}
28
51
  isSearchResult={false}
29
- onSelectFile={(fileId, selected) => {
30
- setSelectedFiles(prev =>
31
- selected ? [...prev, fileId] : prev.filter(id => id !== fileId)
32
- )
33
- }}
34
- onSelectAll={(checked) => {
35
- setSelectedFiles(checked ? files.map(f => f.id) : [])
36
- }}
37
- onFileClick={(file) => console.log('File clicked:', file)}
38
- onFolderOpen={(folder) => console.log('Folder opened:', folder)}
39
- onFileAction={(action, fileId) => console.log(action, fileId)}
40
- className="h-full"
52
+ onSelectFile={handleSelectFile}
53
+ onSelectAll={handleSelectAll}
54
+ onFolderOpen={(folder) => console.log('Open folder', folder.id)}
55
+ onFileAction={(action, id) => console.log(action, id)}
41
56
  />
42
57
  )
43
58
  }
44
59
  ```
45
60
 
46
- The component automatically handles responsive height calculations, skeleton loading states, and provides a clean table interface with NAME, SIZE, and EDITED columns.
61
+ **Source:** [`file-manager-table.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/file-manager-table.tsx)
@@ -0,0 +1,22 @@
1
+ <!-- source-hash: 6d0d61c6e67ca5c8a7f92541dd1a1831 -->
2
+ Barrel export file that re-exports all public members from the `no-data` component module and its sub-modules.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Source |
7
+ |---|---|
8
+ | `no-data` | Core no-data component |
9
+ | `no-data-message` | Message sub-component |
10
+ | `no-data-actions` | Actions sub-component |
11
+ | `no-data-styles` | Style utilities/constants |
12
+
13
+ ## Usage Example
14
+
15
+ ```typescript
16
+ // Import any no-data exports from a single entry point
17
+ import {
18
+ NoData,
19
+ NoDataMessage,
20
+ NoDataActions,
21
+ } from "@/components/no-data"
22
+ ```
@@ -0,0 +1,29 @@
1
+ <!-- source-hash: fcf30ffdd2b06689272d48ed99f209b0 -->
2
+ Renders a grouped panel of static info blocks for empty-state UI, each displaying an optional icon alongside a short label.
3
+
4
+ ## Key Components
5
+
6
+ - **`NoDataAction`** — A single presentational info block with an optional leading icon and label. Lays out icon-beside-label on mobile and icon-above-label on `md+` screens. Capped at 224px wide on larger viewports.
7
+ - **`NoDataActions`** — A container that groups multiple `NoDataAction` blocks into a shared bordered panel. Renders as a vertical stack on mobile (horizontal dividers) and a horizontal row on `md+` (vertical dividers). Accepts blocks via the `actions` prop or as `children`.
8
+ - **`NoDataActionsVariant`** — Re-exported type controlling the surface treatment of the group panel (e.g. `"outline"`).
9
+
10
+ ## Usage Example
11
+
12
+ ```typescript
13
+ // Using the `actions` prop
14
+ <NoDataActions
15
+ variant="outline"
16
+ actions={[
17
+ { icon: <SearchIcon />, label: "No results found" },
18
+ { icon: <FilterIcon />, label: "Try adjusting your filters" },
19
+ ]}
20
+ />
21
+
22
+ // Using children directly
23
+ <NoDataActions variant="outline">
24
+ <NoDataAction icon={<SearchIcon />} label="No results found" />
25
+ <NoDataAction icon={<FilterIcon />} label="Try adjusting your filters" />
26
+ </NoDataActions>
27
+ ```
28
+
29
+ Both components forward refs and accept standard `HTMLDivElement` attributes. `NoDataAction` omits the native `title` attribute to avoid conflicts with the `label` prop.
@@ -0,0 +1,37 @@
1
+ <!-- source-hash: c900a3b18fe6d2568dc0305630bbed03 -->
2
+ Presentational component that renders a centered, muted empty-state block composed of an optional icon, title, and description.
3
+
4
+ ## Key Components
5
+
6
+ - **`NoDataMessage`** — A `forwardRef` div that vertically stacks an icon, a primary title line, and a secondary description line. All three slots are optional, enabling reduced forms such as icon-only or title-only displays.
7
+ - **`NoDataMessageProps`** — Extends `React.HTMLAttributes<HTMLDivElement>` (with `title` omitted to avoid conflicts) and adds `icon`, `title`, and `description` as optional `ReactNode` props.
8
+
9
+ ## Usage Example
10
+
11
+ ```typescript
12
+ import { NoDataMessage } from "./no-data-message"
13
+ import { SearchIcon } from "lucide-react"
14
+
15
+ // Full form: icon + title + description
16
+ <NoDataMessage
17
+ icon={<SearchIcon />}
18
+ title="No results found"
19
+ description="Try adjusting your filters or search query."
20
+ />
21
+
22
+ // Reduced form: title only
23
+ <NoDataMessage title="No data available" />
24
+
25
+ // With additional className
26
+ <NoDataMessage
27
+ icon={<SearchIcon />}
28
+ title="Nothing here yet"
29
+ className="my-8"
30
+ />
31
+ ```
32
+
33
+ ## Notes
34
+
35
+ - Icon is wrapped in a `<span>` styled via `noDataIconClasses` (16px mobile / 24px md+).
36
+ - Title renders at `text-h4`; description renders at `text-h6`; both use `break-words` to handle long strings gracefully.
37
+ - The wrapper uses `text-ods-text-secondary` for muted gray coloring and accepts all standard `div` HTML attributes via prop spreading.
@@ -0,0 +1,39 @@
1
+ <!-- source-hash: d6a633bbb5664eb878fc526683cbcdda -->
2
+ Shared style atoms for the `NoData` (empty-state) component family, providing a single source of truth for icon sizing and info-block container surface styles via CVA variants.
3
+
4
+ ## Key Components
5
+
6
+ - **`noDataIconClasses`** — Static class string that sizes the leading icon glyph (`16px` mobile, `24px` on `md+`) using `[&_svg]` selectors. Color is intentionally omitted so the icon inherits the current text color.
7
+ - **`noDataActionsVariants`** — CVA factory for the info-block group container. Currently exposes a single `outline` variant: a transparent, bordered, rounded panel with `overflow-hidden` to keep inner blocks square.
8
+ - **`NoDataActionsVariant`** — Extracted union type of valid `variant` values for `noDataActionsVariants`, useful for prop typing in consumer components.
9
+
10
+ ## Usage Example
11
+
12
+ ```typescript
13
+ import {
14
+ noDataIconClasses,
15
+ noDataActionsVariants,
16
+ type NoDataActionsVariant,
17
+ } from "./no-data-styles"
18
+
19
+ // Apply icon sizing to any SVG-bearing element
20
+ <span className={noDataIconClasses}>
21
+ <SearchIcon />
22
+ </span>
23
+
24
+ // Resolve container classes (defaults to "outline" variant)
25
+ <div className={noDataActionsVariants()}>
26
+ {/* info blocks */}
27
+ </div>
28
+
29
+ // Explicitly pass a variant
30
+ const variant: NoDataActionsVariant = "outline"
31
+ <div className={noDataActionsVariants({ variant })}>
32
+ {/* info blocks */}
33
+ </div>
34
+ ```
35
+
36
+ ## Notes
37
+
38
+ - The `outline` variant is the default; new surface looks (e.g. `ghost`, `filled`) can be added to the `variants` map without modifying consuming markup.
39
+ - `overflow-hidden` on the container ensures only the outermost wrapper has rounded corners — inner sibling blocks remain square-cornered.
@@ -0,0 +1,59 @@
1
+ <!-- source-hash: 3ac6cf66b806617bd33317e53dcb1dda -->
2
+ Composable empty-state panel component that renders a centered layout combining an optional icon/title/description message, clickable action blocks, and a footer button — each region rendered only when its inputs are provided.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `NoData` | `React.ForwardRefExoticComponent` | Main empty-state container component |
9
+ | `NoDataProps` | `interface` | Props extending `HTMLDivElement` attributes |
10
+
11
+ ### Props
12
+
13
+ | Prop | Type | Description |
14
+ |------|------|-------------|
15
+ | `icon` | `React.ReactNode` | Leading glyph (16px mobile / 24px md+) |
16
+ | `title` | `React.ReactNode` | Primary message line |
17
+ | `description` | `React.ReactNode` | Secondary message line |
18
+ | `actions` | `NoDataActionProps[]` | Clickable block items; hidden when empty |
19
+ | `buttonLabel` | `React.ReactNode` | Footer button label text |
20
+ | `buttonIcon` | `React.ReactNode` | Footer button leading icon |
21
+ | `onButtonClick` | `ButtonProps["onClick"]` | Footer button click handler |
22
+ | `buttonProps` | `Partial<ButtonProps>` | Extra props forwarded to the footer button |
23
+ | `button` | `React.ReactNode` | Fully custom footer node; overrides `buttonLabel`/`buttonIcon` |
24
+
25
+ ## Usage Example
26
+
27
+ ```typescript
28
+ import { NoData } from "./no-data"
29
+ import { SearchIcon } from "lucide-react"
30
+
31
+ // Minimal — message only
32
+ <NoData
33
+ icon={<SearchIcon />}
34
+ title="No results found"
35
+ description="Try adjusting your search filters."
36
+ />
37
+
38
+ // Full layout — message + actions + footer button
39
+ <NoData
40
+ icon={<SearchIcon />}
41
+ title="No devices found"
42
+ description="Add a device to get started."
43
+ actions={[
44
+ { label: "Import CSV", onClick: handleImport },
45
+ { label: "Sync from RMM", onClick: handleSync },
46
+ ]}
47
+ buttonLabel="Add Device"
48
+ buttonIcon={<PlusIcon />}
49
+ onButtonClick={handleAdd}
50
+ />
51
+
52
+ // Custom footer node
53
+ <NoData
54
+ title="Nothing here yet"
55
+ button={<MyCustomButton />}
56
+ />
57
+ ```
58
+
59
+ Regions are conditionally rendered — `hasMessage` and `hasActions` guards ensure no empty wrappers are mounted. The footer `button` prop takes full precedence over the `buttonLabel`/`buttonIcon` convenience path.
@@ -16,7 +16,8 @@ export type PageActionButton = {
16
16
  /** Click handler. Optional when `href` or `submenu` is provided. */
17
17
  onClick?: () => void
18
18
  icon?: React.ReactNode
19
- variant?: ButtonProps['variant']
19
+ /** `overlay` is media chrome only — SplitButton has no divider colour for it. */
20
+ variant?: Exclude<ButtonProps['variant'], 'overlay' | 'glyph'>
20
21
  disabled?: boolean
21
22
  /**
22
23
  * For SplitButton actions (when `iconAction` is set): disables only the main
@@ -1,18 +1,18 @@
1
- <!-- source-hash: 51f59ce973c05b3bf63e194d662e8fdd -->
2
- Renders the header row for a query report table, displaying column names with overflow-aware tooltips for truncated labels.
1
+ <!-- source-hash: b24897cd7f950e9b9cb94d49064c64a2 -->
2
+ Renders the header row for a query report table, displaying column labels with truncation detection and tooltip support for overflowing text.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`QueryReportTableHeader`** — Main exported component that renders a row of column header cells, supporting `default` and `compact` layout variants
7
- - **`TruncatedHeaderCell`** — Internal component that detects text overflow on hover and conditionally shows a tooltip with the full column name
6
+ - **`QueryReportTableHeader`** — Primary exported component. Accepts a list of column names and renders them as a styled header row. Supports `default` and `compact` variants.
7
+ - **`TruncatedHeaderCell`** *(internal)* Renders an individual header cell that dynamically checks whether its text is truncated on hover, showing a tooltip with the full value when needed.
8
8
 
9
9
  ## Props (`QueryReportTableHeaderProps`)
10
10
 
11
11
  | Prop | Type | Description |
12
- |------|------|-------------|
13
- | `columns` | `string[]` | List of column names to render |
14
- | `columnWidth` | `number` | Fixed pixel width applied to each header cell |
15
- | `variant` | `'default' \| 'compact'` | Layout variant; `compact` adds vertical padding and a bottom border |
12
+ |---|---|---|
13
+ | `columns` | `string[]` | Column label strings to render |
14
+ | `columnWidth` | `number` | Fixed pixel width for each header cell |
15
+ | `variant` | `'default' \| 'compact'` | Controls padding and border styling |
16
16
  | `className` | `string` | Optional additional CSS classes |
17
17
 
18
18
  ## Usage Example
@@ -21,16 +21,16 @@ Renders the header row for a query report table, displaying column names with ov
21
21
  import { QueryReportTableHeader } from './query-report-table-header'
22
22
 
23
23
  <QueryReportTableHeader
24
- columns={['hostname', 'ip_address', 'os_version', 'last_seen']}
24
+ columns={['Device Name', 'IP Address', 'Last Seen', 'Status']}
25
25
  columnWidth={160}
26
26
  variant="compact"
27
- className="bg-ods-bg-surface"
28
27
  />
29
28
  ```
30
29
 
31
- ## Behavior Notes
30
+ ## Notes
32
31
 
33
- - Column widths are fixed (`shrink-0`) to align with table body cells
34
- - Truncation is detected lazily on `mouseEnter` by comparing `scrollWidth` vs `clientWidth`, avoiding unnecessary DOM reads on render
35
- - Tooltips are suppressed (`open={false}`) when the text is not truncated, preventing empty tooltip flashes
36
- - Column labels are styled in uppercase monospace with secondary text color (`text-ods-text-secondary`)
32
+ - Truncation is evaluated lazily on `mouseEnter` via `scrollWidth` vs `clientWidth` comparison — avoiding unnecessary layout reads on initial render.
33
+ - Tooltip is only activated when truncation is detected; otherwise the `Tooltip` is forced closed (`open={false}`), preventing phantom popups on short labels.
34
+ - Each cell uses `shrink-0` with a fixed `width` and `height: 48` to align with table body cells.
35
+
36
+ **Source:** [`query-report-table-header.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/query-report-table-header.tsx)
@@ -1,40 +1,40 @@
1
- <!-- source-hash: 18d5b9d31dbc725bcee2ec71984e3fd7 -->
2
- Renders a single data row in a query report table, supporting `default` and `compact` visual variants with automatic tooltip display for truncated cell content.
1
+ <!-- source-hash: ec4a69e77e3094a0c885d241053bbfce -->
2
+ Renders a single data row in the `QueryReportTable`, supporting both `default` (card-style) and `compact` (flat list) visual variants with truncation-aware tooltips on overflow.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`QueryReportTableRow`** — Main row component that maps over `columns` to render each cell with consistent width, spacing, and typography based on the active `variant`.
7
- - **`TruncatedCell`** — Internal component that detects text overflow on mouse enter and conditionally shows a tooltip with the full value when the content is truncated.
6
+ - **`QueryReportTableRow`** — Primary export. Maps over `columns` to render each cell with a fixed `columnWidth`, handling `null`/`undefined` values as `'-'`. Applies variant-specific layout (`80px` height for `default`, `56px` for `compact`).
7
+ - **`TruncatedCell`** *(internal)* Wraps cell text in a `<span>` with CSS truncation. Uses `scrollWidth > clientWidth` detection on `mouseenter` to conditionally activate a tooltip showing the full value.
8
8
 
9
9
  ## Usage Example
10
10
 
11
11
  ```typescript
12
12
  import { QueryReportTableRow } from './query-report-table-row'
13
13
 
14
- const columns = ['name', 'status', 'ticket']
15
- const row = { name: 'Workstation backup failed', status: 'Open', ticket: 'TKT-4821' }
14
+ const row = { name: 'Acme Corp', status: 'Active', tickets: 42 }
15
+ const columns = ['name', 'status', 'tickets']
16
16
 
17
- // Default (card-style) variant
17
+ // Default (card) variant
18
18
  <QueryReportTableRow
19
19
  row={row}
20
20
  columns={columns}
21
- columnWidth="200px"
22
- variant="default"
21
+ columnWidth="160px"
23
22
  />
24
23
 
25
- // Compact (table-row-style) variant
24
+ // Compact (flat list) variant
26
25
  <QueryReportTableRow
27
26
  row={row}
28
27
  columns={columns}
29
- columnWidth="200px"
28
+ columnWidth="160px"
30
29
  variant="compact"
31
- className="my-custom-class"
32
30
  />
33
31
  ```
34
32
 
35
33
  ## Behavior Notes
36
34
 
37
- - `null` or `undefined` cell values render as `"-"`.
38
- - Truncation detection is lazy — checked only on `mouseEnter` to avoid unnecessary DOM reads on render.
39
- - Tooltip is suppressed entirely when text fits within its container (`open={false}`), preventing empty tooltip flashes.
40
- - Column widths are applied via inline `style` to support dynamic values from parent layout logic.
35
+ | Concern | Detail |
36
+ |---|---|
37
+ | Null handling | `null` / `undefined` values render as `'-'` |
38
+ | Tooltip activation | Only shown when text is actually truncated (lazy-checked on hover) |
39
+ | Tooltip delay | 300 ms via `delayDuration` to avoid flicker on quick mouse passes |
40
+ | Styling | Driven by `cn()` utility; accepts an optional `className` override |
@@ -1,47 +1,62 @@
1
- <!-- source-hash: bedf0eba103ca6d913d9e320399c3706 -->
1
+ <!-- source-hash: a98f69d0dc6115c54bf6524937839699 -->
2
2
  A data table component for displaying query results with horizontal scrolling, CSV export, loading skeletons, and empty states.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`QueryReportTable`** — Main export. Renders a full-featured data table driven by an array of row objects, with automatic column derivation from data keys.
7
- - **`deriveColumns`** — Utility that infers column definitions from data and an optional `columnOrder` array.
8
- - **`exportToCSV`** — Utility that serializes table data to a downloadable CSV file.
9
- - **`useHorizontalScrollbar`** — Hook providing custom scrollbar state and event handlers (thumb drag, track click, edge fades).
10
- - **`QueryReportTableHeader`** / **`QueryReportTableRow`** / **`QueryReportTableSkeleton`** — Sub-components for the header, data rows, and loading state respectively.
11
-
12
- ## Props Overview
13
-
14
- | Prop | Default | Description |
15
- |------|---------|-------------|
16
- | `data` | | Array of row objects to display |
17
- | `loading` | `false` | Shows skeleton rows when `true` |
18
- | `variant` | `'default'` | `'default'` or `'compact'` hides title bar, scrollbar, and edge fades in compact mode |
19
- | `columnOrder` | | Optional array to control column ordering |
20
- | `showExport` | `true` | Renders an "Export CSV" button |
21
- | `columnWidth` | `160` | Per-column width in pixels |
22
- | `headerActions` | | Slot for additional header controls |
6
+ - **`QueryReportTable`** — Main export. Renders a full-featured tabular report view driven by dynamic row data, with automatic column derivation.
7
+ - **`deriveColumns`** — Utility that infers column definitions from data rows and optional `columnOrder`.
8
+ - **`exportToCSV`** — Utility that serializes visible columns and rows to a downloadable CSV file.
9
+ - **`useHorizontalScrollbar`** — Custom hook providing scroll position tracking, thumb/track refs, and pointer event handlers for a custom horizontal scrollbar.
10
+ - **`QueryReportTableHeader`** / **`QueryReportTableRow`** / **`QueryReportTableSkeleton`** — Sub-components for header, body rows, and loading state respectively.
11
+
12
+ ## Props Summary
13
+
14
+ | Prop | Type | Default | Description |
15
+ |---|---|---|---|
16
+ | `data` | `object[]` | | Row data; columns auto-derived |
17
+ | `loading` | `boolean` | `false` | Shows skeleton rows |
18
+ | `variant` | `'default' \| 'compact'` | `'default'` | Compact hides title bar, scrollbar, and edge fades |
19
+ | `showExport` | `boolean` | `true` | Renders "Export CSV" button when data exists |
20
+ | `columnOrder` | `string[]` | | Override auto-derived column order |
21
+ | `columnWidth` | `number` | `160` | Per-column pixel width (also drives `minWidth`) |
22
+ | `exportFilename` | `string` | `'query-results'` | Base filename for CSV download |
23
+ | `onExport` | `() => void` | — | Callback fired after CSV export |
24
+ | `headerActions` | `ReactNode` | — | Slot for custom controls in the title bar |
23
25
 
24
26
  ## Usage Example
25
27
 
26
28
  ```typescript
27
- import { QueryReportTable } from './query-report-table'
29
+ import { QueryReportTable } from '@/components/query-report-table'
28
30
 
29
31
  const rows = [
30
- { device: 'DESKTOP-01', os: 'Windows 11', status: 'Online' },
31
- { device: 'LAPTOP-22', os: 'macOS 14', status: 'Offline' },
32
+ { device: 'DESKTOP-001', os: 'Windows 11', status: 'Online' },
33
+ { device: 'LAPTOP-042', os: 'macOS 14', status: 'Offline' },
32
34
  ]
33
35
 
34
- export function ReportPage() {
36
+ export function DeviceReport() {
35
37
  return (
36
38
  <QueryReportTable
37
- title="Device Report"
39
+ title="Device Inventory"
38
40
  data={rows}
39
41
  columnOrder={['device', 'os', 'status']}
40
42
  exportFilename="device-report"
41
43
  onExport={() => console.log('exported')}
44
+ showExport
42
45
  />
43
46
  )
44
47
  }
45
48
  ```
46
49
 
47
- In `compact` mode the title bar, custom scrollbar, and edge-fade overlays are suppressed — useful for embedding the table inside a card or modal without extra chrome.
50
+ **Compact mode** (no title bar, scrollbar, or edge gradients):
51
+
52
+ ```typescript
53
+ <QueryReportTable
54
+ data={rows}
55
+ variant="compact"
56
+ showExport={false}
57
+ />
58
+ ```
59
+
60
+ ## Source
61
+
62
+ [`query-report-table.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/query-report-table.tsx)
@@ -1,21 +1,23 @@
1
- <!-- source-hash: 24edd509d1d4422049647e46332e05ae -->
2
- A deprecated column-level filter dropdown component that renders a clickable label with a filter icon, wiring a `FiltersDropdown` to manage checkbox-based filter state for a single table column.
1
+ <!-- source-hash: 25bda079705407fd6be62624468764ab -->
2
+ Renders a deprecated column-level filter dropdown for tables, wrapping `FiltersDropdown` with a labeled trigger button and checkbox-based filter sections.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `TableColumnFilterDropdownProps`
7
7
  | Prop | Type | Description |
8
- |------|------|-------------|
8
+ |---|---|---|
9
9
  | `columnKey` | `string` | Key used to read/write filter state |
10
10
  | `columnLabel` | `string` | Display label and accessibility text |
11
- | `filterOptions` | `FilterOption[]` | Available checkbox options |
11
+ | `filterOptions` | `FilterOption[]` | Available checkbox options for the column |
12
12
  | `filters` | `TableFilters` | Current filter state across all columns |
13
- | `onFilterChange` | `(filters: TableFilters) => void` | Callback fired on apply or reset |
14
- | `placement` | `'bottom-start' \| 'bottom-end' \| 'bottom'` | Dropdown anchor position |
15
- | `dropdownClassName` | `string` | Extra class on the dropdown panel |
13
+ | `onFilterChange` | `(filters: TableFilters) => void` | Callback when filters are applied or reset |
14
+ | `placement` | `'bottom-start' \| 'bottom-end' \| 'bottom'` | Dropdown anchor position (default: `'bottom-start'`) |
15
+ | `dropdownClassName` | `string` | Extra class on the dropdown (default: `'min-w-[240px]'`) |
16
16
 
17
17
  ### `TableColumnFilterDropdown`
18
- Renders a trigger button (label + `Filter02Icon`) that turns accent-colored when filters are active (`activeCount > 0`). Delegates to `FiltersDropdown` with a single `checkbox` section, forwarding `onApply` and `onReset` handlers that merge or remove the column's filter entries from the shared `TableFilters` state.
18
+ Renders a clickable label + `Filter02Icon` trigger. The icon turns accent-colored when one or more filters are active (`activeCount > 0`). Applies or resets filters scoped to the given `columnKey` without mutating other column filter state.
19
+
20
+ > **Deprecated:** Use `DataTableColumnFilter` from `data-table` instead.
19
21
 
20
22
  ## Usage Example
21
23
 
@@ -37,4 +39,8 @@ const [filters, setFilters] = useState<TableFilters>({})
37
39
  />
38
40
  ```
39
41
 
40
- > **Deprecated:** Use `DataTableColumnFilter` from `data-table` instead.
42
+ ## Notes
43
+
44
+ - Both the interface and the component are marked `@deprecated`. Migrate to `DataTableColumnFilter` from the `data-table` package.
45
+ - Filter state is immutable per column: applying updates only `columnKey`'s values; resetting deletes the key without affecting sibling columns.
46
+ - Source: [`table-column-filter-dropdown.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/table-column-filter-dropdown.tsx)