@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,47 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
+
3
+
4
+ var _chunkVRHGVLSLcjs = require('./chunk-VRHGVLSL.cjs');
5
+
6
+ // src/embed-shims/next-link.tsx
7
+
8
+
9
+ var _react = require('react');
10
+ var _jsxruntime = require('react/jsx-runtime');
11
+ function registerLink(component) {
12
+ impl = component;
13
+ }
14
+ var impl, Link, next_link_default;
15
+ var init_next_link = _chunkVRHGVLSLcjs.__esm.call(void 0, {
16
+ "src/embed-shims/next-link.tsx"() {
17
+ impl = null;
18
+ Link = _react.forwardRef.call(void 0, function NextLinkShim(props, ref) {
19
+ if (impl) {
20
+ const Real = impl;
21
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Real, { ref, ...props });
22
+ }
23
+ const {
24
+ href,
25
+ children,
26
+ prefetch: _prefetch,
27
+ replace: _replace,
28
+ scroll: _scroll,
29
+ shallow: _shallow,
30
+ passHref: _passHref,
31
+ legacyBehavior: _legacyBehavior,
32
+ locale: _locale,
33
+ ...rest
34
+ } = props;
35
+ const hrefStr = typeof href === "string" ? href : _optionalChain([href, 'optionalAccess', _ => _.pathname]) ? href.pathname : void 0;
36
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ref, href: hrefStr, ...rest, children });
37
+ });
38
+ next_link_default = exports.next_link_default = Link;
39
+ }
40
+ });
41
+
42
+
43
+
44
+
45
+
46
+ exports.registerLink = registerLink; exports.next_link_default = next_link_default; exports.init_next_link = init_next_link;
47
+ //# sourceMappingURL=chunk-WBR7H6E3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-WBR7H6E3.cjs","../src/embed-shims/next-link.tsx"],"names":[],"mappings":"AAAA,ylBAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACA;ACiBA;AACE;AAAA,8BAIK;AAiCI,+CAAA;AAbJ,SAAS,YAAA,CAAa,SAAA,EAAqC;AAChE,EAAA,KAAA,EAAO,SAAA;AACT;AAjDA,IAyCI,IAAA,EAUE,IAAA,EAuCC,iBAAA;AA1FP,IAAA,eAAA,EAAA,qCAAA;AAAA,EAAA,+BAAA,CAAA,EAAA;AAyCA,IAAI,KAAA,EAAkC,IAAA;AAUtC,IAAM,KAAA,EAAO,+BAAA,SAAkD,YAAA,CAC7D,KAAA,EACA,GAAA,EACA;AAIA,MAAA,GAAA,CAAI,IAAA,EAAM;AACR,QAAA,MAAM,KAAA,EAAO,IAAA;AACb,QAAA,uBAAO,6BAAA,IAAC,EAAA,EAAK,GAAA,EAAW,GAAG,MAAA,CAAO,CAAA;AAAA,MACpC;AAIA,MAAA,MAAM;AAAA,QACJ,IAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA,EAAU,SAAA;AAAA,QACV,OAAA,EAAS,QAAA;AAAA,QACT,MAAA,EAAQ,OAAA;AAAA,QACR,OAAA,EAAS,QAAA;AAAA,QACT,QAAA,EAAU,SAAA;AAAA,QACV,cAAA,EAAgB,eAAA;AAAA,QAChB,MAAA,EAAQ,OAAA;AAAA,QACR,GAAG;AAAA,MACL,EAAA,EAAI,KAAA;AACJ,MAAA,MAAM,QAAA,EACJ,OAAO,KAAA,IAAS,SAAA,EACZ,KAAA,kBACA,IAAA,2BAAM,WAAA,EACJ,IAAA,CAAK,SAAA,EACL,KAAA,CAAA;AACR,MAAA,uBACE,6BAAA,GAAC,EAAA,EAAE,GAAA,EAAU,IAAA,EAAM,OAAA,EAAU,GAAG,IAAA,EAC7B,SAAA,CACH,CAAA;AAAA,IAEJ,CAAC,CAAA;AAED,IAAO,kBAAA,8BAAQ,IAAA;AAAA,EAAA;AAAA,CAAA,CAAA;ADlDf;AACA;AACE;AACA;AACA;AACF,4HAAC","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-WBR7H6E3.cjs","sourcesContent":[null,"/**\n * `next/link` shim — environment-aware Link component.\n *\n * Defaults to a plain `<a>` so non-Next hosts (Vite, CRA, esbuild)\n * work out of the box. Next.js hosts can opt into the REAL `next/link`\n * (with client-router prefetching) by calling {@link registerLink}\n * ONCE at app init:\n *\n * // hub: lib/embed-shim-registration.ts\n * import NextLink from 'next/link'\n * import { registerLink } from '@flamingo-stack/openframe-frontend-core/embed-shims'\n * registerLink(NextLink)\n *\n * After registration, every lib component that renders this shim\n * delegates to `NextLink` — prefetch, replace, scroll, locale, etc.\n * all work as expected. Without registration, the shim falls through\n * to the plain `<a>` path that drops Next-specific props.\n *\n * Lib internals import this shim directly (relative path); hub-side\n * code goes through the barrel (`@flamingo-stack/.../embed-shims`).\n */\n'use client'\nimport {\n forwardRef,\n type AnchorHTMLAttributes,\n type ComponentType,\n type ReactNode,\n} from 'react'\n\ntype LinkProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> & {\n href?: string | { pathname?: string; query?: Record<string, string> }\n prefetch?: boolean | null\n replace?: boolean\n scroll?: boolean\n shallow?: boolean\n passHref?: boolean\n legacyBehavior?: boolean\n locale?: string | false\n children?: ReactNode\n}\n\nlet impl: ComponentType<any> | null = null\n\n/**\n * Register the real `next/link` so this shim delegates to it instead\n * of rendering a plain `<a>`. Call ONCE at app init in a Next.js host.\n */\nexport function registerLink(component: ComponentType<any>): void {\n impl = component\n}\n\nconst Link = forwardRef<HTMLAnchorElement, LinkProps>(function NextLinkShim(\n props,\n ref,\n) {\n // Real impl path — registered by the host. Hand off untouched so\n // every Next-specific prop (prefetch, replace, scroll, locale…)\n // reaches the real component intact.\n if (impl) {\n const Real = impl\n return <Real ref={ref} {...props} />\n }\n\n // Fallback path — plain <a>. Drops Next-only props and reduces\n // `UrlObject` href to its pathname.\n const {\n href,\n children,\n prefetch: _prefetch,\n replace: _replace,\n scroll: _scroll,\n shallow: _shallow,\n passHref: _passHref,\n legacyBehavior: _legacyBehavior,\n locale: _locale,\n ...rest\n } = props\n const hrefStr =\n typeof href === 'string'\n ? href\n : href?.pathname\n ? href.pathname\n : undefined\n return (\n <a ref={ref} href={hrefStr} {...rest}>\n {children}\n </a>\n )\n})\n\nexport default Link\n"]}
@@ -0,0 +1,63 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
+
3
+ // src/embed-shims/next-image.tsx
4
+
5
+
6
+ var _react = require('react');
7
+ var _jsxruntime = require('react/jsx-runtime');
8
+ var impl = null;
9
+ function registerImage(component) {
10
+ impl = component;
11
+ }
12
+ var Image = _react.forwardRef.call(void 0, function NextImageShim(props, ref) {
13
+ if (impl) {
14
+ const Real = impl;
15
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Real, { ref, ...props });
16
+ }
17
+ const {
18
+ src,
19
+ alt,
20
+ width,
21
+ height,
22
+ fill,
23
+ sizes: _sizes,
24
+ quality: _quality,
25
+ priority: _priority,
26
+ placeholder: _placeholder,
27
+ blurDataURL: _blurDataURL,
28
+ unoptimized: _unoptimized,
29
+ onLoadingComplete,
30
+ loader: _loader,
31
+ style,
32
+ ...rest
33
+ } = props;
34
+ const srcStr = typeof src === "string" ? src : _optionalChain([src, 'optionalAccess', _ => _.src]);
35
+ const finalStyle = fill ? {
36
+ position: "absolute",
37
+ inset: 0,
38
+ width: "100%",
39
+ height: "100%",
40
+ objectFit: "cover",
41
+ ...style
42
+ } : style;
43
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
44
+ "img",
45
+ {
46
+ ref,
47
+ src: srcStr,
48
+ alt: _nullishCoalesce(alt, () => ( "")),
49
+ width: fill ? void 0 : width,
50
+ height: fill ? void 0 : height,
51
+ style: finalStyle,
52
+ onLoad: onLoadingComplete ? (e) => onLoadingComplete(e.currentTarget) : void 0,
53
+ ...rest
54
+ }
55
+ );
56
+ });
57
+ var next_image_default = Image;
58
+
59
+
60
+
61
+
62
+ exports.registerImage = registerImage; exports.next_image_default = next_image_default;
63
+ //# sourceMappingURL=chunk-XL4V2PYG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-XL4V2PYG.cjs","../src/embed-shims/next-image.tsx"],"names":[],"mappings":"AAAA,6rBAAY;AACZ;AACA;ACoBA;AACE;AAAA,8BAGK;AAwCI,+CAAA;AArBX,IAAI,KAAA,EAAkC,IAAA;AAQ/B,SAAS,aAAA,CAAc,SAAA,EAAqC;AACjE,EAAA,KAAA,EAAO,SAAA;AACT;AAEA,IAAM,MAAA,EAAQ,+BAAA,SAAkD,aAAA,CAC9D,KAAA,EACA,GAAA,EACA;AAIA,EAAA,GAAA,CAAI,IAAA,EAAM;AACR,IAAA,MAAM,KAAA,EAAO,IAAA;AACb,IAAA,uBAAO,6BAAA,IAAC,EAAA,EAAK,GAAA,EAAW,GAAG,MAAA,CAAO,CAAA;AAAA,EACpC;AAIA,EAAA,MAAM;AAAA,IACJ,GAAA;AAAA,IACA,GAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA,EAAO,MAAA;AAAA,IACP,OAAA,EAAS,QAAA;AAAA,IACT,QAAA,EAAU,SAAA;AAAA,IACV,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,WAAA,EAAa,YAAA;AAAA,IACb,iBAAA;AAAA,IACA,MAAA,EAAQ,OAAA;AAAA,IACR,KAAA;AAAA,IACA,GAAG;AAAA,EACL,EAAA,EAAI,KAAA;AACJ,EAAA,MAAM,OAAA,EAAS,OAAO,IAAA,IAAQ,SAAA,EAAW,IAAA,kBAAM,GAAA,2BAAK,KAAA;AACpD,EAAA,MAAM,WAAA,EAAa,KAAA,EACf;AAAA,IACE,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,CAAA;AAAA,IACP,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,OAAA;AAAA,IACX,GAAG;AAAA,EACL,EAAA,EACA,KAAA;AACJ,EAAA,uBACE,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,GAAA,EAAK,MAAA;AAAA,MACL,GAAA,mBAAK,GAAA,UAAO,IAAA;AAAA,MACZ,KAAA,EAAO,KAAA,EAAO,KAAA,EAAA,EAAY,KAAA;AAAA,MAC1B,MAAA,EAAQ,KAAA,EAAO,KAAA,EAAA,EAAY,MAAA;AAAA,MAC3B,KAAA,EAAO,UAAA;AAAA,MACP,MAAA,EAAQ,kBAAA,EAAoB,CAAC,CAAA,EAAA,GAAM,iBAAA,CAAkB,CAAA,CAAE,aAAa,EAAA,EAAI,KAAA,CAAA;AAAA,MACvE,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ,CAAC,CAAA;AAED,IAAO,mBAAA,EAAQ,KAAA;ADxDf;AACA;AACE;AACA;AACF,uFAAC","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-XL4V2PYG.cjs","sourcesContent":[null,"/**\n * `next/image` shim — environment-aware Image component.\n *\n * Defaults to a plain `<img>` so non-Next hosts (Vite, CRA, esbuild)\n * work out of the box without aliasing tricks. Next.js hosts can opt\n * into the REAL `next/image` (with Image Optimization) by calling\n * {@link registerImage} ONCE at app init:\n *\n * // hub: lib/embed-shim-registration.ts\n * import NextImage from 'next/image'\n * import { registerImage } from '@flamingo-stack/openframe-frontend-core/embed-shims'\n * registerImage(NextImage)\n *\n * After registration, every lib component that renders this shim\n * delegates to `NextImage` — full Image Optimization, blur placeholders,\n * priority, etc. Without registration, the shim falls through to the\n * plain `<img>` path that drops Next-specific props.\n *\n * Lib internals import this shim directly (relative path); hub-side\n * code goes through the barrel (`@flamingo-stack/.../embed-shims`).\n */\n'use client'\nimport {\n forwardRef,\n type ComponentType,\n type ImgHTMLAttributes,\n} from 'react'\n\ntype ImageProps = Omit<ImgHTMLAttributes<HTMLImageElement>, 'src' | 'placeholder'> & {\n src?: string | { src: string }\n alt?: string\n width?: number | string\n height?: number | string\n fill?: boolean\n sizes?: string\n quality?: number\n priority?: boolean\n loading?: 'eager' | 'lazy'\n placeholder?: 'blur' | 'empty' | `data:image/${string}`\n blurDataURL?: string\n unoptimized?: boolean\n onLoadingComplete?: (img: HTMLImageElement) => void\n loader?: unknown\n}\n\nlet impl: ComponentType<any> | null = null\n\n/**\n * Register the real `next/image` so this shim delegates to it instead\n * of rendering a plain `<img>`. Call ONCE at app init in a Next.js host\n * — subsequent calls overwrite the registration silently. Safe to skip\n * entirely in non-Next environments.\n */\nexport function registerImage(component: ComponentType<any>): void {\n impl = component\n}\n\nconst Image = forwardRef<HTMLImageElement, ImageProps>(function NextImageShim(\n props,\n ref,\n) {\n // Real impl path — registered by the host. Hand off untouched so\n // every Next-specific prop (priority, placeholder, sizes, loader…)\n // reaches the real component intact.\n if (impl) {\n const Real = impl\n return <Real ref={ref} {...props} />\n }\n\n // Fallback path — plain <img>. Drops Next-only props and reduces\n // `StaticImageData` src to a string.\n const {\n src,\n alt,\n width,\n height,\n fill,\n sizes: _sizes,\n quality: _quality,\n priority: _priority,\n placeholder: _placeholder,\n blurDataURL: _blurDataURL,\n unoptimized: _unoptimized,\n onLoadingComplete,\n loader: _loader,\n style,\n ...rest\n } = props\n const srcStr = typeof src === 'string' ? src : src?.src\n const finalStyle = fill\n ? {\n position: 'absolute' as const,\n inset: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover' as const,\n ...style,\n }\n : style\n return (\n <img\n ref={ref}\n src={srcStr}\n alt={alt ?? ''}\n width={fill ? undefined : width}\n height={fill ? undefined : height}\n style={finalStyle}\n onLoad={onLoadingComplete ? (e) => onLoadingComplete(e.currentTarget) : undefined}\n {...rest}\n />\n )\n})\n\nexport default Image\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"announcement-bar.d.ts","sourceRoot":"","sources":["../../src/components/announcement-bar.tsx"],"names":[],"mappings":"AA4BA,wBAAgB,eAAe,mDA6L9B"}
1
+ {"version":3,"file":"announcement-bar.d.ts","sourceRoot":"","sources":["../../src/components/announcement-bar.tsx"],"names":[],"mappings":"AA6BA,wBAAgB,eAAe,mDAkN9B"}
@@ -0,0 +1,66 @@
1
+ /** Hand-curated chat-attachment allow-list. Intentionally excludes
2
+ * `image/svg+xml` for XSS safety. */
3
+ export declare const CHAT_ATTACHMENT_MIME_TYPES: readonly ["image/jpeg", "image/png", "image/webp", "image/gif", "video/mp4", "video/webm", "video/quicktime"];
4
+ /** Client-side cap on `addFiles` (the upload hook rejects 6+ files in a
5
+ * single selection). Server-side is per-IP-rate-limit; this is a UX
6
+ * hint more than a security boundary. */
7
+ export declare const CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = 5;
8
+ type Status = 'sniffing' | 'uploading' | 'ready' | 'error';
9
+ /** Staged-attachment shape consumed by the chip strip. Mirrors the hub
10
+ * `StagedAttachment` produced by `useChatAttachments`. */
11
+ export interface StagedAttachment {
12
+ /** Stable client-side id; survives across re-renders. */
13
+ id: string;
14
+ file: File;
15
+ status: Status;
16
+ /** Set when `status === 'ready'`. Server-issued. */
17
+ storagePath?: string;
18
+ /** Set when `status === 'ready'`. Server-issued HMAC view token. */
19
+ viewToken?: string;
20
+ /** 0-100 during 'uploading'. */
21
+ progress: number;
22
+ /** Set when `status === 'error'`. */
23
+ errorMessage?: string;
24
+ }
25
+ export interface ChatAttachmentAddButtonProps {
26
+ /** Auth-gate flag. Hub passes `useChatIdentity().attachmentsEnabled`;
27
+ * embedders supply their own boolean. Disabled state collapses the
28
+ * button to a layout-reserving invisible placeholder. */
29
+ attachmentsEnabled: boolean;
30
+ /** Current attachment count — drives the limit-reached disabled state. */
31
+ attachmentsCount: number;
32
+ onAddFiles: (files: FileList | File[]) => void;
33
+ /** External disable (e.g. while chat is streaming). */
34
+ disabled?: boolean;
35
+ }
36
+ /**
37
+ * Settled `+` icon-only button for the bottom-controls row.
38
+ *
39
+ * LAYOUT STABILITY — first-paint placeholder pattern:
40
+ * `attachmentsEnabled` typically resolves ASYNCHRONOUSLY on mount
41
+ * (hub's `useChatIdentity()` round-trip ~100-500ms). When the flag is
42
+ * false (loading OR anon final state), the component renders an
43
+ * INVISIBLE placeholder `<span>` with the same `h-7 w-7 shrink-0`
44
+ * footprint as the real button. The placeholder reserves layout space
45
+ * from the very first paint; if `attachmentsEnabled` flips to `true`
46
+ * the button replaces the placeholder at the IDENTICAL 28×28
47
+ * position — ZERO shift.
48
+ *
49
+ * Truly-anon users see the invisible 28×28 spacer permanently —
50
+ * acceptable trade-off vs the universal jump on every panel open.
51
+ */
52
+ export declare function ChatAttachmentAddButton({ attachmentsEnabled, attachmentsCount, onAddFiles, disabled, }: ChatAttachmentAddButtonProps): import("react/jsx-runtime").JSX.Element;
53
+ export interface ChatAttachmentChipStripProps {
54
+ attachments: StagedAttachment[];
55
+ onRemove: (id: string) => void;
56
+ /** External disable (e.g. while chat is streaming). */
57
+ disabled?: boolean;
58
+ }
59
+ /**
60
+ * Horizontal strip of file chips that appears ABOVE the input when one
61
+ * or more attachments are staged. Returns `null` when empty — no
62
+ * permanent UI footprint.
63
+ */
64
+ export declare function ChatAttachmentChipStrip({ attachments, onRemove, disabled, }: ChatAttachmentChipStripProps): import("react/jsx-runtime").JSX.Element | null;
65
+ export {};
66
+ //# sourceMappingURL=chat-attachment-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-attachment-bar.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-attachment-bar.tsx"],"names":[],"mappings":"AAwCA;sCACsC;AACtC,eAAO,MAAM,0BAA0B,+GAQ7B,CAAA;AAEV;;0CAE0C;AAC1C,eAAO,MAAM,2CAA2C,IAAI,CAAA;AAE5D,KAAK,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAA;AAE1D;2DAC2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAMD,MAAM,WAAW,4BAA4B;IAC3C;;8DAE0D;IAC1D,kBAAkB,EAAE,OAAO,CAAA;IAC3B,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,IAAI,CAAA;IAC9C,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,QAAgB,GACjB,EAAE,4BAA4B,2CAqD9B;AAMD,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,WAAW,EACX,QAAQ,EACR,QAAgB,GACjB,EAAE,4BAA4B,kDAgB9B"}
@@ -3,6 +3,26 @@ import type { ChatContainerProps, ChatHeaderProps } from "./types";
3
3
  declare const ChatContainer: React.ForwardRefExoticComponent<ChatContainerProps & React.RefAttributes<HTMLDivElement>>;
4
4
  declare const ChatHeader: React.ForwardRefExoticComponent<ChatHeaderProps & React.RefAttributes<HTMLDivElement>>;
5
5
  declare const ChatContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
6
- declare const ChatFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
6
+ /**
7
+ * `ChatFooter` props.
8
+ *
9
+ * Layout API:
10
+ * - `fullWidth` (preferred) — drop the inner-wrapper
11
+ * `max-w-ods-content-narrow` so the footer fills the parent.
12
+ * - `contentClassName` (legacy escape hatch) — explicit class names
13
+ * applied to the inner wrapper. Use only when `fullWidth` is too
14
+ * coarse (e.g. custom max-w value).
15
+ */
16
+ export interface ChatFooterProps extends React.HTMLAttributes<HTMLDivElement> {
17
+ /** Same `fullWidth` semantics as `ChatHeaderProps.fullWidth` — drops
18
+ * the inner wrapper's `max-w-ods-content-narrow` so the footer
19
+ * spans the full parent width. */
20
+ fullWidth?: boolean;
21
+ /** @deprecated Prefer `fullWidth` for the full-panel-width use case.
22
+ * This prop remains supported for callers that need a NON-binary
23
+ * override (custom max-w value, custom padding, etc.). */
24
+ contentClassName?: string;
25
+ }
26
+ declare const ChatFooter: React.ForwardRefExoticComponent<ChatFooterProps & React.RefAttributes<HTMLDivElement>>;
7
27
  export { ChatContainer, ChatHeader, ChatContent, ChatFooter };
8
28
  //# sourceMappingURL=chat-container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-container.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,KAAK,EAA4B,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAkC5F,QAAA,MAAM,aAAa,2FAiBlB,CAAA;AAID,QAAA,MAAM,UAAU,wFAkGf,CAAA;AAGD,QAAA,MAAM,WAAW,6GAehB,CAAA;AAGD,QAAA,MAAM,UAAU,6GAiBf,CAAA;AAGD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"chat-container.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,KAAK,EAA4B,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAkC5F,QAAA,MAAM,aAAa,2FAiBlB,CAAA;AAID,QAAA,MAAM,UAAU,wFAqGf,CAAA;AAGD,QAAA,MAAM,WAAW,6GAehB,CAAA;AAGD;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E;;uCAEmC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;+DAE2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,QAAA,MAAM,UAAU,wFA2Bf,CAAA;AAGD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-input.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-input.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAuB,MAAM,SAAS,CAAA;AAQhF,QAAA,MAAM,SAAS,yGA8Td,CAAA;AAID,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"chat-input.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-input.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAuB,MAAM,SAAS,CAAA;AAQhF,QAAA,MAAM,SAAS,yGAoUd,CAAA;AAID,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message-enhanced.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-enhanced.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAaxD,OAAO,KAAK,EAAkC,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAubvF,QAAA,MAAM,2BAA2B,4FAqB/B,CAAA;AAIF,OAAO,EAAE,2BAA2B,IAAI,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"chat-message-enhanced.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-enhanced.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAaxD,OAAO,KAAK,EAAkC,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAicvF,QAAA,MAAM,2BAA2B,4FAqB/B,CAAA;AAIF,OAAO,EAAE,2BAA2B,IAAI,mBAAmB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message-list.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-list.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAgFnD,QAAA,MAAM,eAAe,iHA+apB,CAAA;AAID,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"chat-message-list.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-list.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAgFnD,QAAA,MAAM,eAAe,iHAgepB,CAAA;AAID,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ export interface ChatPanelHandle {
2
+ /** Close the chat panel. Called by inline cards' nav click handler
3
+ * ONLY when the resolved navigation is same-tab. */
4
+ closeChat: () => void;
5
+ }
6
+ export declare const ChatPanelContext: import("react").Context<ChatPanelHandle | null>;
7
+ /** Optional consumer — returns `null` when no provider mounted. */
8
+ export declare function useChatPanel(): ChatPanelHandle | null;
9
+ //# sourceMappingURL=chat-panel-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-panel-context.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-panel-context.tsx"],"names":[],"mappings":"AAyBA,MAAM,WAAW,eAAe;IAC9B;yDACqD;IACrD,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,eAAO,MAAM,gBAAgB,iDAA8C,CAAA;AAE3E,mEAAmE;AACnE,wBAAgB,YAAY,IAAI,eAAe,GAAG,IAAI,CAErD"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { type ChatTicketItemData } from './chat-ticket-item';
2
+ import { type ChatTicketItemData } from './entity-cards/chat-ticket-item';
3
3
  export interface ChatTicketListProps extends React.HTMLAttributes<HTMLDivElement> {
4
4
  tickets: ChatTicketItemData[];
5
5
  onTicketClick?: (ticketId: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-ticket-list.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-ticket-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5E,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC/E,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3C;AASD,QAAA,MAAM,cAAc,4FAkDnB,CAAA;AAID,OAAO,EAAE,cAAc,EAAE,CAAA;AACzB,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"chat-ticket-list.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-ticket-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEzF,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC/E,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3C;AASD,QAAA,MAAM,cAAc,4FAkDnB,CAAA;AAID,OAAO,EAAE,cAAc,EAAE,CAAA;AACzB,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,42 @@
1
+ import type { ChatCardDispatchExtras } from './entity-cards/dispatch';
2
+ export interface EmbeddableChatProps {
3
+ /** Base route for in-app doc chip nav (e.g. `/knowledge-base`). When
4
+ * omitted, defaults are derived from `runtime.source`. */
5
+ baseRoute?: string;
6
+ /** When the embedder doesn't host a `[...path]` route to render markdown
7
+ * chips against, set this to a platform that does. Chips with
8
+ * `externalUrl: null` resolve to `getBaseUrl(chipBasePlatform) +
9
+ * '/knowledge-base/' + path` and open in a new tab. */
10
+ chipBasePlatform?: string;
11
+ /** DB-driven list of enabled RAG table ids (chip catalog filter).
12
+ * Prefetched server-side by the embedder's wrapper. Empty/null → no
13
+ * empty-state chips render. */
14
+ enabledRagTableIds?: ReadonlyArray<string> | null;
15
+ /** DB-backed empty-state greeting. Falls back to a generic greeting. */
16
+ emptyStateGreeting?: string | null;
17
+ /** DB-backed starter prompts (chips below the greeting). */
18
+ suggestedQueries?: ReadonlyArray<string> | null;
19
+ /** Controlled-mode open state. When provided, `onOpenChange` MUST also
20
+ * be provided. Uncontrolled mode is the default. */
21
+ open?: boolean;
22
+ /** Controlled-mode change handler. Required when `open` is provided. */
23
+ onOpenChange?: (open: boolean) => void;
24
+ /** Initial open state for uncontrolled mode. Ignored if `open` is set. */
25
+ defaultOpen?: boolean;
26
+ /** Render the built-in floating "Ask AI" trigger. Defaults to `true`. */
27
+ showInternalTrigger?: boolean;
28
+ /** Optional builders for chat-card types whose props live in hub-land
29
+ * (programs + product_release). Forwarded straight to
30
+ * `renderChatInlineEntityCard`. */
31
+ extras?: ChatCardDispatchExtras;
32
+ /** Optional callback used by `useEmbeddedChat`'s `displayRef` /
33
+ * `discussRef` flow to translate an LLM document type into the
34
+ * registry table id for entity-id-filtered retrieval. */
35
+ tableIdForDocumentType?: (documentType: string) => string | null;
36
+ }
37
+ /**
38
+ * EmbeddableChat — the floating "Ask AI" button + Mingo chat panel.
39
+ * Lib-portable port of the hub's `<GlobalAskAI>`.
40
+ */
41
+ export declare function EmbeddableChat(props: EmbeddableChatProps): import("react/jsx-runtime").JSX.Element;
42
+ //# sourceMappingURL=embeddable-chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddable-chat.d.ts","sourceRoot":"","sources":["../../../src/components/chat/embeddable-chat.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAoCrE,MAAM,WAAW,mBAAmB;IAClC;+DAC2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;4DAGwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;oCAEgC;IAChC,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IACjD,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC/C;yDACqD;IACrD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;wCAEoC;IACpC,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B;;8DAE0D;IAC1D,sBAAsB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;CACjE;AA6VD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAExD"}
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ interface PlatformInfo {
3
+ platform_id?: string;
4
+ id?: string;
5
+ name: string;
6
+ display_name?: string;
7
+ }
8
+ interface AdminContentCardProps {
9
+ /** Cover image URL */
10
+ imageUrl?: string | null;
11
+ /** Pre-computed placeholder URL used when `imageUrl` is missing or
12
+ * fails to load. Hub callers pass `useOgPlaceholder(title)`; embedders
13
+ * supply their own URL or leave null for a plain background fallback. */
14
+ placeholderUrl?: string | null;
15
+ /** Alt text / fallback title */
16
+ title: string;
17
+ /** Summary or description text */
18
+ summary?: string | null;
19
+ /** Subtitle line (e.g. customer name) */
20
+ subtitle?: string | null;
21
+ /** Platform badges */
22
+ platforms?: PlatformInfo[];
23
+ /** Status/info badges rendered after platform badges */
24
+ badges?: React.ReactNode;
25
+ /** Meta info row (date, views, etc.) */
26
+ meta?: React.ReactNode;
27
+ /** Action buttons row */
28
+ actions?: React.ReactNode;
29
+ /** Additional class names */
30
+ className?: string;
31
+ }
32
+ export declare function AdminContentCard({ imageUrl, placeholderUrl, title, summary, subtitle, platforms, badges, meta, actions, className, }: AdminContentCardProps): import("react/jsx-runtime").JSX.Element;
33
+ export {};
34
+ //# sourceMappingURL=admin-content-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-content-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/admin-content-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAMlD,UAAU,YAAY;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,UAAU,qBAAqB;IAC7B,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB;;8EAE0E;IAC1E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,sBAAsB;IACtB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1B,wDAAwD;IACxD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,wCAAwC;IACxC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,yBAAyB;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,cAAc,EACd,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,MAAM,EACN,IAAI,EACJ,OAAO,EACP,SAAS,GACV,EAAE,qBAAqB,2CAuGvB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/block-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,cAAc;IAC7B;;;;2BAIuB;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB;;;;;iEAK6D;IAC7D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAE3E"}
@@ -0,0 +1,30 @@
1
+ import type { BlogPostSummary } from '../../../types/blog';
2
+ export interface BlogCardProps {
3
+ post: BlogPostSummary;
4
+ /** Detail URL resolved by the caller (e.g. `buildContentURL`). */
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
+ /** Platform that owns `href`. Used by parent wrappers; the card
11
+ * itself doesn't read it but exposes the prop for the standard
12
+ * pure-presentation contract. */
13
+ targetPlatform?: string | null;
14
+ /** Placeholder URL when `post.featured_image` is missing. Caller
15
+ * resolves via `useOgPlaceholder` (hub) or a static asset. */
16
+ placeholderUrl?: string | null;
17
+ size?: 'default' | 'sm';
18
+ className?: string;
19
+ /** Surfaces a "Video" badge in compact mode. */
20
+ hasEmbeddedVideo?: boolean;
21
+ /** Optional render-prop for the title-area anchor in `default` mode.
22
+ * When omitted the title renders as plain text (caller wraps the
23
+ * whole card if it wants a link). */
24
+ priority?: boolean;
25
+ }
26
+ export declare function BlogCardSkeleton({ size }: {
27
+ size?: 'default' | 'sm';
28
+ }): import("react/jsx-runtime").JSX.Element;
29
+ export declare function BlogCard({ post, href, target, rel, placeholderUrl, size, className, hasEmbeddedVideo, priority, }: BlogCardProps): import("react/jsx-runtime").JSX.Element;
30
+ //# sourceMappingURL=blog-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/blog-card.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAe1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,eAAe,CAAA;IACrB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;IACZ;mDAC+C;IAC/C,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B;;sCAEkC;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B;mEAC+D;IAC/D,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;0CAEsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAgB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,2CAkCjF;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EAEJ,MAAM,EAEN,GAAG,EACH,cAAc,EACd,IAAgB,EAChB,SAAS,EACT,gBAAwB,EACxB,QAAgB,GACjB,EAAE,aAAa,2CAkJf"}
@@ -0,0 +1,26 @@
1
+ interface BlogImagePlaceholderProps {
2
+ /** Cover-image URL. The hub passes a `useOgPlaceholder(title, category)`
3
+ * result; embedders pass their own pre-resolved URL. When null, the
4
+ * component renders nothing. */
5
+ imageUrl: string | null;
6
+ /** Used for the `alt` attribute. */
7
+ title: string;
8
+ className?: string;
9
+ }
10
+ /**
11
+ * Pure presentation wrapper for a cover-image / OG-placeholder fallback.
12
+ *
13
+ * Outer must be inline-content-model so this placeholder is HTML-valid
14
+ * when rendered inside a markdown `<p>` (e.g. via the chat shell's
15
+ * compact `BlogCard` fallback). `<span className="block">` keeps the
16
+ * same visual behavior as the prior `<div>` while satisfying the
17
+ * phrasing-content constraint of its parent.
18
+ *
19
+ * If the `imageUrl` itself 404s (cold cache, transient failure), the
20
+ * `onError` handler hides the broken-image icon so the parent's
21
+ * `bg-ods-bg` shows through cleanly. Same recovery pattern every
22
+ * cover-image render path uses.
23
+ */
24
+ export declare function BlogImagePlaceholder({ imageUrl, title, className, }: BlogImagePlaceholderProps): import("react/jsx-runtime").JSX.Element | null;
25
+ export {};
26
+ //# sourceMappingURL=blog-image-placeholder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blog-image-placeholder.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/blog-image-placeholder.tsx"],"names":[],"mappings":"AAIA,UAAU,yBAAyB;IACjC;;qCAEiC;IACjC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,KAAK,EACL,SAAc,GACf,EAAE,yBAAyB,kDAmB3B"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Campaign Card Admin (chat compact variant).
3
+ *
4
+ * PURE PRESENTATION. Receives a pre-composed `<a>` prop bundle and
5
+ * renders a 3-row compact card. The hub still owns the full-size admin
6
+ * card (with delete + manage buttons) — only the compact chat variant
7
+ * lives here in lib.
8
+ */
9
+ import React from 'react';
10
+ /** Minimal campaign shape needed by the chat-inline compact card. */
11
+ export interface CampaignCardItem {
12
+ id: string;
13
+ name: string;
14
+ description?: string | null;
15
+ start_date?: string | null;
16
+ goals?: Array<unknown> | null;
17
+ }
18
+ export interface CampaignCardAdminAnchorProps {
19
+ href: string;
20
+ target?: '_blank';
21
+ rel?: 'noopener noreferrer';
22
+ onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
23
+ }
24
+ export interface CampaignCardAdminProps {
25
+ campaign: CampaignCardItem;
26
+ className?: string;
27
+ anchorProps?: CampaignCardAdminAnchorProps;
28
+ }
29
+ export declare function CampaignCardAdmin({ campaign, className, anchorProps }: CampaignCardAdminProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare function CampaignCardAdminSkeleton({ className }: {
31
+ className?: string;
32
+ }): import("react/jsx-runtime").JSX.Element;
33
+ //# sourceMappingURL=campaign-card-admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign-card-admin.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/campaign-card-admin.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAkBzB,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;CAC9B;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,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,4BAA4B,CAAA;CAC3C;AAGD,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,sBAAsB,2CAyC7F;AAED,wBAAgB,yBAAyB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAiB9E"}
@@ -0,0 +1,20 @@
1
+ import type { CaseStudy } from '../../../types/case-study';
2
+ export interface CaseStudyCardProps {
3
+ study: CaseStudy;
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 when `study.featured_image` is missing. */
12
+ placeholderUrl?: string | null;
13
+ size?: 'default' | 'sm';
14
+ className?: string;
15
+ }
16
+ export declare function CaseStudyCardSkeleton({ size }: {
17
+ size?: 'default' | 'sm';
18
+ }): import("react/jsx-runtime").JSX.Element;
19
+ export declare function CaseStudyCard({ study, href, target, rel, placeholderUrl, size, className }: CaseStudyCardProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=case-study-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-study-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/case-study-card.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAmB1D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,CAAA;IAChB,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,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,qBAAqB,CAAC,EAAE,IAAgB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,2CAmCtF;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAgB,EAAE,SAAS,EAAE,EAAE,kBAAkB,2CAsG1H"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-ticket-item.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/chat-ticket-item.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IACzG,MAAM,EAAE,kBAAkB,CAAA;IAC1B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC;AAED,QAAA,MAAM,cAAc,+FA8CnB,CAAA;AAID,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { ChatRef } from './chat-ref.types';
2
+ import type { ChatRef } from '../chat-ref.types';
3
3
  /**
4
4
  * <ChatVideoEntityCard> — chat-side inline render for video-bearing
5
5
  * entity refs. Reuses `<EntityVideoSection>` (the SAME component the
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-video-entity-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/chat-video-entity-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,wBAAwB;IACvC;yDACqD;IACrD,OAAO,EAAE,OAAO,CAAA;CACjB;AAMD,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,GACR,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CA0B/C"}
@@ -0,0 +1,19 @@
1
+ import type { CustomerInterview } from '../../../types/customer-interview';
2
+ export interface CustomerInterviewCardProps {
3
+ interview: CustomerInterview;
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 fallback when `interview.featured_image` is missing. */
11
+ placeholderUrl?: string | null;
12
+ size?: 'default' | 'sm';
13
+ className?: string;
14
+ }
15
+ export declare function CustomerInterviewCardSkeleton({ size }: {
16
+ size?: 'default' | 'sm';
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ export declare function CustomerInterviewCard({ interview, href, target, rel, placeholderUrl, size, className }: CustomerInterviewCardProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=customer-interview-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-interview-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/customer-interview-card.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAmB1E,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,iBAAiB,CAAA;IAC5B,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,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,6BAA6B,CAAC,EAAE,IAAgB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,2CAwC9F;AAED,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAgB,EAAE,SAAS,EAAE,EAAE,0BAA0B,2CAyH9I"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Data-room / OpenFrame-docs inline chat card.
3
+ *
4
+ * PURE PRESENTATION. The card receives a pre-composed `<a>` prop bundle
5
+ * (`anchorProps`) plus a pre-resolved badge label — both decisions
6
+ * (URL composition + cross-app routing) are made in the consumer's
7
+ * runtime layer, not inside this card.
8
+ *
9
+ * Renders `[card://data_room_doc:<id>]` and `[card://markdown:<id>]` markers
10
+ * — both use this card because their viewer surface is structurally
11
+ * identical; only the `baseRoute` differs (`/data-room` vs `/knowledge-base`).
12
+ */
13
+ import React from 'react';
14
+ import type { DataRoomDocCardItem } from '../types/entities/data-room-doc';
15
+ export interface DataRoomDocCardAnchorProps {
16
+ href: string;
17
+ target?: '_blank';
18
+ rel?: 'noopener noreferrer';
19
+ onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
20
+ }
21
+ export interface DataRoomDocCardProps {
22
+ item: DataRoomDocCardItem;
23
+ className?: string;
24
+ /** Pre-composed badge label. REQUIRED — the consumer resolves
25
+ * `sourceRepo` against its `SOURCE_LABELS_BY_TABLE` registry and
26
+ * passes the result here.
27
+ *
28
+ * Why required (no default): if the badge silently defaulted to a
29
+ * literal like "Data room", a card sourced from openframe-docs (or
30
+ * any other repo) whose `sourceRepo` resolution failed would
31
+ * display the wrong provenance label — a real security signal,
32
+ * because "Data Room" implies private/internal documents to
33
+ * end-users. Forcing the consumer to supply the label means a
34
+ * bug at the resolution step surfaces as a TypeScript error
35
+ * ("badgeText required") instead of a falsely-labeled production
36
+ * card. The hub-side dispatcher already passes
37
+ * `getSourceLabel(sourceRepo)` with a non-null fallback. */
38
+ badgeText: string;
39
+ /** Pre-composed `<a>` prop bundle. When provided, the outer renders
40
+ * as `<a {...anchorProps}>`; otherwise the card is non-interactive. */
41
+ anchorProps?: DataRoomDocCardAnchorProps;
42
+ }
43
+ export declare function DataRoomDocCard({ item, className, badgeText, anchorProps }: DataRoomDocCardProps): import("react/jsx-runtime").JSX.Element;
44
+ export declare function DataRoomDocCardSkeleton({ className }: {
45
+ className?: string;
46
+ }): import("react/jsx-runtime").JSX.Element;
47
+ //# sourceMappingURL=data-room-doc-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-room-doc-card.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/data-room-doc-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAE1E,MAAM,WAAW,0BAA0B;IACzC,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,oBAAoB;IACnC,IAAI,EAAE,mBAAmB,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;;;;;;iEAa6D;IAC7D,SAAS,EAAE,MAAM,CAAA;IACjB;4EACwE;IACxE,WAAW,CAAC,EAAE,0BAA0B,CAAA;CACzC;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,oBAAoB,2CAyChG;AAED,wBAAgB,uBAAuB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAmB5E"}