@coveo/atomic 3.33.0 → 3.33.1-pre.2a3e15151f

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 (413) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/components/analytics-config.js +1 -1
  4. package/dist/atomic/components/analytics-config.js.map +1 -1
  5. package/dist/atomic/components/atomic-category-facet.js +1 -1
  6. package/dist/atomic/components/atomic-citation.js +1 -547
  7. package/dist/atomic/components/atomic-citation.js.map +1 -1
  8. package/dist/{esm/atomic-citation.entry.js → atomic/components/atomic-citation2.js} +35 -13
  9. package/dist/atomic/components/atomic-citation2.js.map +1 -0
  10. package/dist/atomic/components/atomic-facet-manager.js +1 -1
  11. package/dist/atomic/components/atomic-facet.js +1 -1
  12. package/dist/atomic/components/atomic-format-currency.js +1 -1
  13. package/dist/atomic/components/atomic-format-number.js +1 -1
  14. package/dist/atomic/components/atomic-format-unit.js +1 -1
  15. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -440
  16. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js.map +1 -1
  17. package/dist/{esm/atomic-generated-answer-feedback-modal.entry.js → atomic/components/atomic-generated-answer-feedback-modal2.js} +55 -25
  18. package/dist/atomic/components/atomic-generated-answer-feedback-modal2.js.map +1 -0
  19. package/dist/atomic/components/atomic-generated-answer.js +91 -28
  20. package/dist/atomic/components/atomic-generated-answer.js.map +1 -1
  21. package/dist/atomic/components/atomic-html2.js +1 -1
  22. package/dist/atomic/components/atomic-insight-folded-result-list.js +1 -1
  23. package/dist/atomic/components/atomic-insight-generated-answer.js +98 -34
  24. package/dist/atomic/components/atomic-insight-generated-answer.js.map +1 -1
  25. package/dist/atomic/components/atomic-insight-history-toggle.js +1 -1
  26. package/dist/atomic/components/atomic-insight-no-results.js +1 -1
  27. package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
  28. package/dist/atomic/components/atomic-insight-pager.js +3 -3
  29. package/dist/atomic/components/atomic-insight-query-error.js +1 -1
  30. package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
  31. package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
  32. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
  33. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  34. package/dist/atomic/components/atomic-insight-result-list.js +1 -1
  35. package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
  36. package/dist/atomic/components/atomic-insight-result2.js +1 -1
  37. package/dist/atomic/components/atomic-insight-search-box.js +2 -2
  38. package/dist/atomic/components/atomic-insight-smart-snippet-feedback-modal2.js +2 -2
  39. package/dist/atomic/components/atomic-insight-tabs.js +1 -1
  40. package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
  41. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
  42. package/dist/atomic/components/atomic-ipx-body2.js +2 -2
  43. package/dist/atomic/components/atomic-ipx-button.js +2 -2
  44. package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
  45. package/dist/atomic/components/atomic-ipx-modal.js +2 -2
  46. package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
  47. package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
  48. package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
  49. package/dist/atomic/components/atomic-ipx-result-link.js +2 -2
  50. package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
  51. package/dist/atomic/components/atomic-load-more-results.js +1 -1
  52. package/dist/atomic/components/atomic-no-results.js +1 -1
  53. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  54. package/dist/atomic/components/atomic-pager.js +3 -3
  55. package/dist/atomic/components/atomic-popover.js +1 -1
  56. package/dist/atomic/components/atomic-query-error.js +1 -1
  57. package/dist/atomic/components/atomic-query-summary.js +1 -1
  58. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  59. package/dist/atomic/components/atomic-quickview.js +1 -1
  60. package/dist/atomic/components/atomic-recs-error.js +1 -1
  61. package/dist/atomic/components/atomic-recs-list.js +1 -1
  62. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  63. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  64. package/dist/atomic/components/atomic-relevance-inspector2.js +2 -2
  65. package/dist/atomic/components/atomic-result-children.js +1 -1
  66. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  67. package/dist/atomic/components/atomic-result-link.js +2 -2
  68. package/dist/atomic/components/atomic-result-list.js +1 -1
  69. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  70. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
  71. package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
  72. package/dist/atomic/components/atomic-search-box.js +4 -4
  73. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  74. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  75. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  76. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  77. package/dist/atomic/components/attributes-slot.js +1 -1
  78. package/dist/atomic/components/createPopper.js +1 -1
  79. package/dist/atomic/components/{generated-answer-common.js → generated-answer-renderer.js} +159 -247
  80. package/dist/atomic/components/generated-answer-renderer.js.map +1 -0
  81. package/dist/atomic/components/global/environment.js +1 -1
  82. package/dist/atomic/components/popper-lite.js +1 -1
  83. package/dist/atomic/components/slot-utils.js +1 -1
  84. package/dist/atomic/components/tab-popover.js +1 -1
  85. package/dist/atomic/p-027b85e5.js +2 -0
  86. package/dist/atomic/{p-bed5a86b.js.map → p-027b85e5.js.map} +1 -1
  87. package/dist/atomic/{p-5db0ffd7.entry.js → p-0565e73b.entry.js} +2 -2
  88. package/dist/atomic/{p-f2bae47c.entry.js → p-061fb6f9.entry.js} +2 -2
  89. package/dist/atomic/{p-8044bbe4.entry.js → p-064567c3.entry.js} +2 -2
  90. package/dist/atomic/{p-7b9026d7.js → p-07f25674.js} +2 -2
  91. package/dist/atomic/{p-75b863ea.entry.js → p-0a76cd30.entry.js} +2 -2
  92. package/dist/atomic/{p-c727cd49.entry.js → p-0d32a5f2.entry.js} +2 -2
  93. package/dist/atomic/{p-eb026d69.entry.js → p-129799b2.entry.js} +2 -2
  94. package/dist/atomic/{p-3bda3e96.entry.js → p-12e41bc3.entry.js} +2 -2
  95. package/dist/atomic/{p-8b6aaeed.entry.js → p-15048f34.entry.js} +2 -2
  96. package/dist/atomic/{p-7464f00a.entry.js → p-15214935.entry.js} +2 -2
  97. package/dist/atomic/{p-a3aaf456.entry.js → p-19db78c9.entry.js} +2 -2
  98. package/dist/atomic/{p-fb26a29f.entry.js → p-24302330.entry.js} +2 -2
  99. package/dist/atomic/{p-c19a9af4.entry.js → p-25263126.entry.js} +2 -2
  100. package/dist/atomic/{p-633628d5.entry.js → p-25c09399.entry.js} +2 -2
  101. package/dist/atomic/{p-77ae34ce.entry.js → p-37d6236f.entry.js} +2 -2
  102. package/dist/atomic/{p-db9ca9c3.entry.js → p-395b2384.entry.js} +2 -2
  103. package/dist/atomic/{p-1e21a920.entry.js → p-3fd98a23.entry.js} +2 -2
  104. package/dist/atomic/{p-100da102.entry.js → p-40c4d7ac.entry.js} +2 -2
  105. package/dist/atomic/{p-db3dce80.entry.js → p-452b7ae6.entry.js} +2 -2
  106. package/dist/atomic/{p-946fe85f.js → p-4aaffb59.js} +2 -2
  107. package/dist/atomic/{p-9da1c516.entry.js → p-4bf5df6f.entry.js} +2 -2
  108. package/dist/atomic/{p-6083c9be.entry.js → p-4d15767c.entry.js} +2 -2
  109. package/dist/atomic/{p-d172edcc.entry.js → p-5459a1f0.entry.js} +2 -2
  110. package/dist/atomic/{p-2f668825.entry.js → p-556d401d.entry.js} +2 -2
  111. package/dist/atomic/{p-c35fb052.entry.js → p-55e41484.entry.js} +2 -2
  112. package/dist/atomic/{p-48c8a766.entry.js → p-5730dec7.entry.js} +2 -2
  113. package/dist/atomic/{p-4eb5bc54.entry.js → p-5a366eac.entry.js} +2 -2
  114. package/dist/atomic/p-5d785d02.entry.js +2 -0
  115. package/dist/atomic/p-5d785d02.entry.js.map +1 -0
  116. package/dist/atomic/p-632046cf.entry.js +2 -0
  117. package/dist/atomic/{p-dc89e560.entry.js → p-6c7d88eb.entry.js} +2 -2
  118. package/dist/atomic/{p-27064d6e.entry.js → p-6f151c5f.entry.js} +2 -2
  119. package/dist/atomic/{p-444bff80.entry.js → p-77160de0.entry.js} +2 -2
  120. package/dist/atomic/{p-a1924914.entry.js → p-789c166b.entry.js} +2 -2
  121. package/dist/atomic/{p-8b80d576.entry.js → p-80b418c5.entry.js} +2 -2
  122. package/dist/atomic/{p-fbacb7a0.entry.js → p-8321376b.entry.js} +2 -2
  123. package/dist/atomic/{p-731b7ad8.entry.js → p-83d0fa08.entry.js} +2 -2
  124. package/dist/atomic/p-847d1273.entry.js +2 -0
  125. package/dist/atomic/{p-5afe99b1.entry.js → p-85dcd0b8.entry.js} +2 -2
  126. package/dist/atomic/{p-ba67a16b.js → p-87c13ba0.js} +2 -2
  127. package/dist/atomic/{p-ba67a16b.js.map → p-87c13ba0.js.map} +1 -1
  128. package/dist/atomic/{p-009525f1.entry.js → p-88f0bb62.entry.js} +2 -2
  129. package/dist/atomic/{p-113cc160.entry.js → p-8baf5ec4.entry.js} +2 -2
  130. package/dist/atomic/{p-bfdecd0f.entry.js → p-8bdd7a67.entry.js} +2 -2
  131. package/dist/atomic/{p-e392095a.entry.js → p-8dec58c0.entry.js} +2 -2
  132. package/dist/atomic/{p-f9289f2f.entry.js → p-8f277cb8.entry.js} +2 -2
  133. package/dist/atomic/{p-8d0b9f5a.entry.js → p-9742f412.entry.js} +2 -2
  134. package/dist/atomic/{p-882a99f5.entry.js → p-99d5f93b.entry.js} +2 -2
  135. package/dist/atomic/{p-b0bd2709.entry.js → p-9cb248b7.entry.js} +2 -2
  136. package/dist/atomic/{p-5c813055.entry.js → p-9de46009.entry.js} +2 -2
  137. package/dist/atomic/p-aad40b42.js +2 -0
  138. package/dist/atomic/p-aad40b42.js.map +1 -0
  139. package/dist/atomic/{p-ca0a32dc.entry.js → p-afe08816.entry.js} +2 -2
  140. package/dist/atomic/{p-09924944.entry.js → p-b5d80111.entry.js} +2 -2
  141. package/dist/atomic/{p-04481727.entry.js → p-b8b26796.entry.js} +2 -2
  142. package/dist/atomic/{p-b6c5584a.entry.js → p-bc03189c.entry.js} +2 -2
  143. package/dist/atomic/{p-09934c1e.entry.js → p-c7fc7d32.entry.js} +2 -2
  144. package/dist/atomic/p-ccfe600e.entry.js +2 -0
  145. package/dist/atomic/p-ccfe600e.entry.js.map +1 -0
  146. package/dist/atomic/{p-22ef68f4.entry.js → p-cdf2f41d.entry.js} +2 -2
  147. package/dist/atomic/{p-58fe83ae.entry.js → p-d23032ec.entry.js} +2 -2
  148. package/dist/atomic/{p-31d3304c.entry.js → p-d554cf29.entry.js} +2 -2
  149. package/dist/atomic/{p-9a72f043.entry.js → p-d6937e96.entry.js} +2 -2
  150. package/dist/atomic/{p-2b76b255.entry.js → p-d6992ca7.entry.js} +2 -2
  151. package/dist/atomic/{p-4dd88abc.entry.js → p-d91d00a0.entry.js} +2 -2
  152. package/dist/atomic/{p-d5628c4c.entry.js → p-dbac498d.entry.js} +2 -2
  153. package/dist/atomic/{p-91d64c67.entry.js → p-dbeed413.entry.js} +2 -2
  154. package/dist/atomic/p-dbf8b517.entry.js +2 -0
  155. package/dist/atomic/p-dbf8b517.entry.js.map +1 -0
  156. package/dist/atomic/{p-005dcc88.entry.js → p-e1a6502d.entry.js} +2 -2
  157. package/dist/atomic/{p-d3e1a9aa.entry.js → p-e8dd2a37.entry.js} +2 -2
  158. package/dist/atomic/{p-f5f8990e.entry.js → p-eecdba00.entry.js} +2 -2
  159. package/dist/atomic/{p-2a7ac870.entry.js → p-f165c179.entry.js} +2 -2
  160. package/dist/atomic/{p-ac8941e8.entry.js → p-f79fda00.entry.js} +2 -2
  161. package/dist/atomic/{p-09a5ef74.entry.js → p-fe934267.entry.js} +2 -2
  162. package/dist/cjs/_loader.cjs.js +1 -1
  163. package/dist/cjs/{analytics-config-f34a68ee.js → analytics-config-27e563ce.js} +2 -2
  164. package/dist/cjs/analytics-config-27e563ce.js.map +1 -0
  165. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  166. package/dist/cjs/{atomic-generated-answer-feedback-modal.cjs.entry.js → atomic-citation_2.cjs.entry.js} +526 -1
  167. package/dist/cjs/atomic-citation_2.cjs.entry.js.map +1 -0
  168. package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
  169. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  170. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  171. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  172. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  173. package/dist/cjs/atomic-generated-answer.cjs.entry.js +65 -27
  174. package/dist/cjs/atomic-generated-answer.cjs.entry.js.map +1 -1
  175. package/dist/cjs/atomic-html.cjs.entry.js +1 -1
  176. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +1 -1
  177. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +71 -32
  178. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +1 -1
  179. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +1 -1
  180. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  181. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
  182. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +1 -1
  183. package/dist/cjs/atomic-insight-pager.cjs.entry.js +3 -3
  184. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +1 -1
  185. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +2 -2
  186. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
  187. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
  188. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +1 -1
  189. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +1 -1
  190. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
  191. package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
  192. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +2 -2
  193. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  194. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
  195. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
  196. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
  197. package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -2
  198. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
  199. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +1 -1
  200. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -2
  201. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +1 -1
  202. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +1 -1
  203. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
  204. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  205. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
  206. package/dist/cjs/atomic-load-more-results.cjs.entry.js +1 -1
  207. package/dist/cjs/atomic-no-results.cjs.entry.js +1 -1
  208. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -1
  209. package/dist/cjs/atomic-pager.cjs.entry.js +3 -3
  210. package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
  211. package/dist/cjs/atomic-query-summary.cjs.entry.js +1 -1
  212. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  213. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  214. package/dist/cjs/atomic-recs-error.cjs.entry.js +1 -1
  215. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  216. package/dist/cjs/atomic-recs-list.cjs.entry.js +1 -1
  217. package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
  218. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  219. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js +2 -2
  220. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  221. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  222. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  223. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  224. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +1 -1
  225. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +2 -2
  226. package/dist/cjs/atomic-search-box.cjs.entry.js +4 -4
  227. package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
  228. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  229. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  230. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  231. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  232. package/dist/cjs/atomic.cjs.js +1 -1
  233. package/dist/cjs/{generated-answer-common-4cd4b7c6.js → generated-answer-renderer-b91052b8.js} +164 -247
  234. package/dist/cjs/generated-answer-renderer-b91052b8.js.map +1 -0
  235. package/dist/cjs/index-757bc886.js +4 -8
  236. package/dist/cjs/version.cjs.js +2 -2
  237. package/dist/esm/_loader.js +1 -1
  238. package/dist/esm/{analytics-config-672b6eba.js → analytics-config-9607b4dd.js} +2 -2
  239. package/dist/esm/analytics-config-9607b4dd.js.map +1 -0
  240. package/dist/esm/atomic-category-facet.entry.js +1 -1
  241. package/dist/esm/atomic-citation_2.entry.js +938 -0
  242. package/dist/esm/atomic-citation_2.entry.js.map +1 -0
  243. package/dist/esm/atomic-facet-manager.entry.js +1 -1
  244. package/dist/esm/atomic-facet.entry.js +1 -1
  245. package/dist/esm/atomic-format-currency.entry.js +1 -1
  246. package/dist/esm/atomic-format-number.entry.js +1 -1
  247. package/dist/esm/atomic-format-unit.entry.js +1 -1
  248. package/dist/esm/atomic-generated-answer.entry.js +67 -29
  249. package/dist/esm/atomic-generated-answer.entry.js.map +1 -1
  250. package/dist/esm/atomic-html.entry.js +1 -1
  251. package/dist/esm/atomic-insight-folded-result-list.entry.js +1 -1
  252. package/dist/esm/atomic-insight-generated-answer.entry.js +74 -35
  253. package/dist/esm/atomic-insight-generated-answer.entry.js.map +1 -1
  254. package/dist/esm/atomic-insight-history-toggle.entry.js +1 -1
  255. package/dist/esm/atomic-insight-interface.entry.js +1 -1
  256. package/dist/esm/atomic-insight-no-results.entry.js +1 -1
  257. package/dist/esm/atomic-insight-numeric-facet.entry.js +1 -1
  258. package/dist/esm/atomic-insight-pager.entry.js +3 -3
  259. package/dist/esm/atomic-insight-query-error.entry.js +1 -1
  260. package/dist/esm/atomic-insight-refine-modal.entry.js +2 -2
  261. package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
  262. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
  263. package/dist/esm/atomic-insight-result-children.entry.js +1 -1
  264. package/dist/esm/atomic-insight-result-list.entry.js +1 -1
  265. package/dist/esm/atomic-insight-result-quickview-action.entry.js +1 -1
  266. package/dist/esm/atomic-insight-result.entry.js +1 -1
  267. package/dist/esm/atomic-insight-search-box.entry.js +2 -2
  268. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +2 -2
  269. package/dist/esm/atomic-insight-tabs.entry.js +1 -1
  270. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
  271. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
  272. package/dist/esm/atomic-ipx-body.entry.js +2 -2
  273. package/dist/esm/atomic-ipx-button.entry.js +2 -2
  274. package/dist/esm/atomic-ipx-embedded.entry.js +1 -1
  275. package/dist/esm/atomic-ipx-modal.entry.js +2 -2
  276. package/dist/esm/atomic-ipx-recs-list.entry.js +1 -1
  277. package/dist/esm/atomic-ipx-refine-modal.entry.js +1 -1
  278. package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
  279. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  280. package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
  281. package/dist/esm/atomic-load-more-results.entry.js +1 -1
  282. package/dist/esm/atomic-no-results.entry.js +1 -1
  283. package/dist/esm/atomic-numeric-facet.entry.js +1 -1
  284. package/dist/esm/atomic-pager.entry.js +3 -3
  285. package/dist/esm/atomic-popover.entry.js +2 -2
  286. package/dist/esm/atomic-query-error.entry.js +1 -1
  287. package/dist/esm/atomic-query-summary.entry.js +1 -1
  288. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  289. package/dist/esm/atomic-quickview.entry.js +1 -1
  290. package/dist/esm/atomic-recs-error.entry.js +1 -1
  291. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  292. package/dist/esm/atomic-recs-list.entry.js +1 -1
  293. package/dist/esm/atomic-refine-modal.entry.js +1 -1
  294. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  295. package/dist/esm/atomic-relevance-inspector.entry.js +2 -2
  296. package/dist/esm/atomic-result-children.entry.js +1 -1
  297. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  298. package/dist/esm/atomic-result-link.entry.js +1 -1
  299. package/dist/esm/atomic-result-list.entry.js +1 -1
  300. package/dist/esm/atomic-result-placeholder_8.entry.js +1 -1
  301. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +3 -3
  302. package/dist/esm/atomic-search-box.entry.js +5 -5
  303. package/dist/esm/atomic-search-interface.entry.js +2 -2
  304. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  305. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  306. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  307. package/dist/esm/atomic-tab-bar_2.entry.js +2 -2
  308. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  309. package/dist/esm/atomic.js +1 -1
  310. package/dist/esm/{createPopper-a633eb88.js → createPopper-ed15cfea.js} +2 -2
  311. package/dist/esm/{createPopper-a633eb88.js.map → createPopper-ed15cfea.js.map} +1 -1
  312. package/dist/esm/{generated-answer-common-06146290.js → generated-answer-renderer-469d25f0.js} +159 -247
  313. package/dist/esm/generated-answer-renderer-469d25f0.js.map +1 -0
  314. package/dist/esm/index-3f35faca.js +4 -8
  315. package/dist/esm/{local-storage-utils-410269e6.js → local-storage-utils-a4bf8fba.js} +2 -2
  316. package/dist/esm/{local-storage-utils-410269e6.js.map → local-storage-utils-a4bf8fba.js.map} +1 -1
  317. package/dist/esm/{popper-lite-2035100c.js → popper-lite-4b6382b2.js} +2 -2
  318. package/dist/esm/{popper-lite-2035100c.js.map → popper-lite-4b6382b2.js.map} +1 -1
  319. package/dist/esm/version.js +2 -2
  320. package/dist/types/components/common/generated-answer/generated-answer-common.d.ts +15 -54
  321. package/dist/types/components/common/generated-answer/generated-answer-renderer.d.ts +25 -0
  322. package/dist/types/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.d.ts +11 -3
  323. package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +9 -1
  324. package/docs/atomic-docs.json +17 -3
  325. package/package.json +3 -3
  326. package/dist/atomic/components/generated-answer-common.js.map +0 -1
  327. package/dist/atomic/p-0c076058.entry.js +0 -2
  328. package/dist/atomic/p-0c076058.entry.js.map +0 -1
  329. package/dist/atomic/p-421850f9.entry.js +0 -2
  330. package/dist/atomic/p-421850f9.entry.js.map +0 -1
  331. package/dist/atomic/p-52121e1e.entry.js +0 -2
  332. package/dist/atomic/p-579c5b46.entry.js +0 -2
  333. package/dist/atomic/p-579c5b46.entry.js.map +0 -1
  334. package/dist/atomic/p-5fca1435.js +0 -2
  335. package/dist/atomic/p-5fca1435.js.map +0 -1
  336. package/dist/atomic/p-bed5a86b.js +0 -2
  337. package/dist/atomic/p-d5d1c5c0.entry.js +0 -2
  338. package/dist/atomic/p-e27e1e46.entry.js +0 -2
  339. package/dist/atomic/p-e27e1e46.entry.js.map +0 -1
  340. package/dist/cjs/analytics-config-f34a68ee.js.map +0 -1
  341. package/dist/cjs/atomic-citation.cjs.entry.js +0 -533
  342. package/dist/cjs/atomic-citation.cjs.entry.js.map +0 -1
  343. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js.map +0 -1
  344. package/dist/cjs/generated-answer-common-4cd4b7c6.js.map +0 -1
  345. package/dist/esm/analytics-config-672b6eba.js.map +0 -1
  346. package/dist/esm/atomic-citation.entry.js.map +0 -1
  347. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js.map +0 -1
  348. package/dist/esm/generated-answer-common-06146290.js.map +0 -1
  349. /package/dist/atomic/{p-5db0ffd7.entry.js.map → p-0565e73b.entry.js.map} +0 -0
  350. /package/dist/atomic/{p-f2bae47c.entry.js.map → p-061fb6f9.entry.js.map} +0 -0
  351. /package/dist/atomic/{p-8044bbe4.entry.js.map → p-064567c3.entry.js.map} +0 -0
  352. /package/dist/atomic/{p-7b9026d7.js.map → p-07f25674.js.map} +0 -0
  353. /package/dist/atomic/{p-75b863ea.entry.js.map → p-0a76cd30.entry.js.map} +0 -0
  354. /package/dist/atomic/{p-c727cd49.entry.js.map → p-0d32a5f2.entry.js.map} +0 -0
  355. /package/dist/atomic/{p-eb026d69.entry.js.map → p-129799b2.entry.js.map} +0 -0
  356. /package/dist/atomic/{p-3bda3e96.entry.js.map → p-12e41bc3.entry.js.map} +0 -0
  357. /package/dist/atomic/{p-8b6aaeed.entry.js.map → p-15048f34.entry.js.map} +0 -0
  358. /package/dist/atomic/{p-7464f00a.entry.js.map → p-15214935.entry.js.map} +0 -0
  359. /package/dist/atomic/{p-a3aaf456.entry.js.map → p-19db78c9.entry.js.map} +0 -0
  360. /package/dist/atomic/{p-fb26a29f.entry.js.map → p-24302330.entry.js.map} +0 -0
  361. /package/dist/atomic/{p-c19a9af4.entry.js.map → p-25263126.entry.js.map} +0 -0
  362. /package/dist/atomic/{p-633628d5.entry.js.map → p-25c09399.entry.js.map} +0 -0
  363. /package/dist/atomic/{p-77ae34ce.entry.js.map → p-37d6236f.entry.js.map} +0 -0
  364. /package/dist/atomic/{p-db9ca9c3.entry.js.map → p-395b2384.entry.js.map} +0 -0
  365. /package/dist/atomic/{p-1e21a920.entry.js.map → p-3fd98a23.entry.js.map} +0 -0
  366. /package/dist/atomic/{p-100da102.entry.js.map → p-40c4d7ac.entry.js.map} +0 -0
  367. /package/dist/atomic/{p-db3dce80.entry.js.map → p-452b7ae6.entry.js.map} +0 -0
  368. /package/dist/atomic/{p-946fe85f.js.map → p-4aaffb59.js.map} +0 -0
  369. /package/dist/atomic/{p-9da1c516.entry.js.map → p-4bf5df6f.entry.js.map} +0 -0
  370. /package/dist/atomic/{p-6083c9be.entry.js.map → p-4d15767c.entry.js.map} +0 -0
  371. /package/dist/atomic/{p-d172edcc.entry.js.map → p-5459a1f0.entry.js.map} +0 -0
  372. /package/dist/atomic/{p-2f668825.entry.js.map → p-556d401d.entry.js.map} +0 -0
  373. /package/dist/atomic/{p-c35fb052.entry.js.map → p-55e41484.entry.js.map} +0 -0
  374. /package/dist/atomic/{p-48c8a766.entry.js.map → p-5730dec7.entry.js.map} +0 -0
  375. /package/dist/atomic/{p-4eb5bc54.entry.js.map → p-5a366eac.entry.js.map} +0 -0
  376. /package/dist/atomic/{p-d5d1c5c0.entry.js.map → p-632046cf.entry.js.map} +0 -0
  377. /package/dist/atomic/{p-dc89e560.entry.js.map → p-6c7d88eb.entry.js.map} +0 -0
  378. /package/dist/atomic/{p-27064d6e.entry.js.map → p-6f151c5f.entry.js.map} +0 -0
  379. /package/dist/atomic/{p-444bff80.entry.js.map → p-77160de0.entry.js.map} +0 -0
  380. /package/dist/atomic/{p-a1924914.entry.js.map → p-789c166b.entry.js.map} +0 -0
  381. /package/dist/atomic/{p-8b80d576.entry.js.map → p-80b418c5.entry.js.map} +0 -0
  382. /package/dist/atomic/{p-fbacb7a0.entry.js.map → p-8321376b.entry.js.map} +0 -0
  383. /package/dist/atomic/{p-731b7ad8.entry.js.map → p-83d0fa08.entry.js.map} +0 -0
  384. /package/dist/atomic/{p-52121e1e.entry.js.map → p-847d1273.entry.js.map} +0 -0
  385. /package/dist/atomic/{p-5afe99b1.entry.js.map → p-85dcd0b8.entry.js.map} +0 -0
  386. /package/dist/atomic/{p-009525f1.entry.js.map → p-88f0bb62.entry.js.map} +0 -0
  387. /package/dist/atomic/{p-113cc160.entry.js.map → p-8baf5ec4.entry.js.map} +0 -0
  388. /package/dist/atomic/{p-bfdecd0f.entry.js.map → p-8bdd7a67.entry.js.map} +0 -0
  389. /package/dist/atomic/{p-e392095a.entry.js.map → p-8dec58c0.entry.js.map} +0 -0
  390. /package/dist/atomic/{p-f9289f2f.entry.js.map → p-8f277cb8.entry.js.map} +0 -0
  391. /package/dist/atomic/{p-8d0b9f5a.entry.js.map → p-9742f412.entry.js.map} +0 -0
  392. /package/dist/atomic/{p-882a99f5.entry.js.map → p-99d5f93b.entry.js.map} +0 -0
  393. /package/dist/atomic/{p-b0bd2709.entry.js.map → p-9cb248b7.entry.js.map} +0 -0
  394. /package/dist/atomic/{p-5c813055.entry.js.map → p-9de46009.entry.js.map} +0 -0
  395. /package/dist/atomic/{p-ca0a32dc.entry.js.map → p-afe08816.entry.js.map} +0 -0
  396. /package/dist/atomic/{p-09924944.entry.js.map → p-b5d80111.entry.js.map} +0 -0
  397. /package/dist/atomic/{p-04481727.entry.js.map → p-b8b26796.entry.js.map} +0 -0
  398. /package/dist/atomic/{p-b6c5584a.entry.js.map → p-bc03189c.entry.js.map} +0 -0
  399. /package/dist/atomic/{p-09934c1e.entry.js.map → p-c7fc7d32.entry.js.map} +0 -0
  400. /package/dist/atomic/{p-22ef68f4.entry.js.map → p-cdf2f41d.entry.js.map} +0 -0
  401. /package/dist/atomic/{p-58fe83ae.entry.js.map → p-d23032ec.entry.js.map} +0 -0
  402. /package/dist/atomic/{p-31d3304c.entry.js.map → p-d554cf29.entry.js.map} +0 -0
  403. /package/dist/atomic/{p-9a72f043.entry.js.map → p-d6937e96.entry.js.map} +0 -0
  404. /package/dist/atomic/{p-2b76b255.entry.js.map → p-d6992ca7.entry.js.map} +0 -0
  405. /package/dist/atomic/{p-4dd88abc.entry.js.map → p-d91d00a0.entry.js.map} +0 -0
  406. /package/dist/atomic/{p-d5628c4c.entry.js.map → p-dbac498d.entry.js.map} +0 -0
  407. /package/dist/atomic/{p-91d64c67.entry.js.map → p-dbeed413.entry.js.map} +0 -0
  408. /package/dist/atomic/{p-005dcc88.entry.js.map → p-e1a6502d.entry.js.map} +0 -0
  409. /package/dist/atomic/{p-d3e1a9aa.entry.js.map → p-e8dd2a37.entry.js.map} +0 -0
  410. /package/dist/atomic/{p-f5f8990e.entry.js.map → p-eecdba00.entry.js.map} +0 -0
  411. /package/dist/atomic/{p-2a7ac870.entry.js.map → p-f165c179.entry.js.map} +0 -0
  412. /package/dist/atomic/{p-ac8941e8.entry.js.map → p-f79fda00.entry.js.map} +0 -0
  413. /package/dist/atomic/{p-09a5ef74.entry.js.map → p-fe934267.entry.js.map} +0 -0
@@ -1,6 +1,5 @@
1
+ import { S as StorageItems, a as SafeStorage } from './local-storage-utils.js';
1
2
  import { h } from '@stencil/core/internal/client';
2
- import { a as SafeStorage, S as StorageItems } from './local-storage-utils.js';
3
- import { a as getNamedSlotFromHost } from './slot-utils.js';
4
3
  import { H as Heading } from './stencil-heading.js';
5
4
  import { B as Button } from './stencil-button.js';
6
5
  import { D as DOMPurify } from './purify.js';
@@ -8,6 +7,62 @@ import { c as commonjsGlobal } from './_commonjsHelpers.js';
8
7
  import { A as ArrowBottomIcon } from './arrow-bottom-rounded.js';
9
8
  import { A as ArrowUp } from './arrow-top-rounded.js';
10
9
 
10
+ const readGeneratedAnswerStoredData = (withToggle) => {
11
+ const storage = new SafeStorage();
12
+ const storedData = storage.getParsedJSON(StorageItems.GENERATED_ANSWER_DATA, { isVisible: true });
13
+ // This check ensures that the answer is visible when the toggle is hidden and visible is set to false in the local storage.
14
+ return { isVisible: (withToggle && storedData.isVisible) || !withToggle };
15
+ };
16
+ const writeGeneratedAnswerStoredData = (data) => {
17
+ const storage = new SafeStorage();
18
+ storage.setJSON(StorageItems.GENERATED_ANSWER_DATA, data);
19
+ };
20
+ const insertGeneratedAnswerFeedbackModal = (host, generatedAnswer) => {
21
+ const modalRef = document.createElement('atomic-generated-answer-feedback-modal');
22
+ modalRef.generatedAnswer = generatedAnswer();
23
+ host.insertAdjacentElement('beforebegin', modalRef);
24
+ return modalRef;
25
+ };
26
+ const getGeneratedAnswerStatus = (generatedAnswerState, i18n) => {
27
+ if (!generatedAnswerState || !i18n) {
28
+ return '';
29
+ }
30
+ const isHidden = !generatedAnswerState.isVisible;
31
+ const isGenerating = !!generatedAnswerState.isStreaming;
32
+ const hasAnswer = !!generatedAnswerState.answer;
33
+ const hasError = !!generatedAnswerState.error;
34
+ if (isHidden) {
35
+ return i18n.t('generated-answer-hidden');
36
+ }
37
+ if (isGenerating) {
38
+ return i18n.t('generating-answer');
39
+ }
40
+ if (hasError) {
41
+ return i18n.t('answer-could-not-be-generated');
42
+ }
43
+ if (hasAnswer) {
44
+ return i18n.t('answer-generated', {
45
+ answer: generatedAnswerState.answer,
46
+ });
47
+ }
48
+ return '';
49
+ };
50
+ const copyToClipboard = async ({ answer, setCopied, setCopyError, onLogCopyToClipboard, logger, }) => {
51
+ try {
52
+ await navigator.clipboard.writeText(answer);
53
+ setCopied(true);
54
+ onLogCopyToClipboard();
55
+ }
56
+ catch (error) {
57
+ setCopyError(true);
58
+ logger?.error(`Failed to copy to clipboard: ${error}`);
59
+ }
60
+ setTimeout(() => {
61
+ setCopied(false);
62
+ setCopyError(false);
63
+ }, 2000);
64
+ };
65
+
11
66
  const Switch = (props) => {
12
67
  const attributes = {
13
68
  onClick: () => props.onToggle?.(!props.checked),
@@ -2670,258 +2725,115 @@ const SourceCitations = (props, children) => props.isVisible ? (h("div", { class
2670
2725
  h("p", { part: "citations-label", class: "text-neutral-dark mb-2 shrink-0" }, props.label),
2671
2726
  h("ol", { class: "citations-container flex list-none flex-wrap items-center gap-2" }, children))) : null;
2672
2727
 
2673
- class GeneratedAnswerCommon {
2674
- constructor(props) {
2675
- this.props = props;
2676
- this.storage = new SafeStorage();
2677
- this._data = this.readStoredData();
2678
- }
2679
- insertFeedbackModal() {
2680
- this.modalRef = document.createElement('atomic-generated-answer-feedback-modal');
2681
- this.modalRef.generatedAnswer = this.props.getGeneratedAnswer();
2682
- this.props.host.insertAdjacentElement('beforebegin', this.modalRef);
2683
- }
2684
- readStoredData() {
2685
- const { withToggle } = this.props;
2686
- const storedData = this.storage.getParsedJSON(StorageItems.GENERATED_ANSWER_DATA, { isVisible: true });
2687
- // This check ensures that the answer is visible when the toggle is hidden and visible is set to false in the local storage.
2688
- return { isVisible: (withToggle && storedData.isVisible) || !withToggle };
2689
- }
2690
- writeStoredData(data) {
2691
- this.storage.setJSON(StorageItems.GENERATED_ANSWER_DATA, data);
2692
- }
2693
- get data() {
2694
- return this._data;
2728
+ const GeneratedAnswerRenderer = ({ onShowButtonClick, onClickDislike, onClickLike, onCopyToClipboard, collapsible, disableCitationAnchoring, copied, i18n, copyError, generatedAnswer, generatedAnswerState, withToggle, isAnswerVisible, hasRetryableError, hasClipboard, hasNoAnswerGenerated, hasCustomNoAnswerMessage, buildInteractiveCitationForCitation }) => {
2729
+ if (hasNoAnswerGenerated) {
2730
+ return generatedAnswerState?.cannotAnswer && hasCustomNoAnswerMessage ? (h(GeneratedAnswerWrapper, null,
2731
+ h(GeneratedAnswerNoAnswerMessage, { i18n: i18n },
2732
+ h("slot", { name: "no-answer-message" })))) : null;
2695
2733
  }
2696
- set data(newData) {
2697
- this._data = newData;
2698
- }
2699
- getGeneratedAnswerStatus() {
2700
- const isHidden = !this.props.getGeneratedAnswerState()?.isVisible;
2701
- const isGenerating = !!this.props.getGeneratedAnswerState()?.isStreaming;
2702
- const hasAnswer = !!this.props.getGeneratedAnswerState()?.answer;
2703
- const hasError = !!this.props.getGeneratedAnswerState()?.error;
2704
- if (isHidden) {
2705
- return this.props.getBindings().i18n.t('generated-answer-hidden');
2706
- }
2707
- if (isGenerating) {
2708
- return this.props.getBindings().i18n.t('generating-answer');
2709
- }
2710
- if (hasError) {
2711
- return this.props.getBindings().i18n.t('answer-could-not-be-generated');
2712
- }
2713
- if (hasAnswer) {
2714
- return this.props.getBindings().i18n.t('answer-generated', {
2715
- answer: this.props.getGeneratedAnswerState()?.answer,
2716
- });
2717
- }
2718
- return '';
2719
- }
2720
- get hasRetryableError() {
2721
- return (!this.props.getSearchStatusState()?.hasError &&
2722
- this.props.getGeneratedAnswerState()?.error?.isRetryable);
2723
- }
2724
- get hasNoAnswerGenerated() {
2725
- const { answer, citations } = this.props.getGeneratedAnswerState() ?? {};
2726
- return (answer === undefined && !citations?.length && !this.hasRetryableError);
2727
- }
2728
- get isAnswerVisible() {
2729
- return this.props.getGeneratedAnswerState()?.isVisible;
2730
- }
2731
- get toggleTooltip() {
2732
- const key = this.isAnswerVisible
2733
- ? 'generated-answer-toggle-on'
2734
- : 'generated-answer-toggle-off';
2735
- return this.props.getBindings().i18n.t(key);
2736
- }
2737
- get hasClipboard() {
2738
- return !!navigator?.clipboard?.writeText;
2739
- }
2740
- get copyToClipboardTooltip() {
2741
- if (this.props.getCopyError()) {
2742
- return this.props.getBindings().i18n.t('failed-to-copy-generated-answer');
2743
- }
2744
- return !this.props.getCopied()
2745
- ? this.props.getBindings().i18n.t('copy-generated-answer')
2746
- : this.props.getBindings().i18n.t('generated-answer-copied');
2747
- }
2748
- get hasCustomNoAnswerMessage() {
2749
- const slot = getNamedSlotFromHost(this.props.host, 'no-answer-message');
2750
- return !!slot;
2751
- }
2752
- async copyToClipboard(answer) {
2753
- try {
2754
- await navigator.clipboard.writeText(answer);
2755
- this.props.setCopied(true);
2756
- this.props.getGeneratedAnswer()?.logCopyToClipboard();
2757
- }
2758
- catch (error) {
2759
- this.props.setCopyError(true);
2760
- this.props
2761
- .getBindings()
2762
- .engine.logger.error(`Failed to copy to clipboard: ${error}`);
2763
- }
2764
- setTimeout(() => {
2765
- this.props.setCopied(false);
2766
- this.props.setCopyError(false);
2767
- }, 2000);
2734
+ return h(GeneratedAnswerWrapper, null,
2735
+ h("div", { part: "generated-content" },
2736
+ h(GeneratedAnswerHeader, { i18n: i18n, isAnswerVisible: !!isAnswerVisible, withToggle: withToggle, onToggle: (checked) => {
2737
+ checked ? generatedAnswer?.show() : generatedAnswer?.hide();
2738
+ } }),
2739
+ hasRetryableError && isAnswerVisible ? (h(GeneratedAnswerRetryPrompt, { i18n: i18n, onRetry: () => generatedAnswer?.retry() })) : null,
2740
+ !hasRetryableError && isAnswerVisible ? (h(GeneratedAnswerContent, { answer: generatedAnswerState?.answer, answerContentFormat: generatedAnswerState?.answerContentFormat, citations: generatedAnswerState?.citations, i18n: i18n, isStreaming: generatedAnswerState?.isStreaming, copied: copied, copyError: copyError, generatedAnswerState: generatedAnswerState, withToggle: withToggle, onClickDislike: onClickDislike, onClickLike: onClickLike, onCopyToClipboard: onCopyToClipboard, hasClipboard: hasClipboard, disableCitationAnchoring: disableCitationAnchoring, buildInteractiveCitationForCitation: buildInteractiveCitationForCitation, generatedAnswer: generatedAnswer })) : null,
2741
+ !hasRetryableError && isAnswerVisible && (h(GeneratedAnswerFooter, { collapsible: collapsible, expanded: generatedAnswerState?.expanded, i18n: i18n, isStreaming: generatedAnswerState?.isStreaming, onShowButtonClick: onShowButtonClick },
2742
+ h(GeneratedAnswerDisclaimer, { isStreaming: generatedAnswerState?.isStreaming, i18n: i18n },
2743
+ h("slot", { name: "disclaimer", slot: "disclaimer" }, i18n.t('generated-answer-disclaimer')))))));
2744
+ };
2745
+ const GeneratedAnswerWrapper = ({ contentClasses }, children) => {
2746
+ const classes = contentClasses ||
2747
+ 'mx-auto mt-0 mb-4 border border-neutral shadow-lg p-6 bg-background rounded-lg p-6 text-on-background';
2748
+ return (h("div", null,
2749
+ h("aside", { class: classes, part: "container" },
2750
+ h("article", null, children))));
2751
+ };
2752
+ const GeneratedAnswerHeader = ({ i18n, isAnswerVisible, withToggle, onToggle }) => {
2753
+ const toggleTooltip = isAnswerVisible
2754
+ ? i18n.t('generated-answer-toggle-on')
2755
+ : i18n.t('generated-answer-toggle-off');
2756
+ return (h("div", { class: "flex items-center" },
2757
+ h(Heading, { level: 0, part: "header-label", class: "text-primary bg-primary-background inline-block rounded-md px-2.5 py-2 font-medium" }, i18n.t('generated-answer-title')),
2758
+ h("div", { class: "ml-auto flex h-9 items-center" },
2759
+ h(Switch, { part: "toggle", checked: isAnswerVisible, onToggle: onToggle, ariaLabel: i18n.t('generated-answer-title'), title: toggleTooltip, withToggle: withToggle }))));
2760
+ };
2761
+ const GeneratedAnswerFeedbackAndCopyButtons = ({ copied, copyError, disliked, hasClipboard, i18n, isStreaming, liked, withToggle, onClickDislike, onClickLike, onCopyToClipboard, }) => {
2762
+ const containerClasses = [
2763
+ 'feedback-buttons',
2764
+ 'flex',
2765
+ 'h-9',
2766
+ 'absolute',
2767
+ 'top-6',
2768
+ 'shrink-0',
2769
+ 'gap-2',
2770
+ withToggle ? 'right-20' : 'right-6',
2771
+ ].join(' ');
2772
+ if (isStreaming) {
2773
+ return null;
2768
2774
  }
2769
- clickOnShowButton() {
2770
- if (this.props.getGeneratedAnswerState()?.expanded) {
2771
- this.props.getGeneratedAnswer()?.collapse();
2772
- }
2773
- else {
2774
- this.props.getGeneratedAnswer()?.expand();
2775
- }
2775
+ const copyToClipboardTooltip = copyError
2776
+ ? i18n.t('failed-to-copy-generated-answer')
2777
+ : !copied
2778
+ ? i18n.t('copy-generated-answer')
2779
+ : i18n.t('generated-answer-copied');
2780
+ return (h("div", { class: containerClasses },
2781
+ h(FeedbackButton, { title: i18n.t('this-answer-was-helpful'), variant: "like", active: !!liked, onClick: onClickLike }),
2782
+ h(FeedbackButton, { title: i18n.t('this-answer-was-not-helpful'), variant: "dislike", active: !!disliked, onClick: onClickDislike }),
2783
+ hasClipboard ? (h(CopyButton, { title: copyToClipboardTooltip, isCopied: copied, error: copyError, onClick: onCopyToClipboard })) : null));
2784
+ };
2785
+ const GeneratedAnswerCitations = ({ citations, disableCitationAnchoring, buildInteractiveCitation, onLogCitationHover, i18n, }) => {
2786
+ if (!citations?.length) {
2787
+ return [];
2776
2788
  }
2777
- getCitation(citation) {
2789
+ const getCitation = (citation) => {
2778
2790
  const { title } = citation;
2779
- const { i18n } = this.props.getBindings();
2780
2791
  return title.trim() !== ''
2781
2792
  ? citation
2782
- : { ...citation, title: i18n.t('no-title') };
2783
- }
2784
- renderCitations() {
2785
- const { getGeneratedAnswerState, buildInteractiveCitation, getGeneratedAnswer, disableCitationAnchoring, } = this.props;
2786
- const { citations } = getGeneratedAnswerState() ?? {};
2787
- const { logCitationHover } = getGeneratedAnswer() ?? {};
2788
- return citations?.map((citation, index) => {
2789
- const interactiveCitation = buildInteractiveCitation({
2790
- options: {
2791
- citation,
2792
- },
2793
- });
2794
- return (h("li", { key: citation.id, class: "max-w-full" },
2795
- h("atomic-citation", { citation: this.getCitation(citation), index: index, sendHoverEndEvent: (citationHoverTimeMs) => {
2796
- logCitationHover?.(citation.id, citationHoverTimeMs);
2797
- }, interactiveCitation: interactiveCitation, disableCitationAnchoring: disableCitationAnchoring, exportparts: "citation,citation-popover" })));
2798
- });
2799
- }
2800
- renderFeedbackAndCopyButtons() {
2801
- const { getGeneratedAnswerState, getBindings, getCopied, getCopyError } = this.props;
2802
- const { i18n } = getBindings();
2803
- const { liked, disliked, answer, isStreaming } = getGeneratedAnswerState() ?? {};
2804
- const containerClasses = [
2805
- 'feedback-buttons',
2806
- 'flex',
2807
- 'h-9',
2808
- 'absolute',
2809
- 'top-6',
2810
- 'shrink-0',
2811
- 'gap-2',
2812
- this.props.withToggle ? 'right-20' : 'right-6',
2813
- ].join(' ');
2814
- if (isStreaming) {
2815
- return null;
2816
- }
2817
- return (h("div", { class: containerClasses },
2818
- h(FeedbackButton, { title: i18n.t('this-answer-was-helpful'), variant: "like", active: !!liked, onClick: () => this.clickLike() }),
2819
- h(FeedbackButton, { title: i18n.t('this-answer-was-not-helpful'), variant: "dislike", active: !!disliked, onClick: () => this.clickDislike() }),
2820
- this.hasClipboard ? (h(CopyButton, { title: this.copyToClipboardTooltip, isCopied: getCopied(), error: getCopyError(), onClick: async () => {
2821
- if (answer) {
2822
- await this.copyToClipboard(answer);
2823
- }
2824
- } })) : null));
2825
- }
2826
- setIsAnswerHelpful(isAnswerHelpful) {
2827
- if (this.modalRef) {
2828
- this.modalRef.helpful = isAnswerHelpful;
2829
- }
2830
- }
2831
- openFeedbackModal() {
2832
- if (this.modalRef &&
2833
- !this.props.getGeneratedAnswerState()?.feedbackSubmitted) {
2834
- this.modalRef.isOpen = true;
2835
- }
2836
- }
2837
- clickDislike() {
2838
- this.setIsAnswerHelpful(false);
2839
- this.props.getGeneratedAnswer()?.dislike();
2840
- this.openFeedbackModal();
2841
- }
2842
- clickLike() {
2843
- this.setIsAnswerHelpful(true);
2844
- this.props.getGeneratedAnswer()?.like();
2845
- this.openFeedbackModal();
2846
- }
2847
- renderDisclaimer() {
2848
- const { getGeneratedAnswerState, getBindings } = this.props;
2849
- const { i18n } = getBindings();
2850
- const { isStreaming } = getGeneratedAnswerState() ?? {};
2851
- if (isStreaming) {
2852
- return null;
2853
- }
2854
- return (h("div", { class: "text-neutral-dark text-xs/[1rem]" },
2855
- h("slot", { name: "disclaimer", slot: "disclaimer" }, i18n.t('generated-answer-disclaimer'))));
2856
- }
2857
- renderShowButton() {
2858
- const { getGeneratedAnswerState, getBindings, collapsible } = this.props;
2859
- const { i18n } = getBindings();
2860
- const { expanded, isStreaming } = getGeneratedAnswerState() ?? {};
2861
- const canRender = collapsible && !isStreaming;
2862
- if (!canRender) {
2863
- return null;
2864
- }
2865
- return (h(ShowButton, { i18n: i18n, onClick: () => this.clickOnShowButton(), isCollapsed: !expanded }));
2793
+ : { ...citation, title: i18n?.t ? i18n.t('no-title') : 'No title' };
2794
+ };
2795
+ return citations.map((citation, index) => {
2796
+ const interactiveCitation = buildInteractiveCitation?.(citation);
2797
+ return (h("li", { key: citation.id, class: "max-w-full" },
2798
+ h("atomic-citation", { citation: getCitation(citation), index: index, sendHoverEndEvent: (citationHoverTimeMs) => {
2799
+ onLogCitationHover?.(citation.id, citationHoverTimeMs);
2800
+ }, interactiveCitation: interactiveCitation, disableCitationAnchoring: disableCitationAnchoring, exportparts: "citation,citation-popover" })));
2801
+ });
2802
+ };
2803
+ const GeneratedAnswerDisclaimer = ({ isStreaming, i18n }, children) => {
2804
+ if (isStreaming) {
2805
+ return null;
2866
2806
  }
2867
- renderGeneratingAnswerLabel() {
2868
- const { getGeneratedAnswerState, getBindings, collapsible } = this.props;
2869
- const { i18n } = getBindings();
2870
- const { isStreaming } = getGeneratedAnswerState() ?? {};
2871
- const canRender = collapsible && isStreaming;
2872
- if (!canRender) {
2873
- return null;
2874
- }
2875
- return (h("div", { part: "is-generating", class: "text-primary hidden text-base font-light" },
2807
+ return (h("div", { class: "text-neutral-dark text-xs/[1rem]" }, children || i18n.t('generated-answer-disclaimer')));
2808
+ };
2809
+ const GeneratedAnswerFooter = ({ collapsible, expanded, i18n, isStreaming, onShowButtonClick }, children) => {
2810
+ const showGeneratingLabel = collapsible && isStreaming;
2811
+ const showButton = collapsible && !isStreaming;
2812
+ return (h("div", { part: "generated-answer-footer", class: "mt-6 flex justify-end" },
2813
+ showGeneratingLabel && (h("div", { part: "is-generating", class: "text-primary hidden text-base font-light" },
2876
2814
  i18n.t('generating-answer'),
2877
- "..."));
2878
- }
2879
- renderContent() {
2880
- const { getGeneratedAnswerState, getBindings, getGeneratedAnswer } = this.props;
2881
- const { i18n } = getBindings();
2882
- const { isStreaming, answer, citations, answerContentFormat } = getGeneratedAnswerState() ?? {};
2883
- return (h("div", { part: "generated-content" },
2884
- h("div", { class: "flex items-center" },
2885
- h(Heading, { level: 0, part: "header-label", class: "text-primary bg-primary-background inline-block rounded-md px-2.5 py-2 font-medium" }, i18n.t('generated-answer-title')),
2886
- h("div", { class: "ml-auto flex h-9 items-center" },
2887
- h(Switch, { part: "toggle", checked: this.isAnswerVisible, onToggle: (checked) => {
2888
- checked
2889
- ? getGeneratedAnswer()?.show()
2890
- : getGeneratedAnswer()?.hide();
2891
- }, ariaLabel: i18n.t('generated-answer-title'), title: this.toggleTooltip, withToggle: this.props.withToggle }))),
2892
- this.hasRetryableError && this.isAnswerVisible ? (h(RetryPrompt, { onClick: () => getGeneratedAnswer()?.retry(), buttonLabel: i18n.t('retry'), message: i18n.t('retry-stream-message') })) : null,
2893
- !this.hasRetryableError && this.isAnswerVisible ? (h(GeneratedContentContainer, { answer: answer, answerContentFormat: answerContentFormat, isStreaming: !!isStreaming },
2894
- this.renderFeedbackAndCopyButtons(),
2895
- h(SourceCitations, { label: i18n.t('citations'), isVisible: !!citations?.length }, this.renderCitations()))) : null,
2896
- !this.hasRetryableError && this.isAnswerVisible && (h("div", { part: "generated-answer-footer", class: "mt-6 flex justify-end" },
2897
- this.renderGeneratingAnswerLabel(),
2898
- this.renderShowButton(),
2899
- this.renderDisclaimer()))));
2900
- }
2901
- renderCustomNoAnswerMessage() {
2902
- const { getBindings } = this.props;
2903
- const { i18n } = getBindings();
2904
- return (h("div", { part: "generated-content" },
2905
- h("div", { class: "flex items-center" },
2906
- h(Heading, { level: 0, part: "header-label", class: "text-primary bg-primary-background inline-block rounded-md px-2.5 py-2 font-medium" }, i18n.t('generated-answer-title'))),
2907
- h("div", { part: "generated-container", class: "mt-6 break-words" },
2908
- h("slot", { name: "no-answer-message" }))));
2909
- }
2910
- render() {
2911
- const { getGeneratedAnswerState } = this.props;
2912
- const { cannotAnswer } = getGeneratedAnswerState() ?? {};
2913
- const contentClasses = 'mx-auto mt-0 mb-4 border border-neutral shadow-lg p-6 bg-background rounded-lg p-6 text-on-background';
2914
- if (this.hasNoAnswerGenerated) {
2915
- return cannotAnswer && this.hasCustomNoAnswerMessage ? (h("div", null,
2916
- h("aside", { class: contentClasses, part: "container" },
2917
- h("article", null, this.renderCustomNoAnswerMessage())))) : null;
2918
- }
2919
- return (h("div", null,
2920
- h("aside", { class: contentClasses, part: "container" },
2921
- h("article", null, this.renderContent()))));
2922
- }
2923
- }
2815
+ "...")),
2816
+ showButton && onShowButtonClick && (h(ShowButton, { i18n: i18n, onClick: onShowButtonClick, isCollapsed: !expanded })),
2817
+ children));
2818
+ };
2819
+ const GeneratedAnswerRetryPrompt = ({ i18n, onRetry }) => {
2820
+ return (h(RetryPrompt, { onClick: onRetry, buttonLabel: i18n.t('retry'), message: i18n.t('retry-stream-message') }));
2821
+ };
2822
+ const GeneratedAnswerContent = ({ answer, answerContentFormat, citations, i18n, isStreaming, copied, copyError, generatedAnswerState, withToggle, onClickDislike, onClickLike, onCopyToClipboard, hasClipboard, disableCitationAnchoring, buildInteractiveCitationForCitation, generatedAnswer }) => {
2823
+ return (h(GeneratedContentContainer, { answer: answer, answerContentFormat: answerContentFormat, isStreaming: !!isStreaming },
2824
+ h(GeneratedAnswerFeedbackAndCopyButtons, { copied: copied, copyError: copyError, disliked: generatedAnswerState?.disliked, hasClipboard: hasClipboard, i18n: i18n, isStreaming: generatedAnswerState?.isStreaming, liked: generatedAnswerState?.liked, withToggle: withToggle, onClickDislike: onClickDislike, onClickLike: onClickLike, onCopyToClipboard: onCopyToClipboard }),
2825
+ h(SourceCitations, { label: i18n.t('citations'), isVisible: !!citations?.length },
2826
+ h(GeneratedAnswerCitations, { citations: generatedAnswerState.citations, disableCitationAnchoring: disableCitationAnchoring, buildInteractiveCitation: buildInteractiveCitationForCitation, onLogCitationHover: (citationId, citationHoverTimeMs) => {
2827
+ generatedAnswer?.logCitationHover?.(citationId, citationHoverTimeMs);
2828
+ }, i18n: i18n }))));
2829
+ };
2830
+ const GeneratedAnswerNoAnswerMessage = ({ i18n }, children) => {
2831
+ return (h("div", { part: "generated-content" },
2832
+ h("div", { class: "flex items-center" },
2833
+ h(Heading, { level: 0, part: "header-label", class: "text-primary bg-primary-background inline-block rounded-md px-2.5 py-2 font-medium" }, i18n.t('generated-answer-title'))),
2834
+ h("div", { part: "generated-container", class: "mt-6 break-words" }, children)));
2835
+ };
2924
2836
 
2925
- export { GeneratedAnswerCommon as G };
2837
+ export { GeneratedAnswerRenderer as G, copyToClipboard as c, getGeneratedAnswerStatus as g, insertGeneratedAnswerFeedbackModal as i, readGeneratedAnswerStoredData as r, writeGeneratedAnswerStoredData as w };
2926
2838
 
2927
- //# sourceMappingURL=generated-answer-common.js.map
2839
+ //# sourceMappingURL=generated-answer-renderer.js.map