@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,49 +1,53 @@
1
- <!-- source-hash: 5f8fd0a180217b9085f7ea5f038d319a -->
2
- Renders a styled badge for ticket statuses, normalizing any known status string (backend, chat, dialog-layer) into a canonical `TicketStatus` value with the correct color variant and optional icon.
1
+ <!-- source-hash: 4625c3e196ab2432605ea8116cf40c08 -->
2
+ Renders a styled ticket status badge that maps any status string variant (backend enum, chat lowercase, dialog alias) to a canonical display with correct color, label, and icon.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### Types & Exports
7
- | Export | Description |
8
- |--------|-------------|
9
- | `TicketStatus` | Canonical union type: `'ACTIVE' \| 'TECH_REQUIRED' \| 'ON_HOLD' \| 'RESOLVED' \| 'ARCHIVED'` |
10
- | `TicketStatusTagProps` | Props interface for the main component |
7
+ - **`TicketStatus`** — Union type of canonical status values: `ACTIVE | AI_ASSISTANCE | TECH_REQUIRED | ON_HOLD | RESOLVED | ARCHIVED`
8
+ - **`TicketStatusKind`** — Backend kind enum including `CUSTOM`
9
+ - **`TicketStatusInput`** Shape for raw ticket status fields from the backend (status, statusKind, statusName, statusColor)
10
+ - **`TicketStatusTagProps`** Full props interface for the tag component
11
11
 
12
12
  ### Utility Functions
13
- | Function | Description |
14
- |----------|-------------|
15
- | `resolveTicketStatus(status)` | Maps any known alias to a canonical `TicketStatus`; returns `null` for unknowns |
16
- | `getTicketStatusConfig(status)` | Returns `{ label, variant, icon }` for a given status string |
17
- | `getTicketStatusTag(status)` | Drop-in utility returning label/variant/icon for use outside the component |
13
+ - **`resolveTicketStatus(status)`** Normalizes any alias (e.g. `ACTION_REQUIRED`, `open`, `active`) to a canonical `TicketStatus` or `null`
14
+ - **`getTicketStatusConfig(status)`** — Returns label, variant, and optional icon for any status string
15
+ - **`getTicketStatusTag(status)`** Drop-in replacement for legacy `getTicketStatusTag` utility
16
+ - **`kindToCanonicalStatus(kind)`** Maps a backend kind to its canonical status
17
+ - **`usesCanonicalStatusStyle(kind)`** Returns `true` for kinds that use system styling over backend color
18
+ - **`resolveStatusTagProps(input)`** — Resolves a `TicketStatusInput` into `TicketStatusTag` props
18
19
 
19
20
  ### Component
20
- - **`TicketStatusTag`** — Wraps the base `Tag` component with resolved status config. Supports label override, hex `color` override with automatic contrast text, `showIcon` toggle, and additional `className`.
21
+ - **`TicketStatusTag`** — Renders a `Tag` with optional icon, custom hex color with derived hover/active states, and an optional inline dropdown (via `ActionsMenuDropdown`) for in-place status changes
21
22
 
22
23
  ## Usage Example
23
24
 
24
25
  ```typescript
25
- // Basic usage
26
- <TicketStatusTag status="ACTIVE" />
27
-
28
- // With alias from dialog layer
29
- <TicketStatusTag status="ACTION_REQUIRED" />
30
-
31
- // HubSpot pipeline stage — custom label, canonical color
32
- <TicketStatusTag status="OPEN" label="Waiting on Contact" />
33
-
34
- // Hex color override (e.g. from a custom pipeline stage)
35
- <TicketStatusTag status="ON_HOLD" color="#7C3AED" />
36
-
37
- // Utility usage outside JSX
38
- const { label, variant } = getTicketStatusTag('resolved')
39
- // → { label: 'Resolved', variant: 'outline', icon: <CheckCircleIcon /> }
26
+ // Basic display
27
+ <TicketStatusTag status="RESOLVED" />
28
+
29
+ // With custom backend color and label override
30
+ <TicketStatusTag
31
+ status="TECH_REQUIRED"
32
+ label="Waiting on Client"
33
+ color="#F59E0B"
34
+ />
35
+
36
+ // Inline status changer with dropdown
37
+ <TicketStatusTag
38
+ status={ticket.status}
39
+ options={statusOptions}
40
+ onSelect={(id) => updateStatus(ticket.id, id)}
41
+ isPending={isUpdating}
42
+ />
43
+
44
+ // Resolve from raw backend fields
45
+ const props = resolveStatusTagProps({
46
+ statusKind: 'CUSTOM',
47
+ statusName: 'Escalated',
48
+ statusColor: '#DC2626',
49
+ })
50
+ <TicketStatusTag {...props} />
40
51
  ```
41
52
 
42
- ### Status → Variant Map
43
- | Status | Variant | Icon |
44
- |--------|---------|------|
45
- | `ACTIVE` | `success` | — |
46
- | `TECH_REQUIRED` | `warning` | — |
47
- | `ON_HOLD` | `error` | — |
48
- | `RESOLVED` | `outline` | ✅ CheckCircle |
49
- | `ARCHIVED` | `grey` | — |
53
+ **Source:** [`ticket-status-tag.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ticket-status-tag.tsx)
@@ -1,20 +1,22 @@
1
- <!-- source-hash: 1847d3dd263a7c340149cc9157774ef5 -->
1
+ <!-- source-hash: 698030c9d57a6d286851413d58aa0855 -->
2
2
  A client-side toast notification system built on top of [Sonner](https://sonner.emilkowal.ski/), providing styled toast components with variant support, progress indicators, and a specialized command approval flow.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  | Export | Type | Description |
7
7
  |--------|------|-------------|
8
- | `Toaster` | Component | Root provider wrapping Sonner's `Toaster`; injects the `toast-progress` keyframe animation |
8
+ | `Toaster` | Component | Root provider component; wraps `SonnerToaster` with unstyled defaults and injects the `toast-progress` keyframe animation |
9
9
  | `ToastCard` | Component | Standard toast card with title, description, colored dot indicator, dismiss button, and animated progress bar |
10
- | `CommandApprovalToast` | Component | Expandable toast with Approve/Reject actions for AI command authorization flows |
11
- | `showToast` | Function | Imperative helper to fire a `ToastCard` toast |
10
+ | `CommandApprovalToast` | Component | Expandable toast for AI/tool command approvals with approve/reject actions and optional `ToolIcon` |
11
+ | `showToast` | Function | Imperative helper to fire a `ToastCard`; accepts a plain string or `ShowToastOptions` |
12
12
  | `showCommandApprovalToast` | Function | Imperative helper to fire a `CommandApprovalToast` |
13
13
  | `ToastVariant` | Type | `'default' \| 'success' \| 'warning' \| 'error' \| 'info'` |
14
+ | `dotColorByVariant` | Constant | Maps each variant to an ODS background color class for the status dot |
15
+ | `progressColorByVariant` | Constant | Maps each variant to an ODS background color class for the progress bar |
14
16
 
15
17
  ## Usage Example
16
18
 
17
- **Mount the provider once (root layout):**
19
+ **Mount the provider once at the app root:**
18
20
 
19
21
  ```typescript
20
22
  import { Toaster } from '@/components/toaster'
@@ -34,24 +36,28 @@ export default function RootLayout({ children }) {
34
36
  ```typescript
35
37
  import { showToast } from '@/components/toaster'
36
38
 
37
- showToast({ title: 'Saved', description: 'Changes saved successfully.', variant: 'success' })
39
+ // Simple string shorthand
40
+ showToast('Settings saved')
38
41
 
39
- // Shorthand
40
- showToast('Operation complete')
42
+ // With variant and description
43
+ showToast({
44
+ title: 'Connection failed',
45
+ description: 'Could not reach the server.',
46
+ variant: 'error',
47
+ duration: 6000,
48
+ })
41
49
  ```
42
50
 
43
- **Request command approval (Mingo AI flow):**
51
+ **Request command approval from the AI agent flow:**
44
52
 
45
53
  ```typescript
46
54
  import { showCommandApprovalToast } from '@/components/toaster'
47
55
 
48
56
  showCommandApprovalToast({
49
- command: 'apt-get upgrade -y',
57
+ command: 'rm -rf /var/log/old-logs',
50
58
  toolType: 'terminal',
51
- approvalDescription: 'This will upgrade all system packages.',
59
+ approvalDescription: 'This will permanently delete log files.',
52
60
  onApprove: () => executeCommand(),
53
- onReject: () => cancelJob(),
61
+ onReject: () => console.log('Rejected'),
54
62
  })
55
- ```
56
-
57
- > `CommandApprovalToast` defaults to `duration: Infinity` so it persists until the technician explicitly approves or rejects the action.
63
+ ```
@@ -1,46 +1,47 @@
1
- <!-- source-hash: 1c76fc16642481ec29f5f1f42b31eb23 -->
2
- A customizable toggle button component built on Radix UI primitives with variant-based styling and accessibility features.
1
+ <!-- source-hash: 4d4ada9c1e880bd6f3eb0ca0077d3b94 -->
2
+ A client-side toggle button component built on Radix UI's `TogglePrimitive`, styled with `class-variance-authority` and OpenFrame design system tokens.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`Toggle`** - Main toggle component with forwarded refs and customizable variants
7
- - **`toggleVariants`** - CVA-based style variants for different visual states and sizes
8
- - **Variant Types:**
9
- - `variant`: `"default"` | `"outline"`
10
- - `size`: `"default"` | `"sm"` | `"lg"`
6
+ - **`toggleVariants`** CVA variant config defining styles for `variant` (`default`, `outline`) and `size` (`default`, `sm`, `lg`) combinations, using ODS design tokens (`ods-accent`, `ods-border`, `ods-focus`, etc.)
7
+ - **`Toggle`** A forwarded-ref React component wrapping `TogglePrimitive.Root` with variant-aware class merging via `cn`
11
8
 
12
9
  ## Usage Example
13
10
 
14
11
  ```typescript
15
- import { Toggle } from "./toggle"
16
-
17
- function ToggleExample() {
18
- const [pressed, setPressed] = React.useState(false)
19
-
20
- return (
21
- <div className="flex gap-4">
22
- {/* Basic toggle */}
23
- <Toggle pressed={pressed} onPressedChange={setPressed}>
24
- Toggle me
25
- </Toggle>
26
-
27
- {/* Outline variant, small size */}
28
- <Toggle variant="outline" size="sm">
29
- Small outline
30
- </Toggle>
31
-
32
- {/* Large toggle with custom styling */}
33
- <Toggle
34
- size="lg"
35
- className="bg-blue-500 text-white"
36
- pressed={pressed}
37
- onPressedChange={setPressed}
38
- >
39
- Custom toggle
40
- </Toggle>
41
- </div>
42
- )
43
- }
12
+ import { Toggle } from "@/components/ui/toggle"
13
+ import { Bold } from "lucide-react"
14
+
15
+ // Default toggle
16
+ <Toggle aria-label="Toggle bold">
17
+ <Bold className="h-4 w-4" />
18
+ </Toggle>
19
+
20
+ // Outline variant, small size
21
+ <Toggle variant="outline" size="sm" aria-label="Toggle italic">
22
+ Italic
23
+ </Toggle>
24
+
25
+ // Controlled toggle with pressed state
26
+ <Toggle
27
+ pressed={isActive}
28
+ onPressedChange={setIsActive}
29
+ variant="outline"
30
+ >
31
+ Active
32
+ </Toggle>
44
33
  ```
45
34
 
46
- The component uses ODS (Open Design System) color tokens for consistent theming and includes hover states, focus management, and proper ARIA attributes through Radix UI.
35
+ ## Variants
36
+
37
+ | Prop | Options | Default |
38
+ |---|---|---|
39
+ | `variant` | `default`, `outline` | `default` |
40
+ | `size` | `default`, `sm`, `lg` | `default` |
41
+
42
+ ## Notes
43
+
44
+ - Marked `"use client"` — compatible with Next.js App Router
45
+ - Inherits all Radix `TogglePrimitive.Root` props (including `pressed`, `onPressedChange`, `defaultPressed`)
46
+ - Active state styling (`data-[state=on]`) uses `ods-accent` background automatically
47
+ - Source: [`components/ui/toggle.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/components/ui/toggle.tsx)
@@ -1,14 +1,14 @@
1
- <!-- source-hash: 7a9da2d80c73e939b410ce27e719aa66 -->
2
- Accessible tooltip component built on Radix UI primitives, providing animated, portal-rendered tooltips with consistent ODS (OpenFrame Design System) styling.
1
+ <!-- source-hash: ad1dda63b330dd9dfa95d0d9610631e5 -->
2
+ Accessible tooltip component built on Radix UI primitives, with portal-aware rendering that inherits the active stacking context (e.g. inside drawers) and falls back to `document.body`.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `TooltipProvider` | Component | Context provider required at the app/layout level to manage tooltip state |
9
- | `Tooltip` | Component | Root wrapper controlling open/close behavior |
10
- | `TooltipTrigger` | Component | Element that activates the tooltip on hover/focus |
11
- | `TooltipContent` | Component | Styled content panel rendered in a portal with enter/exit animations |
7
+ |---|---|---|
8
+ | `TooltipProvider` | Component | Radix `Provider` wrapper; manages tooltip open/close delays globally |
9
+ | `Tooltip` | Component | Radix `Root`; controls open state for a single tooltip |
10
+ | `TooltipTrigger` | Component | Radix `Trigger`; wraps the element that activates the tooltip |
11
+ | `TooltipContent` | Component | Styled content panel; portals into the active container via `usePortalContainer` |
12
12
 
13
13
  ## Usage Example
14
14
 
@@ -20,15 +20,15 @@ import {
20
20
  TooltipTrigger,
21
21
  } from "@/components/ui/tooltip"
22
22
 
23
- export function ActionButton() {
23
+ export function InfoButton() {
24
24
  return (
25
25
  <TooltipProvider>
26
26
  <Tooltip>
27
27
  <TooltipTrigger asChild>
28
- <button>Hover me</button>
28
+ <button aria-label="More info">ℹ️</button>
29
29
  </TooltipTrigger>
30
30
  <TooltipContent side="top">
31
- <p>Helpful context here</p>
31
+ This action cannot be undone.
32
32
  </TooltipContent>
33
33
  </Tooltip>
34
34
  </TooltipProvider>
@@ -38,6 +38,9 @@ export function ActionButton() {
38
38
 
39
39
  ## Notes
40
40
 
41
- - `TooltipContent` defaults to `sideOffset={4}` and supports all four sides (`top`, `bottom`, `left`, `right`) with direction-aware slide-in animations via Tailwind data attributes.
42
- - Content is injected via a **portal**, ensuring correct stacking context (`z-[1400]`) above modals and overlays.
43
- - `TooltipProvider` should be placed high in the component tree (e.g., root layout) to avoid nesting multiple providers unnecessarily.
41
+ - **Portal targeting** `usePortalContainer` pipes the tooltip into a drawer or sheet's DOM node when one is active, preventing z-index clipping. Falls back to `document.body` when no container context is provided.
42
+ - **Height constraint** — `max-h` is bound to `--radix-popper-available-height`, so oversized content scrolls rather than overflows the viewport.
43
+ - **Animations** Entry/exit transitions are driven by Radix `data-state` and `data-side` attributes via Tailwind `animate-in`/`animate-out` utilities.
44
+ - **`sideOffset`** — Defaults to `4px`; can be overridden per instance via props.
45
+
46
+ **Source:** [`tooltip.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/tooltip.tsx)
@@ -1,13 +1,15 @@
1
- <!-- source-hash: de008cac6e8735331504b8c3add5fdc8 -->
2
- Shared Tailwind class constants for button surface colors, outline borders, and split-divider colors — consumed by both `Button` and `SplitButton` components as a single source of truth.
1
+ <!-- source-hash: 93b65bad78f61892d6bffdfdb828ce09 -->
2
+ Defines shared Tailwind CSS style atoms consumed by `Button` and `SplitButton` components, establishing a single source of truth for surface colors, border styles, and split-divider colors across all button variants.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`buttonSurfaceClasses`** — Object map of Tailwind classes per visual variant (`accent`, `outline`, `transparent`, `destructive`, `warning`), covering base, hover, active, `disabled:`, and `aria-disabled:` states.
7
- - **`outlineBorderClasses`** — Shared border string applied to `outline` variant buttons across all states.
8
- - **`splitDividerColorClasses`** — Per-variant border color for the vertical seam dividing main and icon halves in split-button layouts.
6
+ - **`buttonSurfaceClasses`** — Record mapping each variant (`accent`, `outline`, `transparent`, `destructive`, `warning`) to Tailwind utility strings covering background, text, hover, active, and both `disabled:` / `aria-disabled:` states.
7
+ - **`outlineBorderClasses`** — Shared border string applied exclusively to the `outline` variant across all interactive states.
8
+ - **`splitDividerColorClasses`** — Record mapping each variant to its border color for the vertical seam separating the main and icon halves in split-button layouts.
9
9
  - **`ButtonSurfaceVariant`** — Derived union type (`"accent" | "outline" | "transparent" | "destructive" | "warning"`) inferred from `buttonSurfaceClasses` keys.
10
10
 
11
+ > **`disabled:` vs `aria-disabled:`** — Both states are always paired. `disabled:` targets native `<button disabled>` elements; `aria-disabled:` handles `<a aria-disabled="true">` anchors, which do not support the CSS `:disabled` pseudo-class.
12
+
11
13
  ## Usage Example
12
14
 
13
15
  ```typescript
@@ -18,18 +20,15 @@ import {
18
20
  type ButtonSurfaceVariant,
19
21
  } from "./button-styles"
20
22
 
21
- const variant: ButtonSurfaceVariant = "accent"
22
-
23
- // Apply surface classes to a button element
24
- const surfaceClass = buttonSurfaceClasses[variant]
25
- // → "bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover ..."
26
-
27
- // Combine with border classes for the outline variant
28
- const outlineButtonClass = `${buttonSurfaceClasses.outline} ${outlineBorderClasses}`
23
+ function getButtonClasses(variant: ButtonSurfaceVariant): string {
24
+ const surface = buttonSurfaceClasses[variant]
25
+ const border = variant === "outline" ? ` ${outlineBorderClasses}` : ""
26
+ return `${surface}${border}`
27
+ }
29
28
 
30
- // Resolve divider color for a SplitButton
31
- const dividerClass = splitDividerColorClasses[variant]
32
- // → "border-ods-accent-active"
33
- ```
29
+ // "accent" bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover
30
+ getButtonClasses("accent")
34
31
 
35
- > **Note:** Both `disabled:` and `aria-disabled:` states are included in every variant because `<a>` elements don't support the native `:disabled` pseudo-class — use `aria-disabled` on anchor-based buttons.
32
+ // Split-button divider color for "destructive"
33
+ const divider = splitDividerColorClasses["destructive"] // "border-ods-error-active"
34
+ ```
@@ -1,53 +1,46 @@
1
- <!-- source-hash: e6cbc38937ee7e5569d78f2d7f50de6f -->
2
- A polymorphic, variant-aware button component built on `class-variance-authority` and Radix UI's `Slot`, supporting standard buttons, link navigation, split-icon layouts, and loading states.
1
+ <!-- source-hash: d5a003b7cf74c407be223ae980cad122 -->
2
+ Flexible, multi-variant button component supporting standard buttons, links, split-icon layouts, and loading states via a unified `Button` interface.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`Button`** — Primary export; a `forwardRef` component that renders as `<button>`, `<Link>`, or a custom element (`asChild`).
7
- - **`buttonVariants`** — CVA config for the standard single-content layout; drives `variant`, `size`, `fullWidth`, and `noPaddingX` props.
8
- - **`splitShellVariants` / `splitSlotVariants`** — CVA configs for the split layout (triggered by `splitIcon`), where a vertical divider separates content from a trailing icon area.
9
- - **`Spinner`** — Internal animated SVG displayed during the `loading` state; absolutely positioned to avoid layout shift.
10
- - **`ButtonProps`** — Full interface including `href`, `linkProps`, `leftIcon`, `rightIcon`, `splitIcon`, `loading`, and deprecated `size="small-legacy"`.
6
+ - **`buttonVariants`** — CVA variant map defining styles for `variant` (`accent`, `outline`, `transparent`, `destructive`, `warning`), `size` (`default`, `small`, `small-legacy`, `compact`, `icon`, `icon-sm`), `fullWidth`, and `noPaddingX`.
7
+ - **`splitShellVariants` / `splitSlotVariants`** — CVA helpers for the split-icon layout, where a vertical divider separates main content from a trailing icon area within a single click target.
8
+ - **`Spinner`** — Internal SVG spinner rendered absolutely during `loading` state, preserving button dimensions.
9
+ - **`Button`** — Primary export. A `forwardRef` component that auto-selects rendering strategy: `<Slot>` (`asChild`), `<Link>` (`href` / `linkProps`), split layout (`splitIcon`), or a plain `<button>`.
11
10
 
12
- ## Usage Example
11
+ ## Props
13
12
 
14
- ```typescript
15
- // Standard accent button
16
- <Button variant="accent" size="default" onClick={handleClick}>
17
- Save
18
- </Button>
13
+ | Prop | Type | Notes |
14
+ |---|---|---|
15
+ | `variant` | `accent` \| `outline` \| `transparent` \| `destructive` \| `warning` | Defaults to `accent` |
16
+ | `size` | `default` \| `small` \| `compact` \| `icon` \| `icon-sm` | `small-legacy` deprecated |
17
+ | `href` / `linkProps` | `string` / object | Renders as `<Link>`; `linkProps` wins over `href` |
18
+ | `splitIcon` | `ReactNode` | Triggers split layout (default/small sizes only) |
19
+ | `loading` | `boolean` | Hides content, shows spinner; implies `disabled` |
20
+ | `asChild` | `boolean` | Delegates rendering to child via Radix `Slot` |
19
21
 
20
- // Link button with new-tab navigation
21
- <Button href="https://flamingo.run" openInNewTab>
22
- Learn More
23
- </Button>
22
+ ## Usage Example
24
23
 
25
- // Loading state (preserves button width)
26
- <Button loading disabled>
27
- Submitting...
24
+ ```typescript
25
+ // Standard accent button with loading state
26
+ <Button variant="accent" loading={isSubmitting} onClick={handleSubmit}>
27
+ Save Changes
28
28
  </Button>
29
29
 
30
- // Split layout with trailing icon
31
- <Button splitIcon={<ChevronDownIcon />} variant="outline">
32
- Actions
30
+ // Link button with split icon
31
+ <Button href="/dashboard" splitIcon={<ChevronDownIcon />} variant="outline">
32
+ Dashboard
33
33
  </Button>
34
34
 
35
- // Pre-resolved nav link (from useNavLink)
36
- <Button linkProps={{ href: "/dashboard", target: "_blank", rel: "noopener noreferrer" }}>
37
- Dashboard
35
+ // Icon-only ghost button
36
+ <Button variant="transparent" size="icon-sm" aria-label="Share">
37
+ <ShareIcon />
38
38
  </Button>
39
39
 
40
- // Render as child (asChild pattern)
41
- <Button asChild variant="destructive">
42
- <a href="/delete">Delete Account</a>
40
+ // Render as child (asChild)
41
+ <Button asChild variant="outline">
42
+ <a href="https://openframe.ai">Learn More</a>
43
43
  </Button>
44
44
  ```
45
45
 
46
- ### Variants
47
-
48
- | Prop | Options |
49
- |---|---|
50
- | `variant` | `accent` · `outline` · `transparent` · `destructive` · `warning` |
51
- | `size` | `default` · `small` · `icon` · `small-legacy` *(deprecated)* |
52
- | `fullWidth` | `true` / `false` |
53
- | `noPaddingX` | `true` / `false` |
46
+ **Source:** [`button.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/button.tsx)
@@ -1,48 +1,71 @@
1
- <!-- source-hash: ae09312a4100bb1a98fd84f799794547 -->
2
- A compound button component with two independently interactive halves — a main action area and a trailing icon action area — separated by a 1px variant-colored divider seam.
1
+ <!-- source-hash: 35b1020cbe4e7f93380a44a0312c0736 -->
2
+ A dual-interactive button component that renders two independent clickable halves — a main action half and an icon half — separated by a 1px variant-colored divider seam.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`SplitButton`** — Primary exported component (`React.forwardRef<HTMLDivElement, SplitButtonProps>`). Renders a `role="group"` div containing two `Half` instances sharing the same variant and size.
7
- - **`Half`** — Internal helper that renders either a `<button>` or a Next.js `<Link>` depending on whether an `href` is provided, applying `splitHalfVariants` classes.
8
- - **`splitHalfVariants`** — `cva`-powered class builder with `variant` (`accent` | `outline` | `transparent` | `destructive` | `warning`), `size` (`default` | `small`), and `side` (`main` | `icon`) axes. Compound variants handle rounded corners, divider borders, and icon-half width overrides.
9
- - **`SplitButtonIconAction`** — Interface describing the icon half: requires `icon` and `aria-label`; optionally accepts `onClick`, `href`, `openInNewTab`, `prefetch`, and `disabled`.
10
- - **`SplitButtonProps`** — Full prop surface for `SplitButton`, including `fullWidth`, `mainDisabled` (disables only the main half), `groupAriaLabel`, and the required `iconAction`.
6
+ ### `SplitButton` (default export)
7
+
8
+ A `React.forwardRef` component wrapping both halves in a `role="group"` div. Each half independently supports button or link (`<a>`) rendering.
9
+
10
+ ### `Half` (internal)
11
+
12
+ Renders either a Next.js `<Link>` or a `<button>` depending on whether an `href` is provided. Applies `splitHalfVariants` CVA classes for consistent styling.
13
+
14
+ ### `splitHalfVariants`
15
+
16
+ CVA configuration controlling appearance via:
17
+ - **`variant`**: `accent` | `outline` | `transparent` | `destructive` | `warning`
18
+ - **`size`**: `default` | `small`
19
+ - **`side`**: `main` | `icon` (controls rounding and divider border)
20
+ - **`soloOnMobile`**: hides the icon half on small screens when `iconAction.openInNewTab` is `true`
21
+
22
+ ## Key Props
23
+
24
+ | Prop | Type | Description |
25
+ |------|------|-------------|
26
+ | `iconAction` | `SplitButtonIconAction` | Required. Icon half config (icon, aria-label, href/onClick) |
27
+ | `variant` | `SplitButtonVariant` | Visual style; defaults to `"accent"` |
28
+ | `disabled` | `boolean` | Disables both halves |
29
+ | `mainDisabled` | `boolean` | Disables only the main half |
30
+ | `fullWidth` | `boolean` | Stretches the main half; icon half stays fixed-width |
31
+ | `openInNewTab` | `boolean` | Opens main link in new tab; also triggers `soloOnMobile` |
11
32
 
12
33
  ## Usage Example
13
34
 
14
35
  ```typescript
15
36
  import { SplitButton } from "./split-button"
16
- import { ChevronDownIcon, PlusIcon } from "lucide-react"
37
+ import { ChevronDownIcon, ExternalLinkIcon } from "lucide-react"
17
38
 
18
- // Accent split button: main action navigates, icon half opens a dropdown
39
+ // Button + icon-action as two independent targets
19
40
  <SplitButton
20
41
  variant="accent"
21
42
  size="default"
22
- href="/tickets/new"
23
- leftIcon={<PlusIcon />}
24
- groupAriaLabel="Create ticket actions"
43
+ onClick={() => handleSave()}
25
44
  iconAction={{
26
45
  icon: <ChevronDownIcon />,
27
- "aria-label": "More create options",
28
- onClick: () => setDropdownOpen(true),
46
+ "aria-label": "More save options",
47
+ onClick: () => openDropdown(),
29
48
  }}
30
49
  >
31
- New Ticket
50
+ Save
32
51
  </SplitButton>
33
52
 
34
- // Destructive split with main disabled independently
53
+ // Link main half + new-tab icon half (icon hides on mobile)
35
54
  <SplitButton
36
- variant="destructive"
37
- mainDisabled
55
+ variant="outline"
56
+ href="/dashboard"
38
57
  iconAction={{
39
- icon: <ChevronDownIcon />,
40
- "aria-label": "Delete options",
41
- onClick: handleIconClick,
58
+ icon: <ExternalLinkIcon />,
59
+ "aria-label": "Open in new tab",
60
+ href: "/dashboard",
61
+ openInNewTab: true,
42
62
  }}
63
+ groupAriaLabel="Dashboard navigation"
43
64
  >
44
- Delete
65
+ Dashboard
45
66
  </SplitButton>
46
67
  ```
47
68
 
48
- > **Accessibility note:** The icon half has no visible text, so `iconAction["aria-label"]` is required. Use `groupAriaLabel` to label the wrapping `role="group"` when both halves share a semantic context.
69
+ > **Note:** For a single-target button with a decorative trailing icon, use `<Button splitIcon>` instead. `SplitButton` is specifically for two independently interactive halves.
70
+
71
+ **Source:** [`split-button.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/split-button.tsx)
@@ -14,6 +14,19 @@ export const buttonSurfaceClasses = {
14
14
  "bg-ods-error text-ods-text-on-accent hover:bg-ods-error-hover active:bg-ods-error-active disabled:bg-ods-disabled aria-disabled:bg-ods-disabled",
15
15
  warning:
16
16
  "bg-ods-warning text-ods-text-on-accent hover:bg-ods-warning-hover active:bg-ods-warning-active disabled:bg-ods-disabled aria-disabled:bg-ods-disabled",
17
+ // A self-contained glyph (play badge, unmute glyph) that already carries its
18
+ // own scrim: no button surface at all, in any state. Distinct from
19
+ // `transparent`, whose hover/active fills would paint a rectangle behind the
20
+ // glyph — which is why call sites were undoing them with
21
+ // `hover:bg-transparent active:bg-transparent`.
22
+ glyph:
23
+ "bg-transparent text-ods-text-primary hover:bg-transparent active:bg-transparent disabled:bg-transparent disabled:text-ods-text-disabled aria-disabled:bg-transparent aria-disabled:text-ods-text-disabled",
24
+ // Chrome that sits ON media (video cards, image lightboxes): a scrim disc so
25
+ // the glyph stays legible over an arbitrary frame. Promoted to a variant
26
+ // because the walkthrough card, its theater and the bite cards were each
27
+ // stacking the same classes at the call site.
28
+ overlay:
29
+ "rounded-full bg-ods-overlay text-ods-text-primary backdrop-blur-sm hover:text-ods-accent active:text-ods-accent-active disabled:text-ods-text-disabled aria-disabled:text-ods-text-disabled",
17
30
  } as const
18
31
 
19
32
  export const outlineBorderClasses =
@@ -26,6 +26,8 @@ const buttonVariants = cva(
26
26
  transparent: buttonSurfaceClasses.transparent,
27
27
  destructive: buttonSurfaceClasses.destructive,
28
28
  warning: buttonSurfaceClasses.warning,
29
+ glyph: buttonSurfaceClasses.glyph,
30
+ overlay: buttonSurfaceClasses.overlay,
29
31
  },
30
32
  size: {
31
33
  default: "py-[var(--spacing-system-sf)] px-[var(--spacing-system-m)] text-h3 md:h-12 h-10",
@@ -48,6 +50,9 @@ const buttonVariants = cva(
48
50
  // metadata rather than CTAs — author-page social rows, share rows.
49
51
  // Pair with variant="transparent" for the ghost treatment.
50
52
  "icon-sm": "p-[var(--spacing-system-xxs)] h-8 w-8 [&_svg]:h-4 [&_svg]:w-4",
53
+ // Bare 56px media glyph (play / unmute over video). A size variant so
54
+ // hosts stop re-implementing a <button> to escape the 20px svg cap.
55
+ "icon-glyph": "p-0 h-14 w-14 [&_svg]:h-14 [&_svg]:w-14",
51
56
  },
52
57
  fullWidth: {
53
58
  true: "w-full",