@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,25 +1,24 @@
1
- <!-- source-hash: 7a3018246d0e272d26eee450458f6d52 -->
2
- A client-side React component that renders a drag-and-drop / click-to-upload image input with preview, replace, and remove functionality. Wraps a hidden `<input type="file">` with validation, loading states, and accessible keyboard interaction.
1
+ <!-- source-hash: 9d7d8b6fd8b5c3617d4c8d6239c931f0 -->
2
+ A client-side React component providing a drag-and-drop / click-to-upload image input with preview, validation, and loading states, wrapped in a `FieldWrapper` for consistent field labeling and error display.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`ImageUploader`** Main export. Renders the dropzone or image preview depending on whether `value` is set.
7
- - **`ActionIconButton`** Internal button used for the "Replace" and "Remove" overlay actions on the image preview.
8
- - **`formatSize(bytes)`** — Utility that formats a byte count as a human-readable `KB`/`MB` string.
9
- - **`matchesAccept(file, accept)`** — Validates a `File` against an `accept` string (MIME types and extensions).
6
+ ### `ImageUploader` (main export)
7
+ The primary component. Renders an empty dropzone or image preview depending on whether `value` is set.
10
8
 
11
- ## Key Props (`ImageUploaderProps`)
9
+ **Key behaviors:**
10
+ - **Empty state** — shows a labeled dropzone with click, keyboard (`Enter`/`Space`), and drag-and-drop support
11
+ - **Preview state** — displays the uploaded image with overlay action buttons (replace / remove)
12
+ - **Loading state** — renders a spinner overlay (on preview) or centered spinner (on empty dropzone)
13
+ - **Validation** — enforces `accept` MIME/extension matching and `maxSize` before calling `onChange`
14
+ - **Auth-aware image rendering** — uses `useAuthedImageSrc` to resolve gateway URLs requiring `Authorization` headers
12
15
 
13
- | Prop | Type | Description |
14
- |------|------|-------------|
15
- | `value` | `string` | Current image URL; triggers preview state when set |
16
- | `onChange` | `(file: File) => void` | Called with the selected/dropped `File` after validation |
17
- | `onRemove` | `() => void` | Shows trash icon when provided; called on click |
18
- | `accept` | `string` | Accepted MIME types/extensions. Default: `"image/*"` |
19
- | `maxSize` | `number` | Max file size in bytes. Default: 25 MB |
20
- | `aspectRatio` | `string` | CSS aspect-ratio override (e.g. `"16 / 9"`) |
21
- | `loading` | `boolean` | Shows spinner overlay and disables interaction |
22
- | `error` | `string` | External error message (internal validation errors take precedence) |
16
+ ### `ActionIconButton` (internal)
17
+ Small icon button rendered over the image preview for replace/remove actions. Propagation-safe (`e.stopPropagation()`).
18
+
19
+ ### Helpers (internal)
20
+ - `formatSize(bytes)` formats byte counts as `KB`/`MB` strings
21
+ - `matchesAccept(file, accept)` validates a `File` against an `accept` attribute pattern
23
22
 
24
23
  ## Usage Example
25
24
 
@@ -27,12 +26,15 @@ A client-side React component that renders a drag-and-drop / click-to-upload ima
27
26
  import { ImageUploader } from "@/components/ui/image-uploader"
28
27
  import { useState } from "react"
29
28
 
30
- export function CoverImageField() {
29
+ function CoverImageField() {
31
30
  const [imageUrl, setImageUrl] = useState<string | undefined>()
31
+ const [uploading, setUploading] = useState(false)
32
32
 
33
33
  const handleChange = async (file: File) => {
34
+ setUploading(true)
34
35
  const url = await uploadToStorage(file) // your upload logic
35
36
  setImageUrl(url)
37
+ setUploading(false)
36
38
  }
37
39
 
38
40
  return (
@@ -40,14 +42,29 @@ export function CoverImageField() {
40
42
  value={imageUrl}
41
43
  onChange={handleChange}
42
44
  onRemove={() => setImageUrl(undefined)}
43
- aspectRatio="16 / 9"
44
- maxSize={5 * 1024 * 1024} // 5 MB
45
45
  fieldLabel="Cover Image"
46
- label="Upload a cover photo"
47
46
  description="Click or drag and drop"
47
+ maxSize={10 * 1024 * 1024} // 10 MB
48
+ aspectRatio="16 / 9"
49
+ loading={uploading}
48
50
  />
49
51
  )
50
52
  }
51
53
  ```
52
54
 
53
- > **Note:** `onChange` receives the raw `File` — the consumer is responsible for uploading it to a server or object storage and updating `value` with the resulting URL.
55
+ ## Props Summary
56
+
57
+ | Prop | Type | Default | Description |
58
+ |---|---|---|---|
59
+ | `value` | `string` | — | Current image URL; presence triggers preview state |
60
+ | `onChange` | `(file: File) => void` | required | Called after validation passes |
61
+ | `onRemove` | `() => void` | — | Shows remove button when provided |
62
+ | `maxSize` | `number` | `25MB` | Max file size in bytes |
63
+ | `accept` | `string` | `"image/*"` | MIME types or extensions |
64
+ | `aspectRatio` | `string` | — | CSS aspect-ratio (overrides fixed height) |
65
+ | `objectFit` | `string` | `"cover"` | Preview image fit mode |
66
+ | `loading` | `boolean` | `false` | Spinner overlay + disables interaction |
67
+ | `disabled` | `boolean` | `false` | Disables all interaction |
68
+ | `dropzoneClassName` | `string` | — | Override dropzone sizing/styles |
69
+
70
+ **Source:** [`image-uploader.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/image-uploader.tsx)
@@ -1,25 +1,23 @@
1
- <!-- source-hash: 69fabf50cc24470b1828f706f8765a69 -->
2
- Central barrel export file for the UI kit library, re-exporting all client-side UI components organized by category (form inputs, layout, navigation, feedback, tables, chat, and more).
1
+ <!-- source-hash: f088145dd2b6ba6e8e59ee78bce57fe6 -->
2
+ Central barrel export file for the `ui-kit` component library, re-exporting all UI components organized by category for consumption by other packages or applications.
3
3
 
4
4
  ## Key Components
5
5
 
6
- Organized into the following categories:
7
-
8
- | Category | Notable Exports |
9
- |---|---|
10
- | **Form / Input** | `Button`, `Input`, `Select`, `Checkbox`, `DatePicker`, `TagsInput`, `RadioGroup`, `Switch` |
11
- | **Layout** | `Dialog`, `Modal`, `ModalV2`, `Sheet`, `Drawer`, `Tabs`, `Separator` |
12
- | **Navigation** | `Accordion`, `Breadcrumb`, `DropdownMenu`, `NavigationMenu`, `TabNavigation` |
13
- | **Feedback** | `Alert`, `Badge`, `Progress`, `StatusBadge`, `Toaster`, `StatusIndicator` |
14
- | **Table** | `Table`, `TableRow`, `TableCell`, `TableHeader`, `TableEmptyState`, `TableTimestampCell` |
15
- | **Query Report** | `QueryReportTable`, `deriveColumns`, `exportToCSV` |
16
- | **DataTable** | Headless TanStack Table-based replacement for legacy `Table` |
17
- | **Pagination** | `CursorPagination`, `CursorPaginationSimple` |
18
- | **Search / Filter** | `SearchInput`, `FilterList`, `TagSearchInput`, `TagKeyValueFilter` |
19
- | **Chat / Layout** | `chat`, `ListPageLayout`, `PageContainer`, `PageLayout` |
20
- | **Ticket** | `TicketStatusTag`, `AssigneeDropdown`, `TicketNoteCard`, `SimpleMarkdownRenderer` |
21
- | **Media / Upload** | `FileUpload`, `ImageUploader`, `MediaTypeSelector` |
22
- | **Misc** | `FloatingTooltip`, `TruncateText`, `CircularProgress`, `Skeleton`, `Slider` |
6
+ Exports are grouped into the following categories:
7
+
8
+ - **UI Components** form inputs (`input`, `select`, `checkbox`, `textarea`, `date-picker`), display primitives (`button`, `card`, `badge`, `label`), and specialized inputs (`tags-input`, `phone-input`, `password-input`, `markdown-editor`)
9
+ - **Layout** — `modal`, `modal-v2`, `dialog`, `drawer`, `sheet`, `alert-dialog`, `aspect-ratio`, `separator`
10
+ - **Navigation** `accordion`, `breadcrumb`, `dropdown-menu`, `navigation-menu`, `tabs`, `tab-navigation`
11
+ - **Feedback** `alert`, `toaster`, `progress`, `skeleton`, `status-badge`, `status-indicator`
12
+ - **Table** `Table`, `TableRow`, `TableCell`, `TableHeader`, `TableEmptyState`, `TableTimestampCell`, `TableDescriptionCell` with full TypeScript types
13
+ - **QueryReportTable** `QueryReportTable`, `deriveColumns`, `exportToCSV` for dynamic osquery result rendering
14
+ - **DataTable** headless TanStack Table-based replacement for legacy `Table`
15
+ - **Pagination** `CursorPagination`, `CursorPaginationSimple`
16
+ - **Chat & Layout** `chat`, `list-page-layout`, `page-container`, `page-heading`, `page-layout`, `article-detail-layout`
17
+ - **Search & Filters** `search-input`, `filter-list`, `filter-checkbox-item`, `tag-key-value-filter`, `hidden-tags-popup`
18
+ - **Ticket** `ticket-status-tag`, `ticket-note-card`, `ticket-attachments-list`, `assignee-dropdown`
19
+ - **Markdown** `markdown-editor`, `simple-markdown-renderer`, `RichMarkdownRenderer`
20
+ - **File Upload** `file-upload`, `image-uploader`
23
21
 
24
22
  ## Usage Example
25
23
 
@@ -27,26 +25,30 @@ Organized into the following categories:
27
25
  import {
28
26
  Button,
29
27
  Input,
30
- Select,
31
28
  Table,
32
29
  TableRow,
33
30
  TableCell,
34
31
  CursorPagination,
35
- StatusBadge,
36
32
  QueryReportTable,
37
- deriveColumns,
38
- } from '@your-org/ui-kit'
39
-
40
- function DeviceTable({ data, pagination }) {
41
- const columns = deriveColumns(data)
33
+ RichMarkdownRenderer,
34
+ StatusBadge,
35
+ } from '@openframe/ui-kit'
42
36
 
37
+ // Use any exported component directly
38
+ function MyPage() {
43
39
  return (
44
- <>
45
- <QueryReportTable columns={columns} rows={data} />
46
- <CursorPagination {...pagination} />
47
- </>
40
+ <div>
41
+ <Input placeholder="Search..." />
42
+ <Button variant="primary">Submit</Button>
43
+ <StatusBadge status="active" />
44
+ <CursorPagination {...paginationProps} />
45
+ </div>
48
46
  )
49
47
  }
50
48
  ```
51
49
 
52
- > **Note:** This file is marked `"use client"` all exported components are client-side only and require a React environment with client rendering support (e.g. Next.js App Router).
50
+ > **Note:** This file is marked `"use client"`, meaning all exported components are React Client Components compatible with Next.js App Router.
51
+
52
+ ## Source
53
+
54
+ [`index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/index.ts)
@@ -0,0 +1,50 @@
1
+ <!-- source-hash: 54d3ba316f38a78a9a5a24c3b644ec8d -->
2
+ A responsive card component that displays a lead section alongside two stat cells in a structured row layout, adapting from a stacked column on mobile to a horizontal row on desktop.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `InfoCardRow` | Component | Main card row with a lead section and two stat cells |
9
+ | `StatCell` | Internal Component | Individual stat cell rendering title, caption, and optional icon |
10
+ | `InfoCardRowSection` | Interface | Shape for each section: `title`, `caption`, and optional `icon` |
11
+ | `InfoCardRowProps` | Interface | Props for `InfoCardRow`: `lead`, `stats` (tuple of 2), `className` |
12
+
13
+ ## Usage Example
14
+
15
+ ```typescript
16
+ import { InfoCardRow } from './info-card-row'
17
+ import { ServerIcon, CpuIcon, MemoryIcon } from './icons'
18
+
19
+ export function DeviceStats() {
20
+ return (
21
+ <InfoCardRow
22
+ lead={{
23
+ title: 'DESKTOP-ABC123',
24
+ caption: 'Windows 11 Pro',
25
+ icon: <ServerIcon />,
26
+ }}
27
+ stats={[
28
+ {
29
+ title: 'CPU Usage',
30
+ caption: '42%',
31
+ icon: <CpuIcon />,
32
+ },
33
+ {
34
+ title: 'Memory',
35
+ caption: '8.2 GB',
36
+ icon: <MemoryIcon />,
37
+ },
38
+ ]}
39
+ className="my-4"
40
+ />
41
+ )
42
+ }
43
+ ```
44
+
45
+ ## Layout Behavior
46
+
47
+ - **Mobile:** Lead section stacks above the two stat cells (column direction); icons render inline next to captions
48
+ - **Desktop (`md:`):** All three sections sit side-by-side (row direction); icons float to the right of text
49
+
50
+ **Source:** [`packages/ui/info-card-row.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/packages/ui/info-card-row.tsx)
@@ -1,41 +1,48 @@
1
- <!-- source-hash: 871aa5b6b708ec48977c99b3cc86ea5f -->
2
- A reusable card component for displaying structured key-value information with optional title, subtitle, progress bar, and clipboard copy support.
1
+ <!-- source-hash: 5f25c6a1147c0ccc8f2e18178114f0c9 -->
2
+ A composable card component for displaying structured key-value metadata, optional progress bars, and a footer section — used for surfacing device, asset, or service detail summaries in the OpenFrame UI.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`InfoCard`** Main exported component that renders a styled card with title, subtitle, info items, and an optional progress bar
7
- - **`InfoCardValueRow`** — Internal component rendering a single label/value row with a divider and optional copy-to-clipboard button
8
- - **`InfoCardData`** Interface defining the card's data shape including items, optional progress config, and display metadata
9
- - **`InfoCardProps`** Component props interface accepting `data` and an optional `className`
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `InfoCard` | Component | Root card with header, items, progress, and footer |
9
+ | `InfoCardData` | Interface | Data shape for the full card |
10
+ | `InfoCardFooterData` | Interface | Footer section with icon, text, logo, and link |
11
+ | `InfoCardValueRow` | Internal Component | Single label–value row with optional copy-to-clipboard |
12
+ | `InfoCardFooter` | Internal Component | Sticky footer with divider, icon, logo, and external link |
13
+
14
+ **Sub-features:**
15
+ - `copyable` items show a `Copy01Icon` that toggles to `CheckIcon` on success via `useCopyToClipboard`
16
+ - `value` accepts `string | string[]` — arrays render as stacked rows sharing the same label
17
+ - `progress` delegates to `ProgressBar` with warning/critical thresholds and inverted mode
18
+ - Footer `link` auto-strips the protocol for display if no custom label is provided
10
19
 
11
20
  ## Usage Example
12
21
 
13
22
  ```typescript
14
- import { InfoCard } from './info-card'
23
+ import { InfoCard } from '@openframe/ui'
15
24
 
16
- // Basic usage with copyable values and progress bar
17
25
  <InfoCard
18
26
  data={{
19
- title: "Server Details",
20
- subtitle: "Production Node",
21
- icon: <ServerIcon />,
27
+ title: 'workstation-42',
28
+ subtitle: 'macOS Sonoma 14.5',
22
29
  items: [
23
- { label: "IP Address", value: "192.168.1.100", copyable: true },
24
- { label: "Tags", value: ["web", "prod"], copyable: false },
30
+ { label: 'IP', value: '192.168.1.10', copyable: true },
31
+ { label: 'Tags', value: ['managed', 'prod'] },
25
32
  ],
26
33
  progress: {
27
- value: 85,
34
+ value: 78,
28
35
  warningThreshold: 70,
29
36
  criticalThreshold: 90,
30
- inverted: false,
37
+ },
38
+ footer: {
39
+ text: 'CrowdStrike Falcon',
40
+ link: { href: 'https://falcon.crowdstrike.com' },
31
41
  },
32
42
  }}
33
- className="max-w-sm"
34
43
  />
35
44
  ```
36
45
 
37
- ## Notes
46
+ ## Source
38
47
 
39
- - Multi-value items (arrays) render each value as a separate row, with the label shown only on the first row
40
- - The progress bar supports `inverted` mode where high values are treated as healthy (green) and low values as critical (red)
41
- - Copy state resets automatically via the `useCopyToClipboard` hook, toggling between a copy and check icon
48
+ [`info-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/info-card.tsx)
@@ -1,40 +1,46 @@
1
- <!-- source-hash: 841435ad2eb230c8516130a8d58de981 -->
2
- A reusable UI component that renders a single labeled row with a value, connected by a horizontal dotted separator line commonly used for displaying key-value metadata in detail panels or cards.
1
+ <!-- source-hash: baa2e6475e99010ef2b5ec8a6a1c5209 -->
2
+ A client-side React component that renders a labeled row with a dotted/line separator between a label and its value, optionally accompanied by an icon.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `InfoRow`
7
- A client-side React component that accepts the following props:
7
+
8
+ A presentational component that displays a key-value pair in a horizontal layout with a flexible spacer line between them.
9
+
10
+ **Props (`InfoRowProps`):**
8
11
 
9
12
  | Prop | Type | Required | Description |
10
13
  |------|------|----------|-------------|
11
- | `label` | `string` | ✅ | Left-aligned label text |
12
- | `value` | `string` | ✅ | Right-aligned value text |
14
+ | `label` | `string` | ✅ | Left-side label text |
15
+ | `value` | `string` | ✅ | Right-side value text |
13
16
  | `icon` | `React.ReactNode` | ❌ | Optional icon rendered inline after the value |
14
17
 
15
18
  ## Usage Example
16
19
 
17
20
  ```typescript
18
21
  import { InfoRow } from "@/components/info-row"
19
- import { Globe } from "lucide-react"
20
-
21
- export function DeviceDetails() {
22
- return (
23
- <div className="flex flex-col gap-2">
24
- <InfoRow label="Hostname" value="workstation-01" />
25
- <InfoRow label="IP Address" value="192.168.1.100" />
26
- <InfoRow
27
- label="Status"
28
- value="Online"
29
- icon={<Globe className="w-4 h-4 text-green-400" />}
30
- />
31
- </div>
32
- )
33
- }
22
+ import { CheckCircleIcon } from "lucide-react"
23
+
24
+ // Basic usage
25
+ <InfoRow label="Status" value="Active" />
26
+
27
+ // With an icon
28
+ <InfoRow
29
+ label="Connection"
30
+ value="Online"
31
+ icon={<CheckCircleIcon className="w-4 h-4 text-green-500" />}
32
+ />
33
+
34
+ // Stacked in a detail panel
35
+ <div className="flex flex-col gap-2">
36
+ <InfoRow label="Hostname" value="workstation-01.local" />
37
+ <InfoRow label="OS" value="Windows 11 Pro" />
38
+ <InfoRow label="Last Seen" value="2 minutes ago" />
39
+ </div>
34
40
  ```
35
41
 
36
- ## Layout Behavior
42
+ ## Notes
37
43
 
38
- - **Label**left side, truncates with ellipsis on overflow
39
- - **Separator** flexible `1px` horizontal line that fills available space between label and value
40
- - **Value + Icon** right side, truncates with ellipsis, icon rendered inline after text
44
+ - Marked as `"use client"` must run in a browser context.
45
+ - Both label and value truncate with ellipsis (`text-ellipsis`) on overflow, making it safe for long strings in constrained layouts.
46
+ - The separator line (`flex-1 bg-ods-border h-px`) expands to fill available space, creating a consistent aligned layout regardless of label/value length.
@@ -0,0 +1,63 @@
1
+ <!-- source-hash: 9804263cca4b069c3d9eafabbce30ff3 -->
2
+ A labeled info card component that renders a vertical stack of `label ── value` rows inside a bordered card, supporting plain text, assignee pickers, status dropdowns, and arbitrary custom content as row values.
3
+
4
+ ## Key Components
5
+
6
+ ### Exported Types
7
+
8
+ | Type | Description |
9
+ |---|---|
10
+ | `InfoSectionTextValue` | Plain text value with optional avatar, icon, click handler, or link |
11
+ | `InfoSectionAssigneeValue` | Inline assignee picker (wraps `AssigneeDropdownProps`) |
12
+ | `InfoSectionStatusValue` | Inline status dropdown (wraps `TicketStatusTagProps`) |
13
+ | `InfoSectionCustomValue` | Arbitrary `React.ReactNode` content |
14
+ | `InfoSectionValue` | Union of all four value types |
15
+ | `InfoSectionRow` | Single row with `id`, `label`, and `value` |
16
+ | `InfoSectionProps` | Component props: optional `title`, `rows`, `className` |
17
+
18
+ ### Internal Components
19
+
20
+ - **`TextValue`** — Renders text values with optional leading icon, trailing avatar, link (`href`), or button (`onClick`)
21
+ - **`RowValue`** — Switches on `value.type` to delegate to `AssigneeDropdown`, `TicketStatusTag`, `TextValue`, or custom content
22
+
23
+ ### Main Export
24
+
25
+ - **`InfoSection`** — The card container; renders an optional caption and maps `rows` into label/divider/value triplets
26
+
27
+ ## Usage Example
28
+
29
+ ```typescript
30
+ import { InfoSection } from './info-section'
31
+ import { UserIcon } from 'lucide-react'
32
+
33
+ <InfoSection
34
+ title="Ticket Details"
35
+ rows={[
36
+ {
37
+ id: 'status',
38
+ label: 'Status',
39
+ value: { type: 'status', status: 'open', options: [...], onSelect: handleSelect },
40
+ },
41
+ {
42
+ id: 'assignee',
43
+ label: 'Assignee',
44
+ value: { type: 'assignee', options: [...], onSelect: handleAssign },
45
+ },
46
+ {
47
+ id: 'org',
48
+ label: 'Organization',
49
+ value: {
50
+ text: 'Acme Corp',
51
+ imageSrc: '/acme.png',
52
+ icon: <UserIcon />,
53
+ href: '/orgs/acme',
54
+ },
55
+ },
56
+ {
57
+ id: 'notes',
58
+ label: 'Notes',
59
+ value: { type: 'custom', content: <NotesBadge count={3} /> },
60
+ },
61
+ ]}
62
+ />
63
+ ```
@@ -1,53 +1,54 @@
1
- <!-- source-hash: deeae07a7913733b844e875487c55c37 -->
2
- A client-side input component built with `React.forwardRef`, supporting labels, validation states, adornments, loading indicators, and a special range slider variant.
1
+ <!-- source-hash: ca32f59bb9a8668d4454172d11f1c7cd -->
2
+ A client-side React input component with support for labels, validation states, adornments, loading indicators, and range slider rendering.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`Input`** — Main exported component extending native `HTMLInputElement` attributes
7
- - **`InputProps`** — Interface adding `invalid`, `startAdornment`, `endAdornment`, `label`, `error`, `errorVariant`, and `loading` props
8
- - **`invalidBorderClasses`** — Tailwind class map for `"error"` (red) and `"warning"` (yellow) border states
9
- - **`FieldWrapper`** — Wraps the input with optional label and error message rendering
10
-
11
- ## Behavior Notes
12
-
13
- - **Range type** renders a styled slider without borders or adornments; still supports `label` via `FieldWrapper`
14
- - **`loading`** replaces `endAdornment` with a spinning `Loader2` icon
15
- - **`isInvalid`** is derived from either the `invalid` prop or a truthy `error` string
16
- - Autofill background override applied via `-webkit-box-shadow` hack for consistent theming
6
+ - **`Input`** — A `forwardRef` component extending `React.InputHTMLAttributes<HTMLInputElement>` with additional props for UI composition and validation feedback.
7
+ - **`InputProps`** — Interface extending native input attributes with fields: `invalid`, `startAdornment`, `endAdornment`, `label`, `error`, `errorVariant`, and `loading`.
8
+ - **`invalidBorderClasses`** — Internal map of Tailwind border classes applied per invalid variant (`"error"` | `"warning"`).
9
+ - **`FieldWrapper`** — Wraps the input with a label and status message when `label` or `error` props are provided.
17
10
 
18
11
  ## Usage Example
19
12
 
20
13
  ```typescript
21
- // Basic input with label and error
14
+ import { Input } from "@/components/ui/input";
15
+ import { Search } from "lucide-react";
16
+
17
+ // Basic with label and validation
22
18
  <Input
23
19
  label="Email"
24
- type="email"
25
20
  placeholder="you@example.com"
26
21
  error="Invalid email address"
27
22
  errorVariant="error"
28
23
  />
29
24
 
30
- // Input with adornments and loading state
25
+ // With adornments and loading state
31
26
  <Input
32
27
  label="Search"
33
- startAdornment={<SearchIcon />}
34
- loading={isFetching}
35
- placeholder="Search tickets..."
28
+ startAdornment={<Search />}
29
+ loading={isSearching}
30
+ placeholder="Search..."
36
31
  />
37
32
 
38
- // Range slider
33
+ // Warning variant (invalid border without error severity)
34
+ <Input
35
+ label="Username"
36
+ error="Username is already taken"
37
+ errorVariant="warning"
38
+ />
39
+
40
+ // Range slider (stripped-down rendering, no border/adornments)
39
41
  <Input
40
42
  type="range"
41
43
  label="Volume"
42
44
  min={0}
43
45
  max={100}
44
- defaultValue={50}
45
46
  />
47
+ ```
46
48
 
47
- // Warning variant
48
- <Input
49
- label="Username"
50
- error="Username already taken"
51
- errorVariant="warning"
52
- />
53
- ```
49
+ ## Notes
50
+
51
+ - `"error"` and `"warning"` variants both mark the field visually invalid (colored border); `"success"` and `"muted"` are informational only.
52
+ - `type="range"` receives a separate rendering path with a custom slider style and no wrapper chrome.
53
+ - The `loading` prop takes precedence over `endAdornment` — both will not render simultaneously.
54
+ - Autofill background override is handled via webkit-specific CSS to preserve theme colors.
@@ -1,37 +1,45 @@
1
- <!-- source-hash: f49e05bbdd3e039f273682acb1b385bc -->
2
- A client-side React component that provides a flexible label element built on Radix UI primitives with customizable typography and spacing variants.
1
+ <!-- source-hash: 75ae35fff31d350f71633d4b8075a1d7 -->
2
+ Accessible label component built on Radix UI's `LabelPrimitive`, styled with `class-variance-authority` (CVA) to support multiple size and spacing variants.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`labelVariants`** - CVA configuration defining size and spacing variants for consistent label styling
7
- - **`Label`** - Main component extending Radix UI Label with variant props and forward ref support
6
+ ### `labelVariants`
7
+ CVA configuration defining two variant axes:
8
+
9
+ | Axis | Options | Default |
10
+ |------|---------|---------|
11
+ | `variant` | `default`, `small`, `medium`, `large` | `default` |
12
+ | `spacing` | `default`, `tight`, `normal`, `loose` | `default` |
13
+
14
+ ### `Label`
15
+ A `forwardRef` wrapper around `LabelPrimitive.Root` that merges CVA-generated classes with any additional `className` passed by the consumer.
8
16
 
9
17
  ## Usage Example
10
18
 
11
19
  ```typescript
12
20
  import { Label } from "./label"
13
21
 
14
- function FormExample() {
15
- return (
16
- <div>
17
- {/* Default label */}
18
- <Label htmlFor="email">Email Address</Label>
19
- <input id="email" type="email" />
20
-
21
- {/* Small label with tight spacing */}
22
- <Label htmlFor="username" variant="small" spacing="tight">
23
- Username
24
- </Label>
25
- <input id="username" type="text" />
26
-
27
- {/* Large label with loose spacing */}
28
- <Label htmlFor="description" variant="large" spacing="loose">
29
- Description
30
- </Label>
31
- <textarea id="description" />
32
- </div>
33
- )
34
- }
22
+ // Default label
23
+ <Label htmlFor="email">Email address</Label>
24
+
25
+ // Small label with tight spacing
26
+ <Label htmlFor="username" variant="small" spacing="tight">
27
+ Username
28
+ </Label>
29
+
30
+ // Large label with loose spacing
31
+ <Label htmlFor="bio" variant="large" spacing="loose">
32
+ Biography
33
+ </Label>
34
+
35
+ // With custom class override
36
+ <Label htmlFor="name" className="text-red-500">
37
+ Required Field
38
+ </Label>
35
39
  ```
36
40
 
37
- The component supports four size variants (`default`, `small`, `medium`, `large`) and four spacing options (`default`, `tight`, `normal`, `loose`), providing flexible typography scaling and margin control for form layouts.
41
+ ## Notes
42
+
43
+ - Rendered as a client component (`"use client"`).
44
+ - Inherits all native `<label>` accessibility behaviours from Radix UI, including automatic association with form controls via `htmlFor`.
45
+ - Extend or override styles via the `className` prop; CVA classes are merged using the `cn` utility.