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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (806) hide show
  1. package/dist/{chunk-QKFBZLIR.js → chunk-5OWDOFKK.js} +2 -2
  2. package/dist/chunk-CZR7ARBA.js +698 -0
  3. package/dist/chunk-CZR7ARBA.js.map +1 -0
  4. package/dist/{chunk-UYQOPC57.js → chunk-HICZPTRR.js} +4 -351
  5. package/dist/chunk-HICZPTRR.js.map +1 -0
  6. package/dist/{chunk-5BNWGK6D.js → chunk-HWY35EAK.js} +3 -3
  7. package/dist/{chunk-VTUIMMHO.cjs → chunk-IZL2KEH6.cjs} +26 -26
  8. package/dist/{chunk-VTUIMMHO.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
  9. package/dist/{chunk-ZFBLC5GV.cjs → chunk-KDNGUYZM.cjs} +17 -17
  10. package/dist/{chunk-ZFBLC5GV.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
  11. package/dist/chunk-OZ3GH6OQ.cjs +698 -0
  12. package/dist/chunk-OZ3GH6OQ.cjs.map +1 -0
  13. package/dist/{chunk-3E5ANY55.js → chunk-UKND27XC.js} +410 -544
  14. package/dist/chunk-UKND27XC.js.map +1 -0
  15. package/dist/{chunk-EH3RWVF3.cjs → chunk-WT5JV2GS.cjs} +8 -355
  16. package/dist/chunk-WT5JV2GS.cjs.map +1 -0
  17. package/dist/{chunk-WI76ZUBE.cjs → chunk-YZUUFTIK.cjs} +545 -679
  18. package/dist/chunk-YZUUFTIK.cjs.map +1 -0
  19. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
  20. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts +0 -9
  21. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
  22. package/dist/components/chat/index.cjs +5 -4
  23. package/dist/components/chat/index.cjs.map +1 -1
  24. package/dist/components/chat/index.js +4 -3
  25. package/dist/components/contact/index.cjs +6 -5
  26. package/dist/components/contact/index.cjs.map +1 -1
  27. package/dist/components/contact/index.js +5 -4
  28. package/dist/components/features/index.cjs +5 -4
  29. package/dist/components/features/index.cjs.map +1 -1
  30. package/dist/components/features/index.js +4 -3
  31. package/dist/components/features/notifications/index.d.ts +2 -2
  32. package/dist/components/features/notifications/index.d.ts.map +1 -1
  33. package/dist/components/features/notifications/notifications-context.d.ts +16 -1
  34. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  35. package/dist/components/features/notifications/types.d.ts +4 -0
  36. package/dist/components/features/notifications/types.d.ts.map +1 -1
  37. package/dist/components/index.cjs +55 -54
  38. package/dist/components/index.cjs.map +1 -1
  39. package/dist/components/index.js +7 -6
  40. package/dist/components/index.js.map +1 -1
  41. package/dist/components/navigation/app-header.d.ts.map +1 -1
  42. package/dist/components/navigation/index.cjs +5 -4
  43. package/dist/components/navigation/index.cjs.map +1 -1
  44. package/dist/components/navigation/index.js +4 -3
  45. package/dist/components/tickets/index.cjs +66 -65
  46. package/dist/components/tickets/index.cjs.map +1 -1
  47. package/dist/components/tickets/index.js +6 -5
  48. package/dist/components/tickets/index.js.map +1 -1
  49. package/dist/components/ui/index.cjs +5 -4
  50. package/dist/components/ui/index.cjs.map +1 -1
  51. package/dist/components/ui/index.js +4 -3
  52. package/dist/embed-shims/index.cjs +3 -3
  53. package/dist/embed-shims/index.cjs.map +1 -1
  54. package/dist/embed-shims/index.js +4 -4
  55. package/dist/hooks/index.cjs +3 -2
  56. package/dist/hooks/index.cjs.map +1 -1
  57. package/dist/hooks/index.js +2 -1
  58. package/dist/index.cjs +5 -4
  59. package/dist/index.cjs.map +1 -1
  60. package/dist/index.js +4 -3
  61. package/dist/nats/index.cjs +28 -346
  62. package/dist/nats/index.cjs.map +1 -1
  63. package/dist/nats/index.d.ts +3 -0
  64. package/dist/nats/index.d.ts.map +1 -1
  65. package/dist/nats/index.js +30 -346
  66. package/dist/nats/index.js.map +1 -1
  67. package/dist/nats/nats-provider.d.ts +28 -0
  68. package/dist/nats/nats-provider.d.ts.map +1 -0
  69. package/dist/nats/nats.d.ts +1 -0
  70. package/dist/nats/nats.d.ts.map +1 -1
  71. package/dist/nats/shared-connection.d.ts +73 -0
  72. package/dist/nats/shared-connection.d.ts.map +1 -0
  73. package/dist/nats/use-nats-subscription.d.ts +18 -0
  74. package/dist/nats/use-nats-subscription.d.ts.map +1 -0
  75. package/package.json +1 -1
  76. package/src/.index.md +36 -34
  77. package/src/components/.alert-dialog.md +27 -23
  78. package/src/components/.announcement-bar.md +26 -21
  79. package/src/components/.breadcrumb.md +19 -15
  80. package/src/components/.calendar.md +24 -19
  81. package/src/components/.categories-cart.md +29 -24
  82. package/src/components/.checkbox.md +23 -25
  83. package/src/components/.chevron-button.md +37 -32
  84. package/src/components/.comment-card.md +32 -62
  85. package/src/components/.dialog.md +26 -26
  86. package/src/components/.dynamic-skeleton.md +54 -57
  87. package/src/components/.empty-state.md +42 -51
  88. package/src/components/.faq-accordion.md +27 -21
  89. package/src/components/.filter-chip.md +41 -24
  90. package/src/components/.flamingo-logo.md +20 -23
  91. package/src/components/.footer-waitlist-button.md +29 -22
  92. package/src/components/.footer.md +32 -32
  93. package/src/components/.icons-block.md +27 -17
  94. package/src/components/.image-cropper.md +41 -32
  95. package/src/components/.index.md +33 -39
  96. package/src/components/.input.md +31 -35
  97. package/src/components/.logs-list.md +31 -20
  98. package/src/components/.media-carousel.md +35 -36
  99. package/src/components/.open-source-features.md +33 -16
  100. package/src/components/.pagination.md +52 -51
  101. package/src/components/.provider-button.md +21 -23
  102. package/src/components/.select.md +31 -20
  103. package/src/components/.sidebar.md +34 -24
  104. package/src/components/.smooth-accordion.md +29 -24
  105. package/src/components/.social-icon-row.md +36 -32
  106. package/src/components/.textarea.md +25 -31
  107. package/src/components/.tool-icon.md +24 -26
  108. package/src/components/.unified-filter-logic.md +37 -30
  109. package/src/components/.unified-pagination.md +23 -22
  110. package/src/components/.user-summary-stub.md +38 -22
  111. package/src/components/.vendor-display-button.md +25 -25
  112. package/src/components/.vendor-icon.md +33 -25
  113. package/src/components/.why-it-matters.md +28 -25
  114. package/src/components/chat/.approval-batch-message.md +51 -0
  115. package/src/components/chat/.approval-request-message.md +35 -34
  116. package/src/components/chat/.chat-attachment-bar.md +64 -0
  117. package/src/components/chat/.chat-container.md +36 -18
  118. package/src/components/chat/.chat-input.md +37 -20
  119. package/src/components/chat/.chat-message-enhanced.md +30 -49
  120. package/src/components/chat/.chat-message-list.md +45 -32
  121. package/src/components/chat/.chat-message-skeleton.md +26 -22
  122. package/src/components/chat/.chat-panel-context.md +52 -0
  123. package/src/components/chat/.chat-ref.types.md +42 -0
  124. package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
  125. package/src/components/chat/.chat-sidebar.md +31 -26
  126. package/src/components/chat/.chat-ticket-list.md +39 -0
  127. package/src/components/chat/.context-compaction-display.md +36 -0
  128. package/src/components/chat/.cycling-phrase.md +52 -0
  129. package/src/components/chat/.embeddable-chat.md +48 -0
  130. package/src/components/chat/.expand-chevron.md +24 -0
  131. package/src/components/chat/.index.md +31 -35
  132. package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
  133. package/src/components/chat/.mingo-onboarding-card.md +62 -0
  134. package/src/components/chat/.model-display.md +32 -30
  135. package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
  136. package/src/components/chat/.remark-card-links.md +38 -0
  137. package/src/components/chat/.slash-command-suggestions.md +47 -0
  138. package/src/components/chat/.source-action-button.md +48 -0
  139. package/src/components/chat/.thinking-display.md +42 -0
  140. package/src/components/chat/.tool-call-blocks.md +45 -0
  141. package/src/components/chat/.tool-execution-display.md +44 -36
  142. package/src/components/chat/chat-container.tsx +1 -1
  143. package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
  144. package/src/components/chat/entity-cards/.block-card.md +47 -0
  145. package/src/components/chat/entity-cards/.blog-card.md +52 -0
  146. package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
  147. package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
  148. package/src/components/chat/entity-cards/.case-study-card.md +58 -0
  149. package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
  150. package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
  151. package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
  152. package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
  153. package/src/components/chat/entity-cards/.dispatch.md +39 -0
  154. package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
  155. package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
  156. package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
  157. package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
  158. package/src/components/chat/entity-cards/.index.md +66 -0
  159. package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
  160. package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
  161. package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
  162. package/src/components/chat/entity-cards/.product-release-card.md +29 -0
  163. package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
  164. package/src/components/chat/entity-cards/.program-card.md +59 -0
  165. package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
  166. package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
  167. package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
  168. package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
  169. package/src/components/chat/hooks/.index.md +36 -21
  170. package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
  171. package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
  172. package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
  173. package/src/components/chat/hooks/.use-chat-identity.md +45 -0
  174. package/src/components/chat/hooks/.use-chat.md +58 -0
  175. package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
  176. package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
  177. package/src/components/chat/hooks/.use-collapsible.md +48 -0
  178. package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
  179. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
  180. package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
  181. package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
  182. package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
  183. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
  184. package/src/components/chat/hooks/.use-slash-commands.md +46 -0
  185. package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
  186. package/src/components/chat/hooks/.use-sse.md +60 -0
  187. package/src/components/chat/hooks/.use-unified-chat.md +57 -0
  188. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +60 -207
  189. package/src/components/chat/hooks/use-nats-dialog-subscription.ts +71 -214
  190. package/src/components/chat/types/.api.types.md +52 -38
  191. package/src/components/chat/types/.chat.types.md +43 -34
  192. package/src/components/chat/types/.component.types.md +47 -48
  193. package/src/components/chat/types/.index.md +20 -27
  194. package/src/components/chat/types/.message.types.md +58 -48
  195. package/src/components/chat/types/.network.types.md +57 -31
  196. package/src/components/chat/types/.processing.types.md +49 -31
  197. package/src/components/chat/types/.unified-chat-state.types.md +41 -0
  198. package/src/components/chat/types/entities/.blog.md +43 -0
  199. package/src/components/chat/types/entities/.case-study.md +26 -0
  200. package/src/components/chat/types/entities/.content-ref.md +41 -0
  201. package/src/components/chat/types/entities/.customer-interview.md +28 -0
  202. package/src/components/chat/types/entities/.data-room-doc.md +36 -0
  203. package/src/components/chat/types/entities/.github-activity.md +43 -0
  204. package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
  205. package/src/components/chat/types/entities/.index.md +42 -0
  206. package/src/components/chat/types/entities/.investor-update.md +45 -0
  207. package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
  208. package/src/components/chat/types/entities/.program-types.md +57 -0
  209. package/src/components/chat/types/entities/.roadmap-item.md +58 -0
  210. package/src/components/chat/types/entities/.slack-message.md +35 -0
  211. package/src/components/chat/utils/.agent-status-message.md +45 -0
  212. package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
  213. package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
  214. package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
  215. package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
  216. package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
  217. package/src/components/chat/utils/.chip-action-class.md +34 -0
  218. package/src/components/chat/utils/.chip-styles.md +46 -0
  219. package/src/components/chat/utils/.chunk-parser.md +38 -28
  220. package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
  221. package/src/components/chat/utils/.compact-card-classes.md +62 -0
  222. package/src/components/chat/utils/.decide-new-tab.md +51 -0
  223. package/src/components/chat/utils/.external-app-urls.md +29 -0
  224. package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
  225. package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
  226. package/src/components/chat/utils/.icon-registry.md +46 -0
  227. package/src/components/chat/utils/.index.md +37 -32
  228. package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
  229. package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
  230. package/src/components/chat/utils/.nav-anchor-props.md +44 -0
  231. package/src/components/chat/utils/.nav-click-handler.md +47 -0
  232. package/src/components/chat/utils/.onboarding-icons.md +28 -0
  233. package/src/components/chat/utils/.process-historical-messages.md +46 -35
  234. package/src/components/chat/utils/.scroll-anchor.md +40 -0
  235. package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
  236. package/src/components/chat/utils/.source-icons.md +35 -0
  237. package/src/components/chat/utils/.source-row-cta.md +54 -0
  238. package/src/components/chat/utils/.tool-call-helpers.md +42 -0
  239. package/src/components/contact/.contact-form.md +43 -0
  240. package/src/components/contact/.index.md +27 -0
  241. package/src/components/features/.array-entry-manager.md +36 -45
  242. package/src/components/features/.changelog-manager.md +47 -21
  243. package/src/components/features/.changelog-sections-manager.md +21 -26
  244. package/src/components/features/.command-box.md +31 -28
  245. package/src/components/features/.entity-summary-editor.md +46 -0
  246. package/src/components/features/.entity-video-section.md +51 -0
  247. package/src/components/features/.figma-prototype-viewer.md +48 -29
  248. package/src/components/features/.filters-dropdown.md +33 -46
  249. package/src/components/features/.highlight-config-section.md +42 -0
  250. package/src/components/features/.highlight-generation-section.md +46 -0
  251. package/src/components/features/.highlight-video-combined-section.md +47 -0
  252. package/src/components/features/.highlight-video-preview.md +44 -0
  253. package/src/components/features/.highlight-video-section.md +47 -0
  254. package/src/components/features/.index.md +40 -66
  255. package/src/components/features/.media-gallery-manager.md +48 -38
  256. package/src/components/features/.more-about-button.md +22 -19
  257. package/src/components/features/.og-editor-preview.md +40 -36
  258. package/src/components/features/.parallax-image-showcase.md +33 -26
  259. package/src/components/features/.paths-display.md +42 -43
  260. package/src/components/features/.platform-badge.md +37 -36
  261. package/src/components/features/.platform-filter.md +23 -16
  262. package/src/components/features/.policy-configuration-panel.md +48 -56
  263. package/src/components/features/.provider-button.md +33 -36
  264. package/src/components/features/.push-button-selector.md +40 -29
  265. package/src/components/features/.release-media-manager.md +46 -31
  266. package/src/components/features/.section-selector.md +26 -31
  267. package/src/components/features/.select-button.md +35 -25
  268. package/src/components/features/.seo-editor-preview.md +41 -44
  269. package/src/components/features/.social-links-manager.md +25 -19
  270. package/src/components/features/.start-with-openframe-button.md +37 -29
  271. package/src/components/features/.status-filter-component.md +36 -20
  272. package/src/components/features/.tags-selector.md +40 -24
  273. package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
  274. package/src/components/features/.transcribe-summarize-section.md +48 -0
  275. package/src/components/features/.transcript-summary-editor.md +53 -0
  276. package/src/components/features/.video-bites-display.md +46 -0
  277. package/src/components/features/.video-clips-section.md +41 -0
  278. package/src/components/features/.video-ratio-tabs.md +56 -0
  279. package/src/components/features/.video-source-selector.md +60 -0
  280. package/src/components/features/.video.md +44 -0
  281. package/src/components/features/.waitlist-form.md +60 -0
  282. package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
  283. package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
  284. package/src/components/features/board/.board-column-header.md +38 -0
  285. package/src/components/features/board/.board-column.md +43 -0
  286. package/src/components/features/board/.board.md +51 -0
  287. package/src/components/features/board/.color-utils.md +26 -0
  288. package/src/components/features/board/.index.md +56 -0
  289. package/src/components/features/board/.ticket-card-skeleton.md +38 -0
  290. package/src/components/features/board/.ticket-card.md +47 -0
  291. package/src/components/features/board/.types.md +45 -0
  292. package/src/components/features/board/.use-board-collapse.md +34 -0
  293. package/src/components/features/notifications/.index.md +57 -0
  294. package/src/components/features/notifications/.notification-drawer.md +34 -0
  295. package/src/components/features/notifications/.notification-tile.md +39 -0
  296. package/src/components/features/notifications/.notifications-context.md +73 -0
  297. package/src/components/features/notifications/.types.md +45 -0
  298. package/src/components/features/notifications/index.ts +2 -1
  299. package/src/components/features/notifications/notifications-context.tsx +104 -6
  300. package/src/components/features/notifications/types.ts +5 -0
  301. package/src/components/icons/.about-icon.md +20 -28
  302. package/src/components/icons/.ai-robot-icon.md +15 -17
  303. package/src/components/icons/.bash-icon.md +16 -23
  304. package/src/components/icons/.buildings-icon.md +10 -24
  305. package/src/components/icons/.capterra-icon.md +30 -26
  306. package/src/components/icons/.carta-icon.md +29 -0
  307. package/src/components/icons/.clickup-icon.md +26 -0
  308. package/src/components/icons/.cmd-icon.md +15 -22
  309. package/src/components/icons/.coins-icon.md +17 -25
  310. package/src/components/icons/.community-hub-icon.md +19 -25
  311. package/src/components/icons/.community-icon.md +24 -21
  312. package/src/components/icons/.compare-icon.md +32 -19
  313. package/src/components/icons/.copy-icon.md +29 -15
  314. package/src/components/icons/.custom-external-link-icon.md +19 -17
  315. package/src/components/icons/.custom-fork-icon.md +32 -21
  316. package/src/components/icons/.custom-license-icon.md +29 -25
  317. package/src/components/icons/.custom-star-icon.md +20 -28
  318. package/src/components/icons/.custom-time-icon.md +21 -22
  319. package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
  320. package/src/components/icons/.dashboard-icon.md +13 -18
  321. package/src/components/icons/.deno-icon.md +16 -23
  322. package/src/components/icons/.donut-icon.md +12 -23
  323. package/src/components/icons/.double-chevron-icon.md +28 -36
  324. package/src/components/icons/.elestio-logo.md +13 -23
  325. package/src/components/icons/.empty-vendor-icon.md +16 -18
  326. package/src/components/icons/.explore-categories-icon.md +18 -29
  327. package/src/components/icons/.eye-icon.md +16 -26
  328. package/src/components/icons/.facebook-icon.md +9 -20
  329. package/src/components/icons/.figma-icon.md +8 -17
  330. package/src/components/icons/.filter-icon.md +15 -17
  331. package/src/components/icons/.flamingo-logo.md +28 -27
  332. package/src/components/icons/.folder-shield-icon.md +28 -19
  333. package/src/components/icons/.g2-icon.md +22 -21
  334. package/src/components/icons/.getapp-icon.md +25 -21
  335. package/src/components/icons/.github-icon.md +13 -25
  336. package/src/components/icons/.globe-icon.md +14 -19
  337. package/src/components/icons/.google-gemini-icon.md +16 -19
  338. package/src/components/icons/.google-logo.md +15 -21
  339. package/src/components/icons/.grid-view-icon.md +30 -19
  340. package/src/components/icons/.hamburger-icon.md +22 -20
  341. package/src/components/icons/.hand-dollar-icon.md +24 -34
  342. package/src/components/icons/.hotel-icon.md +27 -21
  343. package/src/components/icons/.icon-utils.md +28 -29
  344. package/src/components/icons/.image-icon.md +15 -22
  345. package/src/components/icons/.index.md +25 -28
  346. package/src/components/icons/.info-circle-icon.md +29 -30
  347. package/src/components/icons/.instagram-icon.md +10 -24
  348. package/src/components/icons/.jump-in-icon.md +18 -18
  349. package/src/components/icons/.linux-icon.md +18 -18
  350. package/src/components/icons/.log-out-icon.md +15 -23
  351. package/src/components/icons/.logs-icon.md +14 -23
  352. package/src/components/icons/.margin-crisis-icon.md +21 -20
  353. package/src/components/icons/.menu-icon.md +18 -19
  354. package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
  355. package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
  356. package/src/components/icons/.mlg-logo.md +18 -16
  357. package/src/components/icons/.moon-icon.md +32 -22
  358. package/src/components/icons/.ms-icon.md +30 -19
  359. package/src/components/icons/.nushell-icon.md +7 -21
  360. package/src/components/icons/.open-source-icon.md +19 -23
  361. package/src/components/icons/.openai-icon.md +9 -24
  362. package/src/components/icons/.openframe-ai-icons.md +25 -26
  363. package/src/components/icons/.openframe-logo.md +28 -22
  364. package/src/components/icons/.openframe-text.md +24 -27
  365. package/src/components/icons/.openmsp-logo.md +26 -23
  366. package/src/components/icons/.pilot-icon.md +23 -0
  367. package/src/components/icons/.powershell-icon.md +17 -22
  368. package/src/components/icons/.python-icon.md +16 -23
  369. package/src/components/icons/.queries-icon.md +13 -21
  370. package/src/components/icons/.reddit-icon.md +28 -24
  371. package/src/components/icons/.remote-control-icon.md +13 -17
  372. package/src/components/icons/.script-icon.md +27 -19
  373. package/src/components/icons/.search-icon.md +21 -21
  374. package/src/components/icons/.send-icon.md +14 -16
  375. package/src/components/icons/.settings-icon.md +30 -19
  376. package/src/components/icons/.shape-circle-dash-icon.md +16 -21
  377. package/src/components/icons/.shell-icon.md +15 -19
  378. package/src/components/icons/.shield-check-icon.md +18 -31
  379. package/src/components/icons/.shield-key-icon.md +25 -25
  380. package/src/components/icons/.shield-lock-icon.md +8 -18
  381. package/src/components/icons/.slack-icon.md +28 -32
  382. package/src/components/icons/.sparkles-icon.md +18 -23
  383. package/src/components/icons/.sso-configuration-icon.md +29 -16
  384. package/src/components/icons/.sun-icon.md +20 -18
  385. package/src/components/icons/.table-view-icon.md +17 -19
  386. package/src/components/icons/.telegram-icon.md +8 -22
  387. package/src/components/icons/.thumbs-down-icon.md +10 -19
  388. package/src/components/icons/.thumbs-up-icon.md +8 -17
  389. package/src/components/icons/.tool-directory-icons.md +24 -28
  390. package/src/components/icons/.trustpilot-icon.md +25 -22
  391. package/src/components/icons/.user-icon.md +26 -28
  392. package/src/components/icons/.users-group-icon.md +28 -24
  393. package/src/components/icons/.vendor-showcase-icons.md +21 -29
  394. package/src/components/icons/.vendors-icon.md +18 -22
  395. package/src/components/icons/.whatsapp-icon.md +30 -14
  396. package/src/components/icons/.x-icon.md +18 -23
  397. package/src/components/icons/.x-logo.md +13 -38
  398. package/src/components/icons/.youtube-icon.md +8 -19
  399. package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
  400. package/src/components/icons-v2-generated/.index.md +52 -0
  401. package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
  402. package/src/components/icons-v2-generated/arrows/.index.md +39 -0
  403. package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
  404. package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
  405. package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
  406. package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
  407. package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
  408. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
  409. package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
  410. package/src/components/icons-v2-generated/buildings/.index.md +48 -0
  411. package/src/components/icons-v2-generated/charts/.index.md +40 -0
  412. package/src/components/icons-v2-generated/clothes/.index.md +48 -0
  413. package/src/components/icons-v2-generated/coding/.index.md +42 -0
  414. package/src/components/icons-v2-generated/communication/.index.md +39 -0
  415. package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
  416. package/src/components/icons-v2-generated/design/.index.md +39 -0
  417. package/src/components/icons-v2-generated/devices/.index.md +38 -0
  418. package/src/components/icons-v2-generated/documents/.index.md +38 -0
  419. package/src/components/icons-v2-generated/finance/.index.md +34 -0
  420. package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
  421. package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
  422. package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
  423. package/src/components/icons-v2-generated/health/.index.md +40 -0
  424. package/src/components/icons-v2-generated/household/.index.md +45 -0
  425. package/src/components/icons-v2-generated/interface/.index.md +36 -0
  426. package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
  427. package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
  428. package/src/components/icons-v2-generated/number/.index.md +41 -0
  429. package/src/components/icons-v2-generated/school/.index.md +37 -0
  430. package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
  431. package/src/components/icons-v2-generated/security/.index.md +39 -0
  432. package/src/components/icons-v2-generated/shopping/.index.md +42 -0
  433. package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
  434. package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
  435. package/src/components/icons-v2-generated/sport/.index.md +41 -0
  436. package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
  437. package/src/components/icons-v2-generated/users/.index.md +45 -0
  438. package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
  439. package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
  440. package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
  441. package/src/components/layout/.article-detail-layout.md +43 -0
  442. package/src/components/layout/.back-button.md +40 -0
  443. package/src/components/layout/.list-page-layout.md +35 -26
  444. package/src/components/layout/.page-container.md +27 -38
  445. package/src/components/layout/.page-layout.md +50 -0
  446. package/src/components/layout/.title-block.md +42 -0
  447. package/src/components/loading/.card-skeleton.md +38 -29
  448. package/src/components/loading/.device-card-skeleton.md +29 -25
  449. package/src/components/loading/.index.md +39 -46
  450. package/src/components/loading/.margin-report-skeleton.md +45 -34
  451. package/src/components/loading/.organization-card-skeleton.md +39 -44
  452. package/src/components/loading/.page-layout-skeleton.md +34 -45
  453. package/src/components/loading/.unified-skeleton.md +62 -36
  454. package/src/components/navigation/.app-header.md +40 -29
  455. package/src/components/navigation/.app-layout.md +25 -26
  456. package/src/components/navigation/.header-global-search.md +34 -37
  457. package/src/components/navigation/.header-organization-filter.md +23 -22
  458. package/src/components/navigation/.header.md +31 -35
  459. package/src/components/navigation/.mobile-burger-menu.md +39 -47
  460. package/src/components/navigation/.mobile-nav-panel.md +51 -32
  461. package/src/components/navigation/.navigation-sidebar-header.md +36 -0
  462. package/src/components/navigation/.navigation-sidebar-item.md +45 -0
  463. package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
  464. package/src/components/navigation/.navigation-sidebar.md +33 -34
  465. package/src/components/navigation/.sliding-sidebar.md +52 -41
  466. package/src/components/navigation/.sticky-section-nav.md +56 -48
  467. package/src/components/navigation/app-header.tsx +7 -9
  468. package/src/components/platform/.ScriptArguments.md +39 -25
  469. package/src/components/platform/.ScriptInfoSection.md +30 -26
  470. package/src/components/platform/.ShellTypeBadge.md +18 -13
  471. package/src/components/platform/.SoftwareInfo.md +23 -27
  472. package/src/components/platform/.SoftwareSourceBadge.md +28 -19
  473. package/src/components/platform/.ToolBadge.md +25 -26
  474. package/src/components/providers/.theme-provider.md +52 -0
  475. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  476. package/src/components/shared/delivery/.delivery-row.md +41 -0
  477. package/src/components/shared/delivery/.delivery-table.md +41 -0
  478. package/src/components/shared/delivery/.index.md +38 -0
  479. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  480. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  481. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  482. package/src/components/shared/dev-section/.index.md +38 -0
  483. package/src/components/shared/legal-document/.index.md +40 -0
  484. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  485. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  486. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  487. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  488. package/src/components/shared/product-release/.index.md +28 -30
  489. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  490. package/src/components/shared/product-release/.product-release-card.md +45 -27
  491. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  492. package/src/components/shared/roadmap/.index.md +37 -0
  493. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  494. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  495. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  496. package/src/components/tickets/.help-center-card.md +51 -0
  497. package/src/components/tickets/.help-center-create-form.md +38 -0
  498. package/src/components/tickets/.help-center-list.md +40 -0
  499. package/src/components/tickets/.index.md +65 -0
  500. package/src/components/tickets/.ticket-center.md +51 -0
  501. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  502. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  503. package/src/components/tickets/.ticket-open-form.md +50 -0
  504. package/src/components/tickets/.ticket-row.md +30 -0
  505. package/src/components/tickets/.types.md +57 -0
  506. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  507. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  508. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  509. package/src/components/ui/.actions-menu.md +66 -41
  510. package/src/components/ui/.alert-dialog.md +29 -26
  511. package/src/components/ui/.allowed-domains-input.md +29 -21
  512. package/src/components/ui/.assignee-dropdown.md +45 -0
  513. package/src/components/ui/.autocomplete.md +47 -41
  514. package/src/components/ui/.benefit-card.md +51 -36
  515. package/src/components/ui/.brand-association-card.md +30 -27
  516. package/src/components/ui/.breadcrumb.md +17 -15
  517. package/src/components/ui/.checkbox-block.md +39 -35
  518. package/src/components/ui/.checkbox-with-description.md +23 -16
  519. package/src/components/ui/.checkbox.md +31 -23
  520. package/src/components/ui/.circular-progress.md +49 -19
  521. package/src/components/ui/.content-loader.md +32 -20
  522. package/src/components/ui/.cursor-pagination.md +41 -52
  523. package/src/components/ui/.dashboard-info-card.md +33 -26
  524. package/src/components/ui/.date-picker.md +27 -25
  525. package/src/components/ui/.device-card-compact.md +28 -29
  526. package/src/components/ui/.device-card.md +27 -27
  527. package/src/components/ui/.dialog.md +25 -16
  528. package/src/components/ui/.drawer.md +86 -0
  529. package/src/components/ui/.dropdown-button.md +45 -0
  530. package/src/components/ui/.entity-image.md +46 -0
  531. package/src/components/ui/.error-state.md +41 -28
  532. package/src/components/ui/.feature-card.md +35 -31
  533. package/src/components/ui/.feature-list.md +48 -0
  534. package/src/components/ui/.field-wrapper.md +47 -0
  535. package/src/components/ui/.file-upload.md +42 -0
  536. package/src/components/ui/.filter-checkbox-item.md +43 -0
  537. package/src/components/ui/.filter-list.md +57 -0
  538. package/src/components/ui/.filter-modal.md +59 -0
  539. package/src/components/ui/.floating-tooltip.md +43 -26
  540. package/src/components/ui/.hidden-tags-popup.md +49 -0
  541. package/src/components/ui/.hover-dropdown.md +54 -0
  542. package/src/components/ui/.image-gallery-modal.md +41 -34
  543. package/src/components/ui/.image-uploader.md +53 -0
  544. package/src/components/ui/.index.md +40 -34
  545. package/src/components/ui/.info-card.md +31 -31
  546. package/src/components/ui/.info-row.md +31 -27
  547. package/src/components/ui/.input-trigger.md +44 -0
  548. package/src/components/ui/.input.md +37 -31
  549. package/src/components/ui/.markdown-editor.md +57 -0
  550. package/src/components/ui/.modal-v2.md +51 -0
  551. package/src/components/ui/.modal.md +32 -31
  552. package/src/components/ui/.more-actions-menu.md +45 -38
  553. package/src/components/ui/.organization-card.md +31 -37
  554. package/src/components/ui/.page-actions.md +44 -54
  555. package/src/components/ui/.phone-input.md +54 -0
  556. package/src/components/ui/.progress-bar.md +35 -27
  557. package/src/components/ui/.radio-group.md +39 -27
  558. package/src/components/ui/.release-changelog-section.md +34 -34
  559. package/src/components/ui/.search-input.md +48 -0
  560. package/src/components/ui/.select.md +54 -34
  561. package/src/components/ui/.service-card.md +42 -40
  562. package/src/components/ui/.sheet.md +27 -18
  563. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  564. package/src/components/ui/.sort-column-item.md +42 -0
  565. package/src/components/ui/.square-avatar.md +34 -24
  566. package/src/components/ui/.status-badge.md +26 -38
  567. package/src/components/ui/.switch.md +22 -35
  568. package/src/components/ui/.tab-navigation.md +56 -53
  569. package/src/components/ui/.tab-selector.md +40 -0
  570. package/src/components/ui/.tag-key-value-filter.md +56 -0
  571. package/src/components/ui/.tag-search-input.md +53 -0
  572. package/src/components/ui/.tag.md +49 -31
  573. package/src/components/ui/.tags-manager.md +60 -0
  574. package/src/components/ui/.textarea.md +44 -34
  575. package/src/components/ui/.ticket-attachments-list.md +45 -0
  576. package/src/components/ui/.ticket-detail-section.md +29 -0
  577. package/src/components/ui/.ticket-info-section.md +56 -0
  578. package/src/components/ui/.ticket-note-card.md +53 -0
  579. package/src/components/ui/.ticket-notes-section.md +54 -0
  580. package/src/components/ui/.ticket-status-tag.md +49 -0
  581. package/src/components/ui/.title-content-block.md +25 -26
  582. package/src/components/ui/.toaster.md +40 -28
  583. package/src/components/ui/.tooltip.md +22 -11
  584. package/src/components/ui/.truncate-text.md +39 -0
  585. package/src/components/ui/button/.button-styles.md +35 -0
  586. package/src/components/ui/button/.button.md +53 -0
  587. package/src/components/ui/button/.split-button.md +48 -0
  588. package/src/components/ui/data-table/.data-table-body.md +48 -0
  589. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  590. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  591. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  592. package/src/components/ui/data-table/.data-table-header.md +55 -0
  593. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  594. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  595. package/src/components/ui/data-table/.data-table-row.md +47 -0
  596. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  597. package/src/components/ui/data-table/.data-table.md +47 -0
  598. package/src/components/ui/data-table/.index.md +55 -0
  599. package/src/components/ui/data-table/.types.md +54 -0
  600. package/src/components/ui/data-table/.use-data-table.md +45 -0
  601. package/src/components/ui/data-table/.utils.md +38 -0
  602. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  603. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  604. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  605. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  606. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  607. package/src/components/ui/file-manager/.file-manager.md +35 -31
  608. package/src/components/ui/query-report-table/.index.md +43 -0
  609. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  610. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  611. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  612. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  613. package/src/components/ui/query-report-table/.types.md +41 -0
  614. package/src/components/ui/query-report-table/.utils.md +35 -0
  615. package/src/components/ui/table/.index.md +27 -48
  616. package/src/components/ui/table/.table-cell.md +18 -27
  617. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  618. package/src/components/ui/table/.table-description-cell.md +24 -14
  619. package/src/components/ui/table/.table-empty-state.md +21 -22
  620. package/src/components/ui/table/.table-header.md +25 -40
  621. package/src/components/ui/table/.table-row.md +22 -40
  622. package/src/components/ui/table/.table-skeleton.md +33 -26
  623. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  624. package/src/components/ui/table/.table.md +39 -59
  625. package/src/components/ui/table/.types.md +44 -36
  626. package/src/components/ui/table/.utils.md +18 -20
  627. package/src/contexts/.chat-runtime-context.md +54 -0
  628. package/src/contexts/.endpoints-runtime-context.md +58 -0
  629. package/src/contexts/.index.md +53 -0
  630. package/src/contexts/.use-outer-or-default.md +36 -0
  631. package/src/embed-shims/.index.md +45 -0
  632. package/src/embed-shims/.next-dynamic.md +43 -0
  633. package/src/embed-shims/.next-image.md +45 -0
  634. package/src/embed-shims/.next-link.md +59 -0
  635. package/src/embed-shims/.next-navigation.md +59 -0
  636. package/src/hooks/.index.md +34 -29
  637. package/src/hooks/.use-access-code-integration.md +49 -0
  638. package/src/hooks/.use-contact-submission.md +37 -26
  639. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  640. package/src/hooks/.use-near-viewport.md +44 -0
  641. package/src/hooks/.use-og-placeholder.md +51 -0
  642. package/src/hooks/.use-toast.md +36 -35
  643. package/src/hooks/state/.use-api-params.md +29 -46
  644. package/src/hooks/state/.use-query-params.md +37 -33
  645. package/src/hooks/ui/.index.md +33 -32
  646. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  647. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  648. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  649. package/src/hooks/ui/.use-media-query.md +33 -25
  650. package/src/hooks/ui/.use-search.md +51 -0
  651. package/src/nats/.nats.md +49 -28
  652. package/src/nats/index.ts +3 -0
  653. package/src/nats/nats-provider.tsx +146 -0
  654. package/src/nats/nats.ts +2 -0
  655. package/src/nats/shared-connection.ts +285 -0
  656. package/src/nats/use-nats-subscription.ts +99 -0
  657. package/src/schemas/.contact-schema.md +45 -0
  658. package/src/stories/.AnnouncementBar.stories.md +45 -0
  659. package/src/stories/.AppLayout.stories.md +20 -21
  660. package/src/stories/.Autocomplete.stories.md +48 -34
  661. package/src/stories/.Board.stories.md +35 -0
  662. package/src/stories/.Button.stories.md +36 -33
  663. package/src/stories/.ChatTicketList.stories.md +33 -0
  664. package/src/stories/.CheckboxBlock.stories.md +40 -28
  665. package/src/stories/.ContentLoader.stories.md +47 -0
  666. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  667. package/src/stories/.DataTable.stories.md +41 -0
  668. package/src/stories/.DatePicker.stories.md +66 -52
  669. package/src/stories/.DeviceCard.stories.md +41 -40
  670. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  671. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  672. package/src/stories/.Drawer.stories.md +58 -0
  673. package/src/stories/.EmbeddableChat.stories.md +41 -0
  674. package/src/stories/.FileManager.stories.md +41 -0
  675. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  676. package/src/stories/.FileUpload.stories.md +53 -0
  677. package/src/stories/.FilterList.stories.md +54 -0
  678. package/src/stories/.FilterModal.stories.md +72 -0
  679. package/src/stories/.FiltersDropdown.stories.md +57 -0
  680. package/src/stories/.Header.stories.md +48 -0
  681. package/src/stories/.ImageUploader.stories.md +49 -0
  682. package/src/stories/.InfoCard.stories.md +54 -0
  683. package/src/stories/.Input.stories.md +48 -30
  684. package/src/stories/.ListPageLayout.stories.md +56 -43
  685. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  686. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  687. package/src/stories/.Modal.stories.md +40 -31
  688. package/src/stories/.NotificationDrawer.stories.md +55 -0
  689. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  690. package/src/stories/.OrganizationCard.stories.md +61 -0
  691. package/src/stories/.PageActions.stories.md +52 -49
  692. package/src/stories/.PageContainer.stories.md +41 -35
  693. package/src/stories/.PageLayout.stories.md +60 -0
  694. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  695. package/src/stories/.PhoneInput.stories.md +53 -0
  696. package/src/stories/.QueryReportTable.stories.md +44 -0
  697. package/src/stories/.RadioGroup.stories.md +46 -0
  698. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  699. package/src/stories/.Select.stories.md +29 -15
  700. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  701. package/src/stories/.SplitButton.stories.md +62 -0
  702. package/src/stories/.TabNavigation.stories.md +47 -38
  703. package/src/stories/.TabSelector.stories.md +65 -0
  704. package/src/stories/.Table.stories.md +38 -46
  705. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  706. package/src/stories/.Tag.stories.md +43 -32
  707. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  708. package/src/stories/.TagSearchInput.stories.md +61 -0
  709. package/src/stories/.Textarea.stories.md +49 -26
  710. package/src/stories/.Theme.stories.md +41 -0
  711. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  712. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  713. package/src/stories/.TicketInfoSection.stories.md +40 -0
  714. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  715. package/src/stories/.TicketNotesSection.stories.md +50 -0
  716. package/src/stories/.Toaster.stories.md +40 -0
  717. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  718. package/src/stories/.Tooltip.stories.md +41 -0
  719. package/src/stories/.UserSummary.stories.md +41 -0
  720. package/src/stories/.WaitlistForm.stories.md +42 -0
  721. package/src/stories/BlogCard.stories.tsx +61 -0
  722. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  723. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  724. package/src/stories/ChatContainer.stories.tsx +186 -0
  725. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  726. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  727. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  728. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  729. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  730. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  731. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  732. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  733. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  734. package/src/stories/ProgramCard.stories.tsx +79 -0
  735. package/src/stories/RoadmapCard.stories.tsx +75 -0
  736. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  737. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  738. package/src/types/.blog.md +53 -29
  739. package/src/types/.case-study.md +44 -27
  740. package/src/types/.customer-interview.md +66 -44
  741. package/src/types/.delivery.md +40 -0
  742. package/src/types/.employee.md +24 -30
  743. package/src/types/.index.md +33 -47
  744. package/src/types/.marketing.md +49 -44
  745. package/src/types/.navigation.md +33 -25
  746. package/src/types/.os.types.md +32 -27
  747. package/src/types/.platform.md +31 -28
  748. package/src/types/.product-release.md +65 -38
  749. package/src/types/.supabase.md +37 -29
  750. package/src/types/.team.md +41 -33
  751. package/src/types/.video-processing.md +54 -0
  752. package/src/types/.waitlist.md +40 -36
  753. package/src/utils/.access-code-client.md +37 -36
  754. package/src/utils/.cn.md +31 -23
  755. package/src/utils/.color-analysis.md +35 -0
  756. package/src/utils/.country-phone-utils.md +39 -0
  757. package/src/utils/.date-formatters.md +19 -18
  758. package/src/utils/.embed-authed-fetch.md +39 -0
  759. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  760. package/src/utils/.fetch-priority.md +41 -0
  761. package/src/utils/.format.md +74 -25
  762. package/src/utils/.generic-domain-utils.md +42 -0
  763. package/src/utils/.image-proxy.md +59 -23
  764. package/src/utils/.index.md +42 -49
  765. package/src/utils/.local-storage-adapter.md +50 -0
  766. package/src/utils/.ods-color-utils.md +55 -38
  767. package/src/utils/.platform-config.md +45 -25
  768. package/src/utils/.scroll-into-view.md +40 -0
  769. package/src/utils/.source-icons.md +53 -0
  770. package/src/utils/.sse-decision-frame.md +46 -0
  771. package/src/utils/dev-sections/.index.md +34 -0
  772. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  773. package/dist/chunk-3E5ANY55.js.map +0 -1
  774. package/dist/chunk-EH3RWVF3.cjs.map +0 -1
  775. package/dist/chunk-UYQOPC57.js.map +0 -1
  776. package/dist/chunk-WI76ZUBE.cjs.map +0 -1
  777. package/src/components/.card.md +0 -42
  778. package/src/components/.contact-button.md +0 -30
  779. package/src/components/.drawer.md +0 -46
  780. package/src/components/.fixed-layout-container.md +0 -47
  781. package/src/components/.footer-waitlist-card.md +0 -29
  782. package/src/components/.join-waitlist-cta.md +0 -29
  783. package/src/components/.sheet.md +0 -47
  784. package/src/components/.sliding-panel.md +0 -48
  785. package/src/components/.tooltip.md +0 -48
  786. package/src/components/.use-mobile.md +0 -42
  787. package/src/components/.vendor-compact-card.md +0 -66
  788. package/src/components/.x-button.md +0 -42
  789. package/src/components/features/.github-repo-button.md +0 -40
  790. package/src/components/features/.organization-icon.md +0 -47
  791. package/src/components/features/.organization-selector.md +0 -45
  792. package/src/components/icons/.fleet-icon.md +0 -39
  793. package/src/components/icons/.meshcentral-icon.md +0 -35
  794. package/src/components/icons/.refresh-icon.md +0 -34
  795. package/src/components/icons/.tactical-icon.md +0 -35
  796. package/src/components/ui/.button.md +0 -69
  797. package/src/components/ui/.log-table-row.md +0 -47
  798. package/src/components/ui/.selectable-device-card.md +0 -46
  799. package/src/hooks/.api-hooks-stub.md +0 -45
  800. package/src/hooks/api/.use-product-releases.md +0 -53
  801. package/src/stories/.OrganizationSelector.stories.md +0 -42
  802. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  803. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  804. package/src/utils/.lite-youtube-embed.md +0 -33
  805. /package/dist/{chunk-QKFBZLIR.js.map → chunk-5OWDOFKK.js.map} +0 -0
  806. /package/dist/{chunk-5BNWGK6D.js.map → chunk-HWY35EAK.js.map} +0 -0
@@ -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
+ ```
@@ -0,0 +1,40 @@
1
+ <!-- source-hash: 88aa76a71f078b18928be54e60fe0a71 -->
2
+ A clickable ticket row component for chat interfaces, rendering ticket details (title, number, category, time), a status tag, an optional linked-work chip, and a chevron affordance.
3
+
4
+ ## Key Components
5
+
6
+ ### `ChatTicketItemData`
7
+ Data interface for the ticket row:
8
+ - `id`, `title`, `ticketNumber` — core identifiers
9
+ - `status` — accepts any known format (`ACTIVE`, `active`, `ACTION_REQUIRED`, etc.)
10
+ - `statusLabel?` — overrides the badge text while preserving status variant/icon (e.g. HubSpot pipeline stage labels)
11
+ - `linkedTaskLabel?` — when set, renders a wrench-icon "linked work" chip indicating an in-flight delivery task
12
+ - `category?`, `timeAgo?` — optional subtitle fields joined with `•`
13
+
14
+ ### `ChatTicketItemProps`
15
+ Extends `ButtonHTMLAttributes` (omitting `onClick`) with a typed `onClick?: (ticketId: string) => void` callback.
16
+
17
+ ### `ChatTicketItem`
18
+ A `forwardRef` button component that:
19
+ - Dims the title (`text-ods-text-secondary`) when the ticket is resolved
20
+ - Builds a dot-separated subtitle from `ticketNumber`, `category`, and `timeAgo`
21
+ - Renders `Tag` with `WrenchIcon` (hidden on `sm` screens) when `linkedTaskLabel` is present
22
+ - Handles focus ring via `focus-visible` to prevent stray white borders after click in jsdom/Chromium
23
+
24
+ ## Usage Example
25
+
26
+ ```typescript
27
+ <ChatTicketItem
28
+ ticket={{
29
+ id: 'tkt-001',
30
+ title: 'Email not syncing after password reset',
31
+ ticketNumber: '#1042',
32
+ status: 'ACTION_REQUIRED',
33
+ statusLabel: 'Waiting on contact',
34
+ category: 'Email',
35
+ timeAgo: '2h ago',
36
+ linkedTaskLabel: 'Waiting on version release',
37
+ }}
38
+ onClick={(ticketId) => router.push(`/tickets/${ticketId}`)}
39
+ />
40
+ ```
@@ -0,0 +1,43 @@
1
+ <!-- source-hash: 4a819f268fa72ed0c9baa868c023b47f -->
2
+ Renders a stripped-chrome video player card for entity references within the chat interface, delegating entirely to `<EntityVideoSection>` to maintain visual parity with detail pages.
3
+
4
+ ## Key Components
5
+
6
+ ### `ChatVideoEntityCardProps`
7
+ | Prop | Type | Description |
8
+ |------|------|-------------|
9
+ | `chatRef` | `ChatRef` | Entity reference containing `metadata` fields for video URL routing |
10
+
11
+ ### `ChatVideoEntityCard`
12
+ Main export. Extracts video-related fields from `chatRef.metadata` and passes them directly to `<EntityVideoSection>`. Intentionally omits `videoSummary`, `videoBites`, and header chrome (title, date, Ask button) to preserve chat panel density — those affordances are handled by the host's inline pill.
13
+
14
+ ### `readString(value)`
15
+ Internal guard that returns `null` for any non-string or empty-string value, preventing invalid URLs from reaching the player.
16
+
17
+ ## Metadata Fields Read
18
+
19
+ | Field | Passed As |
20
+ |-------|-----------|
21
+ | `metadata.videoUrl` | `mainVideoUrl` |
22
+ | `metadata.youtubeUrl` | `youtubeUrl` |
23
+ | `metadata.videoPoster` | `mainVideoPoster` |
24
+ | `metadata.highlightVideoUrl` | `highlightVideoUrl` |
25
+ | `metadata.highlightVideoPoster` | `highlightVideoThumbnail` |
26
+
27
+ ## Usage Example
28
+
29
+ ```typescript
30
+ // Host dispatch — only routed here when at least one video URL is present
31
+ <ChatVideoEntityCard
32
+ chatRef={{
33
+ title: "Q3 Investor Update",
34
+ metadata: {
35
+ youtubeUrl: "https://www.youtube.com/watch?v=abc123",
36
+ highlightVideoUrl: "https://stream.mux.com/highlight.m3u8",
37
+ highlightVideoPoster: "https://cdn.example.com/poster.jpg",
38
+ },
39
+ }}
40
+ />
41
+ ```
42
+
43
+ > **Activation contract:** The host must only render this card when at least one of `metadata.videoUrl`, `youtubeUrl`, or `highlightVideoUrl` is a non-empty string. URL sanitization is handled inside `<Video>` — no additional validation is required at the call site.
@@ -0,0 +1,53 @@
1
+ <!-- source-hash: 13f9305f5b11a7a8a688986630bbf7d1 -->
2
+ Pure presentation component for displaying customer interview data in two density variants (`default` and `sm`), with no embedded click logic — navigation is handled entirely by the caller via `href`.
3
+
4
+ ## Key Components
5
+
6
+ ### `CustomerInterviewCard`
7
+ Main card component rendering interview metadata, thumbnail, video indicator, and author/MSP attribution. Accepts an `href` prop for navigation and delegates all routing concerns to the caller.
8
+
9
+ ### `CustomerInterviewCardSkeleton`
10
+ Animated loading placeholder that mirrors the layout of `CustomerInterviewCard` for both size variants, preventing layout shift during data fetching.
11
+
12
+ ### `CustomerInterviewCardProps`
13
+ ```typescript
14
+ interface CustomerInterviewCardProps {
15
+ interview: CustomerInterview // Core interview data
16
+ href: string // Resolved detail URL (caller-provided)
17
+ target?: '_blank' // Opens in new tab when set
18
+ rel?: 'noopener noreferrer'
19
+ placeholderUrl?: string | null // Fallback OG image when featured_image is absent
20
+ size?: 'default' | 'sm' // 'sm' = compact horizontal (chat-inline)
21
+ className?: string
22
+ }
23
+ ```
24
+
25
+ ## Usage Example
26
+
27
+ ```typescript
28
+ // Default card — standalone page listing
29
+ <CustomerInterviewCard
30
+ interview={interviewData}
31
+ href={`/interviews/${interviewData.slug}`}
32
+ placeholderUrl="/assets/interview-placeholder.jpg"
33
+ />
34
+
35
+ // Compact variant — inline within chat/AI responses
36
+ <CustomerInterviewCard
37
+ interview={interviewData}
38
+ href={`/interviews/${interviewData.slug}`}
39
+ target="_blank"
40
+ rel="noopener noreferrer"
41
+ size="sm"
42
+ />
43
+
44
+ // Skeleton while fetching
45
+ <CustomerInterviewCardSkeleton size="sm" />
46
+ ```
47
+
48
+ ## Size Variants
49
+
50
+ | Variant | Layout | Use Case |
51
+ |---------|--------|----------|
52
+ | `default` | Vertical card with 1200×630 aspect image, summary, and author row | Grid/list pages |
53
+ | `sm` | Compact horizontal row with thumbnail + text column | Chat-inline embeds (Mingo AI / Fae) |
@@ -0,0 +1,47 @@
1
+ <!-- source-hash: f8069e3f963f307b16a2d6ae310496d9 -->
2
+ Inline chat card component for rendering Data Room and OpenFrame-docs document references within the Flamingo/OpenFrame AI chat interface. Handles both `/data-room` and `/knowledge-base` route surfaces with a shared presentation layer.
3
+
4
+ ## Key Components
5
+
6
+ ### `DataRoomDocCard`
7
+ Primary card component. Renders as an interactive `<a>` element when `anchorProps` is provided, or a static `<span>` when no link is available. Displays document title, source badge, file path, and a preview excerpt.
8
+
9
+ ### `DataRoomDocCardSkeleton`
10
+ Loading state placeholder matching the card's layout — used while document data is being fetched.
11
+
12
+ ### `DataRoomDocCardAnchorProps`
13
+ Prop bundle interface for pre-composed anchor attributes (`href`, `target`, `rel`, `onClick`). URL composition and routing decisions are handled by the consumer, not this component.
14
+
15
+ ### `DataRoomDocCardProps`
16
+ | Prop | Type | Notes |
17
+ |------|------|-------|
18
+ | `item` | `DataRoomDocCardItem` | Title, path, and preview text |
19
+ | `badgeText` | `string` | Required. Consumer-resolved source label (e.g. "Data Room", "Knowledge Base") |
20
+ | `anchorProps` | `DataRoomDocCardAnchorProps?` | When omitted, card renders non-interactive |
21
+ | `className` | `string?` | Additional CSS classes |
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ // Interactive card (linked)
27
+ <DataRoomDocCard
28
+ item={{ title: 'Onboarding Guide', path: '/docs/onboarding.md', preview: 'Step-by-step...' }}
29
+ badgeText={getSourceLabel(item.sourceRepo)} // consumer resolves label
30
+ anchorProps={{
31
+ href: '/data-room/docs/abc123',
32
+ target: '_blank',
33
+ rel: 'noopener noreferrer',
34
+ }}
35
+ />
36
+
37
+ // Non-interactive card (no link resolved)
38
+ <DataRoomDocCard
39
+ item={{ title: 'Policy Draft', path: null, preview: null }}
40
+ badgeText="Knowledge Base"
41
+ />
42
+
43
+ // Skeleton while loading
44
+ <DataRoomDocCardSkeleton />
45
+ ```
46
+
47
+ > **Design note:** `badgeText` is required (no default) to prevent silent mislabeling — a document sourced from `openframe-docs` must never display "Data Room" due to its private/internal connotation. The consumer's `getSourceLabel()` resolver is the single source of truth for provenance labels.
@@ -0,0 +1,39 @@
1
+ <!-- source-hash: 32d71d29579661580177180e5a23c34d -->
2
+ Renders the correct compact card component for a given `ChatRef` by dispatching on document type, handling fetch/skeleton states, and wiring navigation props for the chat shell.
3
+
4
+ ## Key Components
5
+
6
+ ### Types
7
+ - **`ChatCardDispatchExtras`** — Host-supplied builders for hub-specific derived props (program configs, product-release prop builder, OG placeholder URL generator)
8
+ - **`ChatCardRenderOptions`** — Per-render options including `baseRoute`, `chipBasePlatform`, `extras`, and the pre-computed `isNewTab` flag
9
+
10
+ ### Internal Card Wrappers
11
+ - **`GitHubChatCard`** — Renders a compact `GitHubActivityCard` from a `ChatRef`
12
+ - **`HubspotTicketChatCard`** — Extracts ticket metadata (status, priority, customer) from `chatRef.metadata` and renders `HubspotTicketCard`
13
+ - **`SlackChatCard`** — Maps channel name from metadata and renders `SlackMessageCard`
14
+ - **`DataRoomDocChatCard`** — Renders `DataRoomDocCard` with provenance badge resolved via `getSourceLabel`; intentionally falls back to `"Document"` (never `"Data room"`) to avoid false sensitivity labeling
15
+ - **`GenericFinancialChatCard`** — Renders `GenericEntityCard` with badge, color scheme, optional facts list, and subtitle
16
+ - **`ChatInlineVideoPill`** — Inline pill span for video references (non-block contexts)
17
+
18
+ ### Utilities Used
19
+ - `buildAnchorProps` / `computeIsNewTab` / `newTabAnchorAttrs` — Anchor attribute construction
20
+ - `resolveHrefForRuntime` / `handleChatNavClick` — Runtime-aware navigation
21
+ - `resolveSourceRowCTA` / `resolveSourceIcon` / `getSourceLabel` — Source chip metadata
22
+
23
+ ## Usage Example
24
+
25
+ ```typescript
26
+ // In the chat shell — dispatch a compact inline card
27
+ const card = renderChatInlineEntityCard(chatRef, {
28
+ isNewTab: computeIsNewTab(chatRef.url, runtime.source),
29
+ baseRoute: '/app',
30
+ chipBasePlatform: 'hub',
31
+ extras: {
32
+ programConfigs: { podcast: myPodcastConfig },
33
+ buildProductReleaseCardProps: (release) => ({ iconUrl: release.icon }),
34
+ buildOgPlaceholderUrl: (title) => `/og?title=${encodeURIComponent(title)}`,
35
+ },
36
+ })
37
+ ```
38
+
39
+ > **Adding a new card type:** Implement the `size='sm'` branch in `./<card>.tsx`, then register one entry in the `CHAT_CARD_REGISTRY` switch inside this file.
@@ -0,0 +1,51 @@
1
+ <!-- source-hash: 7fa68fe7633e75913b75cba411a322f1 -->
2
+ Renders author and publication metadata as a bordered grid card, matching the visual contract of the release detail page. Supports 1–4 cells with responsive dividers.
3
+
4
+ ## Key Components
5
+
6
+ | Export | Type | Description |
7
+ |--------|------|-------------|
8
+ | `EntityAuthorCard` | Component | Convenience composer rendering a "Published + Author" grid. Primary public API. |
9
+ | `EntityMetadataValueCell` | Component | Single cell with a large uppercase value (`text-h4`) and a small secondary label. |
10
+ | `EntityMetadataAuthorCell` | Component | Single cell with `SquareAvatar`, name, and role/job-title label. |
11
+ | `EMPTY_AUTHOR_PLACEHOLDER` | Constant | Fallback author shape (`"—"` / `"Unknown"`) used when `renderEmptyAuthor` is `true`. |
12
+ | `EntityAuthorCardProps` | Interface | Full props contract for `EntityAuthorCard`. |
13
+
14
+ ## Usage Example
15
+
16
+ ```typescript
17
+ // Basic: author only (single-cell)
18
+ <EntityAuthorCard
19
+ author={{ full_name: 'Ada Lovelace', avatar_url: '/ada.jpg', job_title: 'Engineer' }}
20
+ />
21
+
22
+ // With publication date (2-cell grid)
23
+ <EntityAuthorCard
24
+ author={{ full_name: 'Ada Lovelace', avatar_url: null, job_title: null }}
25
+ publishedAt="2024-06-01"
26
+ publishedLabel="Released"
27
+ roleLabel="Contributor"
28
+ />
29
+
30
+ // Extra cells before the date (4-cell grid)
31
+ <EntityAuthorCard
32
+ author={author}
33
+ publishedAt={guide.publishedAt}
34
+ extraCells={[
35
+ { value: 'Onboarding', label: 'Section' },
36
+ { value: '3', label: 'Step' },
37
+ ]}
38
+ />
39
+
40
+ // Skeleton-safe: render even when author is absent
41
+ <EntityAuthorCard
42
+ author={null}
43
+ renderEmptyAuthor
44
+ />
45
+ ```
46
+
47
+ ## Behavior Notes
48
+
49
+ - Returns `null` when `author.full_name` is empty **unless** `renderEmptyAuthor` is set — keeps catalog grids skeleton-aligned.
50
+ - Grid columns (`md:grid-cols-1` → `md:grid-cols-4`) are computed at render time so Tailwind JIT picks up the literal class strings at build.
51
+ - Invalid date strings from `formatDate` are silently suppressed — the Published cell is hidden rather than showing `"Invalid Date"`.
@@ -0,0 +1,62 @@
1
+ <!-- source-hash: 775503f0a371e047d64f92c3ad355efe -->
2
+ A pure-presentation React component that renders a compact, reusable entity card for chat contexts that don't require a bespoke component. Supports optional linking, status badges, key-value facts, and a skeleton loading state.
3
+
4
+ ## Key Components
5
+
6
+ ### `GenericEntityCard`
7
+ Main card component. Renders as an `<a>` tag (clickable) or `<span>` (static) depending on whether a URL or `anchorProps` is provided. Displays an `ExternalLink` icon when a URL is present.
8
+
9
+ ### `GenericEntityCardSkeleton`
10
+ Animated placeholder component that mirrors the layout of `GenericEntityCard` for use during loading states.
11
+
12
+ ### Interfaces
13
+
14
+ | Interface | Purpose |
15
+ |---|---|
16
+ | `GenericEntityCardItem` | Data shape for the card content |
17
+ | `GenericEntityCardAnchorProps` | Pre-composed anchor element props (href, target, rel, onClick) |
18
+ | `GenericEntityCardProps` | Combined props for the card (item + anchorProps + className) |
19
+
20
+ ### `GenericEntityCardItem` Fields
21
+
22
+ | Field | Type | Description |
23
+ |---|---|---|
24
+ | `title` | `string` | Primary heading |
25
+ | `preview` | `string \| null` | Truncated body text (2-line clamp) |
26
+ | `subtitle` | `string \| null` | Monospace secondary label |
27
+ | `badge` | `{ text, scheme? }` | Status badge with color scheme |
28
+ | `facts` | `Array<{ label, value }>` | Inline key-value metadata pairs |
29
+ | `dateUpdated` | `string \| number \| null` | Formatted UTC timestamp |
30
+ | `url` | `string \| null` | Optional navigation target |
31
+
32
+ ## Usage Example
33
+
34
+ ```typescript
35
+ import { GenericEntityCard, GenericEntityCardSkeleton } from './generic-entity-card'
36
+
37
+ // Basic card with URL
38
+ <GenericEntityCard
39
+ item={{
40
+ id: 'ticket-42',
41
+ title: 'Printer offline on Floor 2',
42
+ subtitle: 'TKT-0042',
43
+ preview: 'User reports printer is unreachable since 9am.',
44
+ badge: { text: 'Open', scheme: 'warning' },
45
+ facts: [{ label: 'Priority', value: 'High' }],
46
+ dateUpdated: '2024-06-01T10:00:00Z',
47
+ url: 'https://app.example.com/tickets/42',
48
+ }}
49
+ />
50
+
51
+ // Custom anchor props (e.g. SPA router navigation)
52
+ <GenericEntityCard
53
+ item={item}
54
+ anchorProps={{
55
+ href: '/tickets/42',
56
+ onClick: (e) => { e.preventDefault(); router.push('/tickets/42') },
57
+ }}
58
+ />
59
+
60
+ // Loading state
61
+ <GenericEntityCardSkeleton />
62
+ ```
@@ -0,0 +1,61 @@
1
+ <!-- source-hash: c0769109de52014dbb4d350262e4d01d -->
2
+ A pure-presentation React component that renders GitHub activity items (commits, pull requests, and PR reviews) in two layout variants: a list row and a compact inline card.
3
+
4
+ ## Key Components
5
+
6
+ ### Exports
7
+
8
+ | Name | Type | Description |
9
+ |------|------|-------------|
10
+ | `GitHubActivityCard` | Component | Main card renderer supporting `row` and `compact` variants |
11
+ | `GitHubActivityCardSkeleton` | Component | Animated loading placeholder matching both variants |
12
+ | `GitHubActivityCardAnchorProps` | Interface | Pre-composed `<a>` prop bundle passed from caller navigation hooks |
13
+ | `GitHubActivityCardProps` | Interface | Full props shape for `GitHubActivityCard` |
14
+
15
+ ### Internal Helpers
16
+
17
+ | Name | Description |
18
+ |------|-------------|
19
+ | `parseRepoFromUrl` | Extracts `owner/repo` string from a GitHub URL |
20
+ | `kindIcon` | Returns the appropriate Lucide/GitHub icon for `commit`, `pull_request`, or `pr_review` |
21
+ | `kindLabel` | Maps `GitHubActivityKind` to a short display string |
22
+ | `formatActivityId` | Shortens commit SHAs to 7 chars; prefixes PR/review IDs with `#` |
23
+ | `parseGithubTitle` | Parses bracket-prefixed tags (e.g. `[Review:APPROVED]`) from titles without regex backtracking |
24
+ | `ReviewStateBadge` | Renders a color-coded badge for PR review states (`APPROVED`, `CHANGES_REQUESTED`, etc.) |
25
+
26
+ ## Usage Example
27
+
28
+ ```typescript
29
+ import { GitHubActivityCard, GitHubActivityCardSkeleton } from './github-activity-card'
30
+
31
+ // Compact inline card (default) with external link
32
+ <GitHubActivityCard
33
+ item={{
34
+ kind: 'pull_request',
35
+ id: '42',
36
+ title: 'Fix memory leak in worker pool',
37
+ url: 'https://github.com/org/repo/pull/42',
38
+ dateUpdated: '2024-11-01T10:00:00Z',
39
+ }}
40
+ />
41
+
42
+ // Row variant for activity lists, with caller-composed navigation
43
+ <GitHubActivityCard
44
+ variant="row"
45
+ item={activityItem}
46
+ anchorProps={{
47
+ href: '/activity/commit/abc1234',
48
+ onClick: (e) => handleNavigation(e),
49
+ }}
50
+ />
51
+
52
+ // Loading state
53
+ <GitHubActivityCardSkeleton variant="row" />
54
+ ```
55
+
56
+ ## Variants
57
+
58
+ | Variant | Use Case |
59
+ |---------|----------|
60
+ | `compact` | Chat inline markers (`[card://github_commit:<sha>]`) |
61
+ | `row` | Activity list rows in employee detail views |
@@ -0,0 +1,53 @@
1
+ <!-- source-hash: 526a5a2e2cd1e53b04aca51a563fe490 -->
2
+ Pure presentation component that renders HubSpot ticket data as a compact card or inline row, with a matching skeleton loader for loading states.
3
+
4
+ ## Key Components
5
+
6
+ ### `HubspotTicketCard`
7
+ Main card component supporting two layout variants:
8
+ - **`compact`** (default) — Full card with title, priority/status badges, customer email, description preview, meta row (company + date), and optional external link icon
9
+ - **`row`** — Slim inline layout for use in lists/tables: title, preview snippet, status badge, and date
10
+
11
+ Accepts an `anchorProps` bundle for caller-controlled navigation (e.g. from a runtime hook), falling back to a plain `<a>` using `item.url`, or a static `<span>` if no URL is available.
12
+
13
+ ### `HubspotTicketCardSkeleton`
14
+ Animated pulse placeholder matching the `compact` and `row` layouts, used during data fetching.
15
+
16
+ ### Helper Functions
17
+ | Function | Purpose |
18
+ |---|---|
19
+ | `formatToken` | Normalizes `snake_case` enum strings to `Title case` |
20
+ | `priorityScheme` | Maps `URGENT/HIGH/MEDIUM/LOW` → badge color scheme |
21
+ | `statusScheme` | Maps `CLOSED/OPEN/...` → badge color scheme |
22
+
23
+ ## Interfaces
24
+
25
+ ```typescript
26
+ interface HubspotTicketCardProps {
27
+ item: HubspotTicketItem // Ticket data shape
28
+ variant?: 'row' | 'compact' // Layout mode (default: 'compact')
29
+ className?: string
30
+ anchorProps?: HubspotTicketCardAnchorProps // Caller-controlled <a> props
31
+ }
32
+ ```
33
+
34
+ ## Usage Example
35
+
36
+ ```typescript
37
+ // Compact card with caller-supplied navigation
38
+ <HubspotTicketCard
39
+ item={ticket}
40
+ anchorProps={{
41
+ href: buildTicketHref(ticket.id),
42
+ target: '_blank',
43
+ rel: 'noopener noreferrer',
44
+ onClick: (e) => handleTicketClick(e, ticket.id),
45
+ }}
46
+ />
47
+
48
+ // Inline row variant (e.g. inside a list)
49
+ <HubspotTicketCard item={ticket} variant="row" />
50
+
51
+ // Loading state
52
+ <HubspotTicketCardSkeleton variant="compact" />
53
+ ```
@@ -0,0 +1,66 @@
1
+ <!-- source-hash: 153106e38c4d90f80e36ec34a77c2d0d -->
2
+ Barrel export file that consolidates all chat-surface entity card components under a single import path, enabling consumers to access any presentation card without knowing its subdirectory location.
3
+
4
+ ## Key Components
5
+
6
+ ### Supporting Primitives
7
+ - **`EntityAuthorCard`** — Renders author metadata with `EMPTY_AUTHOR_PLACEHOLDER` fallback
8
+ - **`BlogImagePlaceholder`** — Placeholder image for blog content
9
+ - **`AdminContentCard`** — Admin-facing content card
10
+
11
+ ### Flat Cards
12
+ - **`BlockCard`** — Generic block-level card
13
+ - **`ChatTicketItem`** — Ticket representation within chat surfaces
14
+ - **`ChatVideoEntityCard`** — Video entity display in chat
15
+
16
+ ### Pure-Presentation Cards (with Skeleton variants)
17
+ | Card | Skeleton | Notes |
18
+ |------|----------|-------|
19
+ | `BlogCard` | `BlogCardSkeleton` | — |
20
+ | `CaseStudyCard` | `CaseStudyCardSkeleton` | — |
21
+ | `CustomerInterviewCard` | `CustomerInterviewCardSkeleton` | — |
22
+ | `InvestorUpdateCard` | `InvestorUpdateCardSkeleton` | — |
23
+ | `OnboardingGuideCard` | `OnboardingGuideCardSkeleton` | — |
24
+ | `RoadmapCard` | `RoadmapCardSkeleton` | Includes `VoteType` + `RoadmapVoteButton` |
25
+ | `GitHubActivityCard` | `GitHubActivityCardSkeleton` | — |
26
+ | `SlackMessageCard` | `SlackMessageCardSkeleton` | — |
27
+ | `HubspotTicketCard` | `HubspotTicketCardSkeleton` | — |
28
+ | `DataRoomDocCard` | `DataRoomDocCardSkeleton` | — |
29
+ | `ProgramCard` | `ProgramCardSkeleton` | — |
30
+ | `CampaignCardAdmin` | `CampaignCardAdminSkeleton` | — |
31
+ | `GenericEntityCard` | `GenericEntityCardSkeleton` | Fallback catch-all |
32
+
33
+ ### Dispatch Layer
34
+ - **`renderChatInlineEntityCard`** — Renders the correct card given an entity type
35
+ - **`ChatCardLoader`** — Async card loader; new card types registered in `./dispatch.tsx` via `CHAT_CARD_REGISTRY`
36
+
37
+ ## Usage Example
38
+
39
+ ```typescript
40
+ // Single import replaces per-directory imports
41
+ import {
42
+ BlogCard,
43
+ BlogCardSkeleton,
44
+ RoadmapCard,
45
+ ChatCardLoader,
46
+ renderChatInlineEntityCard,
47
+ type BlogCardProps,
48
+ type ChatCardRenderOptions,
49
+ } from '@/components/entity-cards'
50
+
51
+ // Pure-presentation: consumer owns the anchor
52
+ function MyFeed({ post }: { post: BlogCardProps }) {
53
+ return (
54
+ <NavLinkAnchor href={post.href}>
55
+ <BlogCard {...post} />
56
+ </NavLinkAnchor>
57
+ )
58
+ }
59
+
60
+ // Dynamic dispatch — resolves card type at runtime
61
+ function ChatEntity({ entity, options }: { entity: unknown; options: ChatCardRenderOptions }) {
62
+ return renderChatInlineEntityCard(entity, options)
63
+ }
64
+ ```
65
+
66
+ > **Design contract:** All cards in this directory are **pure presentation** — they accept a pre-resolved `href` and entity data as props and contain no internal navigation logic. Click handling belongs to the consumer (`NavLinkAnchor` or `NavLinkAnchorViaRuntime`).