@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,43 +1,44 @@
1
- <!-- source-hash: 1652a2fc27882d2f080c7367aefb18e6 -->
2
- A React loading skeleton component that displays animated placeholder elements while profile data is being fetched, providing visual feedback during loading states.
1
+ <!-- source-hash: 562bc3a2494ee1c2637528e67f5924fc -->
2
+ A React skeleton loading component that renders an animated placeholder UI for profile content while data is being fetched.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **ProfileLoadingSkeleton**
7
- - Main component that renders skeleton placeholders
8
- - Takes optional `className` prop for styling customization
9
- - Creates animated placeholder elements mimicking profile layout
6
+ - **`ProfileLoadingSkeleton`** — Named export functional component that renders a two-section animated skeleton:
7
+ - **Header skeleton** Circular avatar placeholder (`h-16 w-16`) alongside two text line placeholders
8
+ - **Content skeleton** — Three progressively narrower text line placeholders (`full`, `3/4`, `1/2` widths)
10
9
 
11
- **Props Interface**
12
- - `ProfileLoadingSkeletonProps` - Defines optional className string prop
10
+ - **`ProfileLoadingSkeletonProps`** — Interface accepting an optional `className` string for layout customization
11
+
12
+ - **`cn`** utility — Merges Tailwind class names, allowing consumers to extend or override base styles
13
13
 
14
14
  ## Usage Example
15
15
 
16
16
  ```typescript
17
17
  import { ProfileLoadingSkeleton } from './components/ProfileLoadingSkeleton'
18
18
 
19
+ // Basic usage
19
20
  function ProfilePage() {
20
- const { data: profile, isLoading } = useProfile()
21
-
21
+ const { data, isLoading } = useProfile()
22
+
22
23
  if (isLoading) {
23
- return (
24
- <div className="container mx-auto p-4">
25
- <ProfileLoadingSkeleton className="max-w-md" />
26
- </div>
27
- )
24
+ return <ProfileLoadingSkeleton />
28
25
  }
29
-
30
- return <ProfileDisplay profile={profile} />
26
+
27
+ return <ProfileCard data={data} />
31
28
  }
32
29
 
33
- // Custom styling example
34
- function CustomProfileSkeleton() {
30
+ // With custom className for layout overrides
31
+ function SidebarProfile() {
35
32
  return (
36
- <ProfileLoadingSkeleton
37
- className="bg-white rounded-lg p-6 shadow-sm"
38
- />
33
+ <ProfileLoadingSkeleton className="max-w-sm px-4" />
39
34
  )
40
35
  }
41
36
  ```
42
37
 
43
- The component features a header section with circular avatar placeholder and text lines, followed by content area with varying width placeholder lines. All elements use `animate-pulse` for smooth loading animations and `bg-gray-200` for consistent skeleton styling.
38
+ ## Notes
39
+
40
+ - Uses the `ods-skeleton` design token (via `bg-ods-skeleton`) for consistent skeleton coloring across the OpenFrame Design System
41
+ - Animation is handled entirely via Tailwind's `animate-pulse` — no additional animation dependencies required
42
+ - The `className` prop is merged at the root `div`, making it straightforward to control width, padding, or margin from the parent
43
+
44
+ **Source:** [`flamingo-stack/openframe-oss-lib`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ProfileLoadingSkeleton.tsx)
@@ -0,0 +1,41 @@
1
+ <!-- source-hash: 0d5d4e7429863e3d1ee5b0efa2bea571 -->
2
+ Barrel export file for the `related-content` component subpath, re-exporting all public API surface from the `related-content-section` module.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `RelatedContentSection` | Component | Main component for rendering a section of related content cards |
9
+ | `GROUP_PAGE_SIZE` | Constant | Pagination size constant for grouped content display |
10
+ | `RelatedContentSectionProps` | Type | Props interface for `RelatedContentSection` |
11
+ | `CardLinkProvider` | Type | Provider component type for card link rendering |
12
+ | `CardLinkProviderProps` | Type | Props interface for `CardLinkProvider` |
13
+ | `CardLinkAnchorProps` | Type | Props interface for anchor elements within card links |
14
+ | `AdminCampaignCardSlot` | Type | Slot type for admin campaign card customization |
15
+
16
+ ## Usage Example
17
+
18
+ ```typescript
19
+ import {
20
+ RelatedContentSection,
21
+ GROUP_PAGE_SIZE,
22
+ type RelatedContentSectionProps,
23
+ type CardLinkProvider,
24
+ } from '@flamingo-stack/openframe-frontend-core/components/related-content'
25
+
26
+ const linkProvider: CardLinkProvider = ({ href, children }) => (
27
+ <a href={href}>{children}</a>
28
+ )
29
+
30
+ const props: RelatedContentSectionProps = {
31
+ items: contentItems,
32
+ pageSize: GROUP_PAGE_SIZE,
33
+ cardLinkProvider: linkProvider,
34
+ }
35
+
36
+ <RelatedContentSection {...props} />
37
+ ```
38
+
39
+ ## Source
40
+
41
+ [`index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/index.ts)
@@ -0,0 +1,62 @@
1
+ <!-- source-hash: fd0a68c39b09e2977a51c082ec62bbc0 -->
2
+ Renders grouped content references using canonical card components, supporting three data modes: controlled (explicit refs), suggestion (self-fetched via API), and SSR-hydrated suggestion (server-prefetched with client hydration).
3
+
4
+ ## Key Components
5
+
6
+ ### Exported Types & Interfaces
7
+
8
+ - **`CardLinkAnchorProps`** — Anchor prop bundle (`href`, `target`, `rel`, `onClick`) passed to per-card link surfaces
9
+ - **`CardLinkProviderProps` / `CardLinkProvider`** — Render-prop component type for host-injected navigation logic (keeps hook calls inside the injected component)
10
+ - **`AdminCampaignCardSlot`** — Optional host-injected `{ Card, Skeleton }` pair for the admin-only `marketing_campaign` type
11
+
12
+ ### Internal Functions
13
+
14
+ - **`DefaultLinkPropsProvider`** — Standalone embed default: same-tab for relative URLs, new tab for cross-origin (via `decideNewTab`, no router dependency)
15
+ - **`defaultResolveHref`** — Returns the ref's stored `url` and `targetPlatform` as-is; hubs override this with domain-aware recomposition
16
+ - **`renderSkeletonForType`** — Per-type skeleton dispatch matching each card's exact size to eliminate layout shift on data resolve
17
+ - **`CardForType`** — Pure function component (zero hook calls) dispatching the correct sized card per content type
18
+
19
+ ## Usage Example
20
+
21
+ ```typescript
22
+ // Controlled mode — render explicit refs
23
+ <RelatedContentSection
24
+ contentRefs={myRefs}
25
+ apiBaseUrl="https://api.example.com"
26
+ />
27
+
28
+ // Suggestion mode — self-fetch from the 5-tier engine
29
+ <RelatedContentSection
30
+ entityType="blog_post_existing"
31
+ entityId="post-123"
32
+ apiBaseUrl="https://api.example.com"
33
+ minResults={5}
34
+ />
35
+
36
+ // SSR-hydrated — skip first client fetch
37
+ <RelatedContentSection
38
+ entityType="blog_post_existing"
39
+ entityId="post-123"
40
+ apiBaseUrl="https://api.example.com"
41
+ initialItems={serverFetchedRefs}
42
+ />
43
+
44
+ // Hub embed with custom link provider and campaign card
45
+ <RelatedContentSection
46
+ entityType="investor_update"
47
+ entityId="update-42"
48
+ apiBaseUrl="https://api.example.com"
49
+ LinkProvider={HubNavLinkProvider}
50
+ resolveHref={buildContentURL}
51
+ adminCampaignCard={{ Card: CampaignCard, Skeleton: CampaignCardSkeleton }}
52
+ />
53
+ ```
54
+
55
+ ## Data Flow & Architecture Notes
56
+
57
+ - **No `react-query` dependency** — uses `useSelfFetch` (plain `fetch`) so embedders need no `QueryClientProvider`
58
+ - **Deep card imports** (not the chat barrel) keep this component's source graph react-query-free at the import level
59
+ - **Group layout/card sizing** delegated entirely to `CONTENT_REF_GROUPS` — no per-type layout logic lives here
60
+ - **Lockstep sibling**: `CardForType` (sized cards) mirrors `CHAT_CARD_REGISTRY` in `../chat/entity-cards/dispatch.tsx` (compact `size='sm'`); register new fetch-mode types in **both** dispatchers
61
+
62
+ **Source:** [`related-content-section.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/related-content-section.tsx)
@@ -0,0 +1,56 @@
1
+ <!-- source-hash: dcbaab437550f57b36728f8f0999a86c -->
2
+ Shared author byline card for article-shaped detail pages (blog posts, product releases, onboarding guides, investor updates). Designed for embed-readiness across multiple host apps without requiring Next.js or a `ChatRuntime` provider.
3
+
4
+ ## Key Components
5
+
6
+ ### `ArticleAuthorBylineProps`
7
+
8
+ | Prop | Type | Description |
9
+ |------|------|-------------|
10
+ | `author` | `string \| null` | Required display name; returns `null` when empty |
11
+ | `avatar` | `string \| null` | Avatar URL; falls back to a `User` icon placeholder |
12
+ | `bio` | `string \| null` | Bio paragraph rendered below the name |
13
+ | `jobTitle` | `string \| null` | Job title rendered under the author name |
14
+ | `publishedAt` | `string \| Date \| null` | ISO string or Date; formatted as "Month D, YYYY" (UTC-stable) |
15
+ | `href` | `string \| null` | Optional link wrapping the author name |
16
+ | `fallbackBio` | `string \| null` | Italic fallback text when `bio` is absent; hosts inject platform-specific copy |
17
+ | `size` | `'md' \| 'lg'` | Avatar size — `md` = 56px (default), `lg` = 64px |
18
+ | `proxyImageUrl` | `(url: string) => string` | Host-injected image URL mapper; takes precedence over ambient runtime proxy |
19
+
20
+ ### `ArticleAuthorByline`
21
+
22
+ Main exported component. Renders an avatar, name, optional date/job title, and bio. Avatar URLs are proxied through the optional ambient `ChatRuntime` (`imageProxyUrlPrefix`) or a host-injected `proxyImageUrl` — falls back to the raw URL when neither is available.
23
+
24
+ ### `formatDate` (internal)
25
+
26
+ Formats a `string | Date` to `"Month D, YYYY"` using `timeZone: 'UTC'` to prevent SSR/client hydration mismatches (React error #418) near midnight boundaries.
27
+
28
+ ## Usage Example
29
+
30
+ ```typescript
31
+ import { ArticleAuthorByline } from 'openframe-oss-lib/components/article-author-byline'
32
+
33
+ // Basic usage
34
+ <ArticleAuthorByline
35
+ author="Jane Smith"
36
+ avatar="https://cdn.example.com/avatars/jane.jpg"
37
+ jobTitle="Senior Engineer"
38
+ publishedAt="2024-06-15"
39
+ href="/authors/jane-smith"
40
+ bio="Jane writes about distributed systems and developer tooling."
41
+ size="lg"
42
+ />
43
+
44
+ // With host-injected fallback bio (e.g. from hub app-config)
45
+ <ArticleAuthorByline
46
+ author="Jane Smith"
47
+ publishedAt={new Date()}
48
+ fallbackBio="Contributing author on the Flamingo platform."
49
+ proxyImageUrl={(url) => `https://img-proxy.example.com/?url=${url}`}
50
+ />
51
+
52
+ // Returns null — no card rendered
53
+ <ArticleAuthorByline author={null} />
54
+ ```
55
+
56
+ **Source:** [`article-author-byline.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/article-author-byline.tsx)
@@ -1,51 +1,40 @@
1
- <!-- source-hash: d3a9248386a37f94266fe130168f8cb2 -->
2
- A client-side React component that provides a skeleton loading state for detail pages, simulating the layout of content-heavy pages like product details, case studies, or articles.
1
+ <!-- source-hash: 0f15139d09909f034ccba359c69226cf -->
2
+ Animated loading skeleton for detail/article pages, providing placeholder UI while content is being fetched.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **DetailPageSkeleton** - Main skeleton component with configurable metadata columns and image gallery
7
- - **DetailPageSkeletonProps** - Interface defining optional configuration props
8
- - `metadataColumns` - Number of metadata grid columns (default: 4)
9
- - `showImageGallery` - Toggle for horizontal image gallery vs featured image (default: true)
6
+ ### `DetailPageSkeletonProps`
7
+ | Prop | Type | Default | Description |
8
+ |------|------|---------|-------------|
9
+ | `metadataColumns` | `number` | `4` | Number of metadata grid columns |
10
+ | `showImageGallery` | `boolean` | `true` | Toggles horizontal image gallery vs. featured image skeleton |
11
+ | `bare` | `boolean` | `false` | Renders skeleton blocks only, without the built-in `PageLayout` wrapper |
10
12
 
11
- The component renders animated placeholder blocks for:
12
- - Title section
13
- - Category tags
14
- - Configurable metadata grid
15
- - Image gallery or featured image
16
- - Multiple content sections with headings and paragraphs
13
+ ### `DetailPageSkeleton`
14
+ The main export. Renders a pulsing skeleton layout composed of:
15
+ - **Title block** — full-width heading placeholder
16
+ - **Category tags** — row of tag-shaped placeholders
17
+ - **Metadata grid** dynamic column count via `metadataColumns`
18
+ - **Image gallery or featured image** toggled by `showImageGallery`
19
+ - **Content sections** — three repeating section/paragraph blocks
20
+
21
+ When `bare = false` (default), the skeleton is wrapped in a self-contained `PageLayout` at the hub article width (`max-w-[1280px]`). Set `bare = true` when the caller already provides a page shell, ensuring the loading state inherits the same width, padding, and `min-height` as the loaded page.
17
22
 
18
23
  ## Usage Example
19
24
 
20
25
  ```typescript
21
- import { DetailPageSkeleton } from './detail-page-skeleton';
22
-
23
- // Default configuration (4 columns, with image gallery)
24
- function ProductPage() {
25
- return (
26
- <div>
27
- {loading ? (
28
- <DetailPageSkeleton />
29
- ) : (
30
- <ProductDetails data={product} />
31
- )}
32
- </div>
33
- );
34
- }
35
-
36
- // Custom configuration for case study pages
37
- function CaseStudyPage() {
38
- return (
39
- <div>
40
- {loading ? (
41
- <DetailPageSkeleton
42
- metadataColumns={3}
43
- showImageGallery={false} // Shows featured image instead
44
- />
45
- ) : (
46
- <CaseStudyContent data={caseStudy} />
47
- )}
48
- </div>
49
- );
50
- }
51
- ```
26
+ // Default self-contained with PageLayout wrapper
27
+ <DetailPageSkeleton />
28
+
29
+ // Match a gallery-less case study page
30
+ <DetailPageSkeleton showImageGallery={false} metadataColumns={3} />
31
+
32
+ // Inside a caller-supplied shell (e.g. during streaming SSR)
33
+ <PageShell>
34
+ <DetailPageSkeleton bare />
35
+ </PageShell>
36
+ ```
37
+
38
+ ## Source
39
+
40
+ [`detail-page-skeleton.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/detail-page-skeleton.tsx)
@@ -0,0 +1,43 @@
1
+ <!-- source-hash: fb39f9743352e03b32dfac5b92ed2410 -->
2
+ Horizontal-scroll media strip that renders mixed still-image and video tiles, opening a lightbox modal for images and playing clips inline.
3
+
4
+ ## Key Components
5
+
6
+ ### Interfaces
7
+
8
+ - **`MediaGalleryStripItem`** — Shape of each media item: `media_type`, `media_url`, optional `title`, and optional stable `id`
9
+ - **`MediaGalleryStripProps`** — Props for the strip: an `items` array and an optional `className`
10
+
11
+ ### Exports
12
+
13
+ - **`MediaGalleryStrip`** — Primary component; renders a horizontally-scrollable row of 240×200 tiles
14
+ - **`isGalleryImage`** *(internal)* — Returns `true` for any `media_type` that is not `"video"` or `"demo"`
15
+
16
+ ### Behavior
17
+
18
+ - **Image tiles** render as accessible `<button>` elements (keyboard focusable, `aria-label` included) that open `ImageGalleryModal` at the correct lightbox index, computed against image-only items (skipping video tiles to avoid off-by-one bugs)
19
+ - **Video tiles** render `<Video url={...} layout="native" />` inline with its own native controls
20
+ - Returns `null` when `items` is empty or undefined
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ import { MediaGalleryStrip, MediaGalleryStripItem } from './media-gallery-strip';
26
+
27
+ const media: MediaGalleryStripItem[] = [
28
+ { id: 'img-1', media_type: 'screenshot', media_url: '/shots/dashboard.png', title: 'Dashboard' },
29
+ { id: 'vid-1', media_type: 'video', media_url: '/clips/demo.mp4', title: 'Demo' },
30
+ { id: 'img-2', media_type: 'screenshot', media_url: '/shots/settings.png', title: 'Settings' },
31
+ ];
32
+
33
+ export default function ReleasePage() {
34
+ return (
35
+ <MediaGalleryStrip
36
+ items={media}
37
+ className="py-4"
38
+ />
39
+ );
40
+ }
41
+ ```
42
+
43
+ > **Note:** The lightbox index tracks only image-type items — clicking the third tile (an image) correctly opens the modal at index `1`, not index `2`, regardless of how many video tiles precede it.
@@ -1,39 +1,40 @@
1
- <!-- source-hash: a856dcd91dfe86722b63f8f7f40c9eea -->
2
- Renders the delivery section body with two filterable data tables — "Recently Completed" and "Active Tasks" — fetched from configurable API endpoints and driven by URL search parameters.
1
+ <!-- source-hash: ad9149ea5e08cab5bb6c603f98a042bd -->
2
+ Renders the delivery section body with two filtered tables — "Recently Completed" and "Active Tasks" — fetched from separate API endpoints and driven by URL search params.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### `DeliveryLists` (default export)
7
- Main component that orchestrates dual parallel fetches and renders both `DeliveryTable` instances.
6
+ **`DeliveryLists` (default export)**
7
+ Main component that orchestrates data fetching and rendering for both delivery buckets.
8
+
9
+ **`DeliveryListsProps`**
8
10
 
9
- ### `DeliveryListsProps`
10
11
  | Prop | Type | Default | Description |
11
- |------|------|---------|-------------|
12
+ |---|---|---|---|
12
13
  | `completedApiEndpoint` | `string` | `/api/delivery/completed` | GET endpoint for completed tasks |
13
14
  | `inProgressApiEndpoint` | `string` | `/api/delivery/in-progress` | GET endpoint for active tasks |
14
- | `searchParamKey` | `string` | `'search'` | URL + API query param key for search input |
15
- | `taskTypeParamKey` | `string` | `'task_type'` | URL + API query param key for task-type filter |
15
+ | `searchParamKey` | `string` | `DEV_SECTION_PARAM_KEYS.search` | URL param key for search input |
16
+ | `taskTypeParamKey` | `string` | `DEV_SECTION_PARAM_KEYS.deliveryTaskType` | URL param key for task-type filter |
17
+
18
+ **Internal behaviors**
19
+ - Reads `search` and `task_type` from URL params via `useSearchParams()` and passes them as query params on both outbound fetches (parallel via `Promise.all`)
20
+ - `useScrollToHash` — deep-link support for `?search=<id>#delivery-<id>` patterns using `STICKY_HEADER_OFFSET_PX`
21
+ - Renders `LoadError` on fetch failure (with reload retry), `EmptyState` (search or generic variant) when no results, or both `DeliveryTable` instances when data is present
16
22
 
17
- > **Coupling constraint:** `searchParamKey` and `taskTypeParamKey` must match the consuming chrome's `section.search.paramKey` / `section.filter.paramKey`. These keys are used for both URL reads and outbound API query params override both ends consistently.
23
+ > ⚠️ **Coupling constraint:** `searchParamKey` / `taskTypeParamKey` must match the consuming chrome's `section.search.paramKey` / `section.filter.paramKey` on both the URL-read side and the outbound API query string. Mismatches require proxy-level rewriting.
18
24
 
19
25
  ## Usage Example
20
26
 
21
27
  ```typescript
22
- // Zero-config (OpenFrame defaults)
28
+ // Zero-config — defaults match hub API routes and OpenFrame chrome param keys
23
29
  <DeliveryLists />
24
30
 
25
- // Custom endpoints with matching chrome param keys
31
+ // Custom endpoints and param keys (must match your chrome config)
26
32
  <DeliveryLists
27
- completedApiEndpoint="/api/v2/tasks/done"
28
- inProgressApiEndpoint="/api/v2/tasks/active"
33
+ completedApiEndpoint="/api/v2/delivery/done"
34
+ inProgressApiEndpoint="/api/v2/delivery/active"
29
35
  searchParamKey="q"
30
36
  taskTypeParamKey="type"
31
37
  />
32
38
  ```
33
39
 
34
- ## Behavior
35
-
36
- - **Parallel fetches** via `Promise.all` on both endpoints, re-triggered when URL params or endpoint props change
37
- - **Empty states**: shows a "Reset Filters" CTA when active filters return no results; shows a generic message when no tasks exist
38
- - **Error state**: renders `<LoadError>` with a page-reload retry on fetch failure
39
- - **Loading**: passes `isLoading` to each `<DeliveryTable>` for skeleton rendering
40
+ **Source:** [`delivery-lists.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/delivery-lists.tsx)
@@ -1,41 +1,45 @@
1
- <!-- source-hash: 48827d34bfec0bd0e5c771a4967c8775 -->
2
- Single-row presentational component for a ClickUp delivery item, serving as the shared rendering primitive for both the public delivery list table and the HubSpot ticket linked-delivery card.
1
+ <!-- source-hash: 54319e5c90a08528d4927fa4cb24f409 -->
2
+ Canonical single-row presentation component for a ClickUp delivery item, serving as the shared visual primitive across the `/bug-fixes-and-enhancements` delivery table and HubSpot ticket linked-delivery cards.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `DeliveryRow` (exported component)
7
- Renders a responsive row layout with title, subtitle, description, and status/type badges. Conditionally wraps content in a navigable `<Link>` (via env-aware Next.js shim) or a plain `<div>` depending on whether `href` is provided.
7
+
8
+ Renders a delivery item's title, subtitle, description, status badge, and task-type badge in a responsive two-column layout. Conditionally renders as a clickable `<Link>` (env-aware embed shim) or a plain `<div>` based on the `href` prop.
8
9
 
9
10
  ### `DeliveryRowProps` (exported interface)
11
+
10
12
  | Prop | Type | Description |
11
- |------|------|-------------|
12
- | `item` | `DeliveryItem` | ClickUp task data (title, status, type, dates, etc.) |
13
- | `href` | `string?` | When set, makes the entire row a clickable deep-link anchor |
14
- | `caption` | `string?` | Small uppercase label above the title (e.g. `"LINKED DELIVERY"`) |
15
- | `className` | `string?` | Additional Tailwind classes for the outer element |
13
+ |---|---|---|
14
+ | `item` | `DeliveryItem` | The delivery data to render |
15
+ | `href` | `string?` | When set, wraps the row in a `<Link>` for deep-linking |
16
+ | `caption` | `string?` | Uppercase label above the title (e.g., `"LINKED DELIVERY"`) |
17
+ | `id` | `string?` | DOM id for `scrollIntoView` targeting (e.g., `delivery-<external_id>`) |
18
+ | `className` | `string?` | Additional Tailwind classes merged via `cn()` |
16
19
 
17
- ### `getRelativeTime` (internal helper)
18
- Converts a Unix timestamp to human-readable relative time (`"yesterday"`, `"3 weeks ago"`, etc.). Inlined so the component owns its full rendering contract independently of `DeliveryTable`.
20
+ ### `getRelativeTime` (internal)
21
+
22
+ Converts a Unix timestamp to a human-readable relative string (`"today"`, `"yesterday"`, `"3 days ago"`, etc.).
19
23
 
20
24
  ## Usage Example
21
25
 
22
26
  ```typescript
23
- // Standard list row (no interactivity)
24
- <DeliveryRow item={deliveryItem} />
25
-
26
- // Clickable deep-link variant (ticket card surface)
27
+ // Standard list rendering (DeliveryTable)
27
28
  <DeliveryRow
28
29
  item={deliveryItem}
29
- href={buildDevSectionUrl('delivery', deliveryItem.id)}
30
- caption="LINKED DELIVERY"
30
+ id={`delivery-${deliveryItem.externalId}`}
31
31
  />
32
32
 
33
- // With focus highlight (after ?focus=<id> scroll)
33
+ // Ticket-side linked-delivery card with deep-link and caption
34
34
  <DeliveryRow
35
35
  item={deliveryItem}
36
- id={deliveryItem.id}
37
- className="animate-flash-focus"
36
+ href={buildDevSectionUrl('delivery', deliveryItem.id)}
37
+ caption="LINKED DELIVERY"
38
+ id={`delivery-${deliveryItem.externalId}`}
38
39
  />
39
40
  ```
40
41
 
41
- The `href` prop uses the embed-aware `next/link` shim — preserving TanStack Query state on back-navigation in Next.js hosts while gracefully degrading to a plain `<a>` elsewhere.
42
+ **Key behaviors:**
43
+ - `href` present → outer element becomes a `<Link>` (soft Next.js navigation, preserves TanStack Query state on back)
44
+ - `id` present → enables `useScrollToHash` targeting; `scroll-mt-24` offset is always applied
45
+ - Highlighted state (flash-focus pulse) is applied by the consuming component via `className`
@@ -1,21 +1,20 @@
1
- <!-- source-hash: d5d3a5d0e430ad78e58c1dc249ed1e27 -->
2
- A bordered card component that renders a list of `DeliveryItem` entries, one `DeliveryRow` per item, with loading skeleton and empty-state handling.
1
+ <!-- source-hash: 93ccac2f20e75b0f16b4483fd2b33560 -->
2
+ Renders a bordered card containing one `DeliveryRow` per delivery item, with skeleton loading states, empty states, and deep-link anchor support via URL `?focus=<id>` params.
3
3
 
4
4
  ## Key Components
5
5
 
6
- | Export | Type | Description |
7
- |--------|------|-------------|
8
- | `DeliveryTable` | Named export | Main table container rendering delivery items |
9
- | `SkeletonRow` | Internal | Animated placeholder row shown during loading |
10
- | `DeliveryTableProps` | Interface | `items: DeliveryItem[]`, `isLoading?: boolean` |
6
+ - **`DeliveryTable`** *(exported)* Main component accepting a list of `DeliveryItem` objects. Handles three render states: skeleton loading, empty, and populated. Each row receives a DOM `id` built via `devSectionAnchorId('delivery', item.id)` (e.g. `#delivery-<external_id>`) to support scroll-to-hash deep-linking from ticket linked-cards.
7
+ - **`SkeletonRow`** *(internal)* — Animated pulse placeholder matching the responsive layout of a real row (title, subtitle, description, and two badge slots).
8
+ - **`DeliveryItem`** Type imported from `../../../types/delivery`; the flat item shape consumed by this table and its sibling `DeliveryRow`.
11
9
 
12
- ## Rendering States
10
+ ## Props
13
11
 
14
- | State | Trigger | Output |
15
- |-------|---------|--------|
16
- | Loading | `isLoading={true}` | 5 animated `SkeletonRow` placeholders |
17
- | Empty | `items.length === 0` | "No tasks available" message |
18
- | Default | Items present | One `<DeliveryRow>` per item, separated by borders |
12
+ | Prop | Type | Default | Description |
13
+ |---|---|---|---|
14
+ | `items` | `DeliveryItem[]` | required | Flat list of delivery items to render |
15
+ | `isLoading` | `boolean` | `false` | Renders 5 skeleton rows when `true` |
16
+
17
+ > **Note:** `focusId` (the `?focus=<id>` URL param) is resolved by the parent `DeliveryLists` component; this table only applies the anchor id to each row via `devSectionAnchorId`.
19
18
 
20
19
  ## Usage Example
21
20
 
@@ -23,19 +22,18 @@ A bordered card component that renders a list of `DeliveryItem` entries, one `De
23
22
  import { DeliveryTable } from './delivery-table';
24
23
  import type { DeliveryItem } from '../../../types/delivery';
25
24
 
26
- // Normal render with data
27
- <DeliveryTable items={deliveryItems} />
25
+ const inProgressItems: DeliveryItem[] = [...];
28
26
 
29
- // Loading state (e.g. while fetching)
27
+ // Loading state
30
28
  <DeliveryTable items={[]} isLoading={true} />
31
29
 
32
- // Typically consumed by DeliveryLists split into two tables:
33
- <DeliveryTable items={completedItems} />
30
+ // Populated parent renders two separate tables per bucket
34
31
  <DeliveryTable items={inProgressItems} />
32
+
33
+ // Empty state (renders "No tasks available" message)
34
+ <DeliveryTable items={[]} />
35
35
  ```
36
36
 
37
- ## Notes
37
+ ## Source
38
38
 
39
- - Each item row is wrapped in a `div` with `border-b` and `last:border-b-0` to avoid a trailing border on the final row.
40
- - `DeliveryRow` handles all visual logic per row — `DeliveryTable` is purely a layout/state shell.
41
- - Designed to be instantiated twice by the parent `DeliveryLists` component: once for completed items and once for in-progress items.
39
+ [`delivery-table.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/delivery-table.tsx)