@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,72 @@
1
+ /**
2
+ * Embed-mode navigation resolver + shared click-handling primitives.
3
+ *
4
+ * Used by the lib chat panel's chip + card click handlers to force
5
+ * new-tab + absolutize against the embedder-supplied content origin.
6
+ *
7
+ * Refactor from hub origin (D5): inferTargetPlatformFromHref +
8
+ * getPlatformDomain dropped. Caller threads `targetPlatform` directly.
9
+ * Relative URLs without a defaultContentOrigin emit a dev warning
10
+ * and resolve against window.location.origin (likely wrong in embed
11
+ * mode; embedder should set defaultContentOrigin).
12
+ */
13
+ import type { ChatRuntime } from '../../../contexts/chat-runtime-context';
14
+ /** Arguments accepted by `window.open` for a new tab — keep `noopener`
15
+ * + `noreferrer` to prevent the opened page from accessing
16
+ * window.opener (reverse-tabnabbing class). */
17
+ export declare const NEW_TAB_FEATURES = "noopener,noreferrer";
18
+ /** Modifier-click predicate — matches the existing useNavLink branch
19
+ * (cmd/ctrl/shift/alt OR non-primary mouse button). */
20
+ export declare function isModifierClick(e: {
21
+ button?: number;
22
+ metaKey?: boolean;
23
+ ctrlKey?: boolean;
24
+ shiftKey?: boolean;
25
+ altKey?: boolean;
26
+ }): boolean;
27
+ /** Strip the origin from a same-origin absolute URL, returning a relative
28
+ * path the host's router will treat as in-app navigation. Pass-through
29
+ * for already-relative URLs and for cross-origin URLs. */
30
+ export declare function stripSameOriginToPath(href: string): string;
31
+ export interface ExternalNavResolution {
32
+ /** Absolutized href — relative paths are joined with
33
+ * `runtime.navigation.defaultContentOrigin` (embed contract). */
34
+ href: string;
35
+ /** Synchronous opener. MUST be invoked inline from a user gesture for
36
+ * popup-blocker compatibility (Safari/Firefox). Honors
37
+ * runtime.navigation.openExternal override, else falls back to
38
+ * window.open(href, '_blank', 'noopener,noreferrer'). */
39
+ open: () => void;
40
+ }
41
+ /**
42
+ * Pre-resolve an href against the embed-mode `defaultContentOrigin`.
43
+ *
44
+ * In `embed` mode every chat-rendered anchor MUST point at an absolute
45
+ * URL on the hub origin (not the embedder origin). Without
46
+ * pre-resolution, relative paths like `/knowledge-base/foo.md` render
47
+ * as `<a href="/knowledge-base/...">` — the click handler intercepts
48
+ * primary-button clicks correctly, but modifier-click (cmd/ctrl/middle/
49
+ * right) bypasses the handler and opens `<embedder-origin>/...` → 404.
50
+ * Pre-resolution at render time makes every browser-native navigation
51
+ * path (hover preview, status bar, copy-link, new-tab via modifier)
52
+ * land on the hub correctly.
53
+ *
54
+ * In `host` mode (the hub itself) the href is returned unchanged —
55
+ * relative paths resolve naturally against the hub's own origin.
56
+ *
57
+ * Absolute URLs and protocol-relative URLs are returned unchanged in
58
+ * both modes.
59
+ */
60
+ export declare function resolveHrefForRuntime(href: string, runtime: ChatRuntime): string;
61
+ /**
62
+ * Resolve external navigation in embed mode.
63
+ *
64
+ * Browser-only: called from React event handlers (onClick, imperative
65
+ * click handlers) after mount. No SSR-reachable paths.
66
+ */
67
+ export declare function resolveExternalNavigation(args: {
68
+ href: string;
69
+ targetPlatform: string | null | undefined;
70
+ runtime: ChatRuntime;
71
+ }): ExternalNavResolution;
72
+ //# sourceMappingURL=chat-nav-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-nav-resolution.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/chat-nav-resolution.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAEzE;;gDAEgD;AAChD,eAAO,MAAM,gBAAgB,wBAAwB,CAAA;AAErD;wDACwD;AACxD,wBAAgB,eAAe,CAAC,CAAC,EAAE;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,GAAG,OAAO,CAQV;AAED;;2DAE2D;AAC3D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ1D;AAED,MAAM,WAAW,qBAAqB;IACpC;sEACkE;IAClE,IAAI,EAAE,MAAM,CAAA;IACZ;;;8DAG0D;IAC1D,IAAI,EAAE,MAAM,IAAI,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACzC,OAAO,EAAE,WAAW,CAAA;CACrB,GAAG,qBAAqB,CA6CxB"}
@@ -0,0 +1,43 @@
1
+ export interface ChatProxyAuth {
2
+ secret: string;
3
+ email: string;
4
+ /** Optional identity passthrough — empty/omitted = not sent. Server
5
+ * parses these as `X-Chat-{First,Last}-Name` / `X-Chat-Avatar-Url` and
6
+ * threads them through `resolveChatProxyIdentity`'s returned user. */
7
+ firstName?: string;
8
+ lastName?: string;
9
+ avatarUrl?: string;
10
+ }
11
+ /**
12
+ * Returns full credentials (secret + email + optional identity passthrough)
13
+ * when secret + email are available in localStorage. Survives page reloads.
14
+ * Returns `null` when nothing is saved — callers treat that as "fall back
15
+ * to cookie auth".
16
+ */
17
+ export declare function getChatProxyAuth(): ChatProxyAuth | null;
18
+ /**
19
+ * Returns the LAST email the admin saved. The bar reads this to pre-fill
20
+ * the email field on mount.
21
+ */
22
+ export declare function getPersistedProxyEmail(): string | null;
23
+ /** Save the proxy creds to localStorage. Secret + email are required;
24
+ * identity-passthrough fields are persisted only when non-empty. */
25
+ export declare function setChatProxyAuth(value: ChatProxyAuth): void;
26
+ /** Drop the persisted creds. */
27
+ export declare function clearChatProxyAuth(): void;
28
+ /**
29
+ * Apply the chat-proxy auth (Bearer + X-Chat-Act-As) to a fetch call's
30
+ * URL + headers. Used by every chat-side route that needs to identify
31
+ * itself as the proxied customer (the docs chat stream AND every
32
+ * confirm-tool / agent-* route the chat shell calls afterwards). When
33
+ * proxy auth is absent (regular cookie-session users), returns the
34
+ * inputs unchanged so the cookie-auth path still works.
35
+ *
36
+ * `X-Chat-Act-As` header (vs a URL query param) keeps PII out of
37
+ * access logs, Sentry breadcrumbs, browser history, and CDN analytics.
38
+ */
39
+ export declare function applyProxyAuth(url: string, baseHeaders?: Record<string, string>): {
40
+ url: string;
41
+ headers: Record<string, string>;
42
+ };
43
+ //# sourceMappingURL=chat-proxy-auth-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-proxy-auth-storage.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/chat-proxy-auth-storage.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb;;2EAEuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAuCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAUvD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAGtD;AAED;qEACqE;AACrE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAQ3D;AAED,gCAAgC;AAChC,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAA0C,GAC3E;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAelD"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Single CSS string for chip-density action buttons (Recent / Search /
3
+ * Find / Display, plus the inline Display popover's submit / cancel
4
+ * buttons).
5
+ *
6
+ * Shared between the empty-state chip's action row and the
7
+ * `<DisplayChipAction>` popover so both render with byte-equivalent
8
+ * styling — no per-call ad-hoc Tailwind chain that drifts over time.
9
+ *
10
+ * Sizing intent: 11px font + tight `px-2 py-1` padding lands below UI-Kit
11
+ * `Button size="small"` (24-32px min-height). These are chip-density
12
+ * action buttons, not standard buttons — they sit inside the empty-state
13
+ * chip card's tertiary action row.
14
+ */
15
+ export declare const CHIP_ACTION_BUTTON_CLASS: string;
16
+ //# sourceMappingURL=chip-action-class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip-action-class.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/chip-action-class.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,QAIL,CAAA"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Shared className generator for the chat-adjacent UI family:
3
+ * - **Source chips** (citation list below an assistant turn)
4
+ * - **Inline entity-card pills** (within prose, marker-rendered)
5
+ * - **Search-result rows** (dropdown beneath the search input)
6
+ *
7
+ * Centralising the token here means a single ODS change propagates to
8
+ * every surface — chip / card / dropdown row read as the same family.
9
+ *
10
+ * The `tone` arg controls the resting text color:
11
+ * - `secondary` — citation chips and tertiary metadata. Muted resting.
12
+ * - `primary` — chips that ARE the subject of the sentence. Matches
13
+ * body text color so the chip reads as content, not metadata.
14
+ *
15
+ * The `density` arg controls size / padding:
16
+ * - `'chip'` — inline pill (`px-2 py-0.5 text-[11px]`). Default;
17
+ * used by the citation row and inline entity-card markers.
18
+ * - `'list-row'` — wider, taller row (`px-3 py-2 text-sm`). Used by
19
+ * the search-bar dropdown. Same ODS family — same border, hover
20
+ * transition, accent treatment — just larger touch target.
21
+ * - `'card-row'` — for the tracking strip beneath a card frame
22
+ * (`px-2 py-1 text-[11px]` no border). Same family, no frame.
23
+ */
24
+ export interface ChipClassOptions {
25
+ tone: 'primary' | 'secondary';
26
+ /** Visual density. Defaults to `'chip'`. */
27
+ density?: 'chip' | 'list-row' | 'card-row';
28
+ /** Extra classes appended verbatim (e.g. `cursor-pointer`). */
29
+ extra?: string;
30
+ }
31
+ export declare function chatChipClass({ tone, density, extra }: ChipClassOptions): string;
32
+ //# sourceMappingURL=chip-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip-styles.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/chip-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,GAAG,WAAW,CAAA;IAC7B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAA;IAC1C,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAmBzF"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * ClickUp custom_item_id → human-readable label resolver.
3
+ *
4
+ * Lib-side subset of the hub's `lib/utils/clickup-task-type-utils.ts`.
5
+ * The hub file also exports delivery / workspace slug helpers used by
6
+ * the sync engine; only the chat-surfaced label resolver migrates here
7
+ * because chat-inline cards and activity feeds need it.
8
+ *
9
+ * Reference: ClickUp's standard task types (custom_item_id values):
10
+ * null/1000=Task, 1001=Milestone, 1002=Recurring, 1003=Subtask,
11
+ * 1004=Form, 1006=Plan, 1007=Strategy, 1008=Bug, 1009=Request,
12
+ * 1010=Feature, 1011=Story, 1012=Epic, 1013=Component, 1014=Initiative.
13
+ */
14
+ export declare const CUSTOM_ITEM_ID: {
15
+ readonly TASK: 1000;
16
+ readonly MILESTONE: 1001;
17
+ readonly RECURRING: 1002;
18
+ readonly SUBTASK: 1003;
19
+ readonly FORM: 1004;
20
+ readonly PLAN: 1006;
21
+ readonly STRATEGY: 1007;
22
+ readonly BUG: 1008;
23
+ readonly REQUEST: 1009;
24
+ readonly FEATURE: 1010;
25
+ readonly STORY: 1011;
26
+ readonly EPIC: 1012;
27
+ readonly COMPONENT: 1013;
28
+ readonly INITIATIVE: 1014;
29
+ };
30
+ /**
31
+ * Display name for a ClickUp task type — used in chat-inline cards and
32
+ * activity feeds where the type badge would otherwise show a numeric ID.
33
+ *
34
+ * Returning `null` for unknown IDs lets callers fall back to a generic
35
+ * "Task" affordance rather than printing `task-1100` or similar.
36
+ */
37
+ export declare function getTaskTypeLabel(customItemId: number | null | undefined): string | null;
38
+ //# sourceMappingURL=clickup-task-type-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clickup-task-type-utils.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/clickup-task-type-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;CAejB,CAAA;AAEV;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,MAAM,GAAG,IAAI,CAkBf"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Compact-card class constants — single source of truth for the chat-inline
3
+ * `size='sm'` card frame.
4
+ *
5
+ * Lifted from the hub's `components/shared/compact-card/compact-card-classes.ts`
6
+ * so the pure-presentation cards in `entity-cards/` can stop importing from
7
+ * the hub tree. Every compact card across the chat shell shares the SAME
8
+ * outer frame, skeleton frame, image slot, icon slot, text column, and
9
+ * per-line typography.
10
+ *
11
+ * Card-specific variation (Play overlay on podcasts, #N pill on investor
12
+ * updates, status badge on roadmap) lives INSIDE the card next to its
13
+ * other type-specific JSX; the frame stays uniform across types.
14
+ */
15
+ /** Loaded compact card outer frame for INTERACTIVE state — anchor wrap
16
+ * with hover/transition affordance. Use ONLY when the card resolves
17
+ * to a real, safe href; the user expects a clickable feel. */
18
+ export declare const COMPACT_CARD_OUTER = "my-1.5 flex items-start gap-3 w-full p-2 rounded-lg border border-ods-border bg-ods-card no-underline transition-colors hover:border-ods-text-secondary/40";
19
+ /** Loaded compact card outer frame for NON-INTERACTIVE state — span wrap
20
+ * used when `safeHref()` rejects the chat ref's url. */
21
+ export declare const COMPACT_CARD_OUTER_STATIC = "my-1.5 flex items-start gap-3 w-full p-2 rounded-lg border border-ods-border bg-ods-card no-underline cursor-default";
22
+ /** Skeleton outer frame — same dimensions as loaded, plus `animate-pulse`. */
23
+ export declare const COMPACT_CARD_SKELETON_OUTER = "my-1.5 flex w-full animate-pulse items-start gap-3 rounded-lg border border-ods-border bg-ods-card p-2";
24
+ /** 56×56 image slot — for cards with a cover image. */
25
+ export declare const COMPACT_CARD_IMAGE_SLOT = "relative block shrink-0 self-start w-14 h-14 aspect-square overflow-hidden rounded-md bg-ods-bg";
26
+ /** 56×56 placeholder slot for skeletons. */
27
+ export declare const COMPACT_CARD_SKELETON_IMAGE_SLOT = "block h-14 w-14 aspect-square shrink-0 self-start rounded-md bg-ods-bg";
28
+ /** 56×56 icon slot — for cards without a cover image. */
29
+ export declare const COMPACT_CARD_ICON_SLOT = "flex h-14 w-14 aspect-square shrink-0 self-start items-center justify-center rounded-md bg-ods-bg text-ods-accent";
30
+ /** Text column wrapper — explicit 56px height with `flex flex-col`. */
31
+ export declare const COMPACT_CARD_TEXT_COL = "flex min-w-0 flex-1 flex-col gap-0.5 min-h-14";
32
+ /** Title row container — fixed 20px (h-5) to match `text-sm leading-5`. */
33
+ export declare const COMPACT_CARD_TITLE_ROW = "flex items-center min-w-0 h-5";
34
+ /** Subtitle / summary row container — fixed 16px (h-4). */
35
+ export declare const COMPACT_CARD_META_ROW_BOX = "flex items-center min-w-0 h-4";
36
+ /** Title text — bold 14px on a 20px line. */
37
+ export declare const COMPACT_CARD_TITLE = "truncate text-sm font-semibold leading-5 text-ods-text-primary";
38
+ /** Subtitle text — 11px on a 16px line. */
39
+ export declare const COMPACT_CARD_SUBTITLE = "truncate text-[11px] leading-4 text-ods-text-secondary";
40
+ /** Summary text — same metrics as subtitle, dropped to 80% opacity. */
41
+ export declare const COMPACT_CARD_SUMMARY = "truncate text-[11px] leading-4 text-ods-text-secondary/80";
42
+ /** Meta-row variant — multi-part 11px metadata. */
43
+ export declare const COMPACT_CARD_META_ROW = "flex items-center gap-1.5 min-w-0 text-[11px] leading-4 text-ods-text-secondary";
44
+ /** Non-breaking space — used as a fallback child so the row's height stays 16px. */
45
+ export declare const COMPACT_CARD_ROW_FILLER = "\u00A0";
46
+ /** Return the input url ONLY if it's safe to drop into an `<a href>`:
47
+ * the scheme must be http / https / mailto, or the URL must be a
48
+ * same-origin path (`/blog/foo`). Otherwise returns `null`. */
49
+ export declare function safeHref(url: string | null | undefined): string | null;
50
+ //# sourceMappingURL=compact-card-classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-card-classes.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/compact-card-classes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;+DAE+D;AAC/D,eAAO,MAAM,kBAAkB,+JAC+H,CAAA;AAE9J;yDACyD;AACzD,eAAO,MAAM,yBAAyB,yHACkF,CAAA;AAExH,8EAA8E;AAC9E,eAAO,MAAM,2BAA2B,2GACkE,CAAA;AAE1G,uDAAuD;AACvD,eAAO,MAAM,uBAAuB,oGAC+D,CAAA;AAEnG,4CAA4C;AAC5C,eAAO,MAAM,gCAAgC,2EAC6B,CAAA;AAE1E,yDAAyD;AACzD,eAAO,MAAM,sBAAsB,sHACkF,CAAA;AAErH,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,kDACe,CAAA;AAEjD,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,kCAAkC,CAAA;AAErE,2DAA2D;AAC3D,eAAO,MAAM,yBAAyB,kCAAkC,CAAA;AAExE,6CAA6C;AAC7C,eAAO,MAAM,kBAAkB,mEACmC,CAAA;AAElE,2CAA2C;AAC3C,eAAO,MAAM,qBAAqB,2DACwB,CAAA;AAE1D,uEAAuE;AACvE,eAAO,MAAM,oBAAoB,8DAC4B,CAAA;AAE7D,mDAAmD;AACnD,eAAO,MAAM,qBAAqB,oFACiD,CAAA;AAEnF,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,WAAM,CAAA;AAK1C;;gEAEgE;AAChE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAmBtE"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Pure new-tab decision helper.
3
+ *
4
+ * Same logic as the hub's prior inline `decideNewTab`, but parameterized:
5
+ * - `currentSource` is passed by caller (was `currentPlatform()` reads
6
+ * inside the body). Hub callers pass `currentPlatform()`; lib chip
7
+ * code passes `runtime.source ?? ''`.
8
+ *
9
+ * BRANCH PRIORITY:
10
+ * 1. `runtimeMode === 'embed'` → always new-tab (embed-mode short-circuit)
11
+ * 2. `openIn === 'new-tab'` or `'same-tab'` — explicit caller override
12
+ * 3. `alwaysNewTab === true` (legacy synonym for `openIn: 'new-tab'`)
13
+ * 4. `targetPlatform` defined AND `currentSource` non-empty →
14
+ * platform comparison (cross-app → new tab, same-app → same tab)
15
+ * 5. Legacy fallback: `isCrossOriginUrl(href)` — origin compare. Works
16
+ * in prod (distinct hosts) but degrades to "always same-tab" in dev.
17
+ *
18
+ * No call site implements its own variant of the rule.
19
+ */
20
+ export type NavSurface = 'useNavLink' | 'useUnifiedNav';
21
+ export type RuntimeMode = 'host' | 'embed';
22
+ export interface DecideNewTabInput {
23
+ href: string | null | undefined;
24
+ targetPlatform?: string | null;
25
+ openIn?: 'new-tab' | 'same-tab';
26
+ alwaysNewTab?: boolean;
27
+ /** Caller tag — labels the decision in any external trace logging. */
28
+ surface?: NavSurface;
29
+ /** Optional chat-runtime mode. When omitted OR set to `'host'`,
30
+ * behavior is byte-equivalent to the legacy logic. Only `'embed'`
31
+ * triggers the new priority-1 branch that forces new-tab. */
32
+ runtimeMode?: RuntimeMode;
33
+ /** Current chat source / platform identifier — caller-threaded.
34
+ * Empty string disables the platform-comparison branch (falls
35
+ * through to the origin-compare fallback). */
36
+ currentSource: string;
37
+ }
38
+ export declare function decideNewTab(input: DecideNewTabInput): boolean;
39
+ //# sourceMappingURL=decide-new-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decide-new-tab.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/decide-new-tab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,eAAe,CAAA;AACvD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sEAAsE;IACtE,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB;;kEAE8D;IAC9D,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB;;mDAE+C;IAC/C,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAc9D"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Unified URL builders for the third-party app deep-links used by chat
3
+ * surfaces (chip clicks, inline-card tracking rows).
4
+ *
5
+ * Lib-side subset of the hub's `lib/utils/external-app-urls.ts`. Today
6
+ * it carries the ClickUp deep-link helper only — HubSpot and admin
7
+ * routes stay hub-side because they're consumed exclusively by
8
+ * hub-internal mappers.
9
+ */
10
+ /** ClickUp task detail page in the ClickUp UI. Returns `null` when the
11
+ * external id is missing so consumers don't end up with a
12
+ * `.../t/undefined` link. */
13
+ export declare function clickupTaskUrl(externalId: string | null | undefined): string | null;
14
+ //# sourceMappingURL=external-app-urls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-app-urls.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/external-app-urls.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;8BAE8B;AAC9B,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAGnF"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * `flattenAssistantContent` — coerce a chat message's `content` field
3
+ * (string OR `MessageSegment[]`) into a plain string for wire transport.
4
+ *
5
+ * Background: useChat populates assistant messages with a structured
6
+ * segment array as the streamed SSE arrives (text segments, approval
7
+ * cards, tool_execution blocks, thinking blocks). The local React
8
+ * state holds `content: MessageSegment[]` for those turns. When the
9
+ * client serializes the conversation back to the server for the NEXT
10
+ * turn, a naive `typeof content === 'string' ? content : ''` strip-
11
+ * to-empty silently drops every post-approve receipt, every Sonnet-
12
+ * streamed answer, and every diagnostic Q — Anthropic receives
13
+ * `assistant: ""` for those turns and has no context to follow.
14
+ *
15
+ * The function:
16
+ * 1. Returns plain strings as-is.
17
+ * 2. For arrays, joins every `text`-typed segment's `text` field
18
+ * with `\n\n` separators. Non-text segments (approval_request,
19
+ * tool_execution, thinking) have no LLM-visible textual content
20
+ * and are intentionally skipped — they shouldn't bloat the
21
+ * request body.
22
+ * 3. Returns `''` for anything else (null, undefined, unknown shape).
23
+ */
24
+ export declare function flattenAssistantContent(raw: unknown): string;
25
+ //# sourceMappingURL=flatten-assistant-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten-assistant-content.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/flatten-assistant-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAW5D"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Icon registry — string `icon_name` → React component.
3
+ *
4
+ * SINGLE SOURCE OF TRUTH (no, really this time) for every icon-name →
5
+ * React-component lookup across the lib + the hub. Two DB columns feed
6
+ * in with DIFFERENT conventions:
7
+ *
8
+ * - `chat_admin_slash_commands.icon_name` — kebab-case (`'rocket'`,
9
+ * `'hubspot'`, `'github'`, `'dollar-sign'`).
10
+ * - `social_platforms.icon_name` — PascalCase component names
11
+ * (`'LinkedInIcon'`, `'XLogo'`, `'YouTubeIcon'`, `'Github'`).
12
+ *
13
+ * The registry stores entries under kebab-case keys (URL/DB-friendly,
14
+ * shell-safe, matches `lucide-react`'s own file-naming convention).
15
+ * The PascalCase variants come in via `normalizeIconKey()`, which maps
16
+ * known PascalCase aliases → kebab-case before the lookup runs.
17
+ *
18
+ * Adding a new icon: import the component below, add a `'name': Component`
19
+ * entry in `ICON_REGISTRY`, and (if the same icon also flows in from a DB
20
+ * column that uses PascalCase) add a `PascalName → 'name'` row to
21
+ * `PASCAL_TO_KEBAB_ALIASES`.
22
+ *
23
+ * Fallback: an unknown / null icon_name resolves to `FileText` so a chip
24
+ * never renders without an icon.
25
+ */
26
+ import { type ComponentType, type ReactNode } from 'react';
27
+ /**
28
+ * Loose icon-component shape: every entry accepts `className`; `color` is
29
+ * optional (lucide + most brand icons accept it; OpenFrameLogo doesn't,
30
+ * but `color` is optional so passing `undefined` is a no-op). Loose enough
31
+ * to accept both lucide's `LucideIcon` and our brand SVG components.
32
+ */
33
+ type IconComponent = ComponentType<{
34
+ className?: string;
35
+ color?: string;
36
+ }>;
37
+ /**
38
+ * The kebab-case registry. ALL lookups go through here; PascalCase
39
+ * aliases route through `normalizeIconKey()` first.
40
+ */
41
+ export declare const ICON_REGISTRY: Record<string, IconComponent>;
42
+ /**
43
+ * Normalize an icon key to the registry's canonical kebab-case form.
44
+ * Accepts PascalCase variants (from `social_platforms.icon_name`-style
45
+ * columns) and passes kebab-case keys through unchanged.
46
+ */
47
+ export declare function normalizeIconKey(key: string): string;
48
+ /**
49
+ * Resolve an `icon_name` to its React component. Accepts both PascalCase
50
+ * and kebab-case keys (normalizes PascalCase first). Unknown / null /
51
+ * undefined names fall back to `FileText` — chips always render with
52
+ * SOMETHING rather than a missing glyph. The fallback is intentional:
53
+ * a typo in a new admin-authored row shouldn't crash render.
54
+ */
55
+ export declare function getIconComponent(iconName: string | null | undefined): ComponentType<{
56
+ className?: string;
57
+ color?: string;
58
+ }>;
59
+ export type DynamicIconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
60
+ /**
61
+ * Render an icon by name with a size preset + optional className.
62
+ * Replaces the old `src/utils/dynamic-icons.tsx#getDynamicIcon`. Accepts
63
+ * both PascalCase and kebab-case keys (via `normalizeIconKey()`).
64
+ */
65
+ export declare function getDynamicIcon(iconName: string | undefined | null, size?: DynamicIconSize, className?: string): ReactNode;
66
+ export {};
67
+ //# sourceMappingURL=icon-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-registry.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/icon-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAgEzE;;;;;GAKG;AACH,KAAK,aAAa,GAAG,aAAa,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE1E;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAwDvD,CAAA;AA2DD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,aAAa,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAGvD;AAMD,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAqB9D;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACnC,IAAI,GAAE,eAAsB,EAC5B,SAAS,CAAC,EAAE,MAAM,GACjB,SAAS,CAsBX"}
@@ -7,4 +7,25 @@ export { MessageSegmentAccumulator, createMessageSegmentAccumulator, type Accumu
7
7
  export { processHistoricalMessages, extractErrorMessages, processHistoricalMessagesWithErrors, } from './process-historical-messages';
8
8
  export { extractIncompleteMessageState, } from './extract-incomplete-message-state';
9
9
  export { getCommandText } from './tool-call-helpers';
10
+ export { CHIP_ACTION_BUTTON_CLASS } from './chip-action-class';
11
+ export { chatChipClass, type ChipClassOptions } from './chip-styles';
12
+ export { NEW_TAB_FEATURES, isModifierClick, stripSameOriginToPath, resolveExternalNavigation, type ExternalNavResolution, } from './chat-nav-resolution';
13
+ export { handleChatNavClick, type ChatNavClickInput, } from './nav-click-handler';
14
+ export { computeIsNewTab, newTabAnchorAttrs, buildAnchorProps, } from './nav-anchor-props';
15
+ export { isCrossOriginUrl } from './is-cross-origin-url';
16
+ export { decideNewTab, type DecideNewTabInput, type NavSurface, type RuntimeMode, } from './decide-new-tab';
17
+ export { getChatProxyAuth, getPersistedProxyEmail, setChatProxyAuth, clearChatProxyAuth, applyProxyAuth, type ChatProxyAuth, } from './chat-proxy-auth-storage';
18
+ export { chatAuthedFetch } from './chat-authed-fetch';
19
+ export { flattenAssistantContent } from './flatten-assistant-content';
20
+ export { SCROLL_ANCHOR, type ScrollAnchor, SCROLL_ANCHOR_WIRE_KEY, parseScrollAnchor, } from './scroll-anchor';
21
+ export { AUTO_CONTINUATION_DIRECTIVE_PREFIX, buildAutoContinuationDirective, type BuildAutoContinuationOptions, } from './auto-continuation-directive';
22
+ export { type WireCommandOverride, parseWireCommandOverride, sanitizeTitleForChat, formatSingularLookupInvocation, type CommandOverride, extractEntityIdFilter, buildDiscussAddendum, } from './slash-dispatch-utils';
23
+ export { CHAT_ATTACHMENT_VIEW_URL_PREFIX, CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM, ANTHROPIC_SUPPORTED_IMAGE_MIME, type ChatAttachment, buildChatAttachmentViewUrl, escapeMarkdownInline, formatChatAttachmentMarkdownForBubble, CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED, CHAT_ATTACHMENT_MARKDOWN_PATTERN, stripChatAttachmentMarkdown, } from './chat-attachment-markdown';
24
+ export { clickupTaskUrl } from './external-app-urls';
25
+ export { type ColorScheme, getStatusColorScheme } from './agent-status-message';
26
+ export { getTaskTypeLabel, CUSTOM_ITEM_ID } from './clickup-task-type-utils';
27
+ export { COMPACT_CARD_OUTER, COMPACT_CARD_OUTER_STATIC, COMPACT_CARD_SKELETON_OUTER, COMPACT_CARD_IMAGE_SLOT, COMPACT_CARD_SKELETON_IMAGE_SLOT, COMPACT_CARD_ICON_SLOT, COMPACT_CARD_TEXT_COL, COMPACT_CARD_TITLE_ROW, COMPACT_CARD_META_ROW_BOX, COMPACT_CARD_TITLE, COMPACT_CARD_SUBTITLE, COMPACT_CARD_SUMMARY, COMPACT_CARD_META_ROW, COMPACT_CARD_ROW_FILLER, safeHref, } from './compact-card-classes';
28
+ export { ICON_REGISTRY, getIconComponent, normalizeIconKey, getDynamicIcon, type DynamicIconSize, } from './icon-registry';
29
+ export { SOURCE_ICON_NAMES, getSourceIconName, SOURCE_LABELS_BY_TABLE, getSourceLabel, DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID, defaultTableIdForDocumentType, } from './source-icons';
30
+ export { type SourceRowInput, type SourceRowContext, type SourceRowCTA, resolveSourceRowCTA, resolveSourceIcon, } from './source-row-cta';
10
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,mCAAmC,GACpC,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EACL,6BAA6B,GAC9B,MAAM,oCAAoC,CAAA;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,mCAAmC,GACpC,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EACL,6BAA6B,GAC9B,MAAM,oCAAoC,CAAA;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACpE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EACL,aAAa,EACb,KAAK,YAAY,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,kCAAkC,EAClC,8BAA8B,EAC9B,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EACL,KAAK,mBAAmB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,EAC9B,KAAK,eAAe,EACpB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EACL,+BAA+B,EAC/B,sCAAsC,EACtC,8BAA8B,EAC9B,KAAK,cAAc,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,qCAAqC,EACrC,6CAA6C,EAC7C,gCAAgC,EAChC,2BAA2B,GAC5B,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAE,KAAK,WAAW,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAG/E,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG5E,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,gCAAgC,EAChC,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,GACT,MAAM,wBAAwB,CAAA;AAO/B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Pure utility — true iff `url` has an explicit host (i.e. would resolve
3
+ * to a different origin than where the consumer is running). Used by
4
+ * chat nav decisions and the extracted `decideNewTab` helper.
5
+ *
6
+ * SSR-deterministic: any URL with an explicit host (http://, https://,
7
+ * or protocol-relative //) is treated as cross-origin. By convention
8
+ * same-origin same-app navigation uses RELATIVE paths; an absolute URL
9
+ * with a host is external.
10
+ *
11
+ * Why deterministic: an earlier `window`-dependent implementation
12
+ * returned different values during SSR (false — no window) vs client
13
+ * hydration (true — origin differs), causing React hydration mismatches
14
+ * on every anchor that fell into the no-targetPlatform fallback (e.g.
15
+ * footer "Support" links to flamingo.run/support). Same-platform
16
+ * absolute URLs (rare — they only happen when a composer like
17
+ * `buildContentURL` returns an absolute URL for a non-current platform)
18
+ * flow through `decideNewTab`'s PLATFORM branch first (which uses
19
+ * `targetPlatform !== currentSource`) and never reach this fallback.
20
+ */
21
+ export declare function isCrossOriginUrl(url: string | null | undefined): boolean;
22
+ //# sourceMappingURL=is-cross-origin-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-cross-origin-url.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/is-cross-origin-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOxE"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Pure helpers for the new-tab decision + anchor attribute pair used
3
+ * by chat-rendered links.
4
+ *
5
+ * After the navigation unification (ChatCardLoader pre-resolves
6
+ * `chatRef.url` via `resolveSourceRowCTA` + `resolveHrefForRuntime`,
7
+ * and `ChatCardNavWrap` handles every primary click via `onClickCapture`
8
+ * → `handleChatNavClick`), the per-card wrapper only needs
9
+ * `{href, target, rel}` on its inner `<a>` so modifier-click /
10
+ * hover-preview / copy-link work natively.
11
+ *
12
+ * `computeIsNewTab` is the SINGLE source of the new-tab rule across
13
+ * inline cards, source chips, and `NavLinkAnchorViaRuntime`. Do NOT
14
+ * inline the `runtime.navigation.mode === 'embed'` short-circuit + the
15
+ * `decideNewTab` fallback chain anywhere else.
16
+ *
17
+ * Rules:
18
+ * - `embed` mode → ALWAYS new-tab. The chat lives on the embedder
19
+ * origin; content lives on the hub. Same-tab nav would leave the
20
+ * embedder entirely.
21
+ * - `host` mode → defer to the runtime's `decideNewTab` callback
22
+ * (cross-platform → new-tab) or the lib's default.
23
+ */
24
+ import type { ChatRuntime } from '../../../contexts/chat-runtime-context';
25
+ export declare function computeIsNewTab(runtime: ChatRuntime, href: string | null | undefined, targetPlatform: string | null): boolean;
26
+ /**
27
+ * Returns the `target` + `rel` attribute pair for an inner `<a>` based
28
+ * on the new-tab decision. Spread directly into JSX:
29
+ * <a href={href} {...newTabAnchorAttrs(isNewTab)} />
30
+ *
31
+ * Single helper so chat anchors stay consistent — new-tab links always
32
+ * pair `_blank` with `noopener noreferrer` (defense against window.opener
33
+ * tab-nabbing) and same-tab links don't render either attribute.
34
+ */
35
+ export declare function newTabAnchorAttrs(isNewTab: boolean): {
36
+ target?: '_blank';
37
+ rel?: 'noopener noreferrer';
38
+ };
39
+ /**
40
+ * Combine `href` + new-tab attrs into a card's `anchorProps` slot.
41
+ * Returns `undefined` (not a falsy object) when there's no URL, so card
42
+ * components can branch on `anchorProps != null` to render either a
43
+ * clickable `<a>` or a static `<span>`.
44
+ *
45
+ * Replaces the repeated inline
46
+ * `chatRef.url ? { href: chatRef.url, ...newTabAnchorAttrs(isNewTab) } : undefined`
47
+ * pattern across the 7 dispatcher wrappers.
48
+ */
49
+ export declare function buildAnchorProps(href: string | null | undefined, isNewTab: boolean): {
50
+ href: string;
51
+ target?: '_blank';
52
+ rel?: 'noopener noreferrer';
53
+ } | undefined;
54
+ //# sourceMappingURL=nav-anchor-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-anchor-props.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/nav-anchor-props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAGzE,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAWT;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG;IACpD,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;CAC5B,CAIA;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,QAAQ,EAAE,OAAO,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,qBAAqB,CAAA;CAAE,GAAG,SAAS,CAE9E"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Pure click-handler helper for chat-rendered nav links.
3
+ *
4
+ * Single click router shared by:
5
+ * - The chip block inside EmbeddableChat
6
+ * - `<ChatCardNavWrap>` inside the entity-card dispatcher
7
+ * - `<NavLinkAnchorViaRuntime>` (markdown-body anchor wrapper)
8
+ *
9
+ * Returns `true` when the handler took action (called preventDefault); the
10
+ * caller can treat that as "I handled it" and skip any further routing.
11
+ * Returns `false` for modifier-clicks / non-primary buttons — those pass
12
+ * through to the browser's default behavior (open in new tab, etc.).
13
+ *
14
+ * The new-tab decision (`computeIsNewTab` — embed-mode short-circuit +
15
+ * `runtime.navigation.decideNewTab` + lib fallback) is the single source
16
+ * of truth and is consumed here directly. No caller needs to duplicate
17
+ * the embed-vs-host logic.
18
+ *
19
+ * Routing rules:
20
+ * - Empty href → preventDefault + return true (no-op nav)
21
+ * - Non-primary mouse button OR any modifier key → return false (let
22
+ * the browser handle it; `<a>` semantics take over)
23
+ * - new-tab (`computeIsNewTab` true) → `runtime.navigation.openExternal`
24
+ * or `window.open(href, '_blank')`. Covers embed mode and
25
+ * cross-platform host mode uniformly.
26
+ * - same-tab → `runtime.navigation.navigate?.(…)` → fallback
27
+ * `window.location.assign(stripSameOriginToPath(href))`
28
+ */
29
+ import type { ChatRuntime } from '../../../contexts/chat-runtime-context';
30
+ export interface ChatNavClickInput {
31
+ href: string;
32
+ path?: string | null;
33
+ targetPlatform?: string | null;
34
+ }
35
+ /**
36
+ * Minimal mouse-event surface the click handler needs. Accepting a
37
+ * structural type rather than `React.MouseEvent<HTMLAnchorElement>` keeps
38
+ * the helper callable from non-anchor surfaces (chip buttons, tile
39
+ * containers) without forcing a cast.
40
+ */
41
+ interface NavClickEvent {
42
+ preventDefault(): void;
43
+ button?: number;
44
+ metaKey?: boolean;
45
+ ctrlKey?: boolean;
46
+ shiftKey?: boolean;
47
+ altKey?: boolean;
48
+ }
49
+ export declare function handleChatNavClick(e: NavClickEvent, runtime: ChatRuntime, { href, path, targetPlatform }: ChatNavClickInput): boolean;
50
+ export {};
51
+ //# sourceMappingURL=nav-click-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-click-handler.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/nav-click-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAEzE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAED;;;;;GAKG;AACH,UAAU,aAAa;IACrB,cAAc,IAAI,IAAI,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,aAAa,EAChB,OAAO,EAAE,WAAW,EACpB,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,iBAAiB,GAChD,OAAO,CAsBT"}