@flamingo-stack/openframe-frontend-core 0.0.204 → 0.0.205

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 (509) hide show
  1. package/dist/{chunk-4CWSZPXH.cjs → chunk-24KCAECR.cjs} +9 -9
  2. package/dist/{chunk-4CWSZPXH.cjs.map → chunk-24KCAECR.cjs.map} +1 -1
  3. package/dist/chunk-27APPAJN.cjs +24 -0
  4. package/dist/chunk-27APPAJN.cjs.map +1 -0
  5. package/dist/{chunk-UC43NICZ.cjs → chunk-664KA5FI.cjs} +2 -35
  6. package/dist/chunk-664KA5FI.cjs.map +1 -0
  7. package/dist/chunk-6RZYJICV.cjs +24 -0
  8. package/dist/chunk-6RZYJICV.cjs.map +1 -0
  9. package/dist/chunk-7L4DWM7P.js +24 -0
  10. package/dist/chunk-7L4DWM7P.js.map +1 -0
  11. package/dist/chunk-BZFW3FOF.cjs +21 -0
  12. package/dist/chunk-BZFW3FOF.cjs.map +1 -0
  13. package/dist/{chunk-N57KWHDB.js → chunk-CIPO6DXK.js} +5 -5
  14. package/dist/chunk-EL5YVPD5.js +21 -0
  15. package/dist/chunk-EL5YVPD5.js.map +1 -0
  16. package/dist/{chunk-ARQ4XP64.cjs → chunk-FDCFI7YT.cjs} +40080 -31492
  17. package/dist/chunk-FDCFI7YT.cjs.map +1 -0
  18. package/dist/chunk-G7UE6RKV.cjs +121 -0
  19. package/dist/chunk-G7UE6RKV.cjs.map +1 -0
  20. package/dist/{chunk-25LVV26X.cjs → chunk-JUZGUQMX.cjs} +178 -50
  21. package/dist/chunk-JUZGUQMX.cjs.map +1 -0
  22. package/dist/{chunk-SZPJ5R5B.js → chunk-KSOOKNBG.js} +1 -34
  23. package/dist/chunk-KSOOKNBG.js.map +1 -0
  24. package/dist/{chunk-RMB5DVED.cjs → chunk-KUZGEA7U.cjs} +83 -66
  25. package/dist/chunk-KUZGEA7U.cjs.map +1 -0
  26. package/dist/chunk-LXC6P2EO.js +63 -0
  27. package/dist/chunk-LXC6P2EO.js.map +1 -0
  28. package/dist/chunk-MJNXIEV2.js +24 -0
  29. package/dist/chunk-MJNXIEV2.js.map +1 -0
  30. package/dist/{chunk-CPXLQ57U.js → chunk-MVGGXOFA.js} +37 -20
  31. package/dist/chunk-MVGGXOFA.js.map +1 -0
  32. package/dist/{chunk-LY34ORX6.js → chunk-O55ZUAX7.js} +39920 -31332
  33. package/dist/chunk-O55ZUAX7.js.map +1 -0
  34. package/dist/chunk-OHPI2HRK.js +47 -0
  35. package/dist/chunk-OHPI2HRK.js.map +1 -0
  36. package/dist/chunk-PLJLE4A4.js +121 -0
  37. package/dist/chunk-PLJLE4A4.js.map +1 -0
  38. package/dist/{chunk-XGL5FKIK.js → chunk-SCN5WFIZ.js} +148 -20
  39. package/dist/chunk-SCN5WFIZ.js.map +1 -0
  40. package/dist/chunk-WBR7H6E3.cjs +47 -0
  41. package/dist/chunk-WBR7H6E3.cjs.map +1 -0
  42. package/dist/chunk-XL4V2PYG.cjs +63 -0
  43. package/dist/chunk-XL4V2PYG.cjs.map +1 -0
  44. package/dist/components/announcement-bar.d.ts.map +1 -1
  45. package/dist/components/chat/chat-attachment-bar.d.ts +66 -0
  46. package/dist/components/chat/chat-attachment-bar.d.ts.map +1 -0
  47. package/dist/components/chat/chat-container.d.ts +21 -1
  48. package/dist/components/chat/chat-container.d.ts.map +1 -1
  49. package/dist/components/chat/chat-input.d.ts.map +1 -1
  50. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  51. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  52. package/dist/components/chat/chat-panel-context.d.ts +9 -0
  53. package/dist/components/chat/chat-panel-context.d.ts.map +1 -0
  54. package/dist/components/chat/chat-ticket-list.d.ts +1 -1
  55. package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
  56. package/dist/components/chat/embeddable-chat.d.ts +42 -0
  57. package/dist/components/chat/embeddable-chat.d.ts.map +1 -0
  58. package/dist/components/chat/entity-cards/admin-content-card.d.ts +34 -0
  59. package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -0
  60. package/dist/components/chat/entity-cards/block-card.d.ts.map +1 -0
  61. package/dist/components/chat/entity-cards/blog-card.d.ts +30 -0
  62. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -0
  63. package/dist/components/chat/entity-cards/blog-image-placeholder.d.ts +26 -0
  64. package/dist/components/chat/entity-cards/blog-image-placeholder.d.ts.map +1 -0
  65. package/dist/components/chat/entity-cards/campaign-card-admin.d.ts +33 -0
  66. package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -0
  67. package/dist/components/chat/entity-cards/case-study-card.d.ts +20 -0
  68. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -0
  69. package/dist/components/chat/entity-cards/chat-ticket-item.d.ts.map +1 -0
  70. package/dist/components/chat/{chat-video-entity-card.d.ts → entity-cards/chat-video-entity-card.d.ts} +1 -1
  71. package/dist/components/chat/entity-cards/chat-video-entity-card.d.ts.map +1 -0
  72. package/dist/components/chat/entity-cards/customer-interview-card.d.ts +19 -0
  73. package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -0
  74. package/dist/components/chat/entity-cards/data-room-doc-card.d.ts +47 -0
  75. package/dist/components/chat/entity-cards/data-room-doc-card.d.ts.map +1 -0
  76. package/dist/components/chat/entity-cards/dispatch.d.ts +119 -0
  77. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -0
  78. package/dist/components/chat/entity-cards/entity-author-card.d.ts +87 -0
  79. package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -0
  80. package/dist/components/chat/entity-cards/generic-entity-card.d.ts +42 -0
  81. package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -0
  82. package/dist/components/chat/entity-cards/github-activity-card.d.ts +37 -0
  83. package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -0
  84. package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts +28 -0
  85. package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -0
  86. package/dist/components/chat/entity-cards/index.d.ts +32 -0
  87. package/dist/components/chat/entity-cards/index.d.ts.map +1 -0
  88. package/dist/components/chat/entity-cards/investor-update-card.d.ts +19 -0
  89. package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -0
  90. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +20 -0
  91. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -0
  92. package/dist/components/chat/entity-cards/product-release-card-defaults.d.ts +21 -0
  93. package/dist/components/chat/entity-cards/product-release-card-defaults.d.ts.map +1 -0
  94. package/dist/components/chat/entity-cards/product-release-card.d.ts +12 -0
  95. package/dist/components/chat/entity-cards/product-release-card.d.ts.map +1 -0
  96. package/dist/components/chat/entity-cards/program-card-defaults.d.ts +32 -0
  97. package/dist/components/chat/entity-cards/program-card-defaults.d.ts.map +1 -0
  98. package/dist/components/chat/entity-cards/program-card.d.ts +37 -0
  99. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -0
  100. package/dist/components/chat/entity-cards/roadmap-card.d.ts +28 -0
  101. package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -0
  102. package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts +12 -0
  103. package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts.map +1 -0
  104. package/dist/components/chat/entity-cards/slack-message-card.d.ts +28 -0
  105. package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -0
  106. package/dist/components/chat/entity-cards/task-type-icon.d.ts +6 -0
  107. package/dist/components/chat/entity-cards/task-type-icon.d.ts.map +1 -0
  108. package/dist/components/chat/hooks/index.d.ts +10 -0
  109. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  110. package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts +5 -0
  111. package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts.map +1 -0
  112. package/dist/components/chat/hooks/use-chat-attachments.d.ts +33 -0
  113. package/dist/components/chat/hooks/use-chat-attachments.d.ts.map +1 -0
  114. package/dist/components/chat/hooks/use-chat-card-item.d.ts +7 -0
  115. package/dist/components/chat/hooks/use-chat-card-item.d.ts.map +1 -0
  116. package/dist/components/chat/hooks/use-chat-identity.d.ts +44 -0
  117. package/dist/components/chat/hooks/use-chat-identity.d.ts.map +1 -0
  118. package/dist/components/chat/hooks/use-chat.d.ts +30 -0
  119. package/dist/components/chat/hooks/use-chat.d.ts.map +1 -0
  120. package/dist/components/chat/hooks/use-close-on-navigation.d.ts +2 -0
  121. package/dist/components/chat/hooks/use-close-on-navigation.d.ts.map +1 -0
  122. package/dist/components/chat/hooks/use-embedded-chat.d.ts +174 -0
  123. package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +1 -0
  124. package/dist/components/chat/hooks/use-proxied-image-url.d.ts +18 -0
  125. package/dist/components/chat/hooks/use-proxied-image-url.d.ts.map +1 -0
  126. package/dist/components/chat/hooks/use-slash-commands.d.ts +32 -0
  127. package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -0
  128. package/dist/components/chat/hooks/use-sse.d.ts +57 -0
  129. package/dist/components/chat/hooks/use-sse.d.ts.map +1 -0
  130. package/dist/components/chat/index.cjs +393 -0
  131. package/dist/components/chat/index.cjs.map +1 -0
  132. package/dist/components/chat/index.d.ts +5 -3
  133. package/dist/components/chat/index.d.ts.map +1 -1
  134. package/dist/components/chat/index.js +393 -0
  135. package/dist/components/chat/index.js.map +1 -0
  136. package/dist/components/chat/nav-link-anchor-via-runtime.d.ts +33 -0
  137. package/dist/components/chat/nav-link-anchor-via-runtime.d.ts.map +1 -0
  138. package/dist/components/chat/source-action-button.d.ts +39 -0
  139. package/dist/components/chat/source-action-button.d.ts.map +1 -0
  140. package/dist/components/chat/types/chat.types.d.ts +36 -0
  141. package/dist/components/chat/types/chat.types.d.ts.map +1 -1
  142. package/dist/components/chat/types/component.types.d.ts +56 -11
  143. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  144. package/dist/components/chat/types/entities/blog.d.ts +14 -0
  145. package/dist/components/chat/types/entities/blog.d.ts.map +1 -0
  146. package/dist/components/chat/types/entities/case-study.d.ts +10 -0
  147. package/dist/components/chat/types/entities/case-study.d.ts.map +1 -0
  148. package/dist/components/chat/types/entities/content-ref.d.ts +23 -0
  149. package/dist/components/chat/types/entities/content-ref.d.ts.map +1 -0
  150. package/dist/components/chat/types/entities/customer-interview.d.ts +10 -0
  151. package/dist/components/chat/types/entities/customer-interview.d.ts.map +1 -0
  152. package/dist/components/chat/types/entities/data-room-doc.d.ts +37 -0
  153. package/dist/components/chat/types/entities/data-room-doc.d.ts.map +1 -0
  154. package/dist/components/chat/types/entities/github-activity.d.ts +29 -0
  155. package/dist/components/chat/types/entities/github-activity.d.ts.map +1 -0
  156. package/dist/components/chat/types/entities/hubspot-ticket.d.ts +39 -0
  157. package/dist/components/chat/types/entities/hubspot-ticket.d.ts.map +1 -0
  158. package/dist/components/chat/types/entities/index.d.ts +28 -0
  159. package/dist/components/chat/types/entities/index.d.ts.map +1 -0
  160. package/dist/components/chat/types/entities/investor-update.d.ts +83 -0
  161. package/dist/components/chat/types/entities/investor-update.d.ts.map +1 -0
  162. package/dist/components/chat/types/entities/onboarding-guide.d.ts +79 -0
  163. package/dist/components/chat/types/entities/onboarding-guide.d.ts.map +1 -0
  164. package/dist/components/chat/types/entities/program-types.d.ts +303 -0
  165. package/dist/components/chat/types/entities/program-types.d.ts.map +1 -0
  166. package/dist/components/chat/types/entities/roadmap-item.d.ts +41 -0
  167. package/dist/components/chat/types/entities/roadmap-item.d.ts.map +1 -0
  168. package/dist/components/chat/types/entities/slack-message.d.ts +28 -0
  169. package/dist/components/chat/types/entities/slack-message.d.ts.map +1 -0
  170. package/dist/components/chat/types/index.d.ts +1 -0
  171. package/dist/components/chat/types/index.d.ts.map +1 -1
  172. package/dist/components/chat/utils/agent-status-message.d.ts +18 -0
  173. package/dist/components/chat/utils/agent-status-message.d.ts.map +1 -0
  174. package/dist/components/chat/utils/auto-continuation-directive.d.ts +38 -0
  175. package/dist/components/chat/utils/auto-continuation-directive.d.ts.map +1 -0
  176. package/dist/components/chat/utils/chat-attachment-markdown.d.ts +114 -0
  177. package/dist/components/chat/utils/chat-attachment-markdown.d.ts.map +1 -0
  178. package/dist/components/chat/utils/chat-authed-fetch.d.ts +13 -0
  179. package/dist/components/chat/utils/chat-authed-fetch.d.ts.map +1 -0
  180. package/dist/components/chat/utils/chat-nav-resolution.d.ts +72 -0
  181. package/dist/components/chat/utils/chat-nav-resolution.d.ts.map +1 -0
  182. package/dist/components/chat/utils/chat-proxy-auth-storage.d.ts +43 -0
  183. package/dist/components/chat/utils/chat-proxy-auth-storage.d.ts.map +1 -0
  184. package/dist/components/chat/utils/chip-action-class.d.ts +16 -0
  185. package/dist/components/chat/utils/chip-action-class.d.ts.map +1 -0
  186. package/dist/components/chat/utils/chip-styles.d.ts +32 -0
  187. package/dist/components/chat/utils/chip-styles.d.ts.map +1 -0
  188. package/dist/components/chat/utils/clickup-task-type-utils.d.ts +38 -0
  189. package/dist/components/chat/utils/clickup-task-type-utils.d.ts.map +1 -0
  190. package/dist/components/chat/utils/compact-card-classes.d.ts +50 -0
  191. package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -0
  192. package/dist/components/chat/utils/decide-new-tab.d.ts +39 -0
  193. package/dist/components/chat/utils/decide-new-tab.d.ts.map +1 -0
  194. package/dist/components/chat/utils/external-app-urls.d.ts +14 -0
  195. package/dist/components/chat/utils/external-app-urls.d.ts.map +1 -0
  196. package/dist/components/chat/utils/flatten-assistant-content.d.ts +25 -0
  197. package/dist/components/chat/utils/flatten-assistant-content.d.ts.map +1 -0
  198. package/dist/components/chat/utils/icon-registry.d.ts +67 -0
  199. package/dist/components/chat/utils/icon-registry.d.ts.map +1 -0
  200. package/dist/components/chat/utils/index.d.ts +21 -0
  201. package/dist/components/chat/utils/index.d.ts.map +1 -1
  202. package/dist/components/chat/utils/is-cross-origin-url.d.ts +22 -0
  203. package/dist/components/chat/utils/is-cross-origin-url.d.ts.map +1 -0
  204. package/dist/components/chat/utils/nav-anchor-props.d.ts +54 -0
  205. package/dist/components/chat/utils/nav-anchor-props.d.ts.map +1 -0
  206. package/dist/components/chat/utils/nav-click-handler.d.ts +51 -0
  207. package/dist/components/chat/utils/nav-click-handler.d.ts.map +1 -0
  208. package/dist/components/chat/utils/scroll-anchor.d.ts +30 -0
  209. package/dist/components/chat/utils/scroll-anchor.d.ts.map +1 -0
  210. package/dist/components/chat/utils/slash-dispatch-utils.d.ts +109 -0
  211. package/dist/components/chat/utils/slash-dispatch-utils.d.ts.map +1 -0
  212. package/dist/components/chat/utils/source-icons.d.ts +8 -0
  213. package/dist/components/chat/utils/source-icons.d.ts.map +1 -0
  214. package/dist/components/chat/utils/source-row-cta.d.ts +111 -0
  215. package/dist/components/chat/utils/source-row-cta.d.ts.map +1 -0
  216. package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
  217. package/dist/components/features/index.cjs +12 -6
  218. package/dist/components/features/index.cjs.map +1 -1
  219. package/dist/components/features/index.js +11 -5
  220. package/dist/components/features/video.d.ts.map +1 -1
  221. package/dist/components/icons/index.cjs +3 -3
  222. package/dist/components/icons/index.js +2 -2
  223. package/dist/components/index.cjs +274 -8
  224. package/dist/components/index.cjs.map +1 -1
  225. package/dist/components/index.js +273 -7
  226. package/dist/components/interactive-wrapper.d.ts +3 -3
  227. package/dist/components/navigation/index.cjs +12 -6
  228. package/dist/components/navigation/index.cjs.map +1 -1
  229. package/dist/components/navigation/index.js +11 -5
  230. package/dist/components/resizable.d.ts +1 -1
  231. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts +1 -1
  232. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
  233. package/dist/components/shared/product-release/product-release-card.d.ts +19 -12
  234. package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
  235. package/dist/components/shared/product-release/release-detail-page.d.ts +2 -4
  236. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  237. package/dist/components/ui/button/button.d.ts +13 -0
  238. package/dist/components/ui/button/button.d.ts.map +1 -1
  239. package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
  240. package/dist/components/ui/entity-image.d.ts.map +1 -1
  241. package/dist/components/ui/file-manager/index.cjs +71 -70
  242. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  243. package/dist/components/ui/file-manager/index.js +6 -5
  244. package/dist/components/ui/file-manager/index.js.map +1 -1
  245. package/dist/components/ui/hover-dropdown.d.ts +66 -0
  246. package/dist/components/ui/hover-dropdown.d.ts.map +1 -0
  247. package/dist/components/ui/index.cjs +276 -6
  248. package/dist/components/ui/index.cjs.map +1 -1
  249. package/dist/components/ui/index.d.ts +1 -0
  250. package/dist/components/ui/index.d.ts.map +1 -1
  251. package/dist/components/ui/index.js +278 -8
  252. package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
  253. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  254. package/dist/contexts/chat-runtime-context.d.ts +109 -0
  255. package/dist/contexts/chat-runtime-context.d.ts.map +1 -0
  256. package/dist/contexts/endpoints-runtime-context.d.ts +28 -0
  257. package/dist/contexts/endpoints-runtime-context.d.ts.map +1 -0
  258. package/dist/contexts/index.cjs +30 -0
  259. package/dist/contexts/index.cjs.map +1 -0
  260. package/dist/contexts/index.d.ts +26 -0
  261. package/dist/contexts/index.d.ts.map +1 -0
  262. package/dist/contexts/index.js +30 -0
  263. package/dist/contexts/index.js.map +1 -0
  264. package/dist/contexts/use-outer-or-default.d.ts +29 -0
  265. package/dist/contexts/use-outer-or-default.d.ts.map +1 -0
  266. package/dist/embed-shims/index.cjs +51 -0
  267. package/dist/embed-shims/index.cjs.map +1 -0
  268. package/dist/embed-shims/index.d.ts +31 -0
  269. package/dist/embed-shims/index.d.ts.map +1 -0
  270. package/dist/embed-shims/index.js +51 -0
  271. package/dist/embed-shims/index.js.map +1 -0
  272. package/dist/embed-shims/next-dynamic.cjs +12 -0
  273. package/dist/embed-shims/next-dynamic.cjs.map +1 -0
  274. package/dist/embed-shims/next-dynamic.d.ts +47 -0
  275. package/dist/embed-shims/next-dynamic.d.ts.map +1 -0
  276. package/dist/embed-shims/next-dynamic.js +12 -0
  277. package/dist/embed-shims/next-dynamic.js.map +1 -0
  278. package/dist/embed-shims/next-image.cjs +12 -0
  279. package/dist/embed-shims/next-image.cjs.map +1 -0
  280. package/dist/embed-shims/next-image.d.ts +28 -0
  281. package/dist/embed-shims/next-image.d.ts.map +1 -0
  282. package/dist/embed-shims/next-image.js +12 -0
  283. package/dist/embed-shims/next-image.js.map +1 -0
  284. package/dist/embed-shims/next-link.cjs +14 -0
  285. package/dist/embed-shims/next-link.cjs.map +1 -0
  286. package/dist/embed-shims/next-link.d.ts +22 -0
  287. package/dist/embed-shims/next-link.d.ts.map +1 -0
  288. package/dist/embed-shims/next-link.js +14 -0
  289. package/dist/embed-shims/next-link.js.map +1 -0
  290. package/dist/embed-shims/next-navigation.cjs +30 -0
  291. package/dist/embed-shims/next-navigation.cjs.map +1 -0
  292. package/dist/embed-shims/next-navigation.d.ts +46 -0
  293. package/dist/embed-shims/next-navigation.d.ts.map +1 -0
  294. package/dist/embed-shims/next-navigation.js +30 -0
  295. package/dist/embed-shims/next-navigation.js.map +1 -0
  296. package/dist/hooks/index.cjs +10 -4
  297. package/dist/hooks/index.cjs.map +1 -1
  298. package/dist/hooks/index.d.ts +2 -0
  299. package/dist/hooks/index.d.ts.map +1 -1
  300. package/dist/hooks/index.js +9 -3
  301. package/dist/hooks/use-access-code-integration.d.ts +48 -0
  302. package/dist/hooks/use-access-code-integration.d.ts.map +1 -0
  303. package/dist/hooks/use-contact-submission.d.ts.map +1 -1
  304. package/dist/hooks/use-og-placeholder.d.ts +31 -0
  305. package/dist/hooks/use-og-placeholder.d.ts.map +1 -0
  306. package/dist/hooks/use-toast.d.ts +1 -1
  307. package/dist/index.cjs +367 -7
  308. package/dist/index.cjs.map +1 -1
  309. package/dist/index.js +378 -18
  310. package/dist/types/index.cjs.map +1 -1
  311. package/dist/types/index.js.map +1 -1
  312. package/dist/utils/access-code-client.d.ts +21 -37
  313. package/dist/utils/access-code-client.d.ts.map +1 -1
  314. package/dist/utils/cn.d.ts +0 -27
  315. package/dist/utils/cn.d.ts.map +1 -1
  316. package/dist/utils/color-analysis.d.ts +33 -0
  317. package/dist/utils/color-analysis.d.ts.map +1 -0
  318. package/dist/utils/date-formatters.d.ts +16 -5
  319. package/dist/utils/date-formatters.d.ts.map +1 -1
  320. package/dist/utils/fetch-priority.d.ts +3 -0
  321. package/dist/utils/fetch-priority.d.ts.map +1 -0
  322. package/dist/utils/format.d.ts +192 -1
  323. package/dist/utils/format.d.ts.map +1 -1
  324. package/dist/utils/image-proxy.d.ts +67 -2
  325. package/dist/utils/image-proxy.d.ts.map +1 -1
  326. package/dist/utils/index.cjs +1274 -155
  327. package/dist/utils/index.cjs.map +1 -1
  328. package/dist/utils/index.d.ts +19 -3
  329. package/dist/utils/index.d.ts.map +1 -1
  330. package/dist/utils/index.js +1200 -157
  331. package/dist/utils/index.js.map +1 -1
  332. package/dist/utils/local-storage-adapter.d.ts +46 -0
  333. package/dist/utils/local-storage-adapter.d.ts.map +1 -0
  334. package/dist/utils/source-icons.d.ts +78 -0
  335. package/dist/utils/source-icons.d.ts.map +1 -0
  336. package/package.json +29 -2
  337. package/src/components/announcement-bar.tsx +26 -4
  338. package/src/components/categories-cart.tsx +1 -1
  339. package/src/components/chat/chat-attachment-bar.tsx +323 -0
  340. package/src/components/chat/chat-container.tsx +39 -5
  341. package/src/components/chat/chat-input.tsx +7 -1
  342. package/src/components/chat/chat-message-enhanced.tsx +32 -22
  343. package/src/components/chat/chat-message-list.tsx +53 -4
  344. package/src/components/chat/chat-panel-context.tsx +37 -0
  345. package/src/components/chat/chat-ticket-list.tsx +1 -1
  346. package/src/components/chat/embeddable-chat.tsx +1106 -0
  347. package/src/components/chat/entity-cards/admin-content-card.tsx +155 -0
  348. package/src/components/chat/entity-cards/blog-card.tsx +259 -0
  349. package/src/components/chat/entity-cards/blog-image-placeholder.tsx +52 -0
  350. package/src/components/chat/entity-cards/campaign-card-admin.tsx +113 -0
  351. package/src/components/chat/entity-cards/case-study-card.tsx +192 -0
  352. package/src/components/chat/{chat-ticket-item.tsx → entity-cards/chat-ticket-item.tsx} +2 -2
  353. package/src/components/chat/{chat-video-entity-card.tsx → entity-cards/chat-video-entity-card.tsx} +2 -2
  354. package/src/components/chat/entity-cards/customer-interview-card.tsx +211 -0
  355. package/src/components/chat/entity-cards/data-room-doc-card.tsx +120 -0
  356. package/src/components/chat/entity-cards/dispatch.tsx +1093 -0
  357. package/src/components/chat/entity-cards/entity-author-card.tsx +193 -0
  358. package/src/components/chat/entity-cards/generic-entity-card.tsx +144 -0
  359. package/src/components/chat/entity-cards/github-activity-card.tsx +305 -0
  360. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +205 -0
  361. package/src/components/chat/entity-cards/index.ts +125 -0
  362. package/src/components/chat/entity-cards/investor-update-card.tsx +150 -0
  363. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +326 -0
  364. package/src/components/chat/entity-cards/product-release-card-defaults.ts +57 -0
  365. package/src/components/chat/entity-cards/product-release-card.tsx +19 -0
  366. package/src/components/chat/entity-cards/program-card-defaults.ts +62 -0
  367. package/src/components/chat/entity-cards/program-card.tsx +451 -0
  368. package/src/components/chat/entity-cards/roadmap-card.tsx +356 -0
  369. package/src/components/chat/entity-cards/roadmap-vote-button.tsx +54 -0
  370. package/src/components/chat/entity-cards/slack-message-card.tsx +182 -0
  371. package/src/components/chat/entity-cards/task-type-icon.tsx +60 -0
  372. package/src/components/chat/hooks/index.ts +22 -0
  373. package/src/components/chat/hooks/use-chat-attachment-image-gallery.tsx +114 -0
  374. package/src/components/chat/hooks/use-chat-attachments.ts +429 -0
  375. package/src/components/chat/hooks/use-chat-card-item.ts +102 -0
  376. package/src/components/chat/hooks/use-chat-identity.ts +139 -0
  377. package/src/components/chat/hooks/use-chat.ts +501 -0
  378. package/src/components/chat/hooks/use-close-on-navigation.ts +87 -0
  379. package/src/components/chat/hooks/use-embedded-chat.ts +1023 -0
  380. package/src/components/chat/hooks/use-proxied-image-url.ts +31 -0
  381. package/src/components/chat/hooks/use-slash-commands.ts +106 -0
  382. package/src/components/chat/hooks/use-sse.ts +143 -0
  383. package/src/components/chat/index.ts +30 -4
  384. package/src/components/chat/nav-link-anchor-via-runtime.tsx +72 -0
  385. package/src/components/chat/source-action-button.tsx +120 -0
  386. package/src/components/chat/types/chat.types.ts +61 -0
  387. package/src/components/chat/types/component.types.ts +57 -11
  388. package/src/components/chat/types/entities/blog.ts +27 -0
  389. package/src/components/chat/types/entities/case-study.ts +14 -0
  390. package/src/components/chat/types/entities/content-ref.ts +23 -0
  391. package/src/components/chat/types/entities/customer-interview.ts +15 -0
  392. package/src/components/chat/types/entities/data-room-doc.ts +37 -0
  393. package/src/components/chat/types/entities/github-activity.ts +36 -0
  394. package/src/components/chat/types/entities/hubspot-ticket.ts +39 -0
  395. package/src/components/chat/types/entities/index.ts +28 -0
  396. package/src/components/chat/types/entities/investor-update.ts +100 -0
  397. package/src/components/chat/types/entities/onboarding-guide.ts +101 -0
  398. package/src/components/chat/types/entities/program-types.ts +433 -0
  399. package/src/components/chat/types/entities/roadmap-item.ts +42 -0
  400. package/src/components/chat/types/entities/slack-message.ts +28 -0
  401. package/src/components/chat/types/index.ts +1 -0
  402. package/src/components/chat/utils/agent-status-message.ts +52 -0
  403. package/src/components/chat/utils/auto-continuation-directive.ts +70 -0
  404. package/src/components/chat/utils/chat-attachment-markdown.ts +190 -0
  405. package/src/components/chat/utils/chat-authed-fetch.ts +73 -0
  406. package/src/components/chat/utils/chat-nav-resolution.ts +151 -0
  407. package/src/components/chat/utils/chat-proxy-auth-storage.ts +148 -0
  408. package/src/components/chat/utils/chip-action-class.ts +19 -0
  409. package/src/components/chat/utils/chip-styles.ts +51 -0
  410. package/src/components/chat/utils/clickup-task-type-utils.ts +59 -0
  411. package/src/components/chat/utils/compact-card-classes.ts +97 -0
  412. package/src/components/chat/utils/decide-new-tab.ts +57 -0
  413. package/src/components/chat/utils/external-app-urls.ts +19 -0
  414. package/src/components/chat/utils/flatten-assistant-content.ts +35 -0
  415. package/src/components/chat/utils/icon-registry.ts +297 -0
  416. package/src/components/chat/utils/index.ts +133 -0
  417. package/src/components/chat/utils/is-cross-origin-url.ts +28 -0
  418. package/src/components/chat/utils/nav-anchor-props.ts +78 -0
  419. package/src/components/chat/utils/nav-click-handler.ts +81 -0
  420. package/src/components/chat/utils/scroll-anchor.ts +35 -0
  421. package/src/components/chat/utils/slash-dispatch-utils.ts +183 -0
  422. package/src/components/chat/utils/source-icons.ts +14 -0
  423. package/src/components/chat/utils/source-row-cta.ts +215 -0
  424. package/src/components/empty-state.tsx +1 -1
  425. package/src/components/features/board/ticket-card.tsx +1 -1
  426. package/src/components/features/figma-prototype-viewer.tsx +2 -1
  427. package/src/components/features/media-gallery-manager.tsx +1 -1
  428. package/src/components/features/parallax-image-showcase.tsx +1 -1
  429. package/src/components/features/release-media-manager.tsx +1 -1
  430. package/src/components/features/seo-editor-preview.tsx +1 -1
  431. package/src/components/features/video.tsx +54 -3
  432. package/src/components/footer-waitlist-button.tsx +1 -1
  433. package/src/components/navigation/header.tsx +1 -1
  434. package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
  435. package/src/components/shared/product-release/product-release-card-skeleton.tsx +8 -44
  436. package/src/components/shared/product-release/product-release-card.tsx +31 -116
  437. package/src/components/shared/product-release/release-detail-page.tsx +12 -16
  438. package/src/components/ui/actions-menu.tsx +1 -1
  439. package/src/components/ui/button/button.tsx +41 -11
  440. package/src/components/ui/button/split-button.tsx +1 -1
  441. package/src/components/ui/dashboard-info-card.tsx +2 -3
  442. package/src/components/ui/data-table/data-table-row.tsx +1 -1
  443. package/src/components/ui/entity-image.tsx +2 -8
  444. package/src/components/ui/hover-dropdown.tsx +258 -0
  445. package/src/components/ui/image-gallery-modal.tsx +1 -1
  446. package/src/components/ui/index.ts +1 -0
  447. package/src/components/ui/markdown-editor.tsx +1 -1
  448. package/src/components/ui/more-actions-menu.tsx +1 -1
  449. package/src/components/ui/organization-card.tsx +1 -1
  450. package/src/components/ui/simple-markdown-renderer.tsx +53 -5
  451. package/src/components/ui/square-avatar.tsx +3 -12
  452. package/src/components/ui/tab-navigation.tsx +1 -1
  453. package/src/components/ui/table/table-row.tsx +1 -1
  454. package/src/components/unified-filter-logic.tsx +1 -1
  455. package/src/components/unified-pagination.tsx +1 -1
  456. package/src/components/user-summary-stub.tsx +1 -1
  457. package/src/components/vendor-display-button.tsx +1 -1
  458. package/src/components/vendor-icon.tsx +1 -1
  459. package/src/contexts/chat-runtime-context.tsx +163 -0
  460. package/src/contexts/endpoints-runtime-context.tsx +68 -0
  461. package/src/contexts/index.ts +38 -0
  462. package/src/contexts/use-outer-or-default.ts +42 -0
  463. package/src/embed-shims/index.ts +42 -0
  464. package/src/embed-shims/next-dynamic.tsx +70 -0
  465. package/src/embed-shims/next-image.tsx +114 -0
  466. package/src/embed-shims/next-link.tsx +91 -0
  467. package/src/embed-shims/next-navigation.tsx +201 -0
  468. package/src/hooks/index.ts +9 -0
  469. package/src/hooks/state/use-api-params.ts +1 -1
  470. package/src/hooks/state/use-query-params.ts +1 -1
  471. package/src/hooks/use-access-code-integration.ts +107 -0
  472. package/src/hooks/use-contact-submission.ts +7 -3
  473. package/src/hooks/use-og-placeholder.ts +45 -0
  474. package/src/stories/OnboardingStepCard.stories.tsx +140 -0
  475. package/src/styles/chat-animations.css +65 -0
  476. package/src/styles/index.css +1 -0
  477. package/src/utils/access-code-client.ts +32 -75
  478. package/src/utils/cn.ts +0 -65
  479. package/src/utils/color-analysis.ts +205 -0
  480. package/src/utils/date-formatters.ts +54 -11
  481. package/src/utils/fetch-priority.ts +41 -0
  482. package/src/utils/format.ts +525 -1
  483. package/src/utils/image-proxy.ts +127 -7
  484. package/src/utils/index.ts +145 -5
  485. package/src/utils/local-storage-adapter.ts +105 -0
  486. package/src/utils/source-icons.ts +219 -0
  487. package/dist/chunk-25LVV26X.cjs.map +0 -1
  488. package/dist/chunk-ARQ4XP64.cjs.map +0 -1
  489. package/dist/chunk-CPXLQ57U.js.map +0 -1
  490. package/dist/chunk-LY34ORX6.js.map +0 -1
  491. package/dist/chunk-RMB5DVED.cjs.map +0 -1
  492. package/dist/chunk-SZPJ5R5B.js.map +0 -1
  493. package/dist/chunk-UC43NICZ.cjs.map +0 -1
  494. package/dist/chunk-XGL5FKIK.js.map +0 -1
  495. package/dist/components/chat/block-card.d.ts.map +0 -1
  496. package/dist/components/chat/chat-ticket-item.d.ts.map +0 -1
  497. package/dist/components/chat/chat-video-entity-card.d.ts.map +0 -1
  498. package/dist/utils/dynamic-icons.d.ts +0 -26
  499. package/dist/utils/dynamic-icons.d.ts.map +0 -1
  500. package/dist/utils/format-relative-time.d.ts +0 -21
  501. package/dist/utils/format-relative-time.d.ts.map +0 -1
  502. package/src/utils/.dynamic-icons.md +0 -30
  503. package/src/utils/.format-relative-time.md +0 -36
  504. package/src/utils/dynamic-icons.tsx +0 -120
  505. package/src/utils/format-relative-time.ts +0 -52
  506. /package/dist/{chunk-N57KWHDB.js.map → chunk-CIPO6DXK.js.map} +0 -0
  507. /package/dist/components/chat/{block-card.d.ts → entity-cards/block-card.d.ts} +0 -0
  508. /package/dist/components/chat/{chat-ticket-item.d.ts → entity-cards/chat-ticket-item.d.ts} +0 -0
  509. /package/src/components/chat/{block-card.tsx → entity-cards/block-card.tsx} +0 -0
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Lib-side entity-card dispatch — single switch over canonical chat cards.
3
+ *
4
+ * Lib-portable refactor of the hub's `components/shared/entity-card-dispatch.tsx`.
5
+ * Drops the hub-only imports:
6
+ * - `useNavLink` → click routing flows through `<NavLinkAnchorViaRuntime>`
7
+ * (reads `useRequiredChatRuntime` internally) or
8
+ * the chat-runtime's `handleChatNavClick` helper.
9
+ * - `currentPlatform` → runtime.source supplies the identifier.
10
+ * - `buildContentURL` → URLs arrive pre-composed by the server's
11
+ * RAG mapper (`ref.url`); the card just renders.
12
+ * - `tableIdForDocumentType` → only relevant for the hub-side ContentRef
13
+ * reverse-projection — not needed for chat
14
+ * inline cards.
15
+ * - hub `program-configs` → host provides via `ChatCardRenderOptions.extras`.
16
+ * - `buildProductReleaseCardProps` → ditto, host provides via `extras`.
17
+ *
18
+ * Adding a new chat-inline card type:
19
+ * 1. Implement the `size='sm'` branch + skeleton in `./<card>.tsx` (pure
20
+ * presentation, accepts `href` + `targetPlatform`).
21
+ * 2. Add one entry to `CHAT_CARD_REGISTRY` below.
22
+ *
23
+ * Public entry points consumed by the chat shell:
24
+ * - `renderChatInlineEntityCard(ref, opts)` — top-level marker dispatch
25
+ * (block-card hoist for video refs, otherwise compact card).
26
+ * - `<ChatCardLoader />` — fetch + skeleton + render the compact card for
27
+ * fetch-mode entries.
28
+ */
29
+ import React from 'react';
30
+ import type { ChatRef } from '../chat-ref.types';
31
+ import { NavLinkAnchorViaRuntime } from '../nav-link-anchor-via-runtime';
32
+ import { type ProductReleaseCardProps } from './product-release-card';
33
+ import type { ProgramConfig } from '../types/entities/program-types';
34
+ /** Optional host-side extras threaded through to render functions whose
35
+ * derived props can't be computed in lib alone (program configs and the
36
+ * product-release prop builder live in hub land). When omitted, the
37
+ * affected card types render `null` from the dispatch — the chat shell's
38
+ * fallback path takes over. */
39
+ export interface ChatCardDispatchExtras {
40
+ /** Per-program-type config map. Keyed by chat documentType
41
+ * (`podcast` / `webinar` / `event`). Each entry is the canonical
42
+ * `<ProgramConfig>` the `<ProgramCard>` expects. */
43
+ programConfigs?: {
44
+ podcast?: ProgramConfig<any>;
45
+ webinar?: ProgramConfig<any>;
46
+ event?: ProgramConfig<any>;
47
+ };
48
+ /** Derive the `<ProductReleaseCard>` prop bundle from a hydrated
49
+ * release row. Hub callers wire `buildProductReleaseCardProps` from
50
+ * `lib/utils/product-release-card-props.ts`. */
51
+ buildProductReleaseCardProps?: (release: any) => Omit<ProductReleaseCardProps, 'size' | 'title' | 'summary' | 'version' | 'anchorProps'>;
52
+ }
53
+ /** Per-card render options threaded through from the chat shell. */
54
+ export interface ChatCardRenderOptions {
55
+ baseRoute?: string;
56
+ chipBasePlatform?: string;
57
+ /** Host-supplied builders for cards whose derived props live in hub
58
+ * land (programs + product_release). When omitted, these card types
59
+ * render `null` and the shell falls back to title text. */
60
+ extras?: ChatCardDispatchExtras;
61
+ /** Pre-computed new-tab decision for the inner anchor's `target`
62
+ * attribute. Required — always computed by `ChatCardLoader` via the
63
+ * same rule source chips use, so the rendered `<a target>` matches
64
+ * whatever `ChatCardNavWrap` + `handleChatNavClick` decide at click
65
+ * time. */
66
+ isNewTab: boolean;
67
+ }
68
+ interface ChatCardLoaderProps {
69
+ chatRef: ChatRef;
70
+ onDiscuss?: (ref: ChatRef) => void;
71
+ onDisplay?: (ref: ChatRef) => void;
72
+ baseRoute?: string;
73
+ chipBasePlatform?: string;
74
+ extras?: ChatCardDispatchExtras;
75
+ }
76
+ /**
77
+ * Generic fetch-mode card loader. Looks up the registry entry by
78
+ * `chatRef.type`, fetches the full item via `useChatCardItem`, and
79
+ * routes through skeleton / null / card-render.
80
+ *
81
+ * SINGLE URL-RESOLUTION POINT — same code path source chips already
82
+ * had. Before render dispatch:
83
+ * - Pass the ref through `resolveSourceRowCTA` to compute the
84
+ * canonical `{href, targetPlatform}` (externalUrl → in-app path
85
+ * fallback → null, with embedder `baseRoute` / `chipBasePlatform`
86
+ * awareness).
87
+ * - Pre-resolve href against `runtime.navigation.defaultContentOrigin`
88
+ * in embed mode (so modifier-click + copy-link land on the hub).
89
+ * - Re-attach the resolved values onto the ref so EVERY downstream
90
+ * card — whether it renders an inner `<a>` from `href` prop
91
+ * (BlogCard, ProgramCard, …) or pulls `anchorProps` from
92
+ * `computeIsNewTab` — sees the SAME canonical URL the
93
+ * chip would render.
94
+ *
95
+ * Eliminates the entire "chip works, inline card doesn't" class of bug.
96
+ */
97
+ export declare function ChatCardLoader({ chatRef, onDiscuss, onDisplay, baseRoute, chipBasePlatform, extras, }: ChatCardLoaderProps): import("react/jsx-runtime").JSX.Element | null;
98
+ /**
99
+ * Render the chat-inline card for a `[card://<type>:<id>]` marker.
100
+ *
101
+ * Single dispatch through `CHAT_CARD_REGISTRY`. The function mirrors the
102
+ * hub's `renderChatInlineEntityCard` behavior:
103
+ * - Video-bearing refs return a `<BlockCard>` sentinel so the
104
+ * `chat-message-enhanced` pre-scan hoists the player out of the
105
+ * assistant paragraph.
106
+ * - Other refs render the compact card, optionally wrapped in a
107
+ * close-on-anchor-click span when `onClose` is supplied.
108
+ */
109
+ export declare function renderChatInlineEntityCard(chatRef: ChatRef, options?: {
110
+ onDiscuss?: (ref: ChatRef) => void;
111
+ onDisplay?: (ref: ChatRef) => void;
112
+ baseRoute?: string;
113
+ chipBasePlatform?: string;
114
+ extras?: ChatCardDispatchExtras;
115
+ }): React.ReactNode;
116
+ /** Re-export so call sites can wrap any subtree with chat-runtime
117
+ * routing in a single import. */
118
+ export { NavLinkAnchorViaRuntime };
119
+ //# sourceMappingURL=dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/dispatch.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAyB,MAAM,OAAO,CAAA;AAE7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAchD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAWxE,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAA;AA+B/B,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAMrF;;;;gCAIgC;AAChC,MAAM,WAAW,sBAAsB;IACrC;;yDAEqD;IACrD,cAAc,CAAC,EAAE;QACf,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;QAC5B,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;QAC5B,KAAK,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;KAC3B,CAAA;IACD;;qDAEiD;IACjD,4BAA4B,CAAC,EAAE,CAC7B,OAAO,EAAE,GAAG,KACT,IAAI,CAAC,uBAAuB,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC,CAAA;CAC7F;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;gEAE4D;IAC5D,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B;;;;gBAIY;IACZ,QAAQ,EAAE,OAAO,CAAA;CAClB;AA8uBD,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,sBAAsB,CAAA;CAChC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,MAAM,GACP,EAAE,mBAAmB,kDA4GrB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,sBAAsB,CAAA;CAC3B,GACL,KAAK,CAAC,SAAS,CA4BjB;AAMD;kCACkC;AAClC,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Author + publication metadata, rendered as the SAME 2-or-N-cell grid pattern
3
+ * the release detail page uses.
4
+ *
5
+ * Each cell sits inside a single bordered/rounded container, separated by
6
+ * `border-r` dividers — byte-identical visual contract to the release page.
7
+ *
8
+ * Cell taxonomy:
9
+ * - `<EntityMetadataValueCell>` — top: large value (`text-h4` uppercase),
10
+ * bottom: small label (`DM_Sans` 14px secondary). Used for Type / Status
11
+ * / Date.
12
+ * - `<EntityMetadataAuthorCell>` — `<SquareAvatar>` + name + label. Used
13
+ * for the Author column.
14
+ *
15
+ * `<EntityAuthorCard>` is the convenience composer for the common
16
+ * "Published + Author" pair. Pass `publishedAt` to get both cells; omit it
17
+ * to get just the Author card (single-cell mode used by surfaces with no
18
+ * separate publication-date concept).
19
+ *
20
+ * Renders null when `author` is null/empty unless `renderEmptyAuthor` is set.
21
+ */
22
+ /**
23
+ * Documented empty-author placeholder. Single source for the visual
24
+ * shape of "author cell with no author".
25
+ */
26
+ export declare const EMPTY_AUTHOR_PLACEHOLDER: {
27
+ readonly full_name: "—";
28
+ readonly avatar_url: null;
29
+ readonly job_title: "Unknown";
30
+ };
31
+ export interface EntityAuthorCardProps {
32
+ author: {
33
+ full_name: string | null;
34
+ avatar_url: string | null;
35
+ job_title: string | null;
36
+ } | null | undefined;
37
+ /** Role label rendered under the name. Defaults to "Author". Override
38
+ * to e.g. "Presenter" / "Contributor" if semantics differ. */
39
+ roleLabel?: string;
40
+ /** Optional publication date. When provided, the component renders as a
41
+ * 2-cell grid (Published | Author). When omitted, only the Author cell
42
+ * renders inside the same bordered container. */
43
+ publishedAt?: string | Date | null;
44
+ /** Label for the Published cell. Defaults to "Published". */
45
+ publishedLabel?: string;
46
+ /**
47
+ * Extra value cells inserted into the metadata grid BEFORE the
48
+ * Published cell. Each item renders as an `<EntityMetadataValueCell>`
49
+ * with a large `text-h4` value and a small `DM_Sans` 14px label.
50
+ *
51
+ * Use for entity-specific labels (e.g. onboarding-guide section/step,
52
+ * webinar host, customer-interview customer). The grid auto-sizes via
53
+ * `grid-cols-N`.
54
+ */
55
+ extraCells?: Array<{
56
+ value: string;
57
+ label: string;
58
+ uppercase?: boolean;
59
+ }>;
60
+ /** When true, render the author cell even when `author?.full_name` is
61
+ * missing — using the `EMPTY_AUTHOR_PLACEHOLDER` shape above. Used by
62
+ * catalog grids that must keep a fixed shape so skeleton alignment
63
+ * holds. Defaults to false. */
64
+ renderEmptyAuthor?: boolean;
65
+ className?: string;
66
+ }
67
+ /**
68
+ * Single value cell — top: large `text-h4` value (uppercase), bottom: small
69
+ * `DM_Sans` 14px secondary label.
70
+ */
71
+ export declare function EntityMetadataValueCell({ value, label, className, uppercase, }: {
72
+ value: string;
73
+ label: string;
74
+ className?: string;
75
+ uppercase?: boolean;
76
+ }): import("react/jsx-runtime").JSX.Element;
77
+ /**
78
+ * Author cell — `<SquareAvatar>` + name + role label. The containing border /
79
+ * divider is the caller's responsibility — this is just the cell content.
80
+ */
81
+ export declare function EntityMetadataAuthorCell({ author, roleLabel, className, }: {
82
+ author: NonNullable<EntityAuthorCardProps['author']>;
83
+ roleLabel?: string;
84
+ className?: string;
85
+ }): import("react/jsx-runtime").JSX.Element;
86
+ export declare function EntityAuthorCard({ author, roleLabel, publishedAt, publishedLabel, extraCells, renderEmptyAuthor, className, }: EntityAuthorCardProps): import("react/jsx-runtime").JSX.Element | null;
87
+ //# sourceMappingURL=entity-author-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-author-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/entity-author-card.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;CAI3B,CAAA;AAEV,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;QACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;QACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KACzB,GAAG,IAAI,GAAG,SAAS,CAAA;IACpB;mEAC+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;sDAEkD;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAClC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACzE;;;oCAGgC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAGD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,KAAK,EACL,SAAS,EACT,SAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,2CAaA;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,EACN,SAAoB,EACpB,SAAS,GACV,EAAE;IACD,MAAM,EAAE,WAAW,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAA;IACpD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,2CAqBA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAoB,EACpB,WAAW,EACX,cAA4B,EAC5B,UAAU,EACV,iBAAyB,EACzB,SAAS,GACV,EAAE,qBAAqB,kDAoDvB"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Generic compact entity/document card for any chat type that doesn't
3
+ * warrant a bespoke component.
4
+ *
5
+ * PURE PRESENTATION. Receives pre-composed `<a>` props via `anchorProps`
6
+ * and renders the rest from the item shape.
7
+ */
8
+ import React from 'react';
9
+ type BadgeScheme = 'success' | 'error' | 'warning' | 'cyan' | 'default';
10
+ export interface GenericEntityCardItem {
11
+ id: string;
12
+ title: string;
13
+ preview?: string | null;
14
+ url?: string | null;
15
+ subtitle?: string | null;
16
+ badge?: {
17
+ text: string;
18
+ scheme?: BadgeScheme;
19
+ } | null;
20
+ facts?: Array<{
21
+ label: string;
22
+ value: string;
23
+ }> | null;
24
+ dateUpdated?: string | number | null;
25
+ }
26
+ export interface GenericEntityCardAnchorProps {
27
+ href: string;
28
+ target?: '_blank';
29
+ rel?: 'noopener noreferrer';
30
+ onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
31
+ }
32
+ export interface GenericEntityCardProps {
33
+ item: GenericEntityCardItem;
34
+ className?: string;
35
+ anchorProps?: GenericEntityCardAnchorProps;
36
+ }
37
+ export declare function GenericEntityCard({ item, className, anchorProps }: GenericEntityCardProps): import("react/jsx-runtime").JSX.Element;
38
+ export declare function GenericEntityCardSkeleton({ className }: {
39
+ className?: string;
40
+ }): import("react/jsx-runtime").JSX.Element;
41
+ export {};
42
+ //# sourceMappingURL=generic-entity-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-entity-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/generic-entity-card.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,KAAK,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;AAEvE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI,CAAA;IACrD,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;IACtD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;CAC3D;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,4BAA4B,CAAA;CAC3C;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,sBAAsB,2CAsEzF;AAED,wBAAgB,yBAAyB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAoB9E"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * GitHub Activity Card — unified visual for commits, PRs, and PR reviews.
3
+ *
4
+ * PURE PRESENTATION (no internal nav, no internal data fetching). The card
5
+ * receives the structured `<a>` prop bundle via `anchorProps` (composed by
6
+ * the caller from a runtime hook) and renders the rest from the
7
+ * `GitHubActivityItem` shape directly.
8
+ *
9
+ * Two consumers share this component:
10
+ * 1. Activity-list row (employee detail / similar) — pass `variant="row"`.
11
+ * 2. Chat-inline `[card://github_commit:<sha>]` markers — `variant="compact"`.
12
+ *
13
+ * Unified data shape `GitHubActivityItem` covers all three GitHub types
14
+ * (commit / PR / review).
15
+ */
16
+ import React from 'react';
17
+ import type { GitHubActivityItem } from '../types/entities/github-activity';
18
+ export interface GitHubActivityCardAnchorProps {
19
+ href: string;
20
+ target?: '_blank';
21
+ rel?: 'noopener noreferrer';
22
+ onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
23
+ }
24
+ export interface GitHubActivityCardProps {
25
+ item: GitHubActivityItem;
26
+ variant?: 'row' | 'compact';
27
+ className?: string;
28
+ /** Pre-composed `<a>` prop bundle (typically from a `useNavLink` hook in
29
+ * the consumer). When provided, the outer renders as a real `<a>`. */
30
+ anchorProps?: GitHubActivityCardAnchorProps;
31
+ }
32
+ export declare function GitHubActivityCard({ item, variant, className, anchorProps }: GitHubActivityCardProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare function GitHubActivityCardSkeleton({ variant, className }: {
34
+ variant?: 'row' | 'compact';
35
+ className?: string;
36
+ }): import("react/jsx-runtime").JSX.Element;
37
+ //# sourceMappingURL=github-activity-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-activity-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/github-activity-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAmBzB,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,mCAAmC,CAAA;AA0H1C,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;CAC3D;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,kBAAkB,CAAA;IACxB,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;2EACuE;IACvE,WAAW,CAAC,EAAE,6BAA6B,CAAA;CAC5C;AAED,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,uBAAuB,2CA0FhH;AAED,wBAAgB,0BAA0B,CAAC,EAAE,OAAmB,EAAE,SAAS,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAiCjI"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * HubSpot Ticket Card — unified visual for hubspot-tickets markers.
3
+ *
4
+ * PURE PRESENTATION (no internal nav). The card receives the structured
5
+ * `<a>` prop bundle via `anchorProps` (composed by the caller from a
6
+ * runtime hook) and renders the rest from the `HubspotTicketItem` shape
7
+ * directly.
8
+ */
9
+ import React from 'react';
10
+ import type { HubspotTicketItem } from '../types/entities/hubspot-ticket';
11
+ export interface HubspotTicketCardAnchorProps {
12
+ href: string;
13
+ target?: '_blank';
14
+ rel?: 'noopener noreferrer';
15
+ onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
16
+ }
17
+ export interface HubspotTicketCardProps {
18
+ item: HubspotTicketItem;
19
+ variant?: 'row' | 'compact';
20
+ className?: string;
21
+ anchorProps?: HubspotTicketCardAnchorProps;
22
+ }
23
+ export declare function HubspotTicketCard({ item, variant, className, anchorProps }: HubspotTicketCardProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function HubspotTicketCardSkeleton({ variant, className }: {
25
+ variant?: 'row' | 'compact';
26
+ className?: string;
27
+ }): import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=hubspot-ticket-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubspot-ticket-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/hubspot-ticket-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;CAC3D;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,4BAA4B,CAAA;CAC3C;AAyBD,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,sBAAsB,2CAuG9G;AAED,wBAAgB,yBAAyB,CAAC,EAAE,OAAmB,EAAE,SAAS,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAmChI"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Entity-card barrel — re-exports every chat-surface card under one path.
3
+ *
4
+ * Cards in this directory are PURE PRESENTATION: they take a pre-resolved
5
+ * `href`, optional `placeholderUrl`, and entity data as props. They write
6
+ * NO internal click logic — consumers wrap the card with their own anchor
7
+ * (hub's `<NavLinkAnchor>` or lib's `<NavLinkAnchorViaRuntime>`).
8
+ */
9
+ export { EntityAuthorCard, EntityMetadataValueCell, EntityMetadataAuthorCell, EMPTY_AUTHOR_PLACEHOLDER, type EntityAuthorCardProps, } from './entity-author-card';
10
+ export { BlogImagePlaceholder } from './blog-image-placeholder';
11
+ export { AdminContentCard } from './admin-content-card';
12
+ export { BlockCard, type BlockCardProps } from './block-card';
13
+ export { ChatTicketItem, type ChatTicketItemData, type ChatTicketItemProps, } from './chat-ticket-item';
14
+ export { ChatVideoEntityCard, type ChatVideoEntityCardProps, } from './chat-video-entity-card';
15
+ export { ProductReleaseCard, ProductReleaseCardSkeleton, type ProductReleaseCardProps, type ProductReleaseCardSize, type ProductReleaseCardAnchorProps, } from './product-release-card';
16
+ export { BlogCard, BlogCardSkeleton, type BlogCardProps } from './blog-card';
17
+ export { CaseStudyCard, CaseStudyCardSkeleton, type CaseStudyCardProps, } from './case-study-card';
18
+ export { CustomerInterviewCard, CustomerInterviewCardSkeleton, type CustomerInterviewCardProps, } from './customer-interview-card';
19
+ export { InvestorUpdateCard, InvestorUpdateCardSkeleton, type InvestorUpdateCardProps, } from './investor-update-card';
20
+ export { OnboardingGuideCard, OnboardingGuideCardSkeleton, type OnboardingGuideCardProps, } from './onboarding-guide-card';
21
+ export { RoadmapCard, RoadmapCardSkeleton, type RoadmapCardProps, type VoteType, } from './roadmap-card';
22
+ export { RoadmapVoteButton, type RoadmapVoteButtonProps, } from './roadmap-vote-button';
23
+ export { TaskTypeIcon, type TaskTypeIconProps } from './task-type-icon';
24
+ export { GitHubActivityCard, GitHubActivityCardSkeleton, type GitHubActivityCardProps, type GitHubActivityCardAnchorProps, } from './github-activity-card';
25
+ export { SlackMessageCard, SlackMessageCardSkeleton, type SlackMessageCardProps, type SlackMessageCardAnchorProps, } from './slack-message-card';
26
+ export { HubspotTicketCard, HubspotTicketCardSkeleton, type HubspotTicketCardProps, type HubspotTicketCardAnchorProps, } from './hubspot-ticket-card';
27
+ export { DataRoomDocCard, DataRoomDocCardSkeleton, type DataRoomDocCardProps, type DataRoomDocCardAnchorProps, } from './data-room-doc-card';
28
+ export { ProgramCard, ProgramCardSkeleton, type ProgramCardProps, } from './program-card';
29
+ export { CampaignCardAdmin, CampaignCardAdminSkeleton, type CampaignCardItem, type CampaignCardAdminProps, type CampaignCardAdminAnchorProps, } from './campaign-card-admin';
30
+ export { GenericEntityCard, GenericEntityCardSkeleton, type GenericEntityCardItem, type GenericEntityCardProps, type GenericEntityCardAnchorProps, } from './generic-entity-card';
31
+ export { renderChatInlineEntityCard, ChatCardLoader, type ChatCardRenderOptions, type ChatCardDispatchExtras, } from './dispatch';
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EACL,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,KAAK,0BAA0B,GAChC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,GACjC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,GAClC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,GAClC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,GAClC,MAAM,uBAAuB,CAAA;AAK9B,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { type InvestorUpdate } from '../types/entities/investor-update';
2
+ export interface InvestorUpdateCardProps {
3
+ update: InvestorUpdate;
4
+ href: string;
5
+ /** When `_blank`, opens in a new tab. Set by chat dispatch via
6
+ * `computeIsNewTab`. Defaults to same-tab. */
7
+ target?: '_blank';
8
+ rel?: 'noopener noreferrer';
9
+ targetPlatform?: string | null;
10
+ /** OG placeholder URL used when `update.featured_image` is missing. */
11
+ placeholderUrl?: string | null;
12
+ size?: 'default' | 'sm';
13
+ className?: string;
14
+ }
15
+ export declare function InvestorUpdateCardSkeleton({ size }: {
16
+ size?: 'default' | 'sm';
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ export declare function InvestorUpdateCard({ update, href, target, rel, placeholderUrl, size, className }: InvestorUpdateCardProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=investor-update-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"investor-update-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/investor-update-card.tsx"],"names":[],"mappings":"AAaA,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAenG,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,cAAc,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ;mDAC+C;IAC/C,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,0BAA0B,CAAC,EAAE,IAAgB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,2CA+B3F;AAED,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAgB,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CA0ErI"}
@@ -0,0 +1,20 @@
1
+ import type { OnboardingGuide } from '../types/entities/onboarding-guide';
2
+ export interface OnboardingGuideCardProps {
3
+ guide: OnboardingGuide;
4
+ /** Detail URL resolved by the caller. */
5
+ href: string;
6
+ /** When `_blank`, opens in a new tab. Set by chat dispatch via
7
+ * `computeIsNewTab`. Defaults to same-tab. */
8
+ target?: '_blank';
9
+ rel?: 'noopener noreferrer';
10
+ targetPlatform?: string | null;
11
+ /** OG placeholder URL used by the catalog + sm variants when no cover. */
12
+ placeholderUrl?: string | null;
13
+ size?: 'catalog' | 'default' | 'sm';
14
+ className?: string;
15
+ }
16
+ export declare function OnboardingGuideCardSkeleton({ size }: {
17
+ size?: 'catalog' | 'default' | 'sm';
18
+ }): import("react/jsx-runtime").JSX.Element;
19
+ export declare function OnboardingGuideCard({ guide, href, target, rel, placeholderUrl, size, className }: OnboardingGuideCardProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=onboarding-guide-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-guide-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/onboarding-guide-card.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAczE,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,eAAe,CAAA;IACtB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ;mDAC+C;IAC/C,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAWD,wBAAgB,2BAA2B,CAAC,EAAE,IAAgB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAA;CAAE,2CA0ExG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAgB,EAAE,SAAS,EAAE,EAAE,wBAAwB,2CA6LtI"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Lib-side default `buildProductReleaseCardProps` for the chat dispatch.
3
+ *
4
+ * The compact (`size='sm'`) branch of `<ProductReleaseCard>` only reads
5
+ * `coverImage`, `hasVideoCover`, and `formattedDate` — the rest of the
6
+ * derived prop bundle is catalog-page (`size='lg'`) metadata. This
7
+ * default builder satisfies the three sm-relevant fields with row data
8
+ * the list-API already returns, so embedders that don't supply
9
+ * `opts.extras.buildProductReleaseCardProps` still get a rendered card
10
+ * instead of a bare text chip. Hub-side embedders pass their richer
11
+ * builder via `extras` to get the lg-only fields (changelogCounts,
12
+ * badge color, view count, etc.).
13
+ */
14
+ interface DerivedSmProps {
15
+ coverImage: string | null;
16
+ hasVideoCover: boolean;
17
+ formattedDate: string;
18
+ }
19
+ export declare function defaultBuildProductReleaseCardProps(item: unknown): DerivedSmProps;
20
+ export {};
21
+ //# sourceMappingURL=product-release-card-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-release-card-defaults.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/product-release-card-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAcH,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB;AAcD,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAYjF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ProductReleaseCard — chat entity-card re-export of the canonical
3
+ * `<ProductReleaseCard>` already in `src/components/shared/product-release/`.
4
+ *
5
+ * The shared module is the SOURCE OF TRUTH (lg + sm variants live there).
6
+ * This file just re-exports under `entity-cards/` so the chat barrel
7
+ * (`components/chat/index.ts`) groups every entity card under one path
8
+ * — consumers don't notice the indirection.
9
+ */
10
+ export { ProductReleaseCard, type ProductReleaseCardProps, type ProductReleaseCardSize, type ProductReleaseCardAnchorProps, } from '../../shared/product-release/product-release-card';
11
+ export { ProductReleaseCardSkeleton } from '../../shared/product-release/product-release-card-skeleton';
12
+ //# sourceMappingURL=product-release-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-release-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/product-release-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,GACnC,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4DAA4D,CAAA"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Lib-side default ProgramConfig values for the chat dispatch.
3
+ *
4
+ * `<ProgramCard size='sm'>` (the compact chat card) only consumes
5
+ * `config.type` (for branching on podcast vs webinar vs event presentation
6
+ * details) and `config.labels?.singular` (rendered as the subtitle's
7
+ * type label, e.g. "Episode" / "Webinar" / "Event"). Everything else on
8
+ * `ProgramConfig` — `dateField`, `table`, `apiEndpoint`, `icon`,
9
+ * `detailRoute`, `externalLinkLabel`, etc. — is catalog-page metadata,
10
+ * not used by the inline chat card.
11
+ *
12
+ * Previously the chat dispatch REQUIRED `opts.extras.programConfigs.X`
13
+ * to be provided by the embedder; if it was missing the dispatch
14
+ * returned `null` and the chat fell back to a bare text chip ("Ask" +
15
+ * id). That tightly coupled every embedder to the hub-side
16
+ * `program-configs.ts` (which transitively imports `currentPlatform()`
17
+ * + `buildContentURL` — hub-internal). The validation app + any
18
+ * non-hub embedder couldn't render podcast/webinar/event cards at all.
19
+ *
20
+ * These defaults satisfy the compact-card render contract with
21
+ * minimal hard-coded labels. Embedders that need richer catalog
22
+ * configs (full icon, externalLinkLabel, etc.) can still override per
23
+ * type via `opts.extras.programConfigs.X` — the dispatch reads
24
+ * `extras.programConfigs.X ?? DEFAULT_PROGRAM_CONFIGS.X`.
25
+ */
26
+ import type { ProgramConfig, BaseProgramItem } from '../types/entities/program-types';
27
+ export declare const DEFAULT_PROGRAM_CONFIGS: {
28
+ readonly podcast: ProgramConfig<BaseProgramItem>;
29
+ readonly webinar: ProgramConfig<BaseProgramItem>;
30
+ readonly event: ProgramConfig<BaseProgramItem>;
31
+ };
32
+ //# sourceMappingURL=program-card-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-card-defaults.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/program-card-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAgCrF,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAA"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * ProgramCard (pure presentation). Generic card for podcasts / webinars /
3
+ * events. Two densities — `default` (vertical detail) and `sm` (compact
4
+ * horizontal for chat-inline).
5
+ *
6
+ * The card writes NO click logic — callers wrap with their own anchor
7
+ * and pass the resolved detail URL via `href`.
8
+ */
9
+ import React from 'react';
10
+ import type { BaseProgramItem, ProgramConfig, ProgramMedia } from '../types/entities/program-types';
11
+ type CardSize = 'default' | 'sm';
12
+ export declare function ProgramCardSkeleton({ size }: {
13
+ size?: CardSize;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ export interface ProgramCardProps<T extends BaseProgramItem> {
16
+ config: ProgramConfig<T>;
17
+ item: T;
18
+ media?: ProgramMedia[];
19
+ renderMeta?: (item: T) => React.ReactNode;
20
+ size?: CardSize;
21
+ /** Detail URL resolved by the caller. */
22
+ href: string;
23
+ /** When `_blank`, opens in a new tab. Set by chat dispatch via
24
+ * `computeIsNewTab` so the inner `<a>` matches the runtime
25
+ * nav decision (cross-platform / embed → new tab). Defaults to
26
+ * same-tab for non-chat callsites. */
27
+ target?: '_blank';
28
+ rel?: 'noopener noreferrer';
29
+ targetPlatform?: string | null;
30
+ /** OG placeholder URL used by the compact branch when no cover. */
31
+ placeholderUrl?: string | null;
32
+ wholeCardClickable?: boolean;
33
+ className?: string;
34
+ }
35
+ export declare function ProgramCard<T extends BaseProgramItem>({ config, item, media, renderMeta, size, href, target, rel, placeholderUrl, wholeCardClickable, className, }: ProgramCardProps<T>): import("react/jsx-runtime").JSX.Element;
36
+ export {};
37
+ //# sourceMappingURL=program-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/program-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAA;AAyBvC,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EAEb,MAAM,iCAAiC,CAAA;AAExC,KAAK,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAA;AAEhC,wBAAgB,mBAAmB,CAAC,EAAE,IAAgB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,2CAiD5E;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,eAAe;IACzD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,CAAC,EAAE,YAAY,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IACzC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ;;;2CAGuC;IACvC,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA8ED,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,EAAE,EACrD,MAAM,EACN,IAAI,EACJ,KAAU,EACV,UAAU,EACV,IAAgB,EAChB,IAAI,EACJ,MAAM,EACN,GAAG,EACH,cAAc,EACd,kBAA0B,EAC1B,SAAS,GACV,EAAE,gBAAgB,CAAC,CAAC,CAAC,2CAqPrB"}
@@ -0,0 +1,28 @@
1
+ import type { RoadmapItem } from '../types/entities/roadmap-item';
2
+ type CardSize = 'default' | 'sm';
3
+ export type VoteType = 'up' | 'down' | null;
4
+ export declare function RoadmapCardSkeleton({ size }: {
5
+ size?: CardSize;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ export interface RoadmapCardProps {
8
+ item: RoadmapItem;
9
+ /** Detail URL for the compact branch (`sm`). Used by the parent
10
+ * wrapper to drive nav. Default-branch cards don't need href —
11
+ * voting + screenshot UI is the entire action surface. */
12
+ href?: string;
13
+ /** When `_blank`, opens in a new tab. Set by chat dispatch via
14
+ * `computeIsNewTab`. Defaults to same-tab. */
15
+ target?: '_blank';
16
+ rel?: 'noopener noreferrer';
17
+ targetPlatform?: string | null;
18
+ /** Compact-branch variant — drives the icon-slot fallback rule. */
19
+ cardType?: 'roadmap_item' | 'delivery_item' | 'internal_task';
20
+ size?: CardSize;
21
+ className?: string;
22
+ userVote?: VoteType | null;
23
+ onVote?: (voteType: 'up' | 'down') => void;
24
+ isVoting?: boolean;
25
+ }
26
+ export declare function RoadmapCard({ item, href, target, rel, size, cardType, className, userVote, onVote, isVoting, }: RoadmapCardProps): import("react/jsx-runtime").JSX.Element;
27
+ export {};
28
+ //# sourceMappingURL=roadmap-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roadmap-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/roadmap-card.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAEjE,KAAK,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAA;AAChC,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;AAE3C,wBAAgB,mBAAmB,CAAC,EAAE,IAAgB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,2CA2C5E;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAA;IACjB;;+DAE2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;mDAC+C;IAC/C,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,cAAc,GAAG,eAAe,GAAG,eAAe,CAAA;IAC7D,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC1B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAA;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,IAAI,EAEJ,MAAM,EAEN,GAAG,EACH,IAAgB,EAChB,QAAyB,EACzB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,QAAgB,GACjB,EAAE,gBAAgB,2CA0OlB"}
@@ -0,0 +1,12 @@
1
+ export interface RoadmapVoteButtonProps {
2
+ voteType: 'up' | 'down';
3
+ count: number;
4
+ isActive: boolean;
5
+ onClick: () => void;
6
+ disabled?: boolean;
7
+ showCount?: boolean;
8
+ color?: string;
9
+ className?: string;
10
+ }
11
+ export declare function RoadmapVoteButton({ voteType, count, isActive, onClick, disabled, showCount, color, className, }: RoadmapVoteButtonProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=roadmap-vote-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roadmap-vote-button.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/roadmap-vote-button.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,SAAgB,EAChB,KAAK,EACL,SAAS,GACV,EAAE,sBAAsB,2CAmBxB"}