@flamingo-stack/openframe-frontend-core 0.0.212 → 0.0.213-snapshot.20260528174436

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 (806) hide show
  1. package/dist/{chunk-QKFBZLIR.js → chunk-5OWDOFKK.js} +2 -2
  2. package/dist/chunk-CZR7ARBA.js +698 -0
  3. package/dist/chunk-CZR7ARBA.js.map +1 -0
  4. package/dist/{chunk-UYQOPC57.js → chunk-HICZPTRR.js} +4 -351
  5. package/dist/chunk-HICZPTRR.js.map +1 -0
  6. package/dist/{chunk-5BNWGK6D.js → chunk-HWY35EAK.js} +3 -3
  7. package/dist/{chunk-VTUIMMHO.cjs → chunk-IZL2KEH6.cjs} +26 -26
  8. package/dist/{chunk-VTUIMMHO.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
  9. package/dist/{chunk-ZFBLC5GV.cjs → chunk-KDNGUYZM.cjs} +17 -17
  10. package/dist/{chunk-ZFBLC5GV.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
  11. package/dist/chunk-OZ3GH6OQ.cjs +698 -0
  12. package/dist/chunk-OZ3GH6OQ.cjs.map +1 -0
  13. package/dist/{chunk-3E5ANY55.js → chunk-UKND27XC.js} +410 -544
  14. package/dist/chunk-UKND27XC.js.map +1 -0
  15. package/dist/{chunk-EH3RWVF3.cjs → chunk-WT5JV2GS.cjs} +8 -355
  16. package/dist/chunk-WT5JV2GS.cjs.map +1 -0
  17. package/dist/{chunk-WI76ZUBE.cjs → chunk-YZUUFTIK.cjs} +545 -679
  18. package/dist/chunk-YZUUFTIK.cjs.map +1 -0
  19. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
  20. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts +0 -9
  21. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
  22. package/dist/components/chat/index.cjs +5 -4
  23. package/dist/components/chat/index.cjs.map +1 -1
  24. package/dist/components/chat/index.js +4 -3
  25. package/dist/components/contact/index.cjs +6 -5
  26. package/dist/components/contact/index.cjs.map +1 -1
  27. package/dist/components/contact/index.js +5 -4
  28. package/dist/components/features/index.cjs +5 -4
  29. package/dist/components/features/index.cjs.map +1 -1
  30. package/dist/components/features/index.js +4 -3
  31. package/dist/components/features/notifications/index.d.ts +2 -2
  32. package/dist/components/features/notifications/index.d.ts.map +1 -1
  33. package/dist/components/features/notifications/notifications-context.d.ts +16 -1
  34. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  35. package/dist/components/features/notifications/types.d.ts +4 -0
  36. package/dist/components/features/notifications/types.d.ts.map +1 -1
  37. package/dist/components/index.cjs +55 -54
  38. package/dist/components/index.cjs.map +1 -1
  39. package/dist/components/index.js +7 -6
  40. package/dist/components/index.js.map +1 -1
  41. package/dist/components/navigation/app-header.d.ts.map +1 -1
  42. package/dist/components/navigation/index.cjs +5 -4
  43. package/dist/components/navigation/index.cjs.map +1 -1
  44. package/dist/components/navigation/index.js +4 -3
  45. package/dist/components/tickets/index.cjs +66 -65
  46. package/dist/components/tickets/index.cjs.map +1 -1
  47. package/dist/components/tickets/index.js +6 -5
  48. package/dist/components/tickets/index.js.map +1 -1
  49. package/dist/components/ui/index.cjs +5 -4
  50. package/dist/components/ui/index.cjs.map +1 -1
  51. package/dist/components/ui/index.js +4 -3
  52. package/dist/embed-shims/index.cjs +3 -3
  53. package/dist/embed-shims/index.cjs.map +1 -1
  54. package/dist/embed-shims/index.js +4 -4
  55. package/dist/hooks/index.cjs +3 -2
  56. package/dist/hooks/index.cjs.map +1 -1
  57. package/dist/hooks/index.js +2 -1
  58. package/dist/index.cjs +5 -4
  59. package/dist/index.cjs.map +1 -1
  60. package/dist/index.js +4 -3
  61. package/dist/nats/index.cjs +28 -346
  62. package/dist/nats/index.cjs.map +1 -1
  63. package/dist/nats/index.d.ts +3 -0
  64. package/dist/nats/index.d.ts.map +1 -1
  65. package/dist/nats/index.js +30 -346
  66. package/dist/nats/index.js.map +1 -1
  67. package/dist/nats/nats-provider.d.ts +28 -0
  68. package/dist/nats/nats-provider.d.ts.map +1 -0
  69. package/dist/nats/nats.d.ts +1 -0
  70. package/dist/nats/nats.d.ts.map +1 -1
  71. package/dist/nats/shared-connection.d.ts +73 -0
  72. package/dist/nats/shared-connection.d.ts.map +1 -0
  73. package/dist/nats/use-nats-subscription.d.ts +18 -0
  74. package/dist/nats/use-nats-subscription.d.ts.map +1 -0
  75. package/package.json +1 -1
  76. package/src/.index.md +36 -34
  77. package/src/components/.alert-dialog.md +27 -23
  78. package/src/components/.announcement-bar.md +26 -21
  79. package/src/components/.breadcrumb.md +19 -15
  80. package/src/components/.calendar.md +24 -19
  81. package/src/components/.categories-cart.md +29 -24
  82. package/src/components/.checkbox.md +23 -25
  83. package/src/components/.chevron-button.md +37 -32
  84. package/src/components/.comment-card.md +32 -62
  85. package/src/components/.dialog.md +26 -26
  86. package/src/components/.dynamic-skeleton.md +54 -57
  87. package/src/components/.empty-state.md +42 -51
  88. package/src/components/.faq-accordion.md +27 -21
  89. package/src/components/.filter-chip.md +41 -24
  90. package/src/components/.flamingo-logo.md +20 -23
  91. package/src/components/.footer-waitlist-button.md +29 -22
  92. package/src/components/.footer.md +32 -32
  93. package/src/components/.icons-block.md +27 -17
  94. package/src/components/.image-cropper.md +41 -32
  95. package/src/components/.index.md +33 -39
  96. package/src/components/.input.md +31 -35
  97. package/src/components/.logs-list.md +31 -20
  98. package/src/components/.media-carousel.md +35 -36
  99. package/src/components/.open-source-features.md +33 -16
  100. package/src/components/.pagination.md +52 -51
  101. package/src/components/.provider-button.md +21 -23
  102. package/src/components/.select.md +31 -20
  103. package/src/components/.sidebar.md +34 -24
  104. package/src/components/.smooth-accordion.md +29 -24
  105. package/src/components/.social-icon-row.md +36 -32
  106. package/src/components/.textarea.md +25 -31
  107. package/src/components/.tool-icon.md +24 -26
  108. package/src/components/.unified-filter-logic.md +37 -30
  109. package/src/components/.unified-pagination.md +23 -22
  110. package/src/components/.user-summary-stub.md +38 -22
  111. package/src/components/.vendor-display-button.md +25 -25
  112. package/src/components/.vendor-icon.md +33 -25
  113. package/src/components/.why-it-matters.md +28 -25
  114. package/src/components/chat/.approval-batch-message.md +51 -0
  115. package/src/components/chat/.approval-request-message.md +35 -34
  116. package/src/components/chat/.chat-attachment-bar.md +64 -0
  117. package/src/components/chat/.chat-container.md +36 -18
  118. package/src/components/chat/.chat-input.md +37 -20
  119. package/src/components/chat/.chat-message-enhanced.md +30 -49
  120. package/src/components/chat/.chat-message-list.md +45 -32
  121. package/src/components/chat/.chat-message-skeleton.md +26 -22
  122. package/src/components/chat/.chat-panel-context.md +52 -0
  123. package/src/components/chat/.chat-ref.types.md +42 -0
  124. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  125. package/src/components/chat/.chat-sidebar.md +31 -26
  126. package/src/components/chat/.chat-ticket-list.md +39 -0
  127. package/src/components/chat/.context-compaction-display.md +36 -0
  128. package/src/components/chat/.cycling-phrase.md +52 -0
  129. package/src/components/chat/.embeddable-chat.md +48 -0
  130. package/src/components/chat/.expand-chevron.md +24 -0
  131. package/src/components/chat/.index.md +31 -35
  132. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  133. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  134. package/src/components/chat/.model-display.md +32 -30
  135. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  136. package/src/components/chat/.remark-card-links.md +38 -0
  137. package/src/components/chat/.slash-command-suggestions.md +47 -0
  138. package/src/components/chat/.source-action-button.md +48 -0
  139. package/src/components/chat/.thinking-display.md +42 -0
  140. package/src/components/chat/.tool-call-blocks.md +45 -0
  141. package/src/components/chat/.tool-execution-display.md +44 -36
  142. package/src/components/chat/chat-container.tsx +1 -1
  143. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  144. package/src/components/chat/entity-cards/.block-card.md +47 -0
  145. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  146. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  147. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  148. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  149. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  150. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  151. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  152. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  153. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  154. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  155. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  156. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  157. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  158. package/src/components/chat/entity-cards/.index.md +66 -0
  159. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  160. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  161. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  162. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  163. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  164. package/src/components/chat/entity-cards/.program-card.md +59 -0
  165. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  166. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  167. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  168. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  169. package/src/components/chat/hooks/.index.md +36 -21
  170. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  171. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  172. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  173. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  174. package/src/components/chat/hooks/.use-chat.md +58 -0
  175. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  176. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  177. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  178. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  179. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  180. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  181. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  182. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  183. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  184. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  185. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  186. package/src/components/chat/hooks/.use-sse.md +60 -0
  187. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  188. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +60 -207
  189. package/src/components/chat/hooks/use-nats-dialog-subscription.ts +71 -214
  190. package/src/components/chat/types/.api.types.md +52 -38
  191. package/src/components/chat/types/.chat.types.md +43 -34
  192. package/src/components/chat/types/.component.types.md +47 -48
  193. package/src/components/chat/types/.index.md +20 -27
  194. package/src/components/chat/types/.message.types.md +58 -48
  195. package/src/components/chat/types/.network.types.md +57 -31
  196. package/src/components/chat/types/.processing.types.md +49 -31
  197. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  198. package/src/components/chat/types/entities/.blog.md +43 -0
  199. package/src/components/chat/types/entities/.case-study.md +26 -0
  200. package/src/components/chat/types/entities/.content-ref.md +41 -0
  201. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  202. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  203. package/src/components/chat/types/entities/.github-activity.md +43 -0
  204. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  205. package/src/components/chat/types/entities/.index.md +42 -0
  206. package/src/components/chat/types/entities/.investor-update.md +45 -0
  207. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  208. package/src/components/chat/types/entities/.program-types.md +57 -0
  209. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  210. package/src/components/chat/types/entities/.slack-message.md +35 -0
  211. package/src/components/chat/utils/.agent-status-message.md +45 -0
  212. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  213. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  214. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  215. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  216. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  217. package/src/components/chat/utils/.chip-action-class.md +34 -0
  218. package/src/components/chat/utils/.chip-styles.md +46 -0
  219. package/src/components/chat/utils/.chunk-parser.md +38 -28
  220. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  221. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  222. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  223. package/src/components/chat/utils/.external-app-urls.md +29 -0
  224. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  225. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  226. package/src/components/chat/utils/.icon-registry.md +46 -0
  227. package/src/components/chat/utils/.index.md +37 -32
  228. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  229. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  230. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  231. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  232. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  233. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  234. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  235. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  236. package/src/components/chat/utils/.source-icons.md +35 -0
  237. package/src/components/chat/utils/.source-row-cta.md +54 -0
  238. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  239. package/src/components/contact/.contact-form.md +43 -0
  240. package/src/components/contact/.index.md +27 -0
  241. package/src/components/features/.array-entry-manager.md +36 -45
  242. package/src/components/features/.changelog-manager.md +47 -21
  243. package/src/components/features/.changelog-sections-manager.md +21 -26
  244. package/src/components/features/.command-box.md +31 -28
  245. package/src/components/features/.entity-summary-editor.md +46 -0
  246. package/src/components/features/.entity-video-section.md +51 -0
  247. package/src/components/features/.figma-prototype-viewer.md +48 -29
  248. package/src/components/features/.filters-dropdown.md +33 -46
  249. package/src/components/features/.highlight-config-section.md +42 -0
  250. package/src/components/features/.highlight-generation-section.md +46 -0
  251. package/src/components/features/.highlight-video-combined-section.md +47 -0
  252. package/src/components/features/.highlight-video-preview.md +44 -0
  253. package/src/components/features/.highlight-video-section.md +47 -0
  254. package/src/components/features/.index.md +40 -66
  255. package/src/components/features/.media-gallery-manager.md +48 -38
  256. package/src/components/features/.more-about-button.md +22 -19
  257. package/src/components/features/.og-editor-preview.md +40 -36
  258. package/src/components/features/.parallax-image-showcase.md +33 -26
  259. package/src/components/features/.paths-display.md +42 -43
  260. package/src/components/features/.platform-badge.md +37 -36
  261. package/src/components/features/.platform-filter.md +23 -16
  262. package/src/components/features/.policy-configuration-panel.md +48 -56
  263. package/src/components/features/.provider-button.md +33 -36
  264. package/src/components/features/.push-button-selector.md +40 -29
  265. package/src/components/features/.release-media-manager.md +46 -31
  266. package/src/components/features/.section-selector.md +26 -31
  267. package/src/components/features/.select-button.md +35 -25
  268. package/src/components/features/.seo-editor-preview.md +41 -44
  269. package/src/components/features/.social-links-manager.md +25 -19
  270. package/src/components/features/.start-with-openframe-button.md +37 -29
  271. package/src/components/features/.status-filter-component.md +36 -20
  272. package/src/components/features/.tags-selector.md +40 -24
  273. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  274. package/src/components/features/.transcribe-summarize-section.md +48 -0
  275. package/src/components/features/.transcript-summary-editor.md +53 -0
  276. package/src/components/features/.video-bites-display.md +46 -0
  277. package/src/components/features/.video-clips-section.md +41 -0
  278. package/src/components/features/.video-ratio-tabs.md +56 -0
  279. package/src/components/features/.video-source-selector.md +60 -0
  280. package/src/components/features/.video.md +44 -0
  281. package/src/components/features/.waitlist-form.md +60 -0
  282. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  283. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  284. package/src/components/features/board/.board-column-header.md +38 -0
  285. package/src/components/features/board/.board-column.md +43 -0
  286. package/src/components/features/board/.board.md +51 -0
  287. package/src/components/features/board/.color-utils.md +26 -0
  288. package/src/components/features/board/.index.md +56 -0
  289. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  290. package/src/components/features/board/.ticket-card.md +47 -0
  291. package/src/components/features/board/.types.md +45 -0
  292. package/src/components/features/board/.use-board-collapse.md +34 -0
  293. package/src/components/features/notifications/.index.md +57 -0
  294. package/src/components/features/notifications/.notification-drawer.md +34 -0
  295. package/src/components/features/notifications/.notification-tile.md +39 -0
  296. package/src/components/features/notifications/.notifications-context.md +73 -0
  297. package/src/components/features/notifications/.types.md +45 -0
  298. package/src/components/features/notifications/index.ts +2 -1
  299. package/src/components/features/notifications/notifications-context.tsx +104 -6
  300. package/src/components/features/notifications/types.ts +5 -0
  301. package/src/components/icons/.about-icon.md +20 -28
  302. package/src/components/icons/.ai-robot-icon.md +15 -17
  303. package/src/components/icons/.bash-icon.md +16 -23
  304. package/src/components/icons/.buildings-icon.md +10 -24
  305. package/src/components/icons/.capterra-icon.md +30 -26
  306. package/src/components/icons/.carta-icon.md +29 -0
  307. package/src/components/icons/.clickup-icon.md +26 -0
  308. package/src/components/icons/.cmd-icon.md +15 -22
  309. package/src/components/icons/.coins-icon.md +17 -25
  310. package/src/components/icons/.community-hub-icon.md +19 -25
  311. package/src/components/icons/.community-icon.md +24 -21
  312. package/src/components/icons/.compare-icon.md +32 -19
  313. package/src/components/icons/.copy-icon.md +29 -15
  314. package/src/components/icons/.custom-external-link-icon.md +19 -17
  315. package/src/components/icons/.custom-fork-icon.md +32 -21
  316. package/src/components/icons/.custom-license-icon.md +29 -25
  317. package/src/components/icons/.custom-star-icon.md +20 -28
  318. package/src/components/icons/.custom-time-icon.md +21 -22
  319. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  320. package/src/components/icons/.dashboard-icon.md +13 -18
  321. package/src/components/icons/.deno-icon.md +16 -23
  322. package/src/components/icons/.donut-icon.md +12 -23
  323. package/src/components/icons/.double-chevron-icon.md +28 -36
  324. package/src/components/icons/.elestio-logo.md +13 -23
  325. package/src/components/icons/.empty-vendor-icon.md +16 -18
  326. package/src/components/icons/.explore-categories-icon.md +18 -29
  327. package/src/components/icons/.eye-icon.md +16 -26
  328. package/src/components/icons/.facebook-icon.md +9 -20
  329. package/src/components/icons/.figma-icon.md +8 -17
  330. package/src/components/icons/.filter-icon.md +15 -17
  331. package/src/components/icons/.flamingo-logo.md +28 -27
  332. package/src/components/icons/.folder-shield-icon.md +28 -19
  333. package/src/components/icons/.g2-icon.md +22 -21
  334. package/src/components/icons/.getapp-icon.md +25 -21
  335. package/src/components/icons/.github-icon.md +13 -25
  336. package/src/components/icons/.globe-icon.md +14 -19
  337. package/src/components/icons/.google-gemini-icon.md +16 -19
  338. package/src/components/icons/.google-logo.md +15 -21
  339. package/src/components/icons/.grid-view-icon.md +30 -19
  340. package/src/components/icons/.hamburger-icon.md +22 -20
  341. package/src/components/icons/.hand-dollar-icon.md +24 -34
  342. package/src/components/icons/.hotel-icon.md +27 -21
  343. package/src/components/icons/.icon-utils.md +28 -29
  344. package/src/components/icons/.image-icon.md +15 -22
  345. package/src/components/icons/.index.md +25 -28
  346. package/src/components/icons/.info-circle-icon.md +29 -30
  347. package/src/components/icons/.instagram-icon.md +10 -24
  348. package/src/components/icons/.jump-in-icon.md +18 -18
  349. package/src/components/icons/.linux-icon.md +18 -18
  350. package/src/components/icons/.log-out-icon.md +15 -23
  351. package/src/components/icons/.logs-icon.md +14 -23
  352. package/src/components/icons/.margin-crisis-icon.md +21 -20
  353. package/src/components/icons/.menu-icon.md +18 -19
  354. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  355. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  356. package/src/components/icons/.mlg-logo.md +18 -16
  357. package/src/components/icons/.moon-icon.md +32 -22
  358. package/src/components/icons/.ms-icon.md +30 -19
  359. package/src/components/icons/.nushell-icon.md +7 -21
  360. package/src/components/icons/.open-source-icon.md +19 -23
  361. package/src/components/icons/.openai-icon.md +9 -24
  362. package/src/components/icons/.openframe-ai-icons.md +25 -26
  363. package/src/components/icons/.openframe-logo.md +28 -22
  364. package/src/components/icons/.openframe-text.md +24 -27
  365. package/src/components/icons/.openmsp-logo.md +26 -23
  366. package/src/components/icons/.pilot-icon.md +23 -0
  367. package/src/components/icons/.powershell-icon.md +17 -22
  368. package/src/components/icons/.python-icon.md +16 -23
  369. package/src/components/icons/.queries-icon.md +13 -21
  370. package/src/components/icons/.reddit-icon.md +28 -24
  371. package/src/components/icons/.remote-control-icon.md +13 -17
  372. package/src/components/icons/.script-icon.md +27 -19
  373. package/src/components/icons/.search-icon.md +21 -21
  374. package/src/components/icons/.send-icon.md +14 -16
  375. package/src/components/icons/.settings-icon.md +30 -19
  376. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  377. package/src/components/icons/.shell-icon.md +15 -19
  378. package/src/components/icons/.shield-check-icon.md +18 -31
  379. package/src/components/icons/.shield-key-icon.md +25 -25
  380. package/src/components/icons/.shield-lock-icon.md +8 -18
  381. package/src/components/icons/.slack-icon.md +28 -32
  382. package/src/components/icons/.sparkles-icon.md +18 -23
  383. package/src/components/icons/.sso-configuration-icon.md +29 -16
  384. package/src/components/icons/.sun-icon.md +20 -18
  385. package/src/components/icons/.table-view-icon.md +17 -19
  386. package/src/components/icons/.telegram-icon.md +8 -22
  387. package/src/components/icons/.thumbs-down-icon.md +10 -19
  388. package/src/components/icons/.thumbs-up-icon.md +8 -17
  389. package/src/components/icons/.tool-directory-icons.md +24 -28
  390. package/src/components/icons/.trustpilot-icon.md +25 -22
  391. package/src/components/icons/.user-icon.md +26 -28
  392. package/src/components/icons/.users-group-icon.md +28 -24
  393. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  394. package/src/components/icons/.vendors-icon.md +18 -22
  395. package/src/components/icons/.whatsapp-icon.md +30 -14
  396. package/src/components/icons/.x-icon.md +18 -23
  397. package/src/components/icons/.x-logo.md +13 -38
  398. package/src/components/icons/.youtube-icon.md +8 -19
  399. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  400. package/src/components/icons-v2-generated/.index.md +52 -0
  401. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  402. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  403. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  404. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  405. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  406. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  407. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  408. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  409. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  410. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  411. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  412. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  413. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  414. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  415. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  416. package/src/components/icons-v2-generated/design/.index.md +39 -0
  417. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  418. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  419. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  420. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  421. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  422. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  423. package/src/components/icons-v2-generated/health/.index.md +40 -0
  424. package/src/components/icons-v2-generated/household/.index.md +45 -0
  425. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  426. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  427. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  428. package/src/components/icons-v2-generated/number/.index.md +41 -0
  429. package/src/components/icons-v2-generated/school/.index.md +37 -0
  430. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  431. package/src/components/icons-v2-generated/security/.index.md +39 -0
  432. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  433. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  434. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  435. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  436. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  437. package/src/components/icons-v2-generated/users/.index.md +45 -0
  438. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  439. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  440. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  441. package/src/components/layout/.article-detail-layout.md +43 -0
  442. package/src/components/layout/.back-button.md +40 -0
  443. package/src/components/layout/.list-page-layout.md +35 -26
  444. package/src/components/layout/.page-container.md +27 -38
  445. package/src/components/layout/.page-layout.md +50 -0
  446. package/src/components/layout/.title-block.md +42 -0
  447. package/src/components/loading/.card-skeleton.md +38 -29
  448. package/src/components/loading/.device-card-skeleton.md +29 -25
  449. package/src/components/loading/.index.md +39 -46
  450. package/src/components/loading/.margin-report-skeleton.md +45 -34
  451. package/src/components/loading/.organization-card-skeleton.md +39 -44
  452. package/src/components/loading/.page-layout-skeleton.md +34 -45
  453. package/src/components/loading/.unified-skeleton.md +62 -36
  454. package/src/components/navigation/.app-header.md +40 -29
  455. package/src/components/navigation/.app-layout.md +25 -26
  456. package/src/components/navigation/.header-global-search.md +34 -37
  457. package/src/components/navigation/.header-organization-filter.md +23 -22
  458. package/src/components/navigation/.header.md +31 -35
  459. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  460. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  461. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  462. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  463. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  464. package/src/components/navigation/.navigation-sidebar.md +33 -34
  465. package/src/components/navigation/.sliding-sidebar.md +52 -41
  466. package/src/components/navigation/.sticky-section-nav.md +56 -48
  467. package/src/components/navigation/app-header.tsx +7 -9
  468. package/src/components/platform/.ScriptArguments.md +39 -25
  469. package/src/components/platform/.ScriptInfoSection.md +30 -26
  470. package/src/components/platform/.ShellTypeBadge.md +18 -13
  471. package/src/components/platform/.SoftwareInfo.md +23 -27
  472. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  473. package/src/components/platform/.ToolBadge.md +25 -26
  474. package/src/components/providers/.theme-provider.md +52 -0
  475. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  476. package/src/components/shared/delivery/.delivery-row.md +41 -0
  477. package/src/components/shared/delivery/.delivery-table.md +41 -0
  478. package/src/components/shared/delivery/.index.md +38 -0
  479. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  480. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  481. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  482. package/src/components/shared/dev-section/.index.md +38 -0
  483. package/src/components/shared/legal-document/.index.md +40 -0
  484. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  485. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  486. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  487. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  488. package/src/components/shared/product-release/.index.md +28 -30
  489. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  490. package/src/components/shared/product-release/.product-release-card.md +45 -27
  491. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  492. package/src/components/shared/roadmap/.index.md +37 -0
  493. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  494. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  495. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  496. package/src/components/tickets/.help-center-card.md +51 -0
  497. package/src/components/tickets/.help-center-create-form.md +38 -0
  498. package/src/components/tickets/.help-center-list.md +40 -0
  499. package/src/components/tickets/.index.md +65 -0
  500. package/src/components/tickets/.ticket-center.md +51 -0
  501. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  502. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  503. package/src/components/tickets/.ticket-open-form.md +50 -0
  504. package/src/components/tickets/.ticket-row.md +30 -0
  505. package/src/components/tickets/.types.md +57 -0
  506. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  507. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  508. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  509. package/src/components/ui/.actions-menu.md +66 -41
  510. package/src/components/ui/.alert-dialog.md +29 -26
  511. package/src/components/ui/.allowed-domains-input.md +29 -21
  512. package/src/components/ui/.assignee-dropdown.md +45 -0
  513. package/src/components/ui/.autocomplete.md +47 -41
  514. package/src/components/ui/.benefit-card.md +51 -36
  515. package/src/components/ui/.brand-association-card.md +30 -27
  516. package/src/components/ui/.breadcrumb.md +17 -15
  517. package/src/components/ui/.checkbox-block.md +39 -35
  518. package/src/components/ui/.checkbox-with-description.md +23 -16
  519. package/src/components/ui/.checkbox.md +31 -23
  520. package/src/components/ui/.circular-progress.md +49 -19
  521. package/src/components/ui/.content-loader.md +32 -20
  522. package/src/components/ui/.cursor-pagination.md +41 -52
  523. package/src/components/ui/.dashboard-info-card.md +33 -26
  524. package/src/components/ui/.date-picker.md +27 -25
  525. package/src/components/ui/.device-card-compact.md +28 -29
  526. package/src/components/ui/.device-card.md +27 -27
  527. package/src/components/ui/.dialog.md +25 -16
  528. package/src/components/ui/.drawer.md +86 -0
  529. package/src/components/ui/.dropdown-button.md +45 -0
  530. package/src/components/ui/.entity-image.md +46 -0
  531. package/src/components/ui/.error-state.md +41 -28
  532. package/src/components/ui/.feature-card.md +35 -31
  533. package/src/components/ui/.feature-list.md +48 -0
  534. package/src/components/ui/.field-wrapper.md +47 -0
  535. package/src/components/ui/.file-upload.md +42 -0
  536. package/src/components/ui/.filter-checkbox-item.md +43 -0
  537. package/src/components/ui/.filter-list.md +57 -0
  538. package/src/components/ui/.filter-modal.md +59 -0
  539. package/src/components/ui/.floating-tooltip.md +43 -26
  540. package/src/components/ui/.hidden-tags-popup.md +49 -0
  541. package/src/components/ui/.hover-dropdown.md +54 -0
  542. package/src/components/ui/.image-gallery-modal.md +41 -34
  543. package/src/components/ui/.image-uploader.md +53 -0
  544. package/src/components/ui/.index.md +40 -34
  545. package/src/components/ui/.info-card.md +31 -31
  546. package/src/components/ui/.info-row.md +31 -27
  547. package/src/components/ui/.input-trigger.md +44 -0
  548. package/src/components/ui/.input.md +37 -31
  549. package/src/components/ui/.markdown-editor.md +57 -0
  550. package/src/components/ui/.modal-v2.md +51 -0
  551. package/src/components/ui/.modal.md +32 -31
  552. package/src/components/ui/.more-actions-menu.md +45 -38
  553. package/src/components/ui/.organization-card.md +31 -37
  554. package/src/components/ui/.page-actions.md +44 -54
  555. package/src/components/ui/.phone-input.md +54 -0
  556. package/src/components/ui/.progress-bar.md +35 -27
  557. package/src/components/ui/.radio-group.md +39 -27
  558. package/src/components/ui/.release-changelog-section.md +34 -34
  559. package/src/components/ui/.search-input.md +48 -0
  560. package/src/components/ui/.select.md +54 -34
  561. package/src/components/ui/.service-card.md +42 -40
  562. package/src/components/ui/.sheet.md +27 -18
  563. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  564. package/src/components/ui/.sort-column-item.md +42 -0
  565. package/src/components/ui/.square-avatar.md +34 -24
  566. package/src/components/ui/.status-badge.md +26 -38
  567. package/src/components/ui/.switch.md +22 -35
  568. package/src/components/ui/.tab-navigation.md +56 -53
  569. package/src/components/ui/.tab-selector.md +40 -0
  570. package/src/components/ui/.tag-key-value-filter.md +56 -0
  571. package/src/components/ui/.tag-search-input.md +53 -0
  572. package/src/components/ui/.tag.md +49 -31
  573. package/src/components/ui/.tags-manager.md +60 -0
  574. package/src/components/ui/.textarea.md +44 -34
  575. package/src/components/ui/.ticket-attachments-list.md +45 -0
  576. package/src/components/ui/.ticket-detail-section.md +29 -0
  577. package/src/components/ui/.ticket-info-section.md +56 -0
  578. package/src/components/ui/.ticket-note-card.md +53 -0
  579. package/src/components/ui/.ticket-notes-section.md +54 -0
  580. package/src/components/ui/.ticket-status-tag.md +49 -0
  581. package/src/components/ui/.title-content-block.md +25 -26
  582. package/src/components/ui/.toaster.md +40 -28
  583. package/src/components/ui/.tooltip.md +22 -11
  584. package/src/components/ui/.truncate-text.md +39 -0
  585. package/src/components/ui/button/.button-styles.md +35 -0
  586. package/src/components/ui/button/.button.md +53 -0
  587. package/src/components/ui/button/.split-button.md +48 -0
  588. package/src/components/ui/data-table/.data-table-body.md +48 -0
  589. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  590. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  591. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  592. package/src/components/ui/data-table/.data-table-header.md +55 -0
  593. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  594. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  595. package/src/components/ui/data-table/.data-table-row.md +47 -0
  596. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  597. package/src/components/ui/data-table/.data-table.md +47 -0
  598. package/src/components/ui/data-table/.index.md +55 -0
  599. package/src/components/ui/data-table/.types.md +54 -0
  600. package/src/components/ui/data-table/.use-data-table.md +45 -0
  601. package/src/components/ui/data-table/.utils.md +38 -0
  602. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  603. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  604. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  605. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  606. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  607. package/src/components/ui/file-manager/.file-manager.md +35 -31
  608. package/src/components/ui/query-report-table/.index.md +43 -0
  609. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  610. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  611. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  612. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  613. package/src/components/ui/query-report-table/.types.md +41 -0
  614. package/src/components/ui/query-report-table/.utils.md +35 -0
  615. package/src/components/ui/table/.index.md +27 -48
  616. package/src/components/ui/table/.table-cell.md +18 -27
  617. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  618. package/src/components/ui/table/.table-description-cell.md +24 -14
  619. package/src/components/ui/table/.table-empty-state.md +21 -22
  620. package/src/components/ui/table/.table-header.md +25 -40
  621. package/src/components/ui/table/.table-row.md +22 -40
  622. package/src/components/ui/table/.table-skeleton.md +33 -26
  623. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  624. package/src/components/ui/table/.table.md +39 -59
  625. package/src/components/ui/table/.types.md +44 -36
  626. package/src/components/ui/table/.utils.md +18 -20
  627. package/src/contexts/.chat-runtime-context.md +54 -0
  628. package/src/contexts/.endpoints-runtime-context.md +58 -0
  629. package/src/contexts/.index.md +53 -0
  630. package/src/contexts/.use-outer-or-default.md +36 -0
  631. package/src/embed-shims/.index.md +45 -0
  632. package/src/embed-shims/.next-dynamic.md +43 -0
  633. package/src/embed-shims/.next-image.md +45 -0
  634. package/src/embed-shims/.next-link.md +59 -0
  635. package/src/embed-shims/.next-navigation.md +59 -0
  636. package/src/hooks/.index.md +34 -29
  637. package/src/hooks/.use-access-code-integration.md +49 -0
  638. package/src/hooks/.use-contact-submission.md +37 -26
  639. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  640. package/src/hooks/.use-near-viewport.md +44 -0
  641. package/src/hooks/.use-og-placeholder.md +51 -0
  642. package/src/hooks/.use-toast.md +36 -35
  643. package/src/hooks/state/.use-api-params.md +29 -46
  644. package/src/hooks/state/.use-query-params.md +37 -33
  645. package/src/hooks/ui/.index.md +33 -32
  646. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  647. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  648. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  649. package/src/hooks/ui/.use-media-query.md +33 -25
  650. package/src/hooks/ui/.use-search.md +51 -0
  651. package/src/nats/.nats.md +49 -28
  652. package/src/nats/index.ts +3 -0
  653. package/src/nats/nats-provider.tsx +146 -0
  654. package/src/nats/nats.ts +2 -0
  655. package/src/nats/shared-connection.ts +285 -0
  656. package/src/nats/use-nats-subscription.ts +99 -0
  657. package/src/schemas/.contact-schema.md +45 -0
  658. package/src/stories/.AnnouncementBar.stories.md +45 -0
  659. package/src/stories/.AppLayout.stories.md +20 -21
  660. package/src/stories/.Autocomplete.stories.md +48 -34
  661. package/src/stories/.Board.stories.md +35 -0
  662. package/src/stories/.Button.stories.md +36 -33
  663. package/src/stories/.ChatTicketList.stories.md +33 -0
  664. package/src/stories/.CheckboxBlock.stories.md +40 -28
  665. package/src/stories/.ContentLoader.stories.md +47 -0
  666. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  667. package/src/stories/.DataTable.stories.md +41 -0
  668. package/src/stories/.DatePicker.stories.md +66 -52
  669. package/src/stories/.DeviceCard.stories.md +41 -40
  670. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  671. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  672. package/src/stories/.Drawer.stories.md +58 -0
  673. package/src/stories/.EmbeddableChat.stories.md +41 -0
  674. package/src/stories/.FileManager.stories.md +41 -0
  675. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  676. package/src/stories/.FileUpload.stories.md +53 -0
  677. package/src/stories/.FilterList.stories.md +54 -0
  678. package/src/stories/.FilterModal.stories.md +72 -0
  679. package/src/stories/.FiltersDropdown.stories.md +57 -0
  680. package/src/stories/.Header.stories.md +48 -0
  681. package/src/stories/.ImageUploader.stories.md +49 -0
  682. package/src/stories/.InfoCard.stories.md +54 -0
  683. package/src/stories/.Input.stories.md +48 -30
  684. package/src/stories/.ListPageLayout.stories.md +56 -43
  685. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  686. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  687. package/src/stories/.Modal.stories.md +40 -31
  688. package/src/stories/.NotificationDrawer.stories.md +55 -0
  689. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  690. package/src/stories/.OrganizationCard.stories.md +61 -0
  691. package/src/stories/.PageActions.stories.md +52 -49
  692. package/src/stories/.PageContainer.stories.md +41 -35
  693. package/src/stories/.PageLayout.stories.md +60 -0
  694. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  695. package/src/stories/.PhoneInput.stories.md +53 -0
  696. package/src/stories/.QueryReportTable.stories.md +44 -0
  697. package/src/stories/.RadioGroup.stories.md +46 -0
  698. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  699. package/src/stories/.Select.stories.md +29 -15
  700. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  701. package/src/stories/.SplitButton.stories.md +62 -0
  702. package/src/stories/.TabNavigation.stories.md +47 -38
  703. package/src/stories/.TabSelector.stories.md +65 -0
  704. package/src/stories/.Table.stories.md +38 -46
  705. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  706. package/src/stories/.Tag.stories.md +43 -32
  707. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  708. package/src/stories/.TagSearchInput.stories.md +61 -0
  709. package/src/stories/.Textarea.stories.md +49 -26
  710. package/src/stories/.Theme.stories.md +41 -0
  711. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  712. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  713. package/src/stories/.TicketInfoSection.stories.md +40 -0
  714. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  715. package/src/stories/.TicketNotesSection.stories.md +50 -0
  716. package/src/stories/.Toaster.stories.md +40 -0
  717. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  718. package/src/stories/.Tooltip.stories.md +41 -0
  719. package/src/stories/.UserSummary.stories.md +41 -0
  720. package/src/stories/.WaitlistForm.stories.md +42 -0
  721. package/src/stories/BlogCard.stories.tsx +61 -0
  722. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  723. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  724. package/src/stories/ChatContainer.stories.tsx +186 -0
  725. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  726. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  727. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  728. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  729. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  730. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  731. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  732. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  733. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  734. package/src/stories/ProgramCard.stories.tsx +79 -0
  735. package/src/stories/RoadmapCard.stories.tsx +75 -0
  736. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  737. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  738. package/src/types/.blog.md +53 -29
  739. package/src/types/.case-study.md +44 -27
  740. package/src/types/.customer-interview.md +66 -44
  741. package/src/types/.delivery.md +40 -0
  742. package/src/types/.employee.md +24 -30
  743. package/src/types/.index.md +33 -47
  744. package/src/types/.marketing.md +49 -44
  745. package/src/types/.navigation.md +33 -25
  746. package/src/types/.os.types.md +32 -27
  747. package/src/types/.platform.md +31 -28
  748. package/src/types/.product-release.md +65 -38
  749. package/src/types/.supabase.md +37 -29
  750. package/src/types/.team.md +41 -33
  751. package/src/types/.video-processing.md +54 -0
  752. package/src/types/.waitlist.md +40 -36
  753. package/src/utils/.access-code-client.md +37 -36
  754. package/src/utils/.cn.md +31 -23
  755. package/src/utils/.color-analysis.md +35 -0
  756. package/src/utils/.country-phone-utils.md +39 -0
  757. package/src/utils/.date-formatters.md +19 -18
  758. package/src/utils/.embed-authed-fetch.md +39 -0
  759. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  760. package/src/utils/.fetch-priority.md +41 -0
  761. package/src/utils/.format.md +74 -25
  762. package/src/utils/.generic-domain-utils.md +42 -0
  763. package/src/utils/.image-proxy.md +59 -23
  764. package/src/utils/.index.md +42 -49
  765. package/src/utils/.local-storage-adapter.md +50 -0
  766. package/src/utils/.ods-color-utils.md +55 -38
  767. package/src/utils/.platform-config.md +45 -25
  768. package/src/utils/.scroll-into-view.md +40 -0
  769. package/src/utils/.source-icons.md +53 -0
  770. package/src/utils/.sse-decision-frame.md +46 -0
  771. package/src/utils/dev-sections/.index.md +34 -0
  772. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  773. package/dist/chunk-3E5ANY55.js.map +0 -1
  774. package/dist/chunk-EH3RWVF3.cjs.map +0 -1
  775. package/dist/chunk-UYQOPC57.js.map +0 -1
  776. package/dist/chunk-WI76ZUBE.cjs.map +0 -1
  777. package/src/components/.card.md +0 -42
  778. package/src/components/.contact-button.md +0 -30
  779. package/src/components/.drawer.md +0 -46
  780. package/src/components/.fixed-layout-container.md +0 -47
  781. package/src/components/.footer-waitlist-card.md +0 -29
  782. package/src/components/.join-waitlist-cta.md +0 -29
  783. package/src/components/.sheet.md +0 -47
  784. package/src/components/.sliding-panel.md +0 -48
  785. package/src/components/.tooltip.md +0 -48
  786. package/src/components/.use-mobile.md +0 -42
  787. package/src/components/.vendor-compact-card.md +0 -66
  788. package/src/components/.x-button.md +0 -42
  789. package/src/components/features/.github-repo-button.md +0 -40
  790. package/src/components/features/.organization-icon.md +0 -47
  791. package/src/components/features/.organization-selector.md +0 -45
  792. package/src/components/icons/.fleet-icon.md +0 -39
  793. package/src/components/icons/.meshcentral-icon.md +0 -35
  794. package/src/components/icons/.refresh-icon.md +0 -34
  795. package/src/components/icons/.tactical-icon.md +0 -35
  796. package/src/components/ui/.button.md +0 -69
  797. package/src/components/ui/.log-table-row.md +0 -47
  798. package/src/components/ui/.selectable-device-card.md +0 -46
  799. package/src/hooks/.api-hooks-stub.md +0 -45
  800. package/src/hooks/api/.use-product-releases.md +0 -53
  801. package/src/stories/.OrganizationSelector.stories.md +0 -42
  802. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  803. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  804. package/src/utils/.lite-youtube-embed.md +0 -33
  805. /package/dist/{chunk-QKFBZLIR.js.map → chunk-5OWDOFKK.js.map} +0 -0
  806. /package/dist/{chunk-5BNWGK6D.js.map → chunk-HWY35EAK.js.map} +0 -0
@@ -1,38 +1,45 @@
1
- <!-- source-hash: f79f8bb1d9edf6587a6e5969375e5636 -->
2
- A Next.js client component that provides a context-aware waitlist button for use in footers, with smart navigation and form focusing capabilities.
1
+ <!-- source-hash: 8e25a68fa3e51dd5cde8b484877f10f2 -->
2
+ A footer button component that navigates users to the OpenFrame waitlist page, routing through the unified navigation system when available.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **`FooterWaitlistButton`**: Main component that renders a button with OpenFrame logo and intelligent click behavior
7
- - **Props**: `FooterWaitlistButtonProps` interface with optional `className`
8
- - **Dependencies**: Next.js navigation hooks (`usePathname`, `useRouter`), custom UI components (`Button`, `OpenFrameLogo`)
6
+ ### `FooterWaitlistButtonProps`
7
+ - `className?: string` — Optional CSS class for styling overrides.
8
+
9
+ ### `FooterWaitlistButton`
10
+ A `Button` wrapper that handles navigation to `/waitlist#top` via a two-tier fallback strategy:
11
+
12
+ 1. **Primary:** `runtime.navigation.navigate` — the host's unified-nav hook (provided by `HubRuntimeProvider`), which handles cross-platform new-tab decisions, same-URL re-scroll, and embed-mode short-circuiting.
13
+ 2. **Fallback:** `router.push` via the embed-shim's `useRouter` — used when no `ChatRuntimeContext` is mounted (e.g., third-party embedders).
14
+
15
+ Renders with the `OpenFrameLogo` icon as a left icon inside the button.
9
16
 
10
17
  ## Usage Example
11
18
 
12
19
  ```typescript
13
20
  import { FooterWaitlistButton } from './footer-waitlist-button';
14
21
 
15
- // Basic usage in footer
16
- function Footer() {
22
+ // Basic usage inside a footer layout
23
+ export function AppFooter() {
17
24
  return (
18
- <footer className="bg-gray-900">
19
- <div className="container mx-auto px-4 py-8">
20
- <FooterWaitlistButton className="mt-4" />
21
- </div>
25
+ <footer>
26
+ <FooterWaitlistButton className="mt-4 w-full" />
22
27
  </footer>
23
28
  );
24
29
  }
25
-
26
- // With custom styling
27
- function CustomFooter() {
28
- return (
29
- <FooterWaitlistButton className="bg-primary hover:bg-primary/90 text-white" />
30
- );
31
- }
32
30
  ```
33
31
 
34
- The component implements smart navigation logic:
35
- - **On `/waitlist` page**: Smoothly scrolls to `#waitlist-form` element and focuses the email input after 400ms delay
36
- - **On other pages**: Navigates to `/waitlist#waitlist-form` URL with anchor
32
+ > **Navigation note:** The `#top` anchor targets an explicit `<div id="top">` at the top of the waitlist page's `<main>` element, ensuring consistent scroll behavior across all browsers regardless of HTML5 magic-anchor handling.
33
+
34
+ ## Navigation Flow
37
35
 
38
- The button displays "Join Waitlist" text with the OpenFrame logo as a left icon, providing consistent branding across the application.
36
+ ```mermaid
37
+ graph TD
38
+ A["FooterWaitlistButton clicked"] --> B{"runtime.navigation.navigate available?"}
39
+ B -->|Yes| C["Call runtime.navigation.navigate"]
40
+ C --> D{"Handled?"}
41
+ D -->|Yes| E["Done - unified nav handled"]
42
+ D -->|No| F["Fallback: router.push"]
43
+ B -->|No| F
44
+ F --> G["Navigate to /waitlist#top"]
45
+ ```
@@ -1,53 +1,53 @@
1
- <!-- source-hash: 4a3128feff9dea66bb7c1e8038ce07e8 -->
2
- A configurable React footer component that provides flexible layout options and platform-specific customization through a comprehensive configuration interface. This component supports responsive design with customizable sections, social links, and content positioning.
1
+ <!-- source-hash: 71df967a1bb27327de1d15d5c696e36b -->
2
+ A configurable, platform-aware footer component for Next.js (client-side) that renders navigation sections, social icons, branding, and custom content slots based on a `FooterConfig` object.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Footer** - Main platform-aware component that accepts configuration
7
- - **UniversalFooter** - Internal component that renders the actual footer layout
8
- - **FooterConfig** - TypeScript interface defining configuration options
9
- - **FooterLink/FooterSection** - Type definitions for navigation structure
10
- - **NavLinkSkeleton** - Loading skeleton for navigation links
6
+ **`Footer`** — Public entry point. Validates config presence and delegates to `UniversalFooter`. Returns `null` with a console warning if no config is provided.
11
7
 
12
- ## Configuration Options
8
+ **`UniversalFooter`** — Core rendering logic. Builds a responsive 4-column grid layout with:
9
+ - **Column 1:** Logo, platform name, description, social icons (`SocialIconRow`)
10
+ - **Dynamic sections:** Rendered from `config.sections[]`
11
+ - **Custom component slot:** `config.customComponent`
12
+ - **Right column slot:** `config.rightColumnContent` or relocated description via `config.moveDescriptionToRight`
13
13
 
14
- The `FooterConfig` interface provides extensive customization:
14
+ **`FooterConfig`** — Interface driving all layout behavior. Key flags:
15
15
 
16
- - **Content**: `name`, `legalName`, `description`, `logo`, `nameElement`
17
- - **Navigation**: `sections` array with links organized by category
18
- - **Layout**: `customComponent`, `rightColumnContent`, `moveDescriptionToRight`
19
- - **Social**: `social` object with platform URLs (GitHub, Twitter, LinkedIn, etc.)
20
- - **Styling**: `backgroundColor` with ODS design system classes
21
- - **Behavior**: `hideSocialRow`, `keepBelowDescriptionLeft`
16
+ | Flag | Effect |
17
+ |------|--------|
18
+ | `moveDescriptionToRight` | Moves description to the right column |
19
+ | `keepBelowDescriptionLeft` | Keeps `belowDescriptionContent` in column 1 when description is moved |
20
+ | `hideSocialRow` | Suppresses the `SocialIconRow` |
21
+ | `backgroundColor` | ODS utility class override (default: `bg-ods-bg-card`) |
22
+
23
+ **`renderLink`** — Optional prop to override the default anchor renderer per link.
22
24
 
23
25
  ## Usage Example
24
26
 
25
27
  ```typescript
26
- import { Footer } from './footer'
28
+ import { Footer } from "@/components/footer"
27
29
 
28
- const footerConfig = {
29
- name: "OpenFrame",
30
+ const config: FooterConfig = {
31
+ name: "Flamingo",
30
32
  legalName: "Flamingo Technologies Inc.",
31
- description: "AI-powered MSP platform replacing expensive proprietary software.",
32
- backgroundColor: "bg-ods-bg-card",
33
+ description: "AI-powered MSP platform.",
33
34
  sections: [
34
35
  {
35
36
  title: "Product",
36
37
  links: [
37
- { href: "/features", label: "Features" },
38
- { href: "/pricing", label: "Pricing" }
39
- ]
40
- }
38
+ { href: "/openframe", label: "OpenFrame" },
39
+ { href: "/pricing", label: "Pricing" },
40
+ ],
41
+ },
41
42
  ],
42
43
  social: {
43
- github: "https://github.com/flamingo-run",
44
- twitter: "https://twitter.com/flamingorun"
45
- }
44
+ github: "https://github.com/flamingo",
45
+ twitter: "https://twitter.com/flamingo",
46
+ },
47
+ backgroundColor: "bg-ods-system-greys-black",
46
48
  }
47
49
 
48
- export function AppFooter() {
49
- return <Footer config={footerConfig} />
50
+ export default function Layout() {
51
+ return <Footer config={config} />
50
52
  }
51
- ```
52
-
53
- The component automatically handles responsive breakpoints, Suspense loading states, and integrates with the ODS design system for consistent theming across the platform.
53
+ ```
@@ -1,32 +1,42 @@
1
- <!-- source-hash: a61eab21a69ef6c9de591ad1e2b96e8b -->
2
- A responsive client-side component that displays a grid of icons with dynamic column sizing based on viewport width and smart adjacent icon filtering to prevent visual clustering.
1
+ <!-- source-hash: 0fcf2c17c123f63f9ecc989146d3d3d7 -->
2
+ Renders a responsive 2-row decorative icon grid that fills the viewport width, randomly distributing icons while avoiding adjacent duplicates. Used as a visual background/separator element.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ResponsiveIconsBlock**: Main component that renders a responsive 2-row grid of icons
7
- - **availableIcons**: Static array containing custom icons from stub file and Lucide React icons
8
- - **IconsBlockProps**: Interface defining optional `loading` prop for placeholder state control
9
- - **Dynamic grid generation**: Algorithm that prevents adjacent duplicate icons using position-based filtering
6
+ - **`ResponsiveIconsBlock`** — Main exported component that calculates column count from viewport width and renders a grid of icons
7
+ - **`IconsBlockProps`** — Interface with optional `loading` boolean to force the placeholder skeleton state
8
+ - **`availableIcons`** — Static array of 12 icon components (custom SVGs + Lucide icons) defined outside the component to prevent re-instantiation
9
+ - **Seeded pseudo-random layout** — Uses `Date.now()` as a stable seed per mount to deterministically assign icons without adjacent repeats
10
10
 
11
11
  ## Usage Example
12
12
 
13
13
  ```typescript
14
14
  import { ResponsiveIconsBlock } from './icons-block';
15
15
 
16
- function MyComponent() {
16
+ // Standard decorative separator
17
+ export default function PageHeader() {
17
18
  return (
18
- <div>
19
- {/* Default behavior - shows placeholder until grid loads */}
19
+ <>
20
+ <HeroSection />
20
21
  <ResponsiveIconsBlock />
21
-
22
- {/* Force loading state */}
23
- <ResponsiveIconsBlock loading={true} />
24
-
25
- {/* Responsive grid that adapts to screen width */}
26
- <ResponsiveIconsBlock loading={false} />
27
- </div>
22
+ </>
28
23
  );
29
24
  }
25
+
26
+ // Force loading skeleton (e.g. while parent data fetches)
27
+ export function LoadingLayout() {
28
+ return <ResponsiveIconsBlock loading={true} />;
29
+ }
30
30
  ```
31
31
 
32
- The component automatically calculates columns based on viewport width (56px per column + 4 buffer), uses deterministic pseudo-random placement to ensure consistent layouts across renders, and includes responsive sizing with Tailwind classes. Icons are displayed with grayscale styling and proper grid borders for a cohesive visual presentation.
32
+ ## Behavior Notes
33
+
34
+ | State | Renders |
35
+ |---|---|
36
+ | `loading={true}` | Pulsing `#2A2A2A` placeholder bar |
37
+ | Grid not yet computed | Same placeholder bar |
38
+ | Grid ready | Full icon grid |
39
+
40
+ - Column count recalculates on `window.resize` (`Math.ceil(width / 56) + 4`)
41
+ - All icons are forced to a muted gray (`grayscale + brightness` CSS filter) via an injected `<style>` block scoped to `.icons-block`
42
+ - Marked `aria-hidden="true"` throughout — purely decorative, no accessibility semantics
@@ -1,46 +1,55 @@
1
- <!-- source-hash: 42b352936943a6bb7818e0cd50fb78b7 -->
2
- A reusable React component that provides interactive image cropping functionality with drag/resize controls, rotation, zoom, and optional circular crop overlay for avatar creation.
1
+ <!-- source-hash: 31fb4dc0d85de6bd77dd4c3210fe1592 -->
2
+ Reusable React component for interactive image cropping, supporting drag/resize, zoom, rotation, circular crop mode, and PNG export via canvas.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ImageCropper**: Main component providing full cropping interface
7
- - **ImageCropperResult**: Interface for exported crop data (dataUrl + blob)
8
- - **ImageCropperProps**: Configuration interface supporting aspect ratios, circular mode, and size limits
9
- - **loadImage**: Helper function for loading images with CORS support
10
- - **exportCrop**: Internal method that handles canvas-based image export with automatic scaling
6
+ ### `ImageCropperResult`
7
+ Return type from a confirmed crop operation.
8
+
9
+ | Field | Type | Description |
10
+ |-------|------|-------------|
11
+ | `dataUrl` | `string` | Cropped PNG as a data URI |
12
+ | `blob` | `Blob` | Corresponding PNG Blob |
13
+
14
+ ### `ImageCropperProps`
15
+
16
+ | Prop | Type | Default | Description |
17
+ |------|------|---------|-------------|
18
+ | `src` | `string` | — | Source image URL or data URI |
19
+ | `onComplete` | `(result) => void` | — | Fired when user confirms crop |
20
+ | `onCancel` | `() => void` | — | Fired when user cancels |
21
+ | `aspectRatio` | `number` | free-form | Width/height ratio |
22
+ | `circular` | `boolean` | `false` | Circular overlay for avatars |
23
+ | `maxSizePx` | `number` | `512` | Max exported image dimension |
24
+ | `className` | `string` | — | Wrapper class override |
25
+
26
+ ### `ImageCropper`
27
+ Main component. Internally manages crop position, zoom (1–3×), and rotation (0–360°). On confirm, renders the crop to an off-screen `<canvas>`, scales it to `maxSizePx`, optionally clips to a circle, then resolves a PNG `Blob` + data URL.
28
+
29
+ **Keyboard shortcuts:** `Enter` confirms, `Escape` cancels.
11
30
 
12
31
  ## Usage Example
13
32
 
14
33
  ```typescript
15
- import { ImageCropper, ImageCropperResult } from './components/image-cropper'
16
-
17
- function AvatarUpload() {
18
- const [imageSrc, setImageSrc] = useState<string>('')
19
- const [showCropper, setShowCropper] = useState(false)
34
+ import { ImageCropper, ImageCropperResult } from "@/components/image-cropper"
20
35
 
36
+ function AvatarEditor({ imageUrl }: { imageUrl: string }) {
21
37
  const handleCropComplete = (result: ImageCropperResult) => {
22
- // Use the cropped image
23
- console.log('Cropped image:', result.dataUrl)
24
- // Upload the blob: result.blob
25
- setShowCropper(false)
38
+ // Upload the blob or set preview via dataUrl
39
+ console.log("PNG data URL:", result.dataUrl)
40
+ uploadAvatar(result.blob)
26
41
  }
27
42
 
28
43
  return (
29
- <>
30
- {showCropper && (
31
- <ImageCropper
32
- src={imageSrc}
33
- onComplete={handleCropComplete}
34
- onCancel={() => setShowCropper(false)}
35
- aspectRatio={1} // Square crop
36
- circular={true} // Avatar mode
37
- maxSizePx={256} // Limit output size
38
- className="max-w-md mx-auto"
39
- />
40
- )}
41
- </>
44
+ <ImageCropper
45
+ src={imageUrl}
46
+ aspectRatio={1}
47
+ circular
48
+ maxSizePx={256}
49
+ onComplete={handleCropComplete}
50
+ onCancel={() => console.log("Cancelled")}
51
+ className="max-w-lg"
52
+ />
42
53
  )
43
54
  }
44
- ```
45
-
46
- The component uses react-easy-crop for the cropping interface, shadcn/ui components for controls, and includes keyboard accessibility (Enter to apply, Esc to cancel). It automatically scales exported images to prevent oversized outputs while maintaining quality.
55
+ ```
@@ -1,48 +1,42 @@
1
- <!-- source-hash: 99cf8e9f151ea0bbc01cf6e6113ebfc4 -->
2
- Central export hub for the Flamingo UI component library, providing a unified entry point for all components across chat, navigation, platform features, and utility components.
1
+ <!-- source-hash: 6641c546041f6054d9c547ffd4f0f173 -->
2
+ Central barrel export file for the Flamingo/OpenFrame shared UI component library. Re-exports all components, hooks, and utilities from the component subdirectories and individual component modules, enabling single-import access across the platform.
3
3
 
4
4
  ## Key Components
5
5
 
6
- **Component Categories:**
7
- - `chat` - Chat interface components and functionality
8
- - `features` - Platform-specific feature components
9
- - `icons` - Icon system and components
10
- - `navigation` - Navigation and routing components
11
- - `platform` - Core platform UI elements
12
- - `ui` - Base UI component library
13
-
14
- **Individual Components:**
15
- - **Layout:** `fixed-layout-container`, `sliding-panel`, `footer`
16
- - **Data Display:** `vendor-display-button`, `pricing-display`, `metric-value`, `results-count`
17
- - **Media:** `media-carousel`, `image-cropper`, `hero-image-uploader`
18
- - **Interactive:** `filter-chip`, `pagination`, `contact-button`, `join-waitlist-cta`
19
- - **Loading States:** `dynamic-skeleton`, `content-loading-container`, `vendor-page-skeleton`
20
- - **Specialized:** `auth-stub`, `date-time-picker`, `onboarding`, `product-release`
6
+ The file organizes exports into logical groups:
7
+
8
+ | Group | Source |
9
+ |---|---|
10
+ | **Component Directories** | `chat`, `features`, `icons`, `navigation`, `platform`, `ui` |
11
+ | **Individual Components** | `announcement-bar`, `media-carousel`, `pricing-display`, `vendor-display-button`, etc. |
12
+ | **Shared Modules** | `onboarding`, `product-release`, `dev-section`, `roadmap`, `delivery`, `legal-document` |
13
+ | **Utilities** | `unified-filter-logic`, `unified-pagination`, `persistent-filter-controls` |
14
+ | **Auth & Loading** | `auth-stub`, `loading` |
15
+ | **Date/Time** | `date-time-picker` |
16
+
17
+ Notable named export: `DetailPageSkeleton` and its `DetailPageSkeletonProps` type are explicitly re-exported from `./shared/detail-page-skeleton`.
21
18
 
22
19
  ## Usage Example
23
20
 
24
21
  ```typescript
25
- // Import specific components
26
- import {
27
- VendorDisplayButton,
28
- MediaCarousel,
29
- FilterChip,
30
- PricingDisplay
31
- } from '@/components'
32
-
33
- // Or import component categories
34
- import { Button, Card } from '@/components' // from ui
35
- import { ChatInterface } from '@/components' // from chat
36
-
37
- function ProductPage() {
38
- return (
39
- <div>
40
- <MediaCarousel images={productImages} />
41
- <PricingDisplay price={pricing} />
42
- <VendorDisplayButton vendor={vendor} />
43
- </div>
44
- )
45
- }
22
+ // Instead of deep imports across many paths:
23
+ import { VendorIcon } from '@flamingo/components/vendor-icon'
24
+ import { Pagination } from '@flamingo/components/pagination'
25
+
26
+ // Import everything from the single barrel:
27
+ import {
28
+ VendorIcon,
29
+ Pagination,
30
+ DetailPageSkeleton,
31
+ type DetailPageSkeletonProps,
32
+ MspDisplay,
33
+ MediaCarousel,
34
+ UnifiedFilterLogic,
35
+ } from '@flamingo/components'
46
36
  ```
47
37
 
48
- The index file uses client-side directive and maintains organized exports to prevent circular dependencies while providing clean import paths for consuming applications.
38
+ ## Notes
39
+
40
+ - Marked `"use client"` — all exported components are React Client Components (Next.js App Router compatible).
41
+ - `PageContainer` is intentionally not re-exported here; it is already available via `./ui/page-container`.
42
+ - Duplicate `chat` export exists in the file; only one is resolved at runtime.
@@ -1,44 +1,40 @@
1
- <!-- source-hash: 2373499921af8da961467280b796e6bc -->
2
- A reusable input component with dark theme styling, error states, and responsive typography that matches the admin interface design system.
1
+ <!-- source-hash: 5d248f58ad416e0486c3eb74baeb29fc -->
2
+ A styled, accessible HTML input component built with `React.forwardRef`, supporting error states and full HTML input attribute passthrough.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **Input**: Forwardable React input component with custom styling
7
- - **InputProps**: Interface extending HTML input attributes with an `invalid` prop for error states
6
+ - **`Input`** — Forwarded-ref input component with ODS (OpenFrame Design System) theming, focus/disabled states, hover animations, and optional error styling
7
+ - **`InputProps`** — Extended interface adding an `invalid` boolean prop on top of standard `React.InputHTMLAttributes<HTMLInputElement>`
8
8
 
9
9
  ## Usage Example
10
10
 
11
11
  ```typescript
12
- import { Input } from './components/input'
13
-
14
- function LoginForm() {
15
- const [email, setEmail] = React.useState('')
16
- const [hasError, setHasError] = React.useState(false)
17
-
18
- return (
19
- <div className="space-y-4">
20
- <Input
21
- type="email"
22
- placeholder="Enter your email"
23
- value={email}
24
- onChange={(e) => setEmail(e.target.value)}
25
- />
26
-
27
- <Input
28
- type="password"
29
- placeholder="Enter password"
30
- invalid={hasError}
31
- className="mb-2"
32
- />
33
-
34
- <Input
35
- type="file"
36
- accept="image/*"
37
- className="file:mr-4 file:py-2 file:px-4"
38
- />
39
- </div>
40
- )
41
- }
12
+ import { Input } from "./input"
13
+
14
+ // Basic usage
15
+ <Input placeholder="Enter your email" type="email" />
16
+
17
+ // With error state
18
+ <Input
19
+ type="text"
20
+ invalid={true}
21
+ placeholder="Invalid field"
22
+ />
23
+
24
+ // With ref forwarding
25
+ const ref = React.useRef<HTMLInputElement>(null)
26
+ <Input ref={ref} type="text" />
27
+
28
+ // Disabled state
29
+ <Input disabled placeholder="Not editable" />
42
30
  ```
43
31
 
44
- The component features a dark theme (`#161616` background), yellow accent colors (`#FFC008`), responsive text sizing (14px mobile, 18px desktop), and smooth transitions. The `invalid` prop adds red error styling, while the component maintains accessibility with proper focus states and touch optimization.
32
+ ## Styling Highlights
33
+
34
+ | State | Applied Classes |
35
+ |-------|----------------|
36
+ | Default | `bg-ods-card border-ods-border text-ods-text-primary` |
37
+ | Hover | `hover:border-ods-accent/30` |
38
+ | Focus | `focus:border-ods-accent focus-visible:ring-ods-accent/20` |
39
+ | Disabled | `disabled:cursor-not-allowed disabled:bg-ods-bg` |
40
+ | Invalid | `border-red-500 focus-visible:ring-red-500` |
@@ -1,45 +1,56 @@
1
- <!-- source-hash: 7bc5ad978cbbb05e80afab56428fada8 -->
2
- A React component that renders a scrollable list of log entries with severity indicators, timestamps, and optional connecting lines between entries.
1
+ <!-- source-hash: a6c222ce8e1ab58308ac9ed1a6a4776e -->
2
+ A scrollable log viewer component that renders a list of `LogEntry` items with severity indicators, timestamps, and optional tool icons, connected by visual timeline connectors.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`LogsList`** - Main component that renders a scrollable container of log entries with customizable height and styling
7
- - **`LogCard`** - Individual log entry component displaying severity dot, title, timestamp, and optional tool icon
8
- - **`formatTimestamp`** - Utility function that formats Date objects or ISO strings into "YYYY/MM/DD,HH:MM" format
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `LogsList` | `React.ForwardRefExoticComponent` | Main container that renders a scrollable, bordered list of log entries |
9
+ | `LogCard` | `React.FC` (internal) | Individual log row with severity dot, title, formatted timestamp, and optional tool icon |
10
+ | `formatTimestamp` | `function` (internal) | Formats a `string \| Date` into `YYYY/MM/DD,HH:mm` display format |
11
+
12
+ ### `LogsList` Props (`LogsListProps`)
13
+
14
+ | Prop | Default | Description |
15
+ |------|---------|-------------|
16
+ | `logs` | — | Array of `LogEntry` items to display |
17
+ | `maxHeight` | `'400px'` | Container max height; use `'100%'` for full-height flex layout |
18
+ | `showConnector` | `true` | Renders vertical timeline connector lines between entries |
19
+ | `onLogClick` | — | Callback fired with the clicked `LogEntry` |
20
+ | `loading` | `false` | Shows a loading state placeholder |
21
+ | `emptyMessage` | `'No logs to display'` | Message shown when `logs` is empty |
22
+ | `className` | — | Additional Tailwind classes for the container |
9
23
 
10
24
  ## Usage Example
11
25
 
12
26
  ```typescript
13
- import { LogsList } from './logs-list'
14
- import { LogEntry } from '../types/logs.types'
27
+ import { LogsList } from './components/logs-list'
28
+ import { LogEntry } from './types/logs.types'
15
29
 
16
30
  const logs: LogEntry[] = [
17
31
  {
18
32
  id: '1',
19
- title: 'Application started successfully',
33
+ title: 'Agent task completed successfully',
20
34
  severity: 'info',
21
35
  timestamp: new Date(),
22
- toolType: 'nodejs'
36
+ toolType: 'bash',
23
37
  },
24
38
  {
25
- id: '2',
26
- title: 'Database connection failed',
27
- severity: 'error',
28
- timestamp: '2024-01-15T10:30:00Z'
29
- }
39
+ id: '2',
40
+ title: 'Connection timeout detected',
41
+ severity: 'warning',
42
+ timestamp: '2024-01-15T10:30:00Z',
43
+ },
30
44
  ]
31
45
 
32
- function LogsViewer() {
46
+ export default function LogsPanel() {
33
47
  return (
34
48
  <LogsList
35
49
  logs={logs}
36
50
  maxHeight="500px"
37
51
  showConnector={true}
38
- onLogClick={(log) => console.log('Clicked:', log.title)}
39
- emptyMessage="No logs available"
52
+ onLogClick={(log) => console.log('Selected:', log.id)}
40
53
  />
41
54
  )
42
55
  }
43
- ```
44
-
45
- The component supports loading states, empty states, keyboard navigation, and visual connectors between log entries for a timeline-like appearance.
56
+ ```
@@ -1,49 +1,48 @@
1
- <!-- source-hash: ff9ab9dccc65286acc64c16442ec5b60 -->
2
- A React carousel component that displays media items (images, videos, YouTube embeds) with navigation controls, touch/swipe support, and thumbnail preview.
1
+ <!-- source-hash: 3e808df6d9836b82a787de725d9821af -->
2
+ A responsive, accessible media carousel component supporting images, videos (MP4/HLS via MuxPlayer), and YouTube embeds with thumbnail navigation, swipe gestures, and keyboard controls.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **MediaCarousel**: Main carousel component with navigation and media display
7
- - **CarouselYouTubeEmbed**: Specialized YouTube embed with click-to-play functionality
8
- - **Navigation Icons**: SVG components for carousel controls (ChevronLeft, ChevronRight, Play)
9
- - **Media Renderers**: Separate functions for rendering images, videos, and YouTube embeds
10
- - **Touch/Swipe Handler**: Gesture-based navigation for mobile devices
6
+ ### `MediaCarousel` (default export)
7
+ A memoized React component with the following props:
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `media` | `MediaItem[]` | — | Array of media items to display |
12
+ | `className` | `string` | — | Additional CSS classes |
13
+ | `aspectRatio` | `'16/9' \| '4/3' \| '3/2' \| '1/1'` | `'16/9'` | Container aspect ratio |
14
+ | `showThumbnails` | `boolean` | `true` | Toggle thumbnail strip |
15
+ | `autoPlay` | `boolean` | `false` | Auto-advance slides |
16
+ | `objectFit` | `'contain' \| 'cover'` | `'contain'` | Image fit behavior |
17
+
18
+ ### Internal Renderers
19
+ - `renderImage` — renders images with lazy loading and error fallback
20
+ - `renderVideo` — delegates to `<Video>` (MuxPlayer facade) for MP4/HLS
21
+ - `renderYouTubeEmbed` — delegates to `<Video>` with `kind="youtube"` for lite-youtube embed
22
+ - `renderThumbnail` — clickable thumbnail with active indicator and video play overlay
11
23
 
12
24
  ## Usage Example
13
25
 
14
26
  ```typescript
15
27
  import { MediaCarousel } from './media-carousel';
28
+ import { MediaItem } from '../utils/media-carousel-utils-stub';
16
29
 
17
- const mediaItems = [
18
- {
19
- type: 'image' as const,
20
- src: '/images/photo1.jpg',
21
- alt: 'Sample image'
22
- },
23
- {
24
- type: 'video' as const,
25
- src: '/videos/demo.mp4',
26
- poster: '/images/video-thumb.jpg',
27
- alt: 'Demo video'
28
- },
29
- {
30
- type: 'youtube' as const,
31
- src: 'https://youtube.com/watch?v=dQw4w9WgXcQ',
32
- alt: 'YouTube video'
33
- }
30
+ const items: MediaItem[] = [
31
+ { type: 'image', src: 'https://example.com/photo.jpg', alt: 'Photo' },
32
+ { type: 'youtube', src: 'https://youtube.com/watch?v=dQw4w9WgXcQ', alt: 'Demo' },
33
+ { type: 'video', src: 'https://example.com/clip.mp4', poster: 'https://example.com/thumb.jpg' },
34
34
  ];
35
35
 
36
- function App() {
37
- return (
38
- <MediaCarousel
39
- media={mediaItems}
40
- aspectRatio="16/9"
41
- showThumbnails={true}
42
- objectFit="contain"
43
- className="max-w-4xl mx-auto"
44
- />
45
- );
46
- }
36
+ <MediaCarousel
37
+ media={items}
38
+ aspectRatio="16/9"
39
+ showThumbnails={true}
40
+ objectFit="contain"
41
+ />
47
42
  ```
48
43
 
49
- The component automatically handles different media types, provides keyboard navigation (arrow keys), supports touch gestures for mobile, and includes error handling for failed media loads. YouTube videos use a click-to-activate pattern for better performance.
44
+ ## Interaction Support
45
+ - **Keyboard**: `←` / `→` arrow keys when carousel is focused
46
+ - **Touch/Swipe**: 50px minimum swipe distance triggers slide change
47
+ - **Hover**: Navigation arrows reveal on hover; hidden for single-item carousels
48
+ - **Accessibility**: `role="region"` and `aria-label` applied when multiple items exist