@flamingo-stack/openframe-frontend-core 0.0.213 → 0.0.214

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 (745) hide show
  1. package/dist/{chunk-3JWIJJ44.js → chunk-5OWDOFKK.js} +2 -2
  2. package/dist/{chunk-IK2X5YJU.js → chunk-HWY35EAK.js} +2 -2
  3. package/dist/{chunk-OTKJASSX.cjs → chunk-IZL2KEH6.cjs} +24 -24
  4. package/dist/{chunk-OTKJASSX.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
  5. package/dist/{chunk-35XIT2CF.cjs → chunk-KDNGUYZM.cjs} +17 -17
  6. package/dist/{chunk-35XIT2CF.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
  7. package/dist/{chunk-ZTJVRSN5.js → chunk-UKND27XC.js} +2 -2
  8. package/dist/chunk-UKND27XC.js.map +1 -0
  9. package/dist/{chunk-ZDF6F7ED.cjs → chunk-YZUUFTIK.cjs} +2 -2
  10. package/dist/chunk-YZUUFTIK.cjs.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/providers/.theme-provider.md +52 -0
  421. package/src/components/shared/delivery/.delivery-lists.md +39 -0
  422. package/src/components/shared/delivery/.delivery-row.md +41 -0
  423. package/src/components/shared/delivery/.delivery-table.md +41 -0
  424. package/src/components/shared/delivery/.index.md +38 -0
  425. package/src/components/shared/dev-section/.dev-card-row.md +60 -0
  426. package/src/components/shared/dev-section/.dev-section-page.md +48 -0
  427. package/src/components/shared/dev-section/.dev-section-view.md +43 -0
  428. package/src/components/shared/dev-section/.index.md +38 -0
  429. package/src/components/shared/legal-document/.index.md +40 -0
  430. package/src/components/shared/legal-document/.legal-document-page.md +50 -0
  431. package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
  432. package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
  433. package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
  434. package/src/components/shared/product-release/.index.md +28 -30
  435. package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
  436. package/src/components/shared/product-release/.product-release-card.md +45 -27
  437. package/src/components/shared/product-release/.release-detail-page.md +23 -24
  438. package/src/components/shared/roadmap/.index.md +37 -0
  439. package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
  440. package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
  441. package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
  442. package/src/components/tickets/.help-center-card.md +51 -0
  443. package/src/components/tickets/.help-center-create-form.md +38 -0
  444. package/src/components/tickets/.help-center-list.md +40 -0
  445. package/src/components/tickets/.index.md +65 -0
  446. package/src/components/tickets/.ticket-center.md +51 -0
  447. package/src/components/tickets/.ticket-detail-drawer.md +48 -0
  448. package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
  449. package/src/components/tickets/.ticket-open-form.md +50 -0
  450. package/src/components/tickets/.ticket-row.md +30 -0
  451. package/src/components/tickets/.types.md +57 -0
  452. package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
  453. package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
  454. package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
  455. package/src/components/ui/.actions-menu.md +66 -41
  456. package/src/components/ui/.alert-dialog.md +29 -26
  457. package/src/components/ui/.allowed-domains-input.md +29 -21
  458. package/src/components/ui/.assignee-dropdown.md +45 -0
  459. package/src/components/ui/.autocomplete.md +47 -41
  460. package/src/components/ui/.benefit-card.md +51 -36
  461. package/src/components/ui/.brand-association-card.md +30 -27
  462. package/src/components/ui/.breadcrumb.md +17 -15
  463. package/src/components/ui/.checkbox-block.md +39 -35
  464. package/src/components/ui/.checkbox-with-description.md +23 -16
  465. package/src/components/ui/.checkbox.md +31 -23
  466. package/src/components/ui/.circular-progress.md +49 -19
  467. package/src/components/ui/.content-loader.md +32 -20
  468. package/src/components/ui/.cursor-pagination.md +41 -52
  469. package/src/components/ui/.dashboard-info-card.md +33 -26
  470. package/src/components/ui/.date-picker.md +27 -25
  471. package/src/components/ui/.device-card-compact.md +28 -29
  472. package/src/components/ui/.device-card.md +27 -27
  473. package/src/components/ui/.dialog.md +25 -16
  474. package/src/components/ui/.drawer.md +86 -0
  475. package/src/components/ui/.dropdown-button.md +45 -0
  476. package/src/components/ui/.entity-image.md +46 -0
  477. package/src/components/ui/.error-state.md +41 -28
  478. package/src/components/ui/.feature-card.md +35 -31
  479. package/src/components/ui/.feature-list.md +48 -0
  480. package/src/components/ui/.field-wrapper.md +47 -0
  481. package/src/components/ui/.file-upload.md +42 -0
  482. package/src/components/ui/.filter-checkbox-item.md +43 -0
  483. package/src/components/ui/.filter-list.md +57 -0
  484. package/src/components/ui/.filter-modal.md +59 -0
  485. package/src/components/ui/.floating-tooltip.md +43 -26
  486. package/src/components/ui/.hidden-tags-popup.md +49 -0
  487. package/src/components/ui/.hover-dropdown.md +54 -0
  488. package/src/components/ui/.image-gallery-modal.md +41 -34
  489. package/src/components/ui/.image-uploader.md +53 -0
  490. package/src/components/ui/.index.md +40 -34
  491. package/src/components/ui/.info-card.md +31 -31
  492. package/src/components/ui/.info-row.md +31 -27
  493. package/src/components/ui/.input-trigger.md +44 -0
  494. package/src/components/ui/.input.md +37 -31
  495. package/src/components/ui/.markdown-editor.md +57 -0
  496. package/src/components/ui/.modal-v2.md +51 -0
  497. package/src/components/ui/.modal.md +32 -31
  498. package/src/components/ui/.more-actions-menu.md +45 -38
  499. package/src/components/ui/.organization-card.md +31 -37
  500. package/src/components/ui/.page-actions.md +44 -54
  501. package/src/components/ui/.phone-input.md +54 -0
  502. package/src/components/ui/.progress-bar.md +35 -27
  503. package/src/components/ui/.radio-group.md +39 -27
  504. package/src/components/ui/.release-changelog-section.md +34 -34
  505. package/src/components/ui/.search-input.md +48 -0
  506. package/src/components/ui/.select.md +54 -34
  507. package/src/components/ui/.service-card.md +42 -40
  508. package/src/components/ui/.sheet.md +27 -18
  509. package/src/components/ui/.simple-markdown-renderer.md +29 -31
  510. package/src/components/ui/.sort-column-item.md +42 -0
  511. package/src/components/ui/.square-avatar.md +34 -24
  512. package/src/components/ui/.status-badge.md +26 -38
  513. package/src/components/ui/.switch.md +22 -35
  514. package/src/components/ui/.tab-navigation.md +56 -53
  515. package/src/components/ui/.tab-selector.md +40 -0
  516. package/src/components/ui/.tag-key-value-filter.md +56 -0
  517. package/src/components/ui/.tag-search-input.md +53 -0
  518. package/src/components/ui/.tag.md +49 -31
  519. package/src/components/ui/.tags-manager.md +60 -0
  520. package/src/components/ui/.textarea.md +44 -34
  521. package/src/components/ui/.ticket-attachments-list.md +45 -0
  522. package/src/components/ui/.ticket-detail-section.md +29 -0
  523. package/src/components/ui/.ticket-info-section.md +56 -0
  524. package/src/components/ui/.ticket-note-card.md +53 -0
  525. package/src/components/ui/.ticket-notes-section.md +54 -0
  526. package/src/components/ui/.ticket-status-tag.md +49 -0
  527. package/src/components/ui/.title-content-block.md +25 -26
  528. package/src/components/ui/.toaster.md +40 -28
  529. package/src/components/ui/.tooltip.md +22 -11
  530. package/src/components/ui/.truncate-text.md +39 -0
  531. package/src/components/ui/button/.button-styles.md +35 -0
  532. package/src/components/ui/button/.button.md +53 -0
  533. package/src/components/ui/button/.split-button.md +48 -0
  534. package/src/components/ui/data-table/.data-table-body.md +48 -0
  535. package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
  536. package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
  537. package/src/components/ui/data-table/.data-table-empty.md +43 -0
  538. package/src/components/ui/data-table/.data-table-header.md +55 -0
  539. package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
  540. package/src/components/ui/data-table/.data-table-row-count.md +43 -0
  541. package/src/components/ui/data-table/.data-table-row.md +47 -0
  542. package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
  543. package/src/components/ui/data-table/.data-table.md +47 -0
  544. package/src/components/ui/data-table/.index.md +55 -0
  545. package/src/components/ui/data-table/.types.md +54 -0
  546. package/src/components/ui/data-table/.use-data-table.md +45 -0
  547. package/src/components/ui/data-table/.utils.md +38 -0
  548. package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
  549. package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
  550. package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
  551. package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
  552. package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
  553. package/src/components/ui/file-manager/.file-manager.md +35 -31
  554. package/src/components/ui/query-report-table/.index.md +43 -0
  555. package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
  556. package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
  557. package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
  558. package/src/components/ui/query-report-table/.query-report-table.md +47 -0
  559. package/src/components/ui/query-report-table/.types.md +41 -0
  560. package/src/components/ui/query-report-table/.utils.md +35 -0
  561. package/src/components/ui/table/.index.md +27 -48
  562. package/src/components/ui/table/.table-cell.md +18 -27
  563. package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
  564. package/src/components/ui/table/.table-description-cell.md +24 -14
  565. package/src/components/ui/table/.table-empty-state.md +21 -22
  566. package/src/components/ui/table/.table-header.md +25 -40
  567. package/src/components/ui/table/.table-row.md +22 -40
  568. package/src/components/ui/table/.table-skeleton.md +33 -26
  569. package/src/components/ui/table/.table-timestamp-cell.md +26 -16
  570. package/src/components/ui/table/.table.md +39 -59
  571. package/src/components/ui/table/.types.md +44 -36
  572. package/src/components/ui/table/.utils.md +18 -20
  573. package/src/contexts/.chat-runtime-context.md +54 -0
  574. package/src/contexts/.endpoints-runtime-context.md +58 -0
  575. package/src/contexts/.index.md +53 -0
  576. package/src/contexts/.use-outer-or-default.md +36 -0
  577. package/src/embed-shims/.index.md +45 -0
  578. package/src/embed-shims/.next-dynamic.md +43 -0
  579. package/src/embed-shims/.next-image.md +45 -0
  580. package/src/embed-shims/.next-link.md +59 -0
  581. package/src/embed-shims/.next-navigation.md +59 -0
  582. package/src/hooks/.index.md +34 -29
  583. package/src/hooks/.use-access-code-integration.md +49 -0
  584. package/src/hooks/.use-contact-submission.md +37 -26
  585. package/src/hooks/.use-copy-to-clipboard.md +42 -0
  586. package/src/hooks/.use-near-viewport.md +44 -0
  587. package/src/hooks/.use-og-placeholder.md +51 -0
  588. package/src/hooks/.use-toast.md +36 -35
  589. package/src/hooks/state/.use-api-params.md +29 -46
  590. package/src/hooks/state/.use-query-params.md +37 -33
  591. package/src/hooks/ui/.index.md +33 -32
  592. package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
  593. package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
  594. package/src/hooks/ui/.use-image-edge-color.md +42 -0
  595. package/src/hooks/ui/.use-media-query.md +33 -25
  596. package/src/hooks/ui/.use-search.md +51 -0
  597. package/src/nats/.nats.md +49 -28
  598. package/src/schemas/.contact-schema.md +45 -0
  599. package/src/stories/.AnnouncementBar.stories.md +45 -0
  600. package/src/stories/.AppLayout.stories.md +20 -21
  601. package/src/stories/.Autocomplete.stories.md +48 -34
  602. package/src/stories/.Board.stories.md +35 -0
  603. package/src/stories/.Button.stories.md +36 -33
  604. package/src/stories/.ChatTicketList.stories.md +33 -0
  605. package/src/stories/.CheckboxBlock.stories.md +40 -28
  606. package/src/stories/.ContentLoader.stories.md +47 -0
  607. package/src/stories/.DashboardInfoCard.stories.md +57 -0
  608. package/src/stories/.DataTable.stories.md +41 -0
  609. package/src/stories/.DatePicker.stories.md +66 -52
  610. package/src/stories/.DeviceCard.stories.md +41 -40
  611. package/src/stories/.DeviceCardCompact.stories.md +41 -0
  612. package/src/stories/.DotsLoaderIcon.stories.md +36 -0
  613. package/src/stories/.Drawer.stories.md +58 -0
  614. package/src/stories/.EmbeddableChat.stories.md +41 -0
  615. package/src/stories/.FileManager.stories.md +41 -0
  616. package/src/stories/.FileManagerActionBar.stories.md +38 -0
  617. package/src/stories/.FileUpload.stories.md +53 -0
  618. package/src/stories/.FilterList.stories.md +54 -0
  619. package/src/stories/.FilterModal.stories.md +72 -0
  620. package/src/stories/.FiltersDropdown.stories.md +57 -0
  621. package/src/stories/.Header.stories.md +48 -0
  622. package/src/stories/.ImageUploader.stories.md +49 -0
  623. package/src/stories/.InfoCard.stories.md +54 -0
  624. package/src/stories/.Input.stories.md +48 -30
  625. package/src/stories/.ListPageLayout.stories.md +56 -43
  626. package/src/stories/.MingoOnboardingCard.stories.md +42 -0
  627. package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
  628. package/src/stories/.Modal.stories.md +40 -31
  629. package/src/stories/.NotificationDrawer.stories.md +55 -0
  630. package/src/stories/.OnboardingStepCard.stories.md +41 -0
  631. package/src/stories/.OrganizationCard.stories.md +61 -0
  632. package/src/stories/.PageActions.stories.md +52 -49
  633. package/src/stories/.PageContainer.stories.md +41 -35
  634. package/src/stories/.PageLayout.stories.md +60 -0
  635. package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
  636. package/src/stories/.PhoneInput.stories.md +53 -0
  637. package/src/stories/.QueryReportTable.stories.md +44 -0
  638. package/src/stories/.RadioGroup.stories.md +46 -0
  639. package/src/stories/.RadioGroupBlock.stories.md +45 -0
  640. package/src/stories/.Select.stories.md +29 -15
  641. package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
  642. package/src/stories/.SplitButton.stories.md +62 -0
  643. package/src/stories/.TabNavigation.stories.md +47 -38
  644. package/src/stories/.TabSelector.stories.md +65 -0
  645. package/src/stories/.Table.stories.md +38 -46
  646. package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
  647. package/src/stories/.Tag.stories.md +43 -32
  648. package/src/stories/.TagKeyValueFilter.stories.md +44 -0
  649. package/src/stories/.TagSearchInput.stories.md +61 -0
  650. package/src/stories/.Textarea.stories.md +49 -26
  651. package/src/stories/.Theme.stories.md +41 -0
  652. package/src/stories/.TicketAttachmentsList.stories.md +39 -0
  653. package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
  654. package/src/stories/.TicketInfoSection.stories.md +40 -0
  655. package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
  656. package/src/stories/.TicketNotesSection.stories.md +50 -0
  657. package/src/stories/.Toaster.stories.md +40 -0
  658. package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
  659. package/src/stories/.Tooltip.stories.md +41 -0
  660. package/src/stories/.UserSummary.stories.md +41 -0
  661. package/src/stories/.WaitlistForm.stories.md +42 -0
  662. package/src/stories/BlogCard.stories.tsx +61 -0
  663. package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
  664. package/src/stories/CaseStudyCard.stories.tsx +42 -0
  665. package/src/stories/ChatContainer.stories.tsx +186 -0
  666. package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
  667. package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
  668. package/src/stories/DataRoomDocCard.stories.tsx +52 -0
  669. package/src/stories/GenericEntityCard.stories.tsx +66 -0
  670. package/src/stories/GitHubActivityCard.stories.tsx +61 -0
  671. package/src/stories/HubspotTicketCard.stories.tsx +98 -0
  672. package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
  673. package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
  674. package/src/stories/ProductReleaseCard.stories.tsx +61 -0
  675. package/src/stories/ProgramCard.stories.tsx +79 -0
  676. package/src/stories/RoadmapCard.stories.tsx +75 -0
  677. package/src/stories/SlackMessageCard.stories.tsx +41 -0
  678. package/src/stories/__fixtures__/chat-cards.ts +604 -0
  679. package/src/types/.blog.md +53 -29
  680. package/src/types/.case-study.md +44 -27
  681. package/src/types/.customer-interview.md +66 -44
  682. package/src/types/.delivery.md +40 -0
  683. package/src/types/.employee.md +24 -30
  684. package/src/types/.index.md +33 -47
  685. package/src/types/.marketing.md +49 -44
  686. package/src/types/.navigation.md +33 -25
  687. package/src/types/.os.types.md +32 -27
  688. package/src/types/.platform.md +31 -28
  689. package/src/types/.product-release.md +65 -38
  690. package/src/types/.supabase.md +37 -29
  691. package/src/types/.team.md +41 -33
  692. package/src/types/.video-processing.md +54 -0
  693. package/src/types/.waitlist.md +40 -36
  694. package/src/utils/.access-code-client.md +37 -36
  695. package/src/utils/.cn.md +31 -23
  696. package/src/utils/.color-analysis.md +35 -0
  697. package/src/utils/.country-phone-utils.md +39 -0
  698. package/src/utils/.date-formatters.md +19 -18
  699. package/src/utils/.embed-authed-fetch.md +39 -0
  700. package/src/utils/.embed-proxy-auth-storage.md +38 -0
  701. package/src/utils/.fetch-priority.md +41 -0
  702. package/src/utils/.format.md +74 -25
  703. package/src/utils/.generic-domain-utils.md +42 -0
  704. package/src/utils/.image-proxy.md +59 -23
  705. package/src/utils/.index.md +42 -49
  706. package/src/utils/.local-storage-adapter.md +50 -0
  707. package/src/utils/.ods-color-utils.md +55 -38
  708. package/src/utils/.platform-config.md +45 -25
  709. package/src/utils/.scroll-into-view.md +40 -0
  710. package/src/utils/.source-icons.md +53 -0
  711. package/src/utils/.sse-decision-frame.md +46 -0
  712. package/src/utils/dev-sections/.index.md +34 -0
  713. package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
  714. package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
  715. package/dist/chunk-ZTJVRSN5.js.map +0 -1
  716. package/src/components/.card.md +0 -42
  717. package/src/components/.contact-button.md +0 -30
  718. package/src/components/.drawer.md +0 -46
  719. package/src/components/.fixed-layout-container.md +0 -47
  720. package/src/components/.footer-waitlist-card.md +0 -29
  721. package/src/components/.join-waitlist-cta.md +0 -29
  722. package/src/components/.sheet.md +0 -47
  723. package/src/components/.sliding-panel.md +0 -48
  724. package/src/components/.tooltip.md +0 -48
  725. package/src/components/.use-mobile.md +0 -42
  726. package/src/components/.vendor-compact-card.md +0 -66
  727. package/src/components/.x-button.md +0 -42
  728. package/src/components/features/.github-repo-button.md +0 -40
  729. package/src/components/features/.organization-icon.md +0 -47
  730. package/src/components/features/.organization-selector.md +0 -45
  731. package/src/components/icons/.fleet-icon.md +0 -39
  732. package/src/components/icons/.meshcentral-icon.md +0 -35
  733. package/src/components/icons/.refresh-icon.md +0 -34
  734. package/src/components/icons/.tactical-icon.md +0 -35
  735. package/src/components/ui/.button.md +0 -69
  736. package/src/components/ui/.log-table-row.md +0 -47
  737. package/src/components/ui/.selectable-device-card.md +0 -46
  738. package/src/hooks/.api-hooks-stub.md +0 -45
  739. package/src/hooks/api/.use-product-releases.md +0 -53
  740. package/src/stories/.OrganizationSelector.stories.md +0 -42
  741. package/src/stories/.SelectableDeviceCard.stories.md +0 -30
  742. package/src/utils/.lite-youtube-embed-stub.md +0 -37
  743. package/src/utils/.lite-youtube-embed.md +0 -33
  744. /package/dist/{chunk-3JWIJJ44.js.map → chunk-5OWDOFKK.js.map} +0 -0
  745. /package/dist/{chunk-IK2X5YJU.js.map → chunk-HWY35EAK.js.map} +0 -0
@@ -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`).
@@ -0,0 +1,47 @@
1
+ <!-- source-hash: 756619c21c965403499e06eb7fef94fa -->
2
+ Pure presentation component for rendering investor update cards in two density modes (`default` and `sm`), with no internal click logic — callers supply the resolved `href`.
3
+
4
+ ## Key Components
5
+
6
+ ### `InvestorUpdateCard`
7
+ Main card component. Renders differently based on the `size` prop:
8
+ - **`default`** — delegates to `AdminContentCard` with image, title, summary, badges, and period meta
9
+ - **`sm`** — compact horizontal layout using shared `COMPACT_CARD_*` utility classes
10
+
11
+ ### `InvestorUpdateCardSkeleton`
12
+ Loading placeholder matching the visual footprint of each density mode. Uses `animate-pulse` for the default size.
13
+
14
+ ### `InvestorUpdateCardProps`
15
+
16
+ | Prop | Type | Description |
17
+ |------|------|-------------|
18
+ | `update` | `InvestorUpdate` | Entity data |
19
+ | `href` | `string` | Resolved detail URL (caller-supplied) |
20
+ | `target` | `'_blank'` | Optional new-tab behavior |
21
+ | `placeholderUrl` | `string \| null` | OG fallback when `featured_image` is absent |
22
+ | `size` | `'default' \| 'sm'` | Card density (defaults to `'default'`) |
23
+
24
+ ## Usage Example
25
+
26
+ ```typescript
27
+ // Default density — full card
28
+ <InvestorUpdateCard
29
+ update={investorUpdate}
30
+ href={`/investor-updates/${investorUpdate.slug}`}
31
+ placeholderUrl="/images/update-placeholder.png"
32
+ />
33
+
34
+ // Compact horizontal — e.g. inside a chat dispatch or sidebar list
35
+ <InvestorUpdateCard
36
+ update={investorUpdate}
37
+ href={`/investor-updates/${investorUpdate.slug}`}
38
+ target="_blank"
39
+ rel="noopener noreferrer"
40
+ size="sm"
41
+ />
42
+
43
+ // Skeleton while data loads
44
+ <InvestorUpdateCardSkeleton size="sm" />
45
+ ```
46
+
47
+ > **Design note:** The component intentionally owns zero click/navigation logic. Tab behavior (`target="_blank"`) is resolved externally (e.g. via `computeIsNewTab`) and passed in, keeping the component fully declarative.
@@ -0,0 +1,58 @@
1
+ <!-- source-hash: ecac941a52e178236e11d54fe42337ec -->
2
+ Pure presentation component that renders an onboarding guide card in three layout variants — `catalog`, `default`, and `sm` — plus matching skeleton states for loading UI.
3
+
4
+ ## Key Components
5
+
6
+ ### `OnboardingGuideCard`
7
+ Main card component. Stateless and click-logic-free; the caller wraps with navigation and provides the resolved `href`.
8
+
9
+ | Prop | Type | Description |
10
+ |------|------|-------------|
11
+ | `guide` | `OnboardingGuide` | Guide entity data |
12
+ | `href` | `string` | Detail URL resolved by caller |
13
+ | `target` | `'_blank'` | Optional new-tab behavior |
14
+ | `size` | `'catalog' \| 'default' \| 'sm'` | Layout variant (default: `'default'`) |
15
+ | `placeholderUrl` | `string \| null` | OG fallback image for catalog/sm |
16
+ | `className` | `string` | Additional CSS classes |
17
+
18
+ ### `OnboardingGuideCardSkeleton`
19
+ Loading placeholder that mirrors each layout variant's structure with animated pulse states.
20
+
21
+ ### `HORIZONTAL_SIZE_TOKENS`
22
+ Internal token map for spacing/typography in the `default` variant.
23
+
24
+ ## Variants
25
+
26
+ | Variant | Layout | Use Case |
27
+ |---------|--------|----------|
28
+ | `catalog` | Hero image + author grid | Public catalog page |
29
+ | `default` | Horizontal step-numbered | "More in section" rail |
30
+ | `sm` | Compact horizontal | Chat-inline rendering |
31
+
32
+ ## Usage Example
33
+
34
+ ```typescript
35
+ import { OnboardingGuideCard, OnboardingGuideCardSkeleton } from './onboarding-guide-card'
36
+
37
+ // Loading state
38
+ if (isLoading) {
39
+ return <OnboardingGuideCardSkeleton size="catalog" />
40
+ }
41
+
42
+ // Catalog variant (public listing)
43
+ <OnboardingGuideCard
44
+ guide={guide}
45
+ href={`/guides/${guide.slug}`}
46
+ size="catalog"
47
+ placeholderUrl={ogImageUrl}
48
+ />
49
+
50
+ // Chat inline (sm variant, new tab)
51
+ <OnboardingGuideCard
52
+ guide={guide}
53
+ href={`/guides/${guide.slug}`}
54
+ size="sm"
55
+ target="_blank"
56
+ rel="noopener noreferrer"
57
+ />
58
+ ```
@@ -0,0 +1,31 @@
1
+ <!-- source-hash: 192500e77aad1a0a4024a9e7d8dfcfec -->
2
+ Provides the lib-side default implementation of `buildProductReleaseCardProps` for chat dispatch, satisfying the three fields required by the compact (`size='sm'`) `<ProductReleaseCard>` variant without requiring hub-side extras.
3
+
4
+ ## Key Components
5
+
6
+ ### Interfaces
7
+ - **`ReleaseLike`** — Loosely typed shape for raw API row data, covering image URLs, video URLs, and release date fields
8
+ - **`DerivedSmProps`** — Output shape containing only the three sm-relevant props: `coverImage`, `hasVideoCover`, and `formattedDate`
9
+
10
+ ### Functions
11
+ - **`pickCover(item)`** — Resolves the best cover image URL by mirroring the hub's `resolveReleaseCover` precedence: video thumbnails take priority when a video is set, falling back to `featured_image` then `og_image_url`
12
+ - **`defaultBuildProductReleaseCardProps(item)`** — Main export; builds the `DerivedSmProps` bundle from an unknown API row, using `formatReleaseDate` for TZ-safe date formatting
13
+
14
+ ## Usage Example
15
+
16
+ ```typescript
17
+ import { defaultBuildProductReleaseCardProps } from './product-release-card-defaults'
18
+
19
+ // Used as fallback when opts.extras.buildProductReleaseCardProps is not supplied
20
+ const props = defaultBuildProductReleaseCardProps(apiRow)
21
+ // → { coverImage: 'https://...', hasVideoCover: true, formattedDate: 'Jan 15, 2025' }
22
+
23
+ // Hub-side embedders override with their richer builder via extras:
24
+ const cardProps = (opts.extras?.buildProductReleaseCardProps ?? defaultBuildProductReleaseCardProps)(row)
25
+ ```
26
+
27
+ ## Notes
28
+
29
+ - Uses `formatReleaseDate` (not `new Date().toLocaleDateString`) to avoid UTC off-by-one day shifts on date-only `YYYY-MM-DD` strings
30
+ - Produces an empty string for `formattedDate` when `release_date` is absent, rather than throwing
31
+ - lg-only fields (`changelogCounts`, badge color, view count) are intentionally omitted — hub embedders supply those via `extras`