@coveo/atomic 3.60.1 → 3.60.3

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 (264) hide show
  1. package/custom-elements.json +1812 -1733
  2. package/dist/cjs/components/commerce/atomic-commerce-facet-number-input/atomic-commerce-facet-number-input.cjs +2 -6
  3. package/dist/cjs/components/commerce/atomic-commerce-facets/atomic-commerce-facets.cjs +1 -3
  4. package/dist/cjs/components/commerce/atomic-commerce-layout/atomic-commerce-layout.tw.css.cjs +3 -11
  5. package/dist/cjs/components/commerce/atomic-commerce-no-products/atomic-commerce-no-products.cjs +1 -2
  6. package/dist/cjs/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.cjs +3 -12
  7. package/dist/cjs/components/commerce/atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.cjs +10 -10
  8. package/dist/cjs/components/commerce/atomic-commerce-timeframe-facet/atomic-commerce-timeframe-facet.cjs +4 -4
  9. package/dist/cjs/components/commerce/atomic-product-children/atomic-product-children.cjs +1 -3
  10. package/dist/cjs/components/commerce/atomic-product-description/atomic-product-description.cjs +1 -3
  11. package/dist/cjs/components/commerce/atomic-product-link/atomic-product-link.cjs +1 -4
  12. package/dist/cjs/components/commerce/atomic-product-multi-value-text/atomic-product-multi-value-text.cjs +2 -7
  13. package/dist/cjs/components/commerce/atomic-product-rating/atomic-product-rating.cjs +1 -3
  14. package/dist/cjs/components/common/atomic-agent-stream-of-thought/atomic-agent-stream-of-thought.cjs +2 -6
  15. package/dist/cjs/components/common/atomic-aria-live/atomic-aria-live.cjs +35 -5
  16. package/dist/cjs/components/common/atomic-ask-follow-up-input/atomic-ask-follow-up-input.cjs +1 -6
  17. package/dist/cjs/components/common/atomic-citation/atomic-citation.cjs +4 -6
  18. package/dist/cjs/components/common/atomic-facet-date-input/atomic-facet-date-input.cjs +2 -10
  19. package/dist/cjs/components/common/atomic-facet-number-input/atomic-facet-number-input.cjs +2 -10
  20. package/dist/cjs/components/common/atomic-facet-placeholder/atomic-facet-placeholder.cjs +1 -5
  21. package/dist/cjs/components/common/atomic-generated-answer-feedback-modal/atomic-generated-answer-feedback-modal.cjs +23 -35
  22. package/dist/cjs/components/common/atomic-generated-answer-thread/atomic-generated-answer-thread.cjs +17 -17
  23. package/dist/cjs/components/common/atomic-generated-answer-thread-item/atomic-generated-answer-thread-item.cjs +49 -45
  24. package/dist/cjs/components/common/atomic-rating/rating.cjs +2 -5
  25. package/dist/cjs/components/common/atomic-result-placeholder/atomic-result-placeholder.cjs +2 -9
  26. package/dist/cjs/components/common/atomic-smart-snippet-collapse-wrapper/atomic-smart-snippet-collapse-wrapper.cjs +2 -11
  27. package/dist/cjs/components/common/atomic-smart-snippet-expandable-answer/atomic-smart-snippet-expandable-answer.cjs +1 -4
  28. package/dist/cjs/components/common/atomic-smart-snippet-expandable-answer/atomic-smart-snippet-expandable-answer.tw.css.cjs +2 -11
  29. package/dist/cjs/components/common/atomic-smart-snippet-source/atomic-smart-snippet-source.cjs +1 -4
  30. package/dist/cjs/components/common/atomic-tab-button/atomic-tab-button.cjs +1 -4
  31. package/dist/cjs/components/common/atomic-tab-popover/atomic-tab-popover.cjs +1 -3
  32. package/dist/cjs/components/common/breadbox/breadcrumb-content.cjs +1 -5
  33. package/dist/cjs/components/common/button.cjs +1 -2
  34. package/dist/cjs/components/common/carousel.cjs +1 -3
  35. package/dist/cjs/components/common/expandable-text/expandable-text.cjs +2 -9
  36. package/dist/cjs/components/common/facets/category-facet/all-categories-button.cjs +1 -5
  37. package/dist/cjs/components/common/facets/category-facet/parent-button.cjs +1 -5
  38. package/dist/cjs/components/common/facets/category-facet/search-value.cjs +1 -3
  39. package/dist/cjs/components/common/facets/facet-container/facet-container.cjs +2 -7
  40. package/dist/cjs/components/common/facets/facet-placeholder/facet-placeholder.cjs +1 -4
  41. package/dist/cjs/components/common/facets/facet-search/facet-search-input.cjs +1 -4
  42. package/dist/cjs/components/common/facets/facet-value-box/facet-value-box.tw.css.cjs +1 -4
  43. package/dist/cjs/components/common/generated-answer/generated-answer-controller.cjs +12 -2
  44. package/dist/cjs/components/common/generated-answer/generated-content/generated-markdown-content.cjs +1 -4
  45. package/dist/cjs/components/common/generated-answer/generated-content/generated-markdown-content.tw.css.cjs +4 -16
  46. package/dist/cjs/components/common/generated-answer/generated-content/markdown-utils.cjs +80 -3
  47. package/dist/cjs/components/common/generated-answer/render-conversation-debug-header.cjs +3 -8
  48. package/dist/cjs/components/common/generated-answer/render-generating-answer-label.cjs +1 -4
  49. package/dist/cjs/components/common/generated-answer/source-citations.cjs +2 -6
  50. package/dist/cjs/components/common/image-carousel/image-carousel.cjs +2 -8
  51. package/dist/cjs/components/common/item-list/display-wrapper.cjs +1 -3
  52. package/dist/cjs/components/common/item-list/table-layout.cjs +2 -8
  53. package/dist/cjs/components/common/items-per-page/choices.cjs +1 -6
  54. package/dist/cjs/components/common/items-per-page/label.cjs +8 -8
  55. package/dist/cjs/components/common/load-more/container.cjs +1 -3
  56. package/dist/cjs/components/common/load-more/summary.cjs +1 -3
  57. package/dist/cjs/components/common/no-items/container.cjs +3 -5
  58. package/dist/cjs/components/common/no-items/no-items.cjs +1 -6
  59. package/dist/cjs/components/common/query-error/link.cjs +1 -5
  60. package/dist/cjs/components/common/query-summary/container.cjs +1 -3
  61. package/dist/cjs/components/common/refine-modal/filters.cjs +1 -4
  62. package/dist/cjs/components/common/refine-modal/modal.cjs +1 -5
  63. package/dist/cjs/components/common/refine-modal/sort.cjs +2 -9
  64. package/dist/cjs/components/common/result-children/children-wrapper.cjs +3 -4
  65. package/dist/cjs/components/common/result-children/collection-guard.cjs +1 -3
  66. package/dist/cjs/components/common/search-box/search-box-wrapper.cjs +1 -5
  67. package/dist/cjs/components/common/search-box/submit-button.cjs +2 -9
  68. package/dist/cjs/components/common/search-box/text-area-clear-button.cjs +1 -5
  69. package/dist/cjs/components/common/smart-snippets/atomic-smart-snippet/snippet-footer.cjs +1 -4
  70. package/dist/cjs/components/common/smart-snippets/atomic-smart-snippet-feedback-modal/modal-body.cjs +1 -7
  71. package/dist/cjs/components/common/smart-snippets/atomic-smart-snippet-feedback-modal/modal-details.cjs +1 -4
  72. package/dist/cjs/components/common/smart-snippets/atomic-smart-snippet-suggestions/answer-and-source-wrapper.cjs +1 -5
  73. package/dist/cjs/components/common/smart-snippets/atomic-smart-snippet-suggestions/footer.cjs +1 -4
  74. package/dist/cjs/components/common/smart-snippets/smart-snippet-feedback-banner.cjs +1 -4
  75. package/dist/cjs/components/common/sort/label.cjs +1 -5
  76. package/dist/cjs/components/common/sort/option.cjs +1 -3
  77. package/dist/cjs/components/common/suggestions/query-suggestions.cjs +1 -4
  78. package/dist/cjs/components/common/suggestions/recent-queries.cjs +3 -11
  79. package/dist/cjs/components/insight/atomic-insight-facet/atomic-insight-facet.cjs +2 -7
  80. package/dist/cjs/components/insight/atomic-insight-folded-result-list/atomic-insight-folded-result-list.cjs +11 -11
  81. package/dist/cjs/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.cjs +9 -2
  82. package/dist/cjs/components/insight/atomic-insight-no-results/atomic-insight-no-results.cjs +1 -2
  83. package/dist/cjs/components/insight/atomic-insight-result/atomic-insight-result.cjs +1 -3
  84. package/dist/cjs/components/insight/atomic-insight-user-actions-modal/atomic-insight-user-actions-modal.cjs +2 -8
  85. package/dist/cjs/components/insight/atomic-insight-user-actions-session/atomic-insight-user-actions-session.cjs +2 -8
  86. package/dist/cjs/components/insight/atomic-insight-user-actions-session/user-action.cjs +2 -6
  87. package/dist/cjs/components/insight/atomic-insight-user-actions-timeline/atomic-insight-user-actions-timeline.cjs +1 -3
  88. package/dist/cjs/components/ipx/atomic-ipx-body/ipx-body.cjs +2 -7
  89. package/dist/cjs/components/ipx/atomic-ipx-button/atomic-ipx-button.cjs +3 -11
  90. package/dist/cjs/components/ipx/atomic-ipx-recs-list/atomic-ipx-recs-list.cjs +2 -8
  91. package/dist/cjs/components/ipx/atomic-ipx-result-link/atomic-ipx-result-link.cjs +1 -4
  92. package/dist/cjs/components/recommendations/atomic-recs-list/atomic-recs-list.cjs +1 -4
  93. package/dist/cjs/components/search/atomic-automatic-facet/atomic-automatic-facet.cjs +1 -2
  94. package/dist/cjs/components/search/atomic-automatic-facet-generator/atomic-automatic-facet-generator.cjs +8 -8
  95. package/dist/cjs/components/search/atomic-category-facet/atomic-category-facet.cjs +2 -4
  96. package/dist/cjs/components/search/atomic-color-facet/atomic-color-facet.cjs +2 -7
  97. package/dist/cjs/components/search/atomic-facet/atomic-facet.cjs +1 -3
  98. package/dist/cjs/components/search/atomic-folded-result-list/atomic-folded-result-list.cjs +12 -12
  99. package/dist/cjs/components/search/atomic-generated-answer/atomic-generated-answer.cjs +9 -2
  100. package/dist/cjs/components/search/atomic-no-results/atomic-no-results.cjs +2 -2
  101. package/dist/cjs/components/search/atomic-notifications/atomic-notifications.cjs +1 -3
  102. package/dist/cjs/components/search/atomic-popover/atomic-popover.cjs +1 -7
  103. package/dist/cjs/components/search/atomic-quickview-modal/atomic-quickview-modal.cjs +1 -4
  104. package/dist/cjs/components/search/atomic-rating-facet/atomic-rating-facet.cjs +1 -2
  105. package/dist/cjs/components/search/atomic-rating-range-facet/atomic-rating-range-facet.cjs +1 -1
  106. package/dist/cjs/components/search/atomic-relevance-inspector/atomic-relevance-inspector.cjs +1 -3
  107. package/dist/cjs/components/search/atomic-result/atomic-result.cjs +1 -3
  108. package/dist/cjs/components/search/atomic-result-badge/atomic-result-badge.cjs +2 -6
  109. package/dist/cjs/components/search/atomic-result-html/atomic-result-html.cjs +1 -6
  110. package/dist/cjs/components/search/atomic-result-link/atomic-result-link.cjs +1 -4
  111. package/dist/cjs/components/search/atomic-result-multi-value-text/atomic-result-multi-value-text.cjs +3 -7
  112. package/dist/cjs/components/search/atomic-result-table-placeholder/atomic-result-table-placeholder.cjs +8 -32
  113. package/dist/cjs/components/search/atomic-search-box-instant-results/atomic-search-box-instant-results.cjs +9 -9
  114. package/dist/cjs/components/search/atomic-search-layout/atomic-search-layout.tw.css.cjs +3 -11
  115. package/dist/cjs/components/search/atomic-segmented-facet/atomic-segmented-facet.cjs +1 -4
  116. package/dist/cjs/components/search/atomic-segmented-facet-scrollable/atomic-segmented-facet-scrollable.cjs +1 -4
  117. package/dist/cjs/components/search/facets/facet-segmented-value/facet-segmented-value.cjs +1 -5
  118. package/dist/cjs/components/search/result-template-components/atomic-quickview-sidebar/atomic-quickview-sidebar.cjs +2 -4
  119. package/dist/cjs/components/search/result-template-components/atomic-quickview-sidebar/highlight-keywords-checkbox.cjs +1 -3
  120. package/dist/cjs/components/search/result-template-components/atomic-quickview-sidebar/keywords.cjs +1 -4
  121. package/dist/cjs/directives/hierarchical-path.cjs +1 -3
  122. package/dist/cjs/global/environment.cjs +1 -1
  123. package/dist/cjs/utils/accessibility-utils.cjs +5 -2
  124. package/dist/cjs/utils/debounce-utils.cjs +15 -4
  125. package/dist/cjs/utils/tailwind.global.tw.css.cjs +1 -1
  126. package/dist/cjs/versions.cjs +1 -1
  127. package/dist/esm/components/commerce/atomic-commerce-facet-number-input/atomic-commerce-facet-number-input.js +2 -6
  128. package/dist/esm/components/commerce/atomic-commerce-facets/atomic-commerce-facets.js +1 -3
  129. package/dist/esm/components/commerce/atomic-commerce-layout/atomic-commerce-layout.tw.css.js +1 -5
  130. package/dist/esm/components/commerce/atomic-commerce-no-products/atomic-commerce-no-products.js +1 -2
  131. package/dist/esm/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.js +1 -4
  132. package/dist/esm/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +1 -1
  133. package/dist/esm/components/commerce/atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.js +10 -10
  134. package/dist/esm/components/commerce/atomic-commerce-timeframe-facet/atomic-commerce-timeframe-facet.js +4 -4
  135. package/dist/esm/components/commerce/atomic-product-children/atomic-product-children.js +1 -3
  136. package/dist/esm/components/commerce/atomic-product-description/atomic-product-description.js +1 -3
  137. package/dist/esm/components/commerce/atomic-product-link/atomic-product-link.js +1 -4
  138. package/dist/esm/components/commerce/atomic-product-multi-value-text/atomic-product-multi-value-text.js +2 -7
  139. package/dist/esm/components/commerce/atomic-product-rating/atomic-product-rating.js +1 -3
  140. package/dist/esm/components/common/atomic-agent-stream-of-thought/atomic-agent-stream-of-thought.js +2 -6
  141. package/dist/esm/components/common/atomic-aria-live/atomic-aria-live.js +35 -5
  142. package/dist/esm/components/common/atomic-ask-follow-up-input/atomic-ask-follow-up-input.js +1 -6
  143. package/dist/esm/components/common/atomic-citation/atomic-citation.js +4 -6
  144. package/dist/esm/components/common/atomic-facet-date-input/atomic-facet-date-input.js +2 -10
  145. package/dist/esm/components/common/atomic-facet-number-input/atomic-facet-number-input.js +2 -10
  146. package/dist/esm/components/common/atomic-facet-placeholder/atomic-facet-placeholder.js +1 -5
  147. package/dist/esm/components/common/atomic-generated-answer-feedback-modal/atomic-generated-answer-feedback-modal.js +23 -35
  148. package/dist/esm/components/common/atomic-generated-answer-thread/atomic-generated-answer-thread.js +17 -17
  149. package/dist/esm/components/common/atomic-generated-answer-thread-item/atomic-generated-answer-thread-item.js +50 -46
  150. package/dist/esm/components/common/atomic-rating/rating.js +2 -5
  151. package/dist/esm/components/common/atomic-result-placeholder/atomic-result-placeholder.js +2 -9
  152. package/dist/esm/components/common/atomic-smart-snippet-collapse-wrapper/atomic-smart-snippet-collapse-wrapper.js +1 -2
  153. package/dist/esm/components/common/atomic-smart-snippet-expandable-answer/atomic-smart-snippet-expandable-answer.js +1 -4
  154. package/dist/esm/components/common/atomic-smart-snippet-source/atomic-smart-snippet-source.js +1 -4
  155. package/dist/esm/components/common/atomic-tab-button/atomic-tab-button.js +1 -4
  156. package/dist/esm/components/common/atomic-tab-popover/atomic-tab-popover.js +1 -3
  157. package/dist/esm/components/common/breadbox/breadcrumb-content.js +1 -5
  158. package/dist/esm/components/common/button.js +1 -2
  159. package/dist/esm/components/common/carousel.js +1 -3
  160. package/dist/esm/components/common/expandable-text/expandable-text.js +2 -9
  161. package/dist/esm/components/common/facets/category-facet/all-categories-button.js +1 -5
  162. package/dist/esm/components/common/facets/category-facet/parent-button.js +1 -5
  163. package/dist/esm/components/common/facets/category-facet/search-value.js +1 -3
  164. package/dist/esm/components/common/facets/facet-container/facet-container.js +2 -7
  165. package/dist/esm/components/common/facets/facet-placeholder/facet-placeholder.js +1 -4
  166. package/dist/esm/components/common/facets/facet-search/facet-search-input.js +1 -4
  167. package/dist/esm/components/common/generated-answer/generated-answer-controller.js +12 -2
  168. package/dist/esm/components/common/generated-answer/generated-content/generated-markdown-content.js +1 -4
  169. package/dist/esm/components/common/generated-answer/generated-content/markdown-utils.js +79 -5
  170. package/dist/esm/components/common/generated-answer/render-conversation-debug-header.js +3 -8
  171. package/dist/esm/components/common/generated-answer/render-generating-answer-label.js +1 -4
  172. package/dist/esm/components/common/generated-answer/source-citations.js +2 -6
  173. package/dist/esm/components/common/image-carousel/image-carousel.js +2 -8
  174. package/dist/esm/components/common/item-list/display-wrapper.js +1 -3
  175. package/dist/esm/components/common/item-list/table-layout.js +2 -8
  176. package/dist/esm/components/common/items-per-page/choices.js +1 -6
  177. package/dist/esm/components/common/items-per-page/label.js +8 -8
  178. package/dist/esm/components/common/load-more/container.js +1 -3
  179. package/dist/esm/components/common/load-more/summary.js +1 -3
  180. package/dist/esm/components/common/no-items/container.js +3 -5
  181. package/dist/esm/components/common/no-items/no-items.js +1 -6
  182. package/dist/esm/components/common/query-error/link.js +1 -5
  183. package/dist/esm/components/common/query-summary/container.js +1 -3
  184. package/dist/esm/components/common/refine-modal/filters.js +1 -4
  185. package/dist/esm/components/common/refine-modal/modal.js +1 -5
  186. package/dist/esm/components/common/refine-modal/sort.js +2 -9
  187. package/dist/esm/components/common/result-children/children-wrapper.js +3 -4
  188. package/dist/esm/components/common/result-children/collection-guard.js +1 -3
  189. package/dist/esm/components/common/search-box/search-box-wrapper.js +1 -5
  190. package/dist/esm/components/common/search-box/submit-button.js +2 -9
  191. package/dist/esm/components/common/search-box/text-area-clear-button.js +1 -5
  192. package/dist/esm/components/common/smart-snippets/atomic-smart-snippet/snippet-footer.js +1 -4
  193. package/dist/esm/components/common/smart-snippets/atomic-smart-snippet-feedback-modal/modal-body.js +1 -7
  194. package/dist/esm/components/common/smart-snippets/atomic-smart-snippet-feedback-modal/modal-details.js +1 -4
  195. package/dist/esm/components/common/smart-snippets/atomic-smart-snippet-suggestions/answer-and-source-wrapper.js +1 -5
  196. package/dist/esm/components/common/smart-snippets/atomic-smart-snippet-suggestions/footer.js +1 -4
  197. package/dist/esm/components/common/smart-snippets/smart-snippet-feedback-banner.js +1 -4
  198. package/dist/esm/components/common/sort/label.js +1 -5
  199. package/dist/esm/components/common/sort/option.js +1 -3
  200. package/dist/esm/components/common/suggestions/query-suggestions.js +1 -4
  201. package/dist/esm/components/common/suggestions/recent-queries.js +3 -11
  202. package/dist/esm/components/insight/atomic-insight-facet/atomic-insight-facet.js +2 -7
  203. package/dist/esm/components/insight/atomic-insight-folded-result-list/atomic-insight-folded-result-list.js +11 -11
  204. package/dist/esm/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.js +9 -2
  205. package/dist/esm/components/insight/atomic-insight-no-results/atomic-insight-no-results.js +1 -2
  206. package/dist/esm/components/insight/atomic-insight-result/atomic-insight-result.js +1 -3
  207. package/dist/esm/components/insight/atomic-insight-result-children/atomic-insight-result-children.js +1 -1
  208. package/dist/esm/components/insight/atomic-insight-user-actions-modal/atomic-insight-user-actions-modal.js +2 -8
  209. package/dist/esm/components/insight/atomic-insight-user-actions-session/atomic-insight-user-actions-session.js +2 -8
  210. package/dist/esm/components/insight/atomic-insight-user-actions-session/user-action.js +2 -6
  211. package/dist/esm/components/ipx/atomic-ipx-body/ipx-body.js +2 -7
  212. package/dist/esm/components/ipx/atomic-ipx-button/atomic-ipx-button.js +3 -11
  213. package/dist/esm/components/ipx/atomic-ipx-recs-list/atomic-ipx-recs-list.js +1 -4
  214. package/dist/esm/components/ipx/atomic-ipx-result-link/atomic-ipx-result-link.js +1 -4
  215. package/dist/esm/components/search/atomic-automatic-facet/atomic-automatic-facet.js +1 -2
  216. package/dist/esm/components/search/atomic-automatic-facet-generator/atomic-automatic-facet-generator.js +8 -8
  217. package/dist/esm/components/search/atomic-category-facet/atomic-category-facet.js +2 -4
  218. package/dist/esm/components/search/atomic-color-facet/atomic-color-facet.js +1 -3
  219. package/dist/esm/components/search/atomic-facet/atomic-facet.js +1 -3
  220. package/dist/esm/components/search/atomic-folded-result-list/atomic-folded-result-list.js +12 -12
  221. package/dist/esm/components/search/atomic-generated-answer/atomic-generated-answer.js +9 -2
  222. package/dist/esm/components/search/atomic-no-results/atomic-no-results.js +2 -2
  223. package/dist/esm/components/search/atomic-notifications/atomic-notifications.js +1 -3
  224. package/dist/esm/components/search/atomic-popover/atomic-popover.js +1 -7
  225. package/dist/esm/components/search/atomic-quickview-modal/atomic-quickview-modal.js +1 -4
  226. package/dist/esm/components/search/atomic-rating-facet/atomic-rating-facet.js +1 -2
  227. package/dist/esm/components/search/atomic-rating-range-facet/atomic-rating-range-facet.js +1 -1
  228. package/dist/esm/components/search/atomic-relevance-inspector/atomic-relevance-inspector.js +1 -3
  229. package/dist/esm/components/search/atomic-result/atomic-result.js +1 -3
  230. package/dist/esm/components/search/atomic-result-badge/atomic-result-badge.js +2 -6
  231. package/dist/esm/components/search/atomic-result-html/atomic-result-html.js +1 -6
  232. package/dist/esm/components/search/atomic-result-link/atomic-result-link.js +1 -4
  233. package/dist/esm/components/search/atomic-result-multi-value-text/atomic-result-multi-value-text.js +3 -7
  234. package/dist/esm/components/search/atomic-result-table-placeholder/atomic-result-table-placeholder.js +8 -32
  235. package/dist/esm/components/search/atomic-search-box/atomic-search-box.js +1 -1
  236. package/dist/esm/components/search/atomic-search-box-instant-results/atomic-search-box-instant-results.js +9 -9
  237. package/dist/esm/components/search/atomic-search-layout/atomic-search-layout.tw.css.js +1 -5
  238. package/dist/esm/components/search/atomic-segmented-facet/atomic-segmented-facet.js +1 -4
  239. package/dist/esm/components/search/atomic-segmented-facet-scrollable/atomic-segmented-facet-scrollable.js +1 -4
  240. package/dist/esm/components/search/facets/facet-segmented-value/facet-segmented-value.js +1 -5
  241. package/dist/esm/components/search/result-template-components/atomic-quickview-sidebar/atomic-quickview-sidebar.js +2 -4
  242. package/dist/esm/components/search/result-template-components/atomic-quickview-sidebar/highlight-keywords-checkbox.js +1 -3
  243. package/dist/esm/components/search/result-template-components/atomic-quickview-sidebar/keywords.js +1 -4
  244. package/dist/esm/directives/hierarchical-path.js +1 -3
  245. package/dist/esm/global/environment.js +1 -1
  246. package/dist/esm/utils/accessibility-utils.js +5 -2
  247. package/dist/esm/utils/debounce-utils.js +15 -4
  248. package/dist/esm/utils/tailwind.global.tw.css.js +1 -1
  249. package/dist/esm/versions.js +1 -1
  250. package/dist/themes/accessible.css +3 -4
  251. package/dist/themes/coveo.css +3 -4
  252. package/dist/types/components/common/atomic-aria-live/atomic-aria-live.d.ts +5 -1
  253. package/dist/types/components/common/atomic-generated-answer-thread-item/atomic-generated-answer-thread-item.d.ts +3 -0
  254. package/dist/types/components/common/facets/facet-search/facet-search-input-guard.d.ts +1 -1
  255. package/dist/types/components/common/generated-answer/generated-answer-controller.d.ts +5 -0
  256. package/dist/types/components/common/generated-answer/generated-content/markdown-utils.d.ts +1 -0
  257. package/dist/types/components/common/query-error/description.d.ts +1 -1
  258. package/dist/types/components/common/query-error/title.d.ts +1 -1
  259. package/dist/types/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.d.ts +1 -0
  260. package/dist/types/components/search/atomic-generated-answer/atomic-generated-answer.d.ts +1 -0
  261. package/dist/types/components/search/atomic-result-link/atomic-result-link.d.ts +1 -1
  262. package/dist/types/utils/accessibility-utils.d.ts +2 -1
  263. package/dist/types/utils/functional-component-utils.d.ts +1 -1
  264. package/package.json +7 -7
@@ -135,9 +135,7 @@ class AtomicGeneratedAnswerFeedbackModal extends LitElement {
135
135
  ${this.bindings.i18n.t(label)}
136
136
  <span class=${multiClassMap({
137
137
  'text-error-red ml-0.5': true
138
- })}
139
- >*</span
140
- >
138
+ })}>*</span>
141
139
  </label>
142
140
  </div>
143
141
  <span
@@ -177,29 +175,29 @@ class AtomicGeneratedAnswerFeedbackModal extends LitElement {
177
175
  label: this.bindings.i18n.t(localeKey)
178
176
  }
179
177
  })(html`
180
- <div
181
- class=${multiClassMap({
178
+ <div
179
+ class=${multiClassMap({
182
180
  'answer-evaluation mt-3 flex items-center': true,
183
181
  [String(correspondingAnswer)]: true
184
182
  })}
185
- key=${String(correspondingAnswer)}
186
- >
187
- <div class=${multiClassMap({
183
+ key=${String(correspondingAnswer)}
184
+ >
185
+ <div class=${multiClassMap({
188
186
  'flex-1 pr-4': true
189
187
  })}>
190
- ${this.renderAnswerEvaluation(localeKey, correspondingAnswer)}
191
- </div>
192
- <div
193
- class=${multiClassMap({
188
+ ${this.renderAnswerEvaluation(localeKey, correspondingAnswer)}
189
+ </div>
190
+ <div
191
+ class=${multiClassMap({
194
192
  'options flex flex-shrink-0 text-base': true
195
193
  })}
196
- >
197
- ${this.renderFeedbackOption('yes', correspondingAnswer)}
198
- ${this.renderFeedbackOption('unknown', correspondingAnswer)}
199
- ${this.renderFeedbackOption('no', correspondingAnswer)}
200
- </div>
194
+ >
195
+ ${this.renderFeedbackOption('yes', correspondingAnswer)}
196
+ ${this.renderFeedbackOption('unknown', correspondingAnswer)}
197
+ ${this.renderFeedbackOption('no', correspondingAnswer)}
201
198
  </div>
202
- `))}
199
+ </div>
200
+ `))}
203
201
  </fieldset>
204
202
  `;
205
203
  }
@@ -262,18 +260,12 @@ class AtomicGeneratedAnswerFeedbackModal extends LitElement {
262
260
  }
263
261
  renderSuccessMessage() {
264
262
  return html`
265
- <div
266
- slot="body"
267
- class=${multiClassMap({
263
+ <div slot="body" class=${multiClassMap({
268
264
  'my-4 flex flex-col items-center gap-4': true
269
- })}
270
- >
271
- <atomic-icon
272
- icon=${success}
273
- class=${multiClassMap({
265
+ })}>
266
+ <atomic-icon icon=${success} class=${multiClassMap({
274
267
  'w-48': true
275
- })}
276
- ></atomic-icon>
268
+ })}></atomic-icon>
277
269
  <p
278
270
  class=${multiClassMap({
279
271
  'text-base': true
@@ -295,19 +287,15 @@ class AtomicGeneratedAnswerFeedbackModal extends LitElement {
295
287
  const buttonClasses = 'flex items-center justify-center text-sm leading-4 p-2 rounded-md';
296
288
  return html`
297
289
  <div slot="footer" part="modal-footer">
298
- <div
299
- class=${multiClassMap({
290
+ <div class=${multiClassMap({
300
291
  'flex items-center justify-between': true
301
- })}
302
- >
292
+ })}>
303
293
  <div class=${multiClassMap({
304
294
  'required-label text-base': true
305
295
  })}>
306
296
  <span class=${multiClassMap({
307
297
  'text-error-red mr-0.5': true
308
- })}
309
- >*</span
310
- >
298
+ })}>*</span>
311
299
  ${this.bindings.i18n.t('required-fields')}
312
300
  </div>
313
301
  <div class=${multiClassMap({
@@ -42,8 +42,7 @@ class AtomicGeneratedAnswerThread extends LitElement {
42
42
  const lastGeneratedAnswer = this.generatedAnswers[this.generatedAnswers.length - 1];
43
43
  return html`
44
44
  <ul>
45
- ${this.renderShowPreviousAnswersButton()}
46
- ${this.renderThread([
45
+ ${this.renderShowPreviousAnswersButton()} ${this.renderThread([
47
46
  lastGeneratedAnswer
48
47
  ])}
49
48
  </ul>
@@ -90,12 +89,13 @@ class AtomicGeneratedAnswerThread extends LitElement {
90
89
  const showPreviousButtonClasses = `
91
90
  text-on-background text-base min-w-0 inline-flex text-left mr-auto
92
91
  px-2 py-1.5 font-normal bg-transparent border-0 appearance-none
93
- transition-colors hover:bg-neutral-light rounded-md cursor-pointer
92
+ transition-colors hover:bg-neutral hover:text-primary rounded-md cursor-pointer
94
93
  focus-visible:outline-none focus-visible:ring-2
95
94
  focus-visible:ring-primary focus-visible:ring-offset-2
96
95
  `;
97
96
  const timelineDotClasses = `
98
- h-2 w-2 rounded-full bg-neutral-dim
97
+ h-2 w-2 rounded-full bg-neutral-dim transition-colors
98
+ hover:bg-neutral-dark group-has-[button:hover]/title:bg-neutral-dark
99
99
  `;
100
100
  const timelineConnectorClasses = `
101
101
  relative h-full w-px bg-neutral
@@ -105,23 +105,23 @@ class AtomicGeneratedAnswerThread extends LitElement {
105
105
  after:h-[8px] after:w-px after:bg-neutral after:content-['']
106
106
  `;
107
107
  return html`
108
- <li class="grid min-w-0">
109
- <div class="flex min-w-0 items-center gap-3">
110
- <div class="flex w-[10px] shrink-0 items-center justify-center">
108
+ <li class="group/title grid min-w-0 grid-cols-[10px_1fr] gap-x-3">
109
+ <div class="row-span-2 flex flex-col items-center">
110
+ <div class="flex justify-center items-center text-base h-[1lh] my-1.5">
111
111
  <span class=${timelineDotClasses}></span>
112
112
  </div>
113
- <div class="flex min-w-0 flex-col">
114
- <button
115
- type="button"
116
- class=${showPreviousButtonClasses}
117
- @click=${this.handleShowAllClick}
118
- >
119
- ${label}
120
- </button>
113
+ <div class="flex grow w-full justify-center items-center py-2 -my-2 min-h-3">
114
+ <span class=${timelineConnectorClasses}> </span>
121
115
  </div>
122
116
  </div>
123
- <div class="flex h-3 w-[10px] shrink-0 justify-center">
124
- <span class=${timelineConnectorClasses}> </span>
117
+ <div class="flex min-w-0 flex-col">
118
+ <button
119
+ type="button"
120
+ class=${showPreviousButtonClasses}
121
+ @click=${this.handleShowAllClick}
122
+ >
123
+ ${label}
124
+ </button>
125
125
  </div>
126
126
  </li>
127
127
  `;
@@ -1,5 +1,5 @@
1
1
  import { LitElement, html } from "lit";
2
- import { customElement, property } from "lit/decorators.js";
2
+ import { customElement, property, state } from "lit/decorators.js";
3
3
  import { classMap } from "lit/directives/class-map.js";
4
4
  import { when } from "lit/directives/when.js";
5
5
  import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
@@ -37,11 +37,14 @@ class AtomicGeneratedAnswerThreadItem extends LitElement {
37
37
  const titleButtonClasses = classMap({
38
38
  ...titleBaseClasses,
39
39
  ...titleWeightClasses,
40
- 'bg-transparent': true,
40
+ 'bg-transparent': !this.isDotHovered,
41
+ 'bg-neutral': this.isDotHovered,
42
+ 'text-primary': this.isDotHovered,
41
43
  'border-0': true,
42
44
  'appearance-none': true,
43
45
  'transition-colors': true,
44
- 'hover:bg-neutral-light': true,
46
+ 'hover:bg-neutral': true,
47
+ 'hover:text-primary': true,
45
48
  'rounded-md': true,
46
49
  'cursor-pointer': true,
47
50
  'focus-visible:outline-none': true,
@@ -61,87 +64,85 @@ class AtomicGeneratedAnswerThreadItem extends LitElement {
61
64
  'bg-neutral-dark': this.isExpanded,
62
65
  'bg-neutral-dim': !this.isExpanded,
63
66
  'cursor-pointer': isTimelineDotInteractive,
64
- 'group-hover:bg-neutral-dark': !this.isExpanded && isTimelineDotInteractive
67
+ 'hover:bg-neutral-dark': !this.isExpanded && isTimelineDotInteractive,
68
+ 'group-has-[button:hover]/title:bg-neutral-dark': !this.isExpanded && isTimelineDotInteractive
65
69
  });
66
70
  const timelineDotToggleClasses = classMap({
67
71
  flex: true,
68
- 'w-[10px]': true,
69
- 'shrink-0': true,
70
72
  'justify-center': true,
71
- 'items-center': true
73
+ 'items-center': true,
74
+ 'text-base': true,
75
+ 'h-[1lh] my-1.5': true
72
76
  });
73
77
  const timelineLineToggleClasses = classMap({
74
78
  flex: true,
75
- 'w-[10px]': true,
76
- 'shrink-0': true,
79
+ grow: true,
80
+ 'w-full': true,
77
81
  'justify-center': true,
78
82
  'items-center': true,
79
83
  group: isTimelineLineInteractive,
80
84
  'cursor-pointer': isTimelineLineInteractive,
81
85
  'py-2': true,
82
- '-my-2': true
83
- });
84
- const timelineBodyRowClasses = classMap({
85
- flex: true,
86
- 'min-w-0': true,
87
- 'gap-3': true,
86
+ '-my-2': true,
88
87
  'min-h-3': !this.isExpanded
89
88
  });
90
89
  const timelineConnectorClasses = "relative h-full w-px bg-neutral transition-colors duration-150 group-hover:bg-neutral-dark before:absolute before:left-0 before:top-[-8px] before:h-[8px] before:w-px before:bg-neutral before:transition-colors before:duration-150 group-hover:before:bg-neutral-dark before:content-[''] after:absolute after:bottom-[-8px] after:left-0 after:h-[8px] after:w-px after:bg-neutral after:transition-colors after:duration-150 group-hover:after:bg-neutral-dark after:content-['']";
91
90
  return html`
92
- <div class="grid min-w-0">
93
- <div class="flex min-w-0 items-center gap-3">
91
+ <div class="group/title grid min-w-0 grid-cols-[10px_1fr] gap-x-3">
92
+ <div class="row-span-2 flex flex-col items-center">
94
93
  <div class=${timelineDotToggleClasses}>
95
94
  ${when(this.showTimelineDot, ()=>html`
96
95
  <span
97
96
  class=${timelineDotClasses}
98
97
  @click=${isTimelineDotInteractive ? this.toggle : null}
98
+ @mouseenter=${isTimelineDotInteractive ? this.handleDotMouseEnter : null}
99
+ @mouseleave=${isTimelineDotInteractive ? this.handleDotMouseLeave : null}
99
100
  ></span>
100
101
  `)}
101
102
  </div>
102
- <div class="flex min-w-0 flex-col">
103
- ${when(!this.disableCollapse, ()=>html`<button
104
- type="button"
105
- aria-expanded=${this.isExpanded}
106
- aria-controls=${this.contentId}
107
- class=${titleButtonClasses}
108
- @click=${this.toggle}
109
- >
110
- <span part="thread-item-title" style=${clampedTitleStyles}
111
- >${this.title}</span
112
- >
113
- </button>`, ()=>html`<span
114
- class=${titleTextClasses}
115
- part="thread-item-title"
116
- style=${clampedTitleStyles}
117
- >${this.title}</span
118
- >`)}
119
- </div>
120
- </div>
121
- <div class=${timelineBodyRowClasses}>
122
103
  <div
123
104
  class=${timelineLineToggleClasses}
124
105
  @click=${isTimelineLineInteractive ? this.toggle : null}
125
106
  >
126
107
  ${when(this.hideLine, ()=>html``, ()=>html`<span class=${timelineConnectorClasses}> </span>`)}
127
108
  </div>
128
- <div id=${this.contentId} class="min-w-0 pl-2 py-1.5">
129
- <div
130
- class="mb-2"
131
- ?hidden=${!this.isExpanded}
132
- aria-hidden=${this.isExpanded ? 'false' : 'true'}
133
- >
134
- <slot></slot>
135
- </div>
109
+ </div>
110
+ <div class="flex min-w-0 flex-col">
111
+ ${when(!this.disableCollapse, ()=>html`<button
112
+ type="button"
113
+ aria-expanded=${this.isExpanded}
114
+ aria-controls=${this.contentId}
115
+ class=${titleButtonClasses}
116
+ @click=${this.toggle}
117
+ >
118
+ <span part="thread-item-title" style=${clampedTitleStyles}>${this.title}</span>
119
+ </button>`, ()=>html`<span
120
+ class=${titleTextClasses}
121
+ part="thread-item-title"
122
+ style=${clampedTitleStyles}
123
+ >${this.title}</span
124
+ >`)}
125
+ </div>
126
+ <div id=${this.contentId} class="min-w-0 pl-2 py-1.5">
127
+ <div
128
+ class="mb-2"
129
+ ?hidden=${!this.isExpanded}
130
+ aria-hidden=${this.isExpanded ? 'false' : 'true'}
131
+ >
132
+ <slot></slot>
136
133
  </div>
137
134
  </div>
138
135
  </div>
139
136
  `;
140
137
  }
141
138
  constructor(...args){
142
- super(...args), this.contentId = `atomic-generated-answer-thread-item-content-${crypto.randomUUID()}`, this.title = '', this.disableCollapse = false, this.hideLine = false, this.isExpanded = false, this.showTimelineDot = true, this.toggle = ()=>{
139
+ super(...args), this.contentId = `atomic-generated-answer-thread-item-content-${crypto.randomUUID()}`, this.title = '', this.disableCollapse = false, this.hideLine = false, this.isExpanded = false, this.showTimelineDot = true, this.isDotHovered = false, this.toggle = ()=>{
143
140
  if (this.disableCollapse) return;
144
141
  this.isExpanded = !this.isExpanded;
142
+ }, this.handleDotMouseEnter = ()=>{
143
+ this.isDotHovered = true;
144
+ }, this.handleDotMouseLeave = ()=>{
145
+ this.isDotHovered = false;
145
146
  };
146
147
  }
147
148
  }
@@ -174,6 +175,9 @@ _ts_decorate([
174
175
  attribute: 'show-timeline-dot'
175
176
  })
176
177
  ], AtomicGeneratedAnswerThreadItem.prototype, "showTimelineDot", void 0);
178
+ _ts_decorate([
179
+ state()
180
+ ], AtomicGeneratedAnswerThreadItem.prototype, "isDotHovered", void 0);
177
181
  AtomicGeneratedAnswerThreadItem = _ts_decorate([
178
182
  customElement('atomic-generated-answer-thread-item'),
179
183
  withTailwindStyles
@@ -42,12 +42,9 @@ const renderRating = ({ props })=>{
42
42
  })}
43
43
  >
44
44
  <div class="z-0 flex gap-0.5">${emptyIconDisplay()}</div>
45
- <div
46
- class="absolute top-0 left-0 z-1 flex gap-0.5 overflow-hidden"
47
- style=${styleMap({
45
+ <div class="absolute top-0 left-0 z-1 flex gap-0.5 overflow-hidden" style=${styleMap({
48
46
  width
49
- })}
50
- >
47
+ })}>
51
48
  ${filledIconDisplay()}
52
49
  </div>
53
50
  </div>`;
@@ -22,10 +22,7 @@ class AtomicResultPlaceholder extends LitElement {
22
22
  renderExcerptLine(width) {
23
23
  return html`
24
24
  <div style="height: var(--line-height); width: ${width};">
25
- <div
26
- class=${placeholderClasses}
27
- style="height: var(--font-size);"
28
- ></div>
25
+ <div class=${placeholderClasses} style="height: var(--font-size);"></div>
29
26
  </div>
30
27
  `;
31
28
  }
@@ -59,11 +56,7 @@ class AtomicResultPlaceholder extends LitElement {
59
56
  <div class="fields-placeholder">
60
57
  ${Array.from({
61
58
  length: 4
62
- }, ()=>html`
63
- <div
64
- class="field-value-placeholder ${placeholderClasses}"
65
- ></div>
66
- `)}
59
+ }, ()=>html` <div class="field-value-placeholder ${placeholderClasses}"></div> `)}
67
60
  </div>
68
61
  </atomic-result-section-bottom-metadata>
69
62
  </div>
@@ -83,8 +83,7 @@ class AtomicSmartSnippetCollapseWrapper extends InitializeBindingsMixin(LitEleme
83
83
  }
84
84
  }
85
85
  AtomicSmartSnippetCollapseWrapper.styles = css`:host{display:block}:host(.invisible){visibility:hidden}.smart-snippet-content{height:auto;max-height:var(--collapsed-size);transition:max-height 2s cubic-bezier(0,1,.16,1) -1.82s;--gradient-start:var(
86
- --atomic-smart-snippet-gradient-start,calc(max(var(--collapsed-size) - (var(--line-height) * 1.5),
87
- var(--collapsed-size) * 0.5))
86
+ --atomic-smart-snippet-gradient-start,calc(max(var(--collapsed-size) - (var(--line-height) * 1.5), var(--collapsed-size) * 0.5))
88
87
  );mask-image:linear-gradient(#000,#000 var(--gradient-start),transparent 100%)}:host(.expanded) .smart-snippet-content{height:auto;mask-image:none;max-height:9999999px;transition:max-height 2s cubic-bezier(1,0,1,0) 0s}:host(.expanded) button atomic-icon{transform:scaleY(-1)}`;
89
88
  _ts_decorate([
90
89
  state(),
@@ -99,10 +99,7 @@ class AtomicSmartSnippetExpandableAnswer extends LitElement {
99
99
  aria-expanded=${this.isExpanded ? 'true' : 'false'}
100
100
  >
101
101
  ${this.bindings.i18n.t(this.isExpanded ? 'show-less' : 'show-more')}
102
- <atomic-icon
103
- .icon=${arrow_down}
104
- class="ml-2 w-3 align-baseline"
105
- ></atomic-icon>
102
+ <atomic-icon .icon=${arrow_down} class="ml-2 w-3 align-baseline"></atomic-icon>
106
103
  </button>
107
104
  `);
108
105
  }
@@ -67,10 +67,7 @@ class AtomicSmartSnippetSource extends LightDomMixin(LitElement) {
67
67
  onBeginDelayedSelect: ()=>this.handleSourceEvent('begin-delayed-select-source'),
68
68
  onCancelPendingSelect: ()=>this.handleSourceEvent('cancel-pending-select-source')
69
69
  }
70
- })(html`<atomic-result-text
71
- field="title"
72
- default="no-title"
73
- ></atomic-result-text>`)}
70
+ })(html`<atomic-result-text field="title" default="no-title"></atomic-result-text>`)}
74
71
  `)}`;
75
72
  }
76
73
  constructor(...args){
@@ -63,10 +63,7 @@ class AtomicTabButton extends LightDomMixin(LitElement) {
63
63
  'sm:px-6'
64
64
  ].filter(Boolean).join(' ');
65
65
  return html`
66
- <span
67
- class=${buttonClasses}
68
- part=${this.active ? 'tab-button-active' : 'tab-button'}
69
- >
66
+ <span class=${buttonClasses} part=${this.active ? 'tab-button-active' : 'tab-button'}>
70
67
  ${this.label}
71
68
  </span>
72
69
  `;
@@ -158,9 +158,7 @@ class AtomicTabPopover extends LitElement {
158
158
  render() {
159
159
  this.classList.toggle('visibility-hidden', !this.show);
160
160
  this.ariaHidden = String(!this.show);
161
- return html`
162
- ${this.renderPopover()} ${when(this.isOpen, ()=>this.renderBackdrop())}
163
- `;
161
+ return html` ${this.renderPopover()} ${when(this.isOpen, ()=>this.renderBackdrop())} `;
164
162
  }
165
163
  constructor(...args){
166
164
  super(...args), this.show = false, this.isOpen = false, this.buttonRef = createRef(), this.popupRef = createRef(), this.popoverId = 'atomic-tab-popover', this.handleKeyDown = (e)=>{
@@ -34,11 +34,7 @@ const renderBreadcrumbContent = ({ props })=>{
34
34
  <span part="breadcrumb-value" class=${multiClassMap(valueClass)}>
35
35
  ${props.breadcrumb.content ?? value}
36
36
  </span>
37
- <atomic-icon
38
- part="breadcrumb-clear"
39
- class="mt-px ml-2 h-2.5 w-2.5"
40
- icon=${images_close}
41
- >
37
+ <atomic-icon part="breadcrumb-clear" class="mt-px ml-2 h-2.5 w-2.5" icon=${images_close}>
42
38
  </atomic-icon>`;
43
39
  };
44
40
  export { renderBreadcrumbContent };
@@ -29,8 +29,7 @@ const renderButton = ({ props })=>(children)=>{
29
29
  ?disabled=${props.disabled}
30
30
  ${props.ref ? ref(props.ref) : nothing}
31
31
  >
32
- ${when(props.text, ()=>html`<span class="truncate">${props.text}</span>`)}
33
- ${children}
32
+ ${when(props.text, ()=>html`<span class="truncate">${props.text}</span>`)} ${children}
34
33
  </button>`;
35
34
  };
36
35
  export { renderButton };
@@ -73,9 +73,7 @@ const renderCarousel = ({ props })=>(children)=>{
73
73
  ${renderPreviousButton(numberOfPages, previousPage, props.bindings)}
74
74
  ${renderNextButton(numberOfPages, nextPage, props.bindings)}
75
75
  </div>
76
- <div class="carousel-items" aria-live="polite" aria-atomic="false">
77
- ${children}
78
- </div>
76
+ <div class="carousel-items" aria-live="polite" aria-atomic="false">${children}</div>
79
77
  </div>
80
78
  ${renderIndicators(numberOfPages, currentPage)}
81
79
  </div>
@@ -30,11 +30,7 @@ const renderExpandableText = ({ props: { isExpanded, isTruncated, isCollapsible,
30
30
  const buttonLabel = isExpanded ? showLessLabel : showMoreLabel;
31
31
  const icon = isExpanded ? minus : plus;
32
32
  return html`<div class="flex flex-col items-start">
33
- <div
34
- part="expandable-text"
35
- class="${multiClassMap(expandableTextClasses)}"
36
- ${ref(textRef)}
37
- >
33
+ <div part="expandable-text" class="${multiClassMap(expandableTextClasses)}" ${ref(textRef)}>
38
34
  ${children}
39
35
  </div>
40
36
 
@@ -48,10 +44,7 @@ const renderExpandableText = ({ props: { isExpanded, isTruncated, isCollapsible,
48
44
  },
49
45
  onClick: onToggleExpand
50
46
  }
51
- })(html` <atomic-icon
52
- icon="${icon}"
53
- class="mx-1 w-2 align-baseline"
54
- ></atomic-icon>
47
+ })(html` <atomic-icon icon="${icon}" class="mx-1 w-2 align-baseline"></atomic-icon>
55
48
  ${buttonLabel}`)}
56
49
  </div>`;
57
50
  };
@@ -16,11 +16,7 @@ const renderCategoryFacetAllCategoryButton = ({ props: { i18n, onClick, facetId,
16
16
  part: 'all-categories-button',
17
17
  onClick: onClick
18
18
  }
19
- })(html`<atomic-icon
20
- aria-hidden="true"
21
- icon=${arrow_left_rounded}
22
- part="back-arrow"
23
- ></atomic-icon>
19
+ })(html`<atomic-icon aria-hidden="true" icon=${arrow_left_rounded} part="back-arrow"></atomic-icon>
24
20
  <span class="truncate">${allCategories}</span>`)}
25
21
  `;
26
22
  };
@@ -21,11 +21,7 @@ const renderCategoryFacetParentButton = ({ props })=>{
21
21
  ariaLabel: ariaLabel
22
22
  }
23
23
  })(html`
24
- <atomic-icon
25
- icon=${arrow_left_rounded}
26
- part="back-arrow"
27
- class="back-arrow"
28
- ></atomic-icon>
24
+ <atomic-icon icon=${arrow_left_rounded} part="back-arrow" class="back-arrow"></atomic-icon>
29
25
  <span class="truncate">${displayValue}</span>
30
26
  `);
31
27
  };
@@ -59,9 +59,7 @@ const renderCategoryFacetSearchValue = ({ props })=>{
59
59
  path: localizedPath,
60
60
  separator: SEPARATOR,
61
61
  maxLength: PATH_MAX_LENGTH,
62
- emptyPathContent: html`<span class="truncate">
63
- ${inLabel} ${allCategories}
64
- </span>`,
62
+ emptyPathContent: html`<span class="truncate"> ${inLabel} ${allCategories} </span>`,
65
63
  separatorClass: 'mx-0.5',
66
64
  itemClass: 'max-w-max flex-1 truncate',
67
65
  ellipsisClass: ''
@@ -1,10 +1,5 @@
1
1
  import { html } from "lit";
2
2
  const renderFacetContainer = ()=>(children)=>html`
3
- <div
4
- class="bg-background border-neutral rounded-lg border p-4"
5
- part="facet"
6
- >
7
- ${children}
8
- </div>
9
- `;
3
+ <div class="bg-background border-neutral rounded-lg border p-4" part="facet">${children}</div>
4
+ `;
10
5
  export { renderFacetContainer };
@@ -2,10 +2,7 @@ import { html } from "lit";
2
2
  import { when } from "lit/directives/when.js";
3
3
  const renderFacetPlaceholder = ({ props })=>{
4
4
  const facetValues = [];
5
- for(let i = 0; i < props.numberOfValues; i++)facetValues.push(html`<div
6
- class="bg-neutral mt-4 flex h-5"
7
- style="width: 100%; opacity: 0.5"
8
- ></div>`);
5
+ for(let i = 0; i < props.numberOfValues; i++)facetValues.push(html`<div class="bg-neutral mt-4 flex h-5" style="width: 100%; opacity: 0.5"></div>`);
9
6
  return html`<div
10
7
  part="placeholder"
11
8
  class="bg-background border-neutral mb-4 animate-pulse rounded-lg border p-7"
@@ -41,10 +41,7 @@ const renderFacetSearchInput = ({ props })=>{
41
41
  inputRef.value?.focus();
42
42
  }
43
43
  }
44
- })(html`<atomic-icon
45
- part="search-clear-button"
46
- .icon=${images_close}
47
- ></atomic-icon>`))}
44
+ })(html`<atomic-icon part="search-clear-button" .icon=${images_close}></atomic-icon>`))}
48
45
  </div>
49
46
  </div>
50
47
  `;
@@ -1,5 +1,6 @@
1
1
  import { SafeStorage, StorageItems } from "../../../utils/local-storage-utils.js";
2
2
  import "../atomic-generated-answer-feedback-modal/atomic-generated-answer-feedback-modal.js";
3
+ import { markdownToPlainText } from "./generated-content/markdown-utils.js";
3
4
  class GeneratedAnswerController {
4
5
  hostConnected() {}
5
6
  get data() {
@@ -34,14 +35,23 @@ class GeneratedAnswerController {
34
35
  const isGenerating = !!state.isStreaming;
35
36
  const hasNonEmptyAnswer = !!state.answer?.trim();
36
37
  const hasError = !!state.error?.message;
38
+ const cannotAnswer = !!state.cannotAnswer;
37
39
  if (isHidden) return bindings.i18n.t('generated-answer-hidden');
38
40
  if (isGenerating) return bindings.i18n.t('generating-answer');
39
- if (hasError) return bindings.i18n.t('answer-could-not-be-generated');
41
+ if (hasError || cannotAnswer) return bindings.i18n.t('answer-could-not-be-generated');
40
42
  if (hasNonEmptyAnswer) return bindings.i18n.t('answer-generated', {
41
- answer: state.answer
43
+ answer: markdownToPlainText(state.answer)
42
44
  });
43
45
  return '';
44
46
  }
47
+ isStatusAssertive() {
48
+ const state = this.options.getGeneratedAnswerState();
49
+ if (!state) return false;
50
+ const isHidden = !state.isVisible;
51
+ const isGenerating = !!state.isStreaming;
52
+ const hasError = !!state.error?.message;
53
+ return !isHidden && !isGenerating && hasError;
54
+ }
45
55
  get hasRetryableError() {
46
56
  const searchState = this.options.getSearchStatusState();
47
57
  const answerState = this.options.getGeneratedAnswerState();
@@ -14,10 +14,7 @@ const renderGeneratedMarkdownContent = ({ props })=>{
14
14
  }
15
15
  });
16
16
  return html`
17
- <div
18
- part="generated-text"
19
- class="text-on-background mb-0 ${props.isStreaming ? 'cursor' : ''}"
20
- >
17
+ <div part="generated-text" class="text-on-background mb-0 ${props.isStreaming ? 'cursor' : ''}">
21
18
  ${unsafeHTML(answerAsHtml)}
22
19
  </div>
23
20
  `;