@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,56 +1,73 @@
1
- <!-- source-hash: 5558d90751c9222d7ee8a9204399d39b -->
2
- A comprehensive React component library providing reusable card UI elements with customizable styling and layouts. Built with TypeScript and Tailwind CSS for consistent design system implementation.
1
+ <!-- source-hash: 292b6d5f3843f309d54f8359c29fda08 -->
2
+ A collection of composable card UI components built on `React.forwardRef`, providing a structured layout system for displaying grouped content with optional header, title, description, content, and footer sections. Also exports a specialized `CardHorizontal` component for icon-labeled feature rows.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Card** - Base container with rounded borders, shadow, and theme-aware styling
7
- - **CardHeader** - Top section with vertical spacing and padding for titles/metadata
8
- - **CardTitle** - Prominent heading with large font and tight tracking
9
- - **CardDescription** - Subtitle text with muted styling for secondary information
10
- - **CardContent** - Main content area with consistent padding
11
- - **CardFooter** - Bottom section with horizontal item alignment for actions/buttons
12
- - **CardHorizontal** - Specialized horizontal layout card with icon, title, and description
6
+ | Export | Description |
7
+ |---|---|
8
+ | `Card` | Root container with rounded border, card background, and shadow |
9
+ | `CardHeader` | Flex column wrapper with vertical spacing and padding |
10
+ | `CardTitle` | Styled heading using `text-h2` typography token |
11
+ | `CardDescription` | Muted subtitle using `text-h6` and `text-muted-foreground` |
12
+ | `CardContent` | Main body area with padding (top padding removed) |
13
+ | `CardFooter` | Horizontal flex row for actions, aligned at card bottom |
14
+ | `CardHorizontal` | Standalone horizontal card with icon, title, and description |
15
+
16
+ All `forwardRef` components accept standard `HTMLDivElement` attributes and merge custom `className` via the `cn` utility.
13
17
 
14
18
  ## Usage Example
15
19
 
16
20
  ```typescript
17
- import {
18
- Card,
19
- CardHeader,
20
- CardTitle,
21
- CardDescription,
22
- CardContent,
21
+ import {
22
+ Card,
23
+ CardHeader,
24
+ CardTitle,
25
+ CardDescription,
26
+ CardContent,
23
27
  CardFooter,
24
- CardHorizontal
25
- } from './card'
28
+ } from "@/components/ui/card"
29
+ import { CardHorizontal } from "@/components/ui/card"
30
+ import { ShieldIcon } from "lucide-react"
26
31
 
27
- // Standard vertical card
28
- function ProfileCard() {
32
+ // Composable vertical card
33
+ function FeatureCard() {
29
34
  return (
30
- <Card className="w-96">
35
+ <Card>
31
36
  <CardHeader>
32
- <CardTitle>User Profile</CardTitle>
33
- <CardDescription>Manage your account settings</CardDescription>
37
+ <CardTitle>Endpoint Management</CardTitle>
38
+ <CardDescription>Monitor and manage all devices</CardDescription>
34
39
  </CardHeader>
35
40
  <CardContent>
36
- <p>Profile content goes here</p>
41
+ <p>Real-time device status and alerts.</p>
37
42
  </CardContent>
38
43
  <CardFooter>
39
- <button>Save Changes</button>
44
+ <button>View Devices</button>
40
45
  </CardFooter>
41
46
  </Card>
42
47
  )
43
48
  }
44
49
 
45
- // Horizontal card for category sections
46
- function CategoryCard() {
50
+ // Horizontal card for feature/category lists
51
+ function CategoryRow() {
47
52
  return (
48
53
  <CardHorizontal
49
- icon={<UserIcon />}
50
- title="User Management"
51
- description="Handle user accounts and permissions"
54
+ icon={<ShieldIcon />}
55
+ title="Security Monitoring"
56
+ description="Automated threat detection and response"
52
57
  borderLeft={true}
53
58
  />
54
59
  )
55
60
  }
56
- ```
61
+ ```
62
+
63
+ ## `CardHorizontal` Props
64
+
65
+ | Prop | Type | Default | Description |
66
+ |---|---|---|---|
67
+ | `icon` | `React.ReactNode` | — | Icon rendered at fixed `20×20px` |
68
+ | `title` | `string` | — | Primary label (`text-h6`, primary color) |
69
+ | `description` | `string` | — | Secondary label (`text-h6`, muted color) |
70
+ | `className` | `string` | `''` | Additional Tailwind classes |
71
+ | `borderLeft` | `boolean` | `true` | Toggles left border accent |
72
+
73
+ **Source:** [`card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/card.tsx)
@@ -1,46 +1,58 @@
1
- <!-- source-hash: 01a25a0740d1f4040be1a2e32f829429 -->
2
- A styled checkbox component that renders as a full-width interactive block with a label, optional description, and error state built on top of Radix UI's `CheckboxPrimitive`.
1
+ <!-- source-hash: d683834a543ce22b20cc1a05b1b5edc7 -->
2
+ A styled checkbox component that renders as a full-width card/block layout, combining a Radix UI checkbox primitive with a label, optional description, trailing slot, and inline error display.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`CheckboxBlock`** — A `forwardRef` component wrapping `@radix-ui/react-checkbox` with a card-style block layout
7
- - **`CheckboxBlockProps`** Interface extending standard checkbox behavior with `label`, `description`, `error`, and `className`
6
+ ### `CheckboxBlock`
7
+ A `forwardRef` component wrapping `@radix-ui/react-checkbox` that renders a tappable card row containing:
8
8
 
9
9
  | Prop | Type | Description |
10
- |------|------|-------------|
11
- | `label` | `string` | Required primary text displayed next to the checkbox |
12
- | `description` | `React.ReactNode` | Optional secondary text below the label |
13
- | `error` | `string` | Error message shown below the block; also triggers a red border |
10
+ |---|---|---|
11
+ | `label` | `React.ReactNode` | Primary label (supports rich text/links) |
12
+ | `description` | `React.ReactNode` | Optional secondary line below label |
13
+ | `trailing` | `React.ReactNode` | Optional trailing slot (e.g. action button); must call `preventDefault` to avoid toggling |
14
+ | `truncateLabel` | `boolean` | Ellipsize label overflow instead of wrapping |
15
+ | `error` | `string` | Error message shown below the block; triggers red border |
16
+ | `disabled` | `boolean` | Dims and disables interaction |
14
17
  | `checked` / `defaultChecked` | `boolean` | Controlled/uncontrolled checked state |
15
18
  | `onCheckedChange` | `(checked: boolean) => void` | Change handler |
16
- | `disabled` | `boolean` | Disables interaction and reduces opacity |
17
19
 
18
20
  ## Usage Example
19
21
 
20
22
  ```typescript
21
23
  import { CheckboxBlock } from "./checkbox-block"
22
24
 
23
- // Basic usage
25
+ // Uncontrolled with description
24
26
  <CheckboxBlock
25
27
  id="terms"
26
- label="Accept Terms & Conditions"
27
- description="By checking this, you agree to our terms of service."
28
+ label="Accept Terms of Service"
29
+ description="You agree to our privacy policy and terms."
30
+ defaultChecked={false}
28
31
  onCheckedChange={(checked) => console.log(checked)}
29
32
  />
30
33
 
31
- // With error state
34
+ // Controlled with error and trailing action
32
35
  <CheckboxBlock
33
- id="required-field"
34
- label="Required option"
35
- error="This field is required"
36
- checked={false}
37
- onCheckedChange={handleChange}
36
+ id="notify"
37
+ checked={isChecked}
38
+ onCheckedChange={setIsChecked}
39
+ label="Enable notifications"
40
+ trailing={<button onClick={(e) => { e.preventDefault(); openSettings() }}>Configure</button>}
41
+ error={!isChecked ? "This field is required" : undefined}
38
42
  />
39
43
 
40
- // Disabled
44
+ // Truncated label, disabled
41
45
  <CheckboxBlock
42
- id="disabled-option"
43
- label="Unavailable option"
46
+ id="long"
47
+ label="A very long label that should not wrap to a second line"
48
+ truncateLabel
44
49
  disabled
45
50
  />
46
- ```
51
+ ```
52
+
53
+ ## Notes
54
+
55
+ - On mobile, `trailing` content stacks full-width below the text; on `md+` it aligns inline.
56
+ - Minimum touch target height is `44px` (mobile) / `48px` (desktop), increasing to `60px`/`64px` when a description is present.
57
+ - Error text is absolutely positioned below the block to avoid layout shift.
58
+ - Source: [`checkbox-block.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/checkbox-block.tsx)
@@ -1,41 +1,39 @@
1
- <!-- source-hash: c1a54005af93850cd2ca67c81ddf2ca7 -->
2
- A compound checkbox component that pairs a Radix UI checkbox with a title and description, styled with ODS (OpenFrame Design System) tokens.
1
+ <!-- source-hash: 59a0ae55416cf1e4d81e6e2acf777fff -->
2
+ A compound checkbox component that renders a labeled checkbox alongside a title and descriptive text, built on Radix UI's `CheckboxPrimitive` with ODS design tokens.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`CheckboxWithDescription`** — A `forwardRef` component combining a controlled checkbox, label, and descriptive text in a card-style container
7
- - **`CheckboxWithDescriptionProps`** — Interface defining the component's controlled state and content props
8
-
9
- ### Props
10
-
11
- | Prop | Type | Required | Description |
12
- |------|------|----------|-------------|
13
- | `id` | `string` | ✅ | Links the label `htmlFor` to the checkbox input |
14
- | `checked` | `boolean` | ✅ | Controlled checked state |
15
- | `onCheckedChange` | `(checked: boolean) => void` | ✅ | Change handler |
16
- | `title` | `string` | ✅ | Primary label text |
17
- | `description` | `string` | ✅ | Secondary descriptive text |
18
- | `disabled` | `boolean` | ❌ | Disables interaction and dims the container |
19
- | `className` | `string` | ❌ | Additional classes for the outer wrapper |
6
+ - **`CheckboxWithDescription`** — A `forwardRef` wrapper component combining a Radix UI checkbox, a `Label`, and a secondary description span into a card-style container
7
+ - **`CheckboxWithDescriptionProps`** — Interface defining required and optional props:
8
+ - `id` — Links the label to the checkbox input
9
+ - `checked` / `onCheckedChange` — Controlled state
10
+ - `title` — Primary label text
11
+ - `description` Secondary helper text rendered in `ods-text-secondary`
12
+ - `disabled` / `className` — Optional modifiers
20
13
 
21
14
  ## Usage Example
22
15
 
23
16
  ```typescript
24
17
  import { CheckboxWithDescription } from "@/components/ui/checkbox-with-description"
25
18
 
26
- function SettingsForm() {
19
+ function NotificationSettings() {
27
20
  const [enabled, setEnabled] = React.useState(false)
28
21
 
29
22
  return (
30
23
  <CheckboxWithDescription
31
- id="notifications"
24
+ id="email-notifications"
32
25
  checked={enabled}
33
26
  onCheckedChange={setEnabled}
34
27
  title="Email Notifications"
35
- description="Receive alerts when a ticket is updated or assigned to you."
28
+ description="Receive alerts and updates directly to your inbox."
36
29
  />
37
30
  )
38
31
  }
39
32
  ```
40
33
 
41
- > The outer container becomes visually dimmed (`opacity-50`) and non-interactive (`cursor-not-allowed`) when `disabled` is set, applying consistently to both the checkbox and its label.
34
+ ## Notes
35
+
36
+ - Applies `opacity-50 cursor-not-allowed` to the entire container when `disabled` is set, not just the native input
37
+ - Uses ODS design tokens (`ods-accent`, `ods-border`, `ods-card`) for consistent theming
38
+ - Checkbox indicator renders `CheckboxCheckmarkIcon` at 10px when `data-[state=checked]` is active
39
+ - `displayName` is set for React DevTools clarity
@@ -1,43 +1,43 @@
1
- <!-- source-hash: cdf56d600d330b114e8fb5c69c27907c -->
2
- A customizable chevron button component built with React and Lucide icons that supports dynamic direction, expandable states, and multiple sizing options with optional custom styling.
1
+ <!-- source-hash: 5df1a18bd1179672bf26c9b99fc30f83 -->
2
+ A client-side React button component that renders a chevron icon (up or down) with configurable size, direction, and expand/collapse state.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`ChevronButton`** - Main React component that renders a button with chevron icons from Lucide React
7
- - **`ChevronButtonProps`** - TypeScript interface extending button HTML attributes with chevron-specific props
8
- - **Size variants** - Three predefined sizes (sm, md, lg) with corresponding icon dimensions
9
- - **Direction control** - Supports 'up' and 'down' chevron orientations with expandable state logic
6
+ ### `ChevronButton`
7
+
8
+ A `forwardRef` button component built on native `<button>` with the following props:
9
+
10
+ | Prop | Type | Default | Description |
11
+ |---|---|---|---|
12
+ | `direction` | `'up' \| 'down'` | `'down'` | Static chevron direction |
13
+ | `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Icon size (`h-4`, `h-5`, `h-6`) |
14
+ | `isExpanded` | `boolean` | — | When provided, overrides `direction` — `true` → up, `false` → down |
15
+ | `backgroundColor` | `string` | — | Inline background color |
16
+ | `borderColor` | `string` | — | Inline border color |
17
+ | `className` | `string` | — | Additional Tailwind classes via `cn()` |
18
+
19
+ > **Note:** `isExpanded` takes priority over `direction` when determining the rendered icon.
10
20
 
11
21
  ## Usage Example
12
22
 
13
23
  ```typescript
14
- import { ChevronButton } from './chevron-button'
24
+ import { ChevronButton } from "@/components/ui/chevron-button"
15
25
 
16
- // Basic usage with default down chevron
17
- <ChevronButton onClick={() => console.log('clicked')} />
18
-
19
- // Expandable dropdown with state control
20
- <ChevronButton
21
- isExpanded={isOpen}
22
- onClick={() => setIsOpen(!isOpen)}
23
- size="lg"
24
- />
26
+ // Static direction
27
+ <ChevronButton direction="up" size="sm" onClick={handleClick} />
25
28
 
26
- // Custom styled chevron button
27
- <ChevronButton
28
- direction="up"
29
- size="sm"
30
- backgroundColor="#f3f4f6"
31
- borderColor="#d1d5db"
32
- className="hover:bg-gray-200"
33
- />
29
+ // Controlled expand/collapse toggle
30
+ const [open, setOpen] = React.useState(false)
34
31
 
35
- // Form integration
36
32
  <ChevronButton
37
- type="submit"
38
- disabled={isLoading}
39
- isExpanded={showDetails}
33
+ isExpanded={open}
34
+ size="lg"
35
+ backgroundColor="#f4f4f5"
36
+ borderColor="#e4e4e7"
37
+ onClick={() => setOpen(prev => !prev)}
40
38
  />
41
39
  ```
42
40
 
43
- The component intelligently selects the chevron direction based on either the `isExpanded` prop (taking precedence) or the `direction` prop, making it ideal for collapsible sections, dropdowns, and accordion interfaces.
41
+ ## Source
42
+
43
+ [`chevron-button.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/components/ui/chevron-button.tsx)
@@ -1,66 +1,55 @@
1
- <!-- source-hash: b3367d6791779cace17c9e0ea0b291bc -->
2
- A React SVG-based circular progress ring component with configurable variants, sizes, and overflow behavior for displaying percentage values.
1
+ <!-- source-hash: b3bf4bccce844da265f752f1cb27c87b -->
2
+ A React SVG-based circular progress ring component with support for multiple semantic variants, configurable sizing, and overflow handling for values exceeding 100%.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### Types
7
7
 
8
- | Type | Values | Description |
9
- |------|--------|-------------|
10
- | `CircularProgressVariant` | `success` \| `warning` \| `error` \| `info` \| `accent` | Color theme for the progress ring |
11
- | `CircularProgressOverflow` | `clamp` \| `wrap` | How to handle percentages exceeding 100 |
8
+ - **`CircularProgressVariant`** — `'success' | 'warning' | 'error' | 'info' | 'accent'`
9
+ - **`CircularProgressOverflow`** — `'clamp'` (default, caps ring at 100%) or `'wrap'` (ring wraps per 100 units, label shows raw value)
12
10
 
13
- ### Props (`CircularProgressProps`)
11
+ ### `CircularProgress` Component
14
12
 
15
- | Prop | Default | Description |
16
- |------|---------|-------------|
17
- | `percentage` | — | Progress value (0–100 in clamp; unbounded in wrap) |
18
- | `variant` | `'success'` | Color variant using ODS design tokens |
19
- | `size` | `56` | Diameter in pixels |
20
- | `strokeWidth` | `10` | Ring stroke thickness in pixels |
21
- | `showLabel` | `true` | Renders percentage text in the center |
22
- | `labelFormat` | `'percent'` | `'percent'` → `"70%"`, `'value'` → `"70"` |
23
- | `overflow` | `'clamp'` | Overflow handling strategy |
24
-
25
- ### `CircularProgress` (exported component)
26
-
27
- Renders a two-circle SVG (track + progress arc) rotated -90° so progress starts at the top. The progress arc is animated via `strokeDashoffset`.
13
+ | Prop | Type | Default | Description |
14
+ |---|---|---|---|
15
+ | `percentage` | `number` | — | Progress value (0–100 in clamp mode; can exceed 100 in wrap mode) |
16
+ | `variant` | `CircularProgressVariant` | `'success'` | Controls ring and track colors via ODS tokens |
17
+ | `size` | `number` | `56` | Width/height in pixels |
18
+ | `strokeWidth` | `number` | `10` | Ring stroke thickness in pixels |
19
+ | `showLabel` | `boolean` | `true` | Renders centered text label |
20
+ | `labelFormat` | `'percent' \| 'value'` | `'percent'` | `'percent'` → `"70%"`, `'value'` → `"70"` |
21
+ | `overflow` | `CircularProgressOverflow` | `'clamp'` | How values > 100 are handled |
22
+ | `className` | `string` | — | Additional CSS classes on the wrapper |
28
23
 
29
24
  ## Usage Example
30
25
 
31
26
  ```typescript
32
- // Basic usage
33
- <CircularProgress percentage={72} />
27
+ // Default success ring at 75%
28
+ <CircularProgress percentage={75} />
34
29
 
35
- // Overage warning with wrap mode
30
+ // Warning ring with wrap overflow — ring shows 30%, label shows "130%"
36
31
  <CircularProgress
37
32
  percentage={130}
38
33
  variant="warning"
39
34
  overflow="wrap"
40
35
  />
41
- // Ring shows 30%, label shows 130%
42
36
 
43
- // Custom size, no label, accent variant
37
+ // Compact error ring, value-only label, no label
44
38
  <CircularProgress
45
- percentage={45}
46
- variant="accent"
47
- size={80}
48
- strokeWidth={8}
49
- showLabel={false}
39
+ percentage={42}
40
+ variant="error"
41
+ size={40}
42
+ strokeWidth={6}
43
+ labelFormat="value"
50
44
  />
51
45
 
52
- // Raw value label (no % suffix)
46
+ // Accent ring, large, no label
53
47
  <CircularProgress
54
- percentage={88}
55
- labelFormat="value"
56
- variant="info"
48
+ percentage={60}
49
+ variant="accent"
50
+ size={80}
51
+ showLabel={false}
57
52
  />
58
53
  ```
59
54
 
60
- ## Overflow Behavior
61
-
62
- ```text
63
- clamp mode: percentage=130 → ring=100%, label="100%"
64
- wrap mode: percentage=130 → ring=30%, label="130%"
65
- wrap mode: percentage=200 → ring=100%, label="200%" (exact lap = full ring)
66
- ```
55
+ **Source:** [`circular-progress.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/circular-progress.tsx)
@@ -0,0 +1,54 @@
1
+ <!-- source-hash: 8c7a0dd97bd59ac0d3df5150557e0d01 -->
2
+ Client-side color selection components providing both a preset-based dropdown selector and a full-featured color picker with HEX/RGB/HSL input support.
3
+
4
+ ## Key Components
5
+
6
+ ### Exports & Constants
7
+
8
+ | Name | Type | Description |
9
+ |---|---|---|
10
+ | `ColorPreset` | Interface | Shape for a color preset entry (`key`, `label`, `color`) |
11
+ | `TICKET_STATUS_COLOR_PRESETS` | `readonly ColorPreset[]` | 12-color palette for ticket status use |
12
+ | `CUSTOM_PRESET_KEY` | `string` | Sentinel key `'custom'` for user-defined colors |
13
+ | `DEFAULT_CUSTOM_STATUS_COLOR` | `string` | Fallback hex `#888888` for custom presets |
14
+ | `ColorPresetSelect` | Component | Dropdown to pick from named presets or switch to custom |
15
+ | `ColorPickerInput` | Component | Popover with a saturation/hue canvas and HEX/RGB/HSL text inputs |
16
+
17
+ ### Internal Helpers
18
+
19
+ - **`HexInputs`** — controlled text input with draft state; validates against `HEX_PATTERN` on blur/Enter
20
+ - **`ChannelInput`** — numeric-only input clamped to `[min, max]`; used by RGB and HSL rows
21
+ - **`RgbInputs`** / **`HslInputs`** — three-channel rows converting to/from hex via `ods-color-utils`
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ import {
27
+ ColorPresetSelect,
28
+ ColorPickerInput,
29
+ TICKET_STATUS_COLOR_PRESETS,
30
+ } from './color-preset-select'
31
+
32
+ // Preset selector (e.g. ticket status badge color)
33
+ <ColorPresetSelect
34
+ value={color}
35
+ presetKey={presetKey}
36
+ presets={TICKET_STATUS_COLOR_PRESETS}
37
+ onChange={({ color, preset }) => {
38
+ setColor(color)
39
+ setPresetKey(preset)
40
+ }}
41
+ />
42
+
43
+ // Free-form color picker (always works in hex)
44
+ <ColorPickerInput
45
+ value={color} // "#5ea62e"
46
+ onChange={setColor} // receives hex string
47
+ />
48
+ ```
49
+
50
+ > **Note:** Both components use `value`/`onChange` in hex (`#rrggbb`). Color space conversions (RGB ↔ HSL ↔ hex) are handled internally via `utils/ods-color-utils`.
51
+
52
+ ## Source
53
+
54
+ [`color-preset-select.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/color-preset-select.tsx)
@@ -0,0 +1,37 @@
1
+ <!-- source-hash: 2ae93287b79efdeb7690ec2709feb96f -->
2
+ A small presentational component that renders a square color preview swatch, used as a shared building block across color and status selector UIs.
3
+
4
+ ## Key Components
5
+
6
+ **`ColorSwatch`** — Default export function component.
7
+
8
+ **`ColorSwatchProps`** — Interface defining the component's props:
9
+
10
+ | Prop | Type | Required | Description |
11
+ |---|---|---|---|
12
+ | `color` | `string` | ✅ | Any valid CSS color value applied as `backgroundColor` |
13
+ | `className` | `string` | ❌ | Optional additional Tailwind/CSS classes |
14
+
15
+ ## Usage Example
16
+
17
+ ```typescript
18
+ import { ColorSwatch } from './color-swatch'
19
+
20
+ // Basic usage
21
+ <ColorSwatch color="#3B82F6" />
22
+
23
+ // With custom sizing override
24
+ <ColorSwatch color="rgb(239, 68, 68)" className="size-6" />
25
+
26
+ // Composed inside a status selector
27
+ <div className="flex items-center gap-2">
28
+ <ColorSwatch color={selectedStatus.color} />
29
+ <span>{selectedStatus.label}</span>
30
+ </div>
31
+ ```
32
+
33
+ ## Notes
34
+
35
+ - Renders as an `aria-hidden` `<span>` — purely decorative; excluded from the accessibility tree.
36
+ - Default styles: `inline-block`, `16×16px` (`size-4`), `shrink-0`, `rounded-sm`.
37
+ - Uses the shared [`cn`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/utils/cn.ts) utility for class merging, so `className` overrides compose cleanly with Tailwind.
@@ -1,43 +1,50 @@
1
- <!-- source-hash: f80d7f61d9427dcf715215adf596f271 -->
2
- A unified skeleton loading component that replaces duplicate loading patterns across the UI, using ODS design tokens for consistent theming.
1
+ <!-- source-hash: 40cfee9a50603599ef7a29bb3b0234f7 -->
2
+ A unified skeleton loading component that renders animated placeholder UI for different content layouts using ODS design tokens, replacing duplicate loading patterns across the application.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **`ContentLoader`** — Main export. Renders an animated pulse skeleton based on the selected `variant`.
6
+ ### `ContentLoader`
7
+ The primary export. Accepts a `variant` prop to switch between four skeleton layouts, with configurable item count and optional title placeholder.
7
8
 
8
- **`ContentLoaderProps`**
9
+ **Props (`ContentLoaderProps`):**
9
10
 
10
11
  | Prop | Type | Default | Description |
11
- |------|------|---------|-------------|
12
+ |---|---|---|---|
12
13
  | `variant` | `'card' \| 'form' \| 'detail' \| 'list'` | `'card'` | Skeleton layout type |
13
14
  | `items` | `number` | `4` | Number of repeated skeleton items |
14
- | `showTitle` | `boolean` | `true` | Renders a title placeholder bar |
15
- | `className` | `string` | — | Inner wrapper CSS classes |
16
- | `containerClassName` | `string` | — | Outer container CSS classes |
15
+ | `showTitle` | `boolean` | `true` | Render a title placeholder bar |
16
+ | `className` | `string` | — | CSS classes for inner wrapper |
17
+ | `containerClassName` | `string` | — | CSS classes for outer container |
17
18
 
18
- **Convenience exports** — Pre-bound variants for direct use:
19
- - `CardLoader` stat/metric card layout
20
- - `FormLoader` — labeled input fields layout
21
- - `DetailLoader`two-column detail/sidebar layout
22
- - `ListLoader`icon + text row list layout
19
+ ### Variant Shortcuts
20
+ Pre-bound convenience exports with `variant` locked:
21
+
22
+ - **`CardLoader`**Grid of stat fields with a footer row
23
+ - **`FormLoader`**Stacked label + input field rows
24
+ - **`DetailLoader`** — Two-column layout with a large content area and sidebar
25
+ - **`ListLoader`** — Row items with avatar, text lines, and action button
26
+
27
+ All variants use `bg-ods-skeleton` tokens and `animate-pulse` for consistent theming.
23
28
 
24
29
  ## Usage Example
25
30
 
26
31
  ```typescript
27
- // Generic usage
28
- import { ContentLoader } from './content-loader';
29
-
32
+ import {
33
+ ContentLoader,
34
+ CardLoader,
35
+ FormLoader,
36
+ DetailLoader,
37
+ ListLoader,
38
+ } from './content-loader';
39
+
40
+ // Generic usage with variant selection
30
41
  <ContentLoader variant="list" items={6} showTitle={false} />
31
42
 
32
- // Convenience variants
33
- import { FormLoader, DetailLoader, ListLoader } from './content-loader';
34
-
35
- // Form skeleton with 3 fields
36
- <FormLoader items={3} />
37
-
38
- // Detail page skeleton
39
- <DetailLoader containerClassName="max-w-4xl" />
43
+ // Convenience wrappers
44
+ <CardLoader items={4} />
45
+ <FormLoader items={5} containerClassName="max-w-lg" />
46
+ <DetailLoader className="mt-4" />
47
+ <ListLoader items={8} showTitle={false} />
48
+ ```
40
49
 
41
- // List with custom container
42
- <ListLoader items={8} showTitle={false} containerClassName="px-0" />
43
- ```
50
+ > **Note:** This is a `'use client'` component. It must be rendered in a client boundary in Next.js App Router projects.
@@ -0,0 +1,50 @@
1
+ <!-- source-hash: 4e1e5ab4feba9a5a8cb821fcb8daa1ba -->
2
+ Animated tab-panel stack that keeps all panels mounted in the DOM and switches between them using an opacity/visibility crossfade, preventing layout shift.
3
+
4
+ ## Key Components
5
+
6
+ ### `CrossfadePanels`
7
+ The main exported component. Renders all panels into a single CSS grid cell (`col-start-1 row-start-1`), stacking them so the container height is always `max(panel heights)`. The active panel fades in at `z-[1]`; inactive panels fade out and receive `inert`, `aria-hidden`, and `pointer-events-none` once settled.
8
+
9
+ ### Interfaces
10
+
11
+ | Interface | Purpose |
12
+ |---|---|
13
+ | `CrossfadePanel` | `{ id, content }` — a single panel descriptor |
14
+ | `CrossfadePanelsProps` | Component props: `activeId`, `panels`, `durationMs`, `className`, `panelClassName` |
15
+
16
+ ## Key Behaviors
17
+
18
+ - **Height lock** — CSS grid single-cell stacking prevents CLS on switch
19
+ - **Fade-then-hide** — `visibility` interpolates alongside `opacity` so the outgoing panel stays paintable until the fade completes
20
+ - **Fully dead when hidden** — `inert` + `aria-hidden` eliminates tab stops, screen-reader exposure, and click/hover leaks (WCAG compliant)
21
+ - **Motion respect** — `prefers-reduced-motion` collapses the crossfade to an instant swap via `motion-reduce:transition-none`
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ import { CrossfadePanels } from './crossfade-panels'
27
+
28
+ const panels = [
29
+ { id: 'overview', content: <OverviewPanel /> },
30
+ { id: 'metrics', content: <MetricsPanel /> },
31
+ ]
32
+
33
+ function Dashboard() {
34
+ const [activeId, setActiveId] = React.useState('overview')
35
+
36
+ return (
37
+ <>
38
+ <TabNavigation activeId={activeId} onChange={setActiveId} />
39
+ <CrossfadePanels
40
+ activeId={activeId}
41
+ panels={panels}
42
+ durationMs={250}
43
+ className="mt-4"
44
+ />
45
+ </>
46
+ )
47
+ }
48
+ ```
49
+
50
+ > **When to prefer this over `<TabContent>`:** Use `CrossfadePanels` when panels are cheap to keep mounted and seamless switching matters (strips, media rails, dashboards). Use `<TabContent>` for heavy admin surfaces that should unmount when hidden.