@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,50 +1,67 @@
1
- <!-- source-hash: da445924e21f0d905c4ca341c95ec68c -->
2
- Displays a list of file/folder paths with optional copy-to-clipboard functionality, styled with ODS design tokens and monospace formatting.
1
+ <!-- source-hash: 96a81588a478ba85d3b042d42c4563c6 -->
2
+ Renders a styled, copy-enabled list of file/folder paths, and exports pre-defined OpenFrame installation paths and doctor commands for Windows, macOS, and Linux.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `PathsDisplay` | Component | Main component rendering a styled list of paths with optional copy buttons |
9
- | `PathsDisplayProps` | Interface | Props definition for the `PathsDisplay` component |
10
- | `OPENFRAME_PATHS` | Constant | Pre-defined path sets for Windows, macOS, and Linux platforms |
11
- | `getOpenFramePaths` | Function | Returns a mutable array of paths for a given platform key |
12
- | `OpenFramePathsPlatform` | Type | Union type of `'windows' \| 'darwin' \| 'linux'` |
6
+ ### `PathsDisplay` (Component)
7
+ The primary export. Renders paths in a bordered, monospace list with optional title, description, leading icon per row, and per-path copy buttons.
8
+
9
+ | Prop | Type | Default | Description |
10
+ |---|---|---|---|
11
+ | `paths` | `string[]` | | Paths to display |
12
+ | `onCopyPath` | `(path: string) => void` | | Copy button callback |
13
+ | `title` | `string` | — | Heading above the list |
14
+ | `description` | `string` | — | Subheading below title |
15
+ | `showCopyButtons` | `boolean` | `true` | Show/hide copy buttons |
16
+ | `copyIconSize` | `string` | `'w-6 h-6'` | Tailwind size classes for the copy icon |
17
+ | `leadingIcon` | `React.ReactNode` | — | Icon prepended to each row (e.g. platform logo) |
18
+ | `className` | `string` | — | Extra classes on the container |
19
+
20
+ Returns `null` when `paths` is empty.
21
+
22
+ ### `OPENFRAME_PATHS`
23
+ Constant record of platform-specific OpenFrame installation paths.
24
+
25
+ ```typescript
26
+ OPENFRAME_PATHS.windows // C:\Program Files\OpenFrame, etc.
27
+ OPENFRAME_PATHS.darwin // /Library/LaunchDaemons/..., etc.
28
+ OPENFRAME_PATHS.linux // /opt/openframe/
29
+ ```
30
+
31
+ ### `OPENFRAME_DOCTOR_COMMANDS`
32
+ Per-platform shell commands for diagnosing and repairing the OpenFrame agent.
33
+
34
+ ### Helper Functions
35
+ - **`getOpenFramePaths(platform)`** — returns a mutable copy of `OPENFRAME_PATHS[platform]`
36
+ - **`getOpenFrameDoctorCommand(platform)`** — returns the doctor command string for a platform
37
+
38
+ ### `OpenFramePathsPlatform` (Type)
39
+ `'windows' | 'darwin' | 'linux'`
13
40
 
14
41
  ## Usage Example
15
42
 
16
43
  ```typescript
17
44
  import { PathsDisplay, getOpenFramePaths } from '@flamingo/ui-kit/components/features'
18
45
 
19
- // Basic usage with antivirus exclusion paths
46
+ // Basic antivirus exclusion list
20
47
  <PathsDisplay
21
48
  paths={getOpenFramePaths('windows')}
22
49
  title="Antivirus Exclusions"
23
- description="Add these folders to your antivirus exclusions list"
50
+ description="Add these folders to your antivirus exclusion list."
24
51
  onCopyPath={(path) => {
25
52
  navigator.clipboard.writeText(path)
26
53
  toast({ title: 'Copied', description: 'Path copied to clipboard' })
27
54
  }}
28
55
  />
29
56
 
30
- // Display-only, no copy buttons
57
+ // With a platform logo as a leading icon
31
58
  <PathsDisplay
32
59
  paths={getOpenFramePaths('linux')}
33
- title="Linux Agent Paths"
60
+ leadingIcon={<LinuxIcon className="w-5 h-5" />}
34
61
  showCopyButtons={false}
35
62
  />
36
63
  ```
37
64
 
38
- ## Props
39
-
40
- | Prop | Type | Default | Description |
41
- |------|------|---------|-------------|
42
- | `paths` | `string[]` | — | Array of paths to display |
43
- | `onCopyPath` | `(path: string) => void` | — | Callback triggered on copy button click |
44
- | `title` | `string` | — | Optional heading above the list |
45
- | `description` | `string` | — | Optional subtext below the title |
46
- | `showCopyButtons` | `boolean` | `true` | Toggle copy button visibility |
47
- | `copyIconSize` | `string` | `'w-6 h-6'` | Tailwind size classes for the copy icon |
48
- | `className` | `string` | — | Additional CSS classes for the container |
65
+ ## Source
49
66
 
50
- > **Note:** The component renders `null` when `paths` is empty or undefined. Copy buttons only render when both `showCopyButtons` is `true` **and** `onCopyPath` is provided.
67
+ [`paths-display.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/paths-display.tsx)
@@ -1,43 +1,48 @@
1
- <!-- source-hash: 8742c38ee7680d3664638dd468a8ed67 -->
2
- A client-side React component that renders a styled badge identifying the source platform of content, with platform-specific icons, colors, and sizing options.
1
+ <!-- source-hash: 85b7f197fe9ccebbccd12db007ae658a -->
2
+ A client-side React component that renders a styled badge for various Flamingo platform identifiers, combining a platform-specific icon with optional display label and color-coded styling.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`PlatformBadge`** — Main exported component that renders a rounded pill badge with an icon and optional label
7
- - **`PlatformIcon`** Internal component that resolves the correct logo/icon for a given platform ID
8
- - **`sizeClasses`** — Size variant map (`xs`, `sm`, `md`) controlling container padding, icon dimensions, and text size
9
- - **`platformColors`** — Color theme map per platform, defining background, border, and text Tailwind classes
6
+ ### `PlatformBadge` (exported)
7
+ Main component accepting a `platform` object, `size`, `showLabel`, and `className` props. Returns `null` if no platform is provided.
10
8
 
11
- ### Supported Platforms
9
+ ### `PlatformIcon` (internal)
10
+ Maps platform IDs to their corresponding logo components (`FlamingoLogo`, `OpenmspLogo`, `OpenFrameLogo`, `MiamiCyberGangLogoFaceOnly`) or falls back to a `Globe` icon from Lucide.
11
+
12
+ ### `platformColors` (internal)
13
+ Color map keyed by platform name, providing Tailwind-compatible `bg`, `border`, and `text` classes for each platform's brand color.
14
+
15
+ ### `sizeClasses` (internal)
16
+ Three-tier size configuration (`xs`, `sm`, `md`) defining container padding, icon dimensions, and text sizing.
17
+
18
+ ## Supported Platforms
12
19
 
13
20
  | Platform ID | Color |
14
21
  |---|---|
15
- | `openmsp` | Yellow `#FFC008` |
16
22
  | `flamingo` / `flamingo-teaser` | Pink `#FF006E` |
17
23
  | `openframe` | Cyan `#00D9D9` |
18
- | `tmcg` | Magenta `#F357BB` |
24
+ | `openmsp` | Amber `#FFC008` |
25
+ | `tmcg` | Pink `#F357BB` |
19
26
  | `company-hub` | Red `#f36666` |
20
- | `marketing-hub` | Magenta `#F357BB` |
21
27
  | `product-hub` | Green `#5EA62E` |
22
- | `revenue-hub` | Yellow `#FFC008` |
23
28
  | `people-hub` | Teal `#5EFAF0` |
24
- | `universal` (fallback) | Gray `#6B7280` |
29
+ | `universal` | Gray (fallback) |
25
30
 
26
31
  ## Usage Example
27
32
 
28
33
  ```typescript
29
34
  import { PlatformBadge } from './platform-badge';
30
35
 
31
- // Basic usage with label
36
+ // Basic usage
32
37
  <PlatformBadge
33
- platform={{ id: '1', name: 'flamingo', display_name: 'Flamingo' }}
38
+ platform={{ id: '1', name: 'openframe', display_name: 'OpenFrame' }}
34
39
  size="sm"
35
40
  showLabel={true}
36
41
  />
37
42
 
38
- // Icon-only, larger size
43
+ // Icon-only, large
39
44
  <PlatformBadge
40
- platform={{ id: '2', name: 'openframe', display_name: 'OpenFrame' }}
45
+ platform={{ id: '2', name: 'flamingo', display_name: 'Flamingo' }}
41
46
  size="md"
42
47
  showLabel={false}
43
48
  />
@@ -48,4 +53,8 @@ import { PlatformBadge } from './platform-badge';
48
53
  size="xs"
49
54
  className="opacity-75"
50
55
  />
51
- ```
56
+ ```
57
+
58
+ ## Source
59
+
60
+ [`platform-badge.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/platform-badge.tsx)
@@ -1,16 +1,13 @@
1
- <!-- source-hash: bd515872f4cb1c49add8d17631e037c5 -->
2
- A React panel component for displaying and editing permission policies grouped by category, supporting both view and edit modes with animated expand/collapse behavior.
1
+ <!-- source-hash: 07366ff5d32cd4e46e8c63c7d6ad677c -->
2
+ A React panel component for managing permission policies grouped by category, supporting per-policy and bulk approval level configuration with expand/collapse animations and responsive layout.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export / Internal | Type | Description |
7
- |---|---|---|
8
- | `PolicyConfigurationPanel` | Component (exported) | Root panel rendering all permission categories |
9
- | `CategorySection` | Internal component | Collapsible category with global permission dropdown |
10
- | `PolicyRow` | Internal component | Single policy entry with approval level selector |
11
- | `useAnimatedHeight` | Custom hook | Smooth height animation for expand/collapse transitions |
12
- | `approvalLevelOptions` | Constant | Available levels: `ALLOW`, `ASK_USER`, `ASK_TECHNICIAN`, `DENY` |
13
- | `getApprovalLevelLabel` | Utility fn | Resolves `ApprovalLevel` enum to display string |
6
+ - **`PolicyConfigurationPanel`** — Main exported component. Renders grouped permission categories with collapsible policy lists. Manages expand/collapse state and bulk approval levels internally.
7
+ - **`CategorySection`** — Collapsible category header with an optional bulk approval dropdown and a list of `PolicyRow` items. Uses `useCollapsible` for animated expand/collapse.
8
+ - **`PolicyRow`** Renders a single permission policy with its tool icon, name, command pattern, and an approval level selector.
9
+ - **`ApprovalLevelDropdown`** — Reusable dropdown for selecting an `ApprovalLevel` (`ALLOW`, `ASK_USER`, `ASK_TECHNICIAN`, `DENY`). Supports an optional "Clear Global Permission" option for category-level bulk selectors.
10
+ - **`approvalLevelLabels`** Display label map for each `ApprovalLevel` value.
14
11
 
15
12
  ## Usage Example
16
13
 
@@ -21,38 +18,43 @@ import { PermissionCategory, ApprovalLevel } from '../../types/permissions'
21
18
  const categories: PermissionCategory[] = [
22
19
  {
23
20
  id: 'network',
24
- name: 'Network',
25
- icon: <NetworkIcon />,
26
- configurationsCount: 3,
27
- isExpanded: false,
28
- globalPermission: 'ALLOW',
21
+ name: 'Network Tools',
29
22
  policies: [
30
23
  {
31
24
  id: 'ping',
32
- name: 'Ping Host',
25
+ name: 'Ping',
26
+ toolName: 'ping',
33
27
  commandPattern: 'ping *',
34
- toolName: 'network',
35
28
  approvalLevel: 'ALLOW',
36
29
  },
37
30
  ],
38
31
  },
39
32
  ]
40
33
 
41
- <PolicyConfigurationPanel
42
- categories={categories}
43
- editMode={true}
44
- onCategoryToggle={(categoryId) => toggleCategory(categoryId)}
45
- onGlobalPermissionChange={(categoryId, level) => setGlobal(categoryId, level)}
46
- onPolicyPermissionChange={(categoryId, policyId, level) =>
47
- updatePolicy(categoryId, policyId, level)
34
+ function SettingsPage() {
35
+ const handlePolicyChange = (
36
+ categoryId: string,
37
+ policyId: string,
38
+ level: ApprovalLevel
39
+ ) => {
40
+ console.log('Policy changed:', { categoryId, policyId, level })
48
41
  }
49
- className="my-4"
50
- />
42
+
43
+ const handleCategoryChange = (categoryId: string, level: ApprovalLevel) => {
44
+ console.log('Bulk category change:', { categoryId, level })
45
+ }
46
+
47
+ return (
48
+ <PolicyConfigurationPanel
49
+ categories={categories}
50
+ editMode={true}
51
+ onPolicyPermissionChange={handlePolicyChange}
52
+ onCategoryPermissionChange={handleCategoryChange}
53
+ />
54
+ )
55
+ }
51
56
  ```
52
57
 
53
- ## Behavior Notes
58
+ > **Note:** Bulk approval selections reset automatically when `editMode` toggles. Expand/collapse state is preserved across data refreshes since it lives inside the panel.
54
59
 
55
- - In **edit mode**, dropdowns allow selecting approval levels per policy or globally per category
56
- - In **view mode**, current levels are rendered as static text
57
- - `useAnimatedHeight` uses `scrollHeight` measurement + CSS transitions for smooth accordion animation
58
- - Category header clicks and the chevron button both toggle expansion; dropdown clicks use `stopPropagation` to prevent conflicts
60
+ **Source:** [`policy-configuration-panel.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/policy-configuration-panel.tsx)
@@ -1,47 +1,56 @@
1
- <!-- source-hash: 18cb2f4cc768f6f9efb9b720bfbd1714 -->
2
- A reusable OAuth provider sign-in button component that handles loading states, click propagation, and renders the appropriate provider icon and label.
1
+ <!-- source-hash: 64d6da94944d72c433e84a70e186394d -->
2
+ Reusable OAuth provider sign-in button component that handles loading state, click propagation, and provider-specific branding for Microsoft, Google, Slack, and GitHub authentication flows.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `ProviderButtonProps`
7
7
  | Prop | Type | Description |
8
8
  |------|------|-------------|
9
- | `provider` | `'microsoft' \| 'google' \| 'slack' \| 'github'` | OAuth provider to render |
10
- | `onClick` | `() => Promise<void> \| void` | Sign-in handler (sync or async) |
11
- | `disabled` | `boolean` | Disables the button (default: `false`) |
9
+ | `provider` | `'microsoft' \| 'google' \| 'slack' \| 'github'` | Determines icon and display label |
10
+ | `onClick` | `() => Promise<void> \| void` | Auth handler; supports async |
11
+ | `disabled` | `boolean` | Disables interaction (default: `false`) |
12
12
  | `loading` | `boolean` | External loading state override (default: `false`) |
13
13
 
14
14
  ### `PROVIDER_CONFIG`
15
- Static map linking each provider key to its display name and icon component.
15
+ Static map linking each provider key to its display name and icon component. Extend this object to add new providers.
16
16
 
17
17
  ### `ProviderButton`
18
- Main exported component. Manages an internal loading state that activates during async `onClick` execution, falling back gracefully when an external `loading` prop is passed. Stops click propagation to prevent accidental modal/backdrop dismissals.
18
+ Client component that manages an internal loading state, falling back to it only when no external `loading` prop is provided. Prevents click bubbling to avoid triggering modal backdrops or parent handlers.
19
19
 
20
20
  ## Usage Example
21
21
 
22
22
  ```typescript
23
- import { ProviderButton } from './provider-button';
24
-
25
- async function handleMicrosoftSignIn() {
26
- await signIn('microsoft');
23
+ import { ProviderButton } from '@/components/auth/provider-button';
24
+
25
+ export function LoginForm() {
26
+ const handleMicrosoftLogin = async () => {
27
+ await signIn('microsoft');
28
+ };
29
+
30
+ return (
31
+ <ProviderButton
32
+ provider="microsoft"
33
+ onClick={handleMicrosoftLogin}
34
+ />
35
+ );
27
36
  }
37
+ ```
28
38
 
29
- // Basic usage
30
- <ProviderButton provider="microsoft" onClick={handleMicrosoftSignIn} />
39
+ With external loading control:
31
40
 
32
- // With external loading control
33
- const [loading, setLoading] = useState(false);
41
+ ```typescript
42
+ const [isLoading, setIsLoading] = useState(false);
34
43
 
35
44
  <ProviderButton
36
45
  provider="google"
37
46
  onClick={async () => {
38
- setLoading(true);
47
+ setIsLoading(true);
39
48
  await signIn('google');
40
- setLoading(false);
49
+ setIsLoading(false);
41
50
  }}
42
- loading={loading}
43
- disabled={loading}
51
+ loading={isLoading}
52
+ disabled={isLoading}
44
53
  />
45
54
  ```
46
55
 
47
- > **Note:** When `loading` is provided externally, internal loading state management is skipped to avoid state conflicts.
56
+ > **Note:** When `loading` is passed externally, the component skips internal state management to avoid double-toggling.
@@ -1,29 +1,35 @@
1
- <!-- source-hash: 07ba5865678ee01e8867762d1e641327 -->
2
- A reusable React selector component that renders options as push-button cards with checkbox indicators, supporting single/multi-select, grouped sections, loading skeletons, and error states.
1
+ <!-- source-hash: 1b470f4e084b6cb0c7cd286c460838ca -->
2
+ A client-side React component that renders a list of toggleable push-button options with support for single/multi-select, section grouping, disabled states with tooltips, loading skeletons, and error handling.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `PushButtonSelector` | Component | Main selector rendered as interactive card list |
9
- | `SelectableOption` | Interface | Shape of each selectable item (id, name, icon, section, etc.) |
10
- | `SectionDefinition` | Interface | Defines a named group to bucket options under |
11
- | `PushButtonSelectorSkeleton` | Internal | Animated skeleton shown during `isLoading` |
12
- | `PushButtonSelectorError` | Internal | Error panel using ODS error tokens |
6
+ ### Exported Interfaces
13
7
 
14
- ## Key Props
8
+ | Interface | Purpose |
9
+ |---|---|
10
+ | `SelectableOption` | Defines an individual selectable item with `id`, `name`, optional `displayName`, `icon`, `color`, `disabled`, `disabledReason`, and `section` fields |
11
+ | `SectionDefinition` | Defines a labeled group for organizing options with `id`, `label`, optional `icon`, and `description` |
12
+
13
+ ### Exported Component
14
+
15
+ **`PushButtonSelector`** — Main component accepting `PushButtonSelectorProps`:
15
16
 
16
17
  | Prop | Type | Default | Description |
17
- |------|------|---------|-------------|
18
- | `options` | `SelectableOption[]` | — | All available options |
19
- | `selectedIds` | `string[]` | — | Controlled selected IDs |
20
- | `onSelectionChange` | `(ids: string[]) => void` | — | Fires on toggle |
18
+ |---|---|---|---|
19
+ | `options` | `SelectableOption[]` | — | Items to display |
20
+ | `selectedIds` | `string[]` | — | Currently selected IDs |
21
+ | `onSelectionChange` | `(ids: string[]) => void` | — | Callback on toggle |
21
22
  | `multiSelect` | `boolean` | `true` | Allow multiple selections |
22
- | `sections` | `SectionDefinition[]` | — | Groups options under labeled headers |
23
- | `selectionSummary` | `boolean` | `false` | Shows badge summary of selected items |
24
- | `optional` | `boolean` | `false` | Suppresses empty-state warning |
25
- | `isLoading` | `boolean` | `false` | Renders skeleton UI |
26
- | `error` | `string \| null` | `null` | Renders error panel |
23
+ | `sections` | `SectionDefinition[]` | — | Optional grouping definitions |
24
+ | `selectionSummary` | `boolean` | `false` | Show badge summary of selections |
25
+ | `optional` | `boolean` | `false` | Suppress empty-selection warning |
26
+ | `isLoading` | `boolean` | `false` | Show skeleton placeholders |
27
+ | `error` | `string \| null` | `null` | Show error state |
28
+
29
+ ### Internal Components
30
+
31
+ - **`PushButtonSelectorSkeleton`** — Animated placeholder cards during loading
32
+ - **`PushButtonSelectorError`** — Error banner using ODS error tokens
27
33
 
28
34
  ## Usage Example
29
35
 
@@ -31,32 +37,24 @@ A reusable React selector component that renders options as push-button cards wi
31
37
  import { PushButtonSelector, SelectableOption, SectionDefinition } from './push-button-selector';
32
38
 
33
39
  const platforms: SelectableOption[] = [
34
- { id: 'uuid-1', name: 'connectwise', displayName: 'ConnectWise', description: 'PSA platform', section: 'psa' },
35
- { id: 'uuid-2', name: 'halo', displayName: 'HaloPSA', description: 'PSA platform', section: 'psa' },
36
- { id: 'uuid-3', name: 'ninja', displayName: 'NinjaRMM', description: 'RMM platform', section: 'rmm' },
40
+ { id: 'connectwise', name: 'ConnectWise', displayName: 'ConnectWise Manage', description: 'PSA platform' },
41
+ { id: 'halo', name: 'HaloPSA', disabled: true, disabledReason: 'License required' },
37
42
  ];
38
43
 
39
44
  const sections: SectionDefinition[] = [
40
- { id: 'psa', label: 'PSA Tools' },
41
- { id: 'rmm', label: 'RMM Tools' },
45
+ { id: 'psa', label: 'PSA Platforms', description: 'Choose your ticketing system' },
42
46
  ];
43
47
 
44
- function IntegrationPicker() {
45
- const [selected, setSelected] = React.useState<string[]>([]);
46
-
47
- return (
48
- <PushButtonSelector
49
- options={platforms}
50
- selectedIds={selected}
51
- onSelectionChange={setSelected}
52
- sections={sections}
53
- title="Select Integrations"
54
- helpText="Choose the platforms to connect."
55
- selectionSummary
56
- multiSelect
57
- />
58
- );
59
- }
48
+ <PushButtonSelector
49
+ options={platforms}
50
+ selectedIds={selected}
51
+ onSelectionChange={setSelected}
52
+ multiSelect={false}
53
+ title="Select Platform"
54
+ sections={sections}
55
+ selectionSummary
56
+ helpText="Only one PSA platform can be active at a time."
57
+ />
60
58
  ```
61
59
 
62
- > **Note:** Invalid `selectedIds` (IDs not present in `options`) are silently filtered once `options` has loaded. A `console.warn` is emitted in `development` mode to aid debugging.
60
+ > **Note:** Disabled options that are already selected remain deselectable. A `disabledReason` surfaces via tooltip on hover using the shared `Tooltip` primitive.
@@ -1,58 +1,65 @@
1
- <!-- source-hash: 567153c4bee0ea823c8dcb3ad142df21 -->
2
- A React client component for managing media attachments (images, videos, screenshots, demos) on release entries, supporting file upload, drag-to-reorder, and inline editing.
1
+ <!-- source-hash: c12f9380c042cace30222c9c17600a89 -->
2
+ Manages upload, preview, reordering, and metadata editing of media items (images and videos) associated with a software release.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `ReleaseMediaItem` (interface)
7
- Represents a single media entry with the following fields:
7
+ Describes a single media entry with the following fields:
8
8
 
9
9
  | Field | Type | Description |
10
- |-------|------|-------------|
11
- | `media_type` | `'image' \| 'video' \| 'screenshot' \| 'demo'` | Category of media |
12
- | `media_url` | `string` | Public URL after upload |
10
+ |---|---|---|
11
+ | `media_type` | `'image' \| 'video' \| 'screenshot' \| 'demo'` | Category of the media |
12
+ | `media_url` | `string` | Resolved URL after upload |
13
13
  | `title` | `string?` | Optional display title |
14
14
  | `description` | `string?` | Optional description |
15
- | `display_order` | `number?` | Sort position in gallery |
16
- | `_file` | `File?` | Temporary pre-upload file reference |
15
+ | `display_order` | `number?` | Sort position in the gallery |
16
+ | `_file` | `File?` | Temporary local file before upload |
17
17
  | `_uploading` | `boolean?` | Upload in-progress flag |
18
18
 
19
19
  ### `ReleaseMediaManager` (component)
20
+ The primary exported component. Renders:
21
+ - **Upload zone** — dashed drop area with a file picker (images and videos, max 50 MB)
22
+ - **Media grid** — 2-column responsive gallery with drag-and-drop reordering
23
+ - **Per-item controls** — inline type selector (`Select`), title input, delete button, and media preview via `Image` (photos) or `Video` (MuxPlayer/HLS)
20
24
 
21
- **Props:**
25
+ ### `ReleaseMediaManagerProps`
22
26
 
23
27
  | Prop | Type | Description |
24
- |------|------|-------------|
25
- | `media` | `ReleaseMediaItem[]` | Controlled media list |
26
- | `onChange` | `(media: ReleaseMediaItem[]) => void` | Called on any list mutation |
27
- | `onUpload` | `(file, mediaType) => Promise<string>` | Handles actual file upload, returns URL |
28
- | `className` | `string?` | Optional wrapper class |
29
-
30
- **Internal behaviors:**
31
- - `handleFileSelect` — detects file MIME type, auto-assigns `media_type`, triggers `onUpload`, rolls back on failure
32
- - `removeMedia` — removes item by index
33
- - `updateMedia` — updates a single field on an existing item
34
- - `handleDragStart` / `handleDragOver` / `handleDrop` — native HTML5 drag-and-drop reordering, updates `display_order` on drop
28
+ |---|---|---|
29
+ | `media` | `ReleaseMediaItem[]` | Controlled list of media items |
30
+ | `onChange` | `(media: ReleaseMediaItem[]) => void` | Called on any mutation |
31
+ | `onUpload` | `(file, mediaType) => Promise<string>` | Async upload handler; returns the hosted URL |
32
+ | `className` | `string?` | Additional wrapper class |
35
33
 
36
34
  ## Usage Example
37
35
 
38
36
  ```typescript
39
37
  import { ReleaseMediaManager, ReleaseMediaItem } from './release-media-manager';
38
+ import { useState } from 'react';
40
39
 
41
- const [media, setMedia] = useState<ReleaseMediaItem[]>([]);
40
+ export function ReleaseForm() {
41
+ const [media, setMedia] = useState<ReleaseMediaItem[]>([]);
42
42
 
43
- async function uploadToStorage(file: File, mediaType: string): Promise<string> {
44
- const formData = new FormData();
45
- formData.append('file', file);
46
- const res = await fetch('/api/upload', { method: 'POST', body: formData });
47
- const { url } = await res.json();
48
- return url;
49
- }
43
+ const handleUpload = async (
44
+ file: File,
45
+ mediaType: 'image' | 'video' | 'screenshot' | 'demo'
46
+ ): Promise<string> => {
47
+ const formData = new FormData();
48
+ formData.append('file', file);
49
+ formData.append('type', mediaType);
50
+ const res = await fetch('/api/upload', { method: 'POST', body: formData });
51
+ const { url } = await res.json();
52
+ return url;
53
+ };
50
54
 
51
- <ReleaseMediaManager
52
- media={media}
53
- onChange={setMedia}
54
- onUpload={uploadToStorage}
55
- />
55
+ return (
56
+ <ReleaseMediaManager
57
+ media={media}
58
+ onChange={setMedia}
59
+ onUpload={handleUpload}
60
+ />
61
+ );
62
+ }
56
63
  ```
57
64
 
58
- > **Note:** The component is fully controlled — the parent owns the `media` array. Failed uploads automatically roll back to the previous state without manual intervention.
65
+ > **Source:** [`release-media-manager.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/release-media-manager.tsx)
@@ -1,42 +1,51 @@
1
- <!-- source-hash: 760f28bd91ca25a2a1341b709f1c96c4 -->
2
- A client-side navigation component that renders a list of selectable section buttons with support for vertical and wrap layouts, optional badges, icons, descriptions, and active state highlighting.
1
+ <!-- source-hash: b566b7b57ff314adad0d7bab07a8d548 -->
2
+ A client-side React component that renders a group of selectable section buttons, supporting vertical and wrap layouts with optional icons, badges, numbers, and descriptions.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### Interfaces
7
7
 
8
8
  - **`SectionItem`** — Defines a single section entry with `id`, `title`, optional `subtitle`, `description`, `number`, `leftIcon`, `badge`, `screenshots`, and `disabled` flag.
9
- - **`SectionSelectorProps`** — Configuration for the selector including `sections`, `activeSection`, `onSectionChange` callback, `layout`, `buttonWidth`, `minHeight`, and display toggles.
9
+ - **`SectionSelectorProps`** — Configuration for the `SectionSelector` component, including layout, width, active state, and callback.
10
10
 
11
11
  ### Components
12
12
 
13
- - **`SectionButton`** *(internal)* — Renders an individual section button. Supports two layout modes:
14
- - `vertical` Displays number prefix, left icon, title, badge, and description stacked.
15
- - `wrap` — Displays left icon, title, badge, and subtitle in a compact horizontal card.
16
- - **`SectionSelector`** *(exported)* — Orchestrates the full selector by mapping `sections` to `SectionButton` instances inside a flex container.
13
+ - **`SectionButton`** *(internal)* — Renders an individual section button using the `Button` and `StatusBadge` primitives. Adapts its internal layout based on the `layout` prop (`vertical` vs `wrap`).
14
+ - **`SectionSelector`** *(exported)* — Orchestrates a list of `SectionButton` components. Manages container layout, button width classes, and delegates click handling via `onSectionChange`.
15
+
16
+ ## Props
17
+
18
+ | Prop | Type | Default | Description |
19
+ |---|---|---|---|
20
+ | `sections` | `SectionItem[]` | — | List of section items to render |
21
+ | `activeSection` | `string` | — | ID of the currently active section |
22
+ | `onSectionChange` | `(id: string) => void` | — | Callback fired on section click |
23
+ | `layout` | `'vertical' \| 'wrap'` | `'vertical'` | Button arrangement direction |
24
+ | `buttonWidth` | `'auto' \| 'full' \| 'responsive'` | `'auto'` | Width behavior of each button |
25
+ | `showDescription` | `boolean` | `true` | Toggle description text visibility |
17
26
 
18
27
  ## Usage Example
19
28
 
20
29
  ```typescript
21
- import SectionSelector, { SectionItem } from './section-selector'
30
+ import { SectionSelector, SectionItem } from './section-selector'
22
31
 
23
32
  const sections: SectionItem[] = [
24
33
  {
25
34
  id: 'overview',
26
35
  title: 'Overview',
27
- subtitle: 'General information',
28
- badge: { text: 'New', colorScheme: 'green' },
36
+ description: 'High-level summary',
37
+ number: '01',
38
+ badge: { text: 'New', colorScheme: 'cyan' },
29
39
  },
30
40
  {
31
- id: 'settings',
32
- title: 'Settings',
33
- description: 'Configure your preferences',
34
- number: '02',
41
+ id: 'details',
42
+ title: 'Details',
43
+ subtitle: 'In-depth configuration',
35
44
  disabled: false,
36
45
  },
37
46
  ]
38
47
 
39
- export default function Page() {
48
+ export function MyPage() {
40
49
  const [active, setActive] = React.useState('overview')
41
50
 
42
51
  return (
@@ -50,4 +59,6 @@ export default function Page() {
50
59
  />
51
60
  )
52
61
  }
53
- ```
62
+ ```
63
+
64
+ **Source:** [`section-selector.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/section-selector.tsx)