@flamingo-stack/openframe-frontend-core 0.0.481 → 0.0.482-snapshot.20260726003127

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 (841) hide show
  1. package/dist/{chunk-FP4H6Y5O.js → chunk-3VMCJK7A.js} +3 -3
  2. package/dist/{chunk-OWMLWJQY.cjs → chunk-5YFXUXOV.cjs} +2432 -1502
  3. package/dist/chunk-5YFXUXOV.cjs.map +1 -0
  4. package/dist/{chunk-4SMRQ4SN.js → chunk-6U7HIZSW.js} +3 -3
  5. package/dist/{chunk-MMCBQJKE.cjs → chunk-AZZQLEKY.cjs} +11 -11
  6. package/dist/{chunk-MMCBQJKE.cjs.map → chunk-AZZQLEKY.cjs.map} +1 -1
  7. package/dist/{chunk-OZJN54R5.cjs → chunk-CG5OX6WF.cjs} +37 -37
  8. package/dist/{chunk-OZJN54R5.cjs.map → chunk-CG5OX6WF.cjs.map} +1 -1
  9. package/dist/{chunk-LK623WCC.cjs → chunk-DYLIBE6I.cjs} +9 -9
  10. package/dist/{chunk-LK623WCC.cjs.map → chunk-DYLIBE6I.cjs.map} +1 -1
  11. package/dist/{chunk-AN47EIIJ.cjs → chunk-FEQW64Q5.cjs} +59 -59
  12. package/dist/{chunk-AN47EIIJ.cjs.map → chunk-FEQW64Q5.cjs.map} +1 -1
  13. package/dist/{chunk-66BNAFO6.js → chunk-FIRIO2NB.js} +4 -4
  14. package/dist/{chunk-MGKCS6KS.js → chunk-GWJNTDXR.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-DEHZ5CTC.js → chunk-HAJQWSSU.js} +2 -2
  18. package/dist/{chunk-JUJY3HQS.cjs → chunk-JBC5DAI5.cjs} +19 -19
  19. package/dist/{chunk-JUJY3HQS.cjs.map → chunk-JBC5DAI5.cjs.map} +1 -1
  20. package/dist/{chunk-VTSRDC4W.js → chunk-JKRX3JHT.js} +2 -2
  21. package/dist/{chunk-M7O74OWG.cjs → chunk-KDXEKD3K.cjs} +31 -31
  22. package/dist/{chunk-M7O74OWG.cjs.map → chunk-KDXEKD3K.cjs.map} +1 -1
  23. package/dist/{chunk-Y3Y2DLNO.js → chunk-LT2PU6SK.js} +3 -3
  24. package/dist/{chunk-R5WJJL4V.js → chunk-RDCAJDX7.js} +5 -5
  25. package/dist/{chunk-N2JZ33V7.cjs → chunk-RFMH6MLM.cjs} +26 -26
  26. package/dist/{chunk-N2JZ33V7.cjs.map → chunk-RFMH6MLM.cjs.map} +1 -1
  27. package/dist/{chunk-BBUEY73L.js → chunk-RJ4OJWT5.js} +6269 -5339
  28. package/dist/chunk-RJ4OJWT5.js.map +1 -0
  29. package/dist/{chunk-G3UN2DXU.cjs → chunk-STYA77PH.cjs} +20 -4
  30. package/dist/chunk-STYA77PH.cjs.map +1 -0
  31. package/dist/{chunk-PSPWT2Q5.js → chunk-T2S7A5IU.js} +4 -4
  32. package/dist/{chunk-INDFIVDV.cjs → chunk-UAFJX7YV.cjs} +12 -12
  33. package/dist/{chunk-INDFIVDV.cjs.map → chunk-UAFJX7YV.cjs.map} +1 -1
  34. package/dist/{chunk-H6DFCF44.cjs → chunk-UO7TF67V.cjs} +82 -82
  35. package/dist/{chunk-H6DFCF44.cjs.map → chunk-UO7TF67V.cjs.map} +1 -1
  36. package/dist/{chunk-LNKWY74S.cjs → chunk-UTIW7O7R.cjs} +5 -5
  37. package/dist/{chunk-LNKWY74S.cjs.map → chunk-UTIW7O7R.cjs.map} +1 -1
  38. package/dist/{chunk-2DIOV7BR.js → chunk-WIITTL5I.js} +4 -4
  39. package/dist/{chunk-ZRANZNEA.js → chunk-Y37XYIWA.js} +2 -2
  40. package/dist/{chunk-ZV6E3U3C.cjs → chunk-ZN56E4FX.cjs} +30 -30
  41. package/dist/{chunk-ZV6E3U3C.cjs.map → chunk-ZN56E4FX.cjs.map} +1 -1
  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/marketing.d.ts +11 -1
  105. package/dist/types/marketing.d.ts.map +1 -1
  106. package/dist/types/supabase.d.ts +80 -0
  107. package/dist/types/supabase.d.ts.map +1 -1
  108. package/dist/types/video-processing.d.ts +1 -1
  109. package/dist/types/video-processing.d.ts.map +1 -1
  110. package/dist/utils/announcement-storage.d.ts +1 -1
  111. package/dist/utils/announcement-storage.d.ts.map +1 -1
  112. package/dist/utils/dismiss-cookie.d.ts +27 -0
  113. package/dist/utils/dismiss-cookie.d.ts.map +1 -0
  114. package/dist/utils/dismissal-storage.d.ts +25 -0
  115. package/dist/utils/dismissal-storage.d.ts.map +1 -0
  116. package/dist/utils/index.cjs +48 -10
  117. package/dist/utils/index.cjs.map +1 -1
  118. package/dist/utils/index.d.ts +2 -0
  119. package/dist/utils/index.d.ts.map +1 -1
  120. package/dist/utils/index.js +41 -11
  121. package/dist/utils/index.js.map +1 -1
  122. package/package.json +8 -2
  123. package/src/.index.md +39 -32
  124. package/src/.platform-domains.md +65 -0
  125. package/src/assets/.fae-avatar.md +33 -0
  126. package/src/assets/.index.md +15 -9
  127. package/src/components/.agent-mark.md +31 -0
  128. package/src/components/.announcement-bar.md +47 -35
  129. package/src/components/.calendar.md +19 -15
  130. package/src/components/.categories-cart.md +34 -30
  131. package/src/components/.category-card.md +33 -33
  132. package/src/components/.chart.md +38 -40
  133. package/src/components/.command.md +47 -23
  134. package/src/components/.comment-card.md +31 -26
  135. package/src/components/.content-loading-container.md +45 -20
  136. package/src/components/.context-menu.md +45 -31
  137. package/src/components/.date-time-picker.md +36 -30
  138. package/src/components/.empty-state.md +31 -31
  139. package/src/components/.faq-accordion.md +20 -30
  140. package/src/components/.filter-chip.md +36 -33
  141. package/src/components/.footer-waitlist-button.md +27 -21
  142. package/src/components/.footer.md +39 -24
  143. package/src/components/.form.md +32 -20
  144. package/src/components/.hero-image-uploader.md +35 -31
  145. package/src/components/.icon-display.md +53 -0
  146. package/src/components/.image-cropper.md +34 -33
  147. package/src/components/.index.md +25 -29
  148. package/src/components/.logs-list.md +27 -23
  149. package/src/components/.media-carousel.md +47 -26
  150. package/src/components/.metric-value.md +27 -24
  151. package/src/components/.msp-display.md +29 -23
  152. package/src/components/.open-source-features.md +23 -26
  153. package/src/components/.pagination.md +44 -39
  154. package/src/components/.persistent-filter-controls.md +61 -28
  155. package/src/components/.pricing-display.md +34 -33
  156. package/src/components/.results-count.md +33 -20
  157. package/src/components/.smooth-accordion.md +24 -20
  158. package/src/components/.social-icon-row.md +33 -21
  159. package/src/components/.sonner.md +40 -25
  160. package/src/components/.steps.md +39 -25
  161. package/src/components/.tool-icon.md +34 -21
  162. package/src/components/.unified-filter-logic.md +32 -36
  163. package/src/components/.user-display.md +33 -28
  164. package/src/components/.user-summary-stub.md +40 -33
  165. package/src/components/.vendor-display-button.md +17 -15
  166. package/src/components/.vendor-icon.md +17 -25
  167. package/src/components/.vendor-tag.md +39 -34
  168. package/src/components/.why-it-matters.md +15 -11
  169. package/src/components/.yes-no-display.md +36 -31
  170. package/src/components/authors/.author-detail-view.md +50 -0
  171. package/src/components/case-studies/.index.md +26 -0
  172. package/src/components/case-studies/.share-experience-section.md +45 -0
  173. package/src/components/chat/.approval-batch-message.md +48 -33
  174. package/src/components/chat/.approval-request-message.md +37 -26
  175. package/src/components/chat/.chat-archive-page.md +56 -0
  176. package/src/components/chat/.chat-attachment-bar.md +32 -40
  177. package/src/components/chat/.chat-composer.md +43 -0
  178. package/src/components/chat/.chat-container.md +41 -25
  179. package/src/components/chat/.chat-context-memory-bar.md +53 -0
  180. package/src/components/chat/.chat-context-picker.md +89 -0
  181. package/src/components/chat/.chat-header-icon-button.md +43 -0
  182. package/src/components/chat/.chat-header-search-field.md +51 -0
  183. package/src/components/chat/.chat-input.md +63 -30
  184. package/src/components/chat/.chat-list-empty-state.md +44 -0
  185. package/src/components/chat/.chat-message-enhanced.md +29 -31
  186. package/src/components/chat/.chat-message-list.md +34 -44
  187. package/src/components/chat/.chat-message-row.md +56 -0
  188. package/src/components/chat/.chat-message-skeleton.md +32 -26
  189. package/src/components/chat/.chat-panel-header-mobile.md +46 -0
  190. package/src/components/chat/.chat-panel-header.md +80 -0
  191. package/src/components/chat/.chat-sidebar-skeleton.md +31 -30
  192. package/src/components/chat/.chat-sidebar.md +36 -29
  193. package/src/components/chat/.chat-ticket-list.md +38 -23
  194. package/src/components/chat/.chat-typing-indicator.md +37 -19
  195. package/src/components/chat/.context-compaction-display.md +19 -15
  196. package/src/components/chat/.context-items-list.md +57 -0
  197. package/src/components/chat/.embeddable-chat.md +57 -66
  198. package/src/components/chat/.error-message-display.md +40 -22
  199. package/src/components/chat/.guide-mode-banner.md +41 -0
  200. package/src/components/chat/.guide-welcome.md +43 -0
  201. package/src/components/chat/.index.md +26 -21
  202. package/src/components/chat/.mingo-chat-history.md +63 -0
  203. package/src/components/chat/.mingo-chat-modals.md +44 -0
  204. package/src/components/chat/.mingo-history-rail.md +63 -0
  205. package/src/components/chat/.mingo-info-card.md +59 -0
  206. package/src/components/chat/.mingo-onboarding-card.md +21 -27
  207. package/src/components/chat/.mingo-welcome.md +60 -0
  208. package/src/components/chat/.model-display.md +33 -25
  209. package/src/components/chat/.msp-organization-card-skeleton.md +44 -0
  210. package/src/components/chat/.msp-organization-card.md +51 -0
  211. package/src/components/chat/.nav-link-anchor-via-runtime.md +36 -25
  212. package/src/components/chat/.quick-action-chip.md +60 -0
  213. package/src/components/chat/.quick-action-marquee.md +53 -0
  214. package/src/components/chat/.quick-action-wall.md +68 -0
  215. package/src/components/chat/.remark-mention-chips.md +41 -0
  216. package/src/components/chat/.slash-command-suggestions.md +30 -36
  217. package/src/components/chat/.source-action-button.md +28 -25
  218. package/src/components/chat/.tool-call-blocks.md +18 -30
  219. package/src/components/chat/.tool-execution-display.md +29 -34
  220. package/src/components/chat/entity-cards/.admin-content-card.md +29 -22
  221. package/src/components/chat/entity-cards/.blog-card.md +44 -33
  222. package/src/components/chat/entity-cards/.blog-image-placeholder.md +20 -18
  223. package/src/components/chat/entity-cards/.case-study-card.md +24 -33
  224. package/src/components/chat/entity-cards/.chat-ticket-item.md +39 -22
  225. package/src/components/chat/entity-cards/.customer-interview-card.md +29 -32
  226. package/src/components/chat/entity-cards/.data-room-doc-card.md +21 -22
  227. package/src/components/chat/entity-cards/.dispatch.md +41 -24
  228. package/src/components/chat/entity-cards/.entity-author-card.md +36 -33
  229. package/src/components/chat/entity-cards/.entity-portrait-card.md +47 -0
  230. package/src/components/chat/entity-cards/.generic-entity-card.md +26 -25
  231. package/src/components/chat/entity-cards/.github-activity-card.md +35 -41
  232. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +22 -28
  233. package/src/components/chat/entity-cards/.index.md +33 -44
  234. package/src/components/chat/entity-cards/.investor-update-card.md +36 -25
  235. package/src/components/chat/entity-cards/.onboarding-guide-card.md +20 -29
  236. package/src/components/chat/entity-cards/.product-release-card-defaults.md +26 -19
  237. package/src/components/chat/entity-cards/.program-card.md +30 -33
  238. package/src/components/chat/entity-cards/.roadmap-card.md +40 -31
  239. package/src/components/chat/entity-cards/.roadmap-vote-button.md +33 -36
  240. package/src/components/chat/entity-cards/.slack-message-card.md +31 -32
  241. package/src/components/chat/entity-cards/.use-cover-image-fallback.md +47 -0
  242. package/src/components/chat/entity-cards/.use-entity-card-link.md +51 -0
  243. package/src/components/chat/entity-cards/.use-entity-card-placeholder.md +47 -0
  244. package/src/components/chat/entity-cards/.what-i-shipped-card.md +43 -0
  245. package/src/components/chat/hooks/.index.md +33 -30
  246. package/src/components/chat/hooks/.use-chat-card-item.md +30 -17
  247. package/src/components/chat/hooks/.use-chat-dialog-manager.md +59 -0
  248. package/src/components/chat/hooks/.use-chat-identity.md +37 -25
  249. package/src/components/chat/hooks/.use-chunk-catchup.md +53 -36
  250. package/src/components/chat/hooks/.use-empty-state-config.md +39 -0
  251. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +65 -30
  252. package/src/components/chat/hooks/.use-nats-chat-adapter.md +55 -36
  253. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +66 -50
  254. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +58 -31
  255. package/src/components/chat/hooks/.use-scripted-stream.md +46 -0
  256. package/src/components/chat/hooks/.use-slash-commands.md +32 -25
  257. package/src/components/chat/hooks/.use-sse-chat-adapter.md +32 -21
  258. package/src/components/chat/hooks/.use-unified-chat.md +45 -35
  259. package/src/components/chat/types/.api.types.md +49 -41
  260. package/src/components/chat/types/.chat.types.md +56 -34
  261. package/src/components/chat/types/.component.types.md +36 -36
  262. package/src/components/chat/types/.context-item.types.md +61 -0
  263. package/src/components/chat/types/.index.md +32 -17
  264. package/src/components/chat/types/.message.types.md +44 -45
  265. package/src/components/chat/types/.network.types.md +46 -46
  266. package/src/components/chat/types/.processing.types.md +49 -37
  267. package/src/components/chat/types/.unified-chat-state.types.md +41 -26
  268. package/src/components/chat/types/entities/.content-ref.md +20 -31
  269. package/src/components/chat/types/entities/.investor-update.md +14 -16
  270. package/src/components/chat/types/entities/.onboarding-guide.md +35 -34
  271. package/src/components/chat/types/entities/.program-types.md +55 -43
  272. package/src/components/chat/utils/.chip-action-class.md +17 -19
  273. package/src/components/chat/utils/.chip-styles.md +18 -18
  274. package/src/components/chat/utils/.chunk-parser.md +48 -37
  275. package/src/components/chat/utils/.compact-card-classes.md +33 -35
  276. package/src/components/chat/utils/.execute-navigation.md +49 -0
  277. package/src/components/chat/utils/.extract-incomplete-message-state.md +9 -12
  278. package/src/components/chat/utils/.history-merge.md +65 -0
  279. package/src/components/chat/utils/.icon-library.md +33 -31
  280. package/src/components/chat/utils/.icon-registry.md +44 -0
  281. package/src/components/chat/utils/.index.md +37 -33
  282. package/src/components/chat/utils/.is-cross-origin-url.md +26 -22
  283. package/src/components/chat/utils/.message-segment-accumulator.md +46 -25
  284. package/src/components/chat/utils/.nav-anchor-props.md +29 -34
  285. package/src/components/chat/utils/.nav-click-handler.md +29 -33
  286. package/src/components/chat/utils/.process-historical-messages.md +29 -33
  287. package/src/components/chat/utils/.scripted-stream.md +52 -0
  288. package/src/components/chat/utils/.source-row-cta.md +32 -31
  289. package/src/components/chat/utils/.tool-call-helpers.md +25 -17
  290. package/src/components/contact/.contact-form.md +24 -19
  291. package/src/components/docs/.doc-navigation-context.md +49 -0
  292. package/src/components/docs/.doc-viewer.md +64 -0
  293. package/src/components/docs/.docs-hub-page.md +49 -0
  294. package/src/components/docs/.index.md +51 -0
  295. package/src/components/docs/.skeletons.md +47 -0
  296. package/src/components/docs/.use-docs-resolve-link.md +61 -0
  297. package/src/components/docs/.use-document-tree.md +83 -0
  298. package/src/components/docs/.use-scroll-spy.md +58 -0
  299. package/src/components/embeds/.embed-container.md +45 -0
  300. package/src/components/embeds/.embed-iframe.md +51 -0
  301. package/src/components/embeds/.figma-embed.md +43 -0
  302. package/src/components/embeds/.file-download-card.md +47 -0
  303. package/src/components/embeds/.google-sheets-viewer.md +40 -0
  304. package/src/components/embeds/.index.md +58 -0
  305. package/src/components/embeds/.linkedin-embed-client.md +50 -0
  306. package/src/components/embeds/.markdown-image.md +40 -0
  307. package/src/components/embeds/.og-link-preview.md +54 -0
  308. package/src/components/embeds/.pdf-viewer.md +43 -0
  309. package/src/components/embeds/.reddit-embed-client.md +40 -0
  310. package/src/components/embeds/.rich-markdown-runtime.md +53 -0
  311. package/src/components/embeds/.twitter-embed-client.md +44 -0
  312. package/src/components/faq/.faq-document-page.md +68 -0
  313. package/src/components/faq/.faq-section.md +55 -0
  314. package/src/components/faq/.index.md +29 -0
  315. package/src/components/faq/.json-ld.md +48 -0
  316. package/src/components/features/.array-entry-manager.md +32 -24
  317. package/src/components/features/.auth-providers-list.md +33 -32
  318. package/src/components/features/.captions-url.md +43 -0
  319. package/src/components/features/.cards-strip.md +48 -0
  320. package/src/components/features/.changelog-manager.md +17 -20
  321. package/src/components/features/.command-box.md +11 -16
  322. package/src/components/features/.entity-summary-editor.md +20 -15
  323. package/src/components/features/.entity-tag-badges.md +43 -0
  324. package/src/components/features/.entity-video-section.md +31 -41
  325. package/src/components/features/.figma-prototype-viewer.md +55 -37
  326. package/src/components/features/.filters-dropdown.md +14 -13
  327. package/src/components/features/.highlight-config-section.md +19 -16
  328. package/src/components/features/.highlight-video-combined-section.md +28 -19
  329. package/src/components/features/.highlight-video-preview.md +13 -11
  330. package/src/components/features/.highlight-video-section.md +26 -22
  331. package/src/components/features/.index.md +40 -36
  332. package/src/components/features/.media-gallery-manager.md +37 -35
  333. package/src/components/features/.mux-origins.md +46 -0
  334. package/src/components/features/.og-editor-preview.md +29 -24
  335. package/src/components/features/.os-type-badge-group.md +26 -18
  336. package/src/components/features/.os-type-badge.md +41 -24
  337. package/src/components/features/.paths-display.md +42 -25
  338. package/src/components/features/.platform-badge.md +26 -17
  339. package/src/components/features/.policy-configuration-panel.md +33 -31
  340. package/src/components/features/.provider-button.md +29 -20
  341. package/src/components/features/.push-button-selector.md +39 -41
  342. package/src/components/features/.release-media-manager.md +41 -34
  343. package/src/components/features/.section-selector.md +27 -16
  344. package/src/components/features/.select-button.md +21 -32
  345. package/src/components/features/.seo-editor-preview.md +49 -36
  346. package/src/components/features/.social-links-manager.md +40 -18
  347. package/src/components/features/.start-with-openframe-button.md +30 -32
  348. package/src/components/features/.status-filter-component.md +29 -38
  349. package/src/components/features/.tags-selector.md +25 -29
  350. package/src/components/features/.transcript-summary-editor.md +24 -18
  351. package/src/components/features/.use-video-warmup.md +47 -0
  352. package/src/components/features/.video-bites-display.md +36 -37
  353. package/src/components/features/.video-bites-shared.md +44 -0
  354. package/src/components/features/.video-bites-strip.md +63 -0
  355. package/src/components/features/.video-center-badge.md +38 -0
  356. package/src/components/features/.video-ratio-tabs.md +38 -31
  357. package/src/components/features/.video-source-selector.md +24 -27
  358. package/src/components/features/.video.md +35 -27
  359. package/src/components/features/.waitlist-form.md +39 -33
  360. package/src/components/features/.warning-block.md +53 -0
  361. package/src/components/features/ai-enrich/.AIEnrichSection.md +24 -25
  362. package/src/components/features/ai-enrich/.AIRequiredBadge.md +22 -21
  363. package/src/components/features/ai-enrich/.AIStatusIndicator.md +42 -35
  364. package/src/components/features/ai-enrich/.AIWarningsSection.md +23 -20
  365. package/src/components/features/ai-enrich/.ConfidenceBadge.md +35 -20
  366. package/src/components/features/auth/.auth-benefits-panel.md +48 -0
  367. package/src/components/features/auth/.auth-branding.md +51 -0
  368. package/src/components/features/auth/.auth-shell.md +51 -0
  369. package/src/components/features/auth/.back-to-login-link.md +48 -0
  370. package/src/components/features/auth/.complete-account-form.md +45 -0
  371. package/src/components/features/auth/.create-organization-form.md +53 -0
  372. package/src/components/features/auth/.index.md +48 -0
  373. package/src/components/features/auth/.invite-link-invalid-modal.md +42 -0
  374. package/src/components/features/auth/.login-form.md +42 -0
  375. package/src/components/features/auth/.openframe-sso-login-form.md +46 -0
  376. package/src/components/features/auth/.openframe-sso-signup-form.md +51 -0
  377. package/src/components/features/auth/.password-reset-form.md +57 -0
  378. package/src/components/features/auth/.sso-auth-shell.md +35 -0
  379. package/src/components/features/auth/.sso-providers.md +42 -0
  380. package/src/components/features/auth/.terms-agreement-label.md +28 -0
  381. package/src/components/features/board/.board-column-header.md +24 -18
  382. package/src/components/features/board/.board-column.md +32 -32
  383. package/src/components/features/board/.board-ticket-approval.md +42 -0
  384. package/src/components/features/board/.board.md +38 -38
  385. package/src/components/features/board/.index.md +35 -38
  386. package/src/components/features/board/.ticket-card.md +33 -36
  387. package/src/components/features/board/.types.md +38 -31
  388. package/src/components/features/card-hit-layer.tsx +84 -0
  389. package/src/components/features/floating-walkthrough-video.tsx +891 -0
  390. package/src/components/features/index.ts +4 -0
  391. package/src/components/features/notifications/.approval-request-notification-tile.md +45 -0
  392. package/src/components/features/notifications/.index.md +35 -31
  393. package/src/components/features/notifications/.notification-drawer.md +32 -19
  394. package/src/components/features/notifications/.notification-popups.md +51 -0
  395. package/src/components/features/notifications/.notification-tile.md +43 -27
  396. package/src/components/features/notifications/.notifications-context.md +42 -45
  397. package/src/components/features/notifications/.types.md +51 -31
  398. package/src/components/features/ticket-status-config-list/.ticket-status-config-list.md +51 -0
  399. package/src/components/features/time-tracker/.index.md +48 -0
  400. package/src/components/features/time-tracker/.time-tracker-context.md +55 -0
  401. package/src/components/features/time-tracker/.time-tracker-header-button.md +51 -0
  402. package/src/components/features/time-tracker/.time-tracker-panel.md +58 -0
  403. package/src/components/features/time-tracker/.types.md +51 -0
  404. package/src/components/features/time-tracker/.use-tracker-clock.md +32 -0
  405. package/src/components/features/use-walkthrough-video.ts +70 -0
  406. package/src/components/features/video-bites-strip.tsx +46 -146
  407. package/src/components/features/video-center-badge.tsx +11 -2
  408. package/src/components/features/video-hover-preview.tsx +201 -0
  409. package/src/components/features/video.tsx +368 -73
  410. package/src/components/help-center-pages/.delivery-page.md +51 -0
  411. package/src/components/help-center-pages/.index.md +51 -0
  412. package/src/components/help-center-pages/.onboarding-guides-catalog-page.md +53 -0
  413. package/src/components/help-center-pages/.product-releases-list-page.md +51 -0
  414. package/src/components/help-center-pages/.roadmap-page.md +46 -0
  415. package/src/components/icons/.figma-icon.md +13 -7
  416. package/src/components/icons/.index.md +26 -22
  417. package/src/components/icons/.vendor-directory-icon.md +30 -18
  418. package/src/components/icons/.x-logo.md +26 -10
  419. package/src/components/icons-v2-generated/.index.md +30 -41
  420. package/src/components/icons-v2-generated/brand-logos/.index.md +25 -19
  421. package/src/components/icons-v2-generated/communication/.index.md +26 -30
  422. package/src/components/icons-v2-generated/logos/.flamingo-logo-icon.md +41 -0
  423. package/src/components/layout/.article-detail-layout.md +32 -21
  424. package/src/components/layout/.page-container.md +25 -23
  425. package/src/components/layout/.page-heading.md +48 -0
  426. package/src/components/layout/.page-layout.md +30 -25
  427. package/src/components/layout/.title-block.md +43 -24
  428. package/src/components/loading/.card-skeleton.md +28 -35
  429. package/src/components/loading/.category-card-skeleton.md +25 -23
  430. package/src/components/loading/.device-card-skeleton.md +22 -15
  431. package/src/components/loading/.margin-report-skeleton.md +30 -35
  432. package/src/components/loading/.openmsp-heartbeat.md +30 -32
  433. package/src/components/loading/.organization-card-skeleton.md +22 -25
  434. package/src/components/loading/.organization-icon-skeleton.md +39 -27
  435. package/src/components/loading/.page-layout-skeleton.md +50 -28
  436. package/src/components/loading/.unified-skeleton.md +37 -40
  437. package/src/components/loading/.users-grid-skeleton.md +19 -38
  438. package/src/components/navigation/.app-header.md +35 -28
  439. package/src/components/navigation/.app-layout-context.md +48 -0
  440. package/src/components/navigation/.app-layout-drawer.md +56 -0
  441. package/src/components/navigation/.app-layout.md +24 -23
  442. package/src/components/navigation/.header-mingo-button.md +46 -0
  443. package/src/components/navigation/.header-organization-filter.md +32 -18
  444. package/src/components/navigation/.header.md +24 -31
  445. package/src/components/navigation/.index.md +36 -50
  446. package/src/components/navigation/.mingo-ai-button.md +41 -0
  447. package/src/components/navigation/.mobile-burger-menu.md +29 -29
  448. package/src/components/navigation/.mobile-nav-panel.md +41 -49
  449. package/src/components/navigation/.multi-level-navigation.md +76 -0
  450. package/src/components/navigation/.navigation-sidebar-item.md +14 -14
  451. package/src/components/navigation/.navigation-sidebar.md +30 -23
  452. package/src/components/navigation/.sliding-sidebar.md +30 -25
  453. package/src/components/navigation/.sticky-section-nav.md +23 -21
  454. package/src/components/onboarding-guides/.index.md +40 -0
  455. package/src/components/onboarding-guides/.onboarding-guide-detail-view.md +55 -0
  456. package/src/components/onboarding-guides/.onboarding-guides-catalog-skeleton.md +33 -0
  457. package/src/components/onboarding-guides/.onboarding-guides-catalog-view.md +50 -0
  458. package/src/components/onboarding-guides/hooks/.use-onboarding-guides.md +54 -0
  459. package/src/components/platform/.CveLink.md +28 -17
  460. package/src/components/platform/.ScriptArguments.md +18 -23
  461. package/src/components/platform/.ScriptInfoSection.md +27 -21
  462. package/src/components/platform/.ShellTypeBadge.md +34 -18
  463. package/src/components/platform/.SoftwareInfo.md +23 -21
  464. package/src/components/platform/.ToolBadge.md +18 -16
  465. package/src/components/profile/.ProfileLoadingSkeleton.md +24 -23
  466. package/src/components/related-content/.index.md +41 -0
  467. package/src/components/related-content/.related-content-section.md +62 -0
  468. package/src/components/shared/.article-author-byline.md +56 -0
  469. package/src/components/shared/.detail-page-skeleton.md +32 -43
  470. package/src/components/shared/.media-gallery-strip.md +43 -0
  471. package/src/components/shared/delivery/.delivery-lists.md +20 -19
  472. package/src/components/shared/delivery/.delivery-row.md +24 -20
  473. package/src/components/shared/delivery/.delivery-table.md +20 -22
  474. package/src/components/shared/dev-section/.dev-card-row.md +28 -36
  475. package/src/components/shared/dev-section/.dev-section-page.md +36 -25
  476. package/src/components/shared/dev-section/.dev-section-view.md +32 -22
  477. package/src/components/shared/doc-search/.doc-search-bar.md +58 -0
  478. package/src/components/shared/doc-search/.doc-search-result-row.md +50 -0
  479. package/src/components/shared/doc-search/.format-relative-path.md +30 -0
  480. package/src/components/shared/doc-search/.index.md +46 -0
  481. package/src/components/shared/doc-search/.map-doc-search-results.md +44 -0
  482. package/src/components/shared/doc-search/.resolve-search-result-action.md +52 -0
  483. package/src/components/shared/doc-search/.types.md +49 -0
  484. package/src/components/shared/doc-search/.use-doc-search.md +66 -0
  485. package/src/components/shared/legal-document/.legal-document-page.md +26 -20
  486. package/src/components/shared/legal-document/.use-legal-docs.md +36 -30
  487. package/src/components/shared/onboarding/.onboarding-step-card.md +24 -16
  488. package/src/components/shared/onboarding/.onboarding-walkthrough.md +42 -28
  489. package/src/components/shared/product-release/.index.md +33 -24
  490. package/src/components/shared/product-release/.product-release-card-skeleton.md +22 -28
  491. package/src/components/shared/product-release/.product-release-card.md +28 -29
  492. package/src/components/shared/product-release/.product-releases-view.md +49 -0
  493. package/src/components/shared/product-release/.release-detail-page.md +30 -15
  494. package/src/components/shared/roadmap/.index.md +29 -24
  495. package/src/components/shared/roadmap/.roadmap-grid.md +43 -54
  496. package/src/components/shared/roadmap/.roadmap-view.md +41 -0
  497. package/src/components/shared/roadmap/.use-roadmap-voting.md +27 -17
  498. package/src/components/switch.tsx +1 -1
  499. package/src/components/tickets/.help-center-card.md +32 -28
  500. package/src/components/tickets/.help-center-create-form.md +34 -22
  501. package/src/components/tickets/.help-center-list.md +36 -25
  502. package/src/components/tickets/.index.md +30 -45
  503. package/src/components/tickets/.ticket-center.md +31 -38
  504. package/src/components/tickets/.ticket-detail-drawer.md +20 -30
  505. package/src/components/tickets/.ticket-open-form.md +24 -26
  506. package/src/components/tickets/.ticket-reply-composer.md +51 -0
  507. package/src/components/tickets/.ticket-row.md +26 -11
  508. package/src/components/tickets/.types.md +56 -38
  509. package/src/components/tickets/hooks/.use-ticket-actions.md +60 -47
  510. package/src/components/tickets/hooks/.use-ticket-engagements.md +27 -27
  511. package/src/components/tickets/hooks/.use-tickets-list.md +24 -30
  512. package/src/components/ui/.accordion.md +28 -21
  513. package/src/components/ui/.actions-menu.md +36 -54
  514. package/src/components/ui/.ai-generated-badge.md +25 -0
  515. package/src/components/ui/.alert-dialog.md +21 -16
  516. package/src/components/ui/.alert.md +30 -25
  517. package/src/components/ui/.allowed-domains-input.md +26 -15
  518. package/src/components/ui/.announcement-bar-view.md +46 -0
  519. package/src/components/ui/.autocomplete.md +40 -27
  520. package/src/components/ui/.badge.md +34 -31
  521. package/src/components/ui/.brand-association-card.md +22 -18
  522. package/src/components/ui/.breadcrumb.md +18 -14
  523. package/src/components/ui/.bullet-list.md +35 -23
  524. package/src/components/ui/.card.md +47 -30
  525. package/src/components/ui/.checkbox-block.md +34 -22
  526. package/src/components/ui/.checkbox-with-description.md +18 -20
  527. package/src/components/ui/.chevron-button.md +29 -29
  528. package/src/components/ui/.circular-progress.md +30 -41
  529. package/src/components/ui/.color-preset-select.md +54 -0
  530. package/src/components/ui/.color-swatch.md +37 -0
  531. package/src/components/ui/.content-loader.md +34 -27
  532. package/src/components/ui/.crossfade-panels.md +50 -0
  533. package/src/components/ui/.cursor-pagination.md +38 -26
  534. package/src/components/ui/.dashboard-info-card.md +46 -27
  535. package/src/components/ui/.date-picker.md +52 -36
  536. package/src/components/ui/.device-card-compact.md +23 -20
  537. package/src/components/ui/.device-card.md +39 -30
  538. package/src/components/ui/.dialog.md +14 -14
  539. package/src/components/ui/.drawer.md +45 -39
  540. package/src/components/ui/.dropdown-button.md +41 -33
  541. package/src/components/ui/.dropdown-menu.md +40 -23
  542. package/src/components/ui/.duration-input.md +41 -0
  543. package/src/components/ui/.entity-image.md +32 -28
  544. package/src/components/ui/.error-state.md +30 -26
  545. package/src/components/ui/.fade-preview.md +44 -0
  546. package/src/components/ui/.field-wrapper.md +34 -23
  547. package/src/components/ui/.file-upload.md +30 -18
  548. package/src/components/ui/.filter-modal.md +30 -32
  549. package/src/components/ui/.filter-pill-row.md +58 -0
  550. package/src/components/ui/.floating-tooltip.md +27 -32
  551. package/src/components/ui/.hidden-tags-popup.md +18 -20
  552. package/src/components/ui/.highlight-card.md +36 -23
  553. package/src/components/ui/.honeypot-field.md +41 -0
  554. package/src/components/ui/.hover-dropdown.md +44 -31
  555. package/src/components/ui/.image-gallery-modal.md +28 -30
  556. package/src/components/ui/.image-uploader.md +39 -22
  557. package/src/components/ui/.index.md +33 -31
  558. package/src/components/ui/.info-card-row.md +50 -0
  559. package/src/components/ui/.info-card.md +27 -20
  560. package/src/components/ui/.info-row.md +30 -24
  561. package/src/components/ui/.info-section.md +63 -0
  562. package/src/components/ui/.input.md +29 -28
  563. package/src/components/ui/.label.md +34 -26
  564. package/src/components/ui/.markdown-editor.md +26 -25
  565. package/src/components/ui/.marquee-wall.md +64 -0
  566. package/src/components/ui/.menubar.md +50 -16
  567. package/src/components/ui/.modal-v2.md +41 -27
  568. package/src/components/ui/.modal.md +22 -19
  569. package/src/components/ui/.more-actions-menu.md +30 -24
  570. package/src/components/ui/.navigation-menu.md +40 -25
  571. package/src/components/ui/.organization-card.md +46 -27
  572. package/src/components/ui/.page-actions.md +55 -41
  573. package/src/components/ui/.page-loader.md +40 -23
  574. package/src/components/ui/.password-input.md +30 -0
  575. package/src/components/ui/.phone-input.md +20 -22
  576. package/src/components/ui/.portal-container.md +43 -0
  577. package/src/components/ui/.progress-bar.md +40 -27
  578. package/src/components/ui/.release-changelog-section.md +32 -26
  579. package/src/components/ui/.rich-markdown-renderer.md +45 -0
  580. package/src/components/ui/.scroll-fade.md +56 -0
  581. package/src/components/ui/.search-input.md +55 -37
  582. package/src/components/ui/.select.md +25 -26
  583. package/src/components/ui/.service-card.md +25 -19
  584. package/src/components/ui/.sheet.md +21 -21
  585. package/src/components/ui/.simple-markdown-renderer.md +36 -24
  586. package/src/components/ui/.slack-channel-chip.md +49 -0
  587. package/src/components/ui/.square-avatar.md +29 -26
  588. package/src/components/ui/.stacked-rows-panel.md +61 -0
  589. package/src/components/ui/.status-badge.md +30 -24
  590. package/src/components/ui/.status-indicator.md +35 -21
  591. package/src/components/ui/.tab-content.md +34 -22
  592. package/src/components/ui/.tab-navigation.md +40 -50
  593. package/src/components/ui/.tab-selector.md +48 -31
  594. package/src/components/ui/.tabs.md +34 -21
  595. package/src/components/ui/.tag-search-input.md +20 -20
  596. package/src/components/ui/.tag-select-dropdown.md +59 -0
  597. package/src/components/ui/.tag.md +25 -43
  598. package/src/components/ui/.tags-input.md +31 -31
  599. package/src/components/ui/.textarea.md +32 -30
  600. package/src/components/ui/.ticket-attachments-list.md +36 -29
  601. package/src/components/ui/.ticket-info-section.md +37 -42
  602. package/src/components/ui/.ticket-status-config-row.md +66 -0
  603. package/src/components/ui/.ticket-status-tag.md +39 -35
  604. package/src/components/ui/.toaster.md +21 -15
  605. package/src/components/ui/.toggle.md +38 -37
  606. package/src/components/ui/.tooltip.md +16 -13
  607. package/src/components/ui/button/.button-styles.md +17 -18
  608. package/src/components/ui/button/.button.md +30 -37
  609. package/src/components/ui/button/.split-button.md +46 -23
  610. package/src/components/ui/button/button-styles.ts +13 -0
  611. package/src/components/ui/button/button.tsx +5 -0
  612. package/src/components/ui/data-table/.data-table-body.md +50 -35
  613. package/src/components/ui/data-table/.data-table-empty.md +17 -33
  614. package/src/components/ui/data-table/.data-table-header.md +43 -40
  615. package/src/components/ui/data-table/.data-table-row.md +31 -31
  616. package/src/components/ui/data-table/.types.md +23 -28
  617. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +16 -24
  618. package/src/components/ui/file-manager/.file-manager-empty.md +23 -15
  619. package/src/components/ui/file-manager/.file-manager-skeleton.md +34 -36
  620. package/src/components/ui/file-manager/.file-manager-table-row.md +29 -29
  621. package/src/components/ui/file-manager/.file-manager-table.md +39 -24
  622. package/src/components/ui/no-data/.index.md +22 -0
  623. package/src/components/ui/no-data/.no-data-actions.md +29 -0
  624. package/src/components/ui/no-data/.no-data-message.md +37 -0
  625. package/src/components/ui/no-data/.no-data-styles.md +39 -0
  626. package/src/components/ui/no-data/.no-data.md +59 -0
  627. package/src/components/ui/page-actions.tsx +2 -1
  628. package/src/components/ui/query-report-table/.query-report-table-header.md +15 -15
  629. package/src/components/ui/query-report-table/.query-report-table-row.md +16 -16
  630. package/src/components/ui/query-report-table/.query-report-table.md +39 -24
  631. package/src/components/ui/table/.table-column-filter-dropdown.md +15 -9
  632. package/src/components/ui/table/.table-description-cell.md +13 -12
  633. package/src/components/ui/table/.table-empty-state.md +19 -20
  634. package/src/components/ui/table/.table-row.md +30 -20
  635. package/src/components/ui/table/.table-skeleton.md +32 -27
  636. package/src/components/ui/table/.table-timestamp-cell.md +24 -23
  637. package/src/components/ui/table/.table.md +43 -30
  638. package/src/components/ui/table/.types.md +49 -45
  639. package/src/components/ui/table/.use-table-motion.md +45 -0
  640. package/src/contexts/.chat-runtime-context.md +55 -26
  641. package/src/contexts/.endpoints-runtime-context.md +40 -44
  642. package/src/embed-shims/.next-navigation.md +38 -31
  643. package/src/hooks/.api-hooks.md +28 -21
  644. package/src/hooks/.index.md +30 -25
  645. package/src/hooks/.use-authed-image-src.md +38 -0
  646. package/src/hooks/.use-contact-submission.md +35 -36
  647. package/src/hooks/.use-humanity-signals.md +47 -0
  648. package/src/hooks/.use-near-viewport.md +30 -30
  649. package/src/hooks/.use-og-placeholder-url.md +57 -0
  650. package/src/hooks/.use-scroll-to-hash.md +46 -0
  651. package/src/hooks/.use-self-fetch.md +52 -0
  652. package/src/hooks/state/.flatten-schema.md +37 -29
  653. package/src/hooks/ui/.index.md +37 -25
  654. package/src/hooks/ui/.use-auto-limit-tags.md +55 -38
  655. package/src/hooks/ui/.use-deferred-error.md +44 -0
  656. package/src/hooks/ui/.use-focus-trap.md +59 -0
  657. package/src/hooks/ui/.use-header-height.md +37 -0
  658. package/src/hooks/ui/.use-horizontal-scrollbar.md +25 -34
  659. package/src/hooks/ui/.use-marquee-engine.md +73 -0
  660. package/src/hooks/ui/.use-notification-permission.md +49 -0
  661. package/src/hooks/ui/.use-reset-on-page-hidden.md +40 -0
  662. package/src/hooks/ui/.use-suppress-clone-focus.md +41 -0
  663. package/src/nats/.index.md +39 -0
  664. package/src/nats/.nats-provider.md +46 -0
  665. package/src/nats/.nats.md +38 -28
  666. package/src/nats/.shared-connection.md +56 -0
  667. package/src/nats/.use-nats-subscription.md +57 -0
  668. package/src/stories/.ActionsMenu.stories.md +57 -0
  669. package/src/stories/.Alert.stories.md +46 -0
  670. package/src/stories/.AnnouncementBar.stories.md +59 -32
  671. package/src/stories/.AppLayoutDrawer.stories.md +60 -0
  672. package/src/stories/.AppLayoutSidebar.stories.md +45 -0
  673. package/src/stories/.ApprovalBatchMessage.stories.md +46 -0
  674. package/src/stories/.ApprovalBatchMessageClient.stories.md +55 -0
  675. package/src/stories/.ApprovalRequestMessage.stories.md +50 -0
  676. package/src/stories/.ApprovalRequestMessageClient.stories.md +41 -0
  677. package/src/stories/.BlogCard.stories.md +52 -0
  678. package/src/stories/.Board.stories.md +25 -20
  679. package/src/stories/.Button.stories.md +35 -40
  680. package/src/stories/.CampaignCardAdmin.stories.md +38 -0
  681. package/src/stories/.CardsStrip.stories.md +39 -0
  682. package/src/stories/.CaseStudyCard.stories.md +41 -0
  683. package/src/stories/.ChatContainer.stories.md +41 -0
  684. package/src/stories/.ChatInlineVideoPill.stories.md +36 -0
  685. package/src/stories/.ChatMessageEnhanced.stories.md +51 -0
  686. package/src/stories/.ChatMingoInfoCards.stories.md +30 -0
  687. package/src/stories/.ChatTicketList.stories.md +38 -22
  688. package/src/stories/.ChatTypingIndicator.stories.md +47 -0
  689. package/src/stories/.CheckboxBlock.stories.md +34 -35
  690. package/src/stories/.ContextCompactionDisplay.stories.md +28 -0
  691. package/src/stories/.CustomerInterviewCard.stories.md +36 -0
  692. package/src/stories/.DashboardInfoCard.stories.md +40 -33
  693. package/src/stories/.DataRoomDocCard.stories.md +42 -0
  694. package/src/stories/.DataTable.stories.md +37 -32
  695. package/src/stories/.DatePicker.stories.md +34 -30
  696. package/src/stories/.EmbeddableChat.stories.md +45 -28
  697. package/src/stories/.EmptyState.stories.md +55 -0
  698. package/src/stories/.ErrorMessageDisplay.stories.md +45 -0
  699. package/src/stories/.FilterModal.stories.md +28 -22
  700. package/src/stories/.GenericEntityCard.stories.md +50 -0
  701. package/src/stories/.GitHubActivityCard.stories.md +41 -0
  702. package/src/stories/.GuideWelcome.stories.md +38 -0
  703. package/src/stories/.Header.stories.md +32 -22
  704. package/src/stories/.HubspotTicketCard.stories.md +41 -0
  705. package/src/stories/.InfoCard.stories.md +37 -26
  706. package/src/stories/.InfoCardRow.stories.md +48 -0
  707. package/src/stories/.InfoSection.stories.md +55 -0
  708. package/src/stories/.Input.stories.md +45 -35
  709. package/src/stories/.InvestorUpdateCard.stories.md +41 -0
  710. package/src/stories/.MarqueeWall.stories.md +53 -0
  711. package/src/stories/.MingoAiButton.stories.md +31 -0
  712. package/src/stories/.MingoChatModals.stories.md +47 -0
  713. package/src/stories/.MingoInfoCard.stories.md +50 -0
  714. package/src/stories/.MingoOnboardingCard.stories.md +19 -19
  715. package/src/stories/.MingoWelcome.stories.md +41 -0
  716. package/src/stories/.MobileNavPanel.stories.md +52 -0
  717. package/src/stories/.Modal.stories.md +19 -16
  718. package/src/stories/.MspOrganizationCard.stories.md +45 -0
  719. package/src/stories/.NotificationDrawer.stories.md +39 -28
  720. package/src/stories/.OSTypeBadge.stories.md +34 -25
  721. package/src/stories/.OnboardingGuideCard.stories.md +41 -0
  722. package/src/stories/.PageActions.stories.md +21 -21
  723. package/src/stories/.PageContainer.stories.md +29 -24
  724. package/src/stories/.PageLayout.stories.md +18 -35
  725. package/src/stories/.PolicyConfigurationPanel.stories.md +58 -0
  726. package/src/stories/.ProductReleaseCard.stories.md +39 -0
  727. package/src/stories/.ProgramCard.stories.md +51 -0
  728. package/src/stories/.QuickActionChip.stories.md +59 -0
  729. package/src/stories/.QuickActionMarquee.stories.md +51 -0
  730. package/src/stories/.QuickActionWall.stories.md +58 -0
  731. package/src/stories/.RoadmapCard.stories.md +41 -0
  732. package/src/stories/.ShellTypeBadge.stories.md +42 -22
  733. package/src/stories/.SlackMessageCard.stories.md +42 -0
  734. package/src/stories/.SlashCommandSuggestions.stories.md +21 -31
  735. package/src/stories/.SplitButton.stories.md +23 -25
  736. package/src/stories/.StackedRowsPanel.stories.md +65 -0
  737. package/src/stories/.TabSelector.stories.md +26 -38
  738. package/src/stories/.Tag.stories.md +32 -27
  739. package/src/stories/.ThinkingDisplay.stories.md +43 -0
  740. package/src/stories/.TicketCard.stories.md +60 -0
  741. package/src/stories/.TicketInfoSection.stories.md +28 -20
  742. package/src/stories/.TimeTracker.stories.md +35 -0
  743. package/src/stories/.Toaster.stories.md +26 -20
  744. package/src/stories/.ToolBadge.stories.md +34 -24
  745. package/src/stories/.ToolExecutionDisplay.stories.md +22 -20
  746. package/src/stories/.ToolExecutionDisplayClient.stories.md +33 -0
  747. package/src/stories/.VideoBitesStrip.stories.md +37 -0
  748. package/src/stories/.WarningBlock.stories.md +51 -0
  749. package/src/stories/__fixtures__/.chat-card-decorator.md +39 -0
  750. package/src/stories/__fixtures__/.chat-cards.md +57 -0
  751. package/src/stories/auth/.CompleteAccount.stories.md +36 -0
  752. package/src/stories/auth/.CreateOrganization.stories.md +52 -0
  753. package/src/stories/auth/.InviteLinkInvalid.stories.md +21 -0
  754. package/src/stories/auth/.Login.stories.md +32 -0
  755. package/src/stories/auth/.OpenFrameSso.stories.md +58 -0
  756. package/src/stories/auth/.PasswordReset.stories.md +49 -0
  757. package/src/styles/ods-interaction-states.css +32 -0
  758. package/src/types/.announcement.md +67 -35
  759. package/src/types/.blog.md +44 -41
  760. package/src/types/.case-study.md +31 -17
  761. package/src/types/.content-ref.md +37 -0
  762. package/src/types/.customer-interview.md +38 -38
  763. package/src/types/.doc-source.md +87 -0
  764. package/src/types/.entity-author.md +53 -0
  765. package/src/types/.entity-platform.md +40 -0
  766. package/src/types/.index.md +23 -17
  767. package/src/types/.marketing.md +32 -35
  768. package/src/types/.navigation.md +31 -19
  769. package/src/types/.os.types.md +30 -31
  770. package/src/types/.permissions.md +49 -35
  771. package/src/types/.platform.md +44 -28
  772. package/src/types/.product-release.md +59 -42
  773. package/src/types/.shell.types.md +46 -30
  774. package/src/types/.supabase.md +43 -29
  775. package/src/types/.tool.types.md +43 -23
  776. package/src/types/.video-processing.md +40 -31
  777. package/src/types/marketing.ts +11 -0
  778. package/src/types/supabase.ts +80 -0
  779. package/src/types/video-processing.ts +1 -0
  780. package/src/utils/.announcement-storage.md +49 -17
  781. package/src/utils/.app-config.md +22 -18
  782. package/src/utils/.brand-marks.md +46 -0
  783. package/src/utils/.cn.md +40 -29
  784. package/src/utils/.color-analysis.md +34 -25
  785. package/src/utils/.common.md +43 -23
  786. package/src/utils/.content-href.md +64 -0
  787. package/src/utils/.content-ref-groups.md +51 -0
  788. package/src/utils/.date-utils.md +46 -35
  789. package/src/utils/.doc-path-utils.md +38 -0
  790. package/src/utils/.doc-tree-nav.md +51 -0
  791. package/src/utils/.embed-authed-fetch.md +48 -32
  792. package/src/utils/.embed-content-fetch.md +36 -0
  793. package/src/utils/.embed-url-converters.md +52 -0
  794. package/src/utils/.extract-items.md +49 -0
  795. package/src/utils/.faq-anchor.md +48 -0
  796. package/src/utils/.format.md +73 -55
  797. package/src/utils/.humanity-signals.md +59 -0
  798. package/src/utils/.index.md +73 -31
  799. package/src/utils/.list-url.md +43 -0
  800. package/src/utils/.markdown-section-extractor.md +57 -0
  801. package/src/utils/.markdown-to-plain.md +51 -0
  802. package/src/utils/.media-carousel-utils-stub.md +42 -31
  803. package/src/utils/.ods-color-utils.md +84 -43
  804. package/src/utils/.og-placeholder.md +45 -0
  805. package/src/utils/.page-header-constants.md +26 -0
  806. package/src/utils/.platform-config.md +34 -34
  807. package/src/utils/.release-badge.md +47 -0
  808. package/src/utils/.release-cover.md +45 -0
  809. package/src/utils/.same-page-hash-nav.md +45 -0
  810. package/src/utils/.scroll-into-view.md +32 -25
  811. package/src/utils/.seo-description.md +37 -0
  812. package/src/utils/.seo-title.md +25 -0
  813. package/src/utils/.social-embed-cache.md +37 -0
  814. package/src/utils/.source-icons.md +30 -34
  815. package/src/utils/.suggestion-url.md +46 -0
  816. package/src/utils/.tool-utils.md +39 -24
  817. package/src/utils/.tree-builder.md +64 -0
  818. package/src/utils/.video-bite-id.md +42 -0
  819. package/src/utils/announcement-storage.ts +9 -18
  820. package/src/utils/dev-sections/.dev-section-param-keys.md +51 -0
  821. package/src/utils/dev-sections/.openframe-dev-sections.md +40 -28
  822. package/src/utils/dismiss-cookie.ts +55 -0
  823. package/src/utils/dismissal-storage.ts +44 -0
  824. package/src/utils/index.ts +3 -0
  825. package/dist/chunk-BBUEY73L.js.map +0 -1
  826. package/dist/chunk-G3UN2DXU.cjs.map +0 -1
  827. package/dist/chunk-OWMLWJQY.cjs.map +0 -1
  828. package/dist/chunk-SASR7SK5.js.map +0 -1
  829. package/src/components/chat/utils/.onboarding-icons.md +0 -28
  830. package/src/hooks/.use-og-placeholder.md +0 -51
  831. /package/dist/{chunk-FP4H6Y5O.js.map → chunk-3VMCJK7A.js.map} +0 -0
  832. /package/dist/{chunk-4SMRQ4SN.js.map → chunk-6U7HIZSW.js.map} +0 -0
  833. /package/dist/{chunk-66BNAFO6.js.map → chunk-FIRIO2NB.js.map} +0 -0
  834. /package/dist/{chunk-MGKCS6KS.js.map → chunk-GWJNTDXR.js.map} +0 -0
  835. /package/dist/{chunk-DEHZ5CTC.js.map → chunk-HAJQWSSU.js.map} +0 -0
  836. /package/dist/{chunk-VTSRDC4W.js.map → chunk-JKRX3JHT.js.map} +0 -0
  837. /package/dist/{chunk-Y3Y2DLNO.js.map → chunk-LT2PU6SK.js.map} +0 -0
  838. /package/dist/{chunk-R5WJJL4V.js.map → chunk-RDCAJDX7.js.map} +0 -0
  839. /package/dist/{chunk-PSPWT2Q5.js.map → chunk-T2S7A5IU.js.map} +0 -0
  840. /package/dist/{chunk-2DIOV7BR.js.map → chunk-WIITTL5I.js.map} +0 -0
  841. /package/dist/{chunk-ZRANZNEA.js.map → chunk-Y37XYIWA.js.map} +0 -0
@@ -19,6 +19,8 @@
19
19
  * server layout; the DOM-touching helpers guard on `typeof document`.
20
20
  */
21
21
 
22
+ import { isDismissedCookieValue, readDismissCookie, writeDismissCookie, clearDismissCookie } from './dismiss-cookie'
23
+
22
24
  /** Cookie name for a platform's dismissed-announcement id — the ONE home for
23
25
  * the encoding, shared by the client writer and the hub's SSR reader. */
24
26
  export function announcementDismissCookieName(platform: string): string {
@@ -27,20 +29,10 @@ export function announcementDismissCookieName(platform: string): string {
27
29
 
28
30
  /** THE dismissal match rule (id-match, not presence), shared across the
29
31
  * server/client boundary. `undefined` id (no active announcement) → false. */
30
- export function isDismissedCookieValue(
31
- cookieValue: string | undefined,
32
- id: string | undefined,
33
- ): boolean {
34
- return !!id && cookieValue === id
35
- }
36
-
37
- function readCookie(name: string): string | undefined {
38
- if (typeof document === 'undefined') return undefined
39
- const match = document.cookie
40
- .split('; ')
41
- .find((row) => row.startsWith(`${name}=`))
42
- return match ? decodeURIComponent(match.slice(name.length + 1)) : undefined
43
- }
32
+ // The match rule + cookie IO live in `utils/dismiss-cookie.ts` — shared with
33
+ // every other dismissible surface. Re-exported so existing importers (incl. the
34
+ // hub's SSR layout) keep their import path.
35
+ export { isDismissedCookieValue } from './dismiss-cookie'
44
36
 
45
37
  const legacyDismissKey = (platform: string, id: string) =>
46
38
  `${platform}-announcement-${id}-dismissed`
@@ -49,8 +41,7 @@ const legacyDismissKey = (platform: string, id: string) =>
49
41
  * next request; localStorage is intentionally NOT written (read-only legacy). */
50
42
  export function dismissAnnouncement(platform: string, id: string): void {
51
43
  if (typeof document === 'undefined') return
52
- const name = announcementDismissCookieName(platform)
53
- document.cookie = `${name}=${encodeURIComponent(id)}; path=/; max-age=31536000; SameSite=Lax`
44
+ writeDismissCookie(announcementDismissCookieName(platform), id)
54
45
  }
55
46
 
56
47
  /**
@@ -61,7 +52,7 @@ export function dismissAnnouncement(platform: string, id: string): void {
61
52
  */
62
53
  export function isAnnouncementDismissed(platform: string, id: string): boolean {
63
54
  if (typeof document === 'undefined') return false
64
- const cookieValue = readCookie(announcementDismissCookieName(platform))
55
+ const cookieValue = readDismissCookie(announcementDismissCookieName(platform))
65
56
  if (cookieValue !== undefined) return isDismissedCookieValue(cookieValue, id)
66
57
  try {
67
58
  return localStorage.getItem(legacyDismissKey(platform, id)) !== null
@@ -74,7 +65,7 @@ export function isAnnouncementDismissed(platform: string, id: string): boolean {
74
65
  * keys) — test/story helper so callers never restate the key encoding. */
75
66
  export function clearAnnouncementDismissals(platform: string): void {
76
67
  if (typeof document === 'undefined') return
77
- document.cookie = `${announcementDismissCookieName(platform)}=; path=/; max-age=0`
68
+ clearDismissCookie(announcementDismissCookieName(platform))
78
69
  try {
79
70
  const prefix = `${platform}-announcement-`
80
71
  Object.keys(localStorage).forEach((key) => {
@@ -0,0 +1,51 @@
1
+ <!-- source-hash: 4c86af12e778cd64fe713a8cdb304259 -->
2
+ Defines shared URL parameter keys and anchor ID utilities for the OpenFrame dev-center, serving as the single source of truth between the chrome registry (which writes query params) and list views (which read them).
3
+
4
+ ## Key Components
5
+
6
+ ### `DEV_SECTION_PARAM_KEYS`
7
+ A `const` object mapping logical filter names to their canonical URL query parameter strings.
8
+
9
+ | Key | URL Param | Purpose |
10
+ |---|---|---|
11
+ | `search` | `search` | Free-text search, shared by all dev-center sections |
12
+ | `status` | `status` | Roadmap / Help Center ticket status filter |
13
+ | `releaseStatus` | `release_status` | Product-releases stability-tier filter |
14
+ | `deliveryTaskType` | `task_type` | Delivery task-type filter (bug-fix / enhancement) |
15
+
16
+ ### `DevSectionAnchorKind`
17
+ Union type constraining valid section identifiers used in DOM anchor IDs: `'roadmap' | 'delivery' | 'ticket'`.
18
+
19
+ ### `devSectionAnchorId(section, id)`
20
+ Composes the canonical `<section>-<id>` anchor string used consistently by row components (`DeliveryRow`, `RoadmapCard`, `HelpCenterCard`) and the URL composer (`appendSearchAndHash`).
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ import {
26
+ DEV_SECTION_PARAM_KEYS,
27
+ DevSectionAnchorKind,
28
+ devSectionAnchorId,
29
+ } from './dev-section-param-keys'
30
+
31
+ // Reading a filter from the URL (list view side)
32
+ const url = new URL(window.location.href)
33
+ const status = url.searchParams.get(DEV_SECTION_PARAM_KEYS.status)
34
+ const taskType = url.searchParams.get(DEV_SECTION_PARAM_KEYS.deliveryTaskType)
35
+
36
+ // Writing a filter to the URL (chrome registry side)
37
+ url.searchParams.set(DEV_SECTION_PARAM_KEYS.releaseStatus, 'stable')
38
+
39
+ // Generating a consistent anchor ID for a roadmap item
40
+ const anchorId = devSectionAnchorId('roadmap', 'item-42')
41
+ // → "roadmap-item-42"
42
+
43
+ // Used in a row component
44
+ <div id={devSectionAnchorId('delivery' as DevSectionAnchorKind, task.id)} />
45
+ ```
46
+
47
+ ## Why This Exists
48
+
49
+ Without this module, the chrome and view layers could each hard-code different string literals (e.g., `"task_type"` vs `"taskType"`), causing silent filtering failures. Since this file has **no React or heavy dependencies**, it is safely importable from both server-bundled utilities and client-side views.
50
+
51
+ **Source:** [`dev-section-param-keys.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/dev-section-param-keys.ts)
@@ -1,49 +1,61 @@
1
- <!-- source-hash: 54e69314db343a8160db105f0636d9c5 -->
2
- Canonical metadata registry for all OpenFrame dev-center surface sections (Roadmap, Bug-fixes & Enhancements, Releases, Onboarding Guides, Help Center). Centralizes per-section icon, navigator card copy, hero copy, search config, and filter config into a single source of truth consumed by both the homepage navigator grid and destination page heroes.
1
+ <!-- source-hash: 5b2aafd9e6be550c74161d5e68607913 -->
2
+ Canonical metadata registry for the five OpenFrame dev-center surfaces (Roadmap, Bug-fixes & Enhancements, Releases, Onboarding Guides, Help Center), co-locating all per-section values consumed by both the homepage navigator cards and destination page heroes.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### Exported Constants
6
+ ### Filter Option Constants
7
7
 
8
- | Export | Purpose |
9
- |--------|---------|
10
- | `ROADMAP_STATUS_OPTIONS` | Filter options for roadmap status (`all`, `completed`, `in_progress`) |
11
- | `DELIVERY_TASK_TYPE_OPTIONS` | Filter options for delivery task type (`all`, `Bug`, `Request`) |
12
- | `TICKET_STATUS_OPTIONS` | Filter options for help center ticket status (`all`, `open`, `closed`) |
13
- | `OPENFRAME_DEV_SECTIONS` | Primary registry — keyed object of all 5 dev-center sections |
8
+ | Constant | Description |
9
+ |---|---|
10
+ | `ROADMAP_STATUS_OPTIONS` | `all` / `completed` / `in_progress` — roadmap status pills |
11
+ | `DELIVERY_TASK_TYPE_OPTIONS` | `all` / `Bug` / `Request` maps to ClickUp `custom_item_id` labels |
12
+ | `TICKET_STATUS_OPTIONS` | `all` / `open` / `closed` wire values accepted by `/api/chat/agent/find-ticket` |
14
13
 
15
- ### Types
14
+ ### `OpenframeDevSection` Interface
16
15
 
17
- - **`OpenframeDevSection`** Shape contract for each registry entry, including `href`, `icon`, `navigator`, `hero`, `search`, and `filter` fields
18
- - **`OpenframeDevSectionKey`** — Union type of valid section keys: `"roadmap" | "delivery" | "releases" | "onboarding" | "tickets"`
16
+ Defines the shape of each registry entry:
19
17
 
20
- ### Sections in the Registry
18
+ | Field | Type | Purpose |
19
+ |---|---|---|
20
+ | `href` | `string` | Route path for nav cards and cross-links |
21
+ | `icon` | `LucideIcon` | Icon component reference (not rendered at module load) |
22
+ | `navigator` | `{ title, description }` | ~50-char teaser for homepage navigator cards |
23
+ | `hero` | `{ title, description }` | ~120–150-char copy for destination page heroes |
24
+ | `search` | `{ placeholder, paramKey } \| null` | Inline search bar config; `null` for onboarding |
25
+ | `filter` | `{ label, paramKey, defaultValue, options } \| null` | Filter pill row config; `null` for onboarding |
21
26
 
22
- | Key | Route | Notes |
23
- |-----|-------|-------|
24
- | `roadmap` | `/roadmap` | Status filter |
25
- | `delivery` | `/bug-fixes-and-enhancements` | Task type filter |
26
- | `releases` | `/releases` | Release status filter |
27
- | `onboarding` | `/onboarding-guides` | Navigator card only — `hero`/`search`/`filter` are inert |
28
- | `tickets` | `/tickets` | Ticket status filter |
27
+ ### `OPENFRAME_DEV_SECTIONS`
28
+
29
+ The central registry — a `const` object satisfying `Record<string, OpenframeDevSection>` with five keys: `roadmap`, `delivery`, `releases`, `onboarding`, `tickets`.
30
+
31
+ > **Important:** The `onboarding` entry has `search: null` and `filter: null`. Its route (`/onboarding-guides`) is owned by `OnboardingGuidesCatalogView`, not the shared `DevSectionView`. Embedders iterating the registry that don't host this route should filter it out.
32
+
33
+ ### `OpenframeDevSectionKey`
34
+
35
+ Derived type: `keyof typeof OPENFRAME_DEV_SECTIONS` — `"roadmap" | "delivery" | "releases" | "onboarding" | "tickets"`.
29
36
 
30
37
  ## Usage Example
31
38
 
32
39
  ```typescript
33
- import { OPENFRAME_DEV_SECTIONS, type OpenframeDevSectionKey } from './openframe-dev-sections'
40
+ import {
41
+ OPENFRAME_DEV_SECTIONS,
42
+ type OpenframeDevSectionKey,
43
+ } from './openframe-dev-sections'
34
44
 
35
- // Render all navigator cards (skip onboarding if route is not hosted)
45
+ // Render all homepage navigator cards (skip inert onboarding if route not hosted)
36
46
  const navSections = Object.values(OPENFRAME_DEV_SECTIONS).filter(
37
47
  (s) => s.href !== '/onboarding-guides'
38
48
  )
39
49
 
40
- // Access a specific section's hero copy
41
- const { title, description } = OPENFRAME_DEV_SECTIONS.roadmap.hero
50
+ // Access a specific section by key
51
+ const roadmap = OPENFRAME_DEV_SECTIONS['roadmap']
52
+ console.log(roadmap.hero.description)
53
+ // "See what's in flight, what's planned, and what's up for community vote..."
42
54
 
43
- // Type-safe section key lookup
44
- function getSectionConfig(key: OpenframeDevSectionKey) {
45
- return OPENFRAME_DEV_SECTIONS[key]
55
+ // Type-safe key usage
56
+ function getSectionHref(key: OpenframeDevSectionKey): string {
57
+ return OPENFRAME_DEV_SECTIONS[key].href
46
58
  }
47
59
  ```
48
60
 
49
- > **⚠️ Embedder Note — `onboarding` entry:** The `onboarding` section drives the homepage navigator card only. Its `hero`, `search`, and `filter` fields are intentionally empty/null. Embedders that don't host `/onboarding-guides` should filter it out before iterating the registry.
61
+ **Source:** [`src/utils/openframe-dev-sections.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/utils/openframe-dev-sections.ts)
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Dismissal-cookie primitives — THE one implementation of "this surface was
3
+ * dismissed", shared by every dismissible surface (announcement bar, floating
4
+ * walkthrough video, and anything added later).
5
+ *
6
+ * The dismissal rule is an ID MATCH, never mere cookie presence: the cookie
7
+ * stores the id of the LAST dismissed item, so publishing a NEW item re-shows
8
+ * the surface while the old dismissal still suppresses the old item.
9
+ *
10
+ * No `"use client"` on purpose — `isDismissedCookieValue` is pure and is used by
11
+ * server code (the hub's root layout reads the cookie during SSR to avoid a
12
+ * flash); the DOM-touching helpers guard on `typeof document`.
13
+ */
14
+
15
+ /** One year, the standard dismissal horizon for these surfaces. */
16
+ const DISMISS_COOKIE_MAX_AGE_SECONDS = 31_536_000;
17
+
18
+ /** THE dismissal match rule. `undefined` id (nothing active) → not dismissed. */
19
+ export function isDismissedCookieValue(
20
+ cookieValue: string | undefined,
21
+ id: string | undefined,
22
+ ): boolean {
23
+ return !!id && cookieValue === id;
24
+ }
25
+
26
+ /**
27
+ * Read a dismissal cookie. Returns `undefined` when absent OR malformed:
28
+ * `decodeURIComponent` throws `URIError` on bad percent-encoding, and callers
29
+ * run this inside reveal paths where an uncaught throw would hide the surface
30
+ * permanently. Failing open (treated as not-dismissed) is always the safe side.
31
+ */
32
+ export function readDismissCookie(name: string): string | undefined {
33
+ if (typeof document === 'undefined') return undefined;
34
+ const match = document.cookie
35
+ .split('; ')
36
+ .find((row) => row.startsWith(`${name}=`));
37
+ if (!match) return undefined;
38
+ try {
39
+ return decodeURIComponent(match.slice(name.length + 1));
40
+ } catch {
41
+ return undefined;
42
+ }
43
+ }
44
+
45
+ /** Persist a dismissal (cookie only, 1 year). */
46
+ export function writeDismissCookie(name: string, id: string): void {
47
+ if (typeof document === 'undefined') return;
48
+ document.cookie = `${name}=${encodeURIComponent(id)}; path=/; max-age=${DISMISS_COOKIE_MAX_AGE_SECONDS}; SameSite=Lax`;
49
+ }
50
+
51
+ /** Clear a dismissal (test/story helper). */
52
+ export function clearDismissCookie(name: string): void {
53
+ if (typeof document === 'undefined') return;
54
+ document.cookie = `${name}=; path=/; max-age=0`;
55
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Walkthrough-video dismissal — a thin key-naming layer over the shared
3
+ * dismissal-cookie primitives (`utils/dismiss-cookie.ts`). Same id-match
4
+ * semantics as the announcement bar, from the same implementation.
5
+ */
6
+
7
+ import {
8
+ isDismissedCookieValue,
9
+ readDismissCookie,
10
+ writeDismissCookie,
11
+ clearDismissCookie,
12
+ } from './dismiss-cookie';
13
+
14
+ /** Cookie-name stem. */
15
+ export const WALKTHROUGH_VIDEO_DISMISS_KEY = 'walkthrough-video-dismissed';
16
+
17
+ /** THE per-platform cookie name — the ONE home for the encoding. Shaped exactly
18
+ * like `announcementDismissCookieName` (`<platform>-<name>-dismissed`): `:` is
19
+ * not a `token` character under RFC 6265, so the old `…-dismissed:<platform>`
20
+ * form was only working on browser leniency. Hosts must not rebuild this
21
+ * inline, or an SSR reader added later will restate the separator.
22
+ *
23
+ * Renaming orphans existing cookies, so anyone who had dismissed the card sees
24
+ * it once more. Deliberate and one-time: the alternative is reading both names
25
+ * forever to save a single re-dismissal. */
26
+ export function walkthroughDismissCookieName(platform: string): string {
27
+ return `${platform}-${WALKTHROUGH_VIDEO_DISMISS_KEY}`;
28
+ }
29
+
30
+ /** Client-side dismissal check (id-match). Reads a cookie, so call it from an
31
+ * effect, never during render. */
32
+ export function isWalkthroughDismissed(key: string, id: string | undefined): boolean {
33
+ return isDismissedCookieValue(readDismissCookie(key), id);
34
+ }
35
+
36
+ /** Persist a dismissal for this video id. */
37
+ export function dismissWalkthrough(key: string, id: string): void {
38
+ writeDismissCookie(key, id);
39
+ }
40
+
41
+ /** Clear a platform key's dismissal (test/story helper). */
42
+ export function clearWalkthroughDismissal(key: string): void {
43
+ clearDismissCookie(key);
44
+ }
@@ -91,6 +91,9 @@ export * from './color-analysis'
91
91
 
92
92
  // Announcement dismissal store (cookie SSOT; server-safe name/match helpers)
93
93
  export * from './announcement-storage'
94
+ // cookie id-match dismissal store (walkthrough video widget)
95
+ export * from './dismiss-cookie'
96
+ export * from './dismissal-storage'
94
97
 
95
98
  // Image-proxy URL builder (pure, runtime-configurable)
96
99
  export {