@coveo/atomic 3.27.5-pre.fc6b95219b → 3.28.0-pre.1b995035ea

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 (655) 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/_index.d.ts +0 -8
  4. package/dist/atomic/components/_index.js +0 -4
  5. package/dist/atomic/components/atomic-aria-live2.js +1 -1
  6. package/dist/atomic/components/atomic-category-facet.js +1 -1
  7. package/dist/atomic/components/atomic-citation.js +1 -1
  8. package/dist/atomic/components/atomic-commerce-category-facet2.js +1 -1
  9. package/dist/atomic/components/atomic-commerce-numeric-facet2.js +2 -2
  10. package/dist/atomic/components/atomic-commerce-query-error.js +1 -1
  11. package/dist/atomic/components/atomic-commerce-query-error.js.map +1 -1
  12. package/dist/atomic/components/atomic-commerce-recommendation-interface.js +1 -1
  13. package/dist/atomic/components/atomic-commerce-refine-modal2.js +1 -1
  14. package/dist/atomic/components/atomic-commerce-refine-toggle.js +1 -1
  15. package/dist/atomic/components/atomic-commerce-timeframe-facet2.js +1 -1
  16. package/dist/atomic/components/atomic-facet-manager.js +1 -1
  17. package/dist/atomic/components/atomic-facet.js +1 -1
  18. package/dist/atomic/components/atomic-format-currency.js +1 -1
  19. package/dist/atomic/components/atomic-format-number.js +1 -1
  20. package/dist/atomic/components/atomic-format-unit.js +1 -1
  21. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
  22. package/dist/atomic/components/atomic-generated-answer.js +14 -0
  23. package/dist/atomic/components/atomic-generated-answer.js.map +1 -1
  24. package/dist/atomic/components/atomic-html2.js +1 -1
  25. package/dist/atomic/components/atomic-insight-edit-toggle.js +1 -1
  26. package/dist/atomic/components/atomic-insight-facet.js +1 -1
  27. package/dist/atomic/components/atomic-insight-folded-result-list.js +1 -1
  28. package/dist/atomic/components/atomic-insight-full-search-button.js +1 -1
  29. package/dist/atomic/components/atomic-insight-generated-answer.js +14 -0
  30. package/dist/atomic/components/atomic-insight-generated-answer.js.map +1 -1
  31. package/dist/atomic/components/atomic-insight-history-toggle.js +1 -1
  32. package/dist/atomic/components/atomic-insight-no-results.js +1 -1
  33. package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
  34. package/dist/atomic/components/atomic-insight-pager.js +3 -3
  35. package/dist/atomic/components/atomic-insight-query-error.js +1 -1
  36. package/dist/atomic/components/atomic-insight-query-error.js.map +1 -1
  37. package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
  38. package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
  39. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
  40. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  41. package/dist/atomic/components/atomic-insight-result-list.js +1 -1
  42. package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
  43. package/dist/atomic/components/atomic-insight-result2.js +1 -1
  44. package/dist/atomic/components/atomic-insight-search-box.js +2 -2
  45. package/dist/atomic/components/atomic-insight-smart-snippet-feedback-modal2.js +2 -2
  46. package/dist/atomic/components/atomic-insight-tabs.js +1 -1
  47. package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
  48. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
  49. package/dist/atomic/components/atomic-ipx-body2.js +2 -2
  50. package/dist/atomic/components/atomic-ipx-button.js +2 -2
  51. package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
  52. package/dist/atomic/components/atomic-ipx-modal.js +2 -2
  53. package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
  54. package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
  55. package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
  56. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  57. package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
  58. package/dist/atomic/components/atomic-load-more-results.js +1 -1
  59. package/dist/atomic/components/atomic-modal2.js +2 -2
  60. package/dist/atomic/components/atomic-no-results.js +1 -1
  61. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  62. package/dist/atomic/components/atomic-pager.js +3 -3
  63. package/dist/atomic/components/atomic-product-children.js +1 -7
  64. package/dist/atomic/components/atomic-product-children.js.map +1 -1
  65. package/dist/atomic/components/atomic-product-description.js +2 -14
  66. package/dist/atomic/components/atomic-product-description.js.map +1 -1
  67. package/dist/atomic/components/atomic-product-excerpt.js +2 -14
  68. package/dist/atomic/components/atomic-product-excerpt.js.map +1 -1
  69. package/dist/atomic/components/atomic-product-link.js +1 -13
  70. package/dist/atomic/components/atomic-product-link.js.map +1 -1
  71. package/dist/atomic/components/atomic-product-price.js +1 -1
  72. package/dist/atomic/components/atomic-query-error.js +1 -1
  73. package/dist/atomic/components/atomic-query-error.js.map +1 -1
  74. package/dist/atomic/components/atomic-query-summary.js +1 -1
  75. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  76. package/dist/atomic/components/atomic-quickview.js +1 -1
  77. package/dist/atomic/components/atomic-recs-error.js +1 -1
  78. package/dist/atomic/components/atomic-recs-error.js.map +1 -1
  79. package/dist/atomic/components/atomic-recs-list.js +1 -1
  80. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  81. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  82. package/dist/atomic/components/atomic-relevance-inspector2.js +2 -2
  83. package/dist/atomic/components/atomic-result-children.js +1 -1
  84. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  85. package/dist/atomic/components/atomic-result-link.js +1 -1
  86. package/dist/atomic/components/atomic-result-list.js +1 -1
  87. package/dist/atomic/components/atomic-result-placeholder2.js +2 -2
  88. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  89. package/dist/atomic/components/atomic-result-text2.js +45 -2
  90. package/dist/atomic/components/atomic-result-text2.js.map +1 -1
  91. package/dist/atomic/components/atomic-results-per-page.js +68 -3
  92. package/dist/atomic/components/atomic-results-per-page.js.map +1 -1
  93. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
  94. package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
  95. package/dist/atomic/components/atomic-search-box.js +4 -4
  96. package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
  97. package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js +2 -2
  98. package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js +1 -1
  99. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  100. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  101. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  102. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  103. package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
  104. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  105. package/dist/atomic/components/components/commerce/atomic-commerce-products-per-page/atomic-commerce-products-per-page.js +126 -0
  106. package/dist/atomic/components/components/commerce/atomic-commerce-text/atomic-commerce-text.js +54 -0
  107. package/dist/atomic/components/components/commerce/atomic-product-template/atomic-product-template.js +2 -0
  108. package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js +135 -0
  109. package/dist/atomic/components/components/commerce/index.js +3 -0
  110. package/dist/atomic/components/components/commerce/lazy-index.js +3 -0
  111. package/dist/atomic/components/components/commerce/product-template-component-utils/error.js +6 -0
  112. package/dist/atomic/components/components/commerce/product-template-component-utils/product-utils.js +35 -0
  113. package/dist/atomic/components/components/common/atomic-layout-section/atomic-layout-section.js +31 -0
  114. package/dist/atomic/components/components/common/fieldset-group.js +5 -0
  115. package/dist/atomic/components/components/common/index.js +1 -0
  116. package/dist/atomic/components/components/common/item-text/field-warning.js +6 -0
  117. package/dist/atomic/components/components/common/item-text/item-text-fallback.js +15 -0
  118. package/dist/atomic/components/components/common/item-text/item-text-highlighted.js +17 -0
  119. package/dist/atomic/components/components/common/item-text/render-highlights.js +13 -0
  120. package/dist/atomic/components/components/common/items-per-page/choices.js +47 -0
  121. package/dist/atomic/components/components/common/items-per-page/error.js +18 -0
  122. package/dist/atomic/components/components/common/items-per-page/label.js +10 -0
  123. package/dist/atomic/components/components/common/items-per-page/validate.js +19 -0
  124. package/dist/atomic/components/components/common/lazy-index.js +1 -0
  125. package/dist/atomic/components/facet-date-input.js +3 -3
  126. package/dist/atomic/components/facet-number-input.js +2 -2
  127. package/dist/atomic/components/global/environment.js +1 -1
  128. package/dist/atomic/components/index.js.map +1 -1
  129. package/dist/atomic/components/interface-common-stencil.js +1 -1
  130. package/dist/atomic/components/product-utils.js +1 -8
  131. package/dist/atomic/components/product-utils.js.map +1 -1
  132. package/dist/atomic/components/sections.js.map +1 -1
  133. package/dist/atomic/components/{expandable-text.js → stencil-expandable-text.js} +1 -1
  134. package/dist/atomic/components/stencil-expandable-text.js.map +1 -0
  135. package/dist/atomic/components/stencil-link.js.map +1 -1
  136. package/dist/atomic/components/tab-button.js +1 -1
  137. package/dist/atomic/components/tab-popover.js +1 -1
  138. package/dist/atomic/components/utils/object-utils.js +13 -0
  139. package/dist/atomic/{p-a535a268.entry.js → p-0267a585.entry.js} +2 -2
  140. package/dist/atomic/{p-9a161d8f.entry.js → p-0a7b0daa.entry.js} +2 -2
  141. package/dist/atomic/{p-f7eab69a.entry.js → p-0b0ea7d3.entry.js} +2 -2
  142. package/dist/atomic/{p-07cd7e4a.entry.js → p-135be5aa.entry.js} +2 -2
  143. package/dist/atomic/{p-e739825f.entry.js → p-1cc97adc.entry.js} +2 -2
  144. package/dist/atomic/{p-de00bdd6.js → p-1d02a670.js} +1 -1
  145. package/dist/atomic/p-1d02a670.js.map +1 -0
  146. package/dist/atomic/{p-005d34a4.entry.js → p-29d27418.entry.js} +2 -2
  147. package/dist/atomic/{p-5250f36d.js → p-2dbdd073.js} +2 -2
  148. package/dist/atomic/{p-4dbb3798.entry.js → p-2f0cb73c.entry.js} +2 -2
  149. package/dist/atomic/{p-bad08ec3.entry.js → p-2ff906b9.entry.js} +2 -2
  150. package/dist/atomic/{p-908fa9c8.entry.js → p-306c83ea.entry.js} +2 -2
  151. package/dist/atomic/{p-f5ea03f0.entry.js → p-32b26cd0.entry.js} +2 -2
  152. package/dist/atomic/{p-dc463f0b.entry.js → p-32c90fe9.entry.js} +2 -2
  153. package/dist/atomic/{p-4e1f7c89.entry.js → p-36225d4f.entry.js} +2 -2
  154. package/dist/atomic/{p-84b36ec2.entry.js → p-3ec18de9.entry.js} +2 -2
  155. package/dist/atomic/{p-8a337769.entry.js → p-3f42a2db.entry.js} +2 -2
  156. package/dist/atomic/{p-c74c1b41.entry.js → p-45b26cc7.entry.js} +2 -2
  157. package/dist/atomic/{p-1c06ca0c.entry.js → p-46522ee4.entry.js} +2 -2
  158. package/dist/atomic/{p-cfec0988.entry.js → p-47ee9d37.entry.js} +2 -2
  159. package/dist/atomic/{p-4af746a9.entry.js → p-50b9a5d2.entry.js} +2 -2
  160. package/dist/atomic/{p-756462de.entry.js → p-51c5acfc.entry.js} +2 -2
  161. package/dist/atomic/{p-1202d6cc.entry.js → p-543e811e.entry.js} +2 -2
  162. package/dist/atomic/{p-1243448d.entry.js → p-545f7fb1.entry.js} +2 -2
  163. package/dist/atomic/{p-dc9313c5.entry.js → p-60527741.entry.js} +2 -2
  164. package/dist/atomic/{p-d4ab4985.entry.js → p-60a9e718.entry.js} +2 -2
  165. package/dist/atomic/{p-1c5502a8.entry.js → p-66683abd.entry.js} +2 -2
  166. package/dist/atomic/{p-3024c394.entry.js → p-67315415.entry.js} +2 -2
  167. package/dist/atomic/{p-baa3b8ee.entry.js → p-689e063d.entry.js} +2 -2
  168. package/dist/atomic/p-690b5853.entry.js +2 -0
  169. package/dist/atomic/{p-447f0772.entry.js → p-70ab347b.entry.js} +2 -2
  170. package/dist/atomic/{p-dc051fee.entry.js → p-76122df5.entry.js} +2 -2
  171. package/dist/atomic/{p-4d8ec431.entry.js → p-7d1f8d9c.entry.js} +2 -2
  172. package/dist/atomic/{p-d7c44977.entry.js → p-80dc3bab.entry.js} +2 -2
  173. package/dist/atomic/{p-c265c67d.entry.js → p-8392e900.entry.js} +2 -2
  174. package/dist/atomic/{p-58c8065c.entry.js → p-8d7f57d9.entry.js} +2 -2
  175. package/dist/atomic/{p-bb5c19a7.entry.js → p-8e09f796.entry.js} +2 -2
  176. package/dist/atomic/{p-1bddfac7.js → p-94e22484.js} +2 -2
  177. package/dist/atomic/{p-79e1bcc1.entry.js → p-95942ba2.entry.js} +2 -2
  178. package/dist/atomic/{p-00ba0b42.entry.js → p-99604083.entry.js} +2 -2
  179. package/dist/atomic/p-99604083.entry.js.map +1 -0
  180. package/dist/atomic/{p-a896c7b8.entry.js → p-9a08dad7.entry.js} +2 -2
  181. package/dist/atomic/{p-d5c709cd.entry.js → p-9ae88402.entry.js} +2 -2
  182. package/dist/atomic/p-9c7dbbdf.js.map +1 -1
  183. package/dist/atomic/{p-04c726de.entry.js → p-9d2230db.entry.js} +2 -2
  184. package/dist/atomic/p-9d2230db.entry.js.map +1 -0
  185. package/dist/atomic/{p-52abba32.entry.js → p-9eb108c9.entry.js} +2 -2
  186. package/dist/atomic/{p-558f3bd6.entry.js → p-a046cf06.entry.js} +2 -2
  187. package/dist/atomic/p-a1c4ac09.js +2 -0
  188. package/dist/atomic/p-a1c4ac09.js.map +1 -0
  189. package/dist/atomic/{p-9fb18d3e.entry.js → p-a3169f59.entry.js} +2 -2
  190. package/dist/atomic/{p-d1e606f2.entry.js → p-a4983d49.entry.js} +2 -2
  191. package/dist/atomic/{p-891f0c50.entry.js → p-a772b365.entry.js} +2 -2
  192. package/dist/atomic/{p-ccff6c87.entry.js → p-a8281e9b.entry.js} +2 -2
  193. package/dist/atomic/{p-c4dd47ca.entry.js → p-ab5eec3d.entry.js} +2 -2
  194. package/dist/atomic/{p-d72e52b2.entry.js → p-ab6e303e.entry.js} +2 -2
  195. package/dist/atomic/p-ab6e303e.entry.js.map +1 -0
  196. package/dist/atomic/{p-2b11517f.entry.js → p-b19a8cbb.entry.js} +2 -2
  197. package/dist/atomic/{p-4b20cdb3.entry.js → p-b4d47ca9.entry.js} +2 -2
  198. package/dist/atomic/{p-0ea5cbb8.entry.js → p-b4dfe5b2.entry.js} +2 -2
  199. package/dist/atomic/p-b747e4a9.entry.js +2 -0
  200. package/dist/atomic/{p-af8999b1.entry.js → p-b7824e0e.entry.js} +2 -2
  201. package/dist/atomic/{p-1cb6a01c.entry.js → p-ba6a30a7.entry.js} +2 -2
  202. package/dist/atomic/p-ba6a30a7.entry.js.map +1 -0
  203. package/dist/atomic/{p-b3604b54.entry.js → p-bd32ca3c.entry.js} +2 -2
  204. package/dist/atomic/p-bd32ca3c.entry.js.map +1 -0
  205. package/dist/atomic/{p-e7b8ee60.entry.js → p-be13ed5c.entry.js} +2 -2
  206. package/dist/atomic/p-befca41f.entry.js +2 -0
  207. package/dist/atomic/{p-6d264c97.entry.js → p-bfeefcaa.entry.js} +2 -2
  208. package/dist/atomic/{p-34cff6c8.entry.js → p-c0d7b26d.entry.js} +2 -2
  209. package/dist/atomic/{p-7d1ca26f.entry.js → p-c13d4039.entry.js} +2 -2
  210. package/dist/atomic/{p-6d083c4e.entry.js → p-c4f042ae.entry.js} +2 -2
  211. package/dist/atomic/{p-f96655f4.entry.js → p-c83f9cff.entry.js} +2 -2
  212. package/dist/atomic/{p-4e3518c2.entry.js → p-cd87574b.entry.js} +2 -2
  213. package/dist/atomic/{p-e260c799.entry.js → p-ce4e939b.entry.js} +2 -2
  214. package/dist/atomic/p-ce4e939b.entry.js.map +1 -0
  215. package/dist/atomic/{p-fc81ef98.entry.js → p-d1efd50f.entry.js} +2 -2
  216. package/dist/atomic/p-d1efd50f.entry.js.map +1 -0
  217. package/dist/atomic/{p-963a3e18.entry.js → p-d30057a0.entry.js} +2 -2
  218. package/dist/atomic/{p-d5c308fc.entry.js → p-d4aba9f9.entry.js} +2 -2
  219. package/dist/atomic/{p-037fbb27.entry.js → p-d62469e0.entry.js} +2 -2
  220. package/dist/atomic/{p-dd6e18bb.entry.js → p-d69756ae.entry.js} +2 -2
  221. package/dist/atomic/p-d76c5232.entry.js +2 -0
  222. package/dist/atomic/{p-68bf4184.entry.js → p-d827c148.entry.js} +2 -2
  223. package/dist/atomic/{p-cbe083d3.entry.js → p-dd8c6bdd.entry.js} +2 -2
  224. package/dist/atomic/{p-26ec2d6d.entry.js → p-ddd52850.entry.js} +2 -2
  225. package/dist/atomic/{p-c751940f.entry.js → p-e44155cc.entry.js} +2 -2
  226. package/dist/atomic/{p-5e7f50a5.entry.js → p-e4754fd0.entry.js} +2 -2
  227. package/dist/atomic/{p-bd109981.entry.js → p-e604fd29.entry.js} +2 -2
  228. package/dist/atomic/{p-22a0d1b9.entry.js → p-ea5d2736.entry.js} +2 -2
  229. package/dist/atomic/{p-75d11764.entry.js → p-eab28672.entry.js} +2 -2
  230. package/dist/atomic/p-ec0161b7.entry.js +2 -0
  231. package/dist/atomic/p-ec0161b7.entry.js.map +1 -0
  232. package/dist/atomic/{p-6c5524dc.entry.js → p-ec6bc15b.entry.js} +2 -2
  233. package/dist/atomic/p-eebb168b.entry.js +2 -0
  234. package/dist/atomic/p-f1bbe060.entry.js +2 -0
  235. package/dist/atomic/p-f1bbe060.entry.js.map +1 -0
  236. package/dist/atomic/{p-e36f1951.entry.js → p-f3182312.entry.js} +2 -2
  237. package/dist/atomic/p-f3182312.entry.js.map +1 -0
  238. package/dist/atomic/{p-6083c281.js → p-f45d8b3e.js} +1 -1
  239. package/dist/atomic/p-f45d8b3e.js.map +1 -0
  240. package/dist/atomic/{p-1de6a3e2.entry.js → p-f4a1bfe3.entry.js} +2 -2
  241. package/dist/atomic/{p-d1434df4.entry.js → p-f4b98113.entry.js} +2 -2
  242. package/dist/atomic/{p-a15f6b8c.entry.js → p-f6283657.entry.js} +2 -2
  243. package/dist/atomic/{p-e961a0cc.entry.js → p-f7f8096a.entry.js} +2 -2
  244. package/dist/atomic/{p-f8fb398c.entry.js → p-fb0bdcdb.entry.js} +2 -2
  245. package/dist/atomic/p-fbbbc454.entry.js +2 -0
  246. package/dist/atomic/{p-dea13af7.entry.js → p-fd9d1c3f.entry.js} +2 -2
  247. package/dist/cjs/_loader.cjs.js +1 -1
  248. package/dist/cjs/{analytics-config-4caf672d.js → analytics-config-54e62aa5.js} +2 -2
  249. package/dist/cjs/{analytics-config-4caf672d.js.map → analytics-config-54e62aa5.js.map} +1 -1
  250. package/dist/cjs/atomic-aria-live.cjs.entry.js +1 -1
  251. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  252. package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
  253. package/dist/cjs/atomic-commerce-category-facet_5.cjs.entry.js +4 -4
  254. package/dist/cjs/atomic-commerce-facet-number-input_2.cjs.entry.js +3 -3
  255. package/dist/cjs/atomic-commerce-query-error.cjs.entry.js +2 -2
  256. package/dist/cjs/atomic-commerce-query-error.cjs.entry.js.map +1 -1
  257. package/dist/cjs/atomic-commerce-recommendation-interface.cjs.entry.js +2 -2
  258. package/dist/cjs/atomic-commerce-refine-modal.cjs.entry.js +1 -1
  259. package/dist/cjs/atomic-commerce-refine-toggle.cjs.entry.js +1 -1
  260. package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
  261. package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
  262. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  263. package/dist/cjs/atomic-focus-trap_2.cjs.entry.js +2 -2
  264. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  265. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  266. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  267. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +1 -1
  268. package/dist/cjs/atomic-generated-answer.cjs.entry.js +13 -0
  269. package/dist/cjs/atomic-generated-answer.cjs.entry.js.map +1 -1
  270. package/dist/cjs/atomic-html.cjs.entry.js +1 -1
  271. package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +1 -1
  272. package/dist/cjs/atomic-insight-facet.cjs.entry.js +1 -1
  273. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +1 -1
  274. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +1 -1
  275. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js +13 -0
  276. package/dist/cjs/atomic-insight-generated-answer.cjs.entry.js.map +1 -1
  277. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +1 -1
  278. package/dist/cjs/atomic-insight-interface.cjs.entry.js +2 -2
  279. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
  280. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +1 -1
  281. package/dist/cjs/atomic-insight-pager.cjs.entry.js +3 -3
  282. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +2 -2
  283. package/dist/cjs/atomic-insight-query-error.cjs.entry.js.map +1 -1
  284. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +2 -2
  285. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
  286. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
  287. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +1 -1
  288. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +1 -1
  289. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
  290. package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
  291. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +2 -2
  292. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  293. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
  294. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
  295. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
  296. package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -2
  297. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
  298. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +1 -1
  299. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -2
  300. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +1 -1
  301. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +1 -1
  302. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
  303. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  304. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
  305. package/dist/cjs/atomic-load-more-results.cjs.entry.js +1 -1
  306. package/dist/cjs/atomic-no-results.cjs.entry.js +1 -1
  307. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -1
  308. package/dist/cjs/atomic-pager.cjs.entry.js +3 -3
  309. package/dist/cjs/atomic-product-description.cjs.entry.js +2 -2
  310. package/dist/cjs/atomic-product-description.cjs.entry.js.map +1 -1
  311. package/dist/cjs/atomic-product-excerpt.cjs.entry.js +2 -2
  312. package/dist/cjs/atomic-product-excerpt.cjs.entry.js.map +1 -1
  313. package/dist/cjs/atomic-product-link.cjs.entry.js +1 -1
  314. package/dist/cjs/atomic-product-numeric-field-value.cjs.entry.js +1 -1
  315. package/dist/cjs/atomic-product-price.cjs.entry.js +2 -2
  316. package/dist/cjs/atomic-query-error.cjs.entry.js +2 -2
  317. package/dist/cjs/atomic-query-error.cjs.entry.js.map +1 -1
  318. package/dist/cjs/atomic-query-summary.cjs.entry.js +1 -1
  319. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  320. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  321. package/dist/cjs/atomic-recs-error.cjs.entry.js +2 -2
  322. package/dist/cjs/atomic-recs-error.cjs.entry.js.map +1 -1
  323. package/dist/cjs/atomic-recs-interface.cjs.entry.js +2 -2
  324. package/dist/cjs/atomic-recs-list.cjs.entry.js +1 -1
  325. package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
  326. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  327. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js +2 -2
  328. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  329. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  330. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  331. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  332. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +3 -3
  333. package/dist/cjs/atomic-result-text_2.cjs.entry.js +46 -4
  334. package/dist/cjs/atomic-result-text_2.cjs.entry.js.map +1 -1
  335. package/dist/cjs/atomic-results-per-page.cjs.entry.js +71 -7
  336. package/dist/cjs/atomic-results-per-page.cjs.entry.js.map +1 -1
  337. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +2 -2
  338. package/dist/cjs/atomic-search-box.cjs.entry.js +4 -4
  339. package/dist/cjs/atomic-search-interface.cjs.entry.js +2 -2
  340. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +2 -2
  341. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +3 -3
  342. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  343. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  344. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  345. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +1 -1
  346. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +1 -1
  347. package/dist/cjs/atomic-tab-button.cjs.entry.js +1 -1
  348. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  349. package/dist/cjs/atomic.cjs.js +1 -1
  350. package/dist/cjs/index-757bc886.js +0 -12
  351. package/dist/cjs/{interface-common-stencil-61108e17.js → interface-common-stencil-d4086225.js} +2 -2
  352. package/dist/cjs/{interface-common-stencil-61108e17.js.map → interface-common-stencil-d4086225.js.map} +1 -1
  353. package/dist/cjs/{product-utils-9507462c.js → product-utils-f6c780e3.js} +1 -9
  354. package/dist/cjs/product-utils-f6c780e3.js.map +1 -0
  355. package/dist/cjs/sections-4b4af2f8.js.map +1 -1
  356. package/dist/cjs/{expandable-text-36fe9f8d.js → stencil-expandable-text-80915f74.js} +1 -1
  357. package/dist/cjs/stencil-expandable-text-80915f74.js.map +1 -0
  358. package/dist/cjs/{stencil-link-c6b12034.js → stencil-link-fbb2ab5c.js} +1 -1
  359. package/dist/cjs/stencil-link-fbb2ab5c.js.map +1 -0
  360. package/dist/cjs/version.cjs.js +2 -2
  361. package/dist/esm/_loader.js +1 -1
  362. package/dist/esm/{analytics-config-359b43de.js → analytics-config-6b5c6ac0.js} +2 -2
  363. package/dist/esm/{analytics-config-359b43de.js.map → analytics-config-6b5c6ac0.js.map} +1 -1
  364. package/dist/esm/atomic-aria-live.entry.js +1 -1
  365. package/dist/esm/atomic-category-facet.entry.js +1 -1
  366. package/dist/esm/atomic-citation.entry.js +1 -1
  367. package/dist/esm/atomic-commerce-category-facet_5.entry.js +4 -4
  368. package/dist/esm/atomic-commerce-facet-number-input_2.entry.js +3 -3
  369. package/dist/esm/atomic-commerce-query-error.entry.js +2 -2
  370. package/dist/esm/atomic-commerce-query-error.entry.js.map +1 -1
  371. package/dist/esm/atomic-commerce-recommendation-interface.entry.js +2 -2
  372. package/dist/esm/atomic-commerce-refine-modal.entry.js +1 -1
  373. package/dist/esm/atomic-commerce-refine-toggle.entry.js +1 -1
  374. package/dist/esm/atomic-facet-manager.entry.js +1 -1
  375. package/dist/esm/atomic-facet-number-input.entry.js +2 -2
  376. package/dist/esm/atomic-facet.entry.js +1 -1
  377. package/dist/esm/atomic-focus-trap_2.entry.js +2 -2
  378. package/dist/esm/atomic-format-currency.entry.js +1 -1
  379. package/dist/esm/atomic-format-number.entry.js +1 -1
  380. package/dist/esm/atomic-format-unit.entry.js +1 -1
  381. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +1 -1
  382. package/dist/esm/atomic-generated-answer.entry.js +13 -0
  383. package/dist/esm/atomic-generated-answer.entry.js.map +1 -1
  384. package/dist/esm/atomic-html.entry.js +1 -1
  385. package/dist/esm/atomic-insight-edit-toggle.entry.js +1 -1
  386. package/dist/esm/atomic-insight-facet.entry.js +1 -1
  387. package/dist/esm/atomic-insight-folded-result-list.entry.js +1 -1
  388. package/dist/esm/atomic-insight-full-search-button.entry.js +1 -1
  389. package/dist/esm/atomic-insight-generated-answer.entry.js +13 -0
  390. package/dist/esm/atomic-insight-generated-answer.entry.js.map +1 -1
  391. package/dist/esm/atomic-insight-history-toggle.entry.js +1 -1
  392. package/dist/esm/atomic-insight-interface.entry.js +2 -2
  393. package/dist/esm/atomic-insight-no-results.entry.js +1 -1
  394. package/dist/esm/atomic-insight-numeric-facet.entry.js +1 -1
  395. package/dist/esm/atomic-insight-pager.entry.js +3 -3
  396. package/dist/esm/atomic-insight-query-error.entry.js +2 -2
  397. package/dist/esm/atomic-insight-query-error.entry.js.map +1 -1
  398. package/dist/esm/atomic-insight-refine-modal.entry.js +2 -2
  399. package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
  400. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
  401. package/dist/esm/atomic-insight-result-children.entry.js +1 -1
  402. package/dist/esm/atomic-insight-result-list.entry.js +1 -1
  403. package/dist/esm/atomic-insight-result-quickview-action.entry.js +1 -1
  404. package/dist/esm/atomic-insight-result.entry.js +1 -1
  405. package/dist/esm/atomic-insight-search-box.entry.js +2 -2
  406. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +2 -2
  407. package/dist/esm/atomic-insight-tabs.entry.js +1 -1
  408. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
  409. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
  410. package/dist/esm/atomic-ipx-body.entry.js +2 -2
  411. package/dist/esm/atomic-ipx-button.entry.js +2 -2
  412. package/dist/esm/atomic-ipx-embedded.entry.js +1 -1
  413. package/dist/esm/atomic-ipx-modal.entry.js +2 -2
  414. package/dist/esm/atomic-ipx-recs-list.entry.js +1 -1
  415. package/dist/esm/atomic-ipx-refine-modal.entry.js +1 -1
  416. package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
  417. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  418. package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
  419. package/dist/esm/atomic-load-more-results.entry.js +1 -1
  420. package/dist/esm/atomic-no-results.entry.js +1 -1
  421. package/dist/esm/atomic-numeric-facet.entry.js +1 -1
  422. package/dist/esm/atomic-pager.entry.js +3 -3
  423. package/dist/esm/atomic-product-description.entry.js +1 -1
  424. package/dist/esm/atomic-product-description.entry.js.map +1 -1
  425. package/dist/esm/atomic-product-excerpt.entry.js +1 -1
  426. package/dist/esm/atomic-product-excerpt.entry.js.map +1 -1
  427. package/dist/esm/atomic-product-link.entry.js +1 -1
  428. package/dist/esm/atomic-product-numeric-field-value.entry.js +1 -1
  429. package/dist/esm/atomic-product-price.entry.js +2 -2
  430. package/dist/esm/atomic-query-error.entry.js +2 -2
  431. package/dist/esm/atomic-query-error.entry.js.map +1 -1
  432. package/dist/esm/atomic-query-summary.entry.js +1 -1
  433. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  434. package/dist/esm/atomic-quickview.entry.js +1 -1
  435. package/dist/esm/atomic-recs-error.entry.js +2 -2
  436. package/dist/esm/atomic-recs-error.entry.js.map +1 -1
  437. package/dist/esm/atomic-recs-interface.entry.js +2 -2
  438. package/dist/esm/atomic-recs-list.entry.js +1 -1
  439. package/dist/esm/atomic-refine-modal.entry.js +1 -1
  440. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  441. package/dist/esm/atomic-relevance-inspector.entry.js +2 -2
  442. package/dist/esm/atomic-result-children.entry.js +1 -1
  443. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  444. package/dist/esm/atomic-result-link.entry.js +1 -1
  445. package/dist/esm/atomic-result-list.entry.js +1 -1
  446. package/dist/esm/atomic-result-placeholder_8.entry.js +3 -3
  447. package/dist/esm/atomic-result-text_2.entry.js +45 -3
  448. package/dist/esm/atomic-result-text_2.entry.js.map +1 -1
  449. package/dist/esm/atomic-results-per-page.entry.js +68 -4
  450. package/dist/esm/atomic-results-per-page.entry.js.map +1 -1
  451. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +2 -2
  452. package/dist/esm/atomic-search-box.entry.js +4 -4
  453. package/dist/esm/atomic-search-interface.entry.js +2 -2
  454. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +2 -2
  455. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +3 -3
  456. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  457. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  458. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  459. package/dist/esm/atomic-suggestion-renderer.entry.js +1 -1
  460. package/dist/esm/atomic-tab-bar_2.entry.js +1 -1
  461. package/dist/esm/atomic-tab-button.entry.js +1 -1
  462. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  463. package/dist/esm/atomic.js +1 -1
  464. package/dist/esm/index-3f35faca.js +0 -12
  465. package/dist/esm/{interface-common-stencil-623d4314.js → interface-common-stencil-fc6f80e8.js} +2 -2
  466. package/dist/esm/{interface-common-stencil-623d4314.js.map → interface-common-stencil-fc6f80e8.js.map} +1 -1
  467. package/dist/esm/{product-utils-8348689f.js → product-utils-85109d2e.js} +2 -9
  468. package/dist/esm/product-utils-85109d2e.js.map +1 -0
  469. package/dist/esm/sections-ae00b53a.js.map +1 -1
  470. package/dist/esm/{expandable-text-4eebe177.js → stencil-expandable-text-957d599c.js} +1 -1
  471. package/dist/esm/stencil-expandable-text-957d599c.js.map +1 -0
  472. package/dist/esm/{stencil-link-637c1ac5.js → stencil-link-32a27dfb.js} +1 -1
  473. package/dist/esm/stencil-link-32a27dfb.js.map +1 -0
  474. package/dist/esm/version.js +2 -2
  475. package/dist/types/components/commerce/atomic-commerce-products-per-page/atomic-commerce-products-per-page.d.ts +13 -7
  476. package/dist/types/components/commerce/atomic-commerce-text/atomic-commerce-text.d.ts +13 -5
  477. package/dist/types/components/commerce/atomic-product-description/atomic-product-description.d.ts +1 -1
  478. package/dist/types/components/commerce/atomic-product-excerpt/atomic-product-excerpt.d.ts +1 -1
  479. package/dist/types/components/commerce/atomic-product-template/atomic-product-template.d.ts +2 -0
  480. package/dist/types/components/commerce/atomic-product-text/atomic-product-text.d.ts +29 -15
  481. package/dist/types/components/commerce/index.d.ts +3 -0
  482. package/dist/types/components/common/atomic-layout-section/atomic-layout-section.d.ts +11 -2
  483. package/dist/types/components/common/atomic-layout-section/sections.d.ts +2 -1
  484. package/dist/types/components/common/expandable-text/expandable-text.d.ts +4 -4
  485. package/dist/types/components/common/expandable-text/stencil-expandable-text.d.ts +13 -0
  486. package/dist/types/components/common/index.d.ts +1 -0
  487. package/dist/types/components/common/items-per-page/choices.d.ts +1 -1
  488. package/dist/types/components/common/items-per-page/error.d.ts +3 -0
  489. package/dist/types/components/common/query-error/show-more.d.ts +4 -4
  490. package/dist/types/components/common/query-error/stencil-show-more.d.ts +10 -0
  491. package/dist/types/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.d.ts +6 -0
  492. package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +6 -0
  493. package/dist/types/components.d.ts +18 -208
  494. package/docs/atomic-docs.json +37 -492
  495. package/package.json +3 -3
  496. package/dist/atomic/components/atomic-commerce-products-per-page.d.ts +0 -11
  497. package/dist/atomic/components/atomic-commerce-products-per-page.js +0 -107
  498. package/dist/atomic/components/atomic-commerce-products-per-page.js.map +0 -1
  499. package/dist/atomic/components/atomic-commerce-text.d.ts +0 -11
  500. package/dist/atomic/components/atomic-commerce-text.js +0 -8
  501. package/dist/atomic/components/atomic-commerce-text.js.map +0 -1
  502. package/dist/atomic/components/atomic-commerce-text2.js +0 -60
  503. package/dist/atomic/components/atomic-commerce-text2.js.map +0 -1
  504. package/dist/atomic/components/atomic-layout-section.d.ts +0 -11
  505. package/dist/atomic/components/atomic-layout-section.js +0 -35
  506. package/dist/atomic/components/atomic-layout-section.js.map +0 -1
  507. package/dist/atomic/components/atomic-product-text.d.ts +0 -11
  508. package/dist/atomic/components/atomic-product-text.js +0 -8
  509. package/dist/atomic/components/atomic-product-text.js.map +0 -1
  510. package/dist/atomic/components/atomic-product-text2.js +0 -83
  511. package/dist/atomic/components/atomic-product-text2.js.map +0 -1
  512. package/dist/atomic/components/expandable-text.js.map +0 -1
  513. package/dist/atomic/components/stencil-item-text-highlighted.js +0 -49
  514. package/dist/atomic/components/stencil-item-text-highlighted.js.map +0 -1
  515. package/dist/atomic/components/validate.js +0 -62
  516. package/dist/atomic/components/validate.js.map +0 -1
  517. package/dist/atomic/p-00ba0b42.entry.js.map +0 -1
  518. package/dist/atomic/p-03109525.entry.js +0 -2
  519. package/dist/atomic/p-03109525.entry.js.map +0 -1
  520. package/dist/atomic/p-04c726de.entry.js.map +0 -1
  521. package/dist/atomic/p-162da819.entry.js +0 -2
  522. package/dist/atomic/p-1cb6a01c.entry.js.map +0 -1
  523. package/dist/atomic/p-39223a2a.entry.js +0 -2
  524. package/dist/atomic/p-39223a2a.entry.js.map +0 -1
  525. package/dist/atomic/p-5cf5bb98.entry.js +0 -2
  526. package/dist/atomic/p-6083c281.js.map +0 -1
  527. package/dist/atomic/p-67ef14ac.entry.js +0 -2
  528. package/dist/atomic/p-67ef14ac.entry.js.map +0 -1
  529. package/dist/atomic/p-733252f1.entry.js +0 -2
  530. package/dist/atomic/p-733252f1.entry.js.map +0 -1
  531. package/dist/atomic/p-81874146.entry.js +0 -2
  532. package/dist/atomic/p-98c16767.entry.js +0 -2
  533. package/dist/atomic/p-b0be7782.entry.js +0 -2
  534. package/dist/atomic/p-b1a7d837.js +0 -2
  535. package/dist/atomic/p-b1a7d837.js.map +0 -1
  536. package/dist/atomic/p-b3604b54.entry.js.map +0 -1
  537. package/dist/atomic/p-b90ea7e9.entry.js +0 -2
  538. package/dist/atomic/p-ba5a125f.entry.js +0 -2
  539. package/dist/atomic/p-ba5a125f.entry.js.map +0 -1
  540. package/dist/atomic/p-bb081d4e.js +0 -2
  541. package/dist/atomic/p-bb081d4e.js.map +0 -1
  542. package/dist/atomic/p-c408a774.js +0 -2
  543. package/dist/atomic/p-c408a774.js.map +0 -1
  544. package/dist/atomic/p-d72e52b2.entry.js.map +0 -1
  545. package/dist/atomic/p-de00bdd6.js.map +0 -1
  546. package/dist/atomic/p-e260c799.entry.js.map +0 -1
  547. package/dist/atomic/p-e36f1951.entry.js.map +0 -1
  548. package/dist/atomic/p-fc81ef98.entry.js.map +0 -1
  549. package/dist/cjs/atomic-commerce-products-per-page.cjs.entry.js +0 -95
  550. package/dist/cjs/atomic-commerce-products-per-page.cjs.entry.js.map +0 -1
  551. package/dist/cjs/atomic-commerce-text_2.cjs.entry.js +0 -106
  552. package/dist/cjs/atomic-commerce-text_2.cjs.entry.js.map +0 -1
  553. package/dist/cjs/atomic-layout-section.cjs.entry.js +0 -18
  554. package/dist/cjs/atomic-layout-section.cjs.entry.js.map +0 -1
  555. package/dist/cjs/expandable-text-36fe9f8d.js.map +0 -1
  556. package/dist/cjs/product-utils-9507462c.js.map +0 -1
  557. package/dist/cjs/stencil-item-text-highlighted-91fd0fe8.js +0 -52
  558. package/dist/cjs/stencil-item-text-highlighted-91fd0fe8.js.map +0 -1
  559. package/dist/cjs/stencil-link-c6b12034.js.map +0 -1
  560. package/dist/cjs/validate-232b3138.js +0 -69
  561. package/dist/cjs/validate-232b3138.js.map +0 -1
  562. package/dist/esm/atomic-commerce-products-per-page.entry.js +0 -91
  563. package/dist/esm/atomic-commerce-products-per-page.entry.js.map +0 -1
  564. package/dist/esm/atomic-commerce-text_2.entry.js +0 -101
  565. package/dist/esm/atomic-commerce-text_2.entry.js.map +0 -1
  566. package/dist/esm/atomic-layout-section.entry.js +0 -14
  567. package/dist/esm/atomic-layout-section.entry.js.map +0 -1
  568. package/dist/esm/expandable-text-4eebe177.js.map +0 -1
  569. package/dist/esm/product-utils-8348689f.js.map +0 -1
  570. package/dist/esm/stencil-item-text-highlighted-0e1c6c08.js +0 -49
  571. package/dist/esm/stencil-item-text-highlighted-0e1c6c08.js.map +0 -1
  572. package/dist/esm/stencil-link-637c1ac5.js.map +0 -1
  573. package/dist/esm/validate-8b800378.js +0 -62
  574. package/dist/esm/validate-8b800378.js.map +0 -1
  575. /package/dist/atomic/{p-a535a268.entry.js.map → p-0267a585.entry.js.map} +0 -0
  576. /package/dist/atomic/{p-9a161d8f.entry.js.map → p-0a7b0daa.entry.js.map} +0 -0
  577. /package/dist/atomic/{p-f7eab69a.entry.js.map → p-0b0ea7d3.entry.js.map} +0 -0
  578. /package/dist/atomic/{p-07cd7e4a.entry.js.map → p-135be5aa.entry.js.map} +0 -0
  579. /package/dist/atomic/{p-e739825f.entry.js.map → p-1cc97adc.entry.js.map} +0 -0
  580. /package/dist/atomic/{p-005d34a4.entry.js.map → p-29d27418.entry.js.map} +0 -0
  581. /package/dist/atomic/{p-5250f36d.js.map → p-2dbdd073.js.map} +0 -0
  582. /package/dist/atomic/{p-4dbb3798.entry.js.map → p-2f0cb73c.entry.js.map} +0 -0
  583. /package/dist/atomic/{p-bad08ec3.entry.js.map → p-2ff906b9.entry.js.map} +0 -0
  584. /package/dist/atomic/{p-908fa9c8.entry.js.map → p-306c83ea.entry.js.map} +0 -0
  585. /package/dist/atomic/{p-f5ea03f0.entry.js.map → p-32b26cd0.entry.js.map} +0 -0
  586. /package/dist/atomic/{p-dc463f0b.entry.js.map → p-32c90fe9.entry.js.map} +0 -0
  587. /package/dist/atomic/{p-4e1f7c89.entry.js.map → p-36225d4f.entry.js.map} +0 -0
  588. /package/dist/atomic/{p-84b36ec2.entry.js.map → p-3ec18de9.entry.js.map} +0 -0
  589. /package/dist/atomic/{p-8a337769.entry.js.map → p-3f42a2db.entry.js.map} +0 -0
  590. /package/dist/atomic/{p-c74c1b41.entry.js.map → p-45b26cc7.entry.js.map} +0 -0
  591. /package/dist/atomic/{p-1c06ca0c.entry.js.map → p-46522ee4.entry.js.map} +0 -0
  592. /package/dist/atomic/{p-cfec0988.entry.js.map → p-47ee9d37.entry.js.map} +0 -0
  593. /package/dist/atomic/{p-4af746a9.entry.js.map → p-50b9a5d2.entry.js.map} +0 -0
  594. /package/dist/atomic/{p-756462de.entry.js.map → p-51c5acfc.entry.js.map} +0 -0
  595. /package/dist/atomic/{p-1202d6cc.entry.js.map → p-543e811e.entry.js.map} +0 -0
  596. /package/dist/atomic/{p-1243448d.entry.js.map → p-545f7fb1.entry.js.map} +0 -0
  597. /package/dist/atomic/{p-dc9313c5.entry.js.map → p-60527741.entry.js.map} +0 -0
  598. /package/dist/atomic/{p-d4ab4985.entry.js.map → p-60a9e718.entry.js.map} +0 -0
  599. /package/dist/atomic/{p-1c5502a8.entry.js.map → p-66683abd.entry.js.map} +0 -0
  600. /package/dist/atomic/{p-3024c394.entry.js.map → p-67315415.entry.js.map} +0 -0
  601. /package/dist/atomic/{p-baa3b8ee.entry.js.map → p-689e063d.entry.js.map} +0 -0
  602. /package/dist/atomic/{p-b0be7782.entry.js.map → p-690b5853.entry.js.map} +0 -0
  603. /package/dist/atomic/{p-447f0772.entry.js.map → p-70ab347b.entry.js.map} +0 -0
  604. /package/dist/atomic/{p-dc051fee.entry.js.map → p-76122df5.entry.js.map} +0 -0
  605. /package/dist/atomic/{p-4d8ec431.entry.js.map → p-7d1f8d9c.entry.js.map} +0 -0
  606. /package/dist/atomic/{p-d7c44977.entry.js.map → p-80dc3bab.entry.js.map} +0 -0
  607. /package/dist/atomic/{p-c265c67d.entry.js.map → p-8392e900.entry.js.map} +0 -0
  608. /package/dist/atomic/{p-58c8065c.entry.js.map → p-8d7f57d9.entry.js.map} +0 -0
  609. /package/dist/atomic/{p-bb5c19a7.entry.js.map → p-8e09f796.entry.js.map} +0 -0
  610. /package/dist/atomic/{p-1bddfac7.js.map → p-94e22484.js.map} +0 -0
  611. /package/dist/atomic/{p-79e1bcc1.entry.js.map → p-95942ba2.entry.js.map} +0 -0
  612. /package/dist/atomic/{p-a896c7b8.entry.js.map → p-9a08dad7.entry.js.map} +0 -0
  613. /package/dist/atomic/{p-d5c709cd.entry.js.map → p-9ae88402.entry.js.map} +0 -0
  614. /package/dist/atomic/{p-52abba32.entry.js.map → p-9eb108c9.entry.js.map} +0 -0
  615. /package/dist/atomic/{p-558f3bd6.entry.js.map → p-a046cf06.entry.js.map} +0 -0
  616. /package/dist/atomic/{p-9fb18d3e.entry.js.map → p-a3169f59.entry.js.map} +0 -0
  617. /package/dist/atomic/{p-d1e606f2.entry.js.map → p-a4983d49.entry.js.map} +0 -0
  618. /package/dist/atomic/{p-891f0c50.entry.js.map → p-a772b365.entry.js.map} +0 -0
  619. /package/dist/atomic/{p-ccff6c87.entry.js.map → p-a8281e9b.entry.js.map} +0 -0
  620. /package/dist/atomic/{p-c4dd47ca.entry.js.map → p-ab5eec3d.entry.js.map} +0 -0
  621. /package/dist/atomic/{p-2b11517f.entry.js.map → p-b19a8cbb.entry.js.map} +0 -0
  622. /package/dist/atomic/{p-4b20cdb3.entry.js.map → p-b4d47ca9.entry.js.map} +0 -0
  623. /package/dist/atomic/{p-0ea5cbb8.entry.js.map → p-b4dfe5b2.entry.js.map} +0 -0
  624. /package/dist/atomic/{p-81874146.entry.js.map → p-b747e4a9.entry.js.map} +0 -0
  625. /package/dist/atomic/{p-af8999b1.entry.js.map → p-b7824e0e.entry.js.map} +0 -0
  626. /package/dist/atomic/{p-e7b8ee60.entry.js.map → p-be13ed5c.entry.js.map} +0 -0
  627. /package/dist/atomic/{p-b90ea7e9.entry.js.map → p-befca41f.entry.js.map} +0 -0
  628. /package/dist/atomic/{p-6d264c97.entry.js.map → p-bfeefcaa.entry.js.map} +0 -0
  629. /package/dist/atomic/{p-34cff6c8.entry.js.map → p-c0d7b26d.entry.js.map} +0 -0
  630. /package/dist/atomic/{p-7d1ca26f.entry.js.map → p-c13d4039.entry.js.map} +0 -0
  631. /package/dist/atomic/{p-6d083c4e.entry.js.map → p-c4f042ae.entry.js.map} +0 -0
  632. /package/dist/atomic/{p-f96655f4.entry.js.map → p-c83f9cff.entry.js.map} +0 -0
  633. /package/dist/atomic/{p-4e3518c2.entry.js.map → p-cd87574b.entry.js.map} +0 -0
  634. /package/dist/atomic/{p-963a3e18.entry.js.map → p-d30057a0.entry.js.map} +0 -0
  635. /package/dist/atomic/{p-d5c308fc.entry.js.map → p-d4aba9f9.entry.js.map} +0 -0
  636. /package/dist/atomic/{p-037fbb27.entry.js.map → p-d62469e0.entry.js.map} +0 -0
  637. /package/dist/atomic/{p-dd6e18bb.entry.js.map → p-d69756ae.entry.js.map} +0 -0
  638. /package/dist/atomic/{p-5cf5bb98.entry.js.map → p-d76c5232.entry.js.map} +0 -0
  639. /package/dist/atomic/{p-68bf4184.entry.js.map → p-d827c148.entry.js.map} +0 -0
  640. /package/dist/atomic/{p-cbe083d3.entry.js.map → p-dd8c6bdd.entry.js.map} +0 -0
  641. /package/dist/atomic/{p-26ec2d6d.entry.js.map → p-ddd52850.entry.js.map} +0 -0
  642. /package/dist/atomic/{p-c751940f.entry.js.map → p-e44155cc.entry.js.map} +0 -0
  643. /package/dist/atomic/{p-5e7f50a5.entry.js.map → p-e4754fd0.entry.js.map} +0 -0
  644. /package/dist/atomic/{p-bd109981.entry.js.map → p-e604fd29.entry.js.map} +0 -0
  645. /package/dist/atomic/{p-22a0d1b9.entry.js.map → p-ea5d2736.entry.js.map} +0 -0
  646. /package/dist/atomic/{p-75d11764.entry.js.map → p-eab28672.entry.js.map} +0 -0
  647. /package/dist/atomic/{p-6c5524dc.entry.js.map → p-ec6bc15b.entry.js.map} +0 -0
  648. /package/dist/atomic/{p-98c16767.entry.js.map → p-eebb168b.entry.js.map} +0 -0
  649. /package/dist/atomic/{p-1de6a3e2.entry.js.map → p-f4a1bfe3.entry.js.map} +0 -0
  650. /package/dist/atomic/{p-d1434df4.entry.js.map → p-f4b98113.entry.js.map} +0 -0
  651. /package/dist/atomic/{p-a15f6b8c.entry.js.map → p-f6283657.entry.js.map} +0 -0
  652. /package/dist/atomic/{p-e961a0cc.entry.js.map → p-f7f8096a.entry.js.map} +0 -0
  653. /package/dist/atomic/{p-f8fb398c.entry.js.map → p-fb0bdcdb.entry.js.map} +0 -0
  654. /package/dist/atomic/{p-162da819.entry.js.map → p-fbbbc454.entry.js.map} +0 -0
  655. /package/dist/atomic/{p-dea13af7.entry.js.map → p-fd9d1c3f.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"atomic-commerce-query-error.entry.js","mappings":";;;;;;;;;;;;;;;;;AAAA,MAAM,2BAA2B,GAAG,0u1DAA0u1D,CAAC;AAC/w1D,uCAAe,2BAA2B;;;;;;;;;;;;MC4C7B,wBAAwB;;;QAU1B,iBAAY,GAAG,KAAK,CAAC;;;4BAAN,KAAK;;IAKtB,UAAU;QACf,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,iBAAiB,EAAE;YAC7D,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAClE;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC1D;KACF;IAEM,MAAM;QACX,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAE1C,MAAM,EACJ,QAAQ,EAAE,EACR,IAAI,EACJ,MAAM,EAAE,EACN,aAAa,EAAE,EAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAC,GACvD,GACF,GACF,GAAG,IAAI,CAAC;QAET,MAAM,GAAG,GACP,QAAQ,CAAC,UAAU,IAAI,qBAAqB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAC5C,IAAI,EACJ,cAAc,EACd,GAAG,EACH,KAAK,EAAE,IAAI,CACZ,CAAC;SACH;QACD,QACE,EAAC,eAAe,qDAAC,QAAQ,EAAE,QAAQ,IACjC,EAAC,mBAAmB,uDAClB,EAAC,cAAc,qDAAC,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC1C,EAAC,eAAe,qDACd,SAAS,EAAE,KAAK,EAAE,IAAI,EACtB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,GAC9B,EACF,EAAC,qBAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,KAAK,EAAE,IAAI,GACtB,EACF,EAAC,kBAAkB,qDACjB,IAAI,EAAE,EAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC5D,UAAU,EAAE,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAC1D,IAAI,EAAE,IAAI,GACV,EACF,EAAC,iBAAiB,qDAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,GAAI,CACxC,CACN,EAClB;KACH;;AApE4B;IAA5B,kBAAkB,EAAE;0DAAoC;AAKjD;IAFP,qBAAqB,CAAC,iBAAiB,CAAC;sEAEwB;AAKvD;IADT,cAAc,CAAC,sBAAsB,CAAC;6DACR;;;;;","names":[],"sources":["src/components/commerce/atomic-commerce-query-error/atomic-commerce-query-error.pcss?tag=atomic-commerce-query-error&encapsulation=shadow","src/components/commerce/atomic-commerce-query-error/atomic-commerce-query-error.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n","import {isNullOrUndefined} from '@coveo/bueno';\nimport {\n Search,\n ProductListing,\n SearchState,\n ProductListingState,\n buildProductListing,\n buildSearch,\n getCommerceApiBaseUrl,\n} from '@coveo/headless/commerce';\nimport {Component, h, State} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {QueryErrorDetails} from '../../common/query-error/stencil-details';\nimport {QueryErrorIcon} from '../../common/query-error/stencil-icon';\nimport {QueryErrorShowMore} from '../../common/query-error/show-more';\nimport {QueryErrorContainer} from '../../common/query-error/stencil-container';\nimport {QueryErrorDescription} from '../../common/query-error/stencil-description';\nimport {QueryErrorGuard} from '../../common/query-error/stencil-guard';\nimport {QueryErrorTitle} from '../../common/query-error/stencil-title';\nimport {getAriaMessageFromErrorType} from '../../common/query-error/utils';\nimport {CommerceBindings} from '../atomic-commerce-interface/atomic-commerce-interface';\nimport {QueryErrorLink} from '../../common/query-error/stencil-link';\n\n/**\n * The `atomic-commerce-query-error` component handles fatal errors when performing a query on the Commerce API. When the error is known, it displays a link to relevant documentation for debugging purposes. When the error is unknown, it displays a small text area with the JSON content of the error.\n *\n * @part icon - The SVG related to the error.\n * @part title - The title of the error.\n * @part description - A description of the error.\n * @part doc-link - A link to the relevant documentation.\n * @part more-info-btn - A button to request additional error information.\n * @part error-info - Additional error information.\n *\n * @alpha\n */\n@Component({\n tag: 'atomic-commerce-query-error',\n styleUrl: 'atomic-commerce-query-error.pcss',\n shadow: true,\n})\nexport class AtomicCommerceQueryError\n implements InitializableComponent<CommerceBindings>\n{\n @InitializeBindings() public bindings!: CommerceBindings;\n public searchOrListing!: Search | ProductListing;\n\n @BindStateToController('searchOrListing')\n @State()\n private searchOrListingState!: SearchState | ProductListingState;\n @State() public error!: Error;\n @State() showMoreInfo = false;\n\n @AriaLiveRegion('commerce-query-error')\n protected ariaMessage!: string;\n\n public initialize() {\n if (this.bindings.interfaceElement.type === 'product-listing') {\n this.searchOrListing = buildProductListing(this.bindings.engine);\n } else {\n this.searchOrListing = buildSearch(this.bindings.engine);\n }\n }\n\n public render() {\n const {error} = this.searchOrListingState;\n\n const {\n bindings: {\n i18n,\n engine: {\n configuration: {organizationId, environment, commerce},\n },\n },\n } = this;\n\n const url =\n commerce.apiBaseUrl ?? getCommerceApiBaseUrl(organizationId, environment);\n\n const hasError = !isNullOrUndefined(error);\n if (hasError) {\n this.ariaMessage = getAriaMessageFromErrorType(\n i18n,\n organizationId,\n url,\n error?.type\n );\n }\n return (\n <QueryErrorGuard hasError={hasError}>\n <QueryErrorContainer>\n <QueryErrorIcon errorType={error?.type} />\n <QueryErrorTitle\n errorType={error?.type}\n i18n={i18n}\n organizationId={organizationId}\n />\n <QueryErrorDescription\n i18n={i18n}\n organizationId={organizationId}\n url={url}\n errorType={error?.type}\n />\n <QueryErrorShowMore\n link={<QueryErrorLink i18n={i18n} errorType={error?.type} />}\n onShowMore={() => (this.showMoreInfo = !this.showMoreInfo)}\n i18n={i18n}\n />\n <QueryErrorDetails error={error} show={this.showMoreInfo} />\n </QueryErrorContainer>\n </QueryErrorGuard>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-commerce-query-error.entry.js","mappings":";;;;;;;;;;;;;;;;;AAAA,MAAM,2BAA2B,GAAG,0u1DAA0u1D,CAAC;AAC/w1D,uCAAe,2BAA2B;;;;;;;;;;;;MC4C7B,wBAAwB;;;QAU1B,iBAAY,GAAG,KAAK,CAAC;;;4BAAN,KAAK;;IAKtB,UAAU;QACf,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,iBAAiB,EAAE;YAC7D,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAClE;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC1D;KACF;IAEM,MAAM;QACX,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAE1C,MAAM,EACJ,QAAQ,EAAE,EACR,IAAI,EACJ,MAAM,EAAE,EACN,aAAa,EAAE,EAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAC,GACvD,GACF,GACF,GAAG,IAAI,CAAC;QAET,MAAM,GAAG,GACP,QAAQ,CAAC,UAAU,IAAI,qBAAqB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG,2BAA2B,CAC5C,IAAI,EACJ,cAAc,EACd,GAAG,EACH,KAAK,EAAE,IAAI,CACZ,CAAC;SACH;QACD,QACE,EAAC,eAAe,qDAAC,QAAQ,EAAE,QAAQ,IACjC,EAAC,mBAAmB,uDAClB,EAAC,cAAc,qDAAC,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC1C,EAAC,eAAe,qDACd,SAAS,EAAE,KAAK,EAAE,IAAI,EACtB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,GAC9B,EACF,EAAC,qBAAqB,qDACpB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,KAAK,EAAE,IAAI,GACtB,EACF,EAAC,kBAAkB,qDACjB,IAAI,EAAE,EAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,GAAI,EAC5D,UAAU,EAAE,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAC1D,IAAI,EAAE,IAAI,GACV,EACF,EAAC,iBAAiB,qDAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,GAAI,CACxC,CACN,EAClB;KACH;;AApE4B;IAA5B,kBAAkB,EAAE;0DAAoC;AAKjD;IAFP,qBAAqB,CAAC,iBAAiB,CAAC;sEAEwB;AAKvD;IADT,cAAc,CAAC,sBAAsB,CAAC;6DACR;;;;;","names":[],"sources":["src/components/commerce/atomic-commerce-query-error/atomic-commerce-query-error.pcss?tag=atomic-commerce-query-error&encapsulation=shadow","src/components/commerce/atomic-commerce-query-error/atomic-commerce-query-error.tsx"],"sourcesContent":["@import '../../../global/global.pcss';\n","import {isNullOrUndefined} from '@coveo/bueno';\nimport {\n Search,\n ProductListing,\n SearchState,\n ProductListingState,\n buildProductListing,\n buildSearch,\n getCommerceApiBaseUrl,\n} from '@coveo/headless/commerce';\nimport {Component, h, State} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {QueryErrorDetails} from '../../common/query-error/stencil-details';\nimport {QueryErrorIcon} from '../../common/query-error/stencil-icon';\nimport {QueryErrorShowMore} from '../../common/query-error/stencil-show-more';\nimport {QueryErrorContainer} from '../../common/query-error/stencil-container';\nimport {QueryErrorDescription} from '../../common/query-error/stencil-description';\nimport {QueryErrorGuard} from '../../common/query-error/stencil-guard';\nimport {QueryErrorTitle} from '../../common/query-error/stencil-title';\nimport {getAriaMessageFromErrorType} from '../../common/query-error/utils';\nimport {CommerceBindings} from '../atomic-commerce-interface/atomic-commerce-interface';\nimport {QueryErrorLink} from '../../common/query-error/stencil-link';\n\n/**\n * The `atomic-commerce-query-error` component handles fatal errors when performing a query on the Commerce API. When the error is known, it displays a link to relevant documentation for debugging purposes. When the error is unknown, it displays a small text area with the JSON content of the error.\n *\n * @part icon - The SVG related to the error.\n * @part title - The title of the error.\n * @part description - A description of the error.\n * @part doc-link - A link to the relevant documentation.\n * @part more-info-btn - A button to request additional error information.\n * @part error-info - Additional error information.\n *\n * @alpha\n */\n@Component({\n tag: 'atomic-commerce-query-error',\n styleUrl: 'atomic-commerce-query-error.pcss',\n shadow: true,\n})\nexport class AtomicCommerceQueryError\n implements InitializableComponent<CommerceBindings>\n{\n @InitializeBindings() public bindings!: CommerceBindings;\n public searchOrListing!: Search | ProductListing;\n\n @BindStateToController('searchOrListing')\n @State()\n private searchOrListingState!: SearchState | ProductListingState;\n @State() public error!: Error;\n @State() showMoreInfo = false;\n\n @AriaLiveRegion('commerce-query-error')\n protected ariaMessage!: string;\n\n public initialize() {\n if (this.bindings.interfaceElement.type === 'product-listing') {\n this.searchOrListing = buildProductListing(this.bindings.engine);\n } else {\n this.searchOrListing = buildSearch(this.bindings.engine);\n }\n }\n\n public render() {\n const {error} = this.searchOrListingState;\n\n const {\n bindings: {\n i18n,\n engine: {\n configuration: {organizationId, environment, commerce},\n },\n },\n } = this;\n\n const url =\n commerce.apiBaseUrl ?? getCommerceApiBaseUrl(organizationId, environment);\n\n const hasError = !isNullOrUndefined(error);\n if (hasError) {\n this.ariaMessage = getAriaMessageFromErrorType(\n i18n,\n organizationId,\n url,\n error?.type\n );\n }\n return (\n <QueryErrorGuard hasError={hasError}>\n <QueryErrorContainer>\n <QueryErrorIcon errorType={error?.type} />\n <QueryErrorTitle\n errorType={error?.type}\n i18n={i18n}\n organizationId={organizationId}\n />\n <QueryErrorDescription\n i18n={i18n}\n organizationId={organizationId}\n url={url}\n errorType={error?.type}\n />\n <QueryErrorShowMore\n link={<QueryErrorLink i18n={i18n} errorType={error?.type} />}\n onShowMore={() => (this.showMoreInfo = !this.showMoreInfo)}\n i18n={i18n}\n />\n <QueryErrorDetails error={error} show={this.showMoreInfo} />\n </QueryErrorContainer>\n </QueryErrorGuard>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, s as setNonce, h, g as getElement } from './index-3f35faca.js';
2
2
  import { m as markParentAsReady } from './init-queue-fbe942c3.js';
3
3
  import { buildContext } from '@coveo/headless/commerce';
4
- import { C as CommonAtomicInterfaceHelper, i as instance } from './interface-common-stencil-623d4314.js';
4
+ import { C as CommonAtomicInterfaceHelper, i as instance } from './interface-common-stencil-fc6f80e8.js';
5
5
  import { u as unsetLoadingFlag, s as setLoadingFlag, a as createBaseStore } from './store-9da184ac.js';
6
6
  import '@coveo/headless';
7
7
  import './dayjs.min-d04628c6.js';
@@ -158,7 +158,7 @@ const AtomicCommerceRecommendationInterface = class {
158
158
  this.initLanguage();
159
159
  }
160
160
  render() {
161
- return [h("slot", { key: 'b7c7e8b55c878b23fa2787f482db5be770bab562' })];
161
+ return [h("slot", { key: '30c05d281c0ef69ebcf604911b9f4811c06292d9' })];
162
162
  }
163
163
  static get assetsDirs() { return ["lang"]; }
164
164
  get host() { return getElement(this); }
@@ -116,7 +116,7 @@ const AtomicCommerceRefineModal = class {
116
116
  return (h(RefineModalFiltersSection, { i18n: i18n, withFacets: true, withAutomaticFacets: false }, this.breadcrumbManagerState.hasBreadcrumbs && (h(RefineModalFiltersClearButton, { i18n: i18n, onClick: () => this.breadcrumbManager.deselectAll() }))));
117
117
  }
118
118
  render() {
119
- return (h(RefineModal, { key: 'a6ff130b0bba4a3293fccd76efe0d38a660d9bf0', i18n: this.bindings.i18n, host: this.host, isOpen: this.isOpen, onClose: () => (this.isOpen = false), title: this.bindings.i18n.t('sort-and-filter'), numberOfItems: this.summaryState.totalNumberOfProducts, openButton: this.openButton }, h(RefineModalBody, { key: 'e5e7f692fd225e8bae6d022fb64ef1565a360fbe' }, this.renderSort(), this.renderFilters())));
119
+ return (h(RefineModal, { key: 'aa39a5ec55ef2bbaf18b1a569de41ea65ce05332', i18n: this.bindings.i18n, host: this.host, isOpen: this.isOpen, onClose: () => (this.isOpen = false), title: this.bindings.i18n.t('sort-and-filter'), numberOfItems: this.summaryState.totalNumberOfProducts, openButton: this.openButton }, h(RefineModalBody, { key: '46ce31d9be0c2e33097ee63c5919f10e4a009773' }, this.renderSort(), this.renderFilters())));
120
120
  }
121
121
  componentDidLoad() {
122
122
  this.host.style.display = '';
@@ -47,7 +47,7 @@ const AtomicCommerceRefineToggle = class {
47
47
  this.modalRef && (this.modalRef.isOpen = true);
48
48
  }
49
49
  render() {
50
- return (h(RefineToggleGuard, { key: '2cf9df8dd0f1e54955252e24e7d14da4c5cfabb8', firstRequestExecuted: this.summaryState.firstRequestExecuted, hasError: this.summaryState.hasError, hasItems: this.summaryState.hasProducts }, h(RefineToggleButton, { key: '2fd29ad4018dae637e447ae415cac913c9c054a8', i18n: this.bindings.i18n, onClick: () => this.enableModal(), setRef: (button) => {
50
+ return (h(RefineToggleGuard, { key: '0936ba6fa09da9b450718da4b445ed16d9d9d56a', firstRequestExecuted: this.summaryState.firstRequestExecuted, hasError: this.summaryState.hasError, hasItems: this.summaryState.hasProducts }, h(RefineToggleButton, { key: 'cff1eeacc25c2591f199aa36174126035c8b26af', i18n: this.bindings.i18n, onClick: () => this.enableModal(), setRef: (button) => {
51
51
  if (!button) {
52
52
  return;
53
53
  }
@@ -70,7 +70,7 @@ const AtomicFacetManager = class {
70
70
  this.bindings?.i18n.off('languageChanged', this.sortFacets);
71
71
  }
72
72
  render() {
73
- return h("slot", { key: 'e02c51978ce77a62c7f1088d57ba93dae257948d' });
73
+ return h("slot", { key: '961131ac67d2b2d74ecd11a504b5e2bf5d3b78b5' });
74
74
  }
75
75
  get host() { return getElement(this); }
76
76
  };
@@ -44,11 +44,11 @@ const FacetNumberInput = class {
44
44
  const inputClasses = 'p-2.5 input-primary placeholder-neutral-dark min-w-0 mr-1';
45
45
  const labelClasses = 'text-neutral-dark text-sm';
46
46
  const step = this.type === 'integer' ? '1' : 'any';
47
- return (h("form", { key: '805e001012201b280e5820a7674a41f7f20b79ed', class: "mt-4 gap-y-0.5 px-2", part: "input-form", onSubmit: (e) => {
47
+ return (h("form", { key: 'aeec1e4f98899d1653df921fc0a9c53ca3fcbf3b', class: "mt-4 gap-y-0.5 px-2", part: "input-form", onSubmit: (e) => {
48
48
  e.preventDefault();
49
49
  this.apply();
50
50
  return false;
51
- } }, h("label", { key: '6285713ae74850a682225a3805d4b0dfb4312351', part: "label-start", class: labelClasses, htmlFor: `${this.filterState.facetId}_start` }, minText), h("input", { key: '234b78c7576407d5a976e2f1dae6fba679539593', part: "input-start", id: `${this.filterState.facetId}_start`, type: "number", step: step, ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": minAria, required: true, min: Number.MIN_SAFE_INTEGER, max: this.end, value: this.filterState.range?.start, onInput: (e) => (this.start = e.target.valueAsNumber) }), h("label", { key: '70161503018f6216d48de99f47671edee1fce28b', part: "label-end", class: labelClasses, htmlFor: `${this.filterState.facetId}_end` }, maxText), h("input", { key: '1a1311e051daf2bac1771cb500a79859aaa0a795', part: "input-end", id: `${this.filterState.facetId}_end`, type: "number", step: step, ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": maxAria, required: true, min: this.start, max: Number.MAX_SAFE_INTEGER, value: this.filterState.range?.end, onInput: (e) => (this.end = e.target.valueAsNumber) }), h(Button, { key: '267ee8fa7e6bb2dc8dc248a1c49b0ac757b4efe3', style: "outline-primary", type: "submit", part: "input-apply-button", class: "flex-none truncate p-2.5", ariaLabel: applyAria, text: apply })));
51
+ } }, h("label", { key: 'edfa0efd988534f6c8228215489220f79504e166', part: "label-start", class: labelClasses, htmlFor: `${this.filterState.facetId}_start` }, minText), h("input", { key: 'c032ead904ce549843de5ca3f124d8502a3e4d14', part: "input-start", id: `${this.filterState.facetId}_start`, type: "number", step: step, ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": minAria, required: true, min: Number.MIN_SAFE_INTEGER, max: this.end, value: this.filterState.range?.start, onInput: (e) => (this.start = e.target.valueAsNumber) }), h("label", { key: '5e6950b85237aaf46b09d00487f882044402eec1', part: "label-end", class: labelClasses, htmlFor: `${this.filterState.facetId}_end` }, maxText), h("input", { key: 'c07d8787a0bcdc8f267f3d753752feb14c1e14f2', part: "input-end", id: `${this.filterState.facetId}_end`, type: "number", step: step, ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": maxAria, required: true, min: this.start, max: Number.MAX_SAFE_INTEGER, value: this.filterState.range?.end, onInput: (e) => (this.end = e.target.valueAsNumber) }), h(Button, { key: '97b81fcf3f99a3a250b1f4e538dd720893be20fe', style: "outline-primary", type: "submit", part: "input-apply-button", class: "flex-none truncate p-2.5", ariaLabel: applyAria, text: apply })));
52
52
  }
53
53
  };
54
54
  FacetNumberInput.style = AtomicFacetNumberInputStyle0;
@@ -247,7 +247,7 @@ const AtomicFacet = class {
247
247
  return true;
248
248
  }
249
249
  render() {
250
- return (h(FacetGuard, { key: '494f63d179b36f6d5659c454591ad9631781e3e7', enabled: this.facetState.enabled, hasError: this.searchStatusState.hasError, firstSearchExecuted: this.searchStatusState.firstSearchExecuted, hasResults: this.facetState.values.length > 0 }, this.searchStatusState.firstSearchExecuted ? (h(FacetContainer, null, h(FacetHeader, { i18n: this.bindings.i18n, label: this.definedLabel, onClearFilters: () => {
250
+ return (h(FacetGuard, { key: 'a286d4742a2ee06739b1ef436a125c9a5fb4ea28', enabled: this.facetState.enabled, hasError: this.searchStatusState.hasError, firstSearchExecuted: this.searchStatusState.firstSearchExecuted, hasResults: this.facetState.values.length > 0 }, this.searchStatusState.firstSearchExecuted ? (h(FacetContainer, null, h(FacetHeader, { i18n: this.bindings.i18n, label: this.definedLabel, onClearFilters: () => {
251
251
  this.focusTargets.header.focusAfterSearch();
252
252
  this.facet.deselectAll();
253
253
  }, numberOfActiveValues: this.activeValues.length, isCollapsed: this.isCollapsed, headingLevel: this.headingLevel, onToggleCollapse: () => (this.isCollapsed = !this.isCollapsed), headerRef: (el) => this.focusTargets.header.setTarget(el) }), this.renderBody())) : (h(FacetPlaceholder, { numberOfValues: this.numberOfValues, isCollapsed: this.isCollapsed }))));
@@ -222,8 +222,8 @@ const AtomicModal = class {
222
222
  }
223
223
  render() {
224
224
  this.updateBreakpoints();
225
- const Content = () => (h("article", { key: '55d9bc1f7133156f9a6f9e91dd409ff8da494815', part: "container", class: `bg-background text-on-background flex flex-col justify-between ${this.isOpen ? 'animate-open' : 'animate-close'} ${this.wasEverOpened ? '' : 'invisible'}`, onAnimationEnd: () => this.animationEnded.emit(), ref: (ref) => (this.animatableContainer = ref) }, h("header", { key: '4d2ca5d40fe20240076cab7a6825ca6cfa191947', part: "header-wrapper", class: "flex flex-col items-center" }, h("div", { key: '8642bab5f6dda5892418f593c2e9a71438408ea5', part: "header", class: "flex w-full max-w-lg justify-between text-xl", id: this.headerId }, h("slot", { key: '8115b3f579e60c54554d4f200b8e3aeda4daf1df', name: "header" }))), h("hr", { key: '43126093e2985a49be560d16f41875b22d187a00', part: "header-ruler", class: "border-neutral border-t" }), h("div", { key: '29a443e54d35e1b6fd5236b15b92e505d466f6f1', part: "body-wrapper", class: "flex w-full grow flex-col items-center overflow-auto" }, h("div", { key: '0e465f97572afc0d520722661aff5ae0fd5dd779', part: "body", class: "w-full max-w-lg", ref: (element) => element?.addEventListener('touchmove', (e) => this.isOpen && e.stopPropagation(), { passive: false }) }, h("slot", { key: '8f29bb02344c60dc46c5f477fca5a92863b3f1c3', name: "body" }))), h("footer", { key: '0b90cef54e866ef83a545e271dcb25dd1e158071', part: "footer-wrapper", class: "border-neutral bg-background z-10 flex w-full flex-col items-center border-t" }, h("div", { key: 'd5ea0fa31ac37207de65ac3a9530bb3df2c297c5', part: "footer", class: "w-full max-w-lg" }, h("slot", { key: 'ed9ab67debff0dffff535af921643c600c42ab83', name: "footer" })))));
226
- return (h(Host, { key: '878f0f81b908ac62687b2ace6fdd73b42175372c', class: this.getClasses().join(' '), "data-nosnippet": true }, h("div", { key: 'f00226630819b214bf72dc804e0bf4e6afbc152b', part: "backdrop", class: ` ${this.boundary === 'page' ? 'fixed' : 'absolute'} top-0 right-0 bottom-0 left-0 z-9999`, onClick: (e) => e.target === e.currentTarget && this.close() }, h("atomic-focus-trap", { key: 'e17e801c2fe9bf0cc7e1fde36d8afb90779d9194', role: "dialog", "aria-modal": this.isOpen.toString(), "aria-labelledby": this.headerId, source: this.source, container: this.container ?? this.host, ref: (ref) => (this.focusTrap = ref), scope: this.scope }, h(Content, { key: '73ef7e7a308d1b45f5750b3adf232384d662dda5' })))));
225
+ const Content = () => (h("article", { key: '97c068b84321020cc2849ad2aa3a6f88fff51504', part: "container", class: `bg-background text-on-background flex flex-col justify-between ${this.isOpen ? 'animate-open' : 'animate-close'} ${this.wasEverOpened ? '' : 'invisible'}`, onAnimationEnd: () => this.animationEnded.emit(), ref: (ref) => (this.animatableContainer = ref) }, h("header", { key: '5abf8864646b6cd77167122276d59081c4e09f95', part: "header-wrapper", class: "flex flex-col items-center" }, h("div", { key: '86448657992058f5baae1548f0ed429fae775227', part: "header", class: "flex w-full max-w-lg justify-between text-xl", id: this.headerId }, h("slot", { key: '0825c59f7328db13d1a2d88f87682968ab9b13e1', name: "header" }))), h("hr", { key: '52fcdce56b2eccdb5b6dc10eec0c1aea88ec66fa', part: "header-ruler", class: "border-neutral border-t" }), h("div", { key: '6aaf6efe85f5661409ac20708399666ee4f3b51d', part: "body-wrapper", class: "flex w-full grow flex-col items-center overflow-auto" }, h("div", { key: '58502a8abaff5d67ea6e2591862af1eebd34a58a', part: "body", class: "w-full max-w-lg", ref: (element) => element?.addEventListener('touchmove', (e) => this.isOpen && e.stopPropagation(), { passive: false }) }, h("slot", { key: '25658c844fc13ee759af20eda4c15847755c74d1', name: "body" }))), h("footer", { key: '0e4afb825f8e458fa45cfa29a9fd8be4a8afc2ed', part: "footer-wrapper", class: "border-neutral bg-background z-10 flex w-full flex-col items-center border-t" }, h("div", { key: '31dac6874a1dee52e2b3599cd14c38c18941979e', part: "footer", class: "w-full max-w-lg" }, h("slot", { key: '82f8398b4248a15f034f13895c75d0b8f93334a8', name: "footer" })))));
226
+ return (h(Host, { key: 'b2b70e2126b42ac0faf317ac6a8f63578d55c72a', class: this.getClasses().join(' '), "data-nosnippet": true }, h("div", { key: 'c761439e7e02b59f375b8c1195bfd63d37ddc1ef', part: "backdrop", class: ` ${this.boundary === 'page' ? 'fixed' : 'absolute'} top-0 right-0 bottom-0 left-0 z-9999`, onClick: (e) => e.target === e.currentTarget && this.close() }, h("atomic-focus-trap", { key: '93e244f324053e7e7c4472aeb772d19694f098b3', role: "dialog", "aria-modal": this.isOpen.toString(), "aria-labelledby": this.headerId, source: this.source, container: this.container ?? this.host, ref: (ref) => (this.focusTrap = ref), scope: this.scope }, h(Content, { key: '8b9b6210b33e9223bd1457dee91e780255e77d52' })))));
227
227
  }
228
228
  get host() { return getElement(this); }
229
229
  static get watchers() { return {
@@ -19,7 +19,7 @@ const AtomicFormatCurrency = class {
19
19
  }
20
20
  render() {
21
21
  if (this.error) {
22
- return (h("atomic-component-error", { key: '5f48cdfe70fe270cb3514dcf1ea0a40423f891ed', element: this.host, error: this.error }));
22
+ return (h("atomic-component-error", { key: '5cc04c955cdb2b9866bc1997ba5166711b66d3cd', element: this.host, error: this.error }));
23
23
  }
24
24
  }
25
25
  get host() { return getElement(this); }
@@ -31,7 +31,7 @@ const AtomicFormatNumber = class {
31
31
  }
32
32
  render() {
33
33
  if (this.error) {
34
- return (h("atomic-component-error", { key: '3ec44cab05c643805cebfe2f33f426d5bafe8655', element: this.host, error: this.error }));
34
+ return (h("atomic-component-error", { key: 'bc535a767fd78b4487288d1e2f18987215f05117', element: this.host, error: this.error }));
35
35
  }
36
36
  }
37
37
  get host() { return getElement(this); }
@@ -34,7 +34,7 @@ const AtomicFormatUnit = class {
34
34
  }
35
35
  render() {
36
36
  if (this.error) {
37
- return (h("atomic-component-error", { key: '599061f1c9edeecd5b5909fabf45be0fed26785a', element: this.host, error: this.error }));
37
+ return (h("atomic-component-error", { key: 'c46cf1bab2bcc058b288ac109a13c6c871525435', element: this.host, error: this.error }));
38
38
  }
39
39
  }
40
40
  get host() { return getElement(this); }
@@ -380,7 +380,7 @@ const AtomicGeneratedAnswerFeedbackModal = class {
380
380
  }
381
381
  render() {
382
382
  this.updateBreakpoints();
383
- return (h("atomic-modal", { key: '58048a3e8be4c60015d68d86b37e8d0e96e5eed8', fullscreen: false, isOpen: this.isOpen, close: () => this.close(), container: this.host, part: "generated-answer-feedback-modal", exportparts: ATOMIC_MODAL_EXPORT_PARTS }, this.renderHeader(), this.renderBody(), this.renderFooter()));
383
+ return (h("atomic-modal", { key: 'cd5871ef60cd3465f6094e39ef0a91ec087c5fdc', fullscreen: false, isOpen: this.isOpen, close: () => this.close(), container: this.host, part: "generated-answer-feedback-modal", exportparts: ATOMIC_MODAL_EXPORT_PARTS }, this.renderHeader(), this.renderBody(), this.renderFooter()));
384
384
  }
385
385
  get host() { return getElement(this); }
386
386
  static get watchers() { return {
@@ -42,6 +42,7 @@ const AtomicGeneratedAnswer = class {
42
42
  this.DEFAULT_COLLAPSED_HEIGHT = 16;
43
43
  this.MAX_COLLAPSED_HEIGHT = 32;
44
44
  this.MIN_COLLAPSED_HEIGHT = 9;
45
+ this.DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS = 'filetype';
45
46
  this.copied = false;
46
47
  this.copyError = false;
47
48
  /**
@@ -49,6 +50,10 @@ const AtomicGeneratedAnswer = class {
49
50
  *
50
51
  */
51
52
  this.maxCollapsedHeight = this.DEFAULT_COLLAPSED_HEIGHT;
53
+ /**
54
+ * A list of fields to include with the citations used to generate the answer.
55
+ */
56
+ this.fieldsToIncludeInCitations = this.DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS;
52
57
  /**
53
58
  * The tabs on which the generated answer can be displayed. This property should not be used at the same time as `tabs-excluded`.
54
59
  *
@@ -100,6 +105,7 @@ const AtomicGeneratedAnswer = class {
100
105
  this.collapsible = undefined;
101
106
  this.maxCollapsedHeight = this.DEFAULT_COLLAPSED_HEIGHT;
102
107
  this.answerConfigurationId = undefined;
108
+ this.fieldsToIncludeInCitations = this.DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS;
103
109
  this.tabsIncluded = '[]';
104
110
  this.tabsExcluded = '[]';
105
111
  }
@@ -133,6 +139,7 @@ const AtomicGeneratedAnswer = class {
133
139
  ...(this.answerConfigurationId && {
134
140
  answerConfigurationId: this.answerConfigurationId,
135
141
  }),
142
+ fieldsToIncludeInCitations: this.getCitationFields(),
136
143
  });
137
144
  this.searchStatus = buildSearchStatus(this.bindings.engine);
138
145
  this.generatedAnswerCommon.insertFeedbackModal();
@@ -176,6 +183,12 @@ const AtomicGeneratedAnswer = class {
176
183
  getAnswerFooter() {
177
184
  return this.host?.shadowRoot?.querySelector('[part="generated-answer-footer"]');
178
185
  }
186
+ getCitationFields() {
187
+ return this.fieldsToIncludeInCitations
188
+ ?.split(',')
189
+ .map((field) => field.trim())
190
+ .filter((field) => field.length > 0);
191
+ }
179
192
  validateMaxCollapsedHeight() {
180
193
  const isValid = this.maxCollapsedHeight >= this.MIN_COLLAPSED_HEIGHT &&
181
194
  this.maxCollapsedHeight <= this.MAX_COLLAPSED_HEIGHT;
@@ -1 +1 @@
1
- {"file":"atomic-generated-answer.entry.js","mappings":"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","names":[],"sources":["src/components/search/atomic-generated-answer/atomic-generated-answer.pcss?tag=atomic-generated-answer&encapsulation=shadow","src/components/search/atomic-generated-answer/atomic-generated-answer.tsx"],"sourcesContent":["@import '../../common/generated-answer/styles/generated-answer.pcss';\n","import {\n SearchStatus,\n SearchStatusState,\n buildSearchStatus,\n buildGeneratedAnswer,\n GeneratedAnswer,\n GeneratedAnswerState,\n buildInteractiveCitation,\n buildTabManager,\n TabManagerState,\n TabManager,\n} from '@coveo/headless';\nimport {Component, Element, State, Prop, Watch, h} from '@stencil/core';\nimport {debounce} from '../../../utils/debounce-utils';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {ArrayProp} from '../../../utils/props-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {shouldDisplayOnCurrentTab} from '../../../utils/tab-utils';\nimport {GeneratedAnswerCommon} from '../../common/generated-answer/generated-answer-common';\nimport {Hidden} from '../../common/stencil-hidden';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-generated-answer` component uses Coveo Machine Learning (Coveo ML) models to automatically generate an answer to a query executed by the user.\n * For more information, see [About Relevance Generative Answering (RGA)](https://docs.coveo.com/en/n9de0370/)\n *\n * @slot no-answer-message - Lets you pass a custom sorry message when no answer is generated.\n *\n * @part container - The container displaying the generated answer.\n * @part header-label - The header of the generated answer container.\n * @part feedback-button - The \"like\" and \"dislike\" buttons.\n * @part toggle - The switch to toggle the visibility of the generated answer.\n * @part copy-button - The \"Copy answer\" button.\n * @part retry-container - The container for the \"retry\" section.\n * @part generated-text - The text of the generated answer.\n * @part citations-label - The header of the citations list.\n *\n * @part answer-code-block - The generated answer multi-line code blocks.\n * @part answer-emphasis - The generated answer emphasized text elements.\n * @part answer-inline-code - The generated answer inline code elements.\n * @part answer-heading-1 - The generated answer level 1 heading elements.\n * @part answer-heading-2 - The generated answer level 2 heading elements.\n * @part answer-heading-3 - The generated answer level 3 heading elements.\n * @part answer-heading-4 - The generated answer level 4 heading elements.\n * @part answer-heading-5 - The generated answer level 5 heading elements.\n * @part answer-heading-6 - The generated answer level 6 heading elements.\n * @part answer-list-item - The generated answer list item elements for both ordered and unordered lists.\n * @part answer-ordered-list - The generated answer ordered list elements.\n * @part answer-paragraph - The generated answer paragraph elements.\n * @part answer-quote-block - The generated answer quote block elements.\n * @part answer-unordered-list - The generated answer unordered list elements.\n * @part answer-strong - The generated answer strong text elements.\n * @part answer-table - The generated answer table elements.\n * @part answer-table-container - The generated answer table container elements.\n * @part answer-table-content - The generated answer table content cell elements.\n * @part answer-table-header - The generated answer table header cell elements.\n *\n * @part citation - The link that allows the user to navigate to the item.\n * @part citation-popover - The pop-up that shows an item preview when the user hovers over the citation.\n */\n@Component({\n tag: 'atomic-generated-answer',\n styleUrl: 'atomic-generated-answer.pcss',\n shadow: true,\n})\nexport class AtomicGeneratedAnswer implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public generatedAnswer!: GeneratedAnswer;\n public searchStatus!: SearchStatus;\n private resizeObserver?: ResizeObserver;\n\n private readonly DEFAULT_COLLAPSED_HEIGHT = 16;\n private readonly MAX_COLLAPSED_HEIGHT = 32;\n private readonly MIN_COLLAPSED_HEIGHT = 9;\n\n @BindStateToController('generatedAnswer', {\n onUpdateCallbackMethod: 'onGeneratedAnswerStateUpdate',\n })\n @State()\n private generatedAnswerState!: GeneratedAnswerState;\n\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: SearchStatusState;\n\n public tabManager!: TabManager;\n\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n\n @State()\n public error!: Error;\n\n @Element() private host!: HTMLElement;\n\n @State()\n copied = false;\n\n @State()\n copyError = false;\n\n /**\n * Whether to render a toggle button that lets the user hide or show the answer.\n * @default false\n */\n @Prop() withToggle?: boolean;\n\n /**\n * Whether to allow the answer to be collapsed when the text is taller than the specified `--atomic-crga-collapsed-height` value (16rem by default).\n * @default false\n */\n @Prop() collapsible?: boolean;\n\n /**\n * The maximum height (in rem units) of the answer when collapsed.\n *\n */\n @Prop() maxCollapsedHeight = this.DEFAULT_COLLAPSED_HEIGHT;\n\n /**\n * The unique identifier of the answer configuration to use to generate the answer.\n */\n @Prop() answerConfigurationId?: string;\n\n /**\n * The tabs on which the generated answer can be displayed. This property should not be used at the same time as `tabs-excluded`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-generated-answer tabs-included='[\"tabIDA\", \"tabIDB\"]'></atomic-generated-answer>\n * ```\n * If you don't set this property, the generated answer can be displayed on any tab. Otherwise, the generated answer can only be displayed on the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsIncluded: string[] | string = '[]';\n\n /**\n * The tabs on which this generated answer must not be displayed. This property should not be used at the same time as `tabs-included`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-generated-answer tabs-excluded='[\"tabIDA\", \"tabIDB\"]'></atomic-generated-answer>\n * ```\n * If you don't set this property, the generated answer can be displayed on any tab. Otherwise, the generated answer won't be displayed on any of the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsExcluded: string[] | string = '[]';\n\n @AriaLiveRegion('generated-answer')\n protected ariaMessage!: string;\n\n private generatedAnswerCommon!: GeneratedAnswerCommon;\n private fullAnswerHeight?: number;\n\n public initialize() {\n if (\n [...this.tabsIncluded].length > 0 &&\n [...this.tabsExcluded].length > 0\n ) {\n console.warn(\n 'Values for both \"tabs-included\" and \"tabs-excluded\" have been provided. This could lead to unexpected behaviors.'\n );\n }\n this.generatedAnswerCommon = new GeneratedAnswerCommon({\n host: this.host,\n withToggle: this.withToggle,\n collapsible: this.collapsible,\n getGeneratedAnswer: () => this.generatedAnswer,\n getGeneratedAnswerState: () => this.generatedAnswerState,\n getSearchStatusState: () => this.searchStatusState,\n getBindings: () => this.bindings,\n getCopied: () => this.copied,\n setCopied: this.setCopied,\n getCopyError: () => this.copyError,\n setCopyError: this.setCopyError,\n setAriaMessage: this.setAriaMessage,\n buildInteractiveCitation: (props) =>\n buildInteractiveCitation(this.bindings.engine, props),\n });\n this.generatedAnswer = buildGeneratedAnswer(this.bindings.engine, {\n initialState: {\n isVisible: this.generatedAnswerCommon.data.isVisible,\n responseFormat: {\n contentFormat: ['text/markdown', 'text/plain'],\n },\n },\n ...(this.answerConfigurationId && {\n answerConfigurationId: this.answerConfigurationId,\n }),\n });\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n this.generatedAnswerCommon.insertFeedbackModal();\n\n if (window.ResizeObserver && this.collapsible) {\n const debouncedAdaptAnswerHeight = debounce(\n () => this.adaptAnswerHeight(),\n 100\n );\n this.resizeObserver = new ResizeObserver(debouncedAdaptAnswerHeight);\n this.resizeObserver.observe(this.host);\n }\n this.tabManager = buildTabManager(this.bindings.engine);\n }\n\n @Watch('generatedAnswerState')\n public updateAnswerCollapsed(\n newState: GeneratedAnswerState,\n oldState: GeneratedAnswerState\n ) {\n const newExpanded = newState.expanded;\n const oldExpanded = oldState ? oldState.expanded : undefined;\n\n if (newExpanded !== oldExpanded) {\n const container = this.getAnswerContainer();\n\n if (!container) {\n return;\n }\n\n this.toggleClass(container, 'answer-collapsed', !newExpanded);\n }\n }\n\n public disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n // @ts-expect-error: This function is used by BindStateToController.\n private onGeneratedAnswerStateUpdate = () => {\n if (\n this.generatedAnswerState.isVisible !==\n this.generatedAnswerCommon?.data?.isVisible\n ) {\n this.generatedAnswerCommon.data = {\n ...this.generatedAnswerCommon.data,\n isVisible: this.generatedAnswerState.isVisible,\n };\n this.generatedAnswerCommon.writeStoredData(\n this.generatedAnswerCommon.data\n );\n }\n\n this.setAriaMessage(this.generatedAnswerCommon.getGeneratedAnswerStatus());\n };\n\n private setCopied = (isCopied: boolean) => {\n this.copied = isCopied;\n };\n\n private setCopyError = (copyError: boolean) => {\n this.copyError = copyError;\n };\n\n private setAriaMessage = (message: string) => {\n this.ariaMessage = message;\n };\n\n private toggleClass(element: Element, className: string, condition: boolean) {\n element.classList.toggle(className, condition);\n }\n\n private adaptAnswerHeight() {\n const answerHeight = this.host?.shadowRoot\n ?.querySelector('[part=\"generated-text\"]')\n ?.getBoundingClientRect().height;\n\n if (answerHeight) {\n const rootFontSize = parseFloat(\n getComputedStyle(document.documentElement).fontSize\n );\n\n this.fullAnswerHeight = answerHeight / rootFontSize;\n\n this.updateAnswerHeight();\n }\n }\n\n private getAnswerContainer() {\n return this.host?.shadowRoot?.querySelector('[part=\"generated-container\"]');\n }\n\n private getAnswerFooter() {\n return this.host?.shadowRoot?.querySelector(\n '[part=\"generated-answer-footer\"]'\n );\n }\n\n private validateMaxCollapsedHeight(): number {\n const isValid =\n this.maxCollapsedHeight >= this.MIN_COLLAPSED_HEIGHT &&\n this.maxCollapsedHeight <= this.MAX_COLLAPSED_HEIGHT;\n\n if (!isValid) {\n console.warn(\n `max-collapsed-height (${this.maxCollapsedHeight}rem) is out of the valid range (${this.MIN_COLLAPSED_HEIGHT}rem - ${this.MAX_COLLAPSED_HEIGHT}rem). Falling back to default value (${this.DEFAULT_COLLAPSED_HEIGHT}rem).`\n );\n }\n\n return isValid ? this.maxCollapsedHeight : this.DEFAULT_COLLAPSED_HEIGHT;\n }\n\n private setCSSVariable(variableName: string, value: string) {\n const container = this.getAnswerContainer();\n if (container) {\n (container as HTMLElement).style.setProperty(variableName, value);\n }\n }\n\n private updateAnswerHeight() {\n const container = this.getAnswerContainer() as HTMLElement;\n const footer = this.getAnswerFooter();\n const maxHeight = this.validateMaxCollapsedHeight();\n\n if (!container || !footer) {\n return;\n }\n\n if (this.fullAnswerHeight! > maxHeight) {\n this.setCSSVariable('--atomic-crga-collapsed-height', `${maxHeight}rem`);\n this.toggleClass(\n container,\n 'answer-collapsed',\n !this.generatedAnswerState.expanded\n );\n this.toggleClass(footer, 'is-collapsible', true);\n this.toggleClass(\n footer,\n 'generating-label-visible',\n this.generatedAnswerState.isStreaming\n );\n } else {\n this.toggleClass(container, 'answer-collapsed', false);\n this.toggleClass(footer, 'is-collapsible', false);\n this.toggleClass(footer, 'generating-label-visible', false);\n }\n }\n\n @Watch('tabManagerState')\n watchTabManagerState(\n newValue: {activeTab: string},\n oldValue: {activeTab: string}\n ) {\n if (newValue?.activeTab !== oldValue?.activeTab) {\n if (\n !shouldDisplayOnCurrentTab(\n [...this.tabsIncluded],\n [...this.tabsExcluded],\n this.tabManagerState?.activeTab\n )\n ) {\n this.generatedAnswer.disable();\n } else {\n this.generatedAnswer.enable();\n }\n }\n }\n\n public render() {\n if (\n !shouldDisplayOnCurrentTab(\n [...this.tabsIncluded],\n [...this.tabsExcluded],\n this.tabManagerState?.activeTab\n )\n ) {\n return <Hidden />;\n }\n return this.generatedAnswerCommon.render();\n }\n}\n"],"version":3}
1
+ {"file":"atomic-generated-answer.entry.js","mappings":"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","names":[],"sources":["src/components/search/atomic-generated-answer/atomic-generated-answer.pcss?tag=atomic-generated-answer&encapsulation=shadow","src/components/search/atomic-generated-answer/atomic-generated-answer.tsx"],"sourcesContent":["@import '../../common/generated-answer/styles/generated-answer.pcss';\n","import {\n SearchStatus,\n SearchStatusState,\n buildSearchStatus,\n buildGeneratedAnswer,\n GeneratedAnswer,\n GeneratedAnswerState,\n buildInteractiveCitation,\n buildTabManager,\n TabManagerState,\n TabManager,\n} from '@coveo/headless';\nimport {Component, Element, State, Prop, Watch, h} from '@stencil/core';\nimport {debounce} from '../../../utils/debounce-utils';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {ArrayProp} from '../../../utils/props-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {shouldDisplayOnCurrentTab} from '../../../utils/tab-utils';\nimport {GeneratedAnswerCommon} from '../../common/generated-answer/generated-answer-common';\nimport {Hidden} from '../../common/stencil-hidden';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-generated-answer` component uses Coveo Machine Learning (Coveo ML) models to automatically generate an answer to a query executed by the user.\n * For more information, see [About Relevance Generative Answering (RGA)](https://docs.coveo.com/en/n9de0370/)\n *\n * @slot no-answer-message - Lets you pass a custom sorry message when no answer is generated.\n *\n * @part container - The container displaying the generated answer.\n * @part header-label - The header of the generated answer container.\n * @part feedback-button - The \"like\" and \"dislike\" buttons.\n * @part toggle - The switch to toggle the visibility of the generated answer.\n * @part copy-button - The \"Copy answer\" button.\n * @part retry-container - The container for the \"retry\" section.\n * @part generated-text - The text of the generated answer.\n * @part citations-label - The header of the citations list.\n *\n * @part answer-code-block - The generated answer multi-line code blocks.\n * @part answer-emphasis - The generated answer emphasized text elements.\n * @part answer-inline-code - The generated answer inline code elements.\n * @part answer-heading-1 - The generated answer level 1 heading elements.\n * @part answer-heading-2 - The generated answer level 2 heading elements.\n * @part answer-heading-3 - The generated answer level 3 heading elements.\n * @part answer-heading-4 - The generated answer level 4 heading elements.\n * @part answer-heading-5 - The generated answer level 5 heading elements.\n * @part answer-heading-6 - The generated answer level 6 heading elements.\n * @part answer-list-item - The generated answer list item elements for both ordered and unordered lists.\n * @part answer-ordered-list - The generated answer ordered list elements.\n * @part answer-paragraph - The generated answer paragraph elements.\n * @part answer-quote-block - The generated answer quote block elements.\n * @part answer-unordered-list - The generated answer unordered list elements.\n * @part answer-strong - The generated answer strong text elements.\n * @part answer-table - The generated answer table elements.\n * @part answer-table-container - The generated answer table container elements.\n * @part answer-table-content - The generated answer table content cell elements.\n * @part answer-table-header - The generated answer table header cell elements.\n *\n * @part citation - The link that allows the user to navigate to the item.\n * @part citation-popover - The pop-up that shows an item preview when the user hovers over the citation.\n */\n@Component({\n tag: 'atomic-generated-answer',\n styleUrl: 'atomic-generated-answer.pcss',\n shadow: true,\n})\nexport class AtomicGeneratedAnswer implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n public generatedAnswer!: GeneratedAnswer;\n public searchStatus!: SearchStatus;\n private resizeObserver?: ResizeObserver;\n\n private readonly DEFAULT_COLLAPSED_HEIGHT = 16;\n private readonly MAX_COLLAPSED_HEIGHT = 32;\n private readonly MIN_COLLAPSED_HEIGHT = 9;\n private readonly DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS = 'filetype';\n\n @BindStateToController('generatedAnswer', {\n onUpdateCallbackMethod: 'onGeneratedAnswerStateUpdate',\n })\n @State()\n private generatedAnswerState!: GeneratedAnswerState;\n\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: SearchStatusState;\n\n public tabManager!: TabManager;\n\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n\n @State()\n public error!: Error;\n\n @Element() private host!: HTMLElement;\n\n @State()\n copied = false;\n\n @State()\n copyError = false;\n\n /**\n * Whether to render a toggle button that lets the user hide or show the answer.\n * @default false\n */\n @Prop() withToggle?: boolean;\n\n /**\n * Whether to allow the answer to be collapsed when the text is taller than the specified `--atomic-crga-collapsed-height` value (16rem by default).\n * @default false\n */\n @Prop() collapsible?: boolean;\n\n /**\n * The maximum height (in rem units) of the answer when collapsed.\n *\n */\n @Prop() maxCollapsedHeight = this.DEFAULT_COLLAPSED_HEIGHT;\n\n /**\n * The unique identifier of the answer configuration to use to generate the answer.\n */\n @Prop() answerConfigurationId?: string;\n\n /**\n * A list of fields to include with the citations used to generate the answer.\n */\n @Prop() fieldsToIncludeInCitations =\n this.DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS;\n\n /**\n * The tabs on which the generated answer can be displayed. This property should not be used at the same time as `tabs-excluded`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-generated-answer tabs-included='[\"tabIDA\", \"tabIDB\"]'></atomic-generated-answer>\n * ```\n * If you don't set this property, the generated answer can be displayed on any tab. Otherwise, the generated answer can only be displayed on the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsIncluded: string[] | string = '[]';\n\n /**\n * The tabs on which this generated answer must not be displayed. This property should not be used at the same time as `tabs-included`.\n *\n * Set this property as a stringified JSON array, e.g.,\n * ```html\n * <atomic-generated-answer tabs-excluded='[\"tabIDA\", \"tabIDB\"]'></atomic-generated-answer>\n * ```\n * If you don't set this property, the generated answer can be displayed on any tab. Otherwise, the generated answer won't be displayed on any of the specified tabs.\n */\n @ArrayProp()\n @Prop({reflect: true, mutable: true})\n public tabsExcluded: string[] | string = '[]';\n\n @AriaLiveRegion('generated-answer')\n protected ariaMessage!: string;\n\n private generatedAnswerCommon!: GeneratedAnswerCommon;\n private fullAnswerHeight?: number;\n\n public initialize() {\n if (\n [...this.tabsIncluded].length > 0 &&\n [...this.tabsExcluded].length > 0\n ) {\n console.warn(\n 'Values for both \"tabs-included\" and \"tabs-excluded\" have been provided. This could lead to unexpected behaviors.'\n );\n }\n this.generatedAnswerCommon = new GeneratedAnswerCommon({\n host: this.host,\n withToggle: this.withToggle,\n collapsible: this.collapsible,\n getGeneratedAnswer: () => this.generatedAnswer,\n getGeneratedAnswerState: () => this.generatedAnswerState,\n getSearchStatusState: () => this.searchStatusState,\n getBindings: () => this.bindings,\n getCopied: () => this.copied,\n setCopied: this.setCopied,\n getCopyError: () => this.copyError,\n setCopyError: this.setCopyError,\n setAriaMessage: this.setAriaMessage,\n buildInteractiveCitation: (props) =>\n buildInteractiveCitation(this.bindings.engine, props),\n });\n this.generatedAnswer = buildGeneratedAnswer(this.bindings.engine, {\n initialState: {\n isVisible: this.generatedAnswerCommon.data.isVisible,\n responseFormat: {\n contentFormat: ['text/markdown', 'text/plain'],\n },\n },\n ...(this.answerConfigurationId && {\n answerConfigurationId: this.answerConfigurationId,\n }),\n fieldsToIncludeInCitations: this.getCitationFields(),\n });\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n this.generatedAnswerCommon.insertFeedbackModal();\n\n if (window.ResizeObserver && this.collapsible) {\n const debouncedAdaptAnswerHeight = debounce(\n () => this.adaptAnswerHeight(),\n 100\n );\n this.resizeObserver = new ResizeObserver(debouncedAdaptAnswerHeight);\n this.resizeObserver.observe(this.host);\n }\n this.tabManager = buildTabManager(this.bindings.engine);\n }\n\n @Watch('generatedAnswerState')\n public updateAnswerCollapsed(\n newState: GeneratedAnswerState,\n oldState: GeneratedAnswerState\n ) {\n const newExpanded = newState.expanded;\n const oldExpanded = oldState ? oldState.expanded : undefined;\n\n if (newExpanded !== oldExpanded) {\n const container = this.getAnswerContainer();\n\n if (!container) {\n return;\n }\n\n this.toggleClass(container, 'answer-collapsed', !newExpanded);\n }\n }\n\n public disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n // @ts-expect-error: This function is used by BindStateToController.\n private onGeneratedAnswerStateUpdate = () => {\n if (\n this.generatedAnswerState.isVisible !==\n this.generatedAnswerCommon?.data?.isVisible\n ) {\n this.generatedAnswerCommon.data = {\n ...this.generatedAnswerCommon.data,\n isVisible: this.generatedAnswerState.isVisible,\n };\n this.generatedAnswerCommon.writeStoredData(\n this.generatedAnswerCommon.data\n );\n }\n\n this.setAriaMessage(this.generatedAnswerCommon.getGeneratedAnswerStatus());\n };\n\n private setCopied = (isCopied: boolean) => {\n this.copied = isCopied;\n };\n\n private setCopyError = (copyError: boolean) => {\n this.copyError = copyError;\n };\n\n private setAriaMessage = (message: string) => {\n this.ariaMessage = message;\n };\n\n private toggleClass(element: Element, className: string, condition: boolean) {\n element.classList.toggle(className, condition);\n }\n\n private adaptAnswerHeight() {\n const answerHeight = this.host?.shadowRoot\n ?.querySelector('[part=\"generated-text\"]')\n ?.getBoundingClientRect().height;\n\n if (answerHeight) {\n const rootFontSize = parseFloat(\n getComputedStyle(document.documentElement).fontSize\n );\n\n this.fullAnswerHeight = answerHeight / rootFontSize;\n\n this.updateAnswerHeight();\n }\n }\n\n private getAnswerContainer() {\n return this.host?.shadowRoot?.querySelector('[part=\"generated-container\"]');\n }\n\n private getAnswerFooter() {\n return this.host?.shadowRoot?.querySelector(\n '[part=\"generated-answer-footer\"]'\n );\n }\n\n private getCitationFields() {\n return this.fieldsToIncludeInCitations\n ?.split(',')\n .map((field) => field.trim())\n .filter((field) => field.length > 0);\n }\n\n private validateMaxCollapsedHeight(): number {\n const isValid =\n this.maxCollapsedHeight >= this.MIN_COLLAPSED_HEIGHT &&\n this.maxCollapsedHeight <= this.MAX_COLLAPSED_HEIGHT;\n\n if (!isValid) {\n console.warn(\n `max-collapsed-height (${this.maxCollapsedHeight}rem) is out of the valid range (${this.MIN_COLLAPSED_HEIGHT}rem - ${this.MAX_COLLAPSED_HEIGHT}rem). Falling back to default value (${this.DEFAULT_COLLAPSED_HEIGHT}rem).`\n );\n }\n\n return isValid ? this.maxCollapsedHeight : this.DEFAULT_COLLAPSED_HEIGHT;\n }\n\n private setCSSVariable(variableName: string, value: string) {\n const container = this.getAnswerContainer();\n if (container) {\n (container as HTMLElement).style.setProperty(variableName, value);\n }\n }\n\n private updateAnswerHeight() {\n const container = this.getAnswerContainer() as HTMLElement;\n const footer = this.getAnswerFooter();\n const maxHeight = this.validateMaxCollapsedHeight();\n\n if (!container || !footer) {\n return;\n }\n\n if (this.fullAnswerHeight! > maxHeight) {\n this.setCSSVariable('--atomic-crga-collapsed-height', `${maxHeight}rem`);\n this.toggleClass(\n container,\n 'answer-collapsed',\n !this.generatedAnswerState.expanded\n );\n this.toggleClass(footer, 'is-collapsible', true);\n this.toggleClass(\n footer,\n 'generating-label-visible',\n this.generatedAnswerState.isStreaming\n );\n } else {\n this.toggleClass(container, 'answer-collapsed', false);\n this.toggleClass(footer, 'is-collapsible', false);\n this.toggleClass(footer, 'generating-label-visible', false);\n }\n }\n\n @Watch('tabManagerState')\n watchTabManagerState(\n newValue: {activeTab: string},\n oldValue: {activeTab: string}\n ) {\n if (newValue?.activeTab !== oldValue?.activeTab) {\n if (\n !shouldDisplayOnCurrentTab(\n [...this.tabsIncluded],\n [...this.tabsExcluded],\n this.tabManagerState?.activeTab\n )\n ) {\n this.generatedAnswer.disable();\n } else {\n this.generatedAnswer.enable();\n }\n }\n }\n\n public render() {\n if (\n !shouldDisplayOnCurrentTab(\n [...this.tabsIncluded],\n [...this.tabsExcluded],\n this.tabManagerState?.activeTab\n )\n ) {\n return <Hidden />;\n }\n return this.generatedAnswerCommon.render();\n }\n}\n"],"version":3}
@@ -34,7 +34,7 @@ const AtomicHtml = class {
34
34
  }
35
35
  }
36
36
  render() {
37
- return (h("span", { key: '971de1113d4d61d9447f5b8e962ed07042b8a841', innerHTML: this.sanitize ? DOMPurify.sanitize(this.value) : this.value }));
37
+ return (h("span", { key: 'c5d09c0ade42d0776981749f170bc434e847ffee', innerHTML: this.sanitize ? DOMPurify.sanitize(this.value) : this.value }));
38
38
  }
39
39
  };
40
40
  __decorate([
@@ -26,7 +26,7 @@ const AtomicInsightEditToggle = class {
26
26
  this.tooltip = '';
27
27
  }
28
28
  render() {
29
- return (h(IconButton, { key: '48cf3ee6840d4e483640399e3ac76f6bda61dc57', partPrefix: "insight-edit-toggle", style: "outline-neutral", icon: EditIcon, ariaLabel: "Edit", onClick: this.clickCallback, title: this.tooltip }));
29
+ return (h(IconButton, { key: 'f2c3545f7dcdcf8d7ad44ab837362fb1f3c282d5', partPrefix: "insight-edit-toggle", style: "outline-neutral", icon: EditIcon, ariaLabel: "Edit", onClick: this.clickCallback, title: this.tooltip }));
30
30
  }
31
31
  };
32
32
  AtomicInsightEditToggle.style = AtomicInsightEditToggleStyle0;
@@ -159,7 +159,7 @@ const AtomicInsightFacet = class {
159
159
  this.facetConditionsManager?.stopWatching();
160
160
  }
161
161
  render() {
162
- return (h(FacetGuard, { key: 'a391321b08426557e2dec0797f15052db51c8745', enabled: this.facetState.enabled, hasError: this.searchStatusState.hasError, firstSearchExecuted: this.searchStatusState.firstSearchExecuted, hasResults: this.facetState.values.length > 0 }, this.searchStatusState.firstSearchExecuted ? (h(FacetContainer, null, h(FacetHeader, { i18n: this.bindings.i18n, label: this.label, onClearFilters: () => {
162
+ return (h(FacetGuard, { key: '73a620304f1dd508cbd577ae6f45314ea98bf3b1', enabled: this.facetState.enabled, hasError: this.searchStatusState.hasError, firstSearchExecuted: this.searchStatusState.firstSearchExecuted, hasResults: this.facetState.values.length > 0 }, this.searchStatusState.firstSearchExecuted ? (h(FacetContainer, null, h(FacetHeader, { i18n: this.bindings.i18n, label: this.label, onClearFilters: () => {
163
163
  this.focusTargets.header.focusAfterSearch();
164
164
  this.facet.deselectAll();
165
165
  }, numberOfActiveValues: this.activeValues.length, isCollapsed: this.isCollapsed, headingLevel: this.headingLevel, onToggleCollapse: () => (this.isCollapsed = !this.isCollapsed), headerRef: (el) => this.focusTargets.header.setTarget(el) }), this.renderBody())) : (h(FacetPlaceholder, { numberOfValues: this.numberOfValues, isCollapsed: this.isCollapsed }))));
@@ -136,7 +136,7 @@ const AtomicInsightFoldedResultList = class {
136
136
  render() {
137
137
  this.itemListCommon.updateBreakpoints();
138
138
  const listClasses = this.computeListDisplayClasses();
139
- return (h(ItemListGuard, { key: 'cdf53aa9eb52d21d4cccc9df7bc8d0b11a5e884f', firstRequestExecuted: this.foldedResultListState.firstSearchExecuted, hasItems: this.foldedResultListState.hasResults, hasTemplate: this.resultTemplateRegistered, templateHasError: this.itemTemplateProvider.hasError, hasError: this.foldedResultListState.hasError }, h(DisplayWrapper, { key: '1b7927379398b26bb3de5916991f7e0cc40c9983', listClasses: listClasses, display: this.display }, h(ResultsPlaceholdersGuard, { key: 'cfcf986d325780a086628e2ae4ad74dfcf7d952f', displayPlaceholders: !this.isAppLoaded, numberOfPlaceholders: this.resultsPerPageState.numberOfResults, display: this.display, density: this.density, imageSize: this.imageSize }), h(ItemDisplayGuard, { key: '1a4392d71d7f65ac479a27db4bf13153903c7895', firstRequestExecuted: this.foldedResultListState.firstSearchExecuted, hasItems: this.foldedResultListState.hasResults }, this.foldedResultListState.results.map((collection, i) => {
139
+ return (h(ItemListGuard, { key: '1c801f534dfdfbcfe5ea01426ad39c684d6c3666', firstRequestExecuted: this.foldedResultListState.firstSearchExecuted, hasItems: this.foldedResultListState.hasResults, hasTemplate: this.resultTemplateRegistered, templateHasError: this.itemTemplateProvider.hasError, hasError: this.foldedResultListState.hasError }, h(DisplayWrapper, { key: '5cacbfd7ee2d51f746956375e039b986a30ac568', listClasses: listClasses, display: this.display }, h(ResultsPlaceholdersGuard, { key: 'f8e65c083bbd2a56ca91688dc71a642c30bd2c69', displayPlaceholders: !this.isAppLoaded, numberOfPlaceholders: this.resultsPerPageState.numberOfResults, display: this.display, density: this.density, imageSize: this.imageSize }), h(ItemDisplayGuard, { key: '31395926a3277ba2d443ea1bbaf464efad76d929', firstRequestExecuted: this.foldedResultListState.firstSearchExecuted, hasItems: this.foldedResultListState.hasResults }, this.foldedResultListState.results.map((collection, i) => {
140
140
  const atomicInsightResultProps = this.getPropsForAtomicInsightResult(collection);
141
141
  return (h("atomic-insight-result", { ...atomicInsightResultProps, part: "outline", ref: (element) => element && this.itemListCommon.setNewResultRef(element, i) }));
142
142
  })))));
@@ -35,7 +35,7 @@ const AtomicInsightFullSearchButton = class {
35
35
  this.error = undefined;
36
36
  }
37
37
  render() {
38
- return (h(IconButton, { key: '547a61733af0672b6df254c31fbf6a0612ba37f1', partPrefix: "full-search", style: "outline-neutral", icon: ArrowFull, ariaLabel: this.bindings.i18n.t('full-search'), title: this.tooltip }));
38
+ return (h(IconButton, { key: '6461da4e9a845043168907921d4293d402fc98b2', partPrefix: "full-search", style: "outline-neutral", icon: ArrowFull, ariaLabel: this.bindings.i18n.t('full-search'), title: this.tooltip }));
39
39
  }
40
40
  };
41
41
  __decorate([
@@ -39,6 +39,7 @@ const AtomicInsightGeneratedAnswer = class {
39
39
  this.DEFAULT_COLLAPSED_HEIGHT = 16;
40
40
  this.MAX_COLLAPSED_HEIGHT = 32;
41
41
  this.MIN_COLLAPSED_HEIGHT = 9;
42
+ this.DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS = 'filetype';
42
43
  this.copied = false;
43
44
  this.copyError = false;
44
45
  /**
@@ -46,6 +47,10 @@ const AtomicInsightGeneratedAnswer = class {
46
47
  *
47
48
  */
48
49
  this.maxCollapsedHeight = this.DEFAULT_COLLAPSED_HEIGHT;
50
+ /**
51
+ * A list of fields to include with the citations used to generate the answer.
52
+ */
53
+ this.fieldsToIncludeInCitations = this.DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS;
49
54
  // @ts-expect-error: This function is used by BindStateToController.
50
55
  this.onGeneratedAnswerStateUpdate = () => {
51
56
  if (this.generatedAnswerState.isVisible !==
@@ -76,6 +81,7 @@ const AtomicInsightGeneratedAnswer = class {
76
81
  this.collapsible = undefined;
77
82
  this.maxCollapsedHeight = this.DEFAULT_COLLAPSED_HEIGHT;
78
83
  this.answerConfigurationId = undefined;
84
+ this.fieldsToIncludeInCitations = this.DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS;
79
85
  }
80
86
  initialize() {
81
87
  this.generatedAnswerCommon = new GeneratedAnswerCommon({
@@ -103,6 +109,7 @@ const AtomicInsightGeneratedAnswer = class {
103
109
  ...(this.answerConfigurationId && {
104
110
  answerConfigurationId: this.answerConfigurationId,
105
111
  }),
112
+ fieldsToIncludeInCitations: this.getCitationFields(),
106
113
  });
107
114
  this.searchStatus = buildSearchStatus(this.bindings.engine);
108
115
  this.generatedAnswerCommon.insertFeedbackModal();
@@ -145,6 +152,12 @@ const AtomicInsightGeneratedAnswer = class {
145
152
  getAnswerFooter() {
146
153
  return this.host?.shadowRoot?.querySelector('[part="generated-answer-footer"]');
147
154
  }
155
+ getCitationFields() {
156
+ return this.fieldsToIncludeInCitations
157
+ ?.split(',')
158
+ .map((field) => field.trim())
159
+ .filter((field) => field.length > 0);
160
+ }
148
161
  validateMaxCollapsedHeight() {
149
162
  const isValid = this.maxCollapsedHeight >= this.MIN_COLLAPSED_HEIGHT &&
150
163
  this.maxCollapsedHeight <= this.MAX_COLLAPSED_HEIGHT;
@@ -1 +1 @@
1
- {"file":"atomic-insight-generated-answer.entry.js","mappings":"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","names":["buildInsightInteractiveCitation","buildInsightGeneratedAnswer","buildInsightSearchStatus"],"sources":["src/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.pcss?tag=atomic-insight-generated-answer&encapsulation=shadow","src/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.tsx"],"sourcesContent":["@import '../../common/generated-answer/styles/generated-answer.pcss';\n","import {\n SearchStatus as InsightSearchStatus,\n SearchStatusState as InsightSearchStatusState,\n buildGeneratedAnswer as buildInsightGeneratedAnswer,\n buildInteractiveCitation as buildInsightInteractiveCitation,\n buildSearchStatus as buildInsightSearchStatus,\n GeneratedAnswer as InsightGeneratedAnswer,\n GeneratedAnswerState as InsightGeneratedAnswerState,\n} from '@coveo/headless/insight';\nimport {Component, Element, State, Prop, Watch} from '@stencil/core';\nimport {debounce} from '../../../utils/debounce-utils';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {GeneratedAnswerCommon} from '../../common/generated-answer/generated-answer-common';\nimport {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n * The `atomic-insight-generated-answer` component uses Coveo Machine Learning (Coveo ML) models to automatically generate an answer to a query executed by the user.\n * For more information, see [About Relevance Generative Answering (RGA)](https://docs.coveo.com/en/n9de0370/)\n *\n * @slot no-answer-message - Lets you pass a custom sorry message when no answer is generated.\n *\n * @part container - The container displaying the generated answer.\n * @part header-label - The header of the generated answer container.\n * @part feedback-button - The \"like\" and \"dislike\" buttons.\n * @part toggle - The switch to toggle the visibility of the generated answer.\n * @part copy-button - The \"Copy answer\" button.\n * @part retry-container - The container for the \"retry\" section.\n * @part generated-text - The text of the generated answer.\n * @part citations-label - The header of the citations list.\n *\n * @part answer-code-block - The generated answer multi-line code blocks.\n * @part answer-emphasis - The generated answer emphasized text elements.\n * @part answer-inline-code - The generated answer inline code elements.\n * @part answer-heading-1 - The generated answer level 1 heading elements.\n * @part answer-heading-2 - The generated answer level 2 heading elements.\n * @part answer-heading-3 - The generated answer level 3 heading elements.\n * @part answer-heading-4 - The generated answer level 4 heading elements.\n * @part answer-heading-5 - The generated answer level 5 heading elements.\n * @part answer-heading-6 - The generated answer level 6 heading elements.\n * @part answer-list-item - The generated answer list item elements for both ordered and unordered lists.\n * @part answer-ordered-list - The generated answer ordered list elements.\n * @part answer-paragraph - The generated answer paragraph elements.\n * @part answer-quote-block - The generated answer quote block elements.\n * @part answer-unordered-list - The generated answer unordered list elements.\n * @part answer-strong - The generated answer strong text elements.\n * @part answer-table - The generated answer table elements.\n * @part answer-table-container - The generated answer table container elements.\n * @part answer-table-content - The generated answer table content cell elements.\n * @part answer-table-header - The generated answer table header cell elements.\n *\n * @part citation - The link that allows the user to navigate to the item.\n * @part citation-popover - The pop-up that shows an item preview when the user hovers over the citation.\n */\n@Component({\n tag: 'atomic-insight-generated-answer',\n styleUrl: 'atomic-insight-generated-answer.pcss',\n shadow: true,\n})\nexport class AtomicInsightGeneratedAnswer\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n public generatedAnswer!: InsightGeneratedAnswer;\n public searchStatus!: InsightSearchStatus;\n private resizeObserver?: ResizeObserver;\n\n private readonly DEFAULT_COLLAPSED_HEIGHT = 16;\n private readonly MAX_COLLAPSED_HEIGHT = 32;\n private readonly MIN_COLLAPSED_HEIGHT = 9;\n\n @BindStateToController('generatedAnswer', {\n onUpdateCallbackMethod: 'onGeneratedAnswerStateUpdate',\n })\n @State()\n private generatedAnswerState!: InsightGeneratedAnswerState;\n\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: InsightSearchStatusState;\n\n @State()\n public error!: Error;\n\n @Element() private host!: HTMLElement;\n\n @State()\n copied = false;\n\n @State()\n copyError = false;\n\n /**\n * Whether to render a toggle button that lets the user hide or show the answer.\n * @default false\n */\n @Prop() withToggle?: boolean;\n\n /**\n * Whether to allow the answer to be collapsed when the text is taller than 250px.\n * @default false\n */\n @Prop() collapsible?: boolean;\n\n /**\n * The maximum height (in rem units) of the answer when collapsed.\n *\n */\n @Prop() maxCollapsedHeight = this.DEFAULT_COLLAPSED_HEIGHT;\n\n /**\n * @internal\n * The unique identifier of the answer configuration to use to generate the answer.\n */\n @Prop() answerConfigurationId?: string;\n\n @AriaLiveRegion('generated-answer')\n protected ariaMessage!: string;\n\n private generatedAnswerCommon!: GeneratedAnswerCommon;\n private fullAnswerHeight?: number;\n\n public initialize() {\n this.generatedAnswerCommon = new GeneratedAnswerCommon({\n host: this.host,\n withToggle: this.withToggle,\n collapsible: this.collapsible,\n getGeneratedAnswer: () => this.generatedAnswer,\n getGeneratedAnswerState: () => this.generatedAnswerState,\n getSearchStatusState: () => this.searchStatusState,\n getBindings: () => this.bindings,\n getCopied: () => this.copied,\n setCopied: this.setCopied,\n getCopyError: () => this.copyError,\n setCopyError: this.setCopyError,\n setAriaMessage: this.setAriaMessage,\n buildInteractiveCitation: (props) =>\n buildInsightInteractiveCitation(this.bindings.engine, props),\n });\n this.generatedAnswer = buildInsightGeneratedAnswer(this.bindings.engine, {\n initialState: {\n isVisible: this.generatedAnswerCommon.data.isVisible,\n responseFormat: {\n contentFormat: ['text/markdown', 'text/plain'],\n },\n },\n ...(this.answerConfigurationId && {\n answerConfigurationId: this.answerConfigurationId,\n }),\n });\n this.searchStatus = buildInsightSearchStatus(this.bindings.engine);\n this.generatedAnswerCommon.insertFeedbackModal();\n\n if (window.ResizeObserver && this.collapsible) {\n const debouncedAdaptAnswerHeight = debounce(\n () => this.adaptAnswerHeight(),\n 100\n );\n this.resizeObserver = new ResizeObserver(debouncedAdaptAnswerHeight);\n this.resizeObserver.observe(this.host);\n }\n }\n\n @Watch('generatedAnswerState')\n public updateAnswerCollapsed(\n newState: InsightGeneratedAnswerState,\n oldState: InsightGeneratedAnswerState\n ) {\n const newExpanded = newState.expanded;\n const oldExpanded = oldState ? oldState.expanded : undefined;\n\n if (newExpanded !== oldExpanded) {\n const container = this.getAnswerContainer();\n\n if (!container) {\n return;\n }\n\n this.toggleClass(container, 'answer-collapsed', !newExpanded);\n }\n }\n\n public disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n // @ts-expect-error: This function is used by BindStateToController.\n private onGeneratedAnswerStateUpdate = () => {\n if (\n this.generatedAnswerState.isVisible !==\n this.generatedAnswerCommon?.data?.isVisible\n ) {\n this.generatedAnswerCommon.data = {\n ...this.generatedAnswerCommon.data,\n isVisible: this.generatedAnswerState.isVisible,\n };\n this.generatedAnswerCommon.writeStoredData(\n this.generatedAnswerCommon.data\n );\n }\n\n this.setAriaMessage(this.generatedAnswerCommon.getGeneratedAnswerStatus());\n };\n\n private setCopied = (isCopied: boolean) => {\n this.copied = isCopied;\n };\n\n private setCopyError = (copyError: boolean) => {\n this.copyError = copyError;\n };\n\n private setAriaMessage = (message: string) => {\n this.ariaMessage = message;\n };\n\n private toggleClass(element: Element, className: string, condition: boolean) {\n element.classList.toggle(className, condition);\n }\n\n private adaptAnswerHeight() {\n const answerHeight = this.host?.shadowRoot\n ?.querySelector('[part=\"generated-text\"]')\n ?.getBoundingClientRect().height;\n\n if (answerHeight) {\n const rootFontSize = parseFloat(\n getComputedStyle(document.documentElement).fontSize\n );\n\n this.fullAnswerHeight = answerHeight / rootFontSize;\n\n this.updateAnswerHeight();\n }\n }\n\n private getAnswerContainer() {\n return this.host?.shadowRoot?.querySelector('[part=\"generated-container\"]');\n }\n\n private getAnswerFooter() {\n return this.host?.shadowRoot?.querySelector(\n '[part=\"generated-answer-footer\"]'\n );\n }\n\n private validateMaxCollapsedHeight(): number {\n const isValid =\n this.maxCollapsedHeight >= this.MIN_COLLAPSED_HEIGHT &&\n this.maxCollapsedHeight <= this.MAX_COLLAPSED_HEIGHT;\n\n if (!isValid) {\n console.warn(\n `max-collapsed-height (${this.maxCollapsedHeight}rem) is out of the valid range (${this.MIN_COLLAPSED_HEIGHT}rem - ${this.MAX_COLLAPSED_HEIGHT}rem). Falling back to default value (${this.DEFAULT_COLLAPSED_HEIGHT}rem).`\n );\n }\n\n return isValid ? this.maxCollapsedHeight : this.DEFAULT_COLLAPSED_HEIGHT;\n }\n\n private setCSSVariable(variableName: string, value: string) {\n const container = this.getAnswerContainer();\n if (container) {\n (container as HTMLElement).style.setProperty(variableName, value);\n }\n }\n\n private updateAnswerHeight() {\n const container = this.getAnswerContainer();\n const footer = this.getAnswerFooter();\n const maxHeight = this.validateMaxCollapsedHeight();\n\n if (!container || !footer) {\n return;\n }\n\n if (this.fullAnswerHeight! > maxHeight) {\n this.setCSSVariable('--atomic-crga-collapsed-height', `${maxHeight}rem`);\n this.toggleClass(\n container,\n 'answer-collapsed',\n !this.generatedAnswerState.expanded\n );\n this.toggleClass(footer, 'is-collapsible', true);\n this.toggleClass(\n footer,\n 'generating-label-visible',\n this.generatedAnswerState.isStreaming\n );\n } else {\n this.toggleClass(container, 'answer-collapsed', false);\n this.toggleClass(footer, 'is-collapsible', false);\n this.toggleClass(footer, 'generating-label-visible', false);\n }\n }\n\n public render() {\n return this.generatedAnswerCommon.render();\n }\n}\n"],"version":3}
1
+ {"file":"atomic-insight-generated-answer.entry.js","mappings":"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","names":["buildInsightInteractiveCitation","buildInsightGeneratedAnswer","buildInsightSearchStatus"],"sources":["src/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.pcss?tag=atomic-insight-generated-answer&encapsulation=shadow","src/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.tsx"],"sourcesContent":["@import '../../common/generated-answer/styles/generated-answer.pcss';\n","import {\n SearchStatus as InsightSearchStatus,\n SearchStatusState as InsightSearchStatusState,\n buildGeneratedAnswer as buildInsightGeneratedAnswer,\n buildInteractiveCitation as buildInsightInteractiveCitation,\n buildSearchStatus as buildInsightSearchStatus,\n GeneratedAnswer as InsightGeneratedAnswer,\n GeneratedAnswerState as InsightGeneratedAnswerState,\n} from '@coveo/headless/insight';\nimport {Component, Element, State, Prop, Watch} from '@stencil/core';\nimport {debounce} from '../../../utils/debounce-utils';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {AriaLiveRegion} from '../../../utils/stencil-accessibility-utils';\nimport {GeneratedAnswerCommon} from '../../common/generated-answer/generated-answer-common';\nimport {InsightBindings} from '../atomic-insight-interface/atomic-insight-interface';\n\n/**\n * @internal\n * The `atomic-insight-generated-answer` component uses Coveo Machine Learning (Coveo ML) models to automatically generate an answer to a query executed by the user.\n * For more information, see [About Relevance Generative Answering (RGA)](https://docs.coveo.com/en/n9de0370/)\n *\n * @slot no-answer-message - Lets you pass a custom sorry message when no answer is generated.\n *\n * @part container - The container displaying the generated answer.\n * @part header-label - The header of the generated answer container.\n * @part feedback-button - The \"like\" and \"dislike\" buttons.\n * @part toggle - The switch to toggle the visibility of the generated answer.\n * @part copy-button - The \"Copy answer\" button.\n * @part retry-container - The container for the \"retry\" section.\n * @part generated-text - The text of the generated answer.\n * @part citations-label - The header of the citations list.\n *\n * @part answer-code-block - The generated answer multi-line code blocks.\n * @part answer-emphasis - The generated answer emphasized text elements.\n * @part answer-inline-code - The generated answer inline code elements.\n * @part answer-heading-1 - The generated answer level 1 heading elements.\n * @part answer-heading-2 - The generated answer level 2 heading elements.\n * @part answer-heading-3 - The generated answer level 3 heading elements.\n * @part answer-heading-4 - The generated answer level 4 heading elements.\n * @part answer-heading-5 - The generated answer level 5 heading elements.\n * @part answer-heading-6 - The generated answer level 6 heading elements.\n * @part answer-list-item - The generated answer list item elements for both ordered and unordered lists.\n * @part answer-ordered-list - The generated answer ordered list elements.\n * @part answer-paragraph - The generated answer paragraph elements.\n * @part answer-quote-block - The generated answer quote block elements.\n * @part answer-unordered-list - The generated answer unordered list elements.\n * @part answer-strong - The generated answer strong text elements.\n * @part answer-table - The generated answer table elements.\n * @part answer-table-container - The generated answer table container elements.\n * @part answer-table-content - The generated answer table content cell elements.\n * @part answer-table-header - The generated answer table header cell elements.\n *\n * @part citation - The link that allows the user to navigate to the item.\n * @part citation-popover - The pop-up that shows an item preview when the user hovers over the citation.\n */\n@Component({\n tag: 'atomic-insight-generated-answer',\n styleUrl: 'atomic-insight-generated-answer.pcss',\n shadow: true,\n})\nexport class AtomicInsightGeneratedAnswer\n implements InitializableComponent<InsightBindings>\n{\n @InitializeBindings() public bindings!: InsightBindings;\n public generatedAnswer!: InsightGeneratedAnswer;\n public searchStatus!: InsightSearchStatus;\n private resizeObserver?: ResizeObserver;\n\n private readonly DEFAULT_COLLAPSED_HEIGHT = 16;\n private readonly MAX_COLLAPSED_HEIGHT = 32;\n private readonly MIN_COLLAPSED_HEIGHT = 9;\n private readonly DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS = 'filetype';\n\n @BindStateToController('generatedAnswer', {\n onUpdateCallbackMethod: 'onGeneratedAnswerStateUpdate',\n })\n @State()\n private generatedAnswerState!: InsightGeneratedAnswerState;\n\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: InsightSearchStatusState;\n\n @State()\n public error!: Error;\n\n @Element() private host!: HTMLElement;\n\n @State()\n copied = false;\n\n @State()\n copyError = false;\n\n /**\n * Whether to render a toggle button that lets the user hide or show the answer.\n * @default false\n */\n @Prop() withToggle?: boolean;\n\n /**\n * Whether to allow the answer to be collapsed when the text is taller than 250px.\n * @default false\n */\n @Prop() collapsible?: boolean;\n\n /**\n * The maximum height (in rem units) of the answer when collapsed.\n *\n */\n @Prop() maxCollapsedHeight = this.DEFAULT_COLLAPSED_HEIGHT;\n\n /**\n * @internal\n * The unique identifier of the answer configuration to use to generate the answer.\n */\n @Prop() answerConfigurationId?: string;\n\n /**\n * A list of fields to include with the citations used to generate the answer.\n */\n @Prop() fieldsToIncludeInCitations =\n this.DEFAULT_FIELDS_TO_INCLUDE_IN_CITATIONS;\n\n @AriaLiveRegion('generated-answer')\n protected ariaMessage!: string;\n\n private generatedAnswerCommon!: GeneratedAnswerCommon;\n private fullAnswerHeight?: number;\n\n public initialize() {\n this.generatedAnswerCommon = new GeneratedAnswerCommon({\n host: this.host,\n withToggle: this.withToggle,\n collapsible: this.collapsible,\n getGeneratedAnswer: () => this.generatedAnswer,\n getGeneratedAnswerState: () => this.generatedAnswerState,\n getSearchStatusState: () => this.searchStatusState,\n getBindings: () => this.bindings,\n getCopied: () => this.copied,\n setCopied: this.setCopied,\n getCopyError: () => this.copyError,\n setCopyError: this.setCopyError,\n setAriaMessage: this.setAriaMessage,\n buildInteractiveCitation: (props) =>\n buildInsightInteractiveCitation(this.bindings.engine, props),\n });\n this.generatedAnswer = buildInsightGeneratedAnswer(this.bindings.engine, {\n initialState: {\n isVisible: this.generatedAnswerCommon.data.isVisible,\n responseFormat: {\n contentFormat: ['text/markdown', 'text/plain'],\n },\n },\n ...(this.answerConfigurationId && {\n answerConfigurationId: this.answerConfigurationId,\n }),\n fieldsToIncludeInCitations: this.getCitationFields(),\n });\n this.searchStatus = buildInsightSearchStatus(this.bindings.engine);\n this.generatedAnswerCommon.insertFeedbackModal();\n\n if (window.ResizeObserver && this.collapsible) {\n const debouncedAdaptAnswerHeight = debounce(\n () => this.adaptAnswerHeight(),\n 100\n );\n this.resizeObserver = new ResizeObserver(debouncedAdaptAnswerHeight);\n this.resizeObserver.observe(this.host);\n }\n }\n\n @Watch('generatedAnswerState')\n public updateAnswerCollapsed(\n newState: InsightGeneratedAnswerState,\n oldState: InsightGeneratedAnswerState\n ) {\n const newExpanded = newState.expanded;\n const oldExpanded = oldState ? oldState.expanded : undefined;\n\n if (newExpanded !== oldExpanded) {\n const container = this.getAnswerContainer();\n\n if (!container) {\n return;\n }\n\n this.toggleClass(container, 'answer-collapsed', !newExpanded);\n }\n }\n\n public disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n // @ts-expect-error: This function is used by BindStateToController.\n private onGeneratedAnswerStateUpdate = () => {\n if (\n this.generatedAnswerState.isVisible !==\n this.generatedAnswerCommon?.data?.isVisible\n ) {\n this.generatedAnswerCommon.data = {\n ...this.generatedAnswerCommon.data,\n isVisible: this.generatedAnswerState.isVisible,\n };\n this.generatedAnswerCommon.writeStoredData(\n this.generatedAnswerCommon.data\n );\n }\n\n this.setAriaMessage(this.generatedAnswerCommon.getGeneratedAnswerStatus());\n };\n\n private setCopied = (isCopied: boolean) => {\n this.copied = isCopied;\n };\n\n private setCopyError = (copyError: boolean) => {\n this.copyError = copyError;\n };\n\n private setAriaMessage = (message: string) => {\n this.ariaMessage = message;\n };\n\n private toggleClass(element: Element, className: string, condition: boolean) {\n element.classList.toggle(className, condition);\n }\n\n private adaptAnswerHeight() {\n const answerHeight = this.host?.shadowRoot\n ?.querySelector('[part=\"generated-text\"]')\n ?.getBoundingClientRect().height;\n\n if (answerHeight) {\n const rootFontSize = parseFloat(\n getComputedStyle(document.documentElement).fontSize\n );\n\n this.fullAnswerHeight = answerHeight / rootFontSize;\n\n this.updateAnswerHeight();\n }\n }\n\n private getAnswerContainer() {\n return this.host?.shadowRoot?.querySelector('[part=\"generated-container\"]');\n }\n\n private getAnswerFooter() {\n return this.host?.shadowRoot?.querySelector(\n '[part=\"generated-answer-footer\"]'\n );\n }\n\n private getCitationFields() {\n return this.fieldsToIncludeInCitations\n ?.split(',')\n .map((field) => field.trim())\n .filter((field) => field.length > 0);\n }\n\n private validateMaxCollapsedHeight(): number {\n const isValid =\n this.maxCollapsedHeight >= this.MIN_COLLAPSED_HEIGHT &&\n this.maxCollapsedHeight <= this.MAX_COLLAPSED_HEIGHT;\n\n if (!isValid) {\n console.warn(\n `max-collapsed-height (${this.maxCollapsedHeight}rem) is out of the valid range (${this.MIN_COLLAPSED_HEIGHT}rem - ${this.MAX_COLLAPSED_HEIGHT}rem). Falling back to default value (${this.DEFAULT_COLLAPSED_HEIGHT}rem).`\n );\n }\n\n return isValid ? this.maxCollapsedHeight : this.DEFAULT_COLLAPSED_HEIGHT;\n }\n\n private setCSSVariable(variableName: string, value: string) {\n const container = this.getAnswerContainer();\n if (container) {\n (container as HTMLElement).style.setProperty(variableName, value);\n }\n }\n\n private updateAnswerHeight() {\n const container = this.getAnswerContainer();\n const footer = this.getAnswerFooter();\n const maxHeight = this.validateMaxCollapsedHeight();\n\n if (!container || !footer) {\n return;\n }\n\n if (this.fullAnswerHeight! > maxHeight) {\n this.setCSSVariable('--atomic-crga-collapsed-height', `${maxHeight}rem`);\n this.toggleClass(\n container,\n 'answer-collapsed',\n !this.generatedAnswerState.expanded\n );\n this.toggleClass(footer, 'is-collapsible', true);\n this.toggleClass(\n footer,\n 'generating-label-visible',\n this.generatedAnswerState.isStreaming\n );\n } else {\n this.toggleClass(container, 'answer-collapsed', false);\n this.toggleClass(footer, 'is-collapsible', false);\n this.toggleClass(footer, 'generating-label-visible', false);\n }\n }\n\n public render() {\n return this.generatedAnswerCommon.render();\n }\n}\n"],"version":3}
@@ -18,7 +18,7 @@ const AtomicInsightHistoryToggle = class {
18
18
  this.tooltip = '';
19
19
  }
20
20
  render() {
21
- return (h(IconButton, { key: '529e40f19a0631a51c1056e54ab79a1f6cdc5db4', partPrefix: "insight-history-toggle", style: "outline-neutral", icon: Clock, ariaLabel: "history", onClick: this.clickCallback, title: this.tooltip }));
21
+ return (h(IconButton, { key: '4a01395b936d059a3774c93df316e866cf87f8db', partPrefix: "insight-history-toggle", style: "outline-neutral", icon: Clock, ariaLabel: "history", onClick: this.clickCallback, title: this.tooltip }));
22
22
  }
23
23
  };
24
24
  AtomicInsightHistoryToggle.style = AtomicInsightHistoryToggleStyle0;
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, s as setNonce, h, H as Host, g as getElement } from './index-3f35faca.js';
2
2
  import { m as markParentAsReady } from './init-queue-fbe942c3.js';
3
3
  import { buildResultsPerPage, loadFieldActions, buildInsightEngine } from '@coveo/headless/insight';
4
- import { C as CommonAtomicInterfaceHelper, i as instance } from './interface-common-stencil-623d4314.js';
4
+ import { C as CommonAtomicInterfaceHelper, i as instance } from './interface-common-stencil-fc6f80e8.js';
5
5
  import { A as ArrayProp } from './props-utils-187abfd2.js';
6
- import { g as getNextAnalyticsConfig, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion } from './analytics-config-359b43de.js';
6
+ import { g as getNextAnalyticsConfig, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion } from './analytics-config-6b5c6ac0.js';
7
7
  import { D as DEFAULT_MOBILE_BREAKPOINT } from './replace-breakpoint-213367f8.js';
8
8
  import { u as unsetLoadingFlag, s as setLoadingFlag, r as registerFacet, g as getFacetElements, w as waitUntilAppLoaded, a as createBaseStore } from './store-9da184ac.js';
9
9
  import { m as makeDesktopQuery } from './insight-layout-776b87f2.js';
@@ -39,7 +39,7 @@ const AtomicInsightNoResults = class {
39
39
  }
40
40
  render() {
41
41
  const { bindings: { i18n }, } = this;
42
- return (h("div", { key: '47bac5b63f94a3c28d725c4d1c359b10101da6bf', class: "p-3 text-center" }, h(NoItemsGuard, { key: 'f3893da997e20a24ad3e03c1b9f4b3193fde1e82', ...this.searchStatusState }, h(NoItemsContainer, { key: 'fcff3bfa9d5720440205b024211d89a26749ea51' }, h(MagnifyingGlass, { key: 'f3f19f1c062a262093bc8312456f8e30de455238' }), h(NoItems, { key: '43bb5f7889fdccd86128cd5e0f39fca81e88920f', query: this.querySummaryState.query, i18n: i18n, i18nKey: "no-results" }), h(SearchTips, { key: '2d88f97e18a710860d9b2e2ed47a188e824f0b96', i18n: i18n })))));
42
+ return (h("div", { key: '48b7e90af2de0cdf8d12b146fd073fca23164592', class: "p-3 text-center" }, h(NoItemsGuard, { key: 'd62a18cff4b82d1e773e9c04a58eb8ae4042d30b', ...this.searchStatusState }, h(NoItemsContainer, { key: '66781b1c36108f42926bdedfd6fd987fa9d335a2' }, h(MagnifyingGlass, { key: 'cfc4ea0b1e28aebffd8a08e02f45474e86ae8db3' }), h(NoItems, { key: 'b399ca2a69aafb7f3035cbd969b3a4f23e63cee4', query: this.querySummaryState.query, i18n: i18n, i18nKey: "no-results" }), h(SearchTips, { key: '93202fad382448e3bf81e84ebf28f877068693ff', i18n: i18n })))));
43
43
  }
44
44
  };
45
45
  __decorate([
@@ -259,7 +259,7 @@ const AtomicInsightNumericFacet = class {
259
259
  }
260
260
  render() {
261
261
  const { searchStatusState: { firstSearchExecuted, hasError }, bindings: { i18n }, label, numberOfSelectedValues, isCollapsed, headingLevel, focusTarget, withInput, filter, } = this;
262
- return (h(FacetGuard, { key: 'bc020e0367f56b2615f8ebeb716087cb40f99e75', enabled: this.enabled, firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: this.shouldRenderFacet }, firstSearchExecuted ? (h(FacetContainer, null, h(FacetHeader, { i18n: i18n, label: label, onClearFilters: () => {
262
+ return (h(FacetGuard, { key: '5112604f0a1bccea5d6cb56ce6bc76cb578c430f', enabled: this.enabled, firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: this.shouldRenderFacet }, firstSearchExecuted ? (h(FacetContainer, null, h(FacetHeader, { i18n: i18n, label: label, onClearFilters: () => {
263
263
  focusTarget.focusAfterSearch();
264
264
  if (this.filterState?.range) {
265
265
  this.filter?.clear();
@@ -54,15 +54,15 @@ const AtomicInsightPager = class {
54
54
  this.scrollToTopEvent.emit();
55
55
  }
56
56
  render() {
57
- return (h(Host, { key: 'ca7a11833fd9ae41ab4dd44c2d93322d644427b6' }, h(PagerNavigation, { key: '5c9a9e88ac4fe120e9883a0e603ad84018eac56e', i18n: this.bindings.i18n }, h(PagerPreviousButton, { key: '8a020a93ca72b7463822cbae135a7c9d71579144', icon: ArrowLeftIcon, disabled: !this.pagerState.hasPreviousPage, i18n: this.bindings.i18n, onClick: () => {
57
+ return (h(Host, { key: 'aa07c2a9e3ed6dabc2259a2717903e0815fbecdd' }, h(PagerNavigation, { key: '87bb0c8770838c97578d40e454a9d188620bbb50', i18n: this.bindings.i18n }, h(PagerPreviousButton, { key: '6c0f15f186d33f8583e01e5e6c1278f8f845d219', icon: ArrowLeftIcon, disabled: !this.pagerState.hasPreviousPage, i18n: this.bindings.i18n, onClick: () => {
58
58
  this.pager.previousPage();
59
59
  this.focusOnFirstResultAndScrollToTop();
60
- } }), h(PagerPageButtons, { key: '8cbbffc52df12b9a2787df2cff12cd74ed388005', i18n: this.bindings.i18n }, this.pagerState.currentPages.map((pageNumber) => {
60
+ } }), h(PagerPageButtons, { key: '986c35760b3db17b87c958a9c8d39f5abf5fa02e', i18n: this.bindings.i18n }, this.pagerState.currentPages.map((pageNumber) => {
61
61
  return (h(PagerPageButton, { isSelected: this.pager.isCurrentPage(pageNumber), ariaLabel: this.bindings.i18n.t('page-number', { pageNumber }), onChecked: () => {
62
62
  this.pager.selectPage(pageNumber);
63
63
  this.focusOnFirstResultAndScrollToTop();
64
64
  }, page: pageNumber, groupName: this.radioGroupName, text: pageNumber.toLocaleString(this.bindings.i18n.language) }));
65
- })), h(PagerNextButton, { key: 'fd89368e0bd967b02a8f93bdd1e2d48221bca653', icon: ArrowRightIcon, disabled: !this.pagerState.hasNextPage, i18n: this.bindings.i18n, onClick: () => {
65
+ })), h(PagerNextButton, { key: 'e5ce9d32b1035a38cab831216b2258e1a295bffb', icon: ArrowRightIcon, disabled: !this.pagerState.hasNextPage, i18n: this.bindings.i18n, onClick: () => {
66
66
  this.pager.nextPage();
67
67
  this.focusOnFirstResultAndScrollToTop();
68
68
  } }))));