@flamingo-stack/openframe-frontend-core 0.0.481 → 0.0.482

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (838) hide show
  1. package/dist/{chunk-H6DFCF44.cjs → chunk-22AED5IC.cjs} +82 -82
  2. package/dist/{chunk-H6DFCF44.cjs.map → chunk-22AED5IC.cjs.map} +1 -1
  3. package/dist/{chunk-MGKCS6KS.js → chunk-3WCARCI4.js} +2 -2
  4. package/dist/{chunk-LNKWY74S.cjs → chunk-4HL6UENH.cjs} +5 -5
  5. package/dist/{chunk-LNKWY74S.cjs.map → chunk-4HL6UENH.cjs.map} +1 -1
  6. package/dist/{chunk-Y3Y2DLNO.js → chunk-6UGYBCEN.js} +3 -3
  7. package/dist/{chunk-BBUEY73L.js → chunk-7I5B5PQ4.js} +6269 -5339
  8. package/dist/chunk-7I5B5PQ4.js.map +1 -0
  9. package/dist/{chunk-PSPWT2Q5.js → chunk-7LWXWXEY.js} +4 -4
  10. package/dist/{chunk-M7O74OWG.cjs → chunk-ACOU5YJI.cjs} +31 -31
  11. package/dist/{chunk-M7O74OWG.cjs.map → chunk-ACOU5YJI.cjs.map} +1 -1
  12. package/dist/{chunk-INDFIVDV.cjs → chunk-AHGSN4AT.cjs} +12 -12
  13. package/dist/{chunk-INDFIVDV.cjs.map → chunk-AHGSN4AT.cjs.map} +1 -1
  14. package/dist/{chunk-VTSRDC4W.js → chunk-CKC3EAYT.js} +2 -2
  15. package/dist/{chunk-SASR7SK5.js → chunk-GZK7FWJJ.js} +20 -4
  16. package/dist/chunk-GZK7FWJJ.js.map +1 -0
  17. package/dist/{chunk-ZRANZNEA.js → chunk-JJE5TUZK.js} +2 -2
  18. package/dist/{chunk-66BNAFO6.js → chunk-JQIUBFHL.js} +4 -4
  19. package/dist/{chunk-MMCBQJKE.cjs → chunk-KUBJHB6I.cjs} +11 -11
  20. package/dist/{chunk-MMCBQJKE.cjs.map → chunk-KUBJHB6I.cjs.map} +1 -1
  21. package/dist/{chunk-ZV6E3U3C.cjs → chunk-MRGTMMJ3.cjs} +30 -30
  22. package/dist/{chunk-ZV6E3U3C.cjs.map → chunk-MRGTMMJ3.cjs.map} +1 -1
  23. package/dist/{chunk-OZJN54R5.cjs → chunk-NWVKG7QC.cjs} +37 -37
  24. package/dist/{chunk-OZJN54R5.cjs.map → chunk-NWVKG7QC.cjs.map} +1 -1
  25. package/dist/{chunk-AN47EIIJ.cjs → chunk-PHTSSHIQ.cjs} +59 -59
  26. package/dist/{chunk-AN47EIIJ.cjs.map → chunk-PHTSSHIQ.cjs.map} +1 -1
  27. package/dist/{chunk-N2JZ33V7.cjs → chunk-RUA3OXSJ.cjs} +26 -26
  28. package/dist/{chunk-N2JZ33V7.cjs.map → chunk-RUA3OXSJ.cjs.map} +1 -1
  29. package/dist/{chunk-LK623WCC.cjs → chunk-RZPF7MJ2.cjs} +9 -9
  30. package/dist/{chunk-LK623WCC.cjs.map → chunk-RZPF7MJ2.cjs.map} +1 -1
  31. package/dist/{chunk-G3UN2DXU.cjs → chunk-STYA77PH.cjs} +20 -4
  32. package/dist/chunk-STYA77PH.cjs.map +1 -0
  33. package/dist/{chunk-JUJY3HQS.cjs → chunk-U37UTLP7.cjs} +19 -19
  34. package/dist/{chunk-JUJY3HQS.cjs.map → chunk-U37UTLP7.cjs.map} +1 -1
  35. package/dist/{chunk-2DIOV7BR.js → chunk-UPN6EFOM.js} +4 -4
  36. package/dist/{chunk-OWMLWJQY.cjs → chunk-VPVOJD5X.cjs} +2432 -1502
  37. package/dist/chunk-VPVOJD5X.cjs.map +1 -0
  38. package/dist/{chunk-4SMRQ4SN.js → chunk-WBL5Y4PS.js} +3 -3
  39. package/dist/{chunk-FP4H6Y5O.js → chunk-WPYPSIY2.js} +3 -3
  40. package/dist/{chunk-R5WJJL4V.js → chunk-X5X43HFV.js} +5 -5
  41. package/dist/{chunk-DEHZ5CTC.js → chunk-XTWKDMCG.js} +2 -2
  42. package/dist/components/case-studies/index.cjs +9 -9
  43. package/dist/components/case-studies/index.js +3 -3
  44. package/dist/components/chat/index.cjs +3 -3
  45. package/dist/components/chat/index.js +2 -2
  46. package/dist/components/contact/index.cjs +4 -4
  47. package/dist/components/contact/index.js +3 -3
  48. package/dist/components/docs/index.cjs +6 -6
  49. package/dist/components/docs/index.js +5 -5
  50. package/dist/components/embeds/index.cjs +4 -4
  51. package/dist/components/embeds/index.js +3 -3
  52. package/dist/components/faq/index.cjs +4 -4
  53. package/dist/components/faq/index.js +3 -3
  54. package/dist/components/features/captions-url.cjs +12 -0
  55. package/dist/components/features/captions-url.cjs.map +1 -0
  56. package/dist/components/features/captions-url.js +10 -0
  57. package/dist/components/features/captions-url.js.map +1 -0
  58. package/dist/components/features/card-hit-layer.d.ts +40 -0
  59. package/dist/components/features/card-hit-layer.d.ts.map +1 -0
  60. package/dist/components/features/floating-walkthrough-video.d.ts +71 -0
  61. package/dist/components/features/floating-walkthrough-video.d.ts.map +1 -0
  62. package/dist/components/features/index.cjs +11 -3
  63. package/dist/components/features/index.cjs.map +1 -1
  64. package/dist/components/features/index.d.ts +4 -0
  65. package/dist/components/features/index.d.ts.map +1 -1
  66. package/dist/components/features/index.js +12 -4
  67. package/dist/components/features/use-walkthrough-video.d.ts +16 -0
  68. package/dist/components/features/use-walkthrough-video.d.ts.map +1 -0
  69. package/dist/components/features/video-bites-strip.d.ts.map +1 -1
  70. package/dist/components/features/video-center-badge.d.ts.map +1 -1
  71. package/dist/components/features/video-hover-preview.d.ts +68 -0
  72. package/dist/components/features/video-hover-preview.d.ts.map +1 -0
  73. package/dist/components/features/video.d.ts +78 -40
  74. package/dist/components/features/video.d.ts.map +1 -1
  75. package/dist/components/form.d.ts +0 -1
  76. package/dist/components/form.d.ts.map +1 -1
  77. package/dist/components/help-center-pages/index.cjs +21 -21
  78. package/dist/components/help-center-pages/index.js +12 -12
  79. package/dist/components/index.cjs +163 -155
  80. package/dist/components/index.cjs.map +1 -1
  81. package/dist/components/index.js +18 -10
  82. package/dist/components/index.js.map +1 -1
  83. package/dist/components/navigation/index.cjs +3 -3
  84. package/dist/components/navigation/index.js +2 -2
  85. package/dist/components/onboarding-guides/index.cjs +6 -6
  86. package/dist/components/onboarding-guides/index.js +5 -5
  87. package/dist/components/related-content/index.cjs +4 -4
  88. package/dist/components/related-content/index.js +3 -3
  89. package/dist/components/tickets/index.cjs +6 -6
  90. package/dist/components/tickets/index.js +5 -5
  91. package/dist/components/ui/button/button-styles.d.ts +2 -0
  92. package/dist/components/ui/button/button-styles.d.ts.map +1 -1
  93. package/dist/components/ui/button/button.d.ts +2 -2
  94. package/dist/components/ui/button/button.d.ts.map +1 -1
  95. package/dist/components/ui/file-manager/index.cjs +50 -50
  96. package/dist/components/ui/file-manager/index.js +1 -1
  97. package/dist/components/ui/index.cjs +3 -3
  98. package/dist/components/ui/index.js +2 -2
  99. package/dist/components/ui/page-actions.d.ts +2 -1
  100. package/dist/components/ui/page-actions.d.ts.map +1 -1
  101. package/dist/index.cjs +27 -3
  102. package/dist/index.cjs.map +1 -1
  103. package/dist/index.js +28 -4
  104. package/dist/types/supabase.d.ts +80 -0
  105. package/dist/types/supabase.d.ts.map +1 -1
  106. package/dist/types/video-processing.d.ts +1 -1
  107. package/dist/types/video-processing.d.ts.map +1 -1
  108. package/dist/utils/announcement-storage.d.ts +1 -1
  109. package/dist/utils/announcement-storage.d.ts.map +1 -1
  110. package/dist/utils/dismiss-cookie.d.ts +27 -0
  111. package/dist/utils/dismiss-cookie.d.ts.map +1 -0
  112. package/dist/utils/dismissal-storage.d.ts +19 -0
  113. package/dist/utils/dismissal-storage.d.ts.map +1 -0
  114. package/dist/utils/index.cjs +48 -10
  115. package/dist/utils/index.cjs.map +1 -1
  116. package/dist/utils/index.d.ts +2 -0
  117. package/dist/utils/index.d.ts.map +1 -1
  118. package/dist/utils/index.js +41 -11
  119. package/dist/utils/index.js.map +1 -1
  120. package/package.json +8 -2
  121. package/src/.index.md +39 -32
  122. package/src/.platform-domains.md +65 -0
  123. package/src/assets/.fae-avatar.md +33 -0
  124. package/src/assets/.index.md +15 -9
  125. package/src/components/.agent-mark.md +31 -0
  126. package/src/components/.announcement-bar.md +47 -35
  127. package/src/components/.calendar.md +19 -15
  128. package/src/components/.categories-cart.md +34 -30
  129. package/src/components/.category-card.md +33 -33
  130. package/src/components/.chart.md +38 -40
  131. package/src/components/.command.md +47 -23
  132. package/src/components/.comment-card.md +31 -26
  133. package/src/components/.content-loading-container.md +45 -20
  134. package/src/components/.context-menu.md +45 -31
  135. package/src/components/.date-time-picker.md +36 -30
  136. package/src/components/.empty-state.md +31 -31
  137. package/src/components/.faq-accordion.md +20 -30
  138. package/src/components/.filter-chip.md +36 -33
  139. package/src/components/.footer-waitlist-button.md +27 -21
  140. package/src/components/.footer.md +39 -24
  141. package/src/components/.form.md +32 -20
  142. package/src/components/.hero-image-uploader.md +35 -31
  143. package/src/components/.icon-display.md +53 -0
  144. package/src/components/.image-cropper.md +34 -33
  145. package/src/components/.index.md +25 -29
  146. package/src/components/.logs-list.md +27 -23
  147. package/src/components/.media-carousel.md +47 -26
  148. package/src/components/.metric-value.md +27 -24
  149. package/src/components/.msp-display.md +29 -23
  150. package/src/components/.open-source-features.md +23 -26
  151. package/src/components/.pagination.md +44 -39
  152. package/src/components/.persistent-filter-controls.md +61 -28
  153. package/src/components/.pricing-display.md +34 -33
  154. package/src/components/.results-count.md +33 -20
  155. package/src/components/.smooth-accordion.md +24 -20
  156. package/src/components/.social-icon-row.md +33 -21
  157. package/src/components/.sonner.md +40 -25
  158. package/src/components/.steps.md +39 -25
  159. package/src/components/.tool-icon.md +34 -21
  160. package/src/components/.unified-filter-logic.md +32 -36
  161. package/src/components/.user-display.md +33 -28
  162. package/src/components/.user-summary-stub.md +40 -33
  163. package/src/components/.vendor-display-button.md +17 -15
  164. package/src/components/.vendor-icon.md +17 -25
  165. package/src/components/.vendor-tag.md +39 -34
  166. package/src/components/.why-it-matters.md +15 -11
  167. package/src/components/.yes-no-display.md +36 -31
  168. package/src/components/authors/.author-detail-view.md +50 -0
  169. package/src/components/case-studies/.index.md +26 -0
  170. package/src/components/case-studies/.share-experience-section.md +45 -0
  171. package/src/components/chat/.approval-batch-message.md +48 -33
  172. package/src/components/chat/.approval-request-message.md +37 -26
  173. package/src/components/chat/.chat-archive-page.md +56 -0
  174. package/src/components/chat/.chat-attachment-bar.md +32 -40
  175. package/src/components/chat/.chat-composer.md +43 -0
  176. package/src/components/chat/.chat-container.md +41 -25
  177. package/src/components/chat/.chat-context-memory-bar.md +53 -0
  178. package/src/components/chat/.chat-context-picker.md +89 -0
  179. package/src/components/chat/.chat-header-icon-button.md +43 -0
  180. package/src/components/chat/.chat-header-search-field.md +51 -0
  181. package/src/components/chat/.chat-input.md +63 -30
  182. package/src/components/chat/.chat-list-empty-state.md +44 -0
  183. package/src/components/chat/.chat-message-enhanced.md +29 -31
  184. package/src/components/chat/.chat-message-list.md +34 -44
  185. package/src/components/chat/.chat-message-row.md +56 -0
  186. package/src/components/chat/.chat-message-skeleton.md +32 -26
  187. package/src/components/chat/.chat-panel-header-mobile.md +46 -0
  188. package/src/components/chat/.chat-panel-header.md +80 -0
  189. package/src/components/chat/.chat-sidebar-skeleton.md +31 -30
  190. package/src/components/chat/.chat-sidebar.md +36 -29
  191. package/src/components/chat/.chat-ticket-list.md +38 -23
  192. package/src/components/chat/.chat-typing-indicator.md +37 -19
  193. package/src/components/chat/.context-compaction-display.md +19 -15
  194. package/src/components/chat/.context-items-list.md +57 -0
  195. package/src/components/chat/.embeddable-chat.md +57 -66
  196. package/src/components/chat/.error-message-display.md +40 -22
  197. package/src/components/chat/.guide-mode-banner.md +41 -0
  198. package/src/components/chat/.guide-welcome.md +43 -0
  199. package/src/components/chat/.index.md +26 -21
  200. package/src/components/chat/.mingo-chat-history.md +63 -0
  201. package/src/components/chat/.mingo-chat-modals.md +44 -0
  202. package/src/components/chat/.mingo-history-rail.md +63 -0
  203. package/src/components/chat/.mingo-info-card.md +59 -0
  204. package/src/components/chat/.mingo-onboarding-card.md +21 -27
  205. package/src/components/chat/.mingo-welcome.md +60 -0
  206. package/src/components/chat/.model-display.md +33 -25
  207. package/src/components/chat/.msp-organization-card-skeleton.md +44 -0
  208. package/src/components/chat/.msp-organization-card.md +51 -0
  209. package/src/components/chat/.nav-link-anchor-via-runtime.md +36 -25
  210. package/src/components/chat/.quick-action-chip.md +60 -0
  211. package/src/components/chat/.quick-action-marquee.md +53 -0
  212. package/src/components/chat/.quick-action-wall.md +68 -0
  213. package/src/components/chat/.remark-mention-chips.md +41 -0
  214. package/src/components/chat/.slash-command-suggestions.md +30 -36
  215. package/src/components/chat/.source-action-button.md +28 -25
  216. package/src/components/chat/.tool-call-blocks.md +18 -30
  217. package/src/components/chat/.tool-execution-display.md +29 -34
  218. package/src/components/chat/entity-cards/.admin-content-card.md +29 -22
  219. package/src/components/chat/entity-cards/.blog-card.md +44 -33
  220. package/src/components/chat/entity-cards/.blog-image-placeholder.md +20 -18
  221. package/src/components/chat/entity-cards/.case-study-card.md +24 -33
  222. package/src/components/chat/entity-cards/.chat-ticket-item.md +39 -22
  223. package/src/components/chat/entity-cards/.customer-interview-card.md +29 -32
  224. package/src/components/chat/entity-cards/.data-room-doc-card.md +21 -22
  225. package/src/components/chat/entity-cards/.dispatch.md +41 -24
  226. package/src/components/chat/entity-cards/.entity-author-card.md +36 -33
  227. package/src/components/chat/entity-cards/.entity-portrait-card.md +47 -0
  228. package/src/components/chat/entity-cards/.generic-entity-card.md +26 -25
  229. package/src/components/chat/entity-cards/.github-activity-card.md +35 -41
  230. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +22 -28
  231. package/src/components/chat/entity-cards/.index.md +33 -44
  232. package/src/components/chat/entity-cards/.investor-update-card.md +36 -25
  233. package/src/components/chat/entity-cards/.onboarding-guide-card.md +20 -29
  234. package/src/components/chat/entity-cards/.product-release-card-defaults.md +26 -19
  235. package/src/components/chat/entity-cards/.program-card.md +30 -33
  236. package/src/components/chat/entity-cards/.roadmap-card.md +40 -31
  237. package/src/components/chat/entity-cards/.roadmap-vote-button.md +33 -36
  238. package/src/components/chat/entity-cards/.slack-message-card.md +31 -32
  239. package/src/components/chat/entity-cards/.use-cover-image-fallback.md +47 -0
  240. package/src/components/chat/entity-cards/.use-entity-card-link.md +51 -0
  241. package/src/components/chat/entity-cards/.use-entity-card-placeholder.md +47 -0
  242. package/src/components/chat/entity-cards/.what-i-shipped-card.md +43 -0
  243. package/src/components/chat/hooks/.index.md +33 -30
  244. package/src/components/chat/hooks/.use-chat-card-item.md +30 -17
  245. package/src/components/chat/hooks/.use-chat-dialog-manager.md +59 -0
  246. package/src/components/chat/hooks/.use-chat-identity.md +37 -25
  247. package/src/components/chat/hooks/.use-chunk-catchup.md +53 -36
  248. package/src/components/chat/hooks/.use-empty-state-config.md +39 -0
  249. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +65 -30
  250. package/src/components/chat/hooks/.use-nats-chat-adapter.md +55 -36
  251. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +66 -50
  252. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +58 -31
  253. package/src/components/chat/hooks/.use-scripted-stream.md +46 -0
  254. package/src/components/chat/hooks/.use-slash-commands.md +32 -25
  255. package/src/components/chat/hooks/.use-sse-chat-adapter.md +32 -21
  256. package/src/components/chat/hooks/.use-unified-chat.md +45 -35
  257. package/src/components/chat/types/.api.types.md +49 -41
  258. package/src/components/chat/types/.chat.types.md +56 -34
  259. package/src/components/chat/types/.component.types.md +36 -36
  260. package/src/components/chat/types/.context-item.types.md +61 -0
  261. package/src/components/chat/types/.index.md +32 -17
  262. package/src/components/chat/types/.message.types.md +44 -45
  263. package/src/components/chat/types/.network.types.md +46 -46
  264. package/src/components/chat/types/.processing.types.md +49 -37
  265. package/src/components/chat/types/.unified-chat-state.types.md +41 -26
  266. package/src/components/chat/types/entities/.content-ref.md +20 -31
  267. package/src/components/chat/types/entities/.investor-update.md +14 -16
  268. package/src/components/chat/types/entities/.onboarding-guide.md +35 -34
  269. package/src/components/chat/types/entities/.program-types.md +55 -43
  270. package/src/components/chat/utils/.chip-action-class.md +17 -19
  271. package/src/components/chat/utils/.chip-styles.md +18 -18
  272. package/src/components/chat/utils/.chunk-parser.md +48 -37
  273. package/src/components/chat/utils/.compact-card-classes.md +33 -35
  274. package/src/components/chat/utils/.execute-navigation.md +49 -0
  275. package/src/components/chat/utils/.extract-incomplete-message-state.md +9 -12
  276. package/src/components/chat/utils/.history-merge.md +65 -0
  277. package/src/components/chat/utils/.icon-library.md +33 -31
  278. package/src/components/chat/utils/.icon-registry.md +44 -0
  279. package/src/components/chat/utils/.index.md +37 -33
  280. package/src/components/chat/utils/.is-cross-origin-url.md +26 -22
  281. package/src/components/chat/utils/.message-segment-accumulator.md +46 -25
  282. package/src/components/chat/utils/.nav-anchor-props.md +29 -34
  283. package/src/components/chat/utils/.nav-click-handler.md +29 -33
  284. package/src/components/chat/utils/.process-historical-messages.md +29 -33
  285. package/src/components/chat/utils/.scripted-stream.md +52 -0
  286. package/src/components/chat/utils/.source-row-cta.md +32 -31
  287. package/src/components/chat/utils/.tool-call-helpers.md +25 -17
  288. package/src/components/contact/.contact-form.md +24 -19
  289. package/src/components/docs/.doc-navigation-context.md +49 -0
  290. package/src/components/docs/.doc-viewer.md +64 -0
  291. package/src/components/docs/.docs-hub-page.md +49 -0
  292. package/src/components/docs/.index.md +51 -0
  293. package/src/components/docs/.skeletons.md +47 -0
  294. package/src/components/docs/.use-docs-resolve-link.md +61 -0
  295. package/src/components/docs/.use-document-tree.md +83 -0
  296. package/src/components/docs/.use-scroll-spy.md +58 -0
  297. package/src/components/embeds/.embed-container.md +45 -0
  298. package/src/components/embeds/.embed-iframe.md +51 -0
  299. package/src/components/embeds/.figma-embed.md +43 -0
  300. package/src/components/embeds/.file-download-card.md +47 -0
  301. package/src/components/embeds/.google-sheets-viewer.md +40 -0
  302. package/src/components/embeds/.index.md +58 -0
  303. package/src/components/embeds/.linkedin-embed-client.md +50 -0
  304. package/src/components/embeds/.markdown-image.md +40 -0
  305. package/src/components/embeds/.og-link-preview.md +54 -0
  306. package/src/components/embeds/.pdf-viewer.md +43 -0
  307. package/src/components/embeds/.reddit-embed-client.md +40 -0
  308. package/src/components/embeds/.rich-markdown-runtime.md +53 -0
  309. package/src/components/embeds/.twitter-embed-client.md +44 -0
  310. package/src/components/faq/.faq-document-page.md +68 -0
  311. package/src/components/faq/.faq-section.md +55 -0
  312. package/src/components/faq/.index.md +29 -0
  313. package/src/components/faq/.json-ld.md +48 -0
  314. package/src/components/features/.array-entry-manager.md +32 -24
  315. package/src/components/features/.auth-providers-list.md +33 -32
  316. package/src/components/features/.captions-url.md +43 -0
  317. package/src/components/features/.cards-strip.md +48 -0
  318. package/src/components/features/.changelog-manager.md +17 -20
  319. package/src/components/features/.command-box.md +11 -16
  320. package/src/components/features/.entity-summary-editor.md +20 -15
  321. package/src/components/features/.entity-tag-badges.md +43 -0
  322. package/src/components/features/.entity-video-section.md +31 -41
  323. package/src/components/features/.figma-prototype-viewer.md +55 -37
  324. package/src/components/features/.filters-dropdown.md +14 -13
  325. package/src/components/features/.highlight-config-section.md +19 -16
  326. package/src/components/features/.highlight-video-combined-section.md +28 -19
  327. package/src/components/features/.highlight-video-preview.md +13 -11
  328. package/src/components/features/.highlight-video-section.md +26 -22
  329. package/src/components/features/.index.md +40 -36
  330. package/src/components/features/.media-gallery-manager.md +37 -35
  331. package/src/components/features/.mux-origins.md +46 -0
  332. package/src/components/features/.og-editor-preview.md +29 -24
  333. package/src/components/features/.os-type-badge-group.md +26 -18
  334. package/src/components/features/.os-type-badge.md +41 -24
  335. package/src/components/features/.paths-display.md +42 -25
  336. package/src/components/features/.platform-badge.md +26 -17
  337. package/src/components/features/.policy-configuration-panel.md +33 -31
  338. package/src/components/features/.provider-button.md +29 -20
  339. package/src/components/features/.push-button-selector.md +39 -41
  340. package/src/components/features/.release-media-manager.md +41 -34
  341. package/src/components/features/.section-selector.md +27 -16
  342. package/src/components/features/.select-button.md +21 -32
  343. package/src/components/features/.seo-editor-preview.md +49 -36
  344. package/src/components/features/.social-links-manager.md +40 -18
  345. package/src/components/features/.start-with-openframe-button.md +30 -32
  346. package/src/components/features/.status-filter-component.md +29 -38
  347. package/src/components/features/.tags-selector.md +25 -29
  348. package/src/components/features/.transcript-summary-editor.md +24 -18
  349. package/src/components/features/.use-video-warmup.md +47 -0
  350. package/src/components/features/.video-bites-display.md +36 -37
  351. package/src/components/features/.video-bites-shared.md +44 -0
  352. package/src/components/features/.video-bites-strip.md +63 -0
  353. package/src/components/features/.video-center-badge.md +38 -0
  354. package/src/components/features/.video-ratio-tabs.md +38 -31
  355. package/src/components/features/.video-source-selector.md +24 -27
  356. package/src/components/features/.video.md +35 -27
  357. package/src/components/features/.waitlist-form.md +39 -33
  358. package/src/components/features/.warning-block.md +53 -0
  359. package/src/components/features/ai-enrich/.AIEnrichSection.md +24 -25
  360. package/src/components/features/ai-enrich/.AIRequiredBadge.md +22 -21
  361. package/src/components/features/ai-enrich/.AIStatusIndicator.md +42 -35
  362. package/src/components/features/ai-enrich/.AIWarningsSection.md +23 -20
  363. package/src/components/features/ai-enrich/.ConfidenceBadge.md +35 -20
  364. package/src/components/features/auth/.auth-benefits-panel.md +48 -0
  365. package/src/components/features/auth/.auth-branding.md +51 -0
  366. package/src/components/features/auth/.auth-shell.md +51 -0
  367. package/src/components/features/auth/.back-to-login-link.md +48 -0
  368. package/src/components/features/auth/.complete-account-form.md +45 -0
  369. package/src/components/features/auth/.create-organization-form.md +53 -0
  370. package/src/components/features/auth/.index.md +48 -0
  371. package/src/components/features/auth/.invite-link-invalid-modal.md +42 -0
  372. package/src/components/features/auth/.login-form.md +42 -0
  373. package/src/components/features/auth/.openframe-sso-login-form.md +46 -0
  374. package/src/components/features/auth/.openframe-sso-signup-form.md +51 -0
  375. package/src/components/features/auth/.password-reset-form.md +57 -0
  376. package/src/components/features/auth/.sso-auth-shell.md +35 -0
  377. package/src/components/features/auth/.sso-providers.md +42 -0
  378. package/src/components/features/auth/.terms-agreement-label.md +28 -0
  379. package/src/components/features/board/.board-column-header.md +24 -18
  380. package/src/components/features/board/.board-column.md +32 -32
  381. package/src/components/features/board/.board-ticket-approval.md +42 -0
  382. package/src/components/features/board/.board.md +38 -38
  383. package/src/components/features/board/.index.md +35 -38
  384. package/src/components/features/board/.ticket-card.md +33 -36
  385. package/src/components/features/board/.types.md +38 -31
  386. package/src/components/features/card-hit-layer.tsx +84 -0
  387. package/src/components/features/floating-walkthrough-video.tsx +891 -0
  388. package/src/components/features/index.ts +4 -0
  389. package/src/components/features/notifications/.approval-request-notification-tile.md +45 -0
  390. package/src/components/features/notifications/.index.md +35 -31
  391. package/src/components/features/notifications/.notification-drawer.md +32 -19
  392. package/src/components/features/notifications/.notification-popups.md +51 -0
  393. package/src/components/features/notifications/.notification-tile.md +43 -27
  394. package/src/components/features/notifications/.notifications-context.md +42 -45
  395. package/src/components/features/notifications/.types.md +51 -31
  396. package/src/components/features/ticket-status-config-list/.ticket-status-config-list.md +51 -0
  397. package/src/components/features/time-tracker/.index.md +48 -0
  398. package/src/components/features/time-tracker/.time-tracker-context.md +55 -0
  399. package/src/components/features/time-tracker/.time-tracker-header-button.md +51 -0
  400. package/src/components/features/time-tracker/.time-tracker-panel.md +58 -0
  401. package/src/components/features/time-tracker/.types.md +51 -0
  402. package/src/components/features/time-tracker/.use-tracker-clock.md +32 -0
  403. package/src/components/features/use-walkthrough-video.ts +70 -0
  404. package/src/components/features/video-bites-strip.tsx +46 -146
  405. package/src/components/features/video-center-badge.tsx +11 -2
  406. package/src/components/features/video-hover-preview.tsx +201 -0
  407. package/src/components/features/video.tsx +368 -73
  408. package/src/components/help-center-pages/.delivery-page.md +51 -0
  409. package/src/components/help-center-pages/.index.md +51 -0
  410. package/src/components/help-center-pages/.onboarding-guides-catalog-page.md +53 -0
  411. package/src/components/help-center-pages/.product-releases-list-page.md +51 -0
  412. package/src/components/help-center-pages/.roadmap-page.md +46 -0
  413. package/src/components/icons/.figma-icon.md +13 -7
  414. package/src/components/icons/.index.md +26 -22
  415. package/src/components/icons/.vendor-directory-icon.md +30 -18
  416. package/src/components/icons/.x-logo.md +26 -10
  417. package/src/components/icons-v2-generated/.index.md +30 -41
  418. package/src/components/icons-v2-generated/brand-logos/.index.md +25 -19
  419. package/src/components/icons-v2-generated/communication/.index.md +26 -30
  420. package/src/components/icons-v2-generated/logos/.flamingo-logo-icon.md +41 -0
  421. package/src/components/layout/.article-detail-layout.md +32 -21
  422. package/src/components/layout/.page-container.md +25 -23
  423. package/src/components/layout/.page-heading.md +48 -0
  424. package/src/components/layout/.page-layout.md +30 -25
  425. package/src/components/layout/.title-block.md +43 -24
  426. package/src/components/loading/.card-skeleton.md +28 -35
  427. package/src/components/loading/.category-card-skeleton.md +25 -23
  428. package/src/components/loading/.device-card-skeleton.md +22 -15
  429. package/src/components/loading/.margin-report-skeleton.md +30 -35
  430. package/src/components/loading/.openmsp-heartbeat.md +30 -32
  431. package/src/components/loading/.organization-card-skeleton.md +22 -25
  432. package/src/components/loading/.organization-icon-skeleton.md +39 -27
  433. package/src/components/loading/.page-layout-skeleton.md +50 -28
  434. package/src/components/loading/.unified-skeleton.md +37 -40
  435. package/src/components/loading/.users-grid-skeleton.md +19 -38
  436. package/src/components/navigation/.app-header.md +35 -28
  437. package/src/components/navigation/.app-layout-context.md +48 -0
  438. package/src/components/navigation/.app-layout-drawer.md +56 -0
  439. package/src/components/navigation/.app-layout.md +24 -23
  440. package/src/components/navigation/.header-mingo-button.md +46 -0
  441. package/src/components/navigation/.header-organization-filter.md +32 -18
  442. package/src/components/navigation/.header.md +24 -31
  443. package/src/components/navigation/.index.md +36 -50
  444. package/src/components/navigation/.mingo-ai-button.md +41 -0
  445. package/src/components/navigation/.mobile-burger-menu.md +29 -29
  446. package/src/components/navigation/.mobile-nav-panel.md +41 -49
  447. package/src/components/navigation/.multi-level-navigation.md +76 -0
  448. package/src/components/navigation/.navigation-sidebar-item.md +14 -14
  449. package/src/components/navigation/.navigation-sidebar.md +30 -23
  450. package/src/components/navigation/.sliding-sidebar.md +30 -25
  451. package/src/components/navigation/.sticky-section-nav.md +23 -21
  452. package/src/components/onboarding-guides/.index.md +40 -0
  453. package/src/components/onboarding-guides/.onboarding-guide-detail-view.md +55 -0
  454. package/src/components/onboarding-guides/.onboarding-guides-catalog-skeleton.md +33 -0
  455. package/src/components/onboarding-guides/.onboarding-guides-catalog-view.md +50 -0
  456. package/src/components/onboarding-guides/hooks/.use-onboarding-guides.md +54 -0
  457. package/src/components/platform/.CveLink.md +28 -17
  458. package/src/components/platform/.ScriptArguments.md +18 -23
  459. package/src/components/platform/.ScriptInfoSection.md +27 -21
  460. package/src/components/platform/.ShellTypeBadge.md +34 -18
  461. package/src/components/platform/.SoftwareInfo.md +23 -21
  462. package/src/components/platform/.ToolBadge.md +18 -16
  463. package/src/components/profile/.ProfileLoadingSkeleton.md +24 -23
  464. package/src/components/related-content/.index.md +41 -0
  465. package/src/components/related-content/.related-content-section.md +62 -0
  466. package/src/components/shared/.article-author-byline.md +56 -0
  467. package/src/components/shared/.detail-page-skeleton.md +32 -43
  468. package/src/components/shared/.media-gallery-strip.md +43 -0
  469. package/src/components/shared/delivery/.delivery-lists.md +20 -19
  470. package/src/components/shared/delivery/.delivery-row.md +24 -20
  471. package/src/components/shared/delivery/.delivery-table.md +20 -22
  472. package/src/components/shared/dev-section/.dev-card-row.md +28 -36
  473. package/src/components/shared/dev-section/.dev-section-page.md +36 -25
  474. package/src/components/shared/dev-section/.dev-section-view.md +32 -22
  475. package/src/components/shared/doc-search/.doc-search-bar.md +58 -0
  476. package/src/components/shared/doc-search/.doc-search-result-row.md +50 -0
  477. package/src/components/shared/doc-search/.format-relative-path.md +30 -0
  478. package/src/components/shared/doc-search/.index.md +46 -0
  479. package/src/components/shared/doc-search/.map-doc-search-results.md +44 -0
  480. package/src/components/shared/doc-search/.resolve-search-result-action.md +52 -0
  481. package/src/components/shared/doc-search/.types.md +49 -0
  482. package/src/components/shared/doc-search/.use-doc-search.md +66 -0
  483. package/src/components/shared/legal-document/.legal-document-page.md +26 -20
  484. package/src/components/shared/legal-document/.use-legal-docs.md +36 -30
  485. package/src/components/shared/onboarding/.onboarding-step-card.md +24 -16
  486. package/src/components/shared/onboarding/.onboarding-walkthrough.md +42 -28
  487. package/src/components/shared/product-release/.index.md +33 -24
  488. package/src/components/shared/product-release/.product-release-card-skeleton.md +22 -28
  489. package/src/components/shared/product-release/.product-release-card.md +28 -29
  490. package/src/components/shared/product-release/.product-releases-view.md +49 -0
  491. package/src/components/shared/product-release/.release-detail-page.md +30 -15
  492. package/src/components/shared/roadmap/.index.md +29 -24
  493. package/src/components/shared/roadmap/.roadmap-grid.md +43 -54
  494. package/src/components/shared/roadmap/.roadmap-view.md +41 -0
  495. package/src/components/shared/roadmap/.use-roadmap-voting.md +27 -17
  496. package/src/components/switch.tsx +1 -1
  497. package/src/components/tickets/.help-center-card.md +32 -28
  498. package/src/components/tickets/.help-center-create-form.md +34 -22
  499. package/src/components/tickets/.help-center-list.md +36 -25
  500. package/src/components/tickets/.index.md +30 -45
  501. package/src/components/tickets/.ticket-center.md +31 -38
  502. package/src/components/tickets/.ticket-detail-drawer.md +20 -30
  503. package/src/components/tickets/.ticket-open-form.md +24 -26
  504. package/src/components/tickets/.ticket-reply-composer.md +51 -0
  505. package/src/components/tickets/.ticket-row.md +26 -11
  506. package/src/components/tickets/.types.md +56 -38
  507. package/src/components/tickets/hooks/.use-ticket-actions.md +60 -47
  508. package/src/components/tickets/hooks/.use-ticket-engagements.md +27 -27
  509. package/src/components/tickets/hooks/.use-tickets-list.md +24 -30
  510. package/src/components/ui/.accordion.md +28 -21
  511. package/src/components/ui/.actions-menu.md +36 -54
  512. package/src/components/ui/.ai-generated-badge.md +25 -0
  513. package/src/components/ui/.alert-dialog.md +21 -16
  514. package/src/components/ui/.alert.md +30 -25
  515. package/src/components/ui/.allowed-domains-input.md +26 -15
  516. package/src/components/ui/.announcement-bar-view.md +46 -0
  517. package/src/components/ui/.autocomplete.md +40 -27
  518. package/src/components/ui/.badge.md +34 -31
  519. package/src/components/ui/.brand-association-card.md +22 -18
  520. package/src/components/ui/.breadcrumb.md +18 -14
  521. package/src/components/ui/.bullet-list.md +35 -23
  522. package/src/components/ui/.card.md +47 -30
  523. package/src/components/ui/.checkbox-block.md +34 -22
  524. package/src/components/ui/.checkbox-with-description.md +18 -20
  525. package/src/components/ui/.chevron-button.md +29 -29
  526. package/src/components/ui/.circular-progress.md +30 -41
  527. package/src/components/ui/.color-preset-select.md +54 -0
  528. package/src/components/ui/.color-swatch.md +37 -0
  529. package/src/components/ui/.content-loader.md +34 -27
  530. package/src/components/ui/.crossfade-panels.md +50 -0
  531. package/src/components/ui/.cursor-pagination.md +38 -26
  532. package/src/components/ui/.dashboard-info-card.md +46 -27
  533. package/src/components/ui/.date-picker.md +52 -36
  534. package/src/components/ui/.device-card-compact.md +23 -20
  535. package/src/components/ui/.device-card.md +39 -30
  536. package/src/components/ui/.dialog.md +14 -14
  537. package/src/components/ui/.drawer.md +45 -39
  538. package/src/components/ui/.dropdown-button.md +41 -33
  539. package/src/components/ui/.dropdown-menu.md +40 -23
  540. package/src/components/ui/.duration-input.md +41 -0
  541. package/src/components/ui/.entity-image.md +32 -28
  542. package/src/components/ui/.error-state.md +30 -26
  543. package/src/components/ui/.fade-preview.md +44 -0
  544. package/src/components/ui/.field-wrapper.md +34 -23
  545. package/src/components/ui/.file-upload.md +30 -18
  546. package/src/components/ui/.filter-modal.md +30 -32
  547. package/src/components/ui/.filter-pill-row.md +58 -0
  548. package/src/components/ui/.floating-tooltip.md +27 -32
  549. package/src/components/ui/.hidden-tags-popup.md +18 -20
  550. package/src/components/ui/.highlight-card.md +36 -23
  551. package/src/components/ui/.honeypot-field.md +41 -0
  552. package/src/components/ui/.hover-dropdown.md +44 -31
  553. package/src/components/ui/.image-gallery-modal.md +28 -30
  554. package/src/components/ui/.image-uploader.md +39 -22
  555. package/src/components/ui/.index.md +33 -31
  556. package/src/components/ui/.info-card-row.md +50 -0
  557. package/src/components/ui/.info-card.md +27 -20
  558. package/src/components/ui/.info-row.md +30 -24
  559. package/src/components/ui/.info-section.md +63 -0
  560. package/src/components/ui/.input.md +29 -28
  561. package/src/components/ui/.label.md +34 -26
  562. package/src/components/ui/.markdown-editor.md +26 -25
  563. package/src/components/ui/.marquee-wall.md +64 -0
  564. package/src/components/ui/.menubar.md +50 -16
  565. package/src/components/ui/.modal-v2.md +41 -27
  566. package/src/components/ui/.modal.md +22 -19
  567. package/src/components/ui/.more-actions-menu.md +30 -24
  568. package/src/components/ui/.navigation-menu.md +40 -25
  569. package/src/components/ui/.organization-card.md +46 -27
  570. package/src/components/ui/.page-actions.md +55 -41
  571. package/src/components/ui/.page-loader.md +40 -23
  572. package/src/components/ui/.password-input.md +30 -0
  573. package/src/components/ui/.phone-input.md +20 -22
  574. package/src/components/ui/.portal-container.md +43 -0
  575. package/src/components/ui/.progress-bar.md +40 -27
  576. package/src/components/ui/.release-changelog-section.md +32 -26
  577. package/src/components/ui/.rich-markdown-renderer.md +45 -0
  578. package/src/components/ui/.scroll-fade.md +56 -0
  579. package/src/components/ui/.search-input.md +55 -37
  580. package/src/components/ui/.select.md +25 -26
  581. package/src/components/ui/.service-card.md +25 -19
  582. package/src/components/ui/.sheet.md +21 -21
  583. package/src/components/ui/.simple-markdown-renderer.md +36 -24
  584. package/src/components/ui/.slack-channel-chip.md +49 -0
  585. package/src/components/ui/.square-avatar.md +29 -26
  586. package/src/components/ui/.stacked-rows-panel.md +61 -0
  587. package/src/components/ui/.status-badge.md +30 -24
  588. package/src/components/ui/.status-indicator.md +35 -21
  589. package/src/components/ui/.tab-content.md +34 -22
  590. package/src/components/ui/.tab-navigation.md +40 -50
  591. package/src/components/ui/.tab-selector.md +48 -31
  592. package/src/components/ui/.tabs.md +34 -21
  593. package/src/components/ui/.tag-search-input.md +20 -20
  594. package/src/components/ui/.tag-select-dropdown.md +59 -0
  595. package/src/components/ui/.tag.md +25 -43
  596. package/src/components/ui/.tags-input.md +31 -31
  597. package/src/components/ui/.textarea.md +32 -30
  598. package/src/components/ui/.ticket-attachments-list.md +36 -29
  599. package/src/components/ui/.ticket-info-section.md +37 -42
  600. package/src/components/ui/.ticket-status-config-row.md +66 -0
  601. package/src/components/ui/.ticket-status-tag.md +39 -35
  602. package/src/components/ui/.toaster.md +21 -15
  603. package/src/components/ui/.toggle.md +38 -37
  604. package/src/components/ui/.tooltip.md +16 -13
  605. package/src/components/ui/button/.button-styles.md +17 -18
  606. package/src/components/ui/button/.button.md +30 -37
  607. package/src/components/ui/button/.split-button.md +46 -23
  608. package/src/components/ui/button/button-styles.ts +13 -0
  609. package/src/components/ui/button/button.tsx +5 -0
  610. package/src/components/ui/data-table/.data-table-body.md +50 -35
  611. package/src/components/ui/data-table/.data-table-empty.md +17 -33
  612. package/src/components/ui/data-table/.data-table-header.md +43 -40
  613. package/src/components/ui/data-table/.data-table-row.md +31 -31
  614. package/src/components/ui/data-table/.types.md +23 -28
  615. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +16 -24
  616. package/src/components/ui/file-manager/.file-manager-empty.md +23 -15
  617. package/src/components/ui/file-manager/.file-manager-skeleton.md +34 -36
  618. package/src/components/ui/file-manager/.file-manager-table-row.md +29 -29
  619. package/src/components/ui/file-manager/.file-manager-table.md +39 -24
  620. package/src/components/ui/no-data/.index.md +22 -0
  621. package/src/components/ui/no-data/.no-data-actions.md +29 -0
  622. package/src/components/ui/no-data/.no-data-message.md +37 -0
  623. package/src/components/ui/no-data/.no-data-styles.md +39 -0
  624. package/src/components/ui/no-data/.no-data.md +59 -0
  625. package/src/components/ui/page-actions.tsx +2 -1
  626. package/src/components/ui/query-report-table/.query-report-table-header.md +15 -15
  627. package/src/components/ui/query-report-table/.query-report-table-row.md +16 -16
  628. package/src/components/ui/query-report-table/.query-report-table.md +39 -24
  629. package/src/components/ui/table/.table-column-filter-dropdown.md +15 -9
  630. package/src/components/ui/table/.table-description-cell.md +13 -12
  631. package/src/components/ui/table/.table-empty-state.md +19 -20
  632. package/src/components/ui/table/.table-row.md +30 -20
  633. package/src/components/ui/table/.table-skeleton.md +32 -27
  634. package/src/components/ui/table/.table-timestamp-cell.md +24 -23
  635. package/src/components/ui/table/.table.md +43 -30
  636. package/src/components/ui/table/.types.md +49 -45
  637. package/src/components/ui/table/.use-table-motion.md +45 -0
  638. package/src/contexts/.chat-runtime-context.md +55 -26
  639. package/src/contexts/.endpoints-runtime-context.md +40 -44
  640. package/src/embed-shims/.next-navigation.md +38 -31
  641. package/src/hooks/.api-hooks.md +28 -21
  642. package/src/hooks/.index.md +30 -25
  643. package/src/hooks/.use-authed-image-src.md +38 -0
  644. package/src/hooks/.use-contact-submission.md +35 -36
  645. package/src/hooks/.use-humanity-signals.md +47 -0
  646. package/src/hooks/.use-near-viewport.md +30 -30
  647. package/src/hooks/.use-og-placeholder-url.md +57 -0
  648. package/src/hooks/.use-scroll-to-hash.md +46 -0
  649. package/src/hooks/.use-self-fetch.md +52 -0
  650. package/src/hooks/state/.flatten-schema.md +37 -29
  651. package/src/hooks/ui/.index.md +37 -25
  652. package/src/hooks/ui/.use-auto-limit-tags.md +55 -38
  653. package/src/hooks/ui/.use-deferred-error.md +44 -0
  654. package/src/hooks/ui/.use-focus-trap.md +59 -0
  655. package/src/hooks/ui/.use-header-height.md +37 -0
  656. package/src/hooks/ui/.use-horizontal-scrollbar.md +25 -34
  657. package/src/hooks/ui/.use-marquee-engine.md +73 -0
  658. package/src/hooks/ui/.use-notification-permission.md +49 -0
  659. package/src/hooks/ui/.use-reset-on-page-hidden.md +40 -0
  660. package/src/hooks/ui/.use-suppress-clone-focus.md +41 -0
  661. package/src/nats/.index.md +39 -0
  662. package/src/nats/.nats-provider.md +46 -0
  663. package/src/nats/.nats.md +38 -28
  664. package/src/nats/.shared-connection.md +56 -0
  665. package/src/nats/.use-nats-subscription.md +57 -0
  666. package/src/stories/.ActionsMenu.stories.md +57 -0
  667. package/src/stories/.Alert.stories.md +46 -0
  668. package/src/stories/.AnnouncementBar.stories.md +59 -32
  669. package/src/stories/.AppLayoutDrawer.stories.md +60 -0
  670. package/src/stories/.AppLayoutSidebar.stories.md +45 -0
  671. package/src/stories/.ApprovalBatchMessage.stories.md +46 -0
  672. package/src/stories/.ApprovalBatchMessageClient.stories.md +55 -0
  673. package/src/stories/.ApprovalRequestMessage.stories.md +50 -0
  674. package/src/stories/.ApprovalRequestMessageClient.stories.md +41 -0
  675. package/src/stories/.BlogCard.stories.md +52 -0
  676. package/src/stories/.Board.stories.md +25 -20
  677. package/src/stories/.Button.stories.md +35 -40
  678. package/src/stories/.CampaignCardAdmin.stories.md +38 -0
  679. package/src/stories/.CardsStrip.stories.md +39 -0
  680. package/src/stories/.CaseStudyCard.stories.md +41 -0
  681. package/src/stories/.ChatContainer.stories.md +41 -0
  682. package/src/stories/.ChatInlineVideoPill.stories.md +36 -0
  683. package/src/stories/.ChatMessageEnhanced.stories.md +51 -0
  684. package/src/stories/.ChatMingoInfoCards.stories.md +30 -0
  685. package/src/stories/.ChatTicketList.stories.md +38 -22
  686. package/src/stories/.ChatTypingIndicator.stories.md +47 -0
  687. package/src/stories/.CheckboxBlock.stories.md +34 -35
  688. package/src/stories/.ContextCompactionDisplay.stories.md +28 -0
  689. package/src/stories/.CustomerInterviewCard.stories.md +36 -0
  690. package/src/stories/.DashboardInfoCard.stories.md +40 -33
  691. package/src/stories/.DataRoomDocCard.stories.md +42 -0
  692. package/src/stories/.DataTable.stories.md +37 -32
  693. package/src/stories/.DatePicker.stories.md +34 -30
  694. package/src/stories/.EmbeddableChat.stories.md +45 -28
  695. package/src/stories/.EmptyState.stories.md +55 -0
  696. package/src/stories/.ErrorMessageDisplay.stories.md +45 -0
  697. package/src/stories/.FilterModal.stories.md +28 -22
  698. package/src/stories/.GenericEntityCard.stories.md +50 -0
  699. package/src/stories/.GitHubActivityCard.stories.md +41 -0
  700. package/src/stories/.GuideWelcome.stories.md +38 -0
  701. package/src/stories/.Header.stories.md +32 -22
  702. package/src/stories/.HubspotTicketCard.stories.md +41 -0
  703. package/src/stories/.InfoCard.stories.md +37 -26
  704. package/src/stories/.InfoCardRow.stories.md +48 -0
  705. package/src/stories/.InfoSection.stories.md +55 -0
  706. package/src/stories/.Input.stories.md +45 -35
  707. package/src/stories/.InvestorUpdateCard.stories.md +41 -0
  708. package/src/stories/.MarqueeWall.stories.md +53 -0
  709. package/src/stories/.MingoAiButton.stories.md +31 -0
  710. package/src/stories/.MingoChatModals.stories.md +47 -0
  711. package/src/stories/.MingoInfoCard.stories.md +50 -0
  712. package/src/stories/.MingoOnboardingCard.stories.md +19 -19
  713. package/src/stories/.MingoWelcome.stories.md +41 -0
  714. package/src/stories/.MobileNavPanel.stories.md +52 -0
  715. package/src/stories/.Modal.stories.md +19 -16
  716. package/src/stories/.MspOrganizationCard.stories.md +45 -0
  717. package/src/stories/.NotificationDrawer.stories.md +39 -28
  718. package/src/stories/.OSTypeBadge.stories.md +34 -25
  719. package/src/stories/.OnboardingGuideCard.stories.md +41 -0
  720. package/src/stories/.PageActions.stories.md +21 -21
  721. package/src/stories/.PageContainer.stories.md +29 -24
  722. package/src/stories/.PageLayout.stories.md +18 -35
  723. package/src/stories/.PolicyConfigurationPanel.stories.md +58 -0
  724. package/src/stories/.ProductReleaseCard.stories.md +39 -0
  725. package/src/stories/.ProgramCard.stories.md +51 -0
  726. package/src/stories/.QuickActionChip.stories.md +59 -0
  727. package/src/stories/.QuickActionMarquee.stories.md +51 -0
  728. package/src/stories/.QuickActionWall.stories.md +58 -0
  729. package/src/stories/.RoadmapCard.stories.md +41 -0
  730. package/src/stories/.ShellTypeBadge.stories.md +42 -22
  731. package/src/stories/.SlackMessageCard.stories.md +42 -0
  732. package/src/stories/.SlashCommandSuggestions.stories.md +21 -31
  733. package/src/stories/.SplitButton.stories.md +23 -25
  734. package/src/stories/.StackedRowsPanel.stories.md +65 -0
  735. package/src/stories/.TabSelector.stories.md +26 -38
  736. package/src/stories/.Tag.stories.md +32 -27
  737. package/src/stories/.ThinkingDisplay.stories.md +43 -0
  738. package/src/stories/.TicketCard.stories.md +60 -0
  739. package/src/stories/.TicketInfoSection.stories.md +28 -20
  740. package/src/stories/.TimeTracker.stories.md +35 -0
  741. package/src/stories/.Toaster.stories.md +26 -20
  742. package/src/stories/.ToolBadge.stories.md +34 -24
  743. package/src/stories/.ToolExecutionDisplay.stories.md +22 -20
  744. package/src/stories/.ToolExecutionDisplayClient.stories.md +33 -0
  745. package/src/stories/.VideoBitesStrip.stories.md +37 -0
  746. package/src/stories/.WarningBlock.stories.md +51 -0
  747. package/src/stories/__fixtures__/.chat-card-decorator.md +39 -0
  748. package/src/stories/__fixtures__/.chat-cards.md +57 -0
  749. package/src/stories/auth/.CompleteAccount.stories.md +36 -0
  750. package/src/stories/auth/.CreateOrganization.stories.md +52 -0
  751. package/src/stories/auth/.InviteLinkInvalid.stories.md +21 -0
  752. package/src/stories/auth/.Login.stories.md +32 -0
  753. package/src/stories/auth/.OpenFrameSso.stories.md +58 -0
  754. package/src/stories/auth/.PasswordReset.stories.md +49 -0
  755. package/src/styles/ods-interaction-states.css +32 -0
  756. package/src/types/.announcement.md +67 -35
  757. package/src/types/.blog.md +44 -41
  758. package/src/types/.case-study.md +31 -17
  759. package/src/types/.content-ref.md +37 -0
  760. package/src/types/.customer-interview.md +38 -38
  761. package/src/types/.doc-source.md +87 -0
  762. package/src/types/.entity-author.md +53 -0
  763. package/src/types/.entity-platform.md +40 -0
  764. package/src/types/.index.md +23 -17
  765. package/src/types/.marketing.md +32 -35
  766. package/src/types/.navigation.md +31 -19
  767. package/src/types/.os.types.md +30 -31
  768. package/src/types/.permissions.md +49 -35
  769. package/src/types/.platform.md +44 -28
  770. package/src/types/.product-release.md +59 -42
  771. package/src/types/.shell.types.md +46 -30
  772. package/src/types/.supabase.md +43 -29
  773. package/src/types/.tool.types.md +43 -23
  774. package/src/types/.video-processing.md +40 -31
  775. package/src/types/supabase.ts +80 -0
  776. package/src/types/video-processing.ts +1 -0
  777. package/src/utils/.announcement-storage.md +49 -17
  778. package/src/utils/.app-config.md +22 -18
  779. package/src/utils/.brand-marks.md +46 -0
  780. package/src/utils/.cn.md +40 -29
  781. package/src/utils/.color-analysis.md +34 -25
  782. package/src/utils/.common.md +43 -23
  783. package/src/utils/.content-href.md +64 -0
  784. package/src/utils/.content-ref-groups.md +51 -0
  785. package/src/utils/.date-utils.md +46 -35
  786. package/src/utils/.doc-path-utils.md +38 -0
  787. package/src/utils/.doc-tree-nav.md +51 -0
  788. package/src/utils/.embed-authed-fetch.md +48 -32
  789. package/src/utils/.embed-content-fetch.md +36 -0
  790. package/src/utils/.embed-url-converters.md +52 -0
  791. package/src/utils/.extract-items.md +49 -0
  792. package/src/utils/.faq-anchor.md +48 -0
  793. package/src/utils/.format.md +73 -55
  794. package/src/utils/.humanity-signals.md +59 -0
  795. package/src/utils/.index.md +73 -31
  796. package/src/utils/.list-url.md +43 -0
  797. package/src/utils/.markdown-section-extractor.md +57 -0
  798. package/src/utils/.markdown-to-plain.md +51 -0
  799. package/src/utils/.media-carousel-utils-stub.md +42 -31
  800. package/src/utils/.ods-color-utils.md +84 -43
  801. package/src/utils/.og-placeholder.md +45 -0
  802. package/src/utils/.page-header-constants.md +26 -0
  803. package/src/utils/.platform-config.md +34 -34
  804. package/src/utils/.release-badge.md +47 -0
  805. package/src/utils/.release-cover.md +45 -0
  806. package/src/utils/.same-page-hash-nav.md +45 -0
  807. package/src/utils/.scroll-into-view.md +32 -25
  808. package/src/utils/.seo-description.md +37 -0
  809. package/src/utils/.seo-title.md +25 -0
  810. package/src/utils/.social-embed-cache.md +37 -0
  811. package/src/utils/.source-icons.md +30 -34
  812. package/src/utils/.suggestion-url.md +46 -0
  813. package/src/utils/.tool-utils.md +39 -24
  814. package/src/utils/.tree-builder.md +64 -0
  815. package/src/utils/.video-bite-id.md +42 -0
  816. package/src/utils/announcement-storage.ts +9 -18
  817. package/src/utils/dev-sections/.dev-section-param-keys.md +51 -0
  818. package/src/utils/dev-sections/.openframe-dev-sections.md +40 -28
  819. package/src/utils/dismiss-cookie.ts +55 -0
  820. package/src/utils/dismissal-storage.ts +38 -0
  821. package/src/utils/index.ts +3 -0
  822. package/dist/chunk-BBUEY73L.js.map +0 -1
  823. package/dist/chunk-G3UN2DXU.cjs.map +0 -1
  824. package/dist/chunk-OWMLWJQY.cjs.map +0 -1
  825. package/dist/chunk-SASR7SK5.js.map +0 -1
  826. package/src/components/chat/utils/.onboarding-icons.md +0 -28
  827. package/src/hooks/.use-og-placeholder.md +0 -51
  828. /package/dist/{chunk-MGKCS6KS.js.map → chunk-3WCARCI4.js.map} +0 -0
  829. /package/dist/{chunk-Y3Y2DLNO.js.map → chunk-6UGYBCEN.js.map} +0 -0
  830. /package/dist/{chunk-PSPWT2Q5.js.map → chunk-7LWXWXEY.js.map} +0 -0
  831. /package/dist/{chunk-VTSRDC4W.js.map → chunk-CKC3EAYT.js.map} +0 -0
  832. /package/dist/{chunk-ZRANZNEA.js.map → chunk-JJE5TUZK.js.map} +0 -0
  833. /package/dist/{chunk-66BNAFO6.js.map → chunk-JQIUBFHL.js.map} +0 -0
  834. /package/dist/{chunk-2DIOV7BR.js.map → chunk-UPN6EFOM.js.map} +0 -0
  835. /package/dist/{chunk-4SMRQ4SN.js.map → chunk-WBL5Y4PS.js.map} +0 -0
  836. /package/dist/{chunk-FP4H6Y5O.js.map → chunk-WPYPSIY2.js.map} +0 -0
  837. /package/dist/{chunk-R5WJJL4V.js.map → chunk-X5X43HFV.js.map} +0 -0
  838. /package/dist/{chunk-DEHZ5CTC.js.map → chunk-XTWKDMCG.js.map} +0 -0
@@ -1,26 +1,25 @@
1
- <!-- source-hash: 96e461088a5374855c0977550d1322c9 -->
2
- A controlled search input component that combines inline tag chips with a text input, supporting automatic or fixed tag overflow with a popup for hidden tags.
1
+ <!-- source-hash: bcb66dcc5b0a6be0721e936daa39f1ef -->
2
+ A controlled search input component that combines inline tag display with a text search field, supporting overflow handling for tags that exceed available width.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `TagSearchOption<T>`
7
- Generic interface representing a selectable tag with a `label` string and typed `value`.
7
+ Generic interface representing a selectable tag with a `label` (display string) and `value` (typed payload, defaults to `string`).
8
8
 
9
9
  ### `TagSearchInputProps<T>`
10
- Full props interface for the component, including:
11
- - `tags` / `searchValue` — controlled state inputs
12
- - `onSearchChange` / `onTagRemove` / `onClearAll` — mutation callbacks
13
- - `limitTags` — `number | "auto"` (default `"auto"`) controls visible tag count
10
+ Full prop interface for the component, including:
11
+ - `tags` / `searchValue` — controlled state for active tags and input text
12
+ - `onTagRemove` / `onSearchChange` / `onClearAll` — mutation callbacks
13
+ - `limitTags` — `number | "auto"` controlling visible tag count (defaults to `"auto"` for width-based calculation)
14
14
  - `renderTag` / `getLimitTagsText` — render customization slots
15
- - `onSubmit` / `onKeyDown` — keyboard event hooks
16
15
 
17
16
  ### `TagSearchInput<T>`
18
- The main generic component. Renders a styled input container with:
19
- - **Visible tags** — rendered as `<Tag>` chips up to `visibleCount`
20
- - **Overflow badge** a `+N` button that toggles a `HiddenTagsPopup`
21
- - **Text input** — flex-grows into remaining space
22
- - **Clear all button** pinned right, appears when input or tags have values
23
- - **Off-screen measurement divs** used by `useAutoLimitTags` to compute available width
17
+ The main generic component. Renders a styled input row with:
18
+ - A pinned **search icon** (left)
19
+ - A **middle zone** containing visible tags, an overflow `+N` badge, and the text input
20
+ - A pinned **clear-all button** (right, conditional)
21
+ - A **`HiddenTagsPopup`** anchored below the `+N` badge for overflow tags
22
+ - Off-screen **measurement containers** used by `useAutoLimitTags` to compute visible tag count
24
23
 
25
24
  ## Usage Example
26
25
 
@@ -28,9 +27,9 @@ The main generic component. Renders a styled input container with:
28
27
  import { TagSearchInput, TagSearchOption } from "./tag-search-input"
29
28
 
30
29
  const options: TagSearchOption<number>[] = [
31
- { label: "Windows", value: 1 },
32
- { label: "macOS", value: 2 },
33
- { label: "Linux", value: 3 },
30
+ { label: "Billing", value: 1 },
31
+ { label: "Networking", value: 2 },
32
+ { label: "Security", value: 3 },
34
33
  ]
35
34
 
36
35
  function FilterBar() {
@@ -42,12 +41,13 @@ function FilterBar() {
42
41
  tags={tags}
43
42
  searchValue={search}
44
43
  onSearchChange={setSearch}
45
- onTagRemove={(val) => setTags((prev) => prev.filter((t) => t.value !== val))}
44
+ onTagRemove={(id) => setTags((prev) => prev.filter((t) => t.value !== id))}
46
45
  onClearAll={() => { setTags([]); setSearch("") }}
47
46
  onSubmit={(val) => console.log("submitted:", val)}
48
47
  limitTags="auto"
49
- placeholder="Filter devices..."
50
48
  />
51
49
  )
52
50
  }
53
- ```
51
+ ```
52
+
53
+ **Source:** [`tag-search-input.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/tag-search-input.tsx)
@@ -0,0 +1,59 @@
1
+ <!-- source-hash: eb8b620b4c2ca28727d63d877a8d803a -->
2
+ A multi-select tag picker rendered as a button-triggered Radix UI popover, featuring inline search/filter, checkable tag rows, optional inline tag creation, and per-row delete actions.
3
+
4
+ ## Key Components
5
+
6
+ ### `TagSelectDropdown`
7
+ The main exported component. Opens a popover containing:
8
+ - **Search input** — filters options in real time; `Enter` triggers creation when applicable
9
+ - **Option list** — selected tags float to the top, each row shows a check icon when active and a hover-revealed trash icon when `onDelete` is provided
10
+ - **Create row** — appears when the search query doesn't match any existing tag; enforces `maxCreateLength` with an inline error
11
+
12
+ ### Interfaces
13
+
14
+ | Export | Purpose |
15
+ |---|---|
16
+ | `TagSelectOption` | `{ id: string; label: string }` — shape of each selectable tag |
17
+ | `TagSelectDropdownProps` | Full prop surface for the dropdown |
18
+
19
+ ### Key Props
20
+
21
+ | Prop | Type | Description |
22
+ |---|---|---|
23
+ | `options` | `TagSelectOption[]` | All available tags |
24
+ | `selectedIds` | `string[]` | IDs of currently selected tags |
25
+ | `onChange` | `(ids: string[]) => void` | Called with next full selection on toggle |
26
+ | `onCreate` | `(name: string) => void` | Enables inline creation row when provided |
27
+ | `onDelete` | `(id: string) => void` | Enables per-row trash button when provided |
28
+ | `maxCreateLength` | `number` | Optional character cap for new tag names |
29
+ | `isCreating` / `isDeleting` | `boolean` | Disables create/delete buttons during async ops |
30
+
31
+ ## Usage Example
32
+
33
+ ```typescript
34
+ import { TagSelectDropdown, TagSelectOption } from './tag-select-dropdown'
35
+
36
+ const ALL_TAGS: TagSelectOption[] = [
37
+ { id: '1', label: 'Urgent' },
38
+ { id: '2', label: 'Billing' },
39
+ { id: '3', label: 'Hardware' },
40
+ ]
41
+
42
+ function TagPicker() {
43
+ const [selected, setSelected] = React.useState<string[]>(['1'])
44
+
45
+ return (
46
+ <TagSelectDropdown
47
+ options={ALL_TAGS}
48
+ selectedIds={selected}
49
+ onChange={setSelected}
50
+ onCreate={(name) => console.log('Create tag:', name)}
51
+ onDelete={(id) => console.log('Delete tag:', id)}
52
+ maxCreateLength={30}
53
+ triggerLabel="Add Tags"
54
+ />
55
+ )
56
+ }
57
+ ```
58
+
59
+ > Selected tag chips are rendered by the caller — this component only manages the picker UI and fires `onChange` with the updated ID array.
@@ -1,58 +1,40 @@
1
- <!-- source-hash: af3df5d03b971509e29cd6ef6c4c1640 -->
2
- A client-side Tag component for displaying labeled badges with optional icons and dismissal functionality, built on `class-variance-authority` for variant-based styling.
1
+ <!-- source-hash: 7790074c969073b4d437a54cd0ebac37 -->
2
+ A polymorphic chip/tag UI component with multiple visual variants, sizes, and optional icon/close button support.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`Tag`** — Main component rendering a styled badge with support for icons, labels, and a close button
7
- - **`tagVariants`** — CVA variant config exported for external reuse; supports 7 visual styles
8
- - **`TagProps`** — Interface extending `HTMLAttributes<HTMLDivElement>` with tag-specific props
9
-
10
- ### Variants
11
-
12
- | Variant | Use Case |
13
- |---------|----------|
14
- | `primary` | Default yellow highlight |
15
- | `outline` | Dark background with border |
16
- | `success` | Green success state |
17
- | `warning` | Yellow warning state |
18
- | `error` | Red soft error state |
19
- | `critical` | Solid red critical alert |
20
- | `grey` | Neutral/muted state |
21
-
22
- ### Props
23
-
24
- | Prop | Type | Description |
25
- |------|------|-------------|
26
- | `label` | `React.ReactNode` | Required tag text or content |
27
- | `variant` | `TagVariant` | Visual style (default: `primary`) |
28
- | `icon` | `React.ReactNode` | Optional leading icon |
29
- | `onClose` | `() => void` | Renders dismiss button when provided |
30
- | `disabled` | `boolean` | Applies disabled styling and prevents interaction |
31
- | `labelClassName` | `string` | Additional classes for the label span |
6
+ - **`tagVariants`** — `cva` variant config defining two sizes (`default` 32px, `large` 48px) and nine visual variants: `primary`, `outline`, `success`, `warning`, `error`, `critical`, `grey`, `selected`, `selectedCyan`, and `badge`.
7
+ - **`TagProps`** — Interface extending `HTMLAttributes<HTMLDivElement>` with `label`, optional `icon`, `onClose`, `disabled`, `labelClassName`, and `as` (root element override).
8
+ - **`Tag`** — The main component. Renders an icon slot, a truncating label, and an optional close button with `XmarkCircleIcon`.
32
9
 
33
10
  ## Usage Example
34
11
 
35
12
  ```typescript
13
+ import { Tag } from "./tag"
14
+
36
15
  // Basic tag
37
16
  <Tag label="Active" variant="success" />
38
17
 
39
- // With icon and close button
18
+ // With icon and close handler
40
19
  <Tag
41
- label="Urgent"
42
- variant="critical"
43
- icon={<AlertIcon />}
44
- onClose={() => removeTag("urgent")}
20
+ label="Billing"
21
+ variant="outline"
22
+ icon={<BillingIcon />}
23
+ onClose={() => handleRemove("billing")}
45
24
  />
46
25
 
26
+ // Large selected chip (e.g. tab group)
27
+ <Tag label="Monitoring" variant="selected" size="large" />
28
+
29
+ // Inline tag inside paragraph content (avoids invalid div-in-p hydration)
30
+ <Tag label="Beta" variant="badge" as="span" />
31
+
47
32
  // Disabled state
48
- <Tag
49
- label="Unavailable"
50
- variant="outline"
51
- disabled
52
- />
33
+ <Tag label="Archived" variant="grey" disabled />
34
+ ```
35
+
36
+ ## Notes
53
37
 
54
- // Using tagVariants externally
55
- <div className={cn(tagVariants({ variant: "warning" }), "custom-class")}>
56
- Custom element
57
- </div>
58
- ```
38
+ - The `as` prop accepts `'div'` (default) or `'span'` — use `'span'` when the tag appears inside phrasing content (e.g. `<p>`) to avoid invalid HTML and hydration errors.
39
+ - `disabled` applies pointer-events-none and muted styling via `disabledTagClasses` and sets `aria-disabled`.
40
+ - The close `<button>` calls `e.stopPropagation()` before invoking `onClose`, preventing unintended parent click handlers from firing.
@@ -1,51 +1,51 @@
1
- <!-- source-hash: 9eb10752292d24eee24cde4356bcc193 -->
2
- A React component that provides an interactive tags input interface, allowing users to add, remove, and manage a collection of string tags with keyboard shortcuts and validation.
1
+ <!-- source-hash: 9db0eafa66563a94111378c7cb3be888 -->
2
+ A client-side React component for managing a list of string tags with add/remove functionality, keyboard support, and optional tag limits.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **TagsInput**: Main component that manages tag state and user interactions
7
- - **handleAddTag**: Adds new tags with duplicate checking and max limit validation
8
- - **handleRemoveTag**: Removes tags from the collection
9
- - **handleKeyPress**: Enables Enter key for adding tags
10
- - **TagsInputProps**: Interface defining component configuration options
6
+ ### `TagsInput` (exported function)
7
+
8
+ A controlled input component that renders a text field with an "Add" button, a collection of removable badge tags, and an optional tag counter.
9
+
10
+ **Props (`TagsInputProps`):**
11
+
12
+ | Prop | Type | Default | Description |
13
+ |---|---|---|---|
14
+ | `value` | `string[]` | `[]` | Current list of tags (controlled) |
15
+ | `onChange` | `(tags: string[]) => void` | — | Callback fired when tags change |
16
+ | `placeholder` | `string` | `"Add a tag..."` | Input placeholder text |
17
+ | `className` | `string` | — | Wrapper `div` class override |
18
+ | `disabled` | `boolean` | `false` | Disables input and remove buttons |
19
+ | `maxTags` | `number` | — | Maximum number of allowed tags |
20
+ | `inputClassName` | `string` | — | Additional classes for the `Input` |
21
+ | `badgeClassName` | `string` | — | Additional classes for each `Badge` |
22
+ | `label` | `string` | — | Optional label rendered above the input |
23
+
24
+ **Behaviors:**
25
+ - Duplicate tags are silently rejected
26
+ - Tags are added via the **Add** button or by pressing `Enter`
27
+ - Input and Add button are automatically disabled when `maxTags` is reached
28
+ - A `{current}/{max} tags` counter is shown when `maxTags` is set
11
29
 
12
30
  ## Usage Example
13
31
 
14
32
  ```typescript
15
- import { TagsInput } from "./tags-input"
33
+ import { TagsInput } from "@/components/ui/tags-input"
16
34
  import { useState } from "react"
17
35
 
18
- function MyForm() {
19
- const [tags, setTags] = useState<string[]>([])
36
+ export function MyForm() {
37
+ const [tags, setTags] = useState<string[]>(["typescript", "react"])
20
38
 
21
39
  return (
22
40
  <TagsInput
41
+ label="Technologies"
23
42
  value={tags}
24
43
  onChange={setTags}
25
- label="Skills"
26
- placeholder="Add a skill..."
44
+ placeholder="Add a technology..."
27
45
  maxTags={5}
28
- className="w-full"
29
- badgeClassName="bg-blue-100 text-blue-800"
30
- />
31
- )
32
- }
33
-
34
- // With initial tags
35
- function PrefilledTags() {
36
- const [technologies, setTechnologies] = useState([
37
- "React", "TypeScript", "Node.js"
38
- ])
39
-
40
- return (
41
- <TagsInput
42
- value={technologies}
43
- onChange={setTechnologies}
44
- placeholder="Add technology..."
45
- disabled={false}
46
46
  />
47
47
  )
48
48
  }
49
49
  ```
50
50
 
51
- The component features duplicate prevention, optional tag limits, keyboard navigation, customizable styling, and accessibility support with proper ARIA labels.
51
+ **Source:** [`tags-input.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/tags-input.tsx)
@@ -1,52 +1,54 @@
1
- <!-- source-hash: ec4ed0c801de7134f1ad25648dec0319 -->
2
- A client-side textarea component supporting labels, validation states, and optional end icons (as decorative spans or interactive buttons), built on top of `FieldWrapper`.
1
+ <!-- source-hash: c699d2d9dc6f460390da123be652dd71 -->
2
+ A client-side textarea component with optional label, error state, and start/end icon adornments. Supports both a bare layout (border on the `<textarea>` itself) and an adorned layout (border lifted onto a `<label>` wrapper) that auto-sizes via CSS `field-sizing: content`.
3
3
 
4
4
  ## Key Components
5
5
 
6
- ### `Textarea`
7
- A `React.forwardRef` component extending native `HTMLTextAreaElement` attributes with the following additional props:
6
+ | Export | Type | Description |
7
+ |---|---|---|
8
+ | `Textarea` | `React.ForwardRefExoticComponent` | Main textarea with full design-system styling |
9
+ | `TextareaProps` | `interface` | Extends `React.TextareaHTMLAttributes<HTMLTextAreaElement>` |
8
10
 
9
- | Prop | Type | Description |
10
- |------|------|-------------|
11
- | `invalid` | `boolean` | Renders red error border/ring |
12
- | `label` | `string` | Label text above the textarea |
13
- | `error` | `string` | Error message below the textarea |
14
- | `endIcon` | `React.ReactNode` | Icon rendered at the right edge |
15
- | `endIconAsButton` | `boolean` | Wraps `endIcon` in a styled `<button>` |
16
- | `endIconButtonProps` | `ButtonHTMLAttributes` | Extra props for the end-icon button |
11
+ ### `TextareaProps` notable fields
17
12
 
18
- **Two layout modes:**
19
- - **Without `endIcon`**: Border and background styles live directly on the `<textarea>` element.
20
- - **With `endIcon`**: A `<label>` wrapper hosts the border/background so the icon appears visually inside the field. The textarea uses `[field-sizing:content]` for native CSS auto-grow and caps height at `160px` with internal scroll.
13
+ | Prop | Type | Default | Description |
14
+ |---|---|---|---|
15
+ | `invalid` | `boolean` | `false` | Renders red error border and ring |
16
+ | `label` | `string` | — | Label rendered above the field |
17
+ | `error` | `string` | — | Error message below the field; also sets invalid state |
18
+ | `startIcon` | `ReactNode` | — | Adornment at the left edge (renders verbatim) |
19
+ | `endIcon` | `ReactNode` | — | Adornment at the right edge |
20
+ | `endIconAsButton` | `boolean` | `false` | Wraps `endIcon` in a styled `<button>` |
21
+ | `endIconButtonProps` | `ButtonHTMLAttributes` | — | Extra props for the end-icon button |
22
+ | `hideBorder` | `boolean` | `false` | Suppresses border/bg/radius (outer container owns chrome) |
21
23
 
22
24
  ## Usage Example
23
25
 
24
26
  ```typescript
25
- // Basic textarea with label and validation
27
+ import { Textarea } from "@openframe-oss-lib/ui"
28
+ import { SendIcon, PlusIcon } from "lucide-react"
29
+
30
+ // Basic textarea with validation
26
31
  <Textarea
27
32
  label="Message"
28
- placeholder="Type your message..."
33
+ placeholder="Type your message"
29
34
  error="Message is required"
30
35
  />
31
36
 
32
- // Auto-growing textarea with a submit button icon
37
+ // Composer-style with start + end icons
33
38
  <Textarea
34
- label="Chat Input"
35
- placeholder="Ask something..."
39
+ placeholder="Ask anything…"
40
+ startIcon={<PlusIcon />}
36
41
  endIcon={<SendIcon />}
37
42
  endIconAsButton
38
43
  endIconButtonProps={{
39
- 'aria-label': 'Send message',
44
+ "aria-label": "Send message",
40
45
  onClick: handleSend,
41
- disabled: isLoading,
46
+ disabled: isPending,
42
47
  }}
48
+ hideBorder
43
49
  />
50
+ ```
44
51
 
45
- // Controlled with disabled state
46
- <Textarea
47
- value={value}
48
- onChange={(e) => setValue(e.target.value)}
49
- disabled
50
- rows={4}
51
- />
52
- ```
52
+ ## Source
53
+
54
+ [`textarea.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/textarea.tsx)
@@ -1,45 +1,52 @@
1
- <!-- source-hash: 9fe959702866abb3d54c107fab70e0a4 -->
2
- Renders a styled list of file attachments for a support ticket, displaying thumbnail or file icon, name, size, and an optional download button per item.
1
+ <!-- source-hash: f1475c50075c22f933c4db727027b907 -->
2
+ Renders a bordered list of ticket file attachments with optional thumbnail previews, delete, and download actions.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`TicketAttachment`** — Interface describing a single attachment: `id`, `fileName`, `fileSize`, optional `thumbnailSrc`, and optional `onDownload` callback
7
- - **`TicketAttachmentsListProps`** — Props interface accepting an `attachments` array and optional `className`
8
- - **`TicketAttachmentsList`** — Main component that maps over attachments, rendering each row with a `SquareAvatar` (if thumbnail exists) or a fallback `FileIcon`, truncated filename, file size, and a download button
6
+ ### Interfaces
7
+
8
+ - **`TicketAttachment`** — Describes a single attachment entry:
9
+ - `id` — Unique identifier
10
+ - `fileName` — Display name
11
+ - `fileSize` — Human-readable size string
12
+ - `thumbnailSrc?` — Optional image preview URL
13
+ - `onDownload?` — Callback to trigger file download
14
+ - `onDelete?` — When provided, renders a trash button before the download button
15
+
16
+ - **`TicketAttachmentsListProps`** — Component props:
17
+ - `attachments` — Array of `TicketAttachment` objects
18
+ - `className?` — Optional wrapper class override
19
+ - `size?` — `'default'` (full-row layout) | `'compact'` (reduced padding/icons for in-message rendering)
20
+
21
+ ### Component
22
+
23
+ - **`TicketAttachmentsList`** — Returns `null` if the attachment array is empty. Renders each attachment as a row with a thumbnail (via `SquareAvatar`) or a generic `FileIcon` fallback, filename, file size, and optional delete/download buttons.
9
24
 
10
25
  ## Usage Example
11
26
 
12
27
  ```typescript
13
- import { TicketAttachmentsList, TicketAttachment } from "./ticket-attachments-list"
28
+ import { TicketAttachmentsList } from "@openframe-oss-lib/components"
14
29
 
15
- const attachments: TicketAttachment[] = [
30
+ const attachments = [
16
31
  {
17
- id: "1",
32
+ id: "att-1",
18
33
  fileName: "screenshot.png",
19
- fileSize: "1.2 MB",
34
+ fileSize: "142 KB",
20
35
  thumbnailSrc: "https://cdn.example.com/thumb.png",
21
- onDownload: () => console.log("Downloading screenshot.png"),
36
+ onDownload: () => downloadFile("att-1"),
37
+ onDelete: () => deleteAttachment("att-1"),
22
38
  },
23
39
  {
24
- id: "2",
25
- fileName: "error-log.txt",
26
- fileSize: "48 KB",
27
- onDownload: () => console.log("Downloading error-log.txt"),
40
+ id: "att-2",
41
+ fileName: "report.pdf",
42
+ fileSize: "1.2 MB",
43
+ onDownload: () => downloadFile("att-2"),
28
44
  },
29
45
  ]
30
46
 
31
- export default function TicketDetail() {
32
- return (
33
- <TicketAttachmentsList
34
- attachments={attachments}
35
- className="mt-4"
36
- />
37
- )
38
- }
39
- ```
40
-
41
- ## Notes
42
-
43
- - Returns `null` when the `attachments` array is empty — safe to render unconditionally
44
- - Long filenames are truncated with CSS and exposed via the `title` attribute for full visibility on hover
45
- - Download button only renders when `onDownload` is provided
47
+ // Full-row layout (e.g. ticket detail panel)
48
+ <TicketAttachmentsList attachments={attachments} />
49
+
50
+ // Compact layout (e.g. inside a conversation message)
51
+ <TicketAttachmentsList attachments={attachments} size="compact" />
52
+ ```
@@ -1,56 +1,51 @@
1
- <!-- source-hash: 25c594905e7f584756ad751975cbc35e -->
2
- A collapsible ticket information panel that displays key ticket metadata (organization, assignee, device, status) in a header row, with an expandable section revealing additional details like description, attachments, tags, and notes.
1
+ <!-- source-hash: 7ac50b47361449080e2ba3874b959c5f -->
2
+ A collapsible ticket information panel that displays key ticket metadata (organization, assignee, device, status) in a compact header row, with an expandable section revealing description, attachments, tags, and notes.
3
3
 
4
4
  ## Key Components
5
5
 
6
6
  ### `TicketInfoSection`
7
- Main export. Renders a bordered card with a responsive header grid and optional expanded content area.
7
+ The main exported component rendering a two-state panel:
8
+ - **Collapsed:** Header grid showing organization avatar, assignee dropdown (or unassigned state), device info, status tag, and expand toggle.
9
+ - **Expanded:** Reveals created date, markdown description, file attachments, tag chips, and a full notes section with add/edit/delete support.
8
10
 
9
11
  ### `InfoCell` (internal)
10
- Reusable label/value display cell supporting an optional icon and clickable value.
12
+ A small layout primitive rendering a value + label pair with an optional icon. Renders the value as a clickable `<button>` when an `onClick` handler is provided.
11
13
 
12
14
  ### `TicketInfoSectionProps`
13
- Full interface for the component:
14
-
15
- | Prop | Type | Description |
16
- |------|------|-------------|
17
- | `organization` | `{ name, imageSrc? }` | Org name and avatar |
18
- | `device` | `{ name, icon?, onClick? }` | Device name with optional navigation |
19
- | `status` | `string` | Rendered via `TicketStatusTag` |
20
- | `assigned` | `AssignedConfig` | Assignee dropdown config |
21
- | `expanded` | `boolean` | Controls expanded section visibility |
22
- | `onExpand` | `() => void` | Expand/collapse toggle handler |
23
- | `description` | `string` | Markdown/HTML content |
24
- | `attachments` | `TicketAttachment[]` | Downloadable file list |
25
- | `tags` | `string[]` | Label tags |
26
- | `notes` | `TicketNote[]` | Notes with add/edit/delete handlers |
15
+ The full prop interface, including:
16
+ - `statusOptions` / `onStatusSelect` / `isStatusPending` — inline status changer
17
+ - `assigned` nested object powering the `AssigneeDropdown`
18
+ - `attachments`, `tags`, `notes`, `onAddNote`, `onEditNote`, `onDeleteNote` — expanded-view content
27
19
 
28
20
  ## Usage Example
29
21
 
30
22
  ```typescript
31
23
  import { TicketInfoSection } from "./ticket-info-section"
32
24
 
33
- function TicketPage() {
34
- const [expanded, setExpanded] = React.useState(false)
35
-
36
- return (
37
- <TicketInfoSection
38
- organization={{ name: "Acme Corp", imageSrc: "/acme-logo.png" }}
39
- device={{ name: "DESKTOP-XYZ01", onClick: () => router.push("/devices/1") }}
40
- status="open"
41
- expanded={expanded}
42
- onExpand={() => setExpanded(prev => !prev)}
43
- assigned={{
44
- currentAssignee: { id: "u1", name: "Jane Doe" },
45
- options: assigneeOptions,
46
- onAssign: (userId) => handleAssign(userId),
47
- }}
48
- createdAt="Jan 15, 2025"
49
- description="**Issue:** User cannot log in.\n\nSteps to reproduce..."
50
- tags={["urgent", "auth"]}
51
- notes={notes}
52
- onAddNote={(text) => addNote(text)}
53
- />
54
- )
55
- }
56
- ```
25
+ <TicketInfoSection
26
+ organization={{ name: "Acme Corp", imageSrc: "/logos/acme.png" }}
27
+ device={{ name: "MacBook Pro", onClick: () => router.push("/devices/123") }}
28
+ status="open"
29
+ statusLabel="Open"
30
+ statusOptions={[
31
+ { id: "open", label: "Open" },
32
+ { id: "closed", label: "Closed" },
33
+ ]}
34
+ onStatusSelect={(id) => updateStatus(id)}
35
+ assigned={{
36
+ currentAssignee: { id: "u1", name: "Jane Smith" },
37
+ options: assigneeList,
38
+ onAssign: (userId) => assignTicket(userId),
39
+ }}
40
+ expanded={isExpanded}
41
+ onExpand={() => setIsExpanded((v) => !v)}
42
+ description="## Issue\nUser cannot log in after password reset."
43
+ tags={["network", "priority-high"]}
44
+ notes={ticketNotes}
45
+ onAddNote={(text) => addNote(text)}
46
+ />
47
+ ```
48
+
49
+ ## Source
50
+
51
+ [`ticket-info-section.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ticket-info-section.tsx)
@@ -0,0 +1,66 @@
1
+ <!-- source-hash: af0402d9923c0e0c41315794a7eff4a9 -->
2
+ A client-side React component that renders a single row in a ticket status configuration UI, supporting both system-defined and custom ticket statuses with drag-and-drop reordering, color picking, and delete controls.
3
+
4
+ ## Key Components
5
+
6
+ ### `TicketStatusConfigRow`
7
+ The primary exported component. Renders a row containing:
8
+ - **Drag handle** — interactive for custom rows, decorative/disabled for system rows
9
+ - **Name input** — editable for custom, read-only for system rows
10
+ - **Color controls** — `ColorPresetSelect` and `ColorPickerInput` shown only for custom rows with color support
11
+ - **Live preview** — `TicketStatusTag` reflecting current name and color
12
+ - **Action button** — info tooltip icon for system rows; delete button (with optional disabled state tooltip) for custom rows
13
+
14
+ ### `WithLeftTooltip` (internal)
15
+ A touch-aware tooltip wrapper that ensures only one tooltip is open at a time via a module-level `dismissOpenTooltip` ref. Renders children unchanged when no `content` is provided.
16
+
17
+ ### `TicketStatusConfigRowProps`
18
+ The full props interface, key fields:
19
+
20
+ | Prop | Description |
21
+ |---|---|
22
+ | `variant` | `'system'` or `'custom'` — controls editability and available actions |
23
+ | `statusKey` | Canonical key forwarded to `TicketStatusTag` |
24
+ | `onColorChange` | Callback receiving `{ color, preset? }` |
25
+ | `dragHandleProps` / `dragHandleAttributes` | From `@dnd-kit/core` for drag-and-drop |
26
+ | `deleteDisabledReason` | Shown as tooltip when delete is disabled |
27
+ | `isDragging` | Applies visual feedback during drag |
28
+
29
+ ## Usage Example
30
+
31
+ ```typescript
32
+ import { TicketStatusConfigRow } from './ticket-status-config-row'
33
+
34
+ // Custom row with color picker and delete
35
+ <TicketStatusConfigRow
36
+ variant="custom"
37
+ statusKey="row-uuid-123"
38
+ name={statusName}
39
+ onNameChange={setStatusName}
40
+ color={color}
41
+ presetKey={preset}
42
+ onColorChange={({ color, preset }) => {
43
+ setColor(color)
44
+ setPreset(preset)
45
+ }}
46
+ onDelete={handleDelete}
47
+ deleteDisabled={isOnlyStatus}
48
+ deleteDisabledReason="At least one status is required"
49
+ dragHandleProps={listeners}
50
+ dragHandleAttributes={attributes}
51
+ isDragging={isDragging}
52
+ />
53
+
54
+ // System row (read-only, no delete)
55
+ <TicketStatusConfigRow
56
+ variant="system"
57
+ statusKey="RESOLVED"
58
+ name="Resolved"
59
+ systemTooltip="Built-in status — cannot be removed"
60
+ systemTagVariant="outline"
61
+ />
62
+ ```
63
+
64
+ ## Source
65
+
66
+ [`ticket-status-config-row.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ticket-status-config-row.tsx)