@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,44 +1,47 @@
1
- <!-- source-hash: c4bd5081b24a42378ae712967abb83c2 -->
2
- Accessible pagination component with smart page number windowing, ellipsis truncation, and both a high-level `Pagination` component and low-level composable primitives.
1
+ <!-- source-hash: ed302fbaa512fab595b516fa57c425ad -->
2
+ Accessible, client-side pagination component that renders page navigation with smart ellipsis logic and a set of composable sub-components for building custom pagination UIs.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `Pagination` | Component | All-in-one pagination with built-in windowing logic |
9
- | `PaginationContent` | Primitive | `<ul>` wrapper for custom pagination layouts |
10
- | `PaginationItem` | Primitive | `<li>` wrapper for individual page entries |
11
- | `PaginationLink` | Primitive | Styled `<button>` for page number links |
12
- | `PaginationEllipsis` | Primitive | `MoreHorizontal` icon span for truncated ranges |
13
- | `PaginationPrevious` | Primitive | Previous page `<button>` with chevron icon |
14
- | `PaginationNext` | Primitive | Next page `<button>` with chevron icon |
15
-
16
- ### `PaginationProps`
17
-
18
- | Prop | Type | Description |
19
- |------|------|-------------|
20
- | `currentPage` | `number` | Active page (1-based) |
21
- | `totalPages` | `number` | Total number of pages |
22
- | `onPageChange` | `(page: number) => void` | Callback fired on page selection |
23
- | `className` | `string?` | Optional extra classes on the `<nav>` |
24
-
25
- **Windowing logic:** shows up to 5 page buttons — always including first and last — with ellipsis (`-1`/`-2` sentinels) filling gaps in between.
7
+ |---|---|---|
8
+ | `Pagination` | Component | Full-featured pagination with built-in page number generation, ellipsis, and prev/next controls |
9
+ | `PaginationContent` | `forwardRef` | Flex container (`<ul>`) for pagination items |
10
+ | `PaginationItem` | `forwardRef` | Wrapper `<li>` for individual pagination elements |
11
+ | `PaginationLink` | `forwardRef` | Styled `<button>` for individual page links |
12
+ | `PaginationEllipsis` | `forwardRef` | `<span>` rendering a `MoreHorizontal` icon with screen-reader text |
13
+ | `PaginationPrevious` | `forwardRef` | Previous-page `<button>` with `ChevronLeft` icon |
14
+ | `PaginationNext` | `forwardRef` | Next-page `<button>` with `ChevronRight` icon |
15
+
16
+ **Page number algorithm:** Shows up to 5 pages. For larger sets it always renders the first and last page, up to 3 middle pages around the current page, and inserts ellipsis (`-1`/`-2` sentinel values) where gaps exist.
26
17
 
27
18
  ## Usage Example
28
19
 
20
+ **Simple controlled pagination:**
21
+
29
22
  ```typescript
30
- // High-level component
31
23
  import { Pagination } from "@/components/pagination"
32
24
 
33
- <Pagination
34
- currentPage={3}
35
- totalPages={20}
36
- onPageChange={(page) => setCurrentPage(page)}
37
- />
25
+ export function MyList() {
26
+ const [page, setPage] = React.useState(1)
27
+
28
+ return (
29
+ <>
30
+ <ItemList page={page} />
31
+ <Pagination
32
+ currentPage={page}
33
+ totalPages={20}
34
+ onPageChange={setPage}
35
+ className="mt-4"
36
+ />
37
+ </>
38
+ )
39
+ }
38
40
  ```
39
41
 
42
+ **Composable low-level API:**
43
+
40
44
  ```typescript
41
- // Composable primitives for custom layouts
42
45
  import {
43
46
  PaginationContent,
44
47
  PaginationItem,
@@ -48,14 +51,16 @@ import {
48
51
  PaginationEllipsis,
49
52
  } from "@/components/pagination"
50
53
 
51
- <nav>
52
- <PaginationContent>
53
- <PaginationItem><PaginationPrevious onClick={() => setPage(p => p - 1)} /></PaginationItem>
54
- <PaginationItem><PaginationLink onClick={() => setPage(1)}>1</PaginationLink></PaginationItem>
55
- <PaginationItem><PaginationEllipsis /></PaginationItem>
56
- <PaginationItem><PaginationNext onClick={() => setPage(p => p + 1)} /></PaginationItem>
57
- </PaginationContent>
58
- </nav>
59
- ```
60
-
61
- > All interactive elements include `aria-label` and `aria-current="page"` attributes, and screen-reader-only text via `sr-only` spans for full accessibility compliance.
54
+ export function CustomPagination() {
55
+ return (
56
+ <nav aria-label="pagination">
57
+ <PaginationContent>
58
+ <PaginationItem><PaginationPrevious onClick={() => {}} /></PaginationItem>
59
+ <PaginationItem><PaginationLink>1</PaginationLink></PaginationItem>
60
+ <PaginationItem><PaginationEllipsis /></PaginationItem>
61
+ <PaginationItem><PaginationNext onClick={() => {}} /></PaginationItem>
62
+ </PaginationContent>
63
+ </nav>
64
+ )
65
+ }
66
+ ```
@@ -1,41 +1,74 @@
1
- <!-- source-hash: cad1f4c0a58d88fec0b4fd7dcdd7628a -->
2
- A React component library that provides persistent, accessible filter controls with loading state management and visual feedback for improved user experience during data fetching.
1
+ <!-- source-hash: cfbf70162648ccd3e632dabc1ca9e692 -->
2
+ Wrapper components that keep filter controls visible but visually disabled during loading states, with smooth transitions and full accessibility support.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`PersistentFilterControls`** - Main wrapper component that manages loading states with visual feedback
7
- - **`PersistentSearchContainer`** - Enhanced search wrapper that keeps search interactive during loading
8
- - **`PersistentSidebar`** - Desktop sidebar wrapper with sticky positioning
9
- - **`PersistentMobileDropdown`** - Mobile-specific dropdown wrapper with responsive visibility
6
+ | Export | Description |
7
+ |---|---|
8
+ | `PersistentFilterControls` | Base wrapper; handles opacity, pointer-events, ARIA attributes, and a spinning loader indicator |
9
+ | `PersistentSearchContainer` | Wraps search inputs; keeps interaction enabled (`preventInteraction=false`) during loading |
10
+ | `PersistentSidebar` | Wraps desktop sidebar filters; sticky-positioned, `0.5` disabled opacity |
11
+ | `PersistentMobileDropdown` | Wraps mobile dropdown filters; hidden on `lg+`, `0.7` disabled opacity |
12
+
13
+ ## Props — `PersistentFilterControls`
14
+
15
+ | Prop | Type | Default | Description |
16
+ |---|---|---|---|
17
+ | `isLoading` | `boolean` | — | Triggers the disabled visual state |
18
+ | `children` | `ReactNode` | — | Filter control components to wrap |
19
+ | `className` | `string` | — | Additional Tailwind/CSS classes |
20
+ | `disabledOpacity` | `number` | `0.6` | Opacity when loading (0–1) |
21
+ | `transitionDuration` | `number` | `300` | Transition duration in milliseconds |
22
+ | `preventInteraction` | `boolean` | `true` | Applies `pointer-events-none` during loading |
10
23
 
11
24
  ## Usage Example
12
25
 
13
26
  ```typescript
14
- // Basic filter controls with loading state
15
- <PersistentFilterControls isLoading={isLoadingData}>
16
- <SearchInput />
17
- <CategoryFilters />
18
- <SortControls />
19
- </PersistentFilterControls>
27
+ import {
28
+ PersistentFilterControls,
29
+ PersistentSearchContainer,
30
+ PersistentSidebar,
31
+ PersistentMobileDropdown,
32
+ } from "./persistent-filter-controls"
33
+
34
+ // Granular per-control usage
35
+ function FilterLayout({ isLoading }: { isLoading: boolean }) {
36
+ return (
37
+ <>
38
+ {/* Search stays interactive during loading */}
39
+ <PersistentSearchContainer isLoading={isLoading}>
40
+ <SearchInput />
41
+ </PersistentSearchContainer>
20
42
 
21
- // Search container that stays interactive during loading
22
- <PersistentSearchContainer isLoading={isLoading}>
23
- <SearchInput placeholder="Search vendors..." />
24
- </PersistentSearchContainer>
43
+ {/* Sidebar fully disabled at 50% opacity */}
44
+ <PersistentSidebar isLoading={isLoading}>
45
+ <CategoryFilterSidebar />
46
+ </PersistentSidebar>
25
47
 
26
- // Responsive sidebar with custom styling
27
- <PersistentSidebar
48
+ {/* Mobile dropdown, hidden on desktop */}
49
+ <PersistentMobileDropdown isLoading={isLoading}>
50
+ <MobileFilterDropdown />
51
+ </PersistentMobileDropdown>
52
+ </>
53
+ )
54
+ }
55
+
56
+ // Or use the base component with custom settings
57
+ <PersistentFilterControls
28
58
  isLoading={isLoading}
29
- className="w-64 space-y-4"
59
+ disabledOpacity={0.4}
60
+ transitionDuration={200}
61
+ preventInteraction
30
62
  >
31
- <CategoryFilter />
32
- <PriceRangeFilter />
33
- </PersistentSidebar>
34
-
35
- // Mobile dropdown with automatic responsive hiding
36
- <PersistentMobileDropdown isLoading={isLoading}>
37
- <FilterDropdown />
38
- </PersistentMobileDropdown>
63
+ <CustomFilterPanel />
64
+ </PersistentFilterControls>
39
65
  ```
40
66
 
41
- The components provide accessibility features including ARIA attributes, screen reader announcements, and keyboard navigation preservation during loading states. They use customizable opacity transitions and pointer event management to create smooth user experiences.
67
+ ## Accessibility
68
+
69
+ - `role="region"` with `aria-label="Filter controls"` and `aria-busy` on the outer wrapper
70
+ - `role="status"` with `aria-live="polite"` on a visually hidden (`sr-only`) element announces loading to screen readers
71
+ - A visible spinning indicator (`animate-spin`) is rendered at `top-2 right-2` during loading
72
+ - Keyboard navigation and screen reader access are preserved even when `pointer-events-none` is applied
73
+
74
+ **Source:** [`persistent-filter-controls.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/persistent-filter-controls.tsx)
@@ -1,50 +1,51 @@
1
- <!-- source-hash: 00831f49d3f69f4283d8a0c7a7a3bfd4 -->
2
- A React component for displaying pricing information with flexible styling configurations and support for both structured and legacy string pricing formats.
1
+ <!-- source-hash: e8ca3b7bdcdb12ce459c31a0b64a34bd -->
2
+ Renders pricing data consistently across comparison tables, vendor cards, and dropdowns, supporting both structured `StructuredPricingItem` arrays and legacy string formats.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### Main Exports
7
- - **`PricingDisplay`** - Main component for rendering pricing with configurable styles
8
- - **`PRICING_STYLES`** - Predefined style configurations (comparison, compact, card)
9
- - **`formatPricingForDisplay`** - Utility function for preprocessing pricing strings
6
+ ### Exports
10
7
 
11
- ### Internal Functions
12
- - **`formatPriceValue`** - Formats price values with optional tilde prefix
13
- - **`LegacyPricingDisplay`** - Backward compatibility component for string inputs
14
- - **`parsePricing`** - String parser for extracting price and unit information
8
+ - **`PricingDisplay`** — Primary component that renders pricing with configurable styling. Accepts structured pricing data (single item, array, or legacy string) and a `styleConfig`.
9
+ - **`PRICING_STYLES`** Predefined style config constants for three layout contexts:
10
+ - `comparison` Default; no tilde prefix, primary text color
11
+ - `compact` Vendor dropdowns; shows tilde prefix (`~$`), secondary text color
12
+ - `card` — Vendor cards; shows tilde prefix, mixed primary/secondary colors
13
+ - **`formatPricingForDisplay`** — Pass-through utility for pre-processing pricing strings (currently identity function).
15
14
 
16
- ### Types
17
- - **`PricingStyleConfig`** - Configuration interface for text sizes, colors, and display options
18
- - **`PricingDisplayProps`** - Component props supporting structured or string pricing data
15
+ ### Internal
16
+
17
+ - **`LegacyPricingDisplay`** — Handles backward-compatible string input, parsing comma-separated, pipe-separated, multi-cycle (`/$`), and single-price formats.
18
+ - **`formatPriceValue`** — Normalizes `number | 'Free' | 'Contact'` to a display string, optionally prefixed with `~`.
19
+
20
+ ### Interfaces
21
+
22
+ | Interface | Purpose |
23
+ |---|---|
24
+ | `PricingStyleConfig` | Font size, color, tilde prefix, and font-family tokens |
25
+ | `PricingDisplayProps` | Component props; `pricing` accepts array, single item, or string |
19
26
 
20
27
  ## Usage Example
21
28
 
22
29
  ```typescript
23
30
  import { PricingDisplay, PRICING_STYLES } from './pricing-display'
24
31
 
25
- // With structured pricing data
26
- const structuredPricing = [{
27
- ranges: [{ min: 25, unit: 'user/month' }]
28
- }]
32
+ // Structured pricing (preferred)
33
+ <PricingDisplay
34
+ pricing={[{ ranges: [{ min: 29, unit: 'device/month' }] }]}
35
+ styleConfig={PRICING_STYLES.card}
36
+ />
29
37
 
30
- // Basic usage with default styling
31
- <PricingDisplay pricing={structuredPricing} />
38
+ // Legacy string input (backward compatible)
39
+ <PricingDisplay
40
+ pricing="$29/device/month, $299/device/year"
41
+ styleConfig={PRICING_STYLES.comparison}
42
+ />
32
43
 
33
- // With custom compact styling
34
- <PricingDisplay
35
- pricing={structuredPricing}
44
+ // Compact dropdown style with tilde prefix → renders "~$29/device/month"
45
+ <PricingDisplay
46
+ pricing={structuredItem}
36
47
  styleConfig={PRICING_STYLES.compact}
37
- className="my-2"
38
48
  />
39
-
40
- // Legacy string support
41
- <PricingDisplay pricing="$25/user/month" />
42
-
43
- // Multiple pricing tiers
44
- <PricingDisplay pricing={[
45
- { ranges: [{ min: 10, unit: 'device/month' }] },
46
- { ranges: [{ min: 120, unit: 'device/year' }] }
47
- ]} />
48
49
  ```
49
50
 
50
- The component automatically handles various pricing formats including free tiers, contact-based pricing, and multi-tier structures while maintaining consistent visual presentation across different UI contexts.
51
+ **Source:** [`pricing-display.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/pricing-display.tsx)
@@ -1,42 +1,55 @@
1
- <!-- source-hash: 4a24692b0150d343e629a74a58baaa40 -->
2
- A React component that displays pagination information showing the current range of results and total count for search/listing interfaces.
1
+ <!-- source-hash: 6cbebdb8e5cb24d3a740b0dfd374352c -->
2
+ A client-side React component that displays paginated result counts with optional sorting context for vendor or post listings.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`ResultsCountProps`** - Interface defining component props including pagination state and result type
7
- - **`ResultsCount`** - Main component that renders the results count display with optional sorting message
6
+ **`ResultsCountProps`** Interface defining component inputs:
8
7
 
9
- ### Props
8
+ | Prop | Type | Description |
9
+ |---|---|---|
10
+ | `currentPage` | `number` | Active page number (1-based) |
11
+ | `pageSize` | `number` | Number of results per page |
12
+ | `totalResults` | `number` | Total count across all pages |
13
+ | `resultType` | `'vendors' \| 'posts'` | Controls singular/plural label |
14
+ | `sortingMessage` | `string` (optional) | Accent-colored sort context appended to count |
10
15
 
11
- - `currentPage`: Current page number (1-based)
12
- - `pageSize`: Number of items per page
13
- - `totalResults`: Total number of available results
14
- - `resultType`: Type of content being displayed ('vendors' or 'posts')
15
- - `sortingMessage`: Optional message about current sorting method
16
+ **`ResultsCount`** — Functional component that computes the visible result range and renders a summary string. Returns `null` when `totalResults` is `0`.
16
17
 
17
18
  ## Usage Example
18
19
 
19
20
  ```typescript
20
- import { ResultsCount } from './results-count'
21
-
22
- // Basic usage for vendor listings
21
+ // Basic pagination count
23
22
  <ResultsCount
24
23
  currentPage={2}
25
24
  pageSize={20}
26
- totalResults={156}
25
+ totalResults={85}
27
26
  resultType="vendors"
28
27
  />
29
- // Output: "Showing 21-40 of 156 vendors"
28
+ // "Showing 21-40 of 85 vendors"
30
29
 
31
- // With sorting message
30
+ // With sorting context
32
31
  <ResultsCount
33
32
  currentPage={1}
34
33
  pageSize={10}
35
- totalResults={45}
34
+ totalResults={1}
36
35
  resultType="posts"
37
- sortingMessage="sorted by date"
36
+ sortingMessage="sorted by relevance"
37
+ />
38
+ // → "Showing 1-1 of 1 post • sorted by relevance"
39
+
40
+ // Returns null — renders nothing
41
+ <ResultsCount
42
+ currentPage={1}
43
+ pageSize={10}
44
+ totalResults={0}
45
+ resultType="vendors"
38
46
  />
39
- // Output: "Showing 1-10 of 45 posts • sorted by date"
40
47
  ```
41
48
 
42
- The component automatically handles singular/plural forms, calculates the correct result range for the current page, and returns `null` when there are no results to display.
49
+ ## Notes
50
+
51
+ - Range is computed as `startIndex = (currentPage - 1) * pageSize + 1` and `endIndex = Math.min(currentPage * pageSize, totalResults)`, preventing out-of-bounds display on the last page.
52
+ - Automatically handles singular/plural labeling (`vendor` vs `vendors`, `post` vs `posts`).
53
+ - `sortingMessage` renders in accent color (`text-ods-accent`) prefixed with a bullet separator.
54
+
55
+ **Source:** [`results-count.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/results-count.tsx)
@@ -1,14 +1,25 @@
1
- <!-- source-hash: 8e2d34f99735f6301a4abd6dd93c8c3e -->
2
- A custom accordion component built on Radix UI primitives that provides ultra-smooth open/close animations using dynamic height measurement via `ResizeObserver`, replacing CSS variable-based transitions with pixel-precise `max-height` animation.
1
+ <!-- source-hash: 2029770a635d305e72ad9b7c24b00f02 -->
2
+ A set of animated accordion components built on top of `@radix-ui/react-accordion`, providing smooth height and opacity transitions using `ResizeObserver` for dynamic content measurement.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `SmoothAccordion` | Component | Re-export of `AccordionPrimitive.Root` the accordion container |
9
- | `SmoothAccordionItem` | `forwardRef` Component | Accordion item wrapper with border removed (`border-0`) |
10
- | `SmoothAccordionTrigger` | `forwardRef` Component | Clickable header with label text and an animated `ChevronButton` |
11
- | `SmoothAccordionContent` | `forwardRef` Component | Animated content panel using `ResizeObserver` for height tracking |
7
+ |---|---|---|
8
+ | `SmoothAccordion` | Component | Re-export of `AccordionPrimitive.Root` for convenience |
9
+ | `SmoothAccordionItem` | `forwardRef` Component | Wrapper around `AccordionPrimitive.Item` with border reset |
10
+ | `SmoothAccordionTrigger` | `forwardRef` Component | Trigger header with label text and animated `ChevronButton` |
11
+ | `SmoothAccordionContent` | `forwardRef` Component | Content panel with `ResizeObserver`-driven smooth animation |
12
+
13
+ ### `SmoothAccordionTrigger` Props
14
+
15
+ | Prop | Type | Description |
16
+ |---|---|---|
17
+ | `label` | `React.ReactNode` | Content rendered as the accordion header |
18
+ | `className` | `string?` | Additional CSS classes |
19
+
20
+ ### `SmoothAccordionContent` Animation
21
+
22
+ Uses `ResizeObserver` to measure `scrollHeight` dynamically, animating `max-height` and `opacity` over `0.35s`. Height resets to `0px` after the close transition ends to avoid residual spacing.
12
23
 
13
24
  ## Usage Example
14
25
 
@@ -24,18 +35,16 @@ export function FAQ() {
24
35
  return (
25
36
  <SmoothAccordion type="single" collapsible>
26
37
  <SmoothAccordionItem value="item-1">
27
- <SmoothAccordionTrigger label="What is Flamingo?" />
38
+ <SmoothAccordionTrigger label="What is OpenFrame?" />
28
39
  <SmoothAccordionContent>
29
- Flamingo is an AI-powered MSP platform that replaces expensive
30
- proprietary software with open-source alternatives.
40
+ OpenFrame is a unified AI-driven MSP platform.
31
41
  </SmoothAccordionContent>
32
42
  </SmoothAccordionItem>
33
43
 
34
44
  <SmoothAccordionItem value="item-2">
35
- <SmoothAccordionTrigger label="What is OpenFrame?" />
45
+ <SmoothAccordionTrigger label="How does Mingo AI work?" />
36
46
  <SmoothAccordionContent>
37
- OpenFrame is the unified platform integrating multiple MSP tools
38
- into a single AI-driven interface.
47
+ Mingo AI automates IT support operations across the stack.
39
48
  </SmoothAccordionContent>
40
49
  </SmoothAccordionItem>
41
50
  </SmoothAccordion>
@@ -43,11 +52,6 @@ export function FAQ() {
43
52
  }
44
53
  ```
45
54
 
46
- ## Animation Details
47
-
48
- `SmoothAccordionContent` avoids Radix's default CSS variable approach by:
55
+ > **Note:** The `data-state` prop injected by Radix UI controls open/closed animation state. No additional state management is required by the consumer.
49
56
 
50
- 1. **Measuring** actual content height via `scrollHeight` on mount and child changes
51
- 2. **Observing** dynamic content resize with a `ResizeObserver`
52
- 3. **Animating** `max-height` and `opacity` over `0.35s ease-in-out`
53
- 4. **Resetting** `maxHeight` to `0` after the close transition ends to prevent residual spacing
57
+ **Source:** [`smooth-accordion.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/smooth-accordion.tsx)
@@ -1,43 +1,55 @@
1
- <!-- source-hash: 5ee2a1885dc45a65b8396aea3f9f9f10 -->
2
- A client-side React component that renders a horizontal row of social media icon buttons with configurable links and styling variants.
1
+ <!-- source-hash: 61507385ae20de6e7a2be68effe9807c -->
2
+ A client-side React component that renders a horizontal row of social media icon buttons, supporting both link-based navigation and action callbacks with optional compact and grouped layouts.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### Interfaces
7
- - **`SocialLink`** — Defines a social link entry with `platform` (string key), `href` (URL), and optional `label` (for accessibility)
8
- - **`SocialIconRowProps`** — Component props accepting `className`, `links` array, and a `variant` for button styling
6
+ ### Types
7
+
8
+ - **`SocialLink`** — Discriminated union type ensuring each entry has either an `href` (anchor) or `onClick` (action callback), never both or neither. Supports `visibility` (`"external"` | `"internal"`) for grouping.
9
+ - **`SocialIconRowProps`** — Component props including `links`, `variant`, `compact`, and `groupByVisibility`.
9
10
 
10
11
  ### Functions
11
- - **`renderSocialIcon(platform)`** — Maps a platform string to its corresponding icon component. Supports: `github`, `twitter`/`x`, `reddit`, `linkedin`, `luma`, `whatsapp`, `website`/`web`/`url`, `slack`, `discord`, `telegram`, `youtube`/`yt`, `instagram`/`ig`, `facebook`/`fb`. Falls back to `GlobeIcon` for unknown platforms.
12
- - **`SocialIconRow`** — Main exported component rendering a flex row of icon buttons, each wrapped in an accessible anchor tag.
13
12
 
14
- ### Defaults
15
- - `defaultLinks`Pre-configured links for GitHub, LinkedIn, and Facebook (Flamingo's primary social channels)
16
- - `variant` defaults to `'outline'`
13
+ - **`renderSocialIcon(platform)`** — Maps a platform string (case-insensitive) to the corresponding icon component. Falls back to `GlobeIcon` for unknown platforms. Supported platforms: `github`, `twitter`/`x`, `reddit`, `linkedin`, `luma`, `whatsapp`, `email`/`mail`, `website`/`web`/`url`, `slack`, `discord`, `telegram`, `youtube`/`yt`, `instagram`/`ig`, `facebook`/`fb`, `copy`.
14
+ - **`SocialIconRow`**Main exported component.
15
+
16
+ ### Props
17
+
18
+ | Prop | Type | Default | Description |
19
+ |---|---|---|---|
20
+ | `links` | `SocialLink[]` | GitHub, LinkedIn, Facebook | Array of social link definitions |
21
+ | `variant` | `"accent"` \| `"outline"` \| `"transparent"` \| `"destructive"` | `"outline"` / `"transparent"` | Button variant; defaults to `"transparent"` in compact mode |
22
+ | `compact` | `boolean` | `false` | 32px ghost icon buttons with tight `gap-2` for metadata/identity rows |
23
+ | `groupByVisibility` | `boolean` | `false` | Splits external and internal links with a divider when both groups are present |
17
24
 
18
25
  ## Usage Example
19
26
 
20
27
  ```typescript
21
- // Default Flamingo social links
28
+ import { SocialIconRow } from './social-icon-row';
29
+
30
+ // Default full-width card row
22
31
  <SocialIconRow />
23
32
 
24
- // Custom links with accent variant
33
+ // Compact author header row with custom links
25
34
  <SocialIconRow
26
- variant="accent"
35
+ compact
27
36
  links={[
28
- { platform: 'github', href: 'https://github.com/your-org', label: 'GitHub' },
29
- { platform: 'slack', href: 'https://join.slack.com/...', label: 'Slack' },
30
- { platform: 'youtube', href: 'https://youtube.com/@flamingo', label: 'YouTube' },
37
+ { platform: 'github', href: 'https://github.com/flamingo-stack/openframe-oss-lib', label: 'GitHub' },
38
+ { platform: 'twitter', href: 'https://x.com/flamingo_run', label: 'X' },
39
+ {
40
+ platform: 'copy',
41
+ label: 'Copy link',
42
+ onClick: () => navigator.clipboard.writeText(window.location.href),
43
+ },
31
44
  ]}
32
- className="mt-4"
33
45
  />
34
46
 
35
- // Transparent variant for dark backgrounds
47
+ // Grouped: external links / divider / internal-only links
36
48
  <SocialIconRow
37
- variant="transparent"
49
+ groupByVisibility
38
50
  links={[
39
- { platform: 'linkedin', href: 'https://linkedin.com/company/flamingo.run' },
40
- { platform: 'twitter', href: 'https://x.com/flamingo' },
51
+ { platform: 'linkedin', href: 'https://linkedin.com/company/flamingo.run', visibility: 'external' },
52
+ { platform: 'slack', href: 'https://join.slack.com/...', visibility: 'internal' },
41
53
  ]}
42
54
  />
43
55
  ```
@@ -1,41 +1,56 @@
1
- <!-- source-hash: 29dab1e4f92b76196533161ae17454c9 -->
2
- A React component that wraps the Sonner toast notification library with custom styling and dark theme configuration for consistent toast messages across the application.
1
+ <!-- source-hash: ffdc48f7d697e19cf2af3c404ef4db8b -->
2
+ A pre-configured wrapper around the [Sonner](https://sonner.emilkowal.ski/) toast library, styled with OpenFrame Design System (`ods-*`) tokens and fixed to dark theme, bottom-right position.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`Toaster`** - Main toast notification component with pre-configured styling and positioning
7
- - **`ToasterProps`** - Type definition extending Sonner's component props for type safety
6
+ - **`Toaster`** — Drop-in toast container component. Accepts all native `Sonner` props via spread, with ODS-themed defaults pre-applied.
7
+
8
+ ## ODS Token Mapping
9
+
10
+ | Toast Part | Tokens Applied |
11
+ |---|---|
12
+ | Base toast | `ods-card`, `ods-text-primary`, `ods-border` |
13
+ | Description | `ods-text-secondary` |
14
+ | Action button | `ods-accent`, `ods-text-on-accent` |
15
+ | Cancel button | `ods-bg-surface`, `ods-text-secondary` |
16
+ | Error variant | `ods-error-secondary`, `ods-error` border |
17
+ | Success variant | `ods-success-secondary`, `ods-success` border |
8
18
 
9
19
  ## Usage Example
10
20
 
21
+ Mount once at the app root (e.g. layout), then trigger toasts anywhere:
22
+
11
23
  ```typescript
12
- import { Toaster } from './sonner'
13
- import { toast } from 'sonner'
24
+ // app/layout.tsx
25
+ import { Toaster } from "@/components/ui/sonner"
14
26
 
15
- // Add the Toaster component to your app root
16
- function App() {
27
+ export default function RootLayout({ children }) {
17
28
  return (
18
- <div>
19
- {/* Your app content */}
20
- <Toaster />
21
- </div>
29
+ <html>
30
+ <body>
31
+ {children}
32
+ <Toaster />
33
+ </body>
34
+ </html>
22
35
  )
23
36
  }
37
+ ```
24
38
 
25
- // Trigger toast notifications anywhere in your app
26
- function handleSuccess() {
27
- toast.success("Operation completed successfully!")
28
- }
39
+ ```typescript
40
+ // anywhere in the app
41
+ import { toast } from "sonner"
29
42
 
30
- function handleError() {
31
- toast.error("Something went wrong!")
32
- }
43
+ toast.success("Device synced successfully.")
44
+ toast.error("Failed to connect to endpoint.")
45
+ toast("Ticket #1042 updated.", { description: "Priority changed to High." })
46
+ ```
33
47
 
34
- function handleInfo() {
35
- toast("Info message", {
36
- description: "Additional details here"
37
- })
38
- }
48
+ Override defaults by passing props directly to `<Toaster>`:
49
+
50
+ ```typescript
51
+ <Toaster position="top-center" duration={3000} />
39
52
  ```
40
53
 
41
- The component is pre-styled with ODS (design system) color tokens and positioned at the bottom-right of the screen. It includes custom styling for different toast types (success, error, info) and interactive elements like action and cancel buttons. The dark theme and custom CSS classes ensure consistent appearance with the application's design system.
54
+ ## Source
55
+
56
+ [`sonner.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/sonner.tsx)