@brainfish-ai/components 0.35.20 → 0.36.1

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 (872) hide show
  1. package/dist/colors/blue.d.ts +13 -0
  2. package/dist/colors/dark.d.ts +15 -0
  3. package/dist/colors/green.d.ts +13 -0
  4. package/dist/{colors.d.ts → colors/index.d.ts} +159 -161
  5. package/dist/colors/lime.d.ts +13 -0
  6. package/dist/colors/magenta.d.ts +13 -0
  7. package/dist/colors/orange.d.ts +13 -0
  8. package/dist/colors/pink.d.ts +13 -0
  9. package/dist/colors/primary.d.ts +14 -0
  10. package/dist/colors/purple.d.ts +13 -0
  11. package/dist/colors/red.d.ts +13 -0
  12. package/dist/colors/teal.d.ts +13 -0
  13. package/dist/colors/yellow.d.ts +13 -0
  14. package/dist/components/ai-button/ai-badge.d.ts +6 -0
  15. package/dist/components/ai-button/ai-button.d.ts +5 -0
  16. package/dist/components/ai-button/index.d.ts +2 -0
  17. package/dist/components/article-suggestions-banner/article-suggestions-banner.d.ts +12 -0
  18. package/dist/components/article-suggestions-banner/index.d.ts +1 -0
  19. package/dist/components/articles-coverage/articles-coverage.d.ts +14 -0
  20. package/dist/components/articles-coverage/index.d.ts +1 -0
  21. package/dist/components/articles-updated/articles-updated.d.ts +14 -0
  22. package/dist/components/articles-updated/index.d.ts +1 -0
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +22 -0
  24. package/dist/components/breadcrumbs/index.d.ts +1 -0
  25. package/dist/components/chart-area-linear/chart-area-linear.d.ts +18 -0
  26. package/dist/components/chart-area-linear/index.d.ts +1 -0
  27. package/dist/components/chart-radial-stacked/chart-radial-stacked.d.ts +12 -0
  28. package/dist/components/chart-radial-stacked/index.d.ts +1 -0
  29. package/dist/components/chat-search/ActiveConversations.d.ts +14 -0
  30. package/dist/components/chat-search/Answer.d.ts +36 -0
  31. package/dist/components/chat-search/AnswerActions.d.ts +14 -0
  32. package/dist/components/chat-search/AnswerBlock.d.ts +8 -0
  33. package/dist/components/chat-search/AnswerLoadingStatus.d.ts +6 -0
  34. package/dist/components/chat-search/AttachmentThumbnails.d.ts +36 -0
  35. package/dist/components/chat-search/ChatSearch.d.ts +12 -0
  36. package/dist/components/chat-search/ChatSearchContext.d.ts +37 -0
  37. package/dist/components/chat-search/FollowUpQuestions.d.ts +7 -0
  38. package/dist/components/chat-search/FollowUpSearchBar.d.ts +17 -0
  39. package/dist/components/chat-search/Header.d.ts +15 -0
  40. package/dist/components/chat-search/HistoryPage.d.ts +20 -0
  41. package/dist/components/chat-search/IncludePageToggle.d.ts +9 -0
  42. package/dist/components/chat-search/KnowledgeGroupSelector.d.ts +8 -0
  43. package/dist/components/chat-search/LoadingConversation.d.ts +2 -0
  44. package/dist/components/chat-search/LoadingSkeleton.d.ts +6 -0
  45. package/dist/components/chat-search/NextBestActions.d.ts +8 -0
  46. package/dist/components/chat-search/PrimarySearch.d.ts +38 -0
  47. package/dist/components/chat-search/ResolvedConversationFooter.d.ts +7 -0
  48. package/dist/components/chat-search/Suggestions.d.ts +9 -0
  49. package/dist/components/chat-search/TimelineNavigation.d.ts +9 -0
  50. package/dist/components/chat-search/ToastContainer.d.ts +6 -0
  51. package/dist/components/chat-search/blocks/ActionButtons.d.ts +5 -0
  52. package/dist/components/chat-search/blocks/ActionInputForm.d.ts +20 -0
  53. package/dist/components/chat-search/blocks/MarkdownText.d.ts +8 -0
  54. package/dist/components/chat-search/blocks/utils.d.ts +16 -0
  55. package/dist/components/chat-search/helpers/buildConversationContext.d.ts +2 -0
  56. package/dist/components/chat-search/helpers/cancelStreamReader.d.ts +7 -0
  57. package/dist/components/chat-search/helpers/excuteClientAction.d.ts +9 -0
  58. package/dist/components/chat-search/helpers/initialAiMessage.d.ts +2 -0
  59. package/dist/components/chat-search/helpers/nextBestActions.d.ts +7 -0
  60. package/dist/components/chat-search/helpers/preChatFormForWidget.d.ts +6 -0
  61. package/dist/components/chat-search/hooks/index.d.ts +10 -0
  62. package/dist/components/chat-search/hooks/useAccessibleColor.d.ts +1 -0
  63. package/dist/components/chat-search/hooks/useAnswerList.d.ts +253 -0
  64. package/dist/components/chat-search/hooks/useConversationHistory.d.ts +32 -0
  65. package/dist/components/chat-search/hooks/useConversationId.d.ts +5 -0
  66. package/dist/components/chat-search/hooks/useConversationLoader.d.ts +19 -0
  67. package/dist/components/chat-search/hooks/useDarkMode.d.ts +1 -0
  68. package/dist/components/chat-search/hooks/useFileAttachment.d.ts +20 -0
  69. package/dist/components/chat-search/hooks/useIncludePage.d.ts +20 -0
  70. package/dist/components/chat-search/hooks/useIsChatSearchDirty.d.ts +1 -0
  71. package/dist/components/chat-search/hooks/useScrollManager.d.ts +6 -0
  72. package/dist/components/chat-search/hooks/useSubscriptionManager.d.ts +4 -0
  73. package/dist/components/chat-search/hooks/useToast.d.ts +9 -0
  74. package/dist/components/chat-search/hooks/useUrlManager.d.ts +8 -0
  75. package/dist/components/chat-search/index.d.ts +7 -0
  76. package/dist/components/chat-search/text-config.d.ts +3 -0
  77. package/dist/components/chat-search/theme.d.ts +0 -0
  78. package/dist/components/chat-search/types/messages.d.ts +21 -0
  79. package/dist/components/chat-search/types.d.ts +388 -0
  80. package/dist/{combobox.d.ts → components/combobox/combobox.d.ts} +43 -49
  81. package/dist/components/combobox/index.d.ts +1 -0
  82. package/dist/components/confirm-dialog/confirm-dialog.d.ts +21 -0
  83. package/dist/components/confirm-dialog/index.d.ts +1 -0
  84. package/dist/components/conversation/AttachmentPreviews.d.ts +14 -0
  85. package/dist/components/conversation/ContextPillBadge.d.ts +8 -0
  86. package/dist/components/conversation/Conversation.d.ts +45 -0
  87. package/dist/components/conversation/ConversationActions.d.ts +11 -0
  88. package/dist/components/conversation/ConversationContext.d.ts +17 -0
  89. package/dist/components/conversation/ConversationHeader.d.ts +12 -0
  90. package/dist/components/conversation/ConversationInput.d.ts +16 -0
  91. package/dist/components/conversation/ConversationMessage.d.ts +8 -0
  92. package/dist/components/conversation/ConversationMessageAssistant.d.ts +11 -0
  93. package/dist/components/conversation/ConversationMessageUser.d.ts +11 -0
  94. package/dist/components/conversation/ConversationMessages.d.ts +11 -0
  95. package/dist/components/conversation/ConversationStatus.d.ts +11 -0
  96. package/dist/components/conversation/ConversationSuggestions.d.ts +10 -0
  97. package/dist/components/conversation/attachmentUtils.d.ts +2 -0
  98. package/dist/components/conversation/blocks/CitationBlock.d.ts +8 -0
  99. package/dist/components/conversation/blocks/TextBlock.d.ts +8 -0
  100. package/dist/components/conversation/blocks/index.d.ts +10 -0
  101. package/dist/components/conversation/index.d.ts +13 -0
  102. package/dist/components/conversation/mocks.d.ts +14 -0
  103. package/dist/components/conversation/status.d.ts +15 -0
  104. package/dist/components/conversation/types.d.ts +149 -0
  105. package/dist/components/conversation/welcome.d.ts +11 -0
  106. package/dist/components/convos/answer-diagnostics.d.ts +21 -0
  107. package/dist/components/convos/attributes-dialog.d.ts +7 -0
  108. package/dist/components/convos/confidence-badge.d.ts +6 -0
  109. package/dist/components/convos/convo.d.ts +29 -0
  110. package/dist/components/convos/convos.d.ts +39 -0
  111. package/dist/components/convos/discard-form.d.ts +31 -0
  112. package/dist/components/convos/empty-convos.d.ts +4 -0
  113. package/dist/components/convos/feedback-dialog.d.ts +14 -0
  114. package/dist/components/convos/index.d.ts +5 -0
  115. package/dist/components/convos/message.d.ts +79 -0
  116. package/dist/components/convos/mocks.d.ts +43 -0
  117. package/dist/components/convos/status-badge.d.ts +8 -0
  118. package/dist/components/convos/stream-badge.d.ts +5 -0
  119. package/dist/components/data-table/data-table.d.ts +17 -0
  120. package/dist/components/data-table/index.d.ts +2 -0
  121. package/dist/{date-picker.d.ts → components/date-picker/date-picker.d.ts} +9 -12
  122. package/dist/components/date-picker/index.d.ts +1 -0
  123. package/dist/components/discoveries-created/discoveries-created.d.ts +22 -0
  124. package/dist/components/discoveries-created/index.d.ts +1 -0
  125. package/dist/components/editable-label/editable-label.d.ts +6 -0
  126. package/dist/components/editable-label/index.d.ts +1 -0
  127. package/dist/components/feedback/feedback-reason.d.ts +10 -0
  128. package/dist/{feedback.d.ts → components/feedback/feedback.d.ts} +17 -21
  129. package/dist/components/feedback/index.d.ts +1 -0
  130. package/dist/components/file-upload/file-upload-status.d.ts +17 -0
  131. package/dist/components/file-upload/file-upload.d.ts +4 -0
  132. package/dist/components/file-upload/index.d.ts +4 -0
  133. package/dist/components/file-upload/types.d.ts +18 -0
  134. package/dist/components/file-upload/utils.d.ts +1 -0
  135. package/dist/components/filter/components/CustomValueInput.d.ts +11 -0
  136. package/dist/components/filter/components/MultiSelectDropdown.d.ts +10 -0
  137. package/dist/components/filter/components/SingleSelectDropdown.d.ts +9 -0
  138. package/dist/components/filter/filter.d.ts +6 -0
  139. package/dist/components/filter/filters.d.ts +12 -0
  140. package/dist/components/filter/hooks.d.ts +9 -0
  141. package/dist/components/filter/index.d.ts +3 -0
  142. package/dist/{filter.d.ts → components/filter/types.d.ts} +59 -82
  143. package/dist/components/font-picker/font-picker-item.d.ts +13 -0
  144. package/dist/components/font-picker/font-picker.d.ts +44 -0
  145. package/dist/components/font-picker/font-utils.d.ts +18 -0
  146. package/dist/components/font-picker/index.d.ts +5 -0
  147. package/dist/components/font-picker/types.d.ts +6 -0
  148. package/dist/components/font-picker/use-font-options.d.ts +17 -0
  149. package/dist/components/generating-star/generating-star.d.ts +10 -0
  150. package/dist/components/generating-star/index.d.ts +1 -0
  151. package/dist/components/input-with-tags/index.d.ts +1 -0
  152. package/dist/{input-with-tags.d.ts → components/input-with-tags/input-with-tags.d.ts} +26 -31
  153. package/dist/components/logo/ai-logo.d.ts +12 -0
  154. package/dist/components/logo/chat-logo.d.ts +8 -0
  155. package/dist/components/logo/index.d.ts +3 -0
  156. package/dist/components/logo/logo.d.ts +8 -0
  157. package/dist/components/love/index.d.ts +1 -0
  158. package/dist/components/love/love.d.ts +7 -0
  159. package/dist/components/markdown/CodeBlock.d.ts +7 -0
  160. package/dist/components/markdown/FormattedMessage.d.ts +14 -0
  161. package/dist/components/markdown/Frame.d.ts +10 -0
  162. package/dist/components/markdown/MemoizedReactMarkdown.d.ts +6 -0
  163. package/dist/components/markdown/MermaidDiagram.d.ts +6 -0
  164. package/dist/components/markdown/SmartImage.d.ts +5 -0
  165. package/dist/components/markdown/ZoomableImage.d.ts +7 -0
  166. package/dist/components/markdown/embeds/Loom.d.ts +7 -0
  167. package/dist/components/markdown/embeds/NativeVideo.d.ts +6 -0
  168. package/dist/components/markdown/embeds/Supademo.d.ts +7 -0
  169. package/dist/components/markdown/embeds/Typeform.d.ts +7 -0
  170. package/dist/components/markdown/embeds/VideoTimeline.d.ts +9 -0
  171. package/dist/components/markdown/embeds/Vimeo.d.ts +7 -0
  172. package/dist/components/markdown/embeds/Wistia.d.ts +7 -0
  173. package/dist/components/markdown/embeds/Youtube.d.ts +7 -0
  174. package/dist/components/markdown/embeds/index.d.ts +9 -0
  175. package/dist/components/markdown/index.d.ts +6 -0
  176. package/dist/components/markdown/utils/codeblock.d.ts +6 -0
  177. package/dist/components/markdown/utils/stripNewLines.d.ts +1 -0
  178. package/dist/components/markdown/utils/urls.d.ts +6 -0
  179. package/dist/components/metric-card/index.d.ts +1 -0
  180. package/dist/components/metric-card/metric-card.d.ts +11 -0
  181. package/dist/components/metric-card-group/index.d.ts +1 -0
  182. package/dist/components/metric-card-group/metric-card-group.d.ts +6 -0
  183. package/dist/components/plan-usage-card/index.d.ts +1 -0
  184. package/dist/{plan-usage-card.d.ts → components/plan-usage-card/plan-usage-card.d.ts} +10 -15
  185. package/dist/components/rich-text-input/LexicalEditor.d.ts +7 -0
  186. package/dist/components/rich-text-input/RichTextInput.d.ts +31 -0
  187. package/dist/components/rich-text-input/index.d.ts +2 -0
  188. package/dist/components/select/index.d.ts +1 -0
  189. package/dist/{select.d.ts → components/select/simpleSelect.d.ts} +15 -20
  190. package/dist/components/trend-value/index.d.ts +1 -0
  191. package/dist/components/trend-value/trend-value.d.ts +14 -0
  192. package/dist/components/two-level-combobox/index.d.ts +1 -0
  193. package/dist/{two-level-combobox.d.ts → components/two-level-combobox/two-level-combobox.d.ts} +15 -26
  194. package/dist/components/ui/accordion.d.ts +7 -2
  195. package/dist/components/ui/alert-dialog.d.ts +37 -2
  196. package/dist/components/ui/alert.d.ts +11 -2
  197. package/dist/components/ui/avatar.d.ts +11 -2
  198. package/dist/components/ui/badge.d.ts +9 -2
  199. package/dist/components/ui/breadcrumb.d.ts +19 -2
  200. package/dist/components/ui/button-group.d.ts +13 -2
  201. package/dist/components/ui/button.d.ts +13 -2
  202. package/dist/components/ui/calendar.d.ts +8 -2
  203. package/dist/components/ui/card.d.ts +8 -2
  204. package/dist/components/ui/chart.d.ts +62 -0
  205. package/dist/components/ui/collapsible.d.ts +6 -2
  206. package/dist/components/ui/combobox.d.ts +2 -2
  207. package/dist/components/ui/command.d.ts +80 -2
  208. package/dist/components/ui/dialog.d.ts +19 -2
  209. package/dist/components/ui/div-button.d.ts +11 -2
  210. package/dist/components/ui/dropdown-menu.d.ts +31 -2
  211. package/dist/components/ui/hover-card.d.ts +6 -2
  212. package/dist/components/ui/icon.d.ts +8 -2
  213. package/dist/components/ui/input.d.ts +10 -2
  214. package/dist/components/ui/item.d.ts +23 -2
  215. package/dist/components/ui/label.d.ts +5 -2
  216. package/dist/components/ui/popover.d.ts +13 -2
  217. package/dist/components/ui/progress.d.ts +6 -2
  218. package/dist/components/ui/radio-group.d.ts +5 -2
  219. package/dist/components/ui/resizable.d.ts +8 -2
  220. package/dist/components/ui/ripple-status.d.ts +14 -0
  221. package/dist/components/ui/ripple.d.ts +5 -0
  222. package/dist/components/ui/scroll-area.d.ts +5 -2
  223. package/dist/components/ui/select.d.ts +13 -2
  224. package/dist/components/ui/separator.d.ts +4 -2
  225. package/dist/components/ui/sheet.d.ts +25 -2
  226. package/dist/components/ui/spinner.d.ts +3 -2
  227. package/dist/components/ui/sweep-text.d.ts +14 -0
  228. package/dist/components/ui/switch.d.ts +4 -2
  229. package/dist/components/ui/table.d.ts +10 -2
  230. package/dist/components/ui/tabs.d.ts +7 -2
  231. package/dist/components/ui/textarea.d.ts +6 -2
  232. package/dist/components/ui/tooltip.d.ts +10 -2
  233. package/dist/components/ui/types.d.ts +1 -0
  234. package/dist/components/usage-indicator-pill/index.d.ts +1 -0
  235. package/dist/components/usage-indicator-pill/usage-indicator-pill.d.ts +23 -0
  236. package/dist/env.d.ts +5 -0
  237. package/dist/esm/colors/blue.js +16 -0
  238. package/dist/esm/colors/dark.js +17 -0
  239. package/dist/esm/colors/green.js +16 -0
  240. package/dist/esm/colors/lime.js +16 -0
  241. package/dist/esm/colors/magenta.js +16 -0
  242. package/dist/esm/colors/orange.js +16 -0
  243. package/dist/esm/colors/pink.js +16 -0
  244. package/dist/esm/colors/primary.js +17 -0
  245. package/dist/esm/colors/purple.js +16 -0
  246. package/dist/esm/colors/red.js +16 -0
  247. package/dist/esm/colors/teal.js +16 -0
  248. package/dist/esm/colors/yellow.js +16 -0
  249. package/dist/esm/colors.js +29 -2
  250. package/dist/esm/components/ai-button/ai-badge.js +44 -0
  251. package/dist/esm/components/article-suggestions-banner/article-suggestions-banner.js +49 -0
  252. package/dist/esm/components/article-suggestions-banner.js +1 -5
  253. package/dist/esm/components/articles-coverage/articles-coverage.js +116 -0
  254. package/dist/esm/components/articles-coverage.js +1 -5
  255. package/dist/esm/components/articles-updated/articles-updated.js +74 -0
  256. package/dist/esm/components/articles-updated.js +1 -5
  257. package/dist/esm/components/breadcrumbs/breadcrumbs.js +13 -0
  258. package/dist/esm/components/breadcrumbs.js +1 -4
  259. package/dist/esm/components/chart-area-linear/chart-area-linear.js +66 -0
  260. package/dist/esm/components/chart-area-linear.js +1 -7
  261. package/dist/esm/components/chart-radial-stacked/chart-radial-stacked.js +48 -0
  262. package/dist/esm/components/chart-radial-stacked.js +1 -3
  263. package/dist/esm/components/chat-search/ActiveConversations.js +16 -0
  264. package/dist/esm/components/chat-search/Answer.js +175 -0
  265. package/dist/esm/components/chat-search/AnswerActions.js +64 -0
  266. package/dist/esm/components/chat-search/AnswerBlock.js +19 -0
  267. package/dist/esm/components/chat-search/AnswerLoadingStatus.js +8 -0
  268. package/dist/esm/components/chat-search/AttachmentThumbnails.js +45 -0
  269. package/dist/esm/components/chat-search/ChatSearch.js +1175 -0
  270. package/dist/esm/components/chat-search/ChatSearchContext.js +73 -0
  271. package/dist/esm/components/chat-search/FollowUpQuestions.js +39 -0
  272. package/dist/esm/components/chat-search/FollowUpSearchBar.js +189 -0
  273. package/dist/esm/components/chat-search/FollowUpSearchBar.module.css +4 -0
  274. package/dist/esm/components/chat-search/FollowUpSearchBar.module.css.js +6 -0
  275. package/dist/esm/components/chat-search/Header.js +104 -0
  276. package/dist/esm/components/chat-search/HistoryPage.js +82 -0
  277. package/dist/esm/components/chat-search/IncludePageToggle.js +8 -0
  278. package/dist/esm/components/chat-search/KnowledgeGroupSelector.js +23 -0
  279. package/dist/esm/components/chat-search/LoadingConversation.js +19 -0
  280. package/dist/esm/components/chat-search/NextBestActions.js +210 -0
  281. package/dist/esm/components/chat-search/PrimarySearch.js +415 -0
  282. package/dist/esm/components/chat-search/ResolvedConversationFooter.js +28 -0
  283. package/dist/esm/components/chat-search/Suggestions.js +20 -0
  284. package/dist/esm/components/chat-search/TimelineNavigation.js +113 -0
  285. package/dist/esm/components/chat-search/ToastContainer.js +29 -0
  286. package/dist/esm/components/chat-search/blocks/ActionButtons.js +5 -0
  287. package/dist/esm/components/chat-search/blocks/ActionInputForm.js +154 -0
  288. package/dist/esm/components/chat-search/blocks/MarkdownText.js +24 -0
  289. package/dist/esm/components/chat-search/blocks/utils.js +36 -0
  290. package/dist/esm/components/chat-search/helpers/buildConversationContext.js +11 -0
  291. package/dist/esm/components/chat-search/helpers/cancelStreamReader.js +21 -0
  292. package/dist/esm/components/chat-search/helpers/excuteClientAction.js +32 -0
  293. package/dist/esm/components/chat-search/helpers/initialAiMessage.js +4 -0
  294. package/dist/esm/components/chat-search/helpers/nextBestActions.js +97 -0
  295. package/dist/esm/components/chat-search/helpers/preChatFormForWidget.js +20 -0
  296. package/dist/esm/components/chat-search/hooks/useAccessibleColor.js +23 -0
  297. package/dist/esm/components/chat-search/hooks/useAnswerList.js +366 -0
  298. package/dist/esm/components/chat-search/hooks/useConversationHistory.js +128 -0
  299. package/dist/esm/components/chat-search/hooks/useConversationId.js +41 -0
  300. package/dist/esm/components/chat-search/hooks/useConversationLoader.js +99 -0
  301. package/dist/esm/components/chat-search/hooks/useDarkMode.js +18 -0
  302. package/dist/esm/components/chat-search/hooks/useFileAttachment.js +105 -0
  303. package/dist/esm/components/chat-search/hooks/useIncludePage.js +133 -0
  304. package/dist/esm/components/chat-search/hooks/useIsChatSearchDirty.js +9 -0
  305. package/dist/esm/components/chat-search/hooks/useScrollManager.js +36 -0
  306. package/dist/esm/components/chat-search/hooks/useSubscriptionManager.js +31 -0
  307. package/dist/esm/components/chat-search/hooks/useToast.js +22 -0
  308. package/dist/esm/components/chat-search/text-config.js +29 -0
  309. package/dist/esm/components/chat-search/types.js +40 -0
  310. package/dist/esm/components/chat-search.js +5 -2
  311. package/dist/esm/components/combobox/combobox.js +94 -0
  312. package/dist/esm/components/combobox.js +1 -2
  313. package/dist/esm/components/confirm-dialog/confirm-dialog.js +46 -0
  314. package/dist/esm/components/confirm-dialog.js +1 -3
  315. package/dist/esm/components/conversation/AttachmentPreviews.js +86 -0
  316. package/dist/esm/components/conversation/ContextPillBadge.js +35 -0
  317. package/dist/esm/components/conversation/Conversation.js +106 -0
  318. package/dist/esm/components/conversation/ConversationActions.js +20 -0
  319. package/dist/esm/components/conversation/ConversationContext.js +49 -0
  320. package/dist/esm/components/conversation/ConversationHeader.js +49 -0
  321. package/dist/esm/components/conversation/ConversationInput.js +350 -0
  322. package/dist/esm/components/conversation/ConversationMessage.js +16 -0
  323. package/dist/esm/components/conversation/ConversationMessageAssistant.js +53 -0
  324. package/dist/esm/components/conversation/ConversationMessageUser.js +46 -0
  325. package/dist/esm/components/conversation/ConversationMessages.js +50 -0
  326. package/dist/esm/components/conversation/ConversationStatus.js +13 -0
  327. package/dist/esm/components/conversation/ConversationSuggestions.js +21 -0
  328. package/dist/esm/components/conversation/attachmentUtils.js +9 -0
  329. package/dist/esm/components/conversation/blocks/CitationBlock.js +21 -0
  330. package/dist/esm/components/conversation/blocks/TextBlock.js +8 -0
  331. package/dist/esm/components/conversation/blocks/index.js +12 -0
  332. package/dist/esm/components/conversation/status.js +34 -0
  333. package/dist/esm/components/conversation/welcome.js +50 -0
  334. package/dist/esm/components/conversation.js +11 -2
  335. package/dist/esm/components/convos/answer-diagnostics.js +17 -0
  336. package/dist/esm/components/convos/attributes-dialog.css +51 -0
  337. package/dist/esm/components/convos/attributes-dialog.js +70 -0
  338. package/dist/esm/components/convos/confidence-badge.js +17 -0
  339. package/dist/esm/components/convos/convo.js +142 -0
  340. package/dist/esm/components/convos/convos.js +85 -0
  341. package/dist/esm/components/convos/discard-form.js +187 -0
  342. package/dist/esm/components/convos/empty-convos.js +8 -0
  343. package/dist/esm/components/convos/feedback-dialog.js +61 -0
  344. package/dist/esm/components/convos/message.css +258 -0
  345. package/dist/esm/components/convos/message.js +113 -0
  346. package/dist/esm/components/convos/status-badge.js +45 -0
  347. package/dist/esm/components/convos/stream-badge.js +33 -0
  348. package/dist/esm/components/convos.js +5 -29
  349. package/dist/esm/components/data-table/data-table.js +101 -0
  350. package/dist/esm/components/data-table.js +1 -2
  351. package/dist/esm/components/date-picker/date-picker.js +26 -0
  352. package/dist/esm/components/date-picker.js +1 -2
  353. package/dist/esm/components/discoveries-created/discoveries-created.js +64 -0
  354. package/dist/esm/components/discoveries-created.js +1 -5
  355. package/dist/esm/components/editable-label/editable-label.js +73 -0
  356. package/dist/esm/components/editable-label.js +1 -3
  357. package/dist/esm/components/feedback/feedback-reason.js +81 -0
  358. package/dist/esm/components/feedback/feedback.js +90 -0
  359. package/dist/esm/components/feedback.js +1 -2
  360. package/dist/esm/components/file-upload/file-upload-status.js +78 -0
  361. package/dist/esm/components/file-upload/file-upload.js +62 -0
  362. package/dist/esm/components/file-upload/utils.js +9 -0
  363. package/dist/esm/components/file-upload.js +3 -2
  364. package/dist/esm/components/filter/components/CustomValueInput.js +49 -0
  365. package/dist/esm/components/filter/components/MultiSelectDropdown.js +111 -0
  366. package/dist/esm/components/filter/components/SingleSelectDropdown.js +50 -0
  367. package/dist/esm/components/filter/filter.js +260 -0
  368. package/dist/esm/components/filter/filters.js +85 -0
  369. package/dist/esm/components/filter/hooks.js +28 -0
  370. package/dist/esm/components/filter/types.js +10 -0
  371. package/dist/esm/components/filter.js +3 -2
  372. package/dist/esm/components/font-picker/font-picker-item.js +47 -0
  373. package/dist/esm/components/font-picker/font-picker.js +54 -0
  374. package/dist/esm/components/font-picker/font-utils.js +45 -0
  375. package/dist/esm/components/font-picker/use-font-options.js +46 -0
  376. package/dist/esm/components/font-picker.js +4 -2
  377. package/dist/esm/components/generating-star/generating-star.js +85 -0
  378. package/dist/esm/components/generating-star.js +1 -2
  379. package/dist/esm/components/input-with-tags/input-with-tags.js +109 -0
  380. package/dist/esm/components/input-with-tags.js +1 -2
  381. package/dist/esm/components/logo/ai-logo.js +46 -0
  382. package/dist/esm/components/logo/chat-logo.js +32 -0
  383. package/dist/esm/components/logo/logo.js +191 -0
  384. package/dist/esm/components/logo.js +3 -2
  385. package/dist/esm/components/love/love.js +55 -0
  386. package/dist/esm/components/markdown/CodeBlock.js +76 -0
  387. package/dist/esm/components/markdown/FormattedMessage.js +227 -0
  388. package/dist/esm/components/markdown/Frame.js +46 -0
  389. package/dist/esm/components/markdown/MemoizedReactMarkdown.js +9 -0
  390. package/dist/esm/components/markdown/MermaidDiagram.js +49 -0
  391. package/dist/esm/components/markdown/SmartImage.js +25 -0
  392. package/dist/esm/components/markdown/ZoomableImage.js +96 -0
  393. package/dist/esm/components/markdown/embeds/Loom.js +13 -0
  394. package/dist/esm/components/markdown/embeds/NativeVideo.js +85 -0
  395. package/dist/esm/components/markdown/embeds/Supademo.js +12 -0
  396. package/dist/esm/components/markdown/embeds/Typeform.js +12 -0
  397. package/dist/esm/components/markdown/embeds/VideoTimeline.js +42 -0
  398. package/dist/esm/components/markdown/embeds/Vimeo.js +21 -0
  399. package/dist/esm/components/markdown/embeds/Wistia.js +21 -0
  400. package/dist/esm/components/markdown/embeds/Youtube.js +33 -0
  401. package/dist/esm/components/markdown/embeds/index.js +36 -0
  402. package/dist/esm/components/markdown/utils/codeblock.js +36 -0
  403. package/dist/esm/components/markdown/utils/stripNewLines.js +3 -0
  404. package/dist/esm/components/markdown/utils/urls.js +34 -0
  405. package/dist/esm/components/markdown.js +5 -2
  406. package/dist/esm/components/metric-card/metric-card.js +29 -0
  407. package/dist/esm/components/metric-card-group/metric-card-group.js +8 -0
  408. package/dist/esm/components/metric-card-group.js +1 -3
  409. package/dist/esm/components/metric-card.js +1 -4
  410. package/dist/esm/components/plan-usage-card/plan-usage-card.js +16 -0
  411. package/dist/esm/components/plan-usage-card.js +1 -3
  412. package/dist/esm/components/rich-text-input/LexicalEditor.js +108 -0
  413. package/dist/esm/components/rich-text-input/RichTextInput.js +7 -0
  414. package/dist/esm/components/select/simpleSelect.js +22 -0
  415. package/dist/esm/components/select.js +1 -2
  416. package/dist/esm/components/trend-value/trend-value.js +50 -0
  417. package/dist/esm/components/trend-value.js +1 -2
  418. package/dist/esm/components/two-level-combobox/two-level-combobox.js +131 -0
  419. package/dist/esm/components/two-level-combobox.js +1 -2
  420. package/dist/esm/components/ui/accordion.js +46 -8
  421. package/dist/esm/components/ui/alert-dialog.js +114 -4
  422. package/dist/esm/components/ui/alert.js +103 -5
  423. package/dist/esm/components/ui/avatar.js +89 -8
  424. package/dist/esm/components/ui/badge.js +26 -3
  425. package/dist/esm/components/ui/breadcrumb.js +60 -5
  426. package/dist/esm/components/ui/button-group.js +88 -5
  427. package/dist/esm/components/ui/button.js +63 -2
  428. package/dist/esm/components/ui/calendar.css +255 -0
  429. package/dist/esm/components/ui/calendar.js +20 -3
  430. package/dist/esm/components/ui/card.js +55 -2
  431. package/dist/esm/components/ui/chart.js +198 -0
  432. package/dist/esm/components/ui/collapsible.js +33 -2
  433. package/dist/esm/components/ui/combobox.js +1 -2
  434. package/dist/esm/components/ui/command.js +79 -3
  435. package/dist/esm/components/ui/dialog.js +53 -3
  436. package/dist/esm/components/ui/div-button.js +61 -3
  437. package/dist/esm/components/ui/dropdown-menu.js +114 -4
  438. package/dist/esm/components/ui/hover-card.js +22 -2
  439. package/dist/esm/components/ui/icon.js +25 -3
  440. package/dist/esm/components/ui/input.js +47 -5
  441. package/dist/esm/components/ui/item.js +140 -12
  442. package/dist/esm/components/ui/label.js +19 -2
  443. package/dist/esm/components/ui/popover.js +31 -2
  444. package/dist/esm/components/ui/progress.js +22 -3
  445. package/dist/esm/components/ui/radio-group.js +33 -3
  446. package/dist/esm/components/ui/resizable.js +38 -5
  447. package/dist/esm/components/ui/ripple-status.js +22 -0
  448. package/dist/esm/components/ui/ripple.js +23 -0
  449. package/dist/esm/components/ui/ripple.module.css +47 -0
  450. package/dist/esm/components/ui/ripple.module.css.js +8 -0
  451. package/dist/esm/components/ui/scroll-area.js +32 -3
  452. package/dist/esm/components/ui/select.js +66 -6
  453. package/dist/esm/components/ui/separator.js +23 -2
  454. package/dist/esm/components/ui/sheet.js +62 -4
  455. package/dist/esm/components/ui/spinner.js +17 -3
  456. package/dist/esm/components/ui/sweep-text.js +24 -0
  457. package/dist/esm/components/ui/switch.js +26 -3
  458. package/dist/esm/components/ui/table.js +82 -2
  459. package/dist/esm/components/ui/tabs.js +65 -2
  460. package/dist/esm/components/ui/textarea.js +33 -2
  461. package/dist/esm/components/ui/tooltip.js +31 -4
  462. package/dist/esm/components/usage-indicator-pill/usage-indicator-pill.js +45 -0
  463. package/dist/esm/global.css +5327 -1
  464. package/dist/esm/index.js +94 -6
  465. package/dist/esm/layouts/full-layout/blurry-blob.js +21 -0
  466. package/dist/esm/layouts/full-layout/components/body.js +8 -0
  467. package/dist/esm/layouts/full-layout/components/header.js +28 -0
  468. package/dist/esm/layouts/full-layout/components/left-sidebar.js +33 -0
  469. package/dist/esm/layouts/full-layout/components/main-area.js +8 -0
  470. package/dist/esm/layouts/full-layout/components/main.js +23 -0
  471. package/dist/esm/layouts/full-layout/components/right-sidebar.js +21 -0
  472. package/dist/esm/layouts/full-layout/context.js +24 -0
  473. package/dist/esm/layouts/full-layout/header-pane.js +49 -0
  474. package/dist/esm/layouts/full-layout/layout.js +305 -0
  475. package/dist/esm/layouts/full-layout/left-sidebar-pane.js +66 -0
  476. package/dist/esm/layouts/full-layout/right-sidebar-pane.js +28 -0
  477. package/dist/esm/layouts/full-layout.js +5 -2
  478. package/dist/esm/layouts/header-nav/account-dropdown.js +90 -0
  479. package/dist/esm/layouts/header-nav/header-nav.js +116 -0
  480. package/dist/esm/layouts/header-nav.js +1 -2
  481. package/dist/esm/layouts/sidebar/app-nav/app-nav.js +47 -0
  482. package/dist/esm/layouts/sidebar/article-nav/article-item.js +138 -0
  483. package/dist/esm/layouts/sidebar/article-nav/article-nav.js +75 -0
  484. package/dist/esm/layouts/sidebar/article-nav/article-search-results.js +46 -0
  485. package/dist/esm/layouts/sidebar/article-nav/article-search.js +44 -0
  486. package/dist/esm/layouts/sidebar/article-nav/article-tree.js +243 -0
  487. package/dist/esm/layouts/sidebar/article-nav/expansion.js +6 -0
  488. package/dist/esm/layouts/sidebar/article-nav/status-icons/article-status-icon.js +34 -0
  489. package/dist/esm/layouts/sidebar/article-nav/status-icons/chevron-slot.js +8 -0
  490. package/dist/esm/layouts/sidebar/article-nav/status-icons/constant.js +3 -0
  491. package/dist/esm/layouts/sidebar/article-nav/status-icons/discovery-icon.js +15 -0
  492. package/dist/esm/layouts/sidebar/article-nav/status-icons/file/file-status-icon.js +31 -0
  493. package/dist/esm/layouts/sidebar/article-nav/status-icons/folder/folder-status-icon.js +59 -0
  494. package/dist/esm/layouts/sidebar/article-nav/status-icons/icon-shell.js +12 -0
  495. package/dist/esm/layouts/sidebar/article-nav/tree-sync.js +52 -0
  496. package/dist/esm/layouts/sidebar/context.js +72 -0
  497. package/dist/esm/layouts/sidebar/section-nav/section-nav.js +26 -0
  498. package/dist/esm/layouts/sidebar/sidebar.js +85 -0
  499. package/dist/esm/layouts/sidebar.js +2 -2
  500. package/dist/esm/lib/addUtmParams.js +26 -0
  501. package/dist/esm/lib/ajvResolver.js +60 -0
  502. package/dist/esm/lib/api.js +240 -0
  503. package/dist/esm/lib/countSuggestions.js +21 -0
  504. package/dist/esm/lib/feature-flags.js +21 -0
  505. package/dist/esm/lib/features.js +5 -0
  506. package/dist/esm/lib/fetchClient.js +77 -0
  507. package/dist/esm/lib/formatDate.js +40 -0
  508. package/dist/esm/lib/formatNumber.js +9 -0
  509. package/dist/esm/lib/getContentType.js +36 -0
  510. package/dist/esm/lib/hooks.js +80 -0
  511. package/dist/esm/lib/pluralise.js +6 -0
  512. package/dist/esm/lib/sortAttributeKeys.js +13 -0
  513. package/dist/esm/lib/styles.js +3 -0
  514. package/dist/esm/lib/useChartDateFormatters.js +10 -0
  515. package/dist/esm/lib/utils.js +45 -0
  516. package/dist/esm/logos/microsoft-logo.js +66 -7
  517. package/dist/esm/logos/microsoft-teams-logo.js +112 -13
  518. package/dist/esm/logos/slack-logo.js +39 -4
  519. package/dist/esm/scenes/knowledge-review/context.js +69 -0
  520. package/dist/esm/scenes/knowledge-review/diff-loader.js +42 -0
  521. package/dist/esm/scenes/knowledge-review/knowledge-review-panel.js +83 -0
  522. package/dist/esm/scenes/knowledge-review/knowledge-review.css +14 -0
  523. package/dist/esm/scenes/knowledge-review/review-list/edit-count.js +8 -0
  524. package/dist/esm/scenes/knowledge-review/review-list/review-list-item.js +37 -0
  525. package/dist/esm/scenes/knowledge-review/review-list/review-list.js +23 -0
  526. package/dist/esm/scenes/knowledge-review/scene.js +122 -0
  527. package/dist/esm/scenes/knowledge-review/status-source-summary.js +41 -0
  528. package/dist/esm/scenes/knowledge-review/suggestion-card/suggestion-card.js +110 -0
  529. package/dist/esm/scenes/knowledge-review/suggestions-header/suggestions-header-title-nav.js +54 -0
  530. package/dist/esm/scenes/knowledge-review/suggestions-header/suggestions-header-toolbar.js +114 -0
  531. package/dist/esm/scenes/knowledge-review/suggestions-header/suggestions-header.js +105 -0
  532. package/dist/esm/scenes/knowledge-review.js +5 -20
  533. package/dist/esm/tailwind.preset.js +305 -2
  534. package/dist/esm/tokens.css +539 -0
  535. package/dist/index.d.ts +60 -2634
  536. package/dist/layouts/full-layout/blurry-blob.d.ts +11 -0
  537. package/dist/layouts/full-layout/components/body.d.ts +7 -0
  538. package/dist/layouts/full-layout/components/header.d.ts +6 -0
  539. package/dist/layouts/full-layout/components/index.d.ts +7 -0
  540. package/dist/layouts/full-layout/components/left-sidebar.d.ts +6 -0
  541. package/dist/layouts/full-layout/components/main-area.d.ts +7 -0
  542. package/dist/layouts/full-layout/components/main.d.ts +8 -0
  543. package/dist/layouts/full-layout/components/right-sidebar.d.ts +8 -0
  544. package/dist/layouts/full-layout/context.d.ts +61 -0
  545. package/dist/layouts/full-layout/header-pane.d.ts +7 -0
  546. package/dist/layouts/full-layout/index.d.ts +10 -0
  547. package/dist/layouts/full-layout/layout.d.ts +27 -0
  548. package/dist/layouts/full-layout/left-sidebar-pane.d.ts +14 -0
  549. package/dist/layouts/full-layout/right-sidebar-pane.d.ts +8 -0
  550. package/dist/layouts/header-nav/account-dropdown.d.ts +71 -0
  551. package/dist/layouts/header-nav/header-nav.d.ts +22 -0
  552. package/dist/layouts/header-nav/index.d.ts +2 -0
  553. package/dist/layouts/sidebar/app-nav/app-nav.d.ts +12 -0
  554. package/dist/layouts/sidebar/app-nav/index.d.ts +1 -0
  555. package/dist/layouts/sidebar/article-nav/article-item.d.ts +18 -0
  556. package/dist/layouts/sidebar/article-nav/article-nav.d.ts +8 -0
  557. package/dist/layouts/sidebar/article-nav/article-search-results.d.ts +7 -0
  558. package/dist/layouts/sidebar/article-nav/article-search.d.ts +2 -0
  559. package/dist/layouts/sidebar/article-nav/article-tree.d.ts +10 -0
  560. package/dist/layouts/sidebar/article-nav/expansion.d.ts +2 -0
  561. package/dist/layouts/sidebar/article-nav/index.d.ts +1 -0
  562. package/dist/layouts/sidebar/article-nav/status-icons/article-status-icon.d.ts +11 -0
  563. package/dist/layouts/sidebar/article-nav/status-icons/chevron-slot.d.ts +4 -0
  564. package/dist/layouts/sidebar/article-nav/status-icons/constant.d.ts +1 -0
  565. package/dist/layouts/sidebar/article-nav/status-icons/discovery-icon.d.ts +4 -0
  566. package/dist/layouts/sidebar/article-nav/status-icons/file/file-status-icon.d.ts +7 -0
  567. package/dist/layouts/sidebar/article-nav/status-icons/folder/folder-status-icon.d.ts +9 -0
  568. package/dist/layouts/sidebar/article-nav/status-icons/icon-shell.d.ts +2 -0
  569. package/dist/layouts/sidebar/article-nav/status-icons/index.d.ts +1 -0
  570. package/dist/layouts/sidebar/article-nav/tree-sync.d.ts +20 -0
  571. package/dist/layouts/sidebar/context.d.ts +33 -0
  572. package/dist/layouts/sidebar/index.d.ts +3 -0
  573. package/dist/layouts/sidebar/mocks.d.ts +4 -0
  574. package/dist/layouts/sidebar/section-nav/index.d.ts +1 -0
  575. package/dist/layouts/sidebar/section-nav/section-nav.d.ts +8 -0
  576. package/dist/layouts/sidebar/sidebar.d.ts +15 -0
  577. package/dist/layouts/sidebar/types.d.ts +20 -0
  578. package/dist/lib/addUtmParams.d.ts +20 -0
  579. package/dist/lib/ajvResolver.d.ts +5 -0
  580. package/dist/lib/api.d.ts +133 -0
  581. package/dist/lib/countSuggestions.d.ts +4 -0
  582. package/dist/lib/feature-flags.d.ts +9 -0
  583. package/dist/lib/features.d.ts +4 -0
  584. package/dist/lib/fetchClient.d.ts +19 -0
  585. package/dist/lib/formatDate.d.ts +4 -0
  586. package/dist/lib/formatNumber.d.ts +1 -0
  587. package/dist/lib/getContentType.d.ts +1 -0
  588. package/dist/lib/groupAttributesByKey.d.ts +1 -0
  589. package/dist/lib/hooks.d.ts +19 -0
  590. package/dist/lib/pluralise.d.ts +1 -0
  591. package/dist/lib/sortAttributeKeys.d.ts +1 -0
  592. package/dist/lib/styles.d.ts +1 -0
  593. package/dist/lib/useChartDateFormatters.d.ts +4 -0
  594. package/dist/lib/utils.d.ts +7 -0
  595. package/dist/logos/microsoft-logo.d.ts +10 -2
  596. package/dist/logos/microsoft-teams-logo.d.ts +10 -2
  597. package/dist/logos/slack-logo.d.ts +10 -2
  598. package/dist/scenes/knowledge-review/context.d.ts +46 -0
  599. package/dist/scenes/knowledge-review/diff-loader.d.ts +10 -0
  600. package/dist/scenes/knowledge-review/index.d.ts +10 -0
  601. package/dist/scenes/knowledge-review/knowledge-review-panel.d.ts +18 -0
  602. package/dist/scenes/knowledge-review/review-list/edit-count.d.ts +4 -0
  603. package/dist/scenes/knowledge-review/review-list/index.d.ts +3 -0
  604. package/dist/scenes/knowledge-review/review-list/mockItems.d.ts +43 -0
  605. package/dist/scenes/knowledge-review/review-list/review-list-item.d.ts +22 -0
  606. package/dist/scenes/knowledge-review/review-list/review-list.d.ts +8 -0
  607. package/dist/scenes/knowledge-review/scene.d.ts +33 -0
  608. package/dist/scenes/knowledge-review/status-source-summary.d.ts +12 -0
  609. package/dist/scenes/knowledge-review/suggestion-card/index.d.ts +2 -0
  610. package/dist/scenes/knowledge-review/suggestion-card/suggestion-card.d.ts +88 -0
  611. package/dist/scenes/knowledge-review/suggestions-header/index.d.ts +1 -0
  612. package/dist/scenes/knowledge-review/suggestions-header/suggestions-header-title-nav.d.ts +12 -0
  613. package/dist/scenes/knowledge-review/suggestions-header/suggestions-header-toolbar.d.ts +20 -0
  614. package/dist/scenes/knowledge-review/suggestions-header/suggestions-header.d.ts +17 -0
  615. package/package.json +36 -27
  616. package/dist/accordion.d.ts +0 -12
  617. package/dist/alert-dialog.d.ts +0 -50
  618. package/dist/alert.d.ts +0 -18
  619. package/dist/article-suggestions-banner.d.ts +0 -16
  620. package/dist/articles-coverage.d.ts +0 -41
  621. package/dist/articles-updated.d.ts +0 -41
  622. package/dist/avatar.d.ts +0 -18
  623. package/dist/badge.d.ts +0 -14
  624. package/dist/breadcrumb.d.ts +0 -27
  625. package/dist/breadcrumbs.d.ts +0 -27
  626. package/dist/button-group.d.ts +0 -22
  627. package/dist/button.d.ts +0 -18
  628. package/dist/calendar.d.ts +0 -12
  629. package/dist/card.d.ts +0 -15
  630. package/dist/chart-area-linear.d.ts +0 -41
  631. package/dist/chart-radial-stacked.d.ts +0 -39
  632. package/dist/chat-search.d.ts +0 -532
  633. package/dist/collapsible.d.ts +0 -10
  634. package/dist/command.d.ts +0 -90
  635. package/dist/confirm-dialog.d.ts +0 -37
  636. package/dist/conversation.d.ts +0 -362
  637. package/dist/convos.d.ts +0 -220
  638. package/dist/data-table.d.ts +0 -23
  639. package/dist/dialog.d.ts +0 -30
  640. package/dist/discoveries-created.d.ts +0 -49
  641. package/dist/div-button.d.ts +0 -16
  642. package/dist/dropdown-menu.d.ts +0 -47
  643. package/dist/editable-label.d.ts +0 -8
  644. package/dist/esm/ChatSearch.css +0 -1
  645. package/dist/esm/chunks/ChatSearch.Crh0QjPs.js +0 -96
  646. package/dist/esm/chunks/ChatSearch.Crh0QjPs.js.map +0 -1
  647. package/dist/esm/chunks/Conversation.CWR55agZ.js +0 -33
  648. package/dist/esm/chunks/Conversation.CWR55agZ.js.map +0 -1
  649. package/dist/esm/chunks/FormattedMessage.DXVhkV-z.js +0 -23
  650. package/dist/esm/chunks/FormattedMessage.DXVhkV-z.js.map +0 -1
  651. package/dist/esm/chunks/MermaidDiagram.PRgXQ5Yh.js +0 -2
  652. package/dist/esm/chunks/MermaidDiagram.PRgXQ5Yh.js.map +0 -1
  653. package/dist/esm/chunks/_commonjsHelpers.lGe4XDVY.js +0 -2
  654. package/dist/esm/chunks/_commonjsHelpers.lGe4XDVY.js.map +0 -1
  655. package/dist/esm/chunks/ai-badge.BxsWnJJZ.js +0 -5
  656. package/dist/esm/chunks/ai-badge.BxsWnJJZ.js.map +0 -1
  657. package/dist/esm/chunks/ai-logo.Bh2bhNcG.js +0 -8
  658. package/dist/esm/chunks/ai-logo.Bh2bhNcG.js.map +0 -1
  659. package/dist/esm/chunks/button.DXe2tRBO.js +0 -3
  660. package/dist/esm/chunks/button.DXe2tRBO.js.map +0 -1
  661. package/dist/esm/chunks/chart.D9xvsrKX.js +0 -10
  662. package/dist/esm/chunks/chart.D9xvsrKX.js.map +0 -1
  663. package/dist/esm/chunks/chat-logo.F_m9SJrM.js +0 -3
  664. package/dist/esm/chunks/chat-logo.F_m9SJrM.js.map +0 -1
  665. package/dist/esm/chunks/combobox.Ccfe3IGO.js +0 -6
  666. package/dist/esm/chunks/combobox.Ccfe3IGO.js.map +0 -1
  667. package/dist/esm/chunks/dark.DuW7JuAk.js +0 -2
  668. package/dist/esm/chunks/dark.DuW7JuAk.js.map +0 -1
  669. package/dist/esm/chunks/data-table.Dn7VQJFo.js +0 -5
  670. package/dist/esm/chunks/data-table.Dn7VQJFo.js.map +0 -1
  671. package/dist/esm/chunks/date-picker.GRONonNX.js +0 -4
  672. package/dist/esm/chunks/date-picker.GRONonNX.js.map +0 -1
  673. package/dist/esm/chunks/extends.DPdBf6DS.js +0 -2
  674. package/dist/esm/chunks/extends.DPdBf6DS.js.map +0 -1
  675. package/dist/esm/chunks/feature-flags.DOcVlPHk.js +0 -3
  676. package/dist/esm/chunks/feature-flags.DOcVlPHk.js.map +0 -1
  677. package/dist/esm/chunks/feedback.nVBNjdPh.js +0 -13
  678. package/dist/esm/chunks/feedback.nVBNjdPh.js.map +0 -1
  679. package/dist/esm/chunks/file-upload-status.znDE1kUC.js +0 -8
  680. package/dist/esm/chunks/file-upload-status.znDE1kUC.js.map +0 -1
  681. package/dist/esm/chunks/filters.CZJ31Eqj.js +0 -22
  682. package/dist/esm/chunks/filters.CZJ31Eqj.js.map +0 -1
  683. package/dist/esm/chunks/font-picker.DrA0q0TI.js +0 -6
  684. package/dist/esm/chunks/font-picker.DrA0q0TI.js.map +0 -1
  685. package/dist/esm/chunks/formatDate.D2xEZm8f.js +0 -2
  686. package/dist/esm/chunks/formatDate.D2xEZm8f.js.map +0 -1
  687. package/dist/esm/chunks/formatNumber.DhVn228t.js +0 -2
  688. package/dist/esm/chunks/formatNumber.DhVn228t.js.map +0 -1
  689. package/dist/esm/chunks/generating-star.DN8DVygp.js +0 -7
  690. package/dist/esm/chunks/generating-star.DN8DVygp.js.map +0 -1
  691. package/dist/esm/chunks/header-nav.BQXr30-S.js +0 -12
  692. package/dist/esm/chunks/header-nav.BQXr30-S.js.map +0 -1
  693. package/dist/esm/chunks/header-pane.D40kbO-a.js +0 -20
  694. package/dist/esm/chunks/header-pane.D40kbO-a.js.map +0 -1
  695. package/dist/esm/chunks/hooks.DjDPgQm6.js +0 -2
  696. package/dist/esm/chunks/hooks.DjDPgQm6.js.map +0 -1
  697. package/dist/esm/chunks/index.C9B3bui8.js +0 -2
  698. package/dist/esm/chunks/index.C9B3bui8.js.map +0 -1
  699. package/dist/esm/chunks/input-with-tags.4LvQIIuq.js +0 -5
  700. package/dist/esm/chunks/input-with-tags.4LvQIIuq.js.map +0 -1
  701. package/dist/esm/chunks/logo.DtwFGMBj.js +0 -5
  702. package/dist/esm/chunks/logo.DtwFGMBj.js.map +0 -1
  703. package/dist/esm/chunks/primary.CMQbo1GJ.js +0 -2
  704. package/dist/esm/chunks/primary.CMQbo1GJ.js.map +0 -1
  705. package/dist/esm/chunks/ripple-status.BiOlScXz.js +0 -6
  706. package/dist/esm/chunks/ripple-status.BiOlScXz.js.map +0 -1
  707. package/dist/esm/chunks/sidebar.CM8HDZg0.js +0 -29
  708. package/dist/esm/chunks/sidebar.CM8HDZg0.js.map +0 -1
  709. package/dist/esm/chunks/simpleSelect.C1KHuEVe.js +0 -3
  710. package/dist/esm/chunks/simpleSelect.C1KHuEVe.js.map +0 -1
  711. package/dist/esm/chunks/status-badge.BVWcC9Dt.js +0 -3
  712. package/dist/esm/chunks/status-badge.BVWcC9Dt.js.map +0 -1
  713. package/dist/esm/chunks/suggestion-card.PPUwB3ML.js +0 -21
  714. package/dist/esm/chunks/suggestion-card.PPUwB3ML.js.map +0 -1
  715. package/dist/esm/chunks/trend-value.lSWHqdkm.js +0 -3
  716. package/dist/esm/chunks/trend-value.lSWHqdkm.js.map +0 -1
  717. package/dist/esm/chunks/two-level-combobox.CQUmvlq6.js +0 -8
  718. package/dist/esm/chunks/two-level-combobox.CQUmvlq6.js.map +0 -1
  719. package/dist/esm/chunks/useChartDateFormatters.Dx2h5AAm.js +0 -2
  720. package/dist/esm/chunks/useChartDateFormatters.Dx2h5AAm.js.map +0 -1
  721. package/dist/esm/chunks/utils.DtKoarLP.js +0 -2
  722. package/dist/esm/chunks/utils.DtKoarLP.js.map +0 -1
  723. package/dist/esm/colors.js.map +0 -1
  724. package/dist/esm/components/accordion.js +0 -1
  725. package/dist/esm/components/alert-dialog.js +0 -1
  726. package/dist/esm/components/alert.js +0 -1
  727. package/dist/esm/components/article-suggestions-banner.js.map +0 -1
  728. package/dist/esm/components/articles-coverage.js.map +0 -1
  729. package/dist/esm/components/articles-updated.js.map +0 -1
  730. package/dist/esm/components/avatar.js +0 -1
  731. package/dist/esm/components/badge.js +0 -1
  732. package/dist/esm/components/breadcrumb.js +0 -1
  733. package/dist/esm/components/breadcrumbs.js.map +0 -1
  734. package/dist/esm/components/button-group.js +0 -1
  735. package/dist/esm/components/button.js +0 -1
  736. package/dist/esm/components/calendar.js +0 -1
  737. package/dist/esm/components/card.js +0 -1
  738. package/dist/esm/components/chart-area-linear.js.map +0 -1
  739. package/dist/esm/components/chart-radial-stacked.js.map +0 -1
  740. package/dist/esm/components/chat-search.js.map +0 -1
  741. package/dist/esm/components/collapsible.js +0 -1
  742. package/dist/esm/components/combobox.js.map +0 -1
  743. package/dist/esm/components/command.js +0 -1
  744. package/dist/esm/components/confirm-dialog.js.map +0 -1
  745. package/dist/esm/components/conversation.js.map +0 -1
  746. package/dist/esm/components/convos.js.map +0 -1
  747. package/dist/esm/components/data-table.js.map +0 -1
  748. package/dist/esm/components/date-picker.js.map +0 -1
  749. package/dist/esm/components/dialog.js +0 -1
  750. package/dist/esm/components/discoveries-created.js.map +0 -1
  751. package/dist/esm/components/div-button.js +0 -1
  752. package/dist/esm/components/dropdown-menu.js +0 -1
  753. package/dist/esm/components/editable-label.js.map +0 -1
  754. package/dist/esm/components/feedback.js.map +0 -1
  755. package/dist/esm/components/file-upload.js.map +0 -1
  756. package/dist/esm/components/filter.js.map +0 -1
  757. package/dist/esm/components/font-picker.js.map +0 -1
  758. package/dist/esm/components/generating-star.js.map +0 -1
  759. package/dist/esm/components/hover-card.js +0 -1
  760. package/dist/esm/components/icon.js +0 -1
  761. package/dist/esm/components/input-with-tags.js.map +0 -1
  762. package/dist/esm/components/input.js +0 -1
  763. package/dist/esm/components/item.js +0 -1
  764. package/dist/esm/components/label.js +0 -1
  765. package/dist/esm/components/logo.js.map +0 -1
  766. package/dist/esm/components/markdown.js.map +0 -1
  767. package/dist/esm/components/metric-card-group.js.map +0 -1
  768. package/dist/esm/components/metric-card.js.map +0 -1
  769. package/dist/esm/components/plan-usage-card.js.map +0 -1
  770. package/dist/esm/components/popover.js +0 -1
  771. package/dist/esm/components/progress.js +0 -1
  772. package/dist/esm/components/radio-group.js +0 -1
  773. package/dist/esm/components/resizable.js +0 -1
  774. package/dist/esm/components/scroll-area.js +0 -1
  775. package/dist/esm/components/select.js.map +0 -1
  776. package/dist/esm/components/separator.js +0 -1
  777. package/dist/esm/components/sheet.js +0 -1
  778. package/dist/esm/components/spinner.js +0 -1
  779. package/dist/esm/components/switch.js +0 -1
  780. package/dist/esm/components/table.js +0 -1
  781. package/dist/esm/components/tabs.js +0 -1
  782. package/dist/esm/components/textarea.js +0 -1
  783. package/dist/esm/components/tooltip.js +0 -1
  784. package/dist/esm/components/trend-value.js.map +0 -1
  785. package/dist/esm/components/two-level-combobox.js.map +0 -1
  786. package/dist/esm/components/ui/accordion.js.map +0 -1
  787. package/dist/esm/components/ui/alert-dialog.js.map +0 -1
  788. package/dist/esm/components/ui/alert.js.map +0 -1
  789. package/dist/esm/components/ui/avatar.js.map +0 -1
  790. package/dist/esm/components/ui/badge.js.map +0 -1
  791. package/dist/esm/components/ui/breadcrumb.js.map +0 -1
  792. package/dist/esm/components/ui/button-group.js.map +0 -1
  793. package/dist/esm/components/ui/button.js.map +0 -1
  794. package/dist/esm/components/ui/calendar.js.map +0 -1
  795. package/dist/esm/components/ui/card.js.map +0 -1
  796. package/dist/esm/components/ui/collapsible.js.map +0 -1
  797. package/dist/esm/components/ui/combobox.js.map +0 -1
  798. package/dist/esm/components/ui/command.js.map +0 -1
  799. package/dist/esm/components/ui/dialog.js.map +0 -1
  800. package/dist/esm/components/ui/div-button.js.map +0 -1
  801. package/dist/esm/components/ui/dropdown-menu.js.map +0 -1
  802. package/dist/esm/components/ui/hover-card.js.map +0 -1
  803. package/dist/esm/components/ui/icon.js.map +0 -1
  804. package/dist/esm/components/ui/input.js.map +0 -1
  805. package/dist/esm/components/ui/item.js.map +0 -1
  806. package/dist/esm/components/ui/label.js.map +0 -1
  807. package/dist/esm/components/ui/popover.js.map +0 -1
  808. package/dist/esm/components/ui/progress.js.map +0 -1
  809. package/dist/esm/components/ui/radio-group.js.map +0 -1
  810. package/dist/esm/components/ui/resizable.js.map +0 -1
  811. package/dist/esm/components/ui/scroll-area.js.map +0 -1
  812. package/dist/esm/components/ui/select.js.map +0 -1
  813. package/dist/esm/components/ui/separator.js.map +0 -1
  814. package/dist/esm/components/ui/sheet.js.map +0 -1
  815. package/dist/esm/components/ui/spinner.js.map +0 -1
  816. package/dist/esm/components/ui/switch.js.map +0 -1
  817. package/dist/esm/components/ui/table.js.map +0 -1
  818. package/dist/esm/components/ui/tabs.js.map +0 -1
  819. package/dist/esm/components/ui/textarea.js.map +0 -1
  820. package/dist/esm/components/ui/tooltip.js.map +0 -1
  821. package/dist/esm/convos.css +0 -1
  822. package/dist/esm/date-picker.css +0 -1
  823. package/dist/esm/index.js.map +0 -1
  824. package/dist/esm/knowledge-review.css +0 -1
  825. package/dist/esm/layouts/full-layout.js.map +0 -1
  826. package/dist/esm/layouts/header-nav.js.map +0 -1
  827. package/dist/esm/layouts/sidebar.js.map +0 -1
  828. package/dist/esm/logos/microsoft-logo.js.map +0 -1
  829. package/dist/esm/logos/microsoft-teams-logo.js.map +0 -1
  830. package/dist/esm/logos/slack-logo.js.map +0 -1
  831. package/dist/esm/ripple-status.css +0 -1
  832. package/dist/esm/scenes/knowledge-review.js.map +0 -1
  833. package/dist/esm/tailwind.preset.js.map +0 -1
  834. package/dist/file-upload.d.ts +0 -45
  835. package/dist/font-picker.d.ts +0 -106
  836. package/dist/full-layout.d.ts +0 -346
  837. package/dist/generating-star.d.ts +0 -15
  838. package/dist/header-nav.d.ts +0 -105
  839. package/dist/hover-card.d.ts +0 -10
  840. package/dist/icon.d.ts +0 -12
  841. package/dist/input.d.ts +0 -13
  842. package/dist/item.d.ts +0 -39
  843. package/dist/knowledge-review.d.ts +0 -228
  844. package/dist/label.d.ts +0 -8
  845. package/dist/layouts/full-layout.d.ts +0 -2
  846. package/dist/layouts/header-nav.d.ts +0 -2
  847. package/dist/layouts/sidebar.d.ts +0 -2
  848. package/dist/logo.d.ts +0 -38
  849. package/dist/markdown.d.ts +0 -55
  850. package/dist/metric-card-group.d.ts +0 -10
  851. package/dist/metric-card.d.ts +0 -21
  852. package/dist/microsoft-logo.d.ts +0 -15
  853. package/dist/microsoft-teams-logo.d.ts +0 -15
  854. package/dist/popover.d.ts +0 -18
  855. package/dist/progress.d.ts +0 -8
  856. package/dist/radio-group.d.ts +0 -8
  857. package/dist/resizable.d.ts +0 -12
  858. package/dist/scenes/knowledge-review.d.ts +0 -2
  859. package/dist/scroll-area.d.ts +0 -8
  860. package/dist/separator.d.ts +0 -6
  861. package/dist/sheet.d.ts +0 -39
  862. package/dist/sidebar.d.ts +0 -72
  863. package/dist/slack-logo.d.ts +0 -15
  864. package/dist/spinner.d.ts +0 -5
  865. package/dist/stats.html +0 -5305
  866. package/dist/switch.d.ts +0 -6
  867. package/dist/table.d.ts +0 -19
  868. package/dist/tabs.d.ts +0 -12
  869. package/dist/tailwind.preset.d.ts +0 -1
  870. package/dist/textarea.d.ts +0 -9
  871. package/dist/tooltip.d.ts +0 -16
  872. package/dist/trend-value.d.ts +0 -19
@@ -0,0 +1,1175 @@
1
+ import React__default, { forwardRef, useCallback, useState, useRef, useEffect, useMemo, useImperativeHandle } from 'react';
2
+ import { AnimatePresence, motion } from 'framer-motion';
3
+ import rehypeRaw from 'rehype-raw';
4
+ import remarkGfm from 'remark-gfm';
5
+ import { Suggestions } from './Suggestions.js';
6
+ import { Answer } from './Answer.js';
7
+ import { FollowUpQuestions } from './FollowUpQuestions.js';
8
+ import { NextBestActions } from './NextBestActions.js';
9
+ import { TimelineNavigation } from './TimelineNavigation.js';
10
+ import { PrimarySearch } from './PrimarySearch.js';
11
+ import { FollowUpSearchBar } from './FollowUpSearchBar.js';
12
+ import { Header } from './Header.js';
13
+ import { defaultTextConfig } from './text-config.js';
14
+ import { ChatSearchProvider, useChatSearch } from './ChatSearchContext.js';
15
+ import { buildConversationContext } from './helpers/buildConversationContext.js';
16
+ import { shouldUseConversationLayout, shouldShowInitialGreeting } from './helpers/initialAiMessage.js';
17
+ import { markdownTextBlock } from './blocks/utils.js';
18
+ import { useConversationHistory } from './hooks/useConversationHistory.js';
19
+ import { ToastContainer } from './ToastContainer.js';
20
+ import { executeClientAction } from './helpers/excuteClientAction.js';
21
+ import { cancelStreamReader } from './helpers/cancelStreamReader.js';
22
+ import { clearAll, setKnowledgeGroupSelected, noArticlesFound, setAnswerError, setUserFeedback, clearUserFeedback, appendNewAnswer, setAwaitingKnowledgeGroup, setSearchResults, setFollowUpQuestions, completeAnswer, setStatusMessage, appendAnswerChunk, markAsUncertain, addActionButtons, getActionInputs, invokeAction } from './hooks/useAnswerList.js';
23
+ import { LoadingConversation } from './LoadingConversation.js';
24
+ import { MemoizedReactMarkdown } from '../markdown/MemoizedReactMarkdown.js';
25
+ import { HistoryPage } from './HistoryPage.js';
26
+ import { ActiveConversations } from './ActiveConversations.js';
27
+ import { ResolvedConversationFooter } from './ResolvedConversationFooter.js';
28
+ import { FeatureFlagProvider, useBooleanFlagValue } from '../../lib/feature-flags.js';
29
+ import { cn, isAnswerUncertain } from '../../lib/utils.js';
30
+ import { useAutocomplete } from '../../lib/hooks.js';
31
+ import { createConversationId, sendFeedbackReason, sendFeedback, searchApi, fetchAnswerStream, fetchFollowUpQuestions } from '../../lib/api.js';
32
+ import { ScrollArea } from '../ui/scroll-area.js';
33
+ import { MemoizedIcon } from '../ui/icon.js';
34
+ import { Features } from '../../lib/features.js';
35
+ import { useToast } from './hooks/useToast.js';
36
+ import { useFileAttachment } from './hooks/useFileAttachment.js';
37
+ import { useConversationLoader } from './hooks/useConversationLoader.js';
38
+ import { useSubscriptionManager } from './hooks/useSubscriptionManager.js';
39
+ import { useIncludePage } from './hooks/useIncludePage.js';
40
+ import { useScrollManager } from './hooks/useScrollManager.js';
41
+
42
+ const markdownRemarkPlugins = [remarkGfm];
43
+ const markdownRehypePlugins = [rehypeRaw];
44
+ const markdownComponents = {
45
+ p: ({ children }) => /* @__PURE__ */ React__default.createElement("span", null, children)
46
+ };
47
+ const ChatSearchComponent = forwardRef(
48
+ ({
49
+ suggestions: initialSuggestions = [],
50
+ collections = [],
51
+ selectedCollectionId,
52
+ onCollectionChange,
53
+ selectedRegion,
54
+ onRegionChange,
55
+ apiKey,
56
+ fetchRegionConfig,
57
+ searchEndpoint,
58
+ answerStreamEndpoint,
59
+ uploadEndpoint,
60
+ feedbackEndpoint,
61
+ feedbackReasonEndpoint,
62
+ loadConversationEndpoint,
63
+ autocompleteEndpoint,
64
+ disableFollowUpQuestions = false,
65
+ enableFileAttachment: enableFileAttachmentProp = false,
66
+ disableFeedback = false,
67
+ disclaimer,
68
+ offset = 0,
69
+ headers,
70
+ textConfig = {},
71
+ followUpQuestionsEndpoint,
72
+ className,
73
+ onToggleSizeButtonClick,
74
+ trackEvent,
75
+ onCloseWidget,
76
+ isWidgetMode = true,
77
+ nextBestActions,
78
+ bodyActionButtons,
79
+ onNextBestActionClick,
80
+ userData,
81
+ redirectRules,
82
+ secretAttributes,
83
+ allowedRegions,
84
+ style,
85
+ isSearchWidget = false,
86
+ isAgentAssist = false,
87
+ hideCitations = false,
88
+ conversationInlineSlot,
89
+ liveHumanAgentChatSlot,
90
+ botAvatarUrl,
91
+ favicon,
92
+ initialAiMessage,
93
+ reconnectHandoff,
94
+ resetHandoff,
95
+ conversationHistoryEndpoint,
96
+ markConversationReadEndpoint,
97
+ markConversationCompletedEndpoint,
98
+ knowledgeSourceGroups
99
+ }, ref) => {
100
+ const {
101
+ answers,
102
+ answerListDispatch,
103
+ query,
104
+ setQuery,
105
+ followUpQuery,
106
+ setFollowUpQuery,
107
+ isSearching,
108
+ setIsSearching,
109
+ showResults,
110
+ setShowResults,
111
+ activeAnswerIndex,
112
+ setActiveAnswerIndex,
113
+ conversationId: currentConversationId,
114
+ setConversationId: setCurrentConversationId,
115
+ clearConversationId: clearCurrentConversationId,
116
+ isLoadingConversation,
117
+ setShowMobileCloseWidgetButton
118
+ } = useChatSearch();
119
+ const mergedTextConfig = { ...defaultTextConfig, ...textConfig };
120
+ const enableFileAttachmentFlag = useBooleanFlagValue("enableFileAttachment", false);
121
+ const enableFileAttachment = enableFileAttachmentProp || enableFileAttachmentFlag;
122
+ const isHistoryTabEnabled = useBooleanFlagValue(Features.HistoryTab, false);
123
+ const { toasts, showToast, dismissToast } = useToast();
124
+ const getOrCreateConversationId = useCallback(() => {
125
+ let conversationId = currentConversationId;
126
+ if (!conversationId) {
127
+ conversationId = createConversationId();
128
+ setCurrentConversationId(conversationId);
129
+ }
130
+ return conversationId;
131
+ }, [currentConversationId, setCurrentConversationId]);
132
+ const { attachedFiles, isUploading, addFiles, removeFile, clearAttachedFiles, getUploadedAttachments } = useFileAttachment({
133
+ uploadEndpoint,
134
+ headers,
135
+ getConversationId: getOrCreateConversationId,
136
+ onError: showToast
137
+ });
138
+ const [currentCollectionId, setCurrentCollectionId] = useState(selectedCollectionId);
139
+ const [currentRegion, setCurrentRegion] = useState(selectedRegion);
140
+ const [showFollowUp, setShowFollowUp] = useState(true);
141
+ const selectedKnowledgeGroupRef = useRef(null);
142
+ const pendingSearchRef = useRef(null);
143
+ const primaryTextareaRef = useRef(null);
144
+ const answerRefs = useRef([]);
145
+ const containerRef = useRef(null);
146
+ const primarySearchRef = useRef(null);
147
+ const followUpSearchRef = useRef(null);
148
+ const bottomRef = useRef(null);
149
+ const currentReaderRef = useRef(null);
150
+ const { suggestions: autocompleteSuggestions } = useAutocomplete({
151
+ query,
152
+ endpoint: autocompleteEndpoint || "",
153
+ allowedRegions,
154
+ collectionId: currentCollectionId,
155
+ headers,
156
+ conversationId: currentConversationId,
157
+ delay: 300
158
+ });
159
+ const [hideGreeting, setHideGreeting] = useState(() => Boolean(currentConversationId));
160
+ const hideGreetingForLoadedConversation = useCallback(() => setHideGreeting(true), []);
161
+ const { loadConversationById } = useConversationLoader({
162
+ loadConversationEndpoint,
163
+ headers,
164
+ reconnectHandoff,
165
+ onConversationLoaded: hideGreetingForLoadedConversation
166
+ });
167
+ useEffect(() => {
168
+ if (!currentConversationId) setHideGreeting(false);
169
+ }, [currentConversationId]);
170
+ useEffect(() => {
171
+ if (shouldUseConversationLayout(initialAiMessage, currentConversationId, answers.length)) {
172
+ setShowResults(true);
173
+ }
174
+ }, [initialAiMessage, currentConversationId, answers.length, setShowResults]);
175
+ const greetingBlocks = useMemo(
176
+ () => initialAiMessage ? [markdownTextBlock({ text: initialAiMessage })] : [],
177
+ [initialAiMessage]
178
+ );
179
+ const showGreeting = shouldShowInitialGreeting(initialAiMessage, hideGreeting);
180
+ const {
181
+ showHistory,
182
+ setShowHistory,
183
+ conversations,
184
+ isLoadingHistory,
185
+ hasUnreadConversations,
186
+ isViewOnly,
187
+ setIsViewOnly,
188
+ handleSelectConversation,
189
+ completeActiveConversations,
190
+ refetchConversations
191
+ } = useConversationHistory({
192
+ enabled: isHistoryTabEnabled,
193
+ conversationHistoryEndpoint,
194
+ markConversationReadEndpoint,
195
+ markConversationCompletedEndpoint,
196
+ headers,
197
+ userData: userData ?? void 0,
198
+ currentConversationId,
199
+ loadConversationById,
200
+ reconnectHandoff,
201
+ resetHandoff
202
+ });
203
+ const { scrollToLastAnswer, scrollToAnswer } = useScrollManager(answerRefs, containerRef, bottomRef);
204
+ const { subscribeToStateChanges } = useSubscriptionManager();
205
+ const { includePageEnabled, includePageLoading, includePageDisabled, handleIncludePageToggle, fetchPageContext } = useIncludePage({ isAgentAssist, apiKey: apiKey ?? "unknown", trackEvent });
206
+ const loadFollowUpQuestions = async (searchQueryId, conversationId) => {
207
+ if (!followUpQuestionsEndpoint || disableFollowUpQuestions) {
208
+ return;
209
+ }
210
+ try {
211
+ const questions = await fetchFollowUpQuestions({
212
+ endpoint: followUpQuestionsEndpoint,
213
+ searchQueryId,
214
+ headers,
215
+ conversationId
216
+ });
217
+ return questions;
218
+ } catch (error) {
219
+ console.error("Error fetching follow-up questions:", error);
220
+ return void 0;
221
+ }
222
+ };
223
+ const processAnswerStream = async ({
224
+ reader,
225
+ searchQueryId,
226
+ conversationId,
227
+ onFirstEvent
228
+ }) => {
229
+ currentReaderRef.current = reader;
230
+ let accumulatedAnswer = "";
231
+ try {
232
+ let done = false, isFirstEvent = true, searchIntentId, isUncertain = false, value;
233
+ while ({ done, value } = await reader.read(), !done) {
234
+ if (currentReaderRef.current !== reader) {
235
+ break;
236
+ }
237
+ if (isFirstEvent) {
238
+ isFirstEvent = false;
239
+ onFirstEvent?.();
240
+ }
241
+ const lines = new TextDecoder().decode(value).split(/\n\n/).filter((line) => line.startsWith("data: ")).map((line) => line.replace(/^data: /, "").trim());
242
+ for (const line of lines) {
243
+ try {
244
+ if (line === "[DONE]") {
245
+ continue;
246
+ }
247
+ const event = JSON.parse(line);
248
+ if (event.type === "status-message") {
249
+ answerListDispatch(
250
+ setStatusMessage({
251
+ message: event.message
252
+ })
253
+ );
254
+ }
255
+ if (event.type === "answer-text-chunk") {
256
+ accumulatedAnswer += event.content;
257
+ answerListDispatch(
258
+ appendAnswerChunk({
259
+ text: event.content
260
+ })
261
+ );
262
+ const uncertaintyCheck = isAnswerUncertain(accumulatedAnswer);
263
+ isUncertain = uncertaintyCheck.uncertain;
264
+ if (isUncertain) {
265
+ const uncertaintyText = mergedTextConfig.uncertaintyFallbackText?.[uncertaintyCheck.language ?? "en"] ?? accumulatedAnswer ?? "I don't know.";
266
+ answerListDispatch(markAsUncertain({ uncertaintyText }));
267
+ }
268
+ }
269
+ if (event.type === "answer-error") {
270
+ answerListDispatch(
271
+ setAnswerError({
272
+ error: mergedTextConfig.errorText || event.message
273
+ })
274
+ );
275
+ }
276
+ if (event.type === "action-buttons") {
277
+ searchIntentId = event.searchIntentId;
278
+ answerListDispatch(
279
+ addActionButtons({
280
+ searchIntentId,
281
+ actions: event.actions
282
+ })
283
+ );
284
+ }
285
+ if (event.type === "get-action-inputs") {
286
+ searchIntentId = event.searchIntentId;
287
+ answerListDispatch(
288
+ getActionInputs({
289
+ searchIntentId: event.searchIntentId,
290
+ inputs: event.inputs,
291
+ actionId: event.actionId,
292
+ schema: event.schema,
293
+ initialValues: event.values,
294
+ onSubmit: async (parameters) => {
295
+ if (event.actionType === "client_execution") {
296
+ const results = await executeClientAction(event.actionKey, parameters);
297
+ return generateAnswerForClientAction({
298
+ searchQueryId,
299
+ conversationId,
300
+ searchIntentId: event.searchIntentId,
301
+ actionId: event.actionId,
302
+ results
303
+ });
304
+ }
305
+ if (event.actionType === "run_workflow") {
306
+ answerListDispatch(invokeAction());
307
+ answerListDispatch(
308
+ setStatusMessage({
309
+ message: mergedTextConfig.loadingAnswerText
310
+ })
311
+ );
312
+ return generateAnswerForQuery({
313
+ searchQueryId,
314
+ conversationId,
315
+ parameters
316
+ });
317
+ }
318
+ return generateAnswerForAction({
319
+ searchQueryId,
320
+ conversationId,
321
+ searchIntentId: event.searchIntentId,
322
+ actionId: event.actionId,
323
+ parameters
324
+ });
325
+ }
326
+ })
327
+ );
328
+ }
329
+ if (event.type === "citations") {
330
+ answerListDispatch(
331
+ setSearchResults({
332
+ searchQueryId,
333
+ results: event.data,
334
+ state: "completed"
335
+ })
336
+ );
337
+ }
338
+ } catch {
339
+ console.warn("Failed to parse answer stream block");
340
+ }
341
+ }
342
+ }
343
+ return { answer: accumulatedAnswer, searchIntentId, isUncertain };
344
+ } catch (error) {
345
+ if (currentReaderRef.current !== reader) {
346
+ return { answer: "", searchIntentId: void 0, isUncertain: false };
347
+ }
348
+ throw error;
349
+ } finally {
350
+ if (currentReaderRef.current === reader) {
351
+ currentReaderRef.current = null;
352
+ reader.releaseLock();
353
+ }
354
+ }
355
+ };
356
+ const generateAnswerForQuery = async ({
357
+ searchQueryId,
358
+ conversationId,
359
+ context,
360
+ attachments,
361
+ parameters
362
+ }) => {
363
+ try {
364
+ const followUpQuestions = loadFollowUpQuestions(searchQueryId);
365
+ const response = await fetchAnswerStream({
366
+ endpoint: answerStreamEndpoint,
367
+ headers,
368
+ body: {
369
+ type: "generate-for-query",
370
+ conversationId,
371
+ searchQueryId,
372
+ profileId: userData?.userId,
373
+ ...context && { context },
374
+ ...attachments?.length && { attachments },
375
+ ...parameters && { parameters }
376
+ }
377
+ });
378
+ const reader = response.body?.getReader();
379
+ if (!reader) return;
380
+ const { answer, searchIntentId, isUncertain } = await processAnswerStream({
381
+ reader,
382
+ searchQueryId,
383
+ conversationId,
384
+ onFirstEvent: () => {
385
+ trackEvent?.("First Streamed Answer Chunk Received", { conversationId, searchQueryId });
386
+ }
387
+ });
388
+ if (!answer) return;
389
+ void followUpQuestions.then((questions) => {
390
+ if (questions && questions.length > 0 && !searchIntentId) {
391
+ answerListDispatch(setFollowUpQuestions({ questions }));
392
+ }
393
+ });
394
+ if (isUncertain) {
395
+ trackEvent?.("Answer Not Found", { conversationId, searchQueryId });
396
+ } else {
397
+ trackEvent?.("Answer Found", { conversationId, searchQueryId });
398
+ }
399
+ } catch (e) {
400
+ console.error("Error generating answer for query:", e);
401
+ answerListDispatch(
402
+ setAnswerError({
403
+ error: mergedTextConfig.errorText || "Sorry, we were unable to process the request right now. Please try again in a moment."
404
+ })
405
+ );
406
+ } finally {
407
+ answerListDispatch(completeAnswer());
408
+ }
409
+ };
410
+ const generateAnswerForAction = async ({
411
+ searchQueryId,
412
+ searchIntentId,
413
+ conversationId,
414
+ actionId,
415
+ parameters
416
+ }) => {
417
+ answerListDispatch(invokeAction());
418
+ try {
419
+ const response = await fetchAnswerStream({
420
+ endpoint: answerStreamEndpoint,
421
+ headers,
422
+ body: {
423
+ type: "invoke-action",
424
+ conversationId,
425
+ searchQueryId,
426
+ searchIntentId,
427
+ actionId,
428
+ parameters,
429
+ profileId: userData?.userId
430
+ }
431
+ });
432
+ const reader = response.body?.getReader();
433
+ if (!reader) return;
434
+ await processAnswerStream({
435
+ reader,
436
+ searchQueryId
437
+ });
438
+ } catch (e) {
439
+ console.error("Error generating answer for action:", e);
440
+ answerListDispatch(
441
+ setAnswerError({
442
+ error: mergedTextConfig.errorText || "Sorry, we were unable to process the request right now. Please try again in a moment."
443
+ })
444
+ );
445
+ } finally {
446
+ answerListDispatch(completeAnswer());
447
+ setIsSearching(false);
448
+ }
449
+ };
450
+ const generateAnswerForClientAction = async ({
451
+ searchQueryId,
452
+ searchIntentId,
453
+ conversationId,
454
+ actionId,
455
+ results
456
+ }) => {
457
+ answerListDispatch(invokeAction());
458
+ try {
459
+ const response = await fetchAnswerStream({
460
+ endpoint: answerStreamEndpoint,
461
+ headers,
462
+ body: {
463
+ type: "client-execution-result",
464
+ conversationId,
465
+ searchQueryId,
466
+ searchIntentId,
467
+ actionId,
468
+ results,
469
+ profileId: userData?.userId
470
+ }
471
+ });
472
+ const reader = response.body?.getReader();
473
+ if (!reader) return;
474
+ await processAnswerStream({
475
+ reader,
476
+ searchQueryId
477
+ });
478
+ } catch (e) {
479
+ console.error("Error generating answer for action:", e);
480
+ answerListDispatch(
481
+ setAnswerError({
482
+ error: mergedTextConfig.errorText || "Sorry, we were unable to process the request right now. Please try again in a moment."
483
+ })
484
+ );
485
+ } finally {
486
+ answerListDispatch(completeAnswer());
487
+ setIsSearching(false);
488
+ }
489
+ };
490
+ const handleSearchApiCall = async ({
491
+ searchQuery,
492
+ conversationId,
493
+ attributes,
494
+ secretAttributes: secretAttributes2,
495
+ allowedRegions: allowedRegions2,
496
+ knowledgeGroupCollectionIds
497
+ }) => {
498
+ const collectionId = knowledgeGroupCollectionIds ?? currentCollectionId;
499
+ const searchResponse = await searchApi({
500
+ endpoint: searchEndpoint,
501
+ query: searchQuery,
502
+ collectionId,
503
+ headers,
504
+ conversationId,
505
+ attributes,
506
+ secretAttributes: secretAttributes2,
507
+ allowedRegions: allowedRegions2,
508
+ source: isAgentAssist ? "agent_assist" : void 0
509
+ });
510
+ if (searchResponse.results.length === 0 && !searchResponse.isAgenticResponse) {
511
+ trackEvent?.("No Articles Found", { conversationId, searchQuery });
512
+ return;
513
+ }
514
+ answerListDispatch(
515
+ setSearchResults({
516
+ searchQueryId: searchResponse.searchQueryId,
517
+ results: searchResponse.results
518
+ })
519
+ );
520
+ return searchResponse.searchQueryId;
521
+ };
522
+ const performSearch = async ({ searchQuery = query.trim(), event }) => {
523
+ if (!searchQuery) return;
524
+ const conversationId = currentConversationId || createConversationId();
525
+ setCurrentConversationId(conversationId);
526
+ const fileAttachments = getUploadedAttachments();
527
+ clearAttachedFiles();
528
+ setIsSearching(true);
529
+ setShowResults(true);
530
+ setActiveAnswerIndex(answers.length);
531
+ scrollToLastAnswer();
532
+ answerListDispatch(
533
+ appendNewAnswer({
534
+ query: searchQuery,
535
+ attachments: fileAttachments
536
+ })
537
+ );
538
+ await Promise.resolve();
539
+ followUpSearchRef.current?.focus();
540
+ const pageContext = await fetchPageContext(conversationId, searchQuery);
541
+ const needsGroupSelection = knowledgeSourceGroups && knowledgeSourceGroups.length > 0 && !selectedKnowledgeGroupRef.current;
542
+ if (needsGroupSelection) {
543
+ pendingSearchRef.current = {
544
+ searchQuery,
545
+ conversationId,
546
+ attributes: { ...userData },
547
+ secretAttributes,
548
+ allowedRegions,
549
+ pageContext: pageContext ?? void 0,
550
+ fileAttachments: fileAttachments.length > 0 ? fileAttachments : void 0
551
+ };
552
+ answerListDispatch(setAwaitingKnowledgeGroup());
553
+ setIsSearching(false);
554
+ return;
555
+ }
556
+ try {
557
+ const attributes = { ...userData };
558
+ const knowledgeGroupCollectionIds = selectedKnowledgeGroupRef.current?.collectionIds;
559
+ const searchQueryId = await handleSearchApiCall({
560
+ searchQuery,
561
+ conversationId,
562
+ attributes,
563
+ secretAttributes,
564
+ allowedRegions,
565
+ knowledgeGroupCollectionIds
566
+ });
567
+ if (searchQueryId) {
568
+ event && trackEvent?.(event.name, {
569
+ conversationId,
570
+ searchQuery,
571
+ searchQueryId,
572
+ ...event.metaData
573
+ });
574
+ await generateAnswerForQuery({
575
+ searchQueryId,
576
+ conversationId,
577
+ context: pageContext,
578
+ attachments: fileAttachments.length > 0 ? fileAttachments : void 0
579
+ });
580
+ } else {
581
+ answerListDispatch(noArticlesFound());
582
+ }
583
+ } catch (error) {
584
+ console.error("Error generating answer:", error);
585
+ event && trackEvent?.(`${event.name} - Search Error`, {
586
+ conversationId,
587
+ searchQuery,
588
+ ...event.metaData
589
+ });
590
+ answerListDispatch(
591
+ setAnswerError({
592
+ error: mergedTextConfig.errorText || "Sorry, we were unable to process the request right now. Please try again in a moment."
593
+ })
594
+ );
595
+ } finally {
596
+ setIsSearching(false);
597
+ }
598
+ };
599
+ const handleKnowledgeGroupSelect = async (group) => {
600
+ selectedKnowledgeGroupRef.current = group;
601
+ const pending = pendingSearchRef.current;
602
+ if (!pending) return;
603
+ pendingSearchRef.current = null;
604
+ answerListDispatch(setKnowledgeGroupSelected());
605
+ setIsSearching(true);
606
+ try {
607
+ const searchQueryId = await handleSearchApiCall({
608
+ searchQuery: pending.searchQuery,
609
+ conversationId: pending.conversationId,
610
+ attributes: pending.attributes,
611
+ secretAttributes: pending.secretAttributes,
612
+ allowedRegions: pending.allowedRegions,
613
+ knowledgeGroupCollectionIds: group.collectionIds
614
+ });
615
+ if (searchQueryId) {
616
+ trackEvent?.("Knowledge Group Selected", {
617
+ conversationId: pending.conversationId,
618
+ searchQuery: pending.searchQuery,
619
+ searchQueryId,
620
+ knowledgeGroupId: group.id,
621
+ knowledgeGroupName: group.name
622
+ });
623
+ await generateAnswerForQuery({
624
+ searchQueryId,
625
+ conversationId: pending.conversationId,
626
+ context: pending.pageContext,
627
+ attachments: pending.fileAttachments
628
+ });
629
+ } else {
630
+ answerListDispatch(noArticlesFound());
631
+ }
632
+ } catch (error) {
633
+ console.error("Error generating answer after group selection:", error);
634
+ answerListDispatch(
635
+ setAnswerError({
636
+ error: mergedTextConfig.errorText || "Sorry, we were unable to process the request right now. Please try again in a moment."
637
+ })
638
+ );
639
+ } finally {
640
+ setIsSearching(false);
641
+ }
642
+ };
643
+ const createNewThread = (firstQuery) => {
644
+ completeActiveConversations();
645
+ setIsViewOnly(false);
646
+ resetHandoff?.();
647
+ if (currentReaderRef.current) {
648
+ const reader = currentReaderRef.current;
649
+ currentReaderRef.current = null;
650
+ cancelStreamReader(reader);
651
+ }
652
+ setIsSearching(false);
653
+ setQuery("");
654
+ setFollowUpQuery("");
655
+ setShowResults(false);
656
+ answerListDispatch(clearAll());
657
+ setActiveAnswerIndex(0);
658
+ clearAttachedFiles();
659
+ clearCurrentConversationId();
660
+ selectedKnowledgeGroupRef.current = null;
661
+ pendingSearchRef.current = null;
662
+ trackEvent?.("New Thread Created", { oldConversationId: currentConversationId });
663
+ if (primaryTextareaRef.current) {
664
+ primaryTextareaRef.current.style.height = "auto";
665
+ }
666
+ if (firstQuery) {
667
+ setQuery(firstQuery);
668
+ void performSearch({ searchQuery: firstQuery, event: { name: "New Thread Created with Query" } });
669
+ }
670
+ };
671
+ const navigateHome = () => {
672
+ setIsViewOnly(false);
673
+ resetHandoff?.();
674
+ if (currentReaderRef.current) {
675
+ const reader = currentReaderRef.current;
676
+ currentReaderRef.current = null;
677
+ cancelStreamReader(reader);
678
+ }
679
+ setIsSearching(false);
680
+ setQuery("");
681
+ setFollowUpQuery("");
682
+ setShowResults(false);
683
+ answerListDispatch(clearAll());
684
+ setActiveAnswerIndex(0);
685
+ clearAttachedFiles();
686
+ clearCurrentConversationId();
687
+ selectedKnowledgeGroupRef.current = null;
688
+ pendingSearchRef.current = null;
689
+ if (primaryTextareaRef.current) {
690
+ primaryTextareaRef.current.style.height = "auto";
691
+ }
692
+ refetchConversations();
693
+ };
694
+ useImperativeHandle(ref, () => ({
695
+ createNewThread,
696
+ showFollowUpThread: (show) => {
697
+ setShowFollowUp(show);
698
+ },
699
+ subscribeToStateChanges,
700
+ focusSearchField: () => primarySearchRef.current?.focus() || followUpSearchRef.current?.focus(),
701
+ showCloseButton: (showButton = true) => {
702
+ setShowMobileCloseWidgetButton(showButton);
703
+ },
704
+ loadConversation: loadConversationById
705
+ }));
706
+ useEffect(() => {
707
+ setCurrentCollectionId(selectedCollectionId);
708
+ }, [selectedCollectionId]);
709
+ useEffect(() => {
710
+ setCurrentRegion(selectedRegion);
711
+ }, [selectedRegion]);
712
+ const adjustTextareaHeight = (textarea) => {
713
+ textarea.style.height = "auto";
714
+ textarea.style.height = `${textarea.scrollHeight}px`;
715
+ };
716
+ const handlePrimarySearch = async (searchQuery = query.trim()) => {
717
+ await performSearch({ searchQuery, event: { name: "Primary Field Search Submitted" } });
718
+ };
719
+ const handleFeedback = async (response, searchQueryId, answerIndex) => {
720
+ if (!feedbackEndpoint) return;
721
+ answerListDispatch(
722
+ setUserFeedback({
723
+ feedback: response,
724
+ index: answerIndex
725
+ })
726
+ );
727
+ try {
728
+ await sendFeedback({
729
+ endpoint: feedbackEndpoint,
730
+ searchQueryId,
731
+ response,
732
+ headers,
733
+ conversationId: currentConversationId
734
+ });
735
+ trackEvent?.(response === "accept" ? "Answer Accepted" : "Answer Rejected", {
736
+ conversationId: currentConversationId,
737
+ searchQueryId
738
+ });
739
+ } catch (error) {
740
+ console.error("Error sending feedback:", error);
741
+ answerListDispatch(
742
+ clearUserFeedback({
743
+ index: answerIndex
744
+ })
745
+ );
746
+ }
747
+ };
748
+ const handleFeedbackReasonSubmit = async (reason, searchQueryId) => {
749
+ if (!feedbackReasonEndpoint) return;
750
+ try {
751
+ await sendFeedbackReason({
752
+ endpoint: feedbackReasonEndpoint,
753
+ searchQueryId,
754
+ reason,
755
+ headers
756
+ });
757
+ } catch (error) {
758
+ console.error("Error sending feedback reason:", error);
759
+ }
760
+ };
761
+ const handleFollowUpSearch = async (customQuery) => {
762
+ const queryToUse = customQuery !== void 0 ? customQuery : followUpQuery;
763
+ if (queryToUse.trim()) {
764
+ resetHandoff?.();
765
+ setQuery(queryToUse);
766
+ setFollowUpQuery("");
767
+ await performSearch({ searchQuery: queryToUse, event: { name: "Follow-up Search Field Submitted" } });
768
+ }
769
+ };
770
+ const handleSuggestedQuestionClick = (suggestion) => {
771
+ if (suggestion.conversationId) {
772
+ trackEvent?.("Recent Conversation Clicked", {
773
+ conversationId: currentConversationId,
774
+ question: suggestion.question
775
+ });
776
+ loadConversationById(suggestion.conversationId);
777
+ return;
778
+ }
779
+ void performSearch({ searchQuery: suggestion.question, event: { name: "Suggested Question Clicked" } });
780
+ };
781
+ const handleAutocompleteSuggestionClick = (suggestion) => {
782
+ void performSearch({ searchQuery: suggestion.question, event: { name: "Autocomplete Suggestion Clicked" } });
783
+ };
784
+ const handleCollectionChange = (collectionId) => {
785
+ setCurrentCollectionId(collectionId);
786
+ onCollectionChange?.(collectionId);
787
+ };
788
+ const handleRegionChange = (regionId) => {
789
+ setCurrentRegion(regionId);
790
+ onRegionChange?.(regionId);
791
+ trackEvent?.("Region Changed", { region: regionId, conversationId: currentConversationId });
792
+ };
793
+ useEffect(() => {
794
+ const handleUrlChange = () => {
795
+ const urlParams = new URLSearchParams(window.location.search);
796
+ const urlConversationId = urlParams.get("conversation");
797
+ if (!urlConversationId) {
798
+ setQuery("");
799
+ setFollowUpQuery("");
800
+ setShowResults(false);
801
+ answerListDispatch(clearAll());
802
+ setActiveAnswerIndex(0);
803
+ clearAttachedFiles();
804
+ clearCurrentConversationId();
805
+ if (primaryTextareaRef.current) {
806
+ primaryTextareaRef.current.style.height = "auto";
807
+ }
808
+ }
809
+ };
810
+ window.addEventListener("popstate", handleUrlChange);
811
+ return () => window.removeEventListener("popstate", handleUrlChange);
812
+ }, []);
813
+ const handleFollowUpQuestionClick = (question) => {
814
+ trackEvent?.("Follow-up Question Clicked", { conversationId: currentConversationId, question });
815
+ void performSearch({ searchQuery: question, event: { name: "Follow-up Question Clicked" } });
816
+ };
817
+ const handleNextBestActionClick = ({ action, searchQueryId, query: query2, answer }) => {
818
+ trackEvent?.("Next Best Action Clicked", {
819
+ conversationId: currentConversationId,
820
+ searchQueryId,
821
+ action: action.label
822
+ });
823
+ const conversation = buildConversationContext(answers, currentConversationId);
824
+ onNextBestActionClick?.({ action, searchQueryId, query: query2, answer, conversation });
825
+ };
826
+ useEffect(() => {
827
+ const container = containerRef.current;
828
+ if (!container || !isSearchWidget) return;
829
+ let lastSentHeight = 0;
830
+ let rafId = null;
831
+ const calculateTotalHeight = () => {
832
+ const innerContent2 = container.firstElementChild;
833
+ const contentHeight = innerContent2?.scrollHeight ?? container.scrollHeight;
834
+ const footerHeight = document.querySelector('[data-name="BrandFooter"]')?.clientHeight ?? 0;
835
+ const headerHeight = document.querySelector('[data-name="Header"]')?.clientHeight ?? 0;
836
+ const followUpHeight = showResults && showFollowUp ? 70 : 0;
837
+ const chatSearchHeight = document.querySelector('[data-name="ChatSearch"]')?.clientHeight ?? 0;
838
+ const verticalPadding = 32;
839
+ const totalHeight = contentHeight + footerHeight + followUpHeight + headerHeight + verticalPadding;
840
+ if (!showResults) {
841
+ return totalHeight;
842
+ }
843
+ return Math.max(totalHeight, chatSearchHeight);
844
+ };
845
+ const sendResize = () => {
846
+ const totalHeight = calculateTotalHeight();
847
+ if (totalHeight > 0 && totalHeight !== lastSentHeight) {
848
+ lastSentHeight = totalHeight;
849
+ window.parent.postMessage(
850
+ {
851
+ type: "RESIZE_IFRAME",
852
+ height: totalHeight,
853
+ widgetKey: apiKey
854
+ },
855
+ "*"
856
+ );
857
+ }
858
+ };
859
+ const handleResize = () => {
860
+ if (rafId !== null) {
861
+ cancelAnimationFrame(rafId);
862
+ }
863
+ rafId = requestAnimationFrame(() => {
864
+ sendResize();
865
+ rafId = null;
866
+ });
867
+ };
868
+ const timeoutId = setTimeout(sendResize, 100);
869
+ const resizeObserver = new ResizeObserver(handleResize);
870
+ const innerContent = container.firstElementChild;
871
+ if (innerContent) {
872
+ resizeObserver.observe(innerContent);
873
+ }
874
+ resizeObserver.observe(container);
875
+ return () => {
876
+ clearTimeout(timeoutId);
877
+ if (rafId !== null) {
878
+ cancelAnimationFrame(rafId);
879
+ }
880
+ resizeObserver.disconnect();
881
+ };
882
+ }, [isSearchWidget, apiKey, showResults, showFollowUp]);
883
+ return /* @__PURE__ */ React__default.createElement(
884
+ "div",
885
+ {
886
+ className: cn(
887
+ "w-full relative h-dvh flex flex-col justify-between @container",
888
+ "md:h-auto md:p-4 md:bg-dark-100",
889
+ className
890
+ ),
891
+ "data-name": "ChatSearch",
892
+ style
893
+ },
894
+ /* @__PURE__ */ React__default.createElement(ToastContainer, { toasts, onDismiss: dismissToast }),
895
+ (isWidgetMode || !showResults) && /* @__PURE__ */ React__default.createElement(
896
+ Header,
897
+ {
898
+ showHistoryButton: isHistoryTabEnabled,
899
+ isSearchWidget,
900
+ "data-name": "Header",
901
+ headerText: mergedTextConfig.headerText,
902
+ onToggleSizeButtonClick: () => {
903
+ onToggleSizeButtonClick?.();
904
+ },
905
+ onBackButtonClick: () => void navigateHome(),
906
+ onCloseWidgetClick: () => onCloseWidget?.(),
907
+ showHistory,
908
+ hasUnreadConversations,
909
+ onHistoryButtonClick: () => setShowHistory(true),
910
+ onHistoryBackClick: () => setShowHistory(false),
911
+ className: cn("@3xl:mb-4", {
912
+ "!block": showResults && isSearchWidget
913
+ })
914
+ }
915
+ ),
916
+ /* @__PURE__ */ React__default.createElement(
917
+ ScrollArea,
918
+ {
919
+ className: "w-full relative h-auto flex-grow [&>[data-radix-scroll-area-viewport]>div:first-child]:!block",
920
+ ref: containerRef
921
+ },
922
+ /* @__PURE__ */ React__default.createElement(AnimatePresence, null, showHistory ? /* @__PURE__ */ React__default.createElement(
923
+ HistoryPage,
924
+ {
925
+ conversations,
926
+ isLoading: isLoadingHistory,
927
+ onSelectConversation: handleSelectConversation,
928
+ botAvatarUrl
929
+ }
930
+ ) : isLoadingConversation ? /* @__PURE__ */ React__default.createElement(LoadingConversation, null) : !showResults ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
931
+ motion.div,
932
+ {
933
+ key: "search",
934
+ initial: { opacity: 0, y: 20 },
935
+ animate: { opacity: 1, y: 0 },
936
+ transition: { duration: 0.5 },
937
+ className: "w-full md:space-y-4"
938
+ },
939
+ /* @__PURE__ */ React__default.createElement(
940
+ "div",
941
+ {
942
+ className: cn(
943
+ "pb-4",
944
+ isSearchWidget ? "bg-transparent p-3 md:p-0" : "px-3 bg-primary md:p-0 md:bg-transparent"
945
+ )
946
+ },
947
+ /* @__PURE__ */ React__default.createElement(
948
+ motion.div,
949
+ {
950
+ initial: { opacity: 0, y: 20 },
951
+ animate: { opacity: 1, y: 0 },
952
+ transition: { duration: 0.5, delay: 0.4 }
953
+ },
954
+ /* @__PURE__ */ React__default.createElement(
955
+ PrimarySearch,
956
+ {
957
+ ref: primarySearchRef,
958
+ query,
959
+ onQueryChange: (value) => {
960
+ setQuery(value);
961
+ if (primaryTextareaRef.current) {
962
+ adjustTextareaHeight(primaryTextareaRef.current);
963
+ }
964
+ },
965
+ onSearch: () => void handlePrimarySearch(),
966
+ textConfig: mergedTextConfig,
967
+ collections,
968
+ currentCollectionId,
969
+ onCollectionChange: handleCollectionChange,
970
+ allowedRegions,
971
+ currentRegion,
972
+ onRegionChange: handleRegionChange,
973
+ apiKey,
974
+ fetchRegionConfig,
975
+ enableFileAttachment,
976
+ attachedFiles,
977
+ isUploading,
978
+ onAddFiles: addFiles,
979
+ onRemoveFile: removeFile,
980
+ isSearching,
981
+ autocompleteSuggestions,
982
+ onAutocompleteSuggestionSelect: handleAutocompleteSuggestionClick,
983
+ isAgentAssist,
984
+ includePageEnabled,
985
+ includePageLoading,
986
+ includePageDisabled,
987
+ onIncludePageToggle: handleIncludePageToggle
988
+ }
989
+ )
990
+ )
991
+ ),
992
+ isHistoryTabEnabled && /* @__PURE__ */ React__default.createElement(
993
+ ActiveConversations,
994
+ {
995
+ conversations,
996
+ onSelect: handleSelectConversation,
997
+ onViewAll: () => setShowHistory(true),
998
+ botAvatarUrl
999
+ }
1000
+ ),
1001
+ /* @__PURE__ */ React__default.createElement(
1002
+ Suggestions,
1003
+ {
1004
+ suggestions: initialSuggestions,
1005
+ onQuestionClick: handleSuggestedQuestionClick,
1006
+ title: mergedTextConfig.suggestionsTitle
1007
+ }
1008
+ ),
1009
+ isWidgetMode && bodyActionButtons && bodyActionButtons.length > 0 && /* @__PURE__ */ React__default.createElement("div", { className: "mt-4 mb-4 px-3 @3xl:px-0" }, /* @__PURE__ */ React__default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React__default.createElement(
1010
+ NextBestActions,
1011
+ {
1012
+ nextBestActions: bodyActionButtons || [],
1013
+ onActionClick: (action) => handleNextBestActionClick({
1014
+ action,
1015
+ searchQueryId: "",
1016
+ query: "",
1017
+ answer: ""
1018
+ })
1019
+ }
1020
+ )))
1021
+ )) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
1022
+ motion.div,
1023
+ {
1024
+ key: "results",
1025
+ initial: { opacity: 0 },
1026
+ animate: { opacity: 1 },
1027
+ exit: { opacity: 0 },
1028
+ transition: { duration: 0.5 },
1029
+ className: "w-full max-w-[100vw] space-y-4 p-3 md:p-0"
1030
+ },
1031
+ showGreeting && /* @__PURE__ */ React__default.createElement(
1032
+ motion.div,
1033
+ {
1034
+ key: "initial-ai-message",
1035
+ initial: { opacity: 0, y: 20 },
1036
+ animate: { opacity: 1, y: 0 },
1037
+ transition: { duration: 0.5 },
1038
+ className: "space-y-4 last:!mb-8 mt-6"
1039
+ },
1040
+ /* @__PURE__ */ React__default.createElement(
1041
+ Answer,
1042
+ {
1043
+ index: -1,
1044
+ favicon,
1045
+ blocks: greetingBlocks,
1046
+ question: "",
1047
+ state: "completed",
1048
+ hideCitations: true,
1049
+ disableFeedback: true,
1050
+ textConfig: mergedTextConfig
1051
+ }
1052
+ )
1053
+ ),
1054
+ answers.map((answer, i) => /* @__PURE__ */ React__default.createElement(
1055
+ motion.div,
1056
+ {
1057
+ key: i,
1058
+ ref: (el) => answerRefs.current[i] = el,
1059
+ initial: { opacity: 0, y: 20 },
1060
+ animate: { opacity: 1, y: 0 },
1061
+ transition: { duration: 0.5, delay: i * 0.1 },
1062
+ className: "space-y-4 last:!mb-8"
1063
+ },
1064
+ /* @__PURE__ */ React__default.createElement(
1065
+ Answer,
1066
+ {
1067
+ index: i,
1068
+ favicon,
1069
+ blocks: answer.blocks,
1070
+ question: answer.question,
1071
+ attachments: answer.attachments,
1072
+ state: answer.state,
1073
+ searchResults: answer.searchResults,
1074
+ searchQueryId: answer.searchQueryId,
1075
+ searchIntentId: answer.searchIntentId,
1076
+ hideCitations,
1077
+ feedback: answer.feedback,
1078
+ onFeedback: (response) => void handleFeedback(response, answer.searchQueryId, i),
1079
+ disableFeedback,
1080
+ textConfig: mergedTextConfig,
1081
+ redirectRules,
1082
+ nextBestActions,
1083
+ actions: answer.actions,
1084
+ handleActionClick: handleNextBestActionClick,
1085
+ isLastAnswer: i === answers.length - 1,
1086
+ onFeedbackReasonSubmit: (reason) => void handleFeedbackReasonSubmit(reason, answer.searchQueryId),
1087
+ hasError: answer.hasError,
1088
+ statusMessage: answer.statusMessage,
1089
+ knowledgeSourceGroups,
1090
+ onKnowledgeGroupSelect: (group) => void handleKnowledgeGroupSelect(group)
1091
+ }
1092
+ ),
1093
+ i === answers.length - 1 && !disableFollowUpQuestions && answer.followUpQuestions && answer.state === "completed" && !answer.hasError && /* @__PURE__ */ React__default.createElement(
1094
+ FollowUpQuestions,
1095
+ {
1096
+ questions: answer.followUpQuestions,
1097
+ onQuestionClick: handleFollowUpQuestionClick
1098
+ }
1099
+ )
1100
+ ))
1101
+ ))),
1102
+ showResults && answers.length > 1 && /* @__PURE__ */ React__default.createElement("div", { className: "hidden lg:block" }, /* @__PURE__ */ React__default.createElement(
1103
+ TimelineNavigation,
1104
+ {
1105
+ questions: answers.map((a) => a.question),
1106
+ activeIndex: activeAnswerIndex,
1107
+ onNavigate: (index) => {
1108
+ setActiveAnswerIndex(index);
1109
+ scrollToAnswer(index);
1110
+ },
1111
+ offset
1112
+ }
1113
+ )),
1114
+ disclaimer && isWidgetMode && !(showResults && showFollowUp) && /* @__PURE__ */ React__default.createElement(
1115
+ "div",
1116
+ {
1117
+ "data-name": "disclaimer",
1118
+ className: cn(
1119
+ "mt-2 px-3 @3xl:px-0 text-xs text-dark-500 flex items-center gap-1 justify-center text-center w-full md:static md:mt-4 md:text-left md:flex md:gap-4 leading-5",
1120
+ isSearchWidget ? "static mb-2 md:text-left [&>svg]:flex-shrink-0" : "absolute bottom-12"
1121
+ )
1122
+ },
1123
+ /* @__PURE__ */ React__default.createElement(MemoizedIcon, { iconName: "Info", className: "size-4" }),
1124
+ /* @__PURE__ */ React__default.createElement(
1125
+ MemoizedReactMarkdown,
1126
+ {
1127
+ className: "[&_a]:underline [&_a:hover]:no-underline",
1128
+ remarkPlugins: markdownRemarkPlugins,
1129
+ rehypePlugins: markdownRehypePlugins,
1130
+ components: markdownComponents
1131
+ },
1132
+ disclaimer
1133
+ )
1134
+ ),
1135
+ conversationInlineSlot != null && showResults && !showHistory && /* @__PURE__ */ React__default.createElement("div", { className: "-mt-6 w-full max-w-[100vw] px-3 pb-0 pt-0 text-foreground md:px-0" }, conversationInlineSlot),
1136
+ /* @__PURE__ */ React__default.createElement("div", { ref: bottomRef })
1137
+ ),
1138
+ showResults && showFollowUp && !isViewOnly && !liveHumanAgentChatSlot && !showHistory && (() => {
1139
+ const isAwaitingGroup = answers.some((a) => a.state === "awaiting-knowledge-group");
1140
+ return /* @__PURE__ */ React__default.createElement(
1141
+ FollowUpSearchBar,
1142
+ {
1143
+ ref: followUpSearchRef,
1144
+ initialQuery: followUpQuery,
1145
+ onQueryChange: setFollowUpQuery,
1146
+ isSearching,
1147
+ handleFollowUpSearch,
1148
+ textConfig: mergedTextConfig,
1149
+ enableFileAttachment,
1150
+ attachedFiles,
1151
+ isUploading,
1152
+ onAddFiles: addFiles,
1153
+ onRemoveFile: removeFile,
1154
+ disabled: isAwaitingGroup
1155
+ }
1156
+ );
1157
+ })(),
1158
+ showResults && isViewOnly && !showHistory && /* @__PURE__ */ React__default.createElement(ResolvedConversationFooter, { onStartNewConversation: () => createNewThread() }),
1159
+ !showHistory && !isViewOnly && liveHumanAgentChatSlot
1160
+ );
1161
+ }
1162
+ );
1163
+ ChatSearchComponent.displayName = "ChatSearch";
1164
+ const ChatSearch = forwardRef(({ featureFlags, ...props }, ref) => /* @__PURE__ */ React__default.createElement(FeatureFlagProvider, { flags: featureFlags }, /* @__PURE__ */ React__default.createElement(
1165
+ ChatSearchProvider,
1166
+ {
1167
+ searchPath: props.searchPath,
1168
+ contentTypeEndpoint: props.contentTypeEndpoint,
1169
+ widgetKey: props.apiKey
1170
+ },
1171
+ /* @__PURE__ */ React__default.createElement(ChatSearchComponent, { ...props, ref })
1172
+ )));
1173
+ ChatSearch.displayName = "ChatSearch";
1174
+
1175
+ export { ChatSearch as default };