@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
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: 515c6325e9385034801b28180faa7bce -->
2
+ A fully-controlled, presentational React form component used on Sign Up and Accept Invitation screens to collect account details (name + password), with optional SSO provider shortcuts.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `CompleteAccountForm` | React component | Main form component — renders SSO buttons, name/password fields, and action buttons |
9
+ | `CompleteAccountFormProps` | Interface | Full prop contract for the form, including field values, change handlers, labels, and error state |
10
+
11
+ **Internal behaviours:**
12
+ - **Deferred error display** — `useDeferredError` delays validation messages until blur or after a typing pause, preventing premature error flashes
13
+ - **Enter-key submission** — `handleKeyDown` triggers `onSubmit` on Enter across all fields when not disabled/loading
14
+ - **SSO section** — rendered conditionally; shows `SsoProviderButtons` + a divider only when `ssoProviders` is non-empty
15
+ - **Optional back action** — `onBack` renders a transparent "Back" button; omitting it inserts a spacer to keep the submit button right-aligned per design
16
+
17
+ ## Usage Example
18
+
19
+ ```typescript
20
+ import { CompleteAccountForm } from './complete-account-form'
21
+
22
+ function SignUpPage() {
23
+ const [fields, setFields] = useState({
24
+ firstName: '', lastName: '', password: '', confirmPassword: ''
25
+ })
26
+
27
+ return (
28
+ <CompleteAccountForm
29
+ {...fields}
30
+ onFirstNameChange={(v) => setFields(f => ({ ...f, firstName: v }))}
31
+ onLastNameChange={(v) => setFields(f => ({ ...f, lastName: v }))}
32
+ onPasswordChange={(v) => setFields(f => ({ ...f, password: v }))}
33
+ onConfirmPasswordChange={(v) => setFields(f => ({ ...f, confirmPassword: v }))}
34
+ onSubmit={handleSubmit}
35
+ onBack={() => router.push('/org')}
36
+ ssoProviders={['google', 'microsoft']}
37
+ onSsoClick={(provider) => handleSso(provider)}
38
+ errors={{ password: 'Must be at least 8 characters' }}
39
+ loading={isSubmitting}
40
+ />
41
+ )
42
+ }
43
+ ```
44
+
45
+ > **Source:** [`flamingo-stack/openframe-oss-lib`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/complete-account-form.tsx)
@@ -0,0 +1,53 @@
1
+ <!-- source-hash: 350f1108c023fd5344b6b3ccac5cf4de -->
2
+ Presentational, fully-controlled form component for the "Create Organization" (Sign Up) step of the OpenFrame auth flow.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `CreateOrganizationForm` | React component | Main form component — owns no state; delegates all state, validation, and submission to the consumer |
9
+ | `CreateOrganizationFormProps` | Interface | Complete props contract covering field values, change handlers, error/status messages, SSO options, and layout customization |
10
+
11
+ ## Key Behaviors
12
+
13
+ - **Deferred validation** — field errors are surfaced via `useDeferredError`, delaying display until the user blurs or pauses typing, avoiding premature error messages
14
+ - **Inline status messages** — `emailStatus` and `domainStatus` props provide non-error feedback (e.g., availability checks); `errors.*` always takes precedence
15
+ - **Domain suffix adornment** — `domainSuffix` renders a fixed suffix inside the domain input (e.g., `.openframe.ai`)
16
+ - **SSO alternatives** — when `ssoProviders` is supplied, an "or continue with" divider and `SsoProviderButtons` render below the primary submit; `ssoDisabled` gates them independently of the form fields
17
+ - **Enter-key submission** — `handleKeyDown` fires `onSubmit` on `Enter` across all inputs
18
+
19
+ ## Usage Example
20
+
21
+ ```typescript
22
+ import { CreateOrganizationForm } from './create-organization-form'
23
+ import { useState } from 'react'
24
+
25
+ export function SignUpPage() {
26
+ const [email, setEmail] = useState('')
27
+ const [orgName, setOrgName] = useState('')
28
+ const [domain, setDomain] = useState('')
29
+ const [agreed, setAgreed] = useState(false)
30
+
31
+ return (
32
+ <CreateOrganizationForm
33
+ email={email}
34
+ organizationName={orgName}
35
+ domain={domain}
36
+ agreedToTerms={agreed}
37
+ onEmailChange={setEmail}
38
+ onOrganizationNameChange={setOrgName}
39
+ onDomainChange={setDomain}
40
+ onAgreedToTermsChange={setAgreed}
41
+ onSubmit={() => console.log('submit')}
42
+ domainSuffix=".openframe.ai"
43
+ termsUrl="/terms"
44
+ privacyPolicyUrl="/privacy"
45
+ errors={{ email: 'Email already in use' }}
46
+ ssoProviders={[{ id: 'google', label: 'Google' }]}
47
+ onSsoClick={(p) => console.log('SSO:', p)}
48
+ />
49
+ )
50
+ }
51
+ ```
52
+
53
+ **Source:** [`flamingo-stack/openframe-oss-lib`](https://github.com/flamingo-stack/openframe-oss-lib)
@@ -0,0 +1,48 @@
1
+ <!-- source-hash: 9be13fc095a8c03f2c0e5ac3aacf88b2 -->
2
+ Central barrel export file for the authentication UI component library, re-exporting all auth-related components from their individual modules.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Description |
7
+ |---|---|
8
+ | `auth-benefits-panel` | Panel displaying authentication benefits/features |
9
+ | `auth-branding` | Branding elements for auth screens |
10
+ | `auth-shell` | Layout shell/wrapper for standard auth flows |
11
+ | `back-to-login-link` | Navigation link to return to the login screen |
12
+ | `complete-account-form` | Form for completing account setup |
13
+ | `create-organization-form` | Form for creating a new organization |
14
+ | `invite-link-invalid-modal` | Modal shown when an invite link is invalid or expired |
15
+ | `login-form` | Standard username/password login form |
16
+ | `openframe-sso-login-form` | OpenFrame SSO-specific login form |
17
+ | `openframe-sso-signup-form` | OpenFrame SSO-specific signup form |
18
+ | `password-reset-form` | Form for initiating or completing password reset |
19
+ | `sso-auth-shell` | Layout shell/wrapper for SSO auth flows |
20
+ | `sso-providers` | List/selector of available SSO identity providers |
21
+ | `terms-agreement-label` | Terms of service agreement label/checkbox component |
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ // Import any auth component directly from the library root
27
+ import {
28
+ LoginForm,
29
+ AuthShell,
30
+ SsoProviders,
31
+ PasswordResetForm,
32
+ CreateOrganizationForm,
33
+ } from '@openframe-oss-lib/auth'
34
+
35
+ // Use in your application
36
+ function AuthPage() {
37
+ return (
38
+ <AuthShell>
39
+ <LoginForm onSubmit={handleLogin} />
40
+ <SsoProviders providers={['google', 'microsoft']} />
41
+ </AuthShell>
42
+ )
43
+ }
44
+ ```
45
+
46
+ ## Source
47
+
48
+ [`index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/index.ts)
@@ -0,0 +1,42 @@
1
+ <!-- source-hash: 1c25aff7c7d85b2821c5214291ab5645 -->
2
+ Modal component displayed when a user visits an expired or invalid invitation link, offering a single action to return to the login page.
3
+
4
+ ## Key Components
5
+
6
+ ### `InviteLinkInvalidModal`
7
+ A full-screen overlay with a centered card (bottom-pinned on mobile, vertically centered on tablet and above) that communicates the invalid/expired invite state. Includes an `XmarkIcon` dismiss button (desktop/tablet only) and a primary action button, both of which call `onBackToLogin` by default.
8
+
9
+ ### `InviteLinkInvalidModalProps`
10
+
11
+ | Prop | Type | Default | Description |
12
+ |---|---|---|---|
13
+ | `onBackToLogin` | `() => void` | — | **Required.** Called when the action button is clicked |
14
+ | `onClose` | `() => void` | `onBackToLogin` | Called when the X button is clicked |
15
+ | `title` | `string` | `'Invite link not valid'` | Card heading |
16
+ | `description` | `string` | `'This invitation link has expired…'` | Body copy |
17
+ | `backLabel` | `string` | `'Back to Login'` | Action button label |
18
+ | `className` | `string` | — | Extra classes applied to the backdrop |
19
+
20
+ ## Usage Example
21
+
22
+ ```typescript
23
+ import { InviteLinkInvalidModal } from './invite-link-invalid-modal'
24
+
25
+ function InviteFlow() {
26
+ const router = useRouter()
27
+
28
+ return (
29
+ <InviteLinkInvalidModal
30
+ onBackToLogin={() => router.push('/login')}
31
+ onClose={() => router.push('/login')}
32
+ title="Invite Expired"
33
+ description="Ask your administrator to resend the invite."
34
+ backLabel="Go to Login"
35
+ />
36
+ )
37
+ }
38
+ ```
39
+
40
+ ## Source
41
+
42
+ [`invite-link-invalid-modal.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/invite-link-invalid-modal.tsx)
@@ -0,0 +1,42 @@
1
+ <!-- source-hash: 0fa484ab1ed074f8b4a406ffde6dd7d1 -->
2
+ Presentational, controlled login form component for the OpenFrame authentication UI. It renders an email input and SSO provider buttons, delegating all state, validation, and tenant discovery logic to the consumer.
3
+
4
+ ## Key Components
5
+
6
+ ### `LoginForm`
7
+ The primary export. A fully controlled React component that renders:
8
+ - A header with "Login to OpenFrame" branding
9
+ - An email `Input` field with deferred error display (shown on blur or after a typing pause via `useDeferredError`)
10
+ - `SsoProviderButtons` rendered below the email field, independently gated via `ssoDisabled` / `ssoEnabledProviders`
11
+
12
+ ### `LoginFormProps`
13
+ Interface defining the full API surface:
14
+ - `email` / `onEmailChange` — controlled email field
15
+ - `errors.email` / `emailStatus` — error and informational status messages (errors take precedence)
16
+ - `ssoProviders` / `onSsoClick` — SSO provider list and click handler
17
+ - `ssoDisabled` / `ssoEnabledProviders` — fine-grained SSO button gating (all vs. selective)
18
+ - `ssoActionLabel` — verb prefix for provider buttons (default: `"Continue with"`)
19
+ - `onSubmit` — triggered on Enter key press
20
+
21
+ ## Usage Example
22
+
23
+ ```typescript
24
+ import { LoginForm } from './login-form'
25
+ import type { AuthSsoProvider } from './sso-providers'
26
+
27
+ const providers: AuthSsoProvider[] = ['google', 'microsoft']
28
+
29
+ <LoginForm
30
+ email={email}
31
+ onEmailChange={setEmail}
32
+ onSubmit={handleSubmit}
33
+ errors={{ email: emailError }}
34
+ emailStatus={{ message: 'Tenant found', variant: 'success' }}
35
+ ssoProviders={providers}
36
+ onSsoClick={handleSsoLogin}
37
+ ssoDisabled={!isTenantDiscovered}
38
+ ssoEnabledProviders={enabledProviders}
39
+ />
40
+ ```
41
+
42
+ > **Source:** [`auth/login-form.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/auth/login-form.tsx)
@@ -0,0 +1,46 @@
1
+ <!-- source-hash: b13c3b296f47effe28af02d380530cd1 -->
2
+ Controlled, presentational login form component for OpenFrame's SSO flow, rendering email/password fields with deferred validation and submit/forgot-password actions.
3
+
4
+ ## Key Components
5
+
6
+ ### `OpenFrameSsoLoginForm`
7
+ A fully controlled React form component intended to be rendered inside `SsoAuthShell`. Manages no internal state — all field values, change handlers, and error messages are passed via props.
8
+
9
+ ### `OpenFrameSsoLoginFormProps`
10
+ The component's prop interface, covering:
11
+ - **Field control:** `email`, `password`, `onEmailChange`, `onPasswordChange`
12
+ - **Actions:** `onSubmit`, `onForgotPassword`
13
+ - **State flags:** `loading`, `disabled`, `submitDisabled`
14
+ - **Validation:** `errors.email`, `errors.password` (deferred via `useDeferredError`)
15
+ - **Copy overrides:** `title`, `subtitle`, labels, placeholders, and button text
16
+
17
+ ### `useDeferredError`
18
+ Hook used internally to delay showing validation messages until the user blurs a field or pauses typing, reducing noise during active input.
19
+
20
+ ## Usage Example
21
+
22
+ ```typescript
23
+ import { OpenFrameSsoLoginForm } from './openframe-sso-login-form'
24
+
25
+ function LoginPage() {
26
+ const [email, setEmail] = useState('')
27
+ const [password, setPassword] = useState('')
28
+
29
+ return (
30
+ <OpenFrameSsoLoginForm
31
+ email={email}
32
+ password={password}
33
+ onEmailChange={setEmail}
34
+ onPasswordChange={setPassword}
35
+ onSubmit={() => console.log('Submit', email, password)}
36
+ onForgotPassword={() => console.log('Forgot password')}
37
+ loading={false}
38
+ errors={{ email: 'Invalid email format' }}
39
+ />
40
+ )
41
+ }
42
+ ```
43
+
44
+ Enter triggers submission via `onKeyDown` on both inputs. The "Continue" button uses the `accent` variant; "Forgot Password?" uses `transparent`.
45
+
46
+ **Source:** [`openframe-sso-login-form.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/openframe-sso-login-form.tsx)
@@ -0,0 +1,51 @@
1
+ <!-- source-hash: 0b3d08fe5ca4c4df07d20043c247f66d -->
2
+ Presentational, fully-controlled sign-up form for creating OpenFrame SSO credentials (email, first/last name, password, confirm password) with deferred field-level validation.
3
+
4
+ ## Key Components
5
+
6
+ ### `OpenFrameSsoSignUpForm`
7
+ The sole export — a stateless React component that delegates all state management to the parent. Key behaviours:
8
+
9
+ - **Deferred errors** — field validation messages are surfaced via `useDeferredError`, showing only on blur or after a typing pause to avoid premature error states.
10
+ - **Enter-key submission** — any field's `keydown` event triggers `onSubmit` when the form is not disabled or loading.
11
+ - **Read-only email** — the `emailReadOnly` prop locks the email field (e.g. when email was verified in a prior step).
12
+ - **Loading / disabled states** — `loading` shows a spinner on the submit button; `disabled` or `loading` disables all fields simultaneously.
13
+
14
+ ### `OpenFrameSsoSignUpFormProps`
15
+ Full TypeScript interface exposing controlled field values, change handlers, submission callbacks, per-field error strings, and display-copy overrides (`title`, `subtitle`, `emailLabel`, `submitLabel`, `forgotPasswordLabel`).
16
+
17
+ ## Usage Example
18
+
19
+ ```typescript
20
+ import { OpenFrameSsoSignUpForm } from './openframe-sso-signup-form'
21
+
22
+ function SignUpPage() {
23
+ const [email, setEmail] = useState('')
24
+ const [firstName, setFirstName] = useState('')
25
+ const [lastName, setLastName] = useState('')
26
+ const [password, setPassword] = useState('')
27
+ const [confirmPassword, setConfirmPassword] = useState('')
28
+
29
+ return (
30
+ <OpenFrameSsoSignUpForm
31
+ email={email}
32
+ firstName={firstName}
33
+ lastName={lastName}
34
+ password={password}
35
+ confirmPassword={confirmPassword}
36
+ onEmailChange={setEmail}
37
+ onFirstNameChange={setFirstName}
38
+ onLastNameChange={setLastName}
39
+ onPasswordChange={setPassword}
40
+ onConfirmPasswordChange={setConfirmPassword}
41
+ onSubmit={() => console.log('submit')}
42
+ onForgotPassword={() => console.log('forgot password')}
43
+ errors={{ email: 'Invalid email', confirmPassword: 'Passwords do not match' }}
44
+ emailReadOnly
45
+ loading={false}
46
+ />
47
+ )
48
+ }
49
+ ```
50
+
51
+ **Source:** [`openframe-sso-signup-form.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/openframe-sso-signup-form.tsx)
@@ -0,0 +1,57 @@
1
+ <!-- source-hash: 95a5b5a463952e8f081061622ff4d509 -->
2
+ A controlled, presentational React form component for the password reset flow, rendering two password fields, Cancel/Reset actions, and an optional "Back to Login" link.
3
+
4
+ ## Key Components
5
+
6
+ ### `PasswordResetForm`
7
+ The main exported component. Fully controlled — the consumer owns field state, validation logic, and submission handling.
8
+
9
+ ### `PasswordResetFormProps`
10
+ TypeScript interface exposing:
11
+
12
+ | Prop | Type | Description |
13
+ |---|---|---|
14
+ | `password` / `confirmPassword` | `string` | Controlled field values |
15
+ | `onPasswordChange` / `onConfirmPasswordChange` | `(value: string) => void` | Field change handlers |
16
+ | `onSubmit` | `() => void` | Primary submit action |
17
+ | `onCancel` | `() => void` | Secondary cancel action |
18
+ | `onBackToLogin` | `() => void` (optional) | Shown on tablet/mobile only; desktop uses shell footer |
19
+ | `submitDisabled` | `boolean` | Disables submit without locking fields |
20
+ | `loading` / `disabled` | `boolean` | Full form lockout states |
21
+ | `errors` | `{ password?, confirmPassword? }` | Validation messages (deferred via `useDeferredError`) |
22
+
23
+ All labels and placeholders are overridable via dedicated string props.
24
+
25
+ ### `useDeferredError`
26
+ Hook used internally to delay validation message display until blur or a pause in typing, reducing noise during active input.
27
+
28
+ ## Usage Example
29
+
30
+ ```typescript
31
+ import { PasswordResetForm } from './password-reset-form'
32
+ import { useState } from 'react'
33
+
34
+ function ResetPage() {
35
+ const [password, setPassword] = useState('')
36
+ const [confirmPassword, setConfirmPassword] = useState('')
37
+
38
+ const errors = {
39
+ confirmPassword:
40
+ password !== confirmPassword ? 'Passwords do not match' : undefined,
41
+ }
42
+
43
+ return (
44
+ <PasswordResetForm
45
+ password={password}
46
+ confirmPassword={confirmPassword}
47
+ onPasswordChange={setPassword}
48
+ onConfirmPasswordChange={setConfirmPassword}
49
+ onSubmit={() => console.log('Submitting reset')}
50
+ onCancel={() => console.log('Cancelled')}
51
+ onBackToLogin={() => console.log('Back to login')}
52
+ errors={errors}
53
+ submitDisabled={password !== confirmPassword}
54
+ />
55
+ )
56
+ }
57
+ ```
@@ -0,0 +1,35 @@
1
+ <!-- source-hash: 42f6dac64028d99b3a2ea49a0c3914d5 -->
2
+ Centered single-column layout shell for OpenFrame SSO (IdP) authentication screens, composing the wordmark, form content, and "Powered by Flamingo" branding into a full-height page structure.
3
+
4
+ ## Key Components
5
+
6
+ - **`SsoAuthShell`** — Full-page wrapper component that arranges SSO login/sign-up screens with a top wordmark, centered form card (max-width 600px), and a compact footer branding element.
7
+ - **`SsoAuthShellProps`** — Interface accepting `children` (the form card content) and an optional `className` for layout overrides.
8
+ - **`OpenFrameWordmark`** — Branding element rendered at the top of the shell (imported from `auth-branding`).
9
+ - **`PoweredByFlamingo`** — Compact footer branding element rendered at the bottom (imported from `auth-branding`).
10
+
11
+ ## Usage Example
12
+
13
+ ```typescript
14
+ import { SsoAuthShell } from './sso-auth-shell'
15
+ import { LoginForm } from './login-form'
16
+
17
+ export default function SsoLoginPage() {
18
+ return (
19
+ <SsoAuthShell>
20
+ <LoginForm />
21
+ </SsoAuthShell>
22
+ )
23
+ }
24
+ ```
25
+
26
+ ## Notes
27
+
28
+ - Designed exclusively for SSO/IdP screens — no marketing or split-panel layout.
29
+ - Uses design tokens (`--spacing-system-xl`, `bg-ods-bg`) for consistent spacing and background.
30
+ - `cn` utility merges Tailwind classes, allowing consumers to override layout via `className`.
31
+ - Marked `'use client'` — requires a React client boundary (Next.js App Router compatible).
32
+
33
+ ## Source
34
+
35
+ [`sso-auth-shell.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/sso-auth-shell.tsx)
@@ -0,0 +1,42 @@
1
+ <!-- source-hash: 061672449705d5265894d8263494baea -->
2
+ Renders a configurable stack of SSO provider buttons (`openframe`, `google`, `microsoft`) for use in authentication forms.
3
+
4
+ ## Key Components
5
+
6
+ - **`AuthSsoProvider`** — Union type of supported SSO provider keys: `'openframe' | 'google' | 'microsoft'`
7
+ - **`PROVIDER_META`** — Record mapping each provider to its display name and icon component; the `openframe` icon applies CSS variable-based theming
8
+ - **`SsoProviderButtonsProps`** — Props interface for the button group component
9
+ - **`SsoProviderButtons`** — Primary export; renders full-width, stacked `Button` elements for each requested provider
10
+
11
+ ## Usage Example
12
+
13
+ ```typescript
14
+ import {
15
+ SsoProviderButtons,
16
+ type AuthSsoProvider,
17
+ } from './sso-providers'
18
+
19
+ function LoginForm() {
20
+ const handleSso = (provider: AuthSsoProvider) => {
21
+ console.log('Signing in with', provider)
22
+ }
23
+
24
+ return (
25
+ <SsoProviderButtons
26
+ providers={['openframe', 'google', 'microsoft']}
27
+ actionLabel="Sign in with"
28
+ onSsoClick={handleSso}
29
+ // Only enable providers the tenant actually supports
30
+ enabledProviders={['google']}
31
+ />
32
+ )
33
+ }
34
+ ```
35
+
36
+ ## Notes
37
+
38
+ - `actionLabel` (default `"Continue with"`) is prepended to provider names (e.g. `"Continue with Google"`), but is **ignored** for `openframe`, which always renders as `"OpenFrame SSO"`
39
+ - `enabledProviders` selectively disables buttons not in the list — useful when tenant discovery determines which providers are available; the top-level `disabled` prop still takes precedence
40
+ - Disabled buttons apply the `bg-ods-bg` class to visually recede to the page background, matching the design system's disabled input treatment
41
+
42
+ **Source:** [`flamingo-stack/openframe-oss-lib`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/sso-providers.tsx)
@@ -0,0 +1,28 @@
1
+ <!-- source-hash: 05dd95b5ac235a47995911312e9065f8 -->
2
+ Renders the "Agree to Terms & Privacy Policy by signing up." label used alongside signup checkboxes, with configurable links for the Terms and Privacy Policy URLs.
3
+
4
+ ## Key Components
5
+
6
+ - **`TermsAgreementLabelProps`** — Interface accepting optional `termsUrl` and `privacyPolicyUrl` strings (both default to `'#'`)
7
+ - **`TermsAgreementLabel`** — Client component that renders a `<span>` with inline anchor tags for Terms and Privacy Policy; links open in a new tab and stop click propagation to prevent unintended checkbox toggling
8
+
9
+ ## Usage Example
10
+
11
+ ```typescript
12
+ import { TermsAgreementLabel } from './terms-agreement-label'
13
+
14
+ // With custom URLs
15
+ <TermsAgreementLabel
16
+ termsUrl="https://example.com/terms"
17
+ privacyPolicyUrl="https://example.com/privacy"
18
+ />
19
+
20
+ // With defaults (links point to '#')
21
+ <TermsAgreementLabel />
22
+ ```
23
+
24
+ ## Notes
25
+
26
+ - `onClick` on each anchor calls `event.stopPropagation()` to prevent the parent checkbox `label` element from toggling when a link is clicked
27
+ - Both links use `target="_blank"` with `rel="noopener noreferrer"` for secure external navigation
28
+ - Styled with ODS design tokens (`text-ods-text-primary`, `text-ods-text-secondary`)
@@ -1,38 +1,44 @@
1
- <!-- source-hash: 1ad6ce49d76bfa9f7bbe6737c01b2305 -->
2
- Renders the header for a Kanban board column, supporting both expanded and collapsed states with ticket status display, count, and optional ticket creation.
1
+ <!-- source-hash: ca02054e0e467a0cfd1ca2c788a01f8f -->
2
+ Renders the header for a single Kanban board column, handling both expanded and collapsed states with status tags, ticket counts, and optional action buttons.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `BoardColumnHeaderProps`
7
+
7
8
  | Prop | Type | Description |
8
- |------|------|-------------|
9
- | `column` | `BoardColumnDef` | Column definition including id, label, color, and tickets |
10
- | `collapsed` | `boolean` | Controls collapsed/expanded display mode |
9
+ |---|---|---|
10
+ | `column` | `BoardColumnDef` | Column definition including label, tickets, status key, and optional color |
11
+ | `collapsed` | `boolean` | Controls collapsed vs. expanded layout (default: `false`) |
11
12
  | `onToggleCollapse` | `() => void` | Callback to toggle column collapse state |
12
- | `onAddTicket` | `() => void` (optional) | Callback to trigger ticket creation |
13
+ | `onAddTicket` | `() => void` | Optional callback to create a new ticket in this column |
14
+ | `onArchive` | `() => void` | Optional callback to archive resolved tickets |
13
15
 
14
16
  ### `BoardColumnHeader`
15
- Client component that renders two distinct layouts:
16
- - **Collapsed:** Vertical layout with expand icon, rotated status tag, and ticket count
17
- - **Expanded:** Horizontal layout with status tag, count, collapse button, and optional add-ticket button
18
17
 
19
- Uses `getTicketStatusConfig` to determine whether to use a built-in status color or a custom column color for the `TicketStatusTag`.
18
+ The main exported component. Renders two distinct layouts:
19
+
20
+ - **Collapsed** — vertical layout with an expand arrow, rotated `TicketStatusTag`, and ticket count
21
+ - **Expanded** — horizontal layout with the status tag, count, and action buttons (collapse, archive, add)
22
+
23
+ **Status resolution logic:** Uses `resolveTicketStatus` to detect canonical statuses (`ACTIVE`, `RESOLVED`, etc.). Known statuses render with their built-in variant/icon; unrecognized IDs (e.g., custom UUID statuses) fall back to the column's `color` prop.
20
24
 
21
25
  ## Usage Example
22
26
 
23
27
  ```typescript
24
- import { BoardColumnHeader } from './board-column-header'
25
-
26
28
  <BoardColumnHeader
27
29
  column={{
28
- id: 'in-progress',
29
- label: 'In Progress',
30
- color: '#FFC008',
31
- tickets: [...],
30
+ id: 'open',
31
+ label: 'Open',
32
+ tickets: [],
32
33
  total: 12,
34
+ statusKey: 'ACTIVE',
35
+ color: undefined,
33
36
  }}
34
37
  collapsed={false}
35
38
  onToggleCollapse={() => setCollapsed(prev => !prev)}
36
- onAddTicket={() => openCreateTicketModal('in-progress')}
39
+ onAddTicket={() => openNewTicketModal()}
40
+ onArchive={() => archiveResolvedTickets()}
37
41
  />
38
- ```
42
+ ```
43
+
44
+ **Source:** [`board-column-header.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/board-column-header.tsx)
@@ -1,43 +1,43 @@
1
- <!-- source-hash: 1bf9b2d5d2d477b1115c900de71defaa -->
2
- Renders a single kanban board column with drag-and-drop support, collapsible layout, infinite scroll via IntersectionObserver, and ticket card rendering.
1
+ <!-- source-hash: 410ed43f828981219aefe056be55cd69 -->
2
+ A kanban-style board column component with drag-and-drop support, infinite scroll, collapse/expand behavior, and ticket card rendering.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `BoardColumn` | Component | Main column shell handling collapsed/expanded state, border joining, and color tinting |
9
- | `BoardColumnProps` | Interface | Public API for the column component |
10
- | `ColumnBody` | Internal Component | Scrollable droppable zone with `SortableContext`, infinite scroll sentinel, and loading states |
11
- | `SkeletonStack` | Internal Component | Renders `n` skeleton placeholders during initial load |
12
- | `EmptyState` | Internal Component | Illustrated empty state shown when a column has no tickets |
6
+ ### `BoardColumn` (exported)
7
+ The primary column container. Renders a collapsible column with a header, divider, and body. Supports visual joining with adjacent columns via `joinLeft`/`joinRight` props and applies tinted background colors for non-system columns.
8
+
9
+ ### `ColumnBody` (internal)
10
+ Handles the droppable zone (`@dnd-kit/core`), sortable ticket list (`@dnd-kit/sortable`), and infinite scroll via `IntersectionObserver`. Manages refs for both the scroll container and the droppable drop target.
11
+
12
+ ### `SkeletonStack` (internal)
13
+ Renders a configurable number of `TicketCardSkeleton` placeholders during initial load.
14
+
15
+ ### `EmptyState` (internal)
16
+ Displays a centered empty state with a tag icon when a column has no tickets.
17
+
18
+ ## Key Props (`BoardColumnProps`)
19
+
20
+ | Prop | Type | Description |
21
+ |---|---|---|
22
+ | `column` | `BoardColumnDef` | Column definition including tickets, color, and state flags |
23
+ | `collapsed` | `boolean` | Collapses column to `w-14` |
24
+ | `onToggleCollapse` | `() => void` | Toggle handler |
25
+ | `onLoadMore` | `(columnId: string) => void` | Triggered by intersection sentinel |
26
+ | `joinLeft` / `joinRight` | `boolean` | Removes borders/radius for adjacent column groups |
27
+ | `renderAssignSlot` | `(ticket: BoardTicket) => ReactNode` | Custom assignee slot renderer |
13
28
 
14
29
  ## Usage Example
15
30
 
16
31
  ```typescript
17
32
  <BoardColumn
18
- column={{
19
- id: 'open',
20
- label: 'Open',
21
- color: '#3B82F6',
22
- tickets: myTickets,
23
- hasMore: true,
24
- isLoading: false,
25
- isLoadingMore: false,
26
- }}
33
+ column={column}
27
34
  collapsed={false}
28
- onToggleCollapse={() => setCollapsed(c => !c)}
29
- onAddTicket={(columnId) => openNewTicketModal(columnId)}
35
+ onToggleCollapse={() => setCollapsed(id, !collapsed)}
36
+ onAddTicket={(colId) => openNewTicketModal(colId)}
30
37
  getTicketHref={(ticketId) => `/tickets/${ticketId}`}
31
- renderAssignSlot={(ticket) => <AssigneePicker ticket={ticket} />}
32
- onLoadMore={(columnId) => fetchNextPage(columnId)}
33
- joinLeft={false}
34
- joinRight={true}
38
+ renderAssignSlot={(ticket) => <AvatarPicker ticket={ticket} />}
39
+ onApprove={(ticketId) => approveTicket(ticketId)}
40
+ onLoadMore={(colId) => fetchMoreTickets(colId)}
41
+ joinLeft
35
42
  />
36
- ```
37
-
38
- ## Notes
39
-
40
- - **Drag-and-drop**: Uses `@dnd-kit/core` (`useDroppable`) and `@dnd-kit/sortable` (`SortableContext`) — drop target is disabled when `column.dropDisabled` is set.
41
- - **Infinite scroll**: An `IntersectionObserver` watches a 1px sentinel div at the bottom of the scroll container; `onLoadMore` fires when it enters the viewport. Scroll is paused while `isLoadingMore` is true.
42
- - **Collapsed state**: When `collapsed=true`, the column shrinks to `w-14` and hides the body; the header remains visible.
43
- - **Joined borders**: `joinLeft`/`joinRight` props remove border radii and borders on adjacent edges for seamless multi-column layouts.
43
+ ```