@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,58 +1,56 @@
1
- <!-- source-hash: 4316bb882549d86dc2d68491a7d84326 -->
2
- A comprehensive chart component system built on Recharts that provides themed, accessible data visualization components with customizable styling and tooltips.
1
+ <!-- source-hash: 03d762aae1fcc567d347384e10dad904 -->
2
+ A client-side React chart component library built on top of Recharts, providing themed, accessible chart containers with customizable tooltips and legends.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **Core Components:**
7
- - `ChartContainer` - Main wrapper that provides chart context and responsive container
8
- - `ChartTooltip` / `ChartTooltipContent` - Customizable tooltip with indicators and formatting
9
- - `ChartLegend` / `ChartLegendContent` - Legend component with icons and labels
10
- - `ChartStyle` - Dynamic CSS generator for theme-aware chart colors
11
-
12
- **Types & Context:**
13
- - `ChartConfig` - Configuration object defining chart data series with labels, icons, and theme colors
14
- - `useChart()` - React hook to access chart configuration context
15
- - `getPayloadConfigFromPayload()` - Helper to extract configuration from chart data payloads
16
-
17
- **Theme System:**
18
- - Supports light/dark themes with CSS custom properties
19
- - Dynamic color injection based on chart configuration
20
- - Comprehensive Recharts styling overrides for consistent appearance
6
+ | Export | Description |
7
+ |---|---|
8
+ | `ChartContainer` | Root wrapper that provides chart context, injects CSS custom properties, and wraps content in a `ResponsiveContainer` |
9
+ | `ChartStyle` | Internal component that generates scoped CSS variables for light/dark theme colors |
10
+ | `ChartTooltip` | Re-export of `RechartsPrimitive.Tooltip` |
11
+ | `ChartTooltipContent` | Styled tooltip renderer with support for `dot`, `line`, and `dashed` indicators, custom formatters, and label/icon overrides |
12
+ | `ChartLegend` | Re-export of `RechartsPrimitive.Legend` |
13
+ | `ChartLegendContent` | Styled legend renderer with icon support and configurable alignment |
14
+ | `ChartConfig` | TypeScript type defining per-series labels, icons, and color/theme mappings |
15
+ | `useChart` | Internal hook for consuming `ChartContext`; throws if used outside `ChartContainer` |
21
16
 
22
17
  ## Usage Example
23
18
 
24
19
  ```typescript
25
- import { ChartContainer, ChartTooltipContent, ChartTooltip } from "./chart"
26
- import { BarChart, Bar, XAxis, YAxis } from "recharts"
27
-
28
- const chartConfig = {
29
- sales: {
30
- label: "Sales",
31
- color: "#8884d8",
32
- theme: { light: "#8884d8", dark: "#82ca9d" }
33
- },
20
+ import {
21
+ ChartContainer,
22
+ ChartTooltip,
23
+ ChartTooltipContent,
24
+ ChartLegend,
25
+ ChartLegendContent,
26
+ } from "./chart"
27
+ import { LineChart, Line, CartesianGrid, XAxis } from "recharts"
28
+
29
+ const config = {
34
30
  revenue: {
35
- label: "Revenue",
36
- color: "#82ca9d"
37
- }
31
+ label: "Revenue",
32
+ theme: { light: "#6366f1", dark: "#818cf8" },
33
+ },
38
34
  }
39
35
 
40
36
  const data = [
41
- { month: "Jan", sales: 4000, revenue: 2400 },
42
- { month: "Feb", sales: 3000, revenue: 1398 }
37
+ { month: "Jan", revenue: 4200 },
38
+ { month: "Feb", revenue: 5800 },
43
39
  ]
44
40
 
45
- function SalesChart() {
41
+ export function RevenueChart() {
46
42
  return (
47
- <ChartContainer config={chartConfig} className="h-[400px]">
48
- <BarChart data={data}>
43
+ <ChartContainer config={config} className="h-64 w-full">
44
+ <LineChart data={data}>
45
+ <CartesianGrid strokeDasharray="3 3" />
49
46
  <XAxis dataKey="month" />
50
- <YAxis />
51
- <ChartTooltip content={<ChartTooltipContent />} />
52
- <Bar dataKey="sales" fill="var(--color-sales)" />
53
- <Bar dataKey="revenue" fill="var(--color-revenue)" />
54
- </BarChart>
47
+ <ChartTooltip content={<ChartTooltipContent indicator="line" />} />
48
+ <ChartLegend content={<ChartLegendContent />} />
49
+ <Line dataKey="revenue" stroke="var(--color-revenue)" />
50
+ </LineChart>
55
51
  </ChartContainer>
56
52
  )
57
53
  }
58
- ```
54
+ ```
55
+
56
+ **Source:** [`chart.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/chart.tsx)
@@ -1,17 +1,19 @@
1
- <!-- source-hash: 4f4abef71f555b45571aaa27bbb5f20c -->
2
- A comprehensive command palette component built on top of cmdk with Radix UI integration, providing a searchable interface for commands and actions with keyboard navigation support.
1
+ <!-- source-hash: 9b89a858035a27159cafb11e28a5b3e8 -->
2
+ Styled wrapper components around the [cmdk](https://cmdk.dev) command palette primitive, providing a fully themed command menu with search input, grouped results, and dialog support.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Command** - Root command palette container with overflow handling
7
- - **CommandDialog** - Modal wrapper that displays the command palette in a dialog
8
- - **CommandInput** - Search input with integrated search icon and styling
9
- - **CommandList** - Scrollable container for command results with max height constraint
10
- - **CommandEmpty** - Placeholder component shown when no results are found
11
- - **CommandGroup** - Logical grouping container for related commands
12
- - **CommandItem** - Individual selectable command with hover and selection states
13
- - **CommandSeparator** - Visual divider between command groups
14
- - **CommandShortcut** - Display component for keyboard shortcuts
6
+ | Export | Description |
7
+ |---|---|
8
+ | `Command` | Root container wrapping `CommandPrimitive` with popover styling |
9
+ | `CommandDialog` | Modal variant that renders the command palette inside a `Dialog` |
10
+ | `CommandInput` | Search input with a `Search` icon prefix and border separator |
11
+ | `CommandList` | Scrollable results container (max height 300px) |
12
+ | `CommandEmpty` | Centered empty-state message when no results match |
13
+ | `CommandGroup` | Labeled section for grouping related items |
14
+ | `CommandItem` | Individual selectable result row with hover/selected/disabled states |
15
+ | `CommandSeparator` | Horizontal rule divider between groups |
16
+ | `CommandShortcut` | Right-aligned `<span>` for displaying keyboard shortcut hints |
15
17
 
16
18
  ## Usage Example
17
19
 
@@ -19,31 +21,53 @@ A comprehensive command palette component built on top of cmdk with Radix UI int
19
21
  import {
20
22
  Command,
21
23
  CommandDialog,
24
+ CommandInput,
25
+ CommandList,
22
26
  CommandEmpty,
23
27
  CommandGroup,
24
- CommandInput,
25
28
  CommandItem,
26
- CommandList,
27
29
  CommandShortcut,
30
+ CommandSeparator,
28
31
  } from "./command"
29
32
 
30
- function CommandPalette() {
31
- const [open, setOpen] = React.useState(false)
32
-
33
+ // Inline palette
34
+ function InlineCommandMenu() {
33
35
  return (
34
- <CommandDialog open={open} onOpenChange={setOpen}>
35
- <CommandInput placeholder="Type a command or search..." />
36
+ <Command>
37
+ <CommandInput placeholder="Search actions..." />
36
38
  <CommandList>
37
39
  <CommandEmpty>No results found.</CommandEmpty>
38
- <CommandGroup heading="Suggestions">
40
+ <CommandGroup heading="Devices">
39
41
  <CommandItem>
40
- Calendar
41
- <CommandShortcut>⌘K</CommandShortcut>
42
+ View All Devices
43
+ <CommandShortcut>⌘D</CommandShortcut>
44
+ </CommandItem>
45
+ </CommandGroup>
46
+ <CommandSeparator />
47
+ <CommandGroup heading="Tickets">
48
+ <CommandItem>Open Tickets</CommandItem>
49
+ </CommandGroup>
50
+ </CommandList>
51
+ </Command>
52
+ )
53
+ }
54
+
55
+ // Modal palette triggered by a keyboard shortcut
56
+ function CommandPaletteDialog({ open, onOpenChange }) {
57
+ return (
58
+ <CommandDialog open={open} onOpenChange={onOpenChange}>
59
+ <CommandInput placeholder="Type a command..." />
60
+ <CommandList>
61
+ <CommandEmpty>No results found.</CommandEmpty>
62
+ <CommandGroup heading="Navigation">
63
+ <CommandItem onSelect={() => router.push("/dashboard")}>
64
+ Dashboard
42
65
  </CommandItem>
43
- <CommandItem>Search Emoji</CommandItem>
44
66
  </CommandGroup>
45
67
  </CommandList>
46
68
  </CommandDialog>
47
69
  )
48
70
  }
49
- ```
71
+ ```
72
+
73
+ **Source:** [`command.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/command.tsx)
@@ -1,42 +1,47 @@
1
- <!-- source-hash: 0b18246ba972b704769b5c9382e327c6 -->
2
- Renders a styled card for displaying a user comment, supporting both vendor-context (showing the commenter's identity) and profile-context (showing the associated vendor) views with optional delete functionality.
1
+ <!-- source-hash: 2dc22952dfcc6e283cfc3b6d4d636ade -->
2
+ Renders a styled comment card that adapts its layout based on context showing vendor information when viewing a user profile, or user information when viewing a vendor page with optional delete functionality based on auth state.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### `CommentCard`
7
- The primary exported component accepting a `CommentCardProps` object.
6
+ ### `CommentCard` (default export)
8
7
 
9
- **Props:**
8
+ A context-aware card component for displaying user-submitted vendor comments.
10
9
 
11
- | Prop | Type | Description |
12
- |------|------|-------------|
13
- | `comment` | `object` | Comment data including content, metadata, and optional vendor/user info |
14
- | `onViewProduct` | `(vendorSlug: string) => void` | Callback when vendor button is clicked |
15
- | `onDeleteComment` | `(commentId: string) => void` | Callback when delete button is clicked |
16
- | `showVendorInfo` | `boolean` | Whether to display vendor information (default: `true`) |
17
- | `compact` | `boolean` | Reduces content area height (default: `false`) |
18
- | `context` | `'profile' \| 'vendor'` | Controls header layout — vendor button or user summary |
10
+ **Props (`CommentCardProps`):**
19
11
 
20
- ### Delete Authorization Logic (`canUserDeleteComment`)
21
- Context-aware check: in `profile` context, relies on `comment.canDelete`; in `vendor` context, compares `currentUser.id` against `comment.user.id`.
12
+ | Prop | Type | Default | Description |
13
+ |------|------|---------|-------------|
14
+ | `comment` | `object` | — | Comment data including content, author, vendor, and metadata |
15
+ | `context` | `'profile' \| 'vendor'` | `'profile'` | Controls layout and delete permission logic |
16
+ | `onViewProduct` | `(slug: string) => void` | — | Callback when vendor button is clicked |
17
+ | `onDeleteComment` | `(id: string) => void` | — | Callback when delete is triggered |
18
+ | `showVendorInfo` | `boolean` | `true` | Toggles vendor info display |
19
+ | `compact` | `boolean` | `false` | Reduces content area height |
20
+
21
+ **Internal logic:**
22
+
23
+ - `canUserDeleteComment()` — Grants delete access to authenticated users; in `profile` context, respects the `canDelete` prop; in `vendor` context, compares `currentUser.id` against `comment.user.id`
24
+ - `formatActivityTime()` — Delegates to `formatRelativeTime` utility for human-readable timestamps
22
25
 
23
26
  ## Usage Example
24
27
 
25
28
  ```typescript
26
29
  <CommentCard
30
+ context="vendor"
27
31
  comment={{
28
32
  id: "abc123",
29
- content: "Excellent ticketing integration with our existing stack.",
30
- title: "Great RMM Tool",
31
- type: "pro",
32
- importance: "Critical",
33
- createdAt: "2024-11-01T10:00:00Z",
34
- vendor: { id: 1, title: "NinjaRMM", slug: "ninjarmm", logo: "/logos/ninja.png" },
33
+ content: "Solid RMM tool for small MSPs.",
34
+ title: "Great value",
35
+ createdAt: "2025-06-01T12:00:00Z",
36
+ user: {
37
+ id: "user-42",
38
+ name: "Jane Smith",
39
+ profilePicture: null,
40
+ },
35
41
  canDelete: true,
36
42
  }}
37
- context="profile"
38
- onViewProduct={(slug) => router.push(`/vendors/${slug}`)}
39
- onDeleteComment={(id) => handleDelete(id)}
40
- compact={false}
43
+ onDeleteComment={(id) => console.log("Delete", id)}
41
44
  />
42
- ```
45
+ ```
46
+
47
+ **Source:** [`comment-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/comment-card.tsx)
@@ -1,40 +1,59 @@
1
- <!-- source-hash: 136d5eb8692fb936306eaef6f2ae6216 -->
2
- A React component that provides smooth loading transitions with skeleton states while preventing layout jumps during content loading.
1
+ <!-- source-hash: b7d95eae06e3f4248319cf0584641bd9 -->
2
+ A client-side React component and companion hook for managing content loading states with skeleton overlays, smooth transitions, and stable layout dimensions.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ContentLoadingContainer** - Main component that overlays skeleton loading states over actual content
7
- - **useContentLoading** - Hook providing common loading state patterns and utilities for different content types
6
+ ### `ContentLoadingContainer`
8
7
 
9
- ## Core Features
8
+ A wrapper component that overlays a skeleton placeholder during loading, then fades in the actual content once data is ready. Prevents layout jumps by preserving container dimensions throughout the loading lifecycle.
10
9
 
11
- - **Layout Stability** - Maintains consistent dimensions during loading with configurable `minHeight`
12
- - **Smooth Transitions** - Customizable opacity transitions between loading and loaded states
13
- - **Accessibility** - Proper ARIA labels, live regions, and screen reader support
14
- - **Flexible Skeletons** - Accepts any skeleton component for different content types
15
- - **Visual Overlay** - Dark background overlay that smoothly fades in/out during state changes
10
+ **Props:**
11
+
12
+ | Prop | Type | Default | Description |
13
+ |---|---|---|---|
14
+ | `isLoading` | `boolean` | | Controls skeleton/content visibility |
15
+ | `children` | `ReactNode` | — | Content rendered when not loading |
16
+ | `skeletonComponent` | `ReactNode` | — | Skeleton UI shown during loading |
17
+ | `className` | `string?` | — | Additional Tailwind classes |
18
+ | `minHeight` | `string?` | `"min-h-[300px] md:min-h-[800px]"` | Prevents layout jumps |
19
+ | `loadingOpacity` | `number?` | `1` | Skeleton overlay opacity (0–1) |
20
+ | `transitionDuration` | `number?` | `300` | Fade transition in milliseconds |
21
+
22
+ ### `useContentLoading`
23
+
24
+ A utility hook that returns accessibility attributes and layout helpers scoped to content type.
25
+
26
+ **Returns:**
27
+
28
+ | Key | Description |
29
+ |---|---|
30
+ | `containerProps` | `aria-busy` and `data-loading` attributes |
31
+ | `getSkeletonCount(type)` | Returns skeleton card count (12 for `vendor`, 6 for `blog`) |
32
+ | `getMinHeight(type)` | Returns appropriate min-height class per content type |
16
33
 
17
34
  ## Usage Example
18
35
 
19
36
  ```typescript
20
- import { ContentLoadingContainer, useContentLoading } from './content-loading-container'
37
+ import {
38
+ ContentLoadingContainer,
39
+ useContentLoading
40
+ } from "./content-loading-container"
41
+ import { CardSkeletonGrid } from "./card-skeleton-grid"
21
42
 
22
- function VendorPage() {
23
- const [vendors, setVendors] = useState([])
24
- const [isLoading, setIsLoading] = useState(true)
43
+ function VendorSection({ vendors, isLoading }) {
25
44
  const { getMinHeight, getSkeletonCount } = useContentLoading(isLoading)
26
45
 
27
46
  return (
28
47
  <ContentLoadingContainer
29
48
  isLoading={isLoading}
30
49
  skeletonComponent={
31
- <CardSkeletonGrid
32
- variant="vendor"
33
- count={getSkeletonCount('vendor')}
50
+ <CardSkeletonGrid
51
+ variant="vendor"
52
+ count={getSkeletonCount("vendor")}
34
53
  />
35
54
  }
36
- minHeight={getMinHeight('vendor')}
37
- transitionDuration={200}
55
+ minHeight={getMinHeight("vendor")}
56
+ transitionDuration={400}
38
57
  >
39
58
  <VendorGrid vendors={vendors} />
40
59
  </ContentLoadingContainer>
@@ -42,4 +61,10 @@ function VendorPage() {
42
61
  }
43
62
  ```
44
63
 
45
- The component uses absolute positioning to overlay the skeleton during loading while keeping the actual content rendered but hidden, ensuring smooth transitions without DOM manipulation delays.
64
+ ## Accessibility
65
+
66
+ The component includes built-in ARIA support: `role="region"` with `aria-live="polite"` on the wrapper, `role="status"` on the skeleton overlay, and `aria-hidden` on content while loading — ensuring screen readers announce state transitions correctly.
67
+
68
+ ## Source
69
+
70
+ [`content-loading-container.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/content-loading-container.tsx)
@@ -1,57 +1,71 @@
1
- <!-- source-hash: b87ab486ec9d61378bfc78b4a34edc52 -->
2
- A React context menu component library built on top of Radix UI primitives, providing styled and accessible right-click context menus with support for items, checkboxes, radio buttons, submenus, and keyboard shortcuts.
1
+ <!-- source-hash: 6a66d13d506e134a8d9bffd6d46a99bb -->
2
+ A styled right-click context menu component built on Radix UI's `@radix-ui/react-context-menu` primitive, providing accessible, animated menu overlays with Tailwind CSS styling.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ContextMenu** - Root wrapper component for context menu functionality
7
- - **ContextMenuTrigger** - Element that triggers the context menu on right-click
8
- - **ContextMenuContent** - Container for menu items with portal rendering and animations
9
- - **ContextMenuItem** - Individual clickable menu item with hover states
10
- - **ContextMenuCheckboxItem** - Checkbox menu item with check indicator
11
- - **ContextMenuRadioItem** - Radio button menu item for single selections
12
- - **ContextMenuLabel** - Non-interactive label for grouping menu items
13
- - **ContextMenuSeparator** - Visual separator between menu sections
14
- - **ContextMenuShortcut** - Text component for displaying keyboard shortcuts
15
- - **ContextMenuSub** - Submenu container with chevron indicator
16
- - **ContextMenuGroup/RadioGroup** - Grouping components for related items
6
+ | Export | Description |
7
+ |---|---|
8
+ | `ContextMenu` | Root container managing open/close state |
9
+ | `ContextMenuTrigger` | Element that activates the menu on right-click |
10
+ | `ContextMenuContent` | Animated popover panel rendered in a portal |
11
+ | `ContextMenuItem` | Standard clickable menu item; supports `inset` prop |
12
+ | `ContextMenuCheckboxItem` | Menu item with a toggleable checkbox indicator |
13
+ | `ContextMenuRadioItem` | Menu item for use within a `ContextMenuRadioGroup` |
14
+ | `ContextMenuLabel` | Non-interactive section label; supports `inset` prop |
15
+ | `ContextMenuSeparator` | Horizontal divider between menu sections |
16
+ | `ContextMenuShortcut` | Right-aligned keyboard shortcut hint span |
17
+ | `ContextMenuSub` | Container for nested sub-menus |
18
+ | `ContextMenuSubTrigger` | Item that opens a nested sub-menu with a chevron icon |
19
+ | `ContextMenuSubContent` | Animated panel for nested sub-menu items |
20
+ | `ContextMenuGroup` | Groups related items together |
21
+ | `ContextMenuRadioGroup` | Groups radio items for single-selection behavior |
22
+ | `ContextMenuPortal` | Renders menu content outside the DOM hierarchy |
17
23
 
18
24
  ## Usage Example
19
25
 
20
26
  ```typescript
21
27
  import {
22
28
  ContextMenu,
29
+ ContextMenuTrigger,
23
30
  ContextMenuContent,
24
31
  ContextMenuItem,
25
- ContextMenuTrigger,
32
+ ContextMenuCheckboxItem,
26
33
  ContextMenuSeparator,
27
34
  ContextMenuShortcut,
28
- ContextMenuCheckboxItem,
29
- ContextMenuRadioGroup,
30
- ContextMenuRadioItem,
35
+ ContextMenuSub,
36
+ ContextMenuSubTrigger,
37
+ ContextMenuSubContent,
38
+ ContextMenuLabel,
31
39
  } from "./context-menu"
32
40
 
33
- function MyComponent() {
41
+ export function FileContextMenu() {
34
42
  return (
35
43
  <ContextMenu>
36
- <ContextMenuTrigger>
37
- <div className="border p-4">Right-click me</div>
44
+ <ContextMenuTrigger className="flex h-32 w-48 items-center justify-center border rounded-md">
45
+ Right-click here
38
46
  </ContextMenuTrigger>
39
47
  <ContextMenuContent>
48
+ <ContextMenuLabel>File Actions</ContextMenuLabel>
40
49
  <ContextMenuItem>
41
- Copy
42
- <ContextMenuShortcut>⌘C</ContextMenuShortcut>
50
+ Open <ContextMenuShortcut>⌘O</ContextMenuShortcut>
43
51
  </ContextMenuItem>
44
- <ContextMenuItem>Paste</ContextMenuItem>
52
+ <ContextMenuCheckboxItem checked>Show Hidden Files</ContextMenuCheckboxItem>
45
53
  <ContextMenuSeparator />
46
- <ContextMenuCheckboxItem checked={true}>
47
- Show Grid
48
- </ContextMenuCheckboxItem>
49
- <ContextMenuRadioGroup value="light">
50
- <ContextMenuRadioItem value="light">Light</ContextMenuRadioItem>
51
- <ContextMenuRadioItem value="dark">Dark</ContextMenuRadioItem>
52
- </ContextMenuRadioGroup>
54
+ <ContextMenuSub>
55
+ <ContextMenuSubTrigger>Share</ContextMenuSubTrigger>
56
+ <ContextMenuSubContent>
57
+ <ContextMenuItem>Email</ContextMenuItem>
58
+ <ContextMenuItem>Copy Link</ContextMenuItem>
59
+ </ContextMenuSubContent>
60
+ </ContextMenuSub>
61
+ <ContextMenuSeparator />
62
+ <ContextMenuItem>
63
+ Delete <ContextMenuShortcut>⌫</ContextMenuShortcut>
64
+ </ContextMenuItem>
53
65
  </ContextMenuContent>
54
66
  </ContextMenu>
55
67
  )
56
68
  }
57
- ```
69
+ ```
70
+
71
+ **Source:** [`context-menu.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/context-menu.tsx)
@@ -1,44 +1,50 @@
1
- <!-- source-hash: e4564c4f125012e83f935e01f9e227ea -->
2
- A reusable date and time picker component built with react-datepicker, featuring dark theme styling and consistent form integration with the design system.
1
+ <!-- source-hash: a36437c1a2e15a6b144f93b54910e1cd -->
2
+ A client-side React date and time picker component that wraps `react-datepicker` with OpenFrame's ODS (OpenFrame Design System) dark theme styling and consistent input patterns.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **DateTimePicker**: Main component that wraps react-datepicker with custom styling
7
- - **DateTimePickerProps**: TypeScript interface defining component configuration options
8
- - **inputClassName**: Shared styling constants that match the design system's Input component pattern
6
+ ### `DateTimePicker`
7
+ The primary exported component. Renders a labeled date/time input with a fully styled dark-theme calendar popup matching the admin UI theme tokens (`ods-card`, `ods-border`, `ods-accent`, etc.).
8
+
9
+ ### `DateTimePickerProps`
10
+
11
+ | Prop | Type | Default | Description |
12
+ |---|---|---|---|
13
+ | `value` | `Date` | — | Controlled selected date |
14
+ | `onChange` | `(date: Date \| null) => void` | — | Change handler |
15
+ | `disabled` | `boolean` | `false` | Disables the input |
16
+ | `label` | `string` | — | Optional field label |
17
+ | `placeholder` | `string` | `"Select date and time"` | Input placeholder |
18
+ | `className` | `string` | — | Additional wrapper classes |
19
+ | `showTimeSelect` | `boolean` | `true` | Enables time selection panel |
20
+ | `timeFormat` | `string` | `"HH:mm"` | Time display format |
21
+ | `timeIntervals` | `number` | `15` | Minutes between time options |
22
+ | `dateFormat` | `string` | `"MMMM d, yyyy h:mm aa"` | Full date/time display format |
23
+
24
+ ### `inputClassName`
25
+ A shared `cn()`-composed class string that mirrors the `Input` component's styling, including mobile zoom prevention (`text-base` on small screens).
9
26
 
10
27
  ## Usage Example
11
28
 
12
29
  ```typescript
13
- import { DateTimePicker } from './components/date-time-picker';
14
- import { useState } from 'react';
30
+ import { DateTimePicker } from "@/components/date-time-picker";
31
+ import { useState } from "react";
15
32
 
16
- function EventForm() {
17
- const [eventDate, setEventDate] = useState<Date | null>(null);
33
+ export function ScheduleForm() {
34
+ const [scheduledAt, setScheduledAt] = useState<Date | null>(null);
18
35
 
19
36
  return (
20
- <div className="space-y-4">
21
- <DateTimePicker
22
- label="Event Date & Time"
23
- value={eventDate}
24
- onChange={setEventDate}
25
- placeholder="When is your event?"
26
- showTimeSelect={true}
27
- timeIntervals={30}
28
- dateFormat="MMM dd, yyyy h:mm aa"
29
- />
30
-
31
- {/* Date-only picker */}
32
- <DateTimePicker
33
- label="Deadline"
34
- value={eventDate}
35
- onChange={setEventDate}
36
- showTimeSelect={false}
37
- dateFormat="MMMM d, yyyy"
38
- />
39
- </div>
37
+ <DateTimePicker
38
+ label="Schedule At"
39
+ value={scheduledAt ?? undefined}
40
+ onChange={(date) => setScheduledAt(date)}
41
+ timeIntervals={30}
42
+ dateFormat="MM/dd/yyyy HH:mm"
43
+ />
40
44
  );
41
45
  }
42
46
  ```
43
47
 
44
- The component features full-width responsive design, dark theme integration, customizable date/time formats, and matches the ODS design system colors including the signature yellow (#FFC008) accent color for selections.
48
+ > **Note:** Inline `<style>` via `dangerouslySetInnerHTML` overrides `react-datepicker`'s default light theme. The accent color (`#FFC008`) maps to `ods-accent` for selected days and time slots.
49
+
50
+ **Source:** [`date-time-picker.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/date-time-picker.tsx)
@@ -1,52 +1,52 @@
1
- <!-- source-hash: 50c4ce7ece14f33f4a6cb6591ed66364 -->
2
- A reusable React client component that renders context-aware empty state UI for vendors, posts, search results, or generic scenarios with smart CTA logic that adapts based on the current URL path.
1
+ <!-- source-hash: 55c09cdcc7260b6cd2e3101f25d75b39 -->
2
+ A reusable React client component that renders contextual empty state UI for vendors, posts, search results, and generic scenarios, with smart CTA logic that adapts based on the current route.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `EmptyStateProps` Interface
7
7
 
8
8
  | Prop | Type | Default | Description |
9
- |------|------|---------|-------------|
10
- | `type` | `'vendors' \| 'posts' \| 'search' \| 'generic'` | required | Determines default icon, title, and description |
11
- | `title` | `string` | | Overrides default title |
12
- | `description` | `string` | | Overrides default description |
13
- | `showBackButton` | `boolean` | `false` | Renders an optional back button |
14
- | `onGoBack` | `() => void` | — | Handler for the back button |
15
- | `backButtonText` | `string` | `"Go Back"` | Back button label |
16
- | `showCTA` | `boolean` | `true` | Toggles the smart CTA button |
17
- | `ctaText` | `string` | | Overrides smart CTA label |
18
- | `onCtaClick` | `() => void` | | Overrides smart CTA action |
19
- | `ctaVariant` | `'primary' \| 'secondary'` | `'primary'` | CTA button styling |
20
-
21
- ### Internal Helpers
9
+ |---|---|---|---|
10
+ | `type` | `'vendors' \| 'posts' \| 'search' \| 'generic'` | | Determines default icon, title, and description |
11
+ | `title` | `string` | type-based default | Override the default heading |
12
+ | `description` | `string` | type-based default | Override the default body text |
13
+ | `showBackButton` | `boolean` | `false` | Renders an optional secondary back button |
14
+ | `onGoBack` | `() => void` | — | Callback for the back button |
15
+ | `backButtonText` | `string` | `"Go Back"` | Label for the back button |
16
+ | `showCTA` | `boolean` | `true` | Toggles the primary CTA button |
17
+ | `ctaText` | `string` | smart default | Custom CTA label |
18
+ | `onCtaClick` | `() => void` | smart default | Custom CTA handler |
19
+ | `ctaVariant` | `'primary' \| 'secondary'` | `'primary'` | CTA button style variant |
20
+
21
+ ### `EmptyState` Component
22
22
 
23
23
  - **`getDefaultContent()`** — Returns icon, title, and description based on `type`
24
- - **`getSmartCTA()`** — Derives CTA label and action from `type` + current pathname (e.g., resets filters on `/vendors` or `/blog`, navigates to `/vendors` from `/profile`)
24
+ - **`getSmartCTA()`** — Derives CTA label and action from `type` and `window.location.pathname`; custom `ctaText`/`onCtaClick` always take precedence. Falls back to route-aware defaults (e.g. resets URL search params on vendor/blog/search pages, navigates to `/vendors` or `/blog` elsewhere)
25
25
 
26
26
  ## Usage Example
27
27
 
28
28
  ```typescript
29
- // Basic usage
29
+ // Basic usage — type-driven defaults
30
30
  <EmptyState type="vendors" />
31
31
 
32
- // Search with custom CTA
33
- <EmptyState
34
- type="search"
35
- title="No results"
36
- description="Try different keywords."
37
- ctaText="Clear Search"
38
- onCtaClick={() => setQuery('')}
39
- ctaVariant="secondary"
40
- />
32
+ // Search results with filter reset
33
+ <EmptyState type="search" />
41
34
 
42
- // With back button, no CTA
35
+ // Custom CTA and back button
43
36
  <EmptyState
44
37
  type="posts"
45
- showCTA={false}
46
- showBackButton={true}
38
+ title="No articles yet"
39
+ description="Check back soon for new content."
40
+ showCTA
41
+ ctaText="Browse Vendors"
42
+ onCtaClick={() => router.push('/vendors')}
43
+ ctaVariant="secondary"
44
+ showBackButton
47
45
  onGoBack={() => router.back()}
48
- backButtonText="Return to Feed"
46
+ backButtonText="Return"
49
47
  />
50
48
  ```
51
49
 
52
- > **Smart CTA behavior:** When no `ctaText`/`onCtaClick` is provided, the component inspects `window.location.pathname` to decide whether to reset URL filters or navigate to `/vendors` or `/blog`.
50
+ ## Source
51
+
52
+ [`empty-state.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/empty-state.tsx)