@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,26 +1,29 @@
1
- <!-- source-hash: 5b93029e90f2707d4d17ae7b8abe09dc -->
2
- A mobile slide-down navigation menu component that renders a full-screen overlay panel with user profile card, primary/secondary navigation items in a responsive grid layout, and optional action buttons (logout, edit profile, search user).
1
+ <!-- source-hash: 239259ec2e61e6f79f54306c82df0784 -->
2
+ Accessible mobile navigation drawer that slides down from the app header, rendering primary nav items in a 2-column grid, secondary items full-width, a user profile card, and an optional logout button.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **`MobileBurgerMenu`** — Memoized React component (`React.memo`) with the following behavior:
7
- - Locks body scroll and traps `Escape` key while open
8
- - Renders a blur backdrop and animated slide-down panel below the fixed header (`48px` offset)
9
- - Splits `config.items` into **primary** (2-column grid) and **secondary** (full-width list) sections
10
- - Supports a `disabled` prop that freezes all interactive items while keeping close/backdrop functional
6
+ ### `MobileBurgerMenu`
11
7
 
12
- **`MobileBurgerMenuProps`** Exported interface defining all props:
8
+ A memoized React component that manages the full mobile menu overlay. Key behaviors:
9
+
10
+ - **Scroll lock** — uses `usePreventScroll` (react-aria) to block body scroll on iOS and Android while open
11
+ - **Focus trap** — `useFocusTrap` contains Tab focus within the panel, supports Escape-to-close, and restores focus on dismiss
12
+ - **Animation** — slide-down + fade via Tailwind transition classes; `inert` attribute removes closed items from the tab order without unmounting
13
+ - **Layout anchoring** — backdrop and panel use `absolute` (not `fixed`) so they position relative to the app row below any top banner, with `top: 48px` clearing the header
14
+
15
+ ### `MobileBurgerMenuProps`
13
16
 
14
17
  | Prop | Type | Description |
15
- |------|------|-------------|
16
- | `isOpen` | `boolean` | Controls visibility and animation |
17
- | `onClose` | `() => void` | Close handler (backdrop click, Escape key) |
18
- | `config` | `NavigationSidebarConfig` | Nav items and `onNavigate` callback |
19
- | `user` | `object` | Optional user card data (name, email, avatar, role) |
20
- | `onSearchUser` | `() => void` | Optional search user action button |
21
- | `onEditProfile` | `() => void` | Optional edit profile action button |
22
- | `onLogout` | `() => void` | Optional logout button at bottom |
23
- | `disabled` | `boolean` | Disables all interactive items |
18
+ |---|---|---|
19
+ | `isOpen` | `boolean` | Controls open/closed state |
20
+ | `onClose` | `() => void` | Called on backdrop click or Escape |
21
+ | `config` | `NavigationSidebarConfig` | Nav items and `onNavigate` handler |
22
+ | `user` | `object` | Avatar, name, email, role for the header card |
23
+ | `onSearchUser` | `() => void` | Optional search-user action button |
24
+ | `onEditProfile` | `() => void` | Optional edit-profile action button |
25
+ | `onLogout` | `() => void` | Renders logout row when provided |
26
+ | `disabled` | `boolean` | Disables all interactive items; backdrop/close still work |
24
27
 
25
28
  ## Usage Example
26
29
 
@@ -32,19 +35,16 @@ const [menuOpen, setMenuOpen] = useState(false)
32
35
  <MobileBurgerMenu
33
36
  isOpen={menuOpen}
34
37
  onClose={() => setMenuOpen(false)}
35
- config={{
36
- items: [
37
- { id: 'dashboard', label: 'Dashboard', path: '/dashboard', isActive: true },
38
- { id: 'settings', label: 'Settings', section: 'secondary', path: '/settings' },
39
- ],
40
- onNavigate: (path) => router.push(path),
41
- }}
38
+ config={sidebarConfig}
42
39
  user={{
43
- userName: 'Jane Smith',
44
- userEmail: 'jane@example.com',
45
- userRole: 'Admin',
40
+ userName: 'Alice Smith',
41
+ userEmail: 'alice@example.com',
42
+ userAvatarUrl: '/avatars/alice.png',
43
+ userRole: 'admin',
46
44
  }}
47
- onLogout={() => signOut()}
48
45
  onEditProfile={() => router.push('/profile')}
46
+ onLogout={handleLogout}
49
47
  />
50
- ```
48
+ ```
49
+
50
+ **Source:** [`mobile-burger-menu.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mobile-burger-menu.tsx)
@@ -1,64 +1,56 @@
1
- <!-- source-hash: 22dc571f86ff6412c173e898a5bebb85 -->
2
- A client-side React component that renders a full-featured mobile navigation panel with backdrop overlay, keyboard support, and scroll locking.
1
+ <!-- source-hash: f440873b10ff8a3b76d3a4ca0faf8299 -->
2
+ Accessible mobile navigation panel component that renders a floating dialog with scroll lock, focus trapping, and backdrop dismissal for responsive navigation menus.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### `MobileNavPanel`
7
- The primary export — a modal-style slide-in navigation panel controlled by `isOpen`.
6
+ ### Exports
8
7
 
9
- **Props (`MobileNavPanelProps`):**
8
+ | Export | Type | Description |
9
+ |--------|------|-------------|
10
+ | `MOBILE_NAV_PANEL_ID` | `string` | DOM id (`'mobile-nav-panel'`) referenced by the header hamburger's `aria-controls` attribute |
11
+ | `MobileNavPanelProps` | `interface` | Props shape: `isOpen: boolean`, `config: MobileNavConfig` |
12
+ | `MobileNavPanel` | Component | Main panel component |
10
13
 
11
- | Prop | Type | Description |
12
- |------|------|-------------|
13
- | `isOpen` | `boolean` | Controls panel visibility |
14
- | `config` | `MobileNavConfig` | Navigation structure and callbacks |
14
+ ### Accessibility & Behavior Hooks
15
15
 
16
- **Behaviors:**
17
- - Locks `document.body` scroll while open
18
- - Closes on `Escape` key press (via `config.onClose`)
19
- - Closes on backdrop click; prevents propagation inside panel
20
- - Renders `null` when closed (no DOM presence)
16
+ | Hook | Purpose |
17
+ |------|---------|
18
+ | `usePreventScroll` | iOS-aware, ref-counted body scroll lock (shared counter with modals/chat overlays) |
19
+ | `useFocusTrap` | Initial focus, Tab containment, Escape-to-close, and guarded focus restore |
20
+ | `useHeaderHeight` | Measures live header height so the panel anchors correctly below it |
21
21
 
22
- **Layout structure:**
23
- - **Backdrop** — full-screen overlay (`z-[9998]`) that closes the panel on click
24
- - **Panel** — floating card (`z-[9999]`), full-width on mobile / `400px` on `md+`, anchored top-right with scroll-locked content area
25
- - **Header** — fixed close (`X`) button
26
- - **Body** — scrollable section list with optional section titles and nav items
27
- - **Footer** — optional sticky footer from `config.footer`
22
+ ### Internal: `renderNavigationItem`
28
23
 
29
- ### `renderNavigationItem` (internal)
30
- Handles three `NavigationItem` render modes:
31
- 1. **Custom element** — renders `item.element` directly
32
- 2. **Link** — `<Button href=...>` with icon, badge, and active state
33
- 3. **Action** — `<Button onClick=...>` with inline badge support
24
+ Renders each `NavigationItem` in one of three modes:
25
+ - **Custom element** — renders `item.element` directly
26
+ - **Link item** — renders a `Button` with `href`, `leftIcon`, and `rightIcon` (badge)
27
+ - **Button item** — renders a `Button` with `onClick`, with badge appended via `ml-auto` span
34
28
 
35
29
  ## Usage Example
36
30
 
37
31
  ```typescript
38
32
  import { MobileNavPanel } from './mobile-nav-panel'
39
- import { useState } from 'react'
40
- import { Home, Settings } from 'lucide-react'
41
33
 
42
- export function AppShell() {
43
- const [menuOpen, setMenuOpen] = useState(false)
44
-
45
- return (
46
- <MobileNavPanel
47
- isOpen={menuOpen}
48
- config={{
49
- onClose: () => setMenuOpen(false),
50
- sections: [
51
- {
52
- title: 'Main',
53
- items: [
54
- { id: 'home', label: 'Home', href: '/', icon: <Home />, isActive: true },
55
- { id: 'settings', label: 'Settings', href: '/settings', icon: <Settings /> },
56
- ],
57
- },
58
- ],
59
- footer: <button onClick={() => setMenuOpen(false)}>Sign Out</button>,
60
- }}
61
- />
62
- )
34
+ const navConfig: MobileNavConfig = {
35
+ onClose: () => setOpen(false),
36
+ sections: [
37
+ {
38
+ title: 'Main',
39
+ items: [
40
+ { id: 'home', label: 'Home', href: '/', isActive: true },
41
+ { id: 'settings', label: 'Settings', onClick: openSettings },
42
+ ],
43
+ },
44
+ ],
45
+ footer: <UserAccountWidget />,
63
46
  }
64
- ```
47
+
48
+ <MobileNavPanel isOpen={isNavOpen} config={navConfig} />
49
+ ```
50
+
51
+ ## Notes
52
+
53
+ - The panel is **layout-mounted on every page** but returns `null` when closed; observers activate only while open.
54
+ - Positioning uses a CSS custom property `--mobile-nav-top` derived from the measured header height, avoiding overflow under mobile browser chrome.
55
+ - The footer respects iOS safe-area insets via `env(safe-area-inset-bottom)`.
56
+ - Source: [`src/components/navigation/mobile-nav-panel.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/components/navigation/mobile-nav-panel.tsx)
@@ -0,0 +1,76 @@
1
+ <!-- source-hash: eda7ac7f37238cf41917334033d772b6 -->
2
+ Renders a recursive, multi-level document tree navigation UI with support for both desktop sidebar and mobile dropdown layouts, handling folder/file selection state with a folder-index (README) convention.
3
+
4
+ ## Key Components
5
+
6
+ ### Exports
7
+
8
+ | Name | Type | Description |
9
+ |------|------|-------------|
10
+ | `NavigationNode` | Interface | Tree node shape (file or folder) compatible with `DocNode` for type-safe assignment |
11
+ | `MultiLevelNavigation` | Component | Desktop sidebar navigation with recursive expand/collapse and visual selection ribbon |
12
+ | `MobileNavigationDropdown` | Component | Compact mobile variant of the navigation tree |
13
+
14
+ ### Internal
15
+
16
+ | Name | Description |
17
+ |------|-------------|
18
+ | `isNodeVisuallySelected` | Pure function implementing the folder-with-README selection convention — the folder node is never visually selected; its README child is |
19
+ | `NavigationItem` | Recursive desktop tree node (file icon, folder icon, expand chevron, selection ribbon) |
20
+ | `MobileNavigationItem` | Recursive mobile tree node (slightly smaller hit targets) |
21
+
22
+ ### Props (`MultiLevelNavigationProps`)
23
+
24
+ | Prop | Type | Description |
25
+ |------|------|-------------|
26
+ | `nodes` | `NavigationNode[]` | Root-level tree nodes |
27
+ | `selectedPath` | `string` | Currently active document path |
28
+ | `expandedNodes` | `Set<string>` | Set of expanded folder node IDs |
29
+ | `onNodeClick` | `(node) => void` | Called on node selection |
30
+ | `onToggleExpand` | `(nodeId) => void` | Optional separate expand handler |
31
+ | `folderIndexFile` | `string` | Folder-index filename, defaults to `'README.md'` |
32
+
33
+ ## Usage Example
34
+
35
+ ```typescript
36
+ import { MultiLevelNavigation, MobileNavigationDropdown } from './multi-level-navigation'
37
+ import type { NavigationNode } from './multi-level-navigation'
38
+ import { useState } from 'react'
39
+
40
+ const tree: NavigationNode[] = [
41
+ {
42
+ id: 'docs',
43
+ name: 'Docs',
44
+ path: 'docs',
45
+ type: 'folder',
46
+ hasReadme: true,
47
+ children: [
48
+ { id: 'docs/README.md', name: 'README', path: 'docs/README.md', type: 'file' },
49
+ { id: 'docs/setup.md', name: 'Setup', path: 'docs/setup.md', type: 'file' },
50
+ ],
51
+ },
52
+ ]
53
+
54
+ export function Sidebar() {
55
+ const [selectedPath, setSelectedPath] = useState('')
56
+ const [expandedNodes, setExpandedNodes] = useState<Set<string>>(new Set(['docs']))
57
+
58
+ return (
59
+ <MultiLevelNavigation
60
+ nodes={tree}
61
+ selectedPath={selectedPath}
62
+ expandedNodes={expandedNodes}
63
+ onNodeClick={(node) => setSelectedPath(node.path)}
64
+ onToggleExpand={(id) =>
65
+ setExpandedNodes(prev => {
66
+ const next = new Set(prev)
67
+ next.has(id) ? next.delete(id) : next.add(id)
68
+ return next
69
+ })
70
+ }
71
+ />
72
+ )
73
+ }
74
+ ```
75
+
76
+ > **Folder-index convention:** When `selectedPath` points to a folder that has a README, the visual selection ribbon renders on the README child, not the folder row itself.
@@ -1,25 +1,25 @@
1
- <!-- source-hash: c8f7676bd726a51b4cf502a4fd6cee17 -->
2
- Renders an individual navigation sidebar button with support for active state, disabled state, icon rendering, collapsible label visibility, and optional badge display.
1
+ <!-- source-hash: 6877367e58f856ff5bd01b0038abbc1d -->
2
+ Renders an accessible, stateful sidebar navigation button that supports active, disabled, and unread notification states with animated label visibility.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `NavigationSidebarItemButtonProps`
7
7
  | Prop | Type | Description |
8
8
  |------|------|-------------|
9
- | `item` | `NavigationSidebarItem` | Navigation item data (label, icon, badge, isActive) |
10
- | `showLabel` | `boolean` | Controls label and badge visibility (collapsed/expanded sidebar) |
11
- | `disabled` | `boolean` | Disables interaction and applies reduced-opacity styling |
9
+ | `item` | `NavigationSidebarItem` | Navigation item data (label, icon, active state, unread count) |
10
+ | `showLabel` | `boolean` | Toggles label/unread badge visibility (collapsed vs. expanded sidebar) |
11
+ | `disabled` | `boolean` | Disables interaction and applies muted styling |
12
12
  | `onClick` | `(item, event?) => void` | Click handler receiving the item and optional mouse event |
13
13
 
14
14
  ### `NavigationSidebarItemButton`
15
- The primary exported component. Applies four distinct visual states via `cn()`:
15
+ The primary export. Renders a `<button>` with four visual states driven by `isActive` and `disabled` combinations:
16
16
 
17
- | State | Appearance |
18
- |-------|-----------|
19
- | Default | Primary text, secondary icon fill |
20
- | Hover (not active) | `ods-bg-hover` background |
21
- | Active | Yellow-light background, accent text/icon, left accent border |
22
- | Disabled | 50% opacity, `not-allowed` cursor |
17
+ - **Default** hover background, secondary text/icon colors
18
+ - **Active** — yellow-light background, accent left border, accent text/icon
19
+ - **Disabled** reduced opacity, `cursor-not-allowed`, secondary colors
20
+ - **Active + Disabled** secondary colors, no accent styling
21
+
22
+ Unread count renders as a small dot badge on the icon when collapsed, or a numbered pill (capped at `99+`) beside the label when expanded.
23
23
 
24
24
  ## Usage Example
25
25
 
@@ -31,7 +31,7 @@ const item = {
31
31
  label: 'Dashboard',
32
32
  icon: <HomeIcon />,
33
33
  isActive: true,
34
- badge: '3',
34
+ unreadCount: 5,
35
35
  }
36
36
 
37
37
  <NavigationSidebarItemButton
@@ -42,4 +42,4 @@ const item = {
42
42
  />
43
43
  ```
44
44
 
45
- > **Note:** The icon is rendered via `cloneElement` to inject the appropriate `color` prop based on active/disabled state. Ensure icons accept an `IconProps`-compatible interface (`color`, `className`).
45
+ > **Note:** Icon color is injected via `cloneElement`, so icons must accept a `color` prop to respond to active/disabled state changes.
@@ -1,30 +1,22 @@
1
- <!-- source-hash: 6f802a22aab4156f34b7564f49df9553 -->
2
- Responsive navigation sidebar component that renders a collapsible, accessible side navigation panel with distinct behavior for tablet (overlay/floating) and desktop (push layout) viewports.
1
+ <!-- source-hash: c0bb51dff21ce2a1f2d328b688a856a9 -->
2
+ A responsive, collapsible navigation sidebar component that adapts between desktop (persistent, width-animating) and tablet (overlay/drawer) layouts, persisting the desktop minimize state to `localStorage`.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  | Export | Type | Description |
7
7
  |--------|------|-------------|
8
- | `NavigationSidebar` | Component | Main sidebar component with responsive layout logic |
8
+ | `NavigationSidebar` | Component | Main sidebar component with responsive behavior |
9
9
  | `NavigationSidebarProps` | Interface | Props: `config: NavigationSidebarConfig`, `disabled?: boolean` |
10
- | `MINIMIZED_WIDTH` | Constant | Collapsed width: `56px` |
11
- | `EXPANDED_WIDTH` | Constant | Expanded width: `224px` |
12
- | `STORAGE_KEY` | Constant | localStorage key for desktop minimized state |
10
+ | `MINIMIZED_WIDTH` | Constant | Collapsed width `56px` |
11
+ | `EXPANDED_WIDTH` | Constant | Expanded width `224px` |
12
+ | `STORAGE_KEY` | Constant | `localStorage` key: `of.navigationSidebar.minimized` |
13
13
 
14
- ### Behavior by Breakpoint
14
+ **Internal behavior:**
15
15
 
16
- | Viewport | Behavior | State Persistence |
17
- |----------|----------|-------------------|
18
- | `< md` | Hidden | |
19
- | `md` (tablet) | Floating overlay, starts minimized | In-memory only |
20
- | `≥ lg` (desktop) | Push layout | localStorage |
21
-
22
- ### Key Internal Logic
23
-
24
- - **`minimized`** — resolves to `tabletMinimized` or `desktopMinimized` based on viewport
25
- - **`transitionsEnabled`** — deferred via `requestAnimationFrame` to prevent flash of wrong width on hydration
26
- - **`isOverlayOpen`** — drives backdrop scrim visibility and `Escape` key dismissal
27
- - **`primaryItems` / `secondaryItems`** — items split by `section !== 'secondary'` filter
16
+ - **Desktop (`lg+`)** sidebar pushes content; minimize state persists via `localStorage`
17
+ - **Tablet (`md` only)** — sidebar floats as an overlay; always starts minimized (in-memory state only); backdrop scrim + `Escape` key close it
18
+ - **Transitions** — enabled after first hydrated paint via `useLayoutEffect` + `requestAnimationFrame` to prevent flash on load
19
+ - Items split into `primaryItems` and `secondaryItems` (filtered by `item.section === 'secondary'`)
28
20
 
29
21
  ## Usage Example
30
22
 
@@ -34,13 +26,28 @@ import { NavigationSidebarConfig } from '../../types/navigation'
34
26
 
35
27
  const config: NavigationSidebarConfig = {
36
28
  minimized: false,
29
+ onNavigate: (path) => router.push(path),
30
+ onToggleMinimized: () => console.log('toggled'),
37
31
  items: [
38
32
  { id: 'dashboard', label: 'Dashboard', path: '/dashboard', icon: HomeIcon },
39
33
  { id: 'settings', label: 'Settings', path: '/settings', icon: SettingsIcon, section: 'secondary' },
40
34
  ],
41
- onNavigate: (path) => router.push(path),
42
- onToggleMinimized: () => console.log('toggled'),
43
35
  }
44
36
 
45
- <NavigationSidebar config={config} disabled={false} />
46
- ```
37
+ export default function AppLayout() {
38
+ return (
39
+ <div className="relative flex h-screen">
40
+ <NavigationSidebar config={config} disabled={false} />
41
+ <main className="flex-1 overflow-auto">
42
+ {/* page content */}
43
+ </main>
44
+ </div>
45
+ )
46
+ }
47
+ ```
48
+
49
+ ## Notes
50
+
51
+ - The parent layout container must be `position: relative` for the tablet overlay anchor to work correctly.
52
+ - The `disabled` prop dims all nav items but leaves the collapse toggle interactive.
53
+ - Source: [`navigation-sidebar.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/navigation-sidebar.tsx)
@@ -1,43 +1,48 @@
1
- <!-- source-hash: 84f0966556e789258670b58482f3bc27 -->
2
- A client-side animated sidebar component that slides in from either edge of the screen, supporting nested navigation items, dynamic header offset calculation, and animated expand/collapse for sub-menus.
1
+ <!-- source-hash: 9eba798cffb073c1e0f63ba366c6bd59 -->
2
+ Accessible animated sidebar component that slides in from the left or right edge of the viewport, with focus management, scroll locking, and nested navigation support.
3
3
 
4
4
  ## Key Components
5
5
 
6
+ ### `SlidingSidebar`
7
+
8
+ The primary export. Accepts a `SlidingSidebarConfig` object to control open state, position, navigation items, and lifecycle callbacks.
9
+
6
10
  ### `SlidingSidebarProps`
7
- | Prop | Type | Description |
8
- |------|------|-------------|
9
- | `config` | `SlidingSidebarConfig` | Full sidebar configuration including `isOpen`, `position`, `items`, `onClose`, `footer`, and `className` |
10
11
 
11
- ### Internal State
12
- | State | Purpose |
13
- |-------|---------|
14
- | `expandedItems` | Tracks which nav items have their children visible |
15
- | `mounted` | Guards against SSR hydration mismatches |
16
- | `headerHeight` | Dynamic offset calculated from `<header>` and `[data-announcement-bar]` elements |
12
+ ```typescript
13
+ interface SlidingSidebarProps {
14
+ config: SlidingSidebarConfig // position, isOpen, onClose, items, footer, className
15
+ }
16
+ ```
17
+
18
+ ### Internal Helpers
19
+
20
+ - **`renderMenuItem`** — Recursively renders `NavigationItem` nodes as expandable groups (with animated `AnimatePresence` children) or leaf buttons/links. Supports custom `element` overrides, badges, icons, and active state styling.
21
+ - **`toggleExpanded`** — Manages a `Set<string>` of expanded parent item IDs.
17
22
 
18
- ### `renderMenuItem(item, level)`
19
- Recursive renderer that handles three item variants:
20
- - **Custom element** — renders `item.element` directly
21
- - **Parent node** — renders a toggle button with animated `AnimatePresence` child list
22
- - **Leaf node** — renders a `Button` that calls `item.onClick?.()` then `config.onClose()`
23
+ ### Accessibility & UX Hooks
23
24
 
24
- ### Header Height Detection
25
- Uses `ResizeObserver` + `MutationObserver` to dynamically track the combined height of `<header>` and `[data-announcement-bar]`, keeping the sidebar content correctly offset as layout changes.
25
+ | Hook | Purpose |
26
+ |---|---|
27
+ | `usePreventScroll` | Locks body scroll while the sidebar is open |
28
+ | `useFocusTrap` | Traps/restores focus; fires `onClose` on Escape. Non-modal (`contain: false`) so the z-50 header stays reachable |
29
+ | `useReducedMotion` | Collapses spring animation to instant when the OS prefers reduced motion |
30
+ | `useHeaderHeight` | Inserts a dynamic spacer so the panel clears the app header |
26
31
 
27
32
  ## Usage Example
28
33
 
29
34
  ```typescript
30
- import { SlidingSidebar } from './sliding-sidebar'
35
+ import { SlidingSidebar } from '@openframe/ui'
31
36
  import { useState } from 'react'
32
37
 
33
- function AppShell() {
34
- const [isOpen, setIsOpen] = useState(false)
38
+ export function AppShell() {
39
+ const [open, setOpen] = useState(false)
35
40
 
36
41
  return (
37
42
  <SlidingSidebar
38
43
  config={{
39
- isOpen,
40
- onClose: () => setIsOpen(false),
44
+ isOpen: open,
45
+ onClose: () => setOpen(false),
41
46
  position: 'left',
42
47
  items: [
43
48
  {
@@ -55,11 +60,11 @@ function AppShell() {
55
60
  ],
56
61
  },
57
62
  ],
58
- footer: <div>v1.0.0</div>,
63
+ footer: <p className="text-sm text-ods-text-secondary">v1.0.0</p>,
59
64
  }}
60
65
  />
61
66
  )
62
67
  }
63
68
  ```
64
69
 
65
- > **Note:** The sidebar is client-only (`"use client"`). It returns `null` until after mount to prevent SSR/hydration mismatches. Nest it inside a layout that also renders the `<header>` element so the offset calculation works correctly.
70
+ > **Z-index note:** The overlay sits at `z-[45]` and the panel at `z-[46]`, keeping both above the footer (`z-[44]`) but below the app header (`z-[50]`) and any modals (`z-50+`). See `ODS_TOKEN_RULES.md` for the full z-index hierarchy.
@@ -1,42 +1,43 @@
1
- <!-- source-hash: fab223205d06a85cbd1f071b97356037 -->
2
- Sticky section navigation component and scroll-spy hook for section-based page navigation, used across vendor detail pages, knowledge base, and documentation surfaces.
1
+ <!-- source-hash: 06a508edb80b9bce20fd7344ee3e0962 -->
2
+ Reusable sticky navigation component and scroll-spy hook for section-based page navigation, commonly used in vendor detail pages, knowledge base articles, and documentation layouts.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `StickySectionNav`
7
- A `<nav>` component that renders a vertical list of section buttons with an animated yellow ribbon indicator for the active section.
7
+ A controlled `<nav>` component that renders a vertical list of section links with an animated active-state ribbon indicator.
8
8
 
9
9
  **Props:**
10
10
 
11
11
  | Prop | Type | Default | Description |
12
- |------|------|---------|-------------|
12
+ |---|---|---|---|
13
13
  | `sections` | `StickyNavSection[]` | — | Array of `{ id, label }` nav items |
14
14
  | `activeSection` | `string` | — | ID of the currently active section |
15
15
  | `onSectionClick` | `(id: string) => void` | — | Click handler for nav items |
16
16
  | `ribbonPosition` | `'left' \| 'right'` | `'left'` | Side the active ribbon renders on |
17
- | `ribbonColor` | `string` | `'#FFC008'` | Active ribbon color |
18
- | `className` | `string` | — | Optional extra class names |
17
+ | `ribbonColor` | `string` | `var(--color-accent-primary)` | CSS color for the active ribbon |
18
+ | `className` | `string` | — | Optional class override |
19
19
 
20
20
  ### `useSectionNavigation`
21
- A hook that wires up scroll-spy and programmatic scrolling for a set of section refs.
21
+ A React hook that wires up scroll-spy detection and smooth scrolling for a set of section refs. Uses `scrollElementIntoView` internally and suppresses scroll-spy during programmatic scrolls.
22
22
 
23
- **Returns:** `{ activeSection, handleSectionClick }`
23
+ **Parameters:**
24
24
 
25
- **Options:**
25
+ | Param | Type | Description |
26
+ |---|---|---|
27
+ | `sections` | `{ id: string; ref: RefObject<HTMLElement> }[]` | Sections to track |
28
+ | `options.offset` | `number` | Scroll offset for sticky chrome (default: `100`) |
26
29
 
27
- | Option | Type | Default | Description |
28
- |--------|------|---------|-------------|
29
- | `offset` | `number` | `100` | Header offset in px passed to `scrollElementIntoView` |
30
+ **Returns:** `{ activeSection: string, handleSectionClick: (id: string) => void }`
30
31
 
31
32
  ## Usage Example
32
33
 
33
34
  ```typescript
34
- const heroRef = useRef<HTMLElement>(null)
35
- const detailsRef = useRef<HTMLElement>(null)
35
+ const overviewRef = useRef<HTMLElement>(null)
36
+ const detailsRef = useRef<HTMLElement>(null)
36
37
 
37
38
  const sections = [
38
- { id: 'hero', ref: heroRef },
39
- { id: 'details', ref: detailsRef },
39
+ { id: 'overview', ref: overviewRef },
40
+ { id: 'details', ref: detailsRef },
40
41
  ]
41
42
 
42
43
  const { activeSection, handleSectionClick } = useSectionNavigation(sections, {
@@ -47,17 +48,18 @@ return (
47
48
  <>
48
49
  <StickySectionNav
49
50
  sections={[
50
- { id: 'hero', label: 'Overview' },
51
- { id: 'details', label: 'Details' },
51
+ { id: 'overview', label: 'Overview' },
52
+ { id: 'details', label: 'Details' },
52
53
  ]}
53
54
  activeSection={activeSection}
54
55
  onSectionClick={handleSectionClick}
55
56
  ribbonPosition="left"
56
57
  />
57
- <section id="hero" ref={heroRef}>...</section>
58
- <section id="details" ref={detailsRef}>...</section>
58
+
59
+ <section id="overview" ref={overviewRef}>...</section>
60
+ <section id="details" ref={detailsRef}>...</section>
59
61
  </>
60
62
  )
61
63
  ```
62
64
 
63
- > **Scroll-spy behavior:** Scroll events are throttled at 100ms. A `isScrollingFromClick` guard suppresses the spy for 500ms after a nav click to prevent active-state flicker during programmatic scrolling.
65
+ **Source:** [`sticky-section-nav.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/sticky-section-nav.tsx)
@@ -0,0 +1,40 @@
1
+ <!-- source-hash: 32d8ecb25777faace2a4b5a46e28428a -->
2
+ Barrel export file for the **Onboarding Guides** product surface, scoped to the `openframe` route. Aggregates view components, skeleton loaders, and query hooks for consuming applications.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `OnboardingGuidesCatalogView` | Component | Full catalog/list view for onboarding guides |
9
+ | `OnboardingGuidesCatalogViewProps` | Type | Props interface for the catalog view |
10
+ | `OnboardingGuideDetailView` | Component | Detail/single-guide view |
11
+ | `OnboardingGuideDetailViewProps` | Type | Props interface for the detail view |
12
+ | `OnboardingGuidesCatalogSkeleton` | Component | Loading skeleton for the catalog view |
13
+ | `useOnboardingGuides` | Hook | Fetches a paginated list of onboarding guides |
14
+ | `useOnboardingGuide` | Hook | Fetches a single onboarding guide by ID |
15
+ | `useOnboardingGuideSections` | Hook | Fetches sections for a given guide |
16
+ | `onboardingGuideKeys` | Object | TanStack Query key factory for cache management |
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ import {
22
+ OnboardingGuidesCatalogView,
23
+ OnboardingGuideDetailView,
24
+ OnboardingGuidesCatalogSkeleton,
25
+ useOnboardingGuides,
26
+ } from '@flamingo-stack/openframe-oss-lib/components/onboarding-guides'
27
+
28
+ // If you need the OnboardingGuide row type, import from the chat surface:
29
+ import type { OnboardingGuide } from
30
+ '@flamingo-stack/openframe-frontend-core/components/chat'
31
+
32
+ function GuidesPage() {
33
+ const { data, isLoading } = useOnboardingGuides()
34
+
35
+ if (isLoading) return <OnboardingGuidesCatalogSkeleton />
36
+ return <OnboardingGuidesCatalogView guides={data} />
37
+ }
38
+ ```
39
+
40
+ > **⚠️ Ambiguous re-export warning:** Do **not** re-export `OnboardingGuide`, `OnboardingGuideFilters`, `OnboardingGuideListResponse`, or `OnboardingGuideSectionSummary` from this barrel. These types are already exported via `components/chat` — duplicating them causes **TS2308** at the top-level `components/index.ts` barrel. See [`shared/roadmap/index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/shared/roadmap/index.ts) for the same pattern applied to `RoadmapItem`.