@flamingo-stack/openframe-frontend-core 0.0.213 → 0.0.214-snapshot.20260528192313

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 (746) hide show
  1. package/dist/{chunk-35XIT2CF.cjs → chunk-2G3NXF6J.cjs} +17 -17
  2. package/dist/{chunk-35XIT2CF.cjs.map → chunk-2G3NXF6J.cjs.map} +1 -1
  3. package/dist/{chunk-IK2X5YJU.js → chunk-7PCP7YQR.js} +2 -2
  4. package/dist/{chunk-ZDF6F7ED.cjs → chunk-D4MNFY67.cjs} +4 -3
  5. package/dist/chunk-D4MNFY67.cjs.map +1 -0
  6. package/dist/{chunk-OTKJASSX.cjs → chunk-NGFP4RVL.cjs} +24 -24
  7. package/dist/{chunk-OTKJASSX.cjs.map → chunk-NGFP4RVL.cjs.map} +1 -1
  8. package/dist/{chunk-3JWIJJ44.js → chunk-R6MLPU4A.js} +2 -2
  9. package/dist/{chunk-ZTJVRSN5.js → chunk-WQZP3JIZ.js} +4 -3
  10. package/dist/chunk-WQZP3JIZ.js.map +1 -0
  11. package/dist/components/chat/index.cjs +2 -2
  12. package/dist/components/chat/index.js +1 -1
  13. package/dist/components/contact/index.cjs +3 -3
  14. package/dist/components/contact/index.js +2 -2
  15. package/dist/components/features/index.cjs +2 -2
  16. package/dist/components/features/index.js +1 -1
  17. package/dist/components/index.cjs +49 -49
  18. package/dist/components/index.js +2 -2
  19. package/dist/components/navigation/index.cjs +2 -2
  20. package/dist/components/navigation/index.js +1 -1
  21. package/dist/components/tickets/index.cjs +61 -61
  22. package/dist/components/tickets/index.js +3 -3
  23. package/dist/components/ui/index.cjs +2 -2
  24. package/dist/components/ui/index.js +1 -1
  25. package/dist/index.cjs +2 -2
  26. package/dist/index.js +1 -1
  27. package/package.json +1 -1
  28. package/src/.index.md +36 -34
  29. package/src/components/.alert-dialog.md +27 -23
  30. package/src/components/.announcement-bar.md +26 -21
  31. package/src/components/.breadcrumb.md +19 -15
  32. package/src/components/.calendar.md +24 -19
  33. package/src/components/.categories-cart.md +29 -24
  34. package/src/components/.checkbox.md +23 -25
  35. package/src/components/.chevron-button.md +37 -32
  36. package/src/components/.comment-card.md +32 -62
  37. package/src/components/.dialog.md +26 -26
  38. package/src/components/.dynamic-skeleton.md +54 -57
  39. package/src/components/.empty-state.md +42 -51
  40. package/src/components/.faq-accordion.md +27 -21
  41. package/src/components/.filter-chip.md +41 -24
  42. package/src/components/.flamingo-logo.md +20 -23
  43. package/src/components/.footer-waitlist-button.md +29 -22
  44. package/src/components/.footer.md +32 -32
  45. package/src/components/.icons-block.md +27 -17
  46. package/src/components/.image-cropper.md +41 -32
  47. package/src/components/.index.md +33 -39
  48. package/src/components/.input.md +31 -35
  49. package/src/components/.logs-list.md +31 -20
  50. package/src/components/.media-carousel.md +35 -36
  51. package/src/components/.open-source-features.md +33 -16
  52. package/src/components/.pagination.md +52 -51
  53. package/src/components/.provider-button.md +21 -23
  54. package/src/components/.select.md +31 -20
  55. package/src/components/.sidebar.md +34 -24
  56. package/src/components/.smooth-accordion.md +29 -24
  57. package/src/components/.social-icon-row.md +36 -32
  58. package/src/components/.textarea.md +25 -31
  59. package/src/components/.tool-icon.md +24 -26
  60. package/src/components/.unified-filter-logic.md +37 -30
  61. package/src/components/.unified-pagination.md +23 -22
  62. package/src/components/.user-summary-stub.md +38 -22
  63. package/src/components/.vendor-display-button.md +25 -25
  64. package/src/components/.vendor-icon.md +33 -25
  65. package/src/components/.why-it-matters.md +28 -25
  66. package/src/components/chat/.approval-batch-message.md +51 -0
  67. package/src/components/chat/.approval-request-message.md +35 -34
  68. package/src/components/chat/.chat-attachment-bar.md +64 -0
  69. package/src/components/chat/.chat-container.md +36 -18
  70. package/src/components/chat/.chat-input.md +37 -20
  71. package/src/components/chat/.chat-message-enhanced.md +30 -49
  72. package/src/components/chat/.chat-message-list.md +45 -32
  73. package/src/components/chat/.chat-message-skeleton.md +26 -22
  74. package/src/components/chat/.chat-panel-context.md +52 -0
  75. package/src/components/chat/.chat-ref.types.md +42 -0
  76. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  77. package/src/components/chat/.chat-sidebar.md +31 -26
  78. package/src/components/chat/.chat-ticket-list.md +39 -0
  79. package/src/components/chat/.context-compaction-display.md +36 -0
  80. package/src/components/chat/.cycling-phrase.md +52 -0
  81. package/src/components/chat/.embeddable-chat.md +48 -0
  82. package/src/components/chat/.expand-chevron.md +24 -0
  83. package/src/components/chat/.index.md +31 -35
  84. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  85. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  86. package/src/components/chat/.model-display.md +32 -30
  87. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  88. package/src/components/chat/.remark-card-links.md +38 -0
  89. package/src/components/chat/.slash-command-suggestions.md +47 -0
  90. package/src/components/chat/.source-action-button.md +48 -0
  91. package/src/components/chat/.thinking-display.md +42 -0
  92. package/src/components/chat/.tool-call-blocks.md +45 -0
  93. package/src/components/chat/.tool-execution-display.md +44 -36
  94. package/src/components/chat/chat-container.tsx +1 -1
  95. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  96. package/src/components/chat/entity-cards/.block-card.md +47 -0
  97. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  98. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  99. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  100. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  101. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  102. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  103. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  104. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  105. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  106. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  107. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  108. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  109. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  110. package/src/components/chat/entity-cards/.index.md +66 -0
  111. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  112. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  113. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  114. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  115. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  116. package/src/components/chat/entity-cards/.program-card.md +59 -0
  117. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  118. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  119. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  120. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  121. package/src/components/chat/hooks/.index.md +36 -21
  122. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  123. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  124. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  125. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  126. package/src/components/chat/hooks/.use-chat.md +58 -0
  127. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  128. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  129. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  130. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  131. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  132. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  133. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  134. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  135. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  136. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  137. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  138. package/src/components/chat/hooks/.use-sse.md +60 -0
  139. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  140. package/src/components/chat/types/.api.types.md +52 -38
  141. package/src/components/chat/types/.chat.types.md +43 -34
  142. package/src/components/chat/types/.component.types.md +47 -48
  143. package/src/components/chat/types/.index.md +20 -27
  144. package/src/components/chat/types/.message.types.md +58 -48
  145. package/src/components/chat/types/.network.types.md +57 -31
  146. package/src/components/chat/types/.processing.types.md +49 -31
  147. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  148. package/src/components/chat/types/entities/.blog.md +43 -0
  149. package/src/components/chat/types/entities/.case-study.md +26 -0
  150. package/src/components/chat/types/entities/.content-ref.md +41 -0
  151. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  152. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  153. package/src/components/chat/types/entities/.github-activity.md +43 -0
  154. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  155. package/src/components/chat/types/entities/.index.md +42 -0
  156. package/src/components/chat/types/entities/.investor-update.md +45 -0
  157. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  158. package/src/components/chat/types/entities/.program-types.md +57 -0
  159. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  160. package/src/components/chat/types/entities/.slack-message.md +35 -0
  161. package/src/components/chat/utils/.agent-status-message.md +45 -0
  162. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  163. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  164. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  165. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  166. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  167. package/src/components/chat/utils/.chip-action-class.md +34 -0
  168. package/src/components/chat/utils/.chip-styles.md +46 -0
  169. package/src/components/chat/utils/.chunk-parser.md +38 -28
  170. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  171. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  172. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  173. package/src/components/chat/utils/.external-app-urls.md +29 -0
  174. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  175. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  176. package/src/components/chat/utils/.icon-registry.md +46 -0
  177. package/src/components/chat/utils/.index.md +37 -32
  178. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  179. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  180. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  181. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  182. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  183. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  184. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  185. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  186. package/src/components/chat/utils/.source-icons.md +35 -0
  187. package/src/components/chat/utils/.source-row-cta.md +54 -0
  188. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  189. package/src/components/contact/.contact-form.md +43 -0
  190. package/src/components/contact/.index.md +27 -0
  191. package/src/components/features/.array-entry-manager.md +36 -45
  192. package/src/components/features/.changelog-manager.md +47 -21
  193. package/src/components/features/.changelog-sections-manager.md +21 -26
  194. package/src/components/features/.command-box.md +31 -28
  195. package/src/components/features/.entity-summary-editor.md +46 -0
  196. package/src/components/features/.entity-video-section.md +51 -0
  197. package/src/components/features/.figma-prototype-viewer.md +48 -29
  198. package/src/components/features/.filters-dropdown.md +33 -46
  199. package/src/components/features/.highlight-config-section.md +42 -0
  200. package/src/components/features/.highlight-generation-section.md +46 -0
  201. package/src/components/features/.highlight-video-combined-section.md +47 -0
  202. package/src/components/features/.highlight-video-preview.md +44 -0
  203. package/src/components/features/.highlight-video-section.md +47 -0
  204. package/src/components/features/.index.md +40 -66
  205. package/src/components/features/.media-gallery-manager.md +48 -38
  206. package/src/components/features/.more-about-button.md +22 -19
  207. package/src/components/features/.og-editor-preview.md +40 -36
  208. package/src/components/features/.parallax-image-showcase.md +33 -26
  209. package/src/components/features/.paths-display.md +42 -43
  210. package/src/components/features/.platform-badge.md +37 -36
  211. package/src/components/features/.platform-filter.md +23 -16
  212. package/src/components/features/.policy-configuration-panel.md +48 -56
  213. package/src/components/features/.provider-button.md +33 -36
  214. package/src/components/features/.push-button-selector.md +40 -29
  215. package/src/components/features/.release-media-manager.md +46 -31
  216. package/src/components/features/.section-selector.md +26 -31
  217. package/src/components/features/.select-button.md +35 -25
  218. package/src/components/features/.seo-editor-preview.md +41 -44
  219. package/src/components/features/.social-links-manager.md +25 -19
  220. package/src/components/features/.start-with-openframe-button.md +37 -29
  221. package/src/components/features/.status-filter-component.md +36 -20
  222. package/src/components/features/.tags-selector.md +40 -24
  223. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  224. package/src/components/features/.transcribe-summarize-section.md +48 -0
  225. package/src/components/features/.transcript-summary-editor.md +53 -0
  226. package/src/components/features/.video-bites-display.md +46 -0
  227. package/src/components/features/.video-clips-section.md +41 -0
  228. package/src/components/features/.video-ratio-tabs.md +56 -0
  229. package/src/components/features/.video-source-selector.md +60 -0
  230. package/src/components/features/.video.md +44 -0
  231. package/src/components/features/.waitlist-form.md +60 -0
  232. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  233. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  234. package/src/components/features/board/.board-column-header.md +38 -0
  235. package/src/components/features/board/.board-column.md +43 -0
  236. package/src/components/features/board/.board.md +51 -0
  237. package/src/components/features/board/.color-utils.md +26 -0
  238. package/src/components/features/board/.index.md +56 -0
  239. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  240. package/src/components/features/board/.ticket-card.md +47 -0
  241. package/src/components/features/board/.types.md +45 -0
  242. package/src/components/features/board/.use-board-collapse.md +34 -0
  243. package/src/components/features/notifications/.index.md +57 -0
  244. package/src/components/features/notifications/.notification-drawer.md +34 -0
  245. package/src/components/features/notifications/.notification-tile.md +39 -0
  246. package/src/components/features/notifications/.notifications-context.md +73 -0
  247. package/src/components/features/notifications/.types.md +45 -0
  248. package/src/components/icons/.about-icon.md +20 -28
  249. package/src/components/icons/.ai-robot-icon.md +15 -17
  250. package/src/components/icons/.bash-icon.md +16 -23
  251. package/src/components/icons/.buildings-icon.md +10 -24
  252. package/src/components/icons/.capterra-icon.md +30 -26
  253. package/src/components/icons/.carta-icon.md +29 -0
  254. package/src/components/icons/.clickup-icon.md +26 -0
  255. package/src/components/icons/.cmd-icon.md +15 -22
  256. package/src/components/icons/.coins-icon.md +17 -25
  257. package/src/components/icons/.community-hub-icon.md +19 -25
  258. package/src/components/icons/.community-icon.md +24 -21
  259. package/src/components/icons/.compare-icon.md +32 -19
  260. package/src/components/icons/.copy-icon.md +29 -15
  261. package/src/components/icons/.custom-external-link-icon.md +19 -17
  262. package/src/components/icons/.custom-fork-icon.md +32 -21
  263. package/src/components/icons/.custom-license-icon.md +29 -25
  264. package/src/components/icons/.custom-star-icon.md +20 -28
  265. package/src/components/icons/.custom-time-icon.md +21 -22
  266. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  267. package/src/components/icons/.dashboard-icon.md +13 -18
  268. package/src/components/icons/.deno-icon.md +16 -23
  269. package/src/components/icons/.donut-icon.md +12 -23
  270. package/src/components/icons/.double-chevron-icon.md +28 -36
  271. package/src/components/icons/.elestio-logo.md +13 -23
  272. package/src/components/icons/.empty-vendor-icon.md +16 -18
  273. package/src/components/icons/.explore-categories-icon.md +18 -29
  274. package/src/components/icons/.eye-icon.md +16 -26
  275. package/src/components/icons/.facebook-icon.md +9 -20
  276. package/src/components/icons/.figma-icon.md +8 -17
  277. package/src/components/icons/.filter-icon.md +15 -17
  278. package/src/components/icons/.flamingo-logo.md +28 -27
  279. package/src/components/icons/.folder-shield-icon.md +28 -19
  280. package/src/components/icons/.g2-icon.md +22 -21
  281. package/src/components/icons/.getapp-icon.md +25 -21
  282. package/src/components/icons/.github-icon.md +13 -25
  283. package/src/components/icons/.globe-icon.md +14 -19
  284. package/src/components/icons/.google-gemini-icon.md +16 -19
  285. package/src/components/icons/.google-logo.md +15 -21
  286. package/src/components/icons/.grid-view-icon.md +30 -19
  287. package/src/components/icons/.hamburger-icon.md +22 -20
  288. package/src/components/icons/.hand-dollar-icon.md +24 -34
  289. package/src/components/icons/.hotel-icon.md +27 -21
  290. package/src/components/icons/.icon-utils.md +28 -29
  291. package/src/components/icons/.image-icon.md +15 -22
  292. package/src/components/icons/.index.md +25 -28
  293. package/src/components/icons/.info-circle-icon.md +29 -30
  294. package/src/components/icons/.instagram-icon.md +10 -24
  295. package/src/components/icons/.jump-in-icon.md +18 -18
  296. package/src/components/icons/.linux-icon.md +18 -18
  297. package/src/components/icons/.log-out-icon.md +15 -23
  298. package/src/components/icons/.logs-icon.md +14 -23
  299. package/src/components/icons/.margin-crisis-icon.md +21 -20
  300. package/src/components/icons/.menu-icon.md +18 -19
  301. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  302. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  303. package/src/components/icons/.mlg-logo.md +18 -16
  304. package/src/components/icons/.moon-icon.md +32 -22
  305. package/src/components/icons/.ms-icon.md +30 -19
  306. package/src/components/icons/.nushell-icon.md +7 -21
  307. package/src/components/icons/.open-source-icon.md +19 -23
  308. package/src/components/icons/.openai-icon.md +9 -24
  309. package/src/components/icons/.openframe-ai-icons.md +25 -26
  310. package/src/components/icons/.openframe-logo.md +28 -22
  311. package/src/components/icons/.openframe-text.md +24 -27
  312. package/src/components/icons/.openmsp-logo.md +26 -23
  313. package/src/components/icons/.pilot-icon.md +23 -0
  314. package/src/components/icons/.powershell-icon.md +17 -22
  315. package/src/components/icons/.python-icon.md +16 -23
  316. package/src/components/icons/.queries-icon.md +13 -21
  317. package/src/components/icons/.reddit-icon.md +28 -24
  318. package/src/components/icons/.remote-control-icon.md +13 -17
  319. package/src/components/icons/.script-icon.md +27 -19
  320. package/src/components/icons/.search-icon.md +21 -21
  321. package/src/components/icons/.send-icon.md +14 -16
  322. package/src/components/icons/.settings-icon.md +30 -19
  323. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  324. package/src/components/icons/.shell-icon.md +15 -19
  325. package/src/components/icons/.shield-check-icon.md +18 -31
  326. package/src/components/icons/.shield-key-icon.md +25 -25
  327. package/src/components/icons/.shield-lock-icon.md +8 -18
  328. package/src/components/icons/.slack-icon.md +28 -32
  329. package/src/components/icons/.sparkles-icon.md +18 -23
  330. package/src/components/icons/.sso-configuration-icon.md +29 -16
  331. package/src/components/icons/.sun-icon.md +20 -18
  332. package/src/components/icons/.table-view-icon.md +17 -19
  333. package/src/components/icons/.telegram-icon.md +8 -22
  334. package/src/components/icons/.thumbs-down-icon.md +10 -19
  335. package/src/components/icons/.thumbs-up-icon.md +8 -17
  336. package/src/components/icons/.tool-directory-icons.md +24 -28
  337. package/src/components/icons/.trustpilot-icon.md +25 -22
  338. package/src/components/icons/.user-icon.md +26 -28
  339. package/src/components/icons/.users-group-icon.md +28 -24
  340. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  341. package/src/components/icons/.vendors-icon.md +18 -22
  342. package/src/components/icons/.whatsapp-icon.md +30 -14
  343. package/src/components/icons/.x-icon.md +18 -23
  344. package/src/components/icons/.x-logo.md +13 -38
  345. package/src/components/icons/.youtube-icon.md +8 -19
  346. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  347. package/src/components/icons-v2-generated/.index.md +52 -0
  348. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  349. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  350. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  351. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  352. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  353. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  354. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  355. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  356. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  357. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  358. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  359. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  360. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  361. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  362. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  363. package/src/components/icons-v2-generated/design/.index.md +39 -0
  364. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  365. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  366. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  367. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  368. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  369. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  370. package/src/components/icons-v2-generated/health/.index.md +40 -0
  371. package/src/components/icons-v2-generated/household/.index.md +45 -0
  372. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  373. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  374. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  375. package/src/components/icons-v2-generated/number/.index.md +41 -0
  376. package/src/components/icons-v2-generated/school/.index.md +37 -0
  377. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  378. package/src/components/icons-v2-generated/security/.index.md +39 -0
  379. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  380. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  381. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  382. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  383. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  384. package/src/components/icons-v2-generated/users/.index.md +45 -0
  385. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  386. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  387. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  388. package/src/components/layout/.article-detail-layout.md +43 -0
  389. package/src/components/layout/.back-button.md +40 -0
  390. package/src/components/layout/.list-page-layout.md +35 -26
  391. package/src/components/layout/.page-container.md +27 -38
  392. package/src/components/layout/.page-layout.md +50 -0
  393. package/src/components/layout/.title-block.md +42 -0
  394. package/src/components/loading/.card-skeleton.md +38 -29
  395. package/src/components/loading/.device-card-skeleton.md +29 -25
  396. package/src/components/loading/.index.md +39 -46
  397. package/src/components/loading/.margin-report-skeleton.md +45 -34
  398. package/src/components/loading/.organization-card-skeleton.md +39 -44
  399. package/src/components/loading/.page-layout-skeleton.md +34 -45
  400. package/src/components/loading/.unified-skeleton.md +62 -36
  401. package/src/components/navigation/.app-header.md +40 -29
  402. package/src/components/navigation/.app-layout.md +25 -26
  403. package/src/components/navigation/.header-global-search.md +34 -37
  404. package/src/components/navigation/.header-organization-filter.md +23 -22
  405. package/src/components/navigation/.header.md +31 -35
  406. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  407. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  408. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  409. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  410. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  411. package/src/components/navigation/.navigation-sidebar.md +33 -34
  412. package/src/components/navigation/.sliding-sidebar.md +52 -41
  413. package/src/components/navigation/.sticky-section-nav.md +56 -48
  414. package/src/components/platform/.ScriptArguments.md +39 -25
  415. package/src/components/platform/.ScriptInfoSection.md +30 -26
  416. package/src/components/platform/.ShellTypeBadge.md +18 -13
  417. package/src/components/platform/.SoftwareInfo.md +23 -27
  418. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  419. package/src/components/platform/.ToolBadge.md +25 -26
  420. package/src/components/platform/ShellTypeBadge.tsx +2 -2
  421. package/src/components/providers/.theme-provider.md +52 -0
  422. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  423. package/src/components/shared/delivery/.delivery-row.md +41 -0
  424. package/src/components/shared/delivery/.delivery-table.md +41 -0
  425. package/src/components/shared/delivery/.index.md +38 -0
  426. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  427. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  428. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  429. package/src/components/shared/dev-section/.index.md +38 -0
  430. package/src/components/shared/legal-document/.index.md +40 -0
  431. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  432. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  433. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  434. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  435. package/src/components/shared/product-release/.index.md +28 -30
  436. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  437. package/src/components/shared/product-release/.product-release-card.md +45 -27
  438. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  439. package/src/components/shared/roadmap/.index.md +37 -0
  440. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  441. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  442. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  443. package/src/components/tickets/.help-center-card.md +51 -0
  444. package/src/components/tickets/.help-center-create-form.md +38 -0
  445. package/src/components/tickets/.help-center-list.md +40 -0
  446. package/src/components/tickets/.index.md +65 -0
  447. package/src/components/tickets/.ticket-center.md +51 -0
  448. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  449. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  450. package/src/components/tickets/.ticket-open-form.md +50 -0
  451. package/src/components/tickets/.ticket-row.md +30 -0
  452. package/src/components/tickets/.types.md +57 -0
  453. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  454. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  455. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  456. package/src/components/ui/.actions-menu.md +66 -41
  457. package/src/components/ui/.alert-dialog.md +29 -26
  458. package/src/components/ui/.allowed-domains-input.md +29 -21
  459. package/src/components/ui/.assignee-dropdown.md +45 -0
  460. package/src/components/ui/.autocomplete.md +47 -41
  461. package/src/components/ui/.benefit-card.md +51 -36
  462. package/src/components/ui/.brand-association-card.md +30 -27
  463. package/src/components/ui/.breadcrumb.md +17 -15
  464. package/src/components/ui/.checkbox-block.md +39 -35
  465. package/src/components/ui/.checkbox-with-description.md +23 -16
  466. package/src/components/ui/.checkbox.md +31 -23
  467. package/src/components/ui/.circular-progress.md +49 -19
  468. package/src/components/ui/.content-loader.md +32 -20
  469. package/src/components/ui/.cursor-pagination.md +41 -52
  470. package/src/components/ui/.dashboard-info-card.md +33 -26
  471. package/src/components/ui/.date-picker.md +27 -25
  472. package/src/components/ui/.device-card-compact.md +28 -29
  473. package/src/components/ui/.device-card.md +27 -27
  474. package/src/components/ui/.dialog.md +25 -16
  475. package/src/components/ui/.drawer.md +86 -0
  476. package/src/components/ui/.dropdown-button.md +45 -0
  477. package/src/components/ui/.entity-image.md +46 -0
  478. package/src/components/ui/.error-state.md +41 -28
  479. package/src/components/ui/.feature-card.md +35 -31
  480. package/src/components/ui/.feature-list.md +48 -0
  481. package/src/components/ui/.field-wrapper.md +47 -0
  482. package/src/components/ui/.file-upload.md +42 -0
  483. package/src/components/ui/.filter-checkbox-item.md +43 -0
  484. package/src/components/ui/.filter-list.md +57 -0
  485. package/src/components/ui/.filter-modal.md +59 -0
  486. package/src/components/ui/.floating-tooltip.md +43 -26
  487. package/src/components/ui/.hidden-tags-popup.md +49 -0
  488. package/src/components/ui/.hover-dropdown.md +54 -0
  489. package/src/components/ui/.image-gallery-modal.md +41 -34
  490. package/src/components/ui/.image-uploader.md +53 -0
  491. package/src/components/ui/.index.md +40 -34
  492. package/src/components/ui/.info-card.md +31 -31
  493. package/src/components/ui/.info-row.md +31 -27
  494. package/src/components/ui/.input-trigger.md +44 -0
  495. package/src/components/ui/.input.md +37 -31
  496. package/src/components/ui/.markdown-editor.md +57 -0
  497. package/src/components/ui/.modal-v2.md +51 -0
  498. package/src/components/ui/.modal.md +32 -31
  499. package/src/components/ui/.more-actions-menu.md +45 -38
  500. package/src/components/ui/.organization-card.md +31 -37
  501. package/src/components/ui/.page-actions.md +44 -54
  502. package/src/components/ui/.phone-input.md +54 -0
  503. package/src/components/ui/.progress-bar.md +35 -27
  504. package/src/components/ui/.radio-group.md +39 -27
  505. package/src/components/ui/.release-changelog-section.md +34 -34
  506. package/src/components/ui/.search-input.md +48 -0
  507. package/src/components/ui/.select.md +54 -34
  508. package/src/components/ui/.service-card.md +42 -40
  509. package/src/components/ui/.sheet.md +27 -18
  510. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  511. package/src/components/ui/.sort-column-item.md +42 -0
  512. package/src/components/ui/.square-avatar.md +34 -24
  513. package/src/components/ui/.status-badge.md +26 -38
  514. package/src/components/ui/.switch.md +22 -35
  515. package/src/components/ui/.tab-navigation.md +56 -53
  516. package/src/components/ui/.tab-selector.md +40 -0
  517. package/src/components/ui/.tag-key-value-filter.md +56 -0
  518. package/src/components/ui/.tag-search-input.md +53 -0
  519. package/src/components/ui/.tag.md +49 -31
  520. package/src/components/ui/.tags-manager.md +60 -0
  521. package/src/components/ui/.textarea.md +44 -34
  522. package/src/components/ui/.ticket-attachments-list.md +45 -0
  523. package/src/components/ui/.ticket-detail-section.md +29 -0
  524. package/src/components/ui/.ticket-info-section.md +56 -0
  525. package/src/components/ui/.ticket-note-card.md +53 -0
  526. package/src/components/ui/.ticket-notes-section.md +54 -0
  527. package/src/components/ui/.ticket-status-tag.md +49 -0
  528. package/src/components/ui/.title-content-block.md +25 -26
  529. package/src/components/ui/.toaster.md +40 -28
  530. package/src/components/ui/.tooltip.md +22 -11
  531. package/src/components/ui/.truncate-text.md +39 -0
  532. package/src/components/ui/button/.button-styles.md +35 -0
  533. package/src/components/ui/button/.button.md +53 -0
  534. package/src/components/ui/button/.split-button.md +48 -0
  535. package/src/components/ui/data-table/.data-table-body.md +48 -0
  536. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  537. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  538. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  539. package/src/components/ui/data-table/.data-table-header.md +55 -0
  540. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  541. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  542. package/src/components/ui/data-table/.data-table-row.md +47 -0
  543. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  544. package/src/components/ui/data-table/.data-table.md +47 -0
  545. package/src/components/ui/data-table/.index.md +55 -0
  546. package/src/components/ui/data-table/.types.md +54 -0
  547. package/src/components/ui/data-table/.use-data-table.md +45 -0
  548. package/src/components/ui/data-table/.utils.md +38 -0
  549. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  550. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  551. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  552. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  553. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  554. package/src/components/ui/file-manager/.file-manager.md +35 -31
  555. package/src/components/ui/query-report-table/.index.md +43 -0
  556. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  557. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  558. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  559. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  560. package/src/components/ui/query-report-table/.types.md +41 -0
  561. package/src/components/ui/query-report-table/.utils.md +35 -0
  562. package/src/components/ui/table/.index.md +27 -48
  563. package/src/components/ui/table/.table-cell.md +18 -27
  564. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  565. package/src/components/ui/table/.table-description-cell.md +24 -14
  566. package/src/components/ui/table/.table-empty-state.md +21 -22
  567. package/src/components/ui/table/.table-header.md +25 -40
  568. package/src/components/ui/table/.table-row.md +22 -40
  569. package/src/components/ui/table/.table-skeleton.md +33 -26
  570. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  571. package/src/components/ui/table/.table.md +39 -59
  572. package/src/components/ui/table/.types.md +44 -36
  573. package/src/components/ui/table/.utils.md +18 -20
  574. package/src/contexts/.chat-runtime-context.md +54 -0
  575. package/src/contexts/.endpoints-runtime-context.md +58 -0
  576. package/src/contexts/.index.md +53 -0
  577. package/src/contexts/.use-outer-or-default.md +36 -0
  578. package/src/embed-shims/.index.md +45 -0
  579. package/src/embed-shims/.next-dynamic.md +43 -0
  580. package/src/embed-shims/.next-image.md +45 -0
  581. package/src/embed-shims/.next-link.md +59 -0
  582. package/src/embed-shims/.next-navigation.md +59 -0
  583. package/src/hooks/.index.md +34 -29
  584. package/src/hooks/.use-access-code-integration.md +49 -0
  585. package/src/hooks/.use-contact-submission.md +37 -26
  586. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  587. package/src/hooks/.use-near-viewport.md +44 -0
  588. package/src/hooks/.use-og-placeholder.md +51 -0
  589. package/src/hooks/.use-toast.md +36 -35
  590. package/src/hooks/state/.use-api-params.md +29 -46
  591. package/src/hooks/state/.use-query-params.md +37 -33
  592. package/src/hooks/ui/.index.md +33 -32
  593. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  594. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  595. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  596. package/src/hooks/ui/.use-media-query.md +33 -25
  597. package/src/hooks/ui/.use-search.md +51 -0
  598. package/src/nats/.nats.md +49 -28
  599. package/src/schemas/.contact-schema.md +45 -0
  600. package/src/stories/.AnnouncementBar.stories.md +45 -0
  601. package/src/stories/.AppLayout.stories.md +20 -21
  602. package/src/stories/.Autocomplete.stories.md +48 -34
  603. package/src/stories/.Board.stories.md +35 -0
  604. package/src/stories/.Button.stories.md +36 -33
  605. package/src/stories/.ChatTicketList.stories.md +33 -0
  606. package/src/stories/.CheckboxBlock.stories.md +40 -28
  607. package/src/stories/.ContentLoader.stories.md +47 -0
  608. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  609. package/src/stories/.DataTable.stories.md +41 -0
  610. package/src/stories/.DatePicker.stories.md +66 -52
  611. package/src/stories/.DeviceCard.stories.md +41 -40
  612. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  613. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  614. package/src/stories/.Drawer.stories.md +58 -0
  615. package/src/stories/.EmbeddableChat.stories.md +41 -0
  616. package/src/stories/.FileManager.stories.md +41 -0
  617. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  618. package/src/stories/.FileUpload.stories.md +53 -0
  619. package/src/stories/.FilterList.stories.md +54 -0
  620. package/src/stories/.FilterModal.stories.md +72 -0
  621. package/src/stories/.FiltersDropdown.stories.md +57 -0
  622. package/src/stories/.Header.stories.md +48 -0
  623. package/src/stories/.ImageUploader.stories.md +49 -0
  624. package/src/stories/.InfoCard.stories.md +54 -0
  625. package/src/stories/.Input.stories.md +48 -30
  626. package/src/stories/.ListPageLayout.stories.md +56 -43
  627. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  628. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  629. package/src/stories/.Modal.stories.md +40 -31
  630. package/src/stories/.NotificationDrawer.stories.md +55 -0
  631. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  632. package/src/stories/.OrganizationCard.stories.md +61 -0
  633. package/src/stories/.PageActions.stories.md +52 -49
  634. package/src/stories/.PageContainer.stories.md +41 -35
  635. package/src/stories/.PageLayout.stories.md +60 -0
  636. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  637. package/src/stories/.PhoneInput.stories.md +53 -0
  638. package/src/stories/.QueryReportTable.stories.md +44 -0
  639. package/src/stories/.RadioGroup.stories.md +46 -0
  640. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  641. package/src/stories/.Select.stories.md +29 -15
  642. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  643. package/src/stories/.SplitButton.stories.md +62 -0
  644. package/src/stories/.TabNavigation.stories.md +47 -38
  645. package/src/stories/.TabSelector.stories.md +65 -0
  646. package/src/stories/.Table.stories.md +38 -46
  647. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  648. package/src/stories/.Tag.stories.md +43 -32
  649. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  650. package/src/stories/.TagSearchInput.stories.md +61 -0
  651. package/src/stories/.Textarea.stories.md +49 -26
  652. package/src/stories/.Theme.stories.md +41 -0
  653. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  654. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  655. package/src/stories/.TicketInfoSection.stories.md +40 -0
  656. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  657. package/src/stories/.TicketNotesSection.stories.md +50 -0
  658. package/src/stories/.Toaster.stories.md +40 -0
  659. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  660. package/src/stories/.Tooltip.stories.md +41 -0
  661. package/src/stories/.UserSummary.stories.md +41 -0
  662. package/src/stories/.WaitlistForm.stories.md +42 -0
  663. package/src/stories/BlogCard.stories.tsx +61 -0
  664. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  665. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  666. package/src/stories/ChatContainer.stories.tsx +186 -0
  667. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  668. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  669. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  670. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  671. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  672. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  673. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  674. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  675. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  676. package/src/stories/ProgramCard.stories.tsx +79 -0
  677. package/src/stories/RoadmapCard.stories.tsx +75 -0
  678. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  679. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  680. package/src/types/.blog.md +53 -29
  681. package/src/types/.case-study.md +44 -27
  682. package/src/types/.customer-interview.md +66 -44
  683. package/src/types/.delivery.md +40 -0
  684. package/src/types/.employee.md +24 -30
  685. package/src/types/.index.md +33 -47
  686. package/src/types/.marketing.md +49 -44
  687. package/src/types/.navigation.md +33 -25
  688. package/src/types/.os.types.md +32 -27
  689. package/src/types/.platform.md +31 -28
  690. package/src/types/.product-release.md +65 -38
  691. package/src/types/.supabase.md +37 -29
  692. package/src/types/.team.md +41 -33
  693. package/src/types/.video-processing.md +54 -0
  694. package/src/types/.waitlist.md +40 -36
  695. package/src/utils/.access-code-client.md +37 -36
  696. package/src/utils/.cn.md +31 -23
  697. package/src/utils/.color-analysis.md +35 -0
  698. package/src/utils/.country-phone-utils.md +39 -0
  699. package/src/utils/.date-formatters.md +19 -18
  700. package/src/utils/.embed-authed-fetch.md +39 -0
  701. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  702. package/src/utils/.fetch-priority.md +41 -0
  703. package/src/utils/.format.md +74 -25
  704. package/src/utils/.generic-domain-utils.md +42 -0
  705. package/src/utils/.image-proxy.md +59 -23
  706. package/src/utils/.index.md +42 -49
  707. package/src/utils/.local-storage-adapter.md +50 -0
  708. package/src/utils/.ods-color-utils.md +55 -38
  709. package/src/utils/.platform-config.md +45 -25
  710. package/src/utils/.scroll-into-view.md +40 -0
  711. package/src/utils/.source-icons.md +53 -0
  712. package/src/utils/.sse-decision-frame.md +46 -0
  713. package/src/utils/dev-sections/.index.md +34 -0
  714. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  715. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  716. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  717. package/src/components/.card.md +0 -42
  718. package/src/components/.contact-button.md +0 -30
  719. package/src/components/.drawer.md +0 -46
  720. package/src/components/.fixed-layout-container.md +0 -47
  721. package/src/components/.footer-waitlist-card.md +0 -29
  722. package/src/components/.join-waitlist-cta.md +0 -29
  723. package/src/components/.sheet.md +0 -47
  724. package/src/components/.sliding-panel.md +0 -48
  725. package/src/components/.tooltip.md +0 -48
  726. package/src/components/.use-mobile.md +0 -42
  727. package/src/components/.vendor-compact-card.md +0 -66
  728. package/src/components/.x-button.md +0 -42
  729. package/src/components/features/.github-repo-button.md +0 -40
  730. package/src/components/features/.organization-icon.md +0 -47
  731. package/src/components/features/.organization-selector.md +0 -45
  732. package/src/components/icons/.fleet-icon.md +0 -39
  733. package/src/components/icons/.meshcentral-icon.md +0 -35
  734. package/src/components/icons/.refresh-icon.md +0 -34
  735. package/src/components/icons/.tactical-icon.md +0 -35
  736. package/src/components/ui/.button.md +0 -69
  737. package/src/components/ui/.log-table-row.md +0 -47
  738. package/src/components/ui/.selectable-device-card.md +0 -46
  739. package/src/hooks/.api-hooks-stub.md +0 -45
  740. package/src/hooks/api/.use-product-releases.md +0 -53
  741. package/src/stories/.OrganizationSelector.stories.md +0 -42
  742. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  743. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  744. package/src/utils/.lite-youtube-embed.md +0 -33
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-7PCP7YQR.js.map} +0 -0
  746. /package/dist/{chunk-3JWIJJ44.js.map → chunk-R6MLPU4A.js.map} +0 -0
@@ -1,56 +1,63 @@
1
- <!-- source-hash: a78a85bced74a6606ab1527239b9cfab -->
2
- A comprehensive React hook for managing URL-based filtering with AND logic across multiple filter types. This module provides unified filtering functionality that applies all selected filters simultaneously rather than using OR operations.
1
+ <!-- source-hash: 1d107abaa66df6045feade13e2cfcdf0 -->
2
+ Provides a unified, URL-driven AND-based filtering system for Next.js pages, exposing a React hook and pre-built filter configurations for managing multi-dimensional filter state via search parameters.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`useUnifiedFiltering`** - Main hook that manages filter state and URL synchronization
7
- - **`FilterState`** - Interface defining all possible filter parameters (search, categories, tags, etc.)
8
- - **`FilterConfig`** - Configuration object specifying supported filters and base path for different contexts
9
- - **Predefined configs** - `vendorFilterConfig` and `blogFilterConfig` for common use cases
6
+ ### Interfaces
7
+ - **`FilterState`** Represents the current filter state: `search`, `categories`, `subcategories`, `tags`, `filters`, `pricing`, and `page`
8
+ - **`FilterConfig`** Configures a filter instance with a `basePath` and a feature flag map (`supportedFilters`) to enable/disable filter dimensions
9
+
10
+ ### Hook
11
+ - **`useUnifiedFiltering(config)`** — Core hook that reads/writes filter state from URL search params using AND logic. Returns:
12
+ - `getCurrentFilterState()` — Parses current URL params into a `FilterState` object
13
+ - `updateFilters(newFilters, preserveScroll?)` — Rebuilds the URL with merged filter state
14
+ - `addFilter(type, value, preserveScroll?)` — Appends a value to a filter dimension
15
+ - `removeFilter(type, value?, preserveScroll?)` — Removes a specific or all values from a filter dimension
16
+ - `toggleFilter(type, value, preserveScroll?)` — Adds or removes a value depending on current state
17
+ - `clearAllFilters()` — Navigates to the base path, removing all params
18
+ - `getFilterChips(categories?, tags?)` — Generates display chip descriptors from active filters
19
+ - `handleFilterChipRemove(chipId)` — Removes a filter based on a chip's `id` string
20
+ - `isPending` — React transition pending state for UI feedback
21
+
22
+ ### Pre-built Configs
23
+ - **`vendorFilterConfig`** — Config for `/vendors` with categories, subcategories, filters, pricing, and search enabled
24
+ - **`blogFilterConfig`** — Config for `/blog` with categories, tags, and search enabled
10
25
 
11
26
  ## Usage Example
12
27
 
13
28
  ```typescript
14
29
  import { useUnifiedFiltering, vendorFilterConfig } from './unified-filter-logic'
15
30
 
16
- function VendorListPage() {
31
+ function VendorFilters() {
17
32
  const {
18
33
  getCurrentFilterState,
19
34
  toggleFilter,
20
- addFilter,
21
- removeFilter,
22
35
  clearAllFilters,
23
36
  getFilterChips,
24
37
  handleFilterChipRemove,
25
38
  isPending
26
39
  } = useUnifiedFiltering(vendorFilterConfig)
27
40
 
28
- const currentFilters = getCurrentFilterState()
29
- const filterChips = getFilterChips(categories, tags)
41
+ const state = getCurrentFilterState()
30
42
 
31
43
  return (
32
44
  <div>
33
- {/* Add filters */}
34
- <button onClick={() => toggleFilter('categories', 'ai-tools')}>
35
- Toggle AI Tools
45
+ <button onClick={() => toggleFilter('categories', 'security')}>
46
+ Toggle Security
47
+ </button>
48
+ <button onClick={() => toggleFilter('pricing', 'free')}>
49
+ Toggle Free
36
50
  </button>
37
-
38
- {/* Display active filters */}
39
- {filterChips.map(chip => (
40
- <div key={chip.id}>
41
- {chip.label}
42
- <button onClick={() => handleFilterChipRemove(chip.id)}>×</button>
43
- </div>
44
- ))}
45
-
46
- {/* Clear all button */}
47
51
  <button onClick={clearAllFilters}>Clear All</button>
48
-
49
- {/* Loading state */}
50
- {isPending && <div>Loading...</div>}
52
+
53
+ {getFilterChips().map(chip => (
54
+ <span key={chip.id} onClick={() => handleFilterChipRemove(chip.id)}>
55
+ {chip.label} ✕
56
+ </span>
57
+ ))}
58
+
59
+ {isPending && <span>Loading...</span>}
51
60
  </div>
52
61
  )
53
62
  }
54
- ```
55
-
56
- The hook automatically handles URL parameter encoding/decoding, scroll preservation, and page reset when filters change. It uses React's `useTransition` for smooth navigation updates.
63
+ ```
@@ -1,39 +1,40 @@
1
- <!-- source-hash: b1542126bdb853cacb1d8b7318fdd48f -->
2
- A unified pagination component that combines URL state management with local state updates, preserving scroll position during page changes.
1
+ <!-- source-hash: 0b1ed7fecc99180fa753ffdca0b769d0 -->
2
+ Wrapper component around `Pagination` that synchronizes page state with the URL query string without triggering a full navigation, while preserving scroll position.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **UnifiedPagination**: Main component that wraps the base `Pagination` component with enhanced functionality
7
- - **handlePageChange**: Core method that coordinates local state updates, URL synchronization, and scroll position preservation
8
- - **UnifiedPaginationProps**: Interface defining component props including optional callback and styling options
6
+ - **`UnifiedPagination`** Primary export; renders `Pagination` only when `totalPages > 1`
7
+ - **`UnifiedPaginationProps`** Interface defining `currentPage`, `totalPages`, optional `onPageChange` callback, and `className`
8
+ - **`handlePageChange`** Internal handler that updates local state via `onPageChange`, syncs the `page` query param via `window.history.replaceState`, and restores scroll position after render
9
9
 
10
10
  ## Usage Example
11
11
 
12
12
  ```typescript
13
13
  import { UnifiedPagination } from "./unified-pagination"
14
14
 
15
- function BlogList() {
16
- const [currentPage, setCurrentPage] = useState(1)
17
- const [posts, setPosts] = useState([])
18
-
19
- const handlePageChange = (page: number) => {
20
- setCurrentPage(page)
21
- // Fetch new data for the page
22
- fetchPosts(page).then(setPosts)
23
- }
15
+ function ArticleList() {
16
+ const [page, setPage] = useState(1)
17
+ const totalPages = 10
24
18
 
25
19
  return (
26
- <div>
27
- {posts.map(post => <BlogPost key={post.id} post={post} />)}
28
-
20
+ <>
21
+ {/* ...list content... */}
29
22
  <UnifiedPagination
30
- currentPage={currentPage}
31
- totalPages={Math.ceil(totalPosts / postsPerPage)}
32
- onPageChange={handlePageChange}
23
+ currentPage={page}
24
+ totalPages={totalPages}
25
+ onPageChange={setPage}
26
+ className="mt-4 flex justify-center"
33
27
  />
34
- </div>
28
+ </>
35
29
  )
36
30
  }
37
31
  ```
38
32
 
39
- The component automatically updates the browser URL for bookmarking support while preventing page reloads, and maintains the user's scroll position during pagination. It conditionally renders only when there are multiple pages to navigate through.
33
+ ## Behavior Notes
34
+
35
+ | Behavior | Detail |
36
+ |---|---|
37
+ | URL sync | Updates `?page=N` via `replaceState` — no re-render or navigation |
38
+ | Scroll preservation | Captures `window.scrollY` before page change, restores with `behavior: 'instant'` after a `setTimeout(0)` |
39
+ | Hidden when unnecessary | Returns `null` when `totalPages <= 1` |
40
+ | Bookmark support | URL reflects current page, allowing users to share or reload at the correct page |
@@ -1,41 +1,57 @@
1
- <!-- source-hash: 7d4442772751d72738b728e95b82eca1 -->
2
- A client-side React component that displays user profile information with avatar, contact details, authentication providers, and optional MSP (Managed Service Provider) data in both compact and full layouts.
1
+ <!-- source-hash: e8fdad9190b0ce783dc9a5712636e90d -->
2
+ A client-side React component that renders a user profile summary card with avatar, name, email/subtitle, auth provider icons, and optional MSP organization preview data.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **UserSummary** - Main component with two display modes: compact horizontal layout for comments/headers and full vertical layout for profile pages
7
- - **getAuthProviderIcon** - Helper function that returns provider-specific icons (Google, Microsoft, Slack) or fallback placeholders
8
- - **formatNumber** - Utility function that abbreviates large numbers (1.2K, 15K, 2M, etc.) for display
6
+ ### `UserSummary` (exported component)
7
+ The primary export. Accepts a `Props` interface and renders in two layout modes:
8
+ - **Compact mode** (`compact=true`): Horizontal row with small avatar, name, and subtitle — intended for comment headers or inline contexts.
9
+ - **Full mode** (default): Vertical card with large avatar, name, email, MSP info row, and auth provider badges. Responsive with a separate mobile row for auth/edit controls.
10
+
11
+ ### `getAuthProviderIcon(provider)`
12
+ Internal helper that maps provider strings (`"google"`, `"microsoft"`, `"azure"`, `"slack"`) to icon elements.
13
+
14
+ ### `formatNumber(n)`
15
+ Internal utility that abbreviates large numbers (e.g., `1200 → 1.2K`, `2000000 → 2M`, `1500000000 → 1.5B`).
16
+
17
+ ## Key Props
18
+
19
+ | Prop | Type | Description |
20
+ |---|---|---|
21
+ | `name` / `email` | `string` | Required user identity fields |
22
+ | `avatarUrl` | `string \| null` | Optional avatar, proxied via `getProxiedImageUrl` |
23
+ | `mspPreview` | object | Optional MSP org info (name, seats, revenue, logo badge) |
24
+ | `compact` | `boolean` | Switches to minimal horizontal layout |
25
+ | `authProviders` | `string[]` | Displays provider icons (Google, Microsoft, Slack) |
26
+ | `showEditButton` | `boolean` | Shows an edit profile affordance |
9
27
 
10
28
  ## Usage Example
11
29
 
12
30
  ```typescript
13
- // Full profile display
31
+ import { UserSummary } from "./user-summary-stub";
32
+
33
+ // Full card with MSP info
14
34
  <UserSummary
15
- name="John Doe"
16
- email="john@company.com"
17
- avatarUrl="https://example.com/avatar.jpg"
18
- authProviders={["google", "microsoft"]}
19
- showEditButton={true}
20
- editHref="/profile/edit"
35
+ name="Jane Smith"
36
+ email="jane@example.com"
37
+ avatarUrl="https://cdn.example.com/jane.jpg"
38
+ authProviders={["google"]}
39
+ showEditButton
21
40
  mspPreview={{
22
- name: "TechCorp MSP",
23
- seatCount: 250,
41
+ name: "Acme MSP",
42
+ seatCount: 1500,
24
43
  technicianCount: 12,
25
- annualRevenue: 2500000,
26
- logoUrl: "https://example.com/msp-logo.jpg"
44
+ annualRevenue: 2000000,
45
+ logoUrl: "https://cdn.example.com/acme-logo.png",
27
46
  }}
28
47
  />
29
48
 
30
49
  // Compact mode for comment headers
31
50
  <UserSummary
32
51
  name="Jane Smith"
33
- email="jane@company.com"
34
- avatarUrl="https://example.com/avatar2.jpg"
35
- compact={true}
52
+ email="jane@example.com"
53
+ compact
36
54
  avatarSize={32}
37
55
  subtitle="2 hours ago"
38
56
  />
39
- ```
40
-
41
- The component handles responsive design, avatar fallbacks (initials), MSP badge overlays, and proxied image URLs for enhanced security and performance.
57
+ ```
@@ -1,38 +1,38 @@
1
- <!-- source-hash: b69b6459568132d1683eed5725d711e0 -->
2
- A clickable button component that displays vendor information with logo and title, supporting both default and compact display variants for the OpenFrame platform.
1
+ <!-- source-hash: 6fb4d3c3dedfd71f1af226c49bd112fd -->
2
+ A client-side React button component that renders a vendor with its logo and title, supporting two visual variants and navigation to vendor profile pages.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **VendorDisplayButton** - Main component that renders a clickable vendor button
7
- - **VendorDisplayButtonProps** - TypeScript interface defining component props
8
- - **handleClick** - Click handler that opens external URLs or triggers custom onClick callbacks
9
- - **Variant support** - Two display modes: 'default' (full-sized) and 'compact' (minimal)
10
- - **Logo handling** - Displays vendor logos with fallback to initials when no logo is available
6
+ ### `VendorDisplayButtonProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `vendor` | `VendorWithMedia` | Vendor data including slug, title, and media |
10
+ | `onClick` | `(vendorSlug: string) => void` | Optional internal click handler |
11
+ | `variant` | `'default' \| 'compact'` | Display style (defaults to `'default'`) |
12
+ | `externalUrl` | `string` | Fallback base URL for external navigation |
13
+
14
+ ### `VendorDisplayButton`
15
+ Main export. Renders one of two button variants:
16
+ - **`default`** — Card-style button with an 8×8 logo container, used in standard listings
17
+ - **`compact`** — Pill-shaped button with a smaller 5×5 logo, designed for teaser/inline contexts (e.g. `flamingo-teaser`)
18
+
19
+ Logo display gracefully falls back to the vendor's initial character when no logo URL is available. External navigation uses `NEXT_PUBLIC_OPENMSP_URL` env variable with `externalUrl` as fallback, opening in a new tab.
11
20
 
12
21
  ## Usage Example
13
22
 
14
23
  ```typescript
15
- import { VendorDisplayButton } from './vendor-display-button'
24
+ import { VendorDisplayButton } from "./vendor-display-button"
16
25
 
17
- // Default variant with external URL
18
- <VendorDisplayButton
19
- vendor={vendorData}
20
- externalUrl="https://openmsp.example.com"
21
- onClick={(slug) => console.log('Clicked:', slug)}
26
+ // Default variant navigates externally
27
+ <VendorDisplayButton
28
+ vendor={vendorWithMedia}
29
+ externalUrl="https://www.openmsp.ai"
22
30
  />
23
31
 
24
- // Compact variant for space-constrained layouts
25
- <VendorDisplayButton
26
- vendor={vendorData}
32
+ // Compact variant triggers internal handler
33
+ <VendorDisplayButton
34
+ vendor={vendorWithMedia}
27
35
  variant="compact"
28
36
  onClick={(slug) => router.push(`/vendors/${slug}`)}
29
37
  />
30
-
31
- // External link behavior (opens in new tab)
32
- <VendorDisplayButton
33
- vendor={vendorData}
34
- externalUrl="https://external-site.com"
35
- />
36
- ```
37
-
38
- The component automatically handles image proxying, responsive design, and provides hover effects with the signature Flamingo yellow accent color (`#FFC008`). It supports both internal navigation callbacks and external URL opening in new tabs.
38
+ ```
@@ -1,44 +1,52 @@
1
- <!-- source-hash: 1b5ad3ddc5bbf8333a3911ee37761474 -->
2
- A reusable React component for displaying vendor logos with consistent styling and fallback handling across the Flamingo platform.
1
+ <!-- source-hash: f84ca33f36e32d62304615a416d5acac -->
2
+ Renders a vendor logo icon with configurable size, background style, and fallback initials when no logo is available.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **VendorIcon**: Main component that renders vendor logos with configurable sizing and background styles
7
- - **VendorIconProps**: TypeScript interface defining component props including vendor data, size options, and styling preferences
8
- - **Size mappings**: Predefined size classes (`xs` to `xl`) with corresponding Tailwind CSS classes and image dimensions
9
- - **Background styles**: Three background options (`dark`, `light`, `white`) with appropriate border and color schemes
10
- - **Fallback display**: Shows vendor initials when logo is unavailable
6
+ ### `VendorIconProps`
7
+ | Prop | Type | Default | Description |
8
+ |------|------|---------|-------------|
9
+ | `vendor` | `VendorWithMedia & { id?, title, slug?, logo? }` | | Vendor data including logo URL |
10
+ | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'l' \| 'xl'` | `'md'` | Icon container size |
11
+ | `className` | `string` | `''` | Additional CSS classes |
12
+ | `showBackground` | `boolean` | `true` | Toggles container background/border |
13
+ | `backgroundStyle` | `'dark' \| 'light' \| 'white'` | `'dark'` | Container background variant |
14
+
15
+ ### Size Map
16
+ | Size | Container | Image (px) |
17
+ |------|-----------|------------|
18
+ | `xs` | 24×24 | 16×16 |
19
+ | `sm` | 32×32 | 20×20 |
20
+ | `md` | 40×40 | 32×32 |
21
+ | `lg` | 48×48 | 40×40 |
22
+ | `xl` | 64×64 | 40×40 |
23
+
24
+ ### `VendorIcon` (named export)
25
+ The primary export. Resolves the logo via `getVendorLogo`, proxies the URL via `getProxiedImageUrl`, and falls back to a two-character uppercase initials placeholder when no logo is found.
11
26
 
12
27
  ## Usage Example
13
28
 
14
29
  ```typescript
15
30
  import { VendorIcon } from './vendor-icon'
16
31
 
17
- // Basic usage with default medium size and dark background
18
- <VendorIcon vendor={vendorData} />
32
+ // Default dark background, medium size
33
+ <VendorIcon vendor={vendor} />
19
34
 
20
- // Large icon with white background
21
- <VendorIcon
22
- vendor={vendorData}
23
- size="xl"
35
+ // White background, large, no border
36
+ <VendorIcon
37
+ vendor={vendor}
38
+ size="lg"
24
39
  backgroundStyle="white"
25
40
  showBackground={true}
26
41
  />
27
42
 
28
- // Small icon without background for compact layouts
29
- <VendorIcon
30
- vendor={vendorData}
43
+ // Logo only, no background (e.g. inside a styled card)
44
+ <VendorIcon
45
+ vendor={vendor}
31
46
  size="sm"
32
47
  showBackground={false}
33
- className="border border-gray-200"
34
- />
35
-
36
- // Usage in comparison tables or dropdowns
37
- <VendorIcon
38
- vendor={vendorData}
39
- size="xs"
40
- backgroundStyle="light"
48
+ className="rounded-full"
41
49
  />
42
50
  ```
43
51
 
44
- The component automatically handles image proxying, provides accessible alt text, and gracefully degrades to showing vendor initials when logos are unavailable.
52
+ > When `logoUrl` resolves to `null` or `undefined`, the component renders a dark/light pill with the first two characters of `vendor.title` (e.g. `"MI"` for *Microsoft*).
@@ -1,39 +1,42 @@
1
- <!-- source-hash: 3bab9ef8a96e7e082f214935b6b961d1 -->
2
- A React component that renders a numbered list section highlighting key benefits of the platform with hover effects and responsive design.
1
+ <!-- source-hash: 0a0456d4a0a372cdfeb0bc7afca3a55f -->
2
+ A Next.js client component that renders a numbered list section highlighting the key value propositions of the OpenFrame/Flamingo platform.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **`WhyItMattersItem`** - Individual list item component with number, title, description, and conditional bottom border
7
- - **`WhyItMatters`** - Main section component that renders the complete "Why It Matters" section with predefined benefits
8
- - **`WhyItMattersItemProps`** - TypeScript interface defining props for individual items
6
+ ### `WhyItMattersItem` (internal)
7
+ A list item component rendering a numbered entry with title and description. Accepts:
8
+ - `number` display number string (e.g. `"1."`)
9
+ - `title` — short benefit headline
10
+ - `description` — supporting copy
11
+ - `isLast?` — omits bottom border on the final item
12
+
13
+ ### `WhyItMatters` (default export)
14
+ The parent section component containing four hardcoded value propositions:
15
+
16
+ | # | Title | Description |
17
+ |---|-------|-------------|
18
+ | 1 | Cut Costs | Eliminate vendor fees with proven open-source alternatives |
19
+ | 2 | Stay in Control | Full visibility and data ownership |
20
+ | 3 | Build What You Need | Customize without vendor limitations |
21
+ | 4 | Scale Freely | Designed for multi-tenant MSP environments |
9
22
 
10
23
  ## Usage Example
11
24
 
12
25
  ```typescript
13
- import WhyItMatters from './components/WhyItMatters';
26
+ import WhyItMatters from '@/components/why-it-matters';
14
27
 
15
- // Use the component directly - items are predefined
16
- function HomePage() {
28
+ export default function LandingPage() {
17
29
  return (
18
- <div>
30
+ <main>
19
31
  <WhyItMatters />
20
- </div>
21
- );
22
- }
23
-
24
- // Or create a custom version with different items
25
- function CustomSection() {
26
- return (
27
- <section className="bg-[#161616]">
28
- <WhyItMattersItem
29
- number="1."
30
- title="Custom Benefit"
31
- description="Your custom description here"
32
- isLast={true}
33
- />
34
- </section>
32
+ </main>
35
33
  );
36
34
  }
37
35
  ```
38
36
 
39
- The component features a dark theme design with custom fonts (Azeret Mono for headings, DM Sans for descriptions), hover animations, and responsive layout that stacks vertically on mobile devices. The predefined items focus on cost reduction, control, customization, and scalability benefits for MSP environments.
37
+ ## Notes
38
+
39
+ - Marked `"use client"` — requires a Next.js App Router client boundary.
40
+ - Styled with Tailwind CSS using `ods-` design tokens (`ods-accent`, `ods-border`, `ods-text-primary`, `ods-card`).
41
+ - Items hover to `#2A2A2A` with a smooth transition for subtle interactivity.
42
+ - Layout is responsive: stacks vertically on mobile (`flex-col`), switches to row on `md+`.
@@ -0,0 +1,51 @@
1
+ <!-- source-hash: 0d9faa5f98d4a04ec4d4d1a8221ac7cd -->
2
+ A React component that renders a batch of pending AI tool-call approvals, allowing users to approve or reject multiple tool executions at once, with expandable argument details and live execution status indicators.
3
+
4
+ ## Key Components
5
+
6
+ ### `ApprovalBatchMessage` (default export)
7
+ A `forwardRef` component that renders the full approval card. Accepts:
8
+
9
+ | Prop | Type | Description |
10
+ |------|------|-------------|
11
+ | `data` | `ApprovalBatchSegment["data"]` | Tool calls, executions, and request ID |
12
+ | `status` | `ApprovalBatchSegment["status"]` | `"pending"` \| `"approved"` \| `"rejected"` |
13
+ | `onApprove` | `(requestId?) => void \| Promise<void>` | Called when user approves the batch |
14
+ | `onReject` | `(requestId?) => void \| Promise<void>` | Called when user rejects the batch |
15
+
16
+ ### `ToolCallRow` (internal)
17
+ Renders a single collapsible tool call row showing the command text, filtered arguments via `ArgRow`, execution result via `ResultBlock`, and a live `ExecutionStatusIcon`.
18
+
19
+ ### `ExecutionStatusIcon` (internal)
20
+ Displays the per-tool execution state:
21
+ - **Pending batch** → hidden
22
+ - **Approved / executing** → `DotsLoaderIcon` (spinner)
23
+ - **Done + success** → green `CheckCircleIcon`
24
+ - **Done + failure** → red `XmarkCircleIcon`
25
+
26
+ ### Helper: `getArgEntries`
27
+ Filters tool call arguments, excluding body-level keys (via `COMMAND_BODY_KEYS`) and null/empty values.
28
+
29
+ ## Usage Example
30
+
31
+ ```typescript
32
+ import { ApprovalBatchMessage } from "./approval-batch-message"
33
+
34
+ <ApprovalBatchMessage
35
+ data={{
36
+ approvalRequestId: "req_123",
37
+ toolCalls: [
38
+ {
39
+ toolExecutionRequestId: "exec_1",
40
+ toolType: "SHELL",
41
+ toolCallArguments: { command: "ls -la" },
42
+ toolExplanation: "List directory contents",
43
+ },
44
+ ],
45
+ executions: {},
46
+ }}
47
+ status="pending"
48
+ onApprove={(id) => console.log("Approved:", id)}
49
+ onReject={(id) => console.log("Rejected:", id)}
50
+ />
51
+ ```
@@ -1,44 +1,45 @@
1
- <!-- source-hash: 30c5ced23ca0232bfbe8389e52e373e0 -->
2
- A React component that displays approval request messages with interactive approve/reject functionality for command execution workflows.
1
+ <!-- source-hash: 8ff0735cc63d1ea7a83dab6aab9e0cc6 -->
2
+ A React component that renders an AI approval request card with pending (Approve/Reject buttons) and resolved (status tag) states, used in Mingo AI's chat interface for human-in-the-loop action confirmation.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ApprovalRequestMessage** - Main component that renders approval requests with command details, explanations, and action buttons
7
- - **Status handling** - Displays different UI states for pending, approved, and rejected requests
8
- - **Interactive controls** - Provides approve/reject buttons with loading states and async handling
9
- - **StatusTag integration** - Shows visual status indicators with icons for completed requests
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `ApprovalRequestMessage` | `forwardRef` component | Main approval card with pending/resolved display states |
9
+ | `ApprovalCardBody` | Internal component | Shared card body (command block + fields/explanation) |
10
+ | `ApprovalFieldList` | Internal component | Stacked label/value `<dl>` rows for structured fields |
10
11
 
11
12
  ## Usage Example
12
13
 
13
14
  ```typescript
14
15
  import { ApprovalRequestMessage } from "./approval-request-message"
15
- import { Terminal } from "lucide-react"
16
-
17
- function ApprovalFlow() {
18
- const handleApprove = async (requestId: string) => {
19
- // Execute the approved command
20
- await executeCommand(requestId)
21
- }
22
-
23
- const handleReject = async (requestId: string) => {
24
- // Log rejection and notify user
25
- await rejectRequest(requestId)
26
- }
27
-
28
- return (
29
- <ApprovalRequestMessage
30
- data={{
31
- requestId: "req-123",
32
- command: "sudo rm -rf /tmp/cache",
33
- explanation: "Clearing temporary cache files",
34
- icon: <Terminal className="w-4 h-4" />
35
- }}
36
- status="pending"
37
- onApprove={handleApprove}
38
- onReject={handleReject}
39
- />
40
- )
41
- }
16
+
17
+ // Pending state — shows Approve / Reject buttons
18
+ <ApprovalRequestMessage
19
+ data={{
20
+ requestId: "req_abc123",
21
+ command: "apt-get install nginx --yes",
22
+ explanation: "Installing nginx on the production web server.",
23
+ fields: [
24
+ { label: "Host", value: "web-01.prod" },
25
+ { label: "Risk", value: "Low" },
26
+ ],
27
+ }}
28
+ status="pending"
29
+ onApprove={async (id) => await approveAction(id)}
30
+ onReject={async (id) => await rejectAction(id)}
31
+ />
32
+
33
+ // Resolved state shows Approved/Rejected tag
34
+ <ApprovalRequestMessage
35
+ data={{ requestId: "req_abc123", command: "apt-get install nginx --yes" }}
36
+ status="approved"
37
+ />
42
38
  ```
43
39
 
44
- The component automatically handles processing states, prevents double-clicks during async operations, and displays appropriate status indicators based on the request state.
40
+ ## Behavior Notes
41
+
42
+ - `status` defaults to `"pending"`; transitions to `"approved"` or `"rejected"` render a `<Tag>` with a `CheckCircle` or `XCircle` icon respectively
43
+ - Both `handleApprove` and `handleReject` set `isProcessing = true` during the async callback, disabling both buttons to prevent double-submission
44
+ - `fields` take rendering priority over `explanation` — if both are provided, only `fields` is shown
45
+ - The command block is scrollable (`max-h-32 overflow-y-auto`) for long commands