@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
@@ -0,0 +1,40 @@
1
+ <!-- source-hash: 7bb7ab52d16e8c26a26fa5ab1feba948 -->
2
+ A client-side `<a>` wrapper used within the chat tree to handle link navigation by reading the active `ChatRuntime` and routing clicks through the shared `handleChatNavClick` utility.
3
+
4
+ ## Key Components
5
+
6
+ ### `NavLinkAnchorViaRuntimeProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `href` | `string` | Raw href to resolve |
10
+ | `path` | `string \| null` | Optional internal path hint |
11
+ | `targetPlatform` | `string \| null` | Platform target override |
12
+ | `className` | `string` | Optional CSS class |
13
+ | `children` | `ReactNode` | Optional child content |
14
+
15
+ ### `NavLinkAnchorViaRuntime`
16
+ The main exported component. Orchestrates four responsibilities:
17
+ 1. **Resolves `href`** via `resolveHrefForRuntime` (runtime-aware URL normalization)
18
+ 2. **Decides new-tab vs. same-tab** via `computeIsNewTab` (embed-mode short-circuit → `runtime.navigation.decideNewTab` → lib fallback)
19
+ 3. **Sets `target`/`rel`** attributes via `newTabAnchorAttrs`
20
+ 4. **Closes the chat panel** on same-tab navigation via `ChatPanelContext.closeChat`
21
+
22
+ > **⚠️ Chat-tree only:** Uses `useRequiredChatRuntime`, which **throws** when mounted outside a `<ChatRuntimeContext.Provider>`. This is intentional — no silent fallback. For surfaces outside the chat tree (header chrome, marketing pages), use the hub's `useNavLink`-based anchor instead.
23
+
24
+ ## Usage Example
25
+
26
+ ```typescript
27
+ // Used in markdown-rendered chat bodies or source-chip drill-ins
28
+ <NavLinkAnchorViaRuntime
29
+ href="https://example.com/docs/setup"
30
+ path="/docs/setup"
31
+ targetPlatform="web"
32
+ className="chat-link"
33
+ >
34
+ View Setup Guide
35
+ </NavLinkAnchorViaRuntime>
36
+ ```
37
+
38
+ At runtime:
39
+ - **Same-tab click** → navigates and calls `panel.closeChat()` to dismiss the chat panel
40
+ - **New-tab click** → opens in a new tab, leaving the chat panel open
@@ -0,0 +1,38 @@
1
+ <!-- source-hash: dab5bf3f8a2e52f871c282c3d6212649 -->
2
+ A remark plugin for the unified/react-markdown pipeline that transforms `[card://<type>:<id>]` markers in markdown text nodes into synthetic `link` mdast nodes with a `card://` URL scheme, enabling downstream component overrides to render entity cards.
3
+
4
+ ## Key Components
5
+
6
+ - **`CARD_REGEX`** — Global regex matching `[card://type:id]` patterns, intentionally tolerating both `]` and `)` as closing characters to handle LLM bracket-balancing drift on opaque token IDs (e.g. UUIDs)
7
+ - **`remarkCardLinks`** — Unified `Plugin<[], Root>` factory; visits all `text` leaves in the mdast tree and splits them into interleaved `Text` and `Link` nodes where card markers are found
8
+ - **`card://` URL scheme** — Non-standard scheme placed on the synthetic link's `url` so the `<a>` component override in `chat-message-enhanced.tsx` can detect and delegate rendering to `renderEntityCard`
9
+
10
+ ## Usage Example
11
+
12
+ ```typescript
13
+ import ReactMarkdown from "react-markdown"
14
+ import { remarkCardLinks } from "./remark-card-links"
15
+
16
+ // The plugin is registered in the remark pipeline:
17
+ <ReactMarkdown
18
+ remarkPlugins={[remarkCardLinks]}
19
+ components={{
20
+ a({ href, children }) {
21
+ if (href?.startsWith("card://")) {
22
+ const [, cardType, cardId] = href.split(/[:/]+/)
23
+ return renderEntityCard(cardType, cardId)
24
+ }
25
+ return <a href={href}>{children}</a>
26
+ },
27
+ }}
28
+ >
29
+ {`**The [card://webinar:42] discussed pricing**`}
30
+ </ReactMarkdown>
31
+ // bold wrapper is preserved; only the text leaf is split
32
+ ```
33
+
34
+ ## Notes
35
+
36
+ - Operates on text leaves only — bold, italic, list, and code wrappers around markers are preserved untouched
37
+ - Resets `CARD_REGEX.lastIndex` per invocation to avoid stale state from the `g` flag
38
+ - Returns `[SKIP, index + parts.length]` after splicing to prevent the visitor from re-entering the newly inserted nodes
@@ -0,0 +1,47 @@
1
+ <!-- source-hash: b3b4c24e822f3ccb1b39897c02cee900 -->
2
+ Renders an accessible autocomplete dropdown for slash commands, mapping each command to a `MingoOnboardingCard` row with unified icon resolution, keyboard/mouse highlight sync, and optional inline action buttons.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `SlashCommandSuggestions` | `React.FC` | Main dropdown component; returns `null` when `commands` is empty |
9
+ | `SlashCommandSuggestionsProps` | `interface` | Props contract covering command list, highlight state, and action callbacks |
10
+
11
+ **Icon resolution priority (highest → lowest):**
12
+ 1. `cmd.iconName` → `resolveOnboardingIcon` (v2 registry)
13
+ 2. `cmd.primarySourceId` → consumer `resolveSourceIcon` (legacy fallback)
14
+ 3. `FileIcon` (default inside `resolveOnboardingIcon`)
15
+
16
+ ## Usage Example
17
+
18
+ ```typescript
19
+ import { SlashCommandSuggestions } from './slash-command-suggestions'
20
+ import type { SlashCommandSummary } from './types'
21
+
22
+ function ChatInput() {
23
+ const [commands, setCommands] = useState<SlashCommandSummary[]>([])
24
+ const [highlightedIdx, setHighlightedIdx] = useState(0)
25
+
26
+ return (
27
+ <div className="relative">
28
+ <SlashCommandSuggestions
29
+ commands={commands}
30
+ highlightedIdx={highlightedIdx}
31
+ onHover={(idx) => setHighlightedIdx(idx)}
32
+ onSelect={(cmd) => setValue(`/${cmd.id} `)}
33
+ onAction={(cmd, actionId) => dispatch({ cmd, actionId })}
34
+ className="absolute bottom-full"
35
+ />
36
+ <input ... />
37
+ </div>
38
+ )
39
+ }
40
+ ```
41
+
42
+ ## Accessibility Notes
43
+
44
+ - Outer container: `role="menu"` with `aria-label`
45
+ - Each row: `role="menuitem"` + `aria-current` on the highlighted item
46
+ - `Enter`/`Space` activate the focused row; arrow-key navigation is delegated to the parent input
47
+ - Action buttons call `stopPropagation` to prevent double-firing the row's `onSelect`
@@ -0,0 +1,48 @@
1
+ <!-- source-hash: 770809a15a2a56eec700f22e576bdc99 -->
2
+ Unified "Ask / Display" action button rendered across source chips, inline cards, and search-result list rows. Replaces three divergent ad-hoc implementations with a single `Button`-backed primitive that keeps DOM shape, accessibility attributes, and hover behavior in one place.
3
+
4
+ ## Key Components
5
+
6
+ ### `SourceActionButton`
7
+ The sole export. Returns `null` when either `chatRef` or `onDiscuss` is absent, making the guard declarative at the call site.
8
+
9
+ ### `SourceActionDensity`
10
+ Union type `'inline' | 'card' | 'list-row'` that selects the visual variant via the `DENSITY_STYLES` map.
11
+
12
+ ### `DENSITY_STYLES`
13
+ Internal record keyed by `SourceActionDensity`. Each entry carries `size`, `showLabel`, `iconSize`, and `className`. Adding a fourth surface requires one new entry here — no changes to the render path.
14
+
15
+ ### Icon selection
16
+ Label-driven: `'Display'` renders `FileText` (verbatim-content semantics); any other label renders `MessageSquare` (conversational semantics).
17
+
18
+ ## Usage Example
19
+
20
+ ```typescript
21
+ // Inline chip — icon only, small footprint
22
+ <SourceActionButton
23
+ chatRef={{ id: 'row-42', title: 'Ticket #42' }}
24
+ onDiscuss={(ref) => openChat(ref)}
25
+ density="inline"
26
+ />
27
+
28
+ // Card — shows "Ask" label beside icon
29
+ <SourceActionButton
30
+ chatRef={row}
31
+ onDiscuss={handleDiscuss}
32
+ density="card"
33
+ />
34
+
35
+ // List row with custom label
36
+ <SourceActionButton
37
+ chatRef={row}
38
+ onDiscuss={handleDiscuss}
39
+ density="list-row"
40
+ label="Display"
41
+ />
42
+
43
+ // Hidden — chatRef is null, renders nothing
44
+ <SourceActionButton
45
+ chatRef={null}
46
+ onDiscuss={handleDiscuss}
47
+ />
48
+ ```
@@ -0,0 +1,42 @@
1
+ <!-- source-hash: 85a298f4c8461aee81841a6a960437a6 -->
2
+ Collapsible UI component that displays AI "thinking" or reasoning text with a muted markdown aesthetic, supporting both streaming and completed states.
3
+
4
+ ## Key Components
5
+
6
+ - **`ThinkingDisplay`** — `forwardRef` component rendering AI thought content inside a bordered card with expand/collapse behavior
7
+ - **`thoughtMdClasses`** — Tailwind override class string that tunes `SimpleMarkdownRenderer` output to a quieter secondary-tone aesthetic (muted text, tighter spacing, flat code chips)
8
+ - **`useCollapsible`** — Hook managing overflow detection, container height animation, and collapsed/expanded state
9
+ - **`ExpandChevron`** — Chevron indicator shown only when content overflows or is already expanded
10
+ - **`SimpleMarkdownRenderer`** — Underlying markdown renderer wrapped with thought-specific style overrides
11
+
12
+ ## Props (`ThinkingDisplayProps`)
13
+
14
+ | Prop | Type | Default | Description |
15
+ |------|------|---------|-------------|
16
+ | `text` | `string` | — | Markdown content to render |
17
+ | `isStreaming` | `boolean` | `false` | Shows animated dots loader and "Thinking" label when `true` |
18
+ | `className` | `string` | — | Additional classes for the outer card |
19
+
20
+ ## Usage Example
21
+
22
+ ```typescript
23
+ import { ThinkingDisplay } from "./thinking-display"
24
+
25
+ // Streaming state (model is still generating)
26
+ <ThinkingDisplay
27
+ text="Analyzing the user's request..."
28
+ isStreaming={true}
29
+ />
30
+
31
+ // Completed thought (collapsible if content overflows)
32
+ <ThinkingDisplay
33
+ text="## Approach\nI need to check the ticket status first, then query the CMDB for affected assets."
34
+ isStreaming={false}
35
+ />
36
+ ```
37
+
38
+ ## Behavior Notes
39
+
40
+ - Label switches between `"Thinking"` (streaming) and `"Thought"` (complete)
41
+ - Collapsed height is `19px` (~one line of `text-sm leading-snug`); transitions are disabled while streaming to avoid layout thrashing
42
+ - Toggle is keyboard-accessible (`Enter`/`Space`) with proper `aria-expanded`; `tabIndex` is `-1` when content fits in one line
@@ -0,0 +1,45 @@
1
+ <!-- source-hash: c2806ae4c954c7e6f9d20b3fe6ddb5f6 -->
2
+ Reusable React components for rendering tool call arguments and results in the Flamingo/OpenFrame AI chat interface, handling both inline and block display formats.
3
+
4
+ ## Key Components
5
+
6
+ ### `ArgRow`
7
+ Renders a single tool argument as either an inline `key: value` pair (for short values) or a labeled scrollable `<pre>` block (for long JSON, scripts, or multiline content). Shared across `ApprovalBatchMessage` and `ToolExecutionDisplay` for consistent rendering.
8
+
9
+ | Prop | Type | Description |
10
+ |------|------|-------------|
11
+ | `argKey` | `string` | The argument name/key |
12
+ | `value` | `unknown` | The argument value (any type) |
13
+
14
+ ### `ResultBlock`
15
+ Renders a tool execution result as either inline text or a scrollable code block, depending on length and content type. Returns `null` when result is empty.
16
+
17
+ | Prop | Type | Description |
18
+ |------|------|-------------|
19
+ | `result` | `string \| undefined \| null` | The tool execution output |
20
+ | `className` | `string?` | Optional additional CSS classes |
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ import { ArgRow, ResultBlock } from "./tool-call-blocks"
26
+
27
+ // Rendering tool arguments
28
+ <ArgRow argKey="script" value={`console.log("hello")`} />
29
+ <ArgRow argKey="timeout" value={30} />
30
+
31
+ // Rendering tool result
32
+ <ResultBlock result={toolOutput} className="mt-2" />
33
+ ```
34
+
35
+ ## Display Logic
36
+
37
+ Both components delegate format decisions to `formatToolArgValue` and `formatToolResult` helpers, which return a `kind` of `"inline"` or `"block"`:
38
+
39
+ ```mermaid
40
+ graph TD
41
+ A["Raw Value/Result"] --> B["Format Helper"]
42
+ B --> C{"kind?"}
43
+ C -->|inline| D["Inline span"]
44
+ C -->|block| E["Scrollable pre/code"]
45
+ ```
@@ -1,45 +1,53 @@
1
- <!-- source-hash: 1e0dcb1d3ca121148412ec84dd43fee6 -->
2
- A React component that displays the execution status and details of integrated tools, with collapsible sections showing parameters and results.
1
+ <!-- source-hash: 51e80592b1ae4e56c89af6c06ba53a04 -->
2
+ Renders a collapsible card UI for displaying AI tool call execution state including tool arguments, execution status (running/success/failure), and result output.
3
3
 
4
4
  ## Key Components
5
5
 
6
- - **ToolExecutionDisplay** - Main forwardRef component that renders tool execution information
7
- - **handleToggle** - Function to manage expand/collapse state (controlled or uncontrolled)
8
- - **formatToolName** - Utility to format tool type names by replacing underscores with spaces
9
- - **formatParameters** - Utility to format parameter objects for display, with truncation for long strings
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `ToolExecutionDisplay` | `forwardRef<HTMLDivElement>` | Main component displaying tool call lifecycle in a collapsible card |
9
+
10
+ ### Internal Helpers
11
+
12
+ - **`renderStatusIcon`** — Returns `DotsLoaderIcon` (executing), `CheckCircleIcon` (success), or `XmarkCircleIcon` (failure) based on message state
13
+ - **`argEntries`** — Filters `message.parameters` to exclude `COMMAND_BODY_KEYS`, nulls, undefined, and empty strings
14
+ - **`previewText`** — Memoized title derived from `getToolCallTitle` using tool args, title, and function name
15
+ - **`useCollapsible`** — Hook providing animated expand/collapse container styles
16
+ - **`hasBody`** — Guards rendering of the collapsible body section
17
+
18
+ ### Props (`ToolExecutionDisplayProps`)
19
+
20
+ | Prop | Description |
21
+ |------|-------------|
22
+ | `message` | Tool execution message with `type`, `parameters`, `result`, `success`, `toolTitle`, `toolFunction`, `integratedToolType` |
23
+ | `className` | Optional CSS class override |
10
24
 
11
25
  ## Usage Example
12
26
 
13
27
  ```typescript
14
- import { ToolExecutionDisplay } from './tool-execution-display'
15
-
16
- // Executing tool message
17
- const executingMessage = {
18
- type: "EXECUTING_TOOL",
19
- integratedToolType: "OPENFRAME_API",
20
- toolFunction: "createUser",
21
- parameters: { name: "John", email: "john@example.com" }
22
- }
23
-
24
- // Executed tool message
25
- const executedMessage = {
26
- type: "EXECUTED_TOOL",
27
- integratedToolType: "OPENFRAME_API",
28
- toolFunction: "createUser",
29
- parameters: { name: "John", email: "john@example.com" },
30
- result: "User created successfully",
31
- success: true
32
- }
33
-
34
- // Usage with controlled expansion
35
- <ToolExecutionDisplay
36
- message={executingMessage}
37
- isExpanded={false}
38
- onToggleExpand={() => setExpanded(!expanded)}
28
+ import { ToolExecutionDisplay } from "./tool-execution-display"
29
+
30
+ // Executing state
31
+ <ToolExecutionDisplay
32
+ message={{
33
+ type: "EXECUTING_TOOL",
34
+ toolTitle: "Query Database",
35
+ toolFunction: "run_query",
36
+ parameters: { query: "SELECT * FROM tickets LIMIT 10" },
37
+ integratedToolType: "OPENFRAME",
38
+ }}
39
39
  />
40
40
 
41
- // Usage with uncontrolled expansion
42
- <ToolExecutionDisplay message={executedMessage} />
43
- ```
44
-
45
- The component displays different visual states (loading spinner, success/error icons) based on execution status, shows parameters during execution, and displays results after completion with appropriate success/error styling.
41
+ // Completed with result
42
+ <ToolExecutionDisplay
43
+ message={{
44
+ type: "EXECUTED_TOOL",
45
+ toolTitle: "Query Database",
46
+ toolFunction: "run_query",
47
+ parameters: { query: "SELECT * FROM tickets LIMIT 10" },
48
+ result: "Returned 10 rows",
49
+ success: true,
50
+ integratedToolType: "OPENFRAME",
51
+ }}
52
+ />
53
+ ```
@@ -65,7 +65,7 @@ const ChatHeader = React.forwardRef<HTMLDivElement, ChatHeaderProps>(
65
65
  ({ className, userName = 'Grace "Fae" Meadows', userTitle = "Your Personal Assistant", userAvatar, userIcon, onSettingsClick, onNewChat, onClose, onBack, showNewChat = false, connectionStatus = 'disconnected', serverUrl = null, headerActions, ticketInfo, fullWidth = false, bare = false, ...props }, ref) => {
66
66
  const cardClasses = bare
67
67
  ? ""
68
- : "rounded-md bg-ods-card shadow-[0_18px_48px_rgba(0,0,0,0.45)] border border-ods-border ring-1 ring-black/20"
68
+ : "rounded-md bg-ods-card border border-ods-border"
69
69
  return (
70
70
  <div
71
71
  ref={ref}
@@ -0,0 +1,43 @@
1
+ <!-- source-hash: 5014a5d76cff7f765951023b41048390 -->
2
+ Reusable admin content card component that renders a cover image with edge-color fill, title, subtitle, summary, platform badges, meta info, and action buttons in a consistent card layout.
3
+
4
+ ## Key Components
5
+
6
+ ### `AdminContentCard`
7
+ Main exported component. Renders an `<article>` card with a 3:2 aspect-ratio cover image and a flexible content body.
8
+
9
+ ### `AdminContentCardProps`
10
+ | Prop | Type | Description |
11
+ |------|------|-------------|
12
+ | `imageUrl` | `string \| null` | Primary cover image URL |
13
+ | `placeholderUrl` | `string \| null` | Fallback image URL when `imageUrl` is missing or errors |
14
+ | `title` | `string` | Required heading and image alt text |
15
+ | `summary` | `string \| null` | Two-line clamped description |
16
+ | `subtitle` | `string \| null` | Secondary line (e.g. customer name) |
17
+ | `platforms` | `PlatformInfo[]` | Renders `<PlatformBadge>` chips |
18
+ | `badges` | `ReactNode` | Additional status badges after platform chips |
19
+ | `meta` | `ReactNode` | Date, views, or other metadata row |
20
+ | `actions` | `ReactNode` | Pinned-to-bottom action buttons |
21
+ | `className` | `string` | Extra Tailwind classes |
22
+
23
+ ### Internal Hooks
24
+ - **`useImageEdgeColor`** — samples the edge color of `displayUrl` to use as the image container background, blending the cover image seamlessly.
25
+ - **`useState / useEffect`** — tracks `imageError` and `imageLoaded` states; resets load state on URL change to replay the fade-in.
26
+
27
+ ## Usage Example
28
+
29
+ ```typescript
30
+ import { AdminContentCard } from './admin-content-card'
31
+
32
+ <AdminContentCard
33
+ imageUrl="https://cdn.example.com/cover.png"
34
+ placeholderUrl="https://cdn.example.com/og-placeholder.png"
35
+ title="Quarterly Security Report"
36
+ subtitle="Acme Corp"
37
+ summary="Overview of vulnerabilities patched in Q2 2025."
38
+ platforms={[{ id: 'azure', name: 'Azure', display_name: 'Microsoft Azure' }]}
39
+ badges={<span className="badge">Published</span>}
40
+ meta={<span>June 12, 2025 · 142 views</span>}
41
+ actions={<button>Edit</button>}
42
+ />
43
+ ```
@@ -0,0 +1,47 @@
1
+ <!-- source-hash: c4f460ddb603f582424bec5b5d1e9d76 -->
2
+ Sentinel component used by `renderEntityCard` to signal that a card's content is block-level HTML (e.g. `<div>`, `<EntityVideoSection>`) and cannot legally render inside a markdown `<p>` tag.
3
+
4
+ ## Key Components
5
+
6
+ ### `BlockCard`
7
+ A no-op sentinel function component — it always returns `null`. Its purpose is **not** to render, but to be detected by type identity during the pre-scan in `chat-message-enhanced.tsx`, which splits its props into two placement zones.
8
+
9
+ ### `BlockCardProps`
10
+ | Prop | Type | Description |
11
+ |------|------|-------------|
12
+ | `inline` | `React.ReactNode` (optional) | Compact UI placed **at** the marker position inside the `<p>` (e.g. a 56×56 thumbnail card). Falls back to a plain `<span>` with the ref title if omitted. |
13
+ | `children` | `React.ReactNode` | Block-level content appended as a **sibling below** the paragraph, where it is HTML-valid. |
14
+
15
+ ## How the Pre-Scan Works
16
+
17
+ ```mermaid
18
+ graph TD
19
+ A["chat-message-enhanced.tsx"] --> B["Scan text segment for [card://type:id] markers"]
20
+ B --> C["Call renderEntityCard(ref)"]
21
+ C --> D{"Result is BlockCard?"}
22
+ D -->|Yes| E["Place inline prop AT marker inside paragraph"]
23
+ D -->|Yes| F["Append children as sibling BELOW paragraph"]
24
+ D -->|No| G["Render inline as-is inside paragraph"]
25
+ ```
26
+
27
+ ## Usage Example
28
+
29
+ ```typescript
30
+ // Inside renderEntityCard — return a BlockCard when the card
31
+ // contains block-level elements that can't nest in <p>
32
+ import { BlockCard } from './block-card'
33
+
34
+ function renderEntityCard(ref: EntityRef) {
35
+ if (ref.type === 'video') {
36
+ return (
37
+ <BlockCard
38
+ inline={<CompactVideoThumbnail ref={ref} />} // placed inside <p>
39
+ >
40
+ <EntityVideoSection ref={ref} /> // hoisted below <p>
41
+ </BlockCard>
42
+ )
43
+ }
44
+ }
45
+ ```
46
+
47
+ > **Note:** `BlockCard` is a protocol tag, not a UI wrapper. Never render it directly outside of the `chat-message-enhanced` pipeline — if one escapes that path, the defensive `return null` prevents a crash.
@@ -0,0 +1,52 @@
1
+ <!-- source-hash: 84fe8c9e8dffcbf0ae0ec8ff163a67e2 -->
2
+ Pure presentation component for rendering blog post cards in two density modes (`default` and `sm`), with no built-in click/navigation logic — callers supply the resolved `href` and wrap with their own anchor strategy.
3
+
4
+ ## Key Components
5
+
6
+ ### `BlogCard`
7
+ Main card component supporting two layouts:
8
+ - **`default`**: Full vertical card with cover image, title, summary, author avatar, date, and view count
9
+ - **`sm`**: Compact horizontal card (~80px tall) designed for chat-inline rendering, showing a thumbnail, title, category, and summary
10
+
11
+ ### `BlogCardSkeleton`
12
+ Loading placeholder matching both `default` and `sm` density layouts using animated pulse styles.
13
+
14
+ ### `BlogCardProps`
15
+ | Prop | Type | Description |
16
+ |---|---|---|
17
+ | `post` | `BlogPostSummary` | Post data (title, image, author, etc.) |
18
+ | `href` | `string` | Resolved detail URL from caller |
19
+ | `target` | `'_blank'` | Opens in new tab (set by chat dispatch) |
20
+ | `placeholderUrl` | `string \| null` | Fallback image when `featured_image` is missing |
21
+ | `size` | `'default' \| 'sm'` | Card density mode |
22
+ | `hasEmbeddedVideo` | `boolean` | Surfaces a "Video" badge in compact mode |
23
+ | `priority` | `boolean` | Passes LCP priority hint to the cover image |
24
+
25
+ **Image fallback chain:** `post.featured_image` → `placeholderUrl` → `bg-ods-bg` background slot
26
+
27
+ ## Usage Example
28
+
29
+ ```typescript
30
+ // Default full card — caller wraps with navigation anchor
31
+ <BlogCard
32
+ post={blogPostSummary}
33
+ href={buildContentURL(post.slug)}
34
+ placeholderUrl={useOgPlaceholder(post)}
35
+ size="default"
36
+ priority={true}
37
+ />
38
+
39
+ // Compact card for chat-inline rendering
40
+ <BlogCard
41
+ post={blogPostSummary}
42
+ href={detailUrl}
43
+ target="_blank"
44
+ rel="noopener noreferrer"
45
+ size="sm"
46
+ hasEmbeddedVideo={true}
47
+ placeholderUrl={staticFallbackUrl}
48
+ />
49
+
50
+ // Skeleton while loading
51
+ <BlogCardSkeleton size="sm" />
52
+ ```
@@ -0,0 +1,39 @@
1
+ <!-- source-hash: d68b2db5f05c474ec9bdb96a22e60341 -->
2
+ Thin presentation component that renders a blog post cover image (or OG-generated placeholder) with graceful 404 recovery.
3
+
4
+ ## Key Components
5
+
6
+ ### `BlogImagePlaceholder`
7
+ A client-side React component that wraps a cover image in an HTML phrasing-content–safe `<span>`. Key behaviors:
8
+
9
+ - Returns `null` when `imageUrl` is `null`, rendering nothing
10
+ - Uses a plain `<img>` tag (bypasses `next/image`) to support query-string–based dynamic placeholder URLs
11
+ - Hides the broken-image icon via `onError` when the URL 404s, letting the parent `bg-ods-bg` background show through cleanly
12
+ - Wrapped in `<span className="block">` instead of `<div>` for HTML validity when rendered inside markdown `<p>` tags (e.g., compact `BlogCard` in the chat shell)
13
+
14
+ ### `BlogImagePlaceholderProps`
15
+
16
+ | Prop | Type | Description |
17
+ |------|------|-------------|
18
+ | `imageUrl` | `string \| null` | Pre-resolved cover/OG image URL; `null` renders nothing |
19
+ | `title` | `string` | Used for the `alt` attribute |
20
+ | `className` | `string` | Optional extra Tailwind classes |
21
+
22
+ ## Usage Example
23
+
24
+ ```typescript
25
+ import { BlogImagePlaceholder } from './blog-image-placeholder'
26
+
27
+ // Typical usage in a BlogCard with a pre-resolved OG placeholder URL
28
+ <BlogImagePlaceholder
29
+ imageUrl="https://og.flamingo.run/placeholder?title=My+Post&category=devops"
30
+ title="My Post"
31
+ className="rounded-lg"
32
+ />
33
+
34
+ // When imageUrl is null, renders nothing — safe to use unconditionally
35
+ <BlogImagePlaceholder
36
+ imageUrl={null}
37
+ title="Draft Post"
38
+ />
39
+ ```
@@ -0,0 +1,47 @@
1
+ <!-- source-hash: ff394dac0474471ce2eebef4dbdbb49b -->
2
+ A pure-presentation compact card component for displaying marketing campaigns inline in chat interfaces. Renders a 3-row layout with icon, title, metadata, and description — with optional anchor wrapping for navigation.
3
+
4
+ ## Key Components
5
+
6
+ ### Interfaces
7
+
8
+ | Interface | Purpose |
9
+ |-----------|---------|
10
+ | `CampaignCardItem` | Minimal campaign data shape (id, name, description, start_date, goals) |
11
+ | `CampaignCardAdminAnchorProps` | Anchor element props bundle (href, target, rel, onClick) |
12
+ | `CampaignCardAdminProps` | Main component props (campaign, className, anchorProps) |
13
+
14
+ ### Exports
15
+
16
+ - **`CampaignCardAdmin`** — Primary compact card. Renders as a clickable `<a>` when `anchorProps` is provided, otherwise falls back to a static `<span>`. Displays campaign name, start date, goal count, and description.
17
+ - **`CampaignCardAdminSkeleton`** — Loading placeholder matching the card's 3-row layout using shimmer blocks.
18
+
19
+ ## Usage Example
20
+
21
+ ```typescript
22
+ // With navigation link
23
+ <CampaignCardAdmin
24
+ campaign={{
25
+ id: 'camp_123',
26
+ name: 'Q3 Product Launch',
27
+ description: 'Multi-channel awareness campaign',
28
+ start_date: '2024-07-01',
29
+ goals: [{ id: 1 }, { id: 2 }],
30
+ }}
31
+ anchorProps={{
32
+ href: '/campaigns/camp_123',
33
+ target: '_blank',
34
+ rel: 'noopener noreferrer',
35
+ }}
36
+ />
37
+
38
+ // Static (no navigation)
39
+ <CampaignCardAdmin
40
+ campaign={{ id: 'camp_123', name: 'Q3 Launch' }}
41
+ />
42
+
43
+ // Loading state
44
+ <CampaignCardAdminSkeleton className="my-2" />
45
+ ```
46
+
47
+ > **Note:** This is the chat-inline compact variant only. The full-size admin card (with delete/manage actions) is managed by the hub, not this component.
@@ -0,0 +1,58 @@
1
+ <!-- source-hash: 02a29dbf8a78be028a2e952b979247a7 -->
2
+ Pure presentation component for displaying MSP case studies in two density modes — `default` (vertical detail card) and `sm` (compact horizontal for chat-inline rendering).
3
+
4
+ ## Key Components
5
+
6
+ ### `CaseStudyCard`
7
+ Main card component. Renders a linked, non-interactive card (no click logic — callers wrap with their own anchor and pass a resolved `href`). Supports:
8
+ - **`default` size**: Full vertical layout with OG-ratio cover image (`1200×630`), title, and author/MSP attribution with avatar stack.
9
+ - **`sm` size**: Compact horizontal layout for embedding in chat threads.
10
+
11
+ ### `CaseStudyCardSkeleton`
12
+ Loading placeholder that mirrors the exact layout and aspect ratios of `CaseStudyCard` for both size variants, using `animate-pulse`.
13
+
14
+ ### Image Fallback Chain
15
+ ```text
16
+ study.featured_image → placeholderUrl (from useOgPlaceholder) → bg-ods-bg background
17
+ ```
18
+
19
+ ## Key Props (`CaseStudyCardProps`)
20
+
21
+ | Prop | Type | Description |
22
+ |------|------|-------------|
23
+ | `study` | `CaseStudy` | Case study data object |
24
+ | `href` | `string` | Resolved detail URL (caller-provided) |
25
+ | `target` | `'_blank'` | Opens in new tab (set by chat dispatch) |
26
+ | `placeholderUrl` | `string \| null` | OG fallback image when `featured_image` is missing |
27
+ | `size` | `'default' \| 'sm'` | Card density mode |
28
+
29
+ ## Usage Example
30
+
31
+ ```typescript
32
+ import { CaseStudyCard, CaseStudyCardSkeleton } from './case-study-card'
33
+ import { useOgPlaceholder } from '../hooks/use-og-placeholder'
34
+
35
+ function CaseStudyGrid({ studies }: { studies: CaseStudy[] }) {
36
+ const placeholderUrl = useOgPlaceholder(study.id)
37
+
38
+ if (!studies) return <CaseStudyCardSkeleton size="default" />
39
+
40
+ return (
41
+ <CaseStudyCard
42
+ study={study}
43
+ href={`/case-studies/${study.slug}`}
44
+ placeholderUrl={placeholderUrl}
45
+ size="default"
46
+ />
47
+ )
48
+ }
49
+
50
+ // Chat-inline compact variant
51
+ <CaseStudyCard
52
+ study={study}
53
+ href={`/case-studies/${study.slug}`}
54
+ target="_blank"
55
+ rel="noopener noreferrer"
56
+ size="sm"
57
+ />
58
+ ```