@coveo/atomic 3.35.0-pre.25e9237b66 → 3.35.0-pre.2a8da8ee82

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 (389) 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 -2
  4. package/dist/atomic/components/_index.js +20 -22
  5. package/dist/atomic/components/atomic-field-condition.js +1 -1
  6. package/dist/atomic/components/atomic-field-condition.js.map +1 -1
  7. package/dist/atomic/components/atomic-insight-result-action.js +2 -2
  8. package/dist/atomic/components/atomic-insight-result-action.js.map +1 -1
  9. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +2 -2
  10. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js.map +1 -1
  11. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +2 -2
  12. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js.map +1 -1
  13. package/dist/atomic/components/atomic-insight-result-quickview-action.js +2 -2
  14. package/dist/atomic/components/atomic-insight-result-quickview-action.js.map +1 -1
  15. package/dist/atomic/components/atomic-insight-search-box.js +29 -2
  16. package/dist/atomic/components/atomic-insight-search-box.js.map +1 -1
  17. package/dist/atomic/components/atomic-ipx-result-link.js +2 -2
  18. package/dist/atomic/components/atomic-ipx-result-link.js.map +1 -1
  19. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  20. package/dist/atomic/components/atomic-quickview.js +2 -2
  21. package/dist/atomic/components/atomic-quickview.js.map +1 -1
  22. package/dist/atomic/components/atomic-recs-interface.js +1 -1
  23. package/dist/atomic/components/atomic-result-badge.js +1 -1
  24. package/dist/atomic/components/atomic-result-badge.js.map +1 -1
  25. package/dist/atomic/components/atomic-result-children.js +2 -2
  26. package/dist/atomic/components/atomic-result-children.js.map +1 -1
  27. package/dist/atomic/components/atomic-result-date.js +1 -1
  28. package/dist/atomic/components/atomic-result-date.js.map +1 -1
  29. package/dist/atomic/components/atomic-result-fields-list.js +2 -2
  30. package/dist/atomic/components/atomic-result-fields-list.js.map +1 -1
  31. package/dist/atomic/components/atomic-result-html.js +1 -1
  32. package/dist/atomic/components/atomic-result-html.js.map +1 -1
  33. package/dist/atomic/components/atomic-result-icon.js +1 -1
  34. package/dist/atomic/components/atomic-result-icon.js.map +1 -1
  35. package/dist/atomic/components/atomic-result-image.js +1 -1
  36. package/dist/atomic/components/atomic-result-image.js.map +1 -1
  37. package/dist/atomic/components/atomic-result-link.js +2 -2
  38. package/dist/atomic/components/atomic-result-link.js.map +1 -1
  39. package/dist/atomic/components/atomic-result-localized-text.js +1 -1
  40. package/dist/atomic/components/atomic-result-localized-text.js.map +1 -1
  41. package/dist/atomic/components/atomic-result-multi-value-text.js +1 -1
  42. package/dist/atomic/components/atomic-result-multi-value-text.js.map +1 -1
  43. package/dist/atomic/components/atomic-result-number.js +1 -1
  44. package/dist/atomic/components/atomic-result-number.js.map +1 -1
  45. package/dist/atomic/components/atomic-result-printable-uri.js +1 -1
  46. package/dist/atomic/components/atomic-result-printable-uri.js.map +1 -1
  47. package/dist/atomic/components/atomic-result-rating.js +1 -1
  48. package/dist/atomic/components/atomic-result-rating.js.map +1 -1
  49. package/dist/atomic/components/atomic-result-text2.js +1 -1
  50. package/dist/atomic/components/atomic-result-text2.js.map +1 -1
  51. package/dist/atomic/components/atomic-result-timespan.js +1 -1
  52. package/dist/atomic/components/atomic-result-timespan.js.map +1 -1
  53. package/dist/atomic/components/atomic-result2.js.map +1 -1
  54. package/dist/atomic/components/atomic-search-box-instant-results.js +37 -2
  55. package/dist/atomic/components/atomic-search-box-instant-results.js.map +1 -1
  56. package/dist/atomic/components/atomic-search-box.js +4 -14
  57. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  58. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  59. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  60. package/dist/atomic/components/atomic-smart-snippet-source2.js.map +1 -1
  61. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  62. package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +1 -3
  63. package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +0 -5
  64. package/dist/atomic/components/components/commerce/atomic-commerce-search-box-recent-queries/atomic-commerce-search-box-recent-queries.js +0 -3
  65. package/dist/atomic/components/components/commerce/atomic-product-children/atomic-product-children.js +1 -1
  66. package/dist/atomic/components/components/commerce/atomic-product-description/atomic-product-description.js +1 -1
  67. package/dist/atomic/components/components/commerce/atomic-product-excerpt/atomic-product-excerpt.js +1 -1
  68. package/dist/atomic/components/components/commerce/atomic-product-field-condition/atomic-product-field-condition.js +1 -1
  69. package/dist/atomic/components/components/commerce/atomic-product-image/atomic-product-image.js +1 -1
  70. package/dist/atomic/components/components/commerce/atomic-product-link/atomic-product-link.js +2 -1
  71. package/dist/atomic/components/components/commerce/atomic-product-multi-value-text/atomic-product-multi-value-text.js +1 -1
  72. package/dist/atomic/components/components/commerce/atomic-product-numeric-field-value/atomic-product-numeric-field-value.js +1 -1
  73. package/dist/atomic/components/components/commerce/atomic-product-price/atomic-product-price.js +1 -1
  74. package/dist/atomic/components/components/commerce/atomic-product-rating/atomic-product-rating.js +1 -1
  75. package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js +1 -1
  76. package/dist/atomic/components/components/commerce/product-template-component-utils/context/interactive-product-context-controller.js +25 -0
  77. package/dist/atomic/components/components/commerce/product-template-component-utils/context/product-context-controller.js +29 -0
  78. package/dist/atomic/components/components/common/breadbox/breadcrumb-button.js +1 -6
  79. package/dist/atomic/components/components/common/search-box/text-area-clear-button.js +1 -1
  80. package/dist/atomic/components/components/common/suggestions/query-suggestions.js +11 -16
  81. package/dist/atomic/components/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js +105 -0
  82. package/dist/atomic/components/components/search/index.js +1 -0
  83. package/dist/atomic/components/components/search/lazy-index.js +1 -0
  84. package/dist/atomic/components/global/environment.js +1 -1
  85. package/dist/atomic/components/index.js.map +1 -1
  86. package/dist/atomic/components/{result-template-decorators.js → stencil-result-template-decorators.js} +6 -2
  87. package/dist/atomic/components/stencil-result-template-decorators.js.map +1 -0
  88. package/dist/atomic/components/stencil-suggestion-manager.js +1 -1
  89. package/dist/atomic/components/stencil-suggestion-manager.js.map +1 -1
  90. package/dist/atomic/index.esm.js +1 -1
  91. package/dist/atomic/index.esm.js.map +1 -1
  92. package/dist/atomic/lang/cs.json +1 -1
  93. package/dist/atomic/lang/da.json +1 -1
  94. package/dist/atomic/lang/de.json +1 -1
  95. package/dist/atomic/lang/dev.json +1 -1
  96. package/dist/atomic/lang/el.json +1 -1
  97. package/dist/atomic/lang/en.json +1 -1
  98. package/dist/atomic/lang/es.json +1 -1
  99. package/dist/atomic/lang/fi.json +1 -1
  100. package/dist/atomic/lang/fr.json +1 -1
  101. package/dist/atomic/lang/hu.json +1 -1
  102. package/dist/atomic/lang/id.json +1 -1
  103. package/dist/atomic/lang/it.json +1 -1
  104. package/dist/atomic/lang/ja.json +1 -1
  105. package/dist/atomic/lang/ko.json +1 -1
  106. package/dist/atomic/lang/nl.json +1 -1
  107. package/dist/atomic/lang/no.json +1 -1
  108. package/dist/atomic/lang/pl.json +1 -1
  109. package/dist/atomic/lang/pt-BR.json +1 -1
  110. package/dist/atomic/lang/pt.json +1 -1
  111. package/dist/atomic/lang/ru.json +1 -1
  112. package/dist/atomic/lang/sv.json +1 -1
  113. package/dist/atomic/lang/th.json +1 -1
  114. package/dist/atomic/lang/tr.json +1 -1
  115. package/dist/atomic/lang/zh-CN.json +1 -1
  116. package/dist/atomic/lang/zh-TW.json +1 -1
  117. package/dist/atomic/lang/zh.json +1 -1
  118. package/dist/atomic/{p-955092ed.entry.js → p-01096d1c.entry.js} +2 -2
  119. package/dist/atomic/p-01096d1c.entry.js.map +1 -0
  120. package/dist/atomic/{p-874f0a4c.entry.js → p-060b94d2.entry.js} +2 -2
  121. package/dist/atomic/{p-82cd6398.entry.js → p-154cbbfe.entry.js} +2 -2
  122. package/dist/atomic/{p-82cd6398.entry.js.map → p-154cbbfe.entry.js.map} +1 -1
  123. package/dist/atomic/p-16f4ce98.js +2 -0
  124. package/dist/atomic/p-16f4ce98.js.map +1 -0
  125. package/dist/atomic/{p-db3b11ca.entry.js → p-2033533c.entry.js} +2 -2
  126. package/dist/atomic/{p-db3b11ca.entry.js.map → p-2033533c.entry.js.map} +1 -1
  127. package/dist/atomic/{p-4069d801.entry.js → p-268ce7ca.entry.js} +2 -2
  128. package/dist/atomic/p-268ce7ca.entry.js.map +1 -0
  129. package/dist/atomic/{p-9e6462cf.entry.js → p-36ff2bc3.entry.js} +2 -2
  130. package/dist/atomic/p-36ff2bc3.entry.js.map +1 -0
  131. package/dist/atomic/{p-e9dc8e90.entry.js → p-3ec45f9c.entry.js} +2 -2
  132. package/dist/atomic/p-3ec45f9c.entry.js.map +1 -0
  133. package/dist/atomic/{p-18684d4c.js → p-4080f740.js} +1 -1
  134. package/dist/atomic/p-4080f740.js.map +1 -0
  135. package/dist/atomic/{p-8d5228da.entry.js → p-42fffab2.entry.js} +2 -2
  136. package/dist/atomic/p-42fffab2.entry.js.map +1 -0
  137. package/dist/atomic/{p-190ddaca.entry.js → p-4cf97b0a.entry.js} +2 -2
  138. package/dist/atomic/p-4cf97b0a.entry.js.map +1 -0
  139. package/dist/atomic/{p-78427c6a.entry.js → p-5a9460ab.entry.js} +2 -2
  140. package/dist/atomic/p-5a9460ab.entry.js.map +1 -0
  141. package/dist/atomic/{p-15547bd5.entry.js → p-61b3f5ce.entry.js} +2 -2
  142. package/dist/atomic/p-61b3f5ce.entry.js.map +1 -0
  143. package/dist/atomic/{p-1ff7a9da.entry.js → p-6a3b139f.entry.js} +2 -2
  144. package/dist/atomic/p-6a3b139f.entry.js.map +1 -0
  145. package/dist/atomic/{p-df8d38ca.entry.js → p-7015679e.entry.js} +2 -2
  146. package/dist/atomic/p-7015679e.entry.js.map +1 -0
  147. package/dist/atomic/{p-dea22a8d.entry.js → p-886b184f.entry.js} +2 -2
  148. package/dist/atomic/p-886b184f.entry.js.map +1 -0
  149. package/dist/atomic/{p-ed413091.entry.js → p-8a30d1e9.entry.js} +2 -2
  150. package/dist/atomic/{p-b3f6561d.entry.js → p-8e964890.entry.js} +2 -2
  151. package/dist/atomic/p-8e964890.entry.js.map +1 -0
  152. package/dist/atomic/{p-182f9112.entry.js → p-a413f820.entry.js} +2 -2
  153. package/dist/atomic/p-a413f820.entry.js.map +1 -0
  154. package/dist/atomic/{p-5cab535b.entry.js → p-c5bd7f8d.entry.js} +2 -2
  155. package/dist/atomic/p-c5bd7f8d.entry.js.map +1 -0
  156. package/dist/atomic/{p-852cc16d.entry.js → p-cacb7fd8.entry.js} +2 -2
  157. package/dist/atomic/p-cacb7fd8.entry.js.map +1 -0
  158. package/dist/atomic/{p-df592625.entry.js → p-ce6e5989.entry.js} +2 -2
  159. package/dist/atomic/{p-c5164dbf.entry.js → p-cee86cff.entry.js} +2 -2
  160. package/dist/atomic/p-cee86cff.entry.js.map +1 -0
  161. package/dist/atomic/{p-4cb91ee7.entry.js → p-d5402772.entry.js} +2 -2
  162. package/dist/atomic/p-d5402772.entry.js.map +1 -0
  163. package/dist/atomic/p-d55668a3.entry.js +2 -0
  164. package/dist/atomic/p-d55668a3.entry.js.map +1 -0
  165. package/dist/atomic/{p-e6dc9de7.entry.js → p-da141605.entry.js} +2 -2
  166. package/dist/atomic/p-da141605.entry.js.map +1 -0
  167. package/dist/atomic/{p-a1798150.entry.js → p-dd258eaa.entry.js} +2 -2
  168. package/dist/atomic/p-dd258eaa.entry.js.map +1 -0
  169. package/dist/atomic/{p-945ddd53.entry.js → p-e1dbe31d.entry.js} +2 -2
  170. package/dist/atomic/p-e1dbe31d.entry.js.map +1 -0
  171. package/dist/atomic/{p-448091f7.entry.js → p-ecd3c0a9.entry.js} +2 -2
  172. package/dist/atomic/p-ecd3c0a9.entry.js.map +1 -0
  173. package/dist/atomic/{p-c2a5dac0.entry.js → p-f2c4209d.entry.js} +2 -2
  174. package/dist/atomic/{p-57049cd2.entry.js → p-f2c89d7c.entry.js} +2 -2
  175. package/dist/atomic/p-f2c89d7c.entry.js.map +1 -0
  176. package/dist/atomic/p-f800678c.entry.js.map +1 -1
  177. package/dist/cjs/_index.cjs.js +20 -20
  178. package/dist/cjs/_loader.cjs.js +1 -1
  179. package/dist/cjs/atomic-field-condition.cjs.entry.js +2 -2
  180. package/dist/cjs/atomic-field-condition.cjs.entry.js.map +1 -1
  181. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +3 -3
  182. package/dist/cjs/atomic-insight-result-action.cjs.entry.js.map +1 -1
  183. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +3 -3
  184. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js.map +1 -1
  185. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +3 -3
  186. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js.map +1 -1
  187. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +3 -3
  188. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js.map +1 -1
  189. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +31 -5
  190. package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
  191. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +4 -4
  192. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js.map +1 -1
  193. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  194. package/dist/cjs/atomic-quickview.cjs.entry.js +3 -3
  195. package/dist/cjs/atomic-quickview.cjs.entry.js.map +1 -1
  196. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  197. package/dist/cjs/atomic-result-badge.cjs.entry.js +2 -2
  198. package/dist/cjs/atomic-result-badge.cjs.entry.js.map +1 -1
  199. package/dist/cjs/atomic-result-children.cjs.entry.js +3 -3
  200. package/dist/cjs/atomic-result-children.cjs.entry.js.map +1 -1
  201. package/dist/cjs/atomic-result-date.cjs.entry.js +2 -2
  202. package/dist/cjs/atomic-result-date.cjs.entry.js.map +1 -1
  203. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +3 -3
  204. package/dist/cjs/atomic-result-fields-list.cjs.entry.js.map +1 -1
  205. package/dist/cjs/atomic-result-html.cjs.entry.js +2 -2
  206. package/dist/cjs/atomic-result-html.cjs.entry.js.map +1 -1
  207. package/dist/cjs/atomic-result-icon.cjs.entry.js +2 -2
  208. package/dist/cjs/atomic-result-icon.cjs.entry.js.map +1 -1
  209. package/dist/cjs/atomic-result-image.cjs.entry.js +2 -2
  210. package/dist/cjs/atomic-result-image.cjs.entry.js.map +1 -1
  211. package/dist/cjs/atomic-result-link.cjs.entry.js +4 -4
  212. package/dist/cjs/atomic-result-link.cjs.entry.js.map +1 -1
  213. package/dist/cjs/atomic-result-localized-text.cjs.entry.js +3 -3
  214. package/dist/cjs/atomic-result-localized-text.cjs.entry.js.map +1 -1
  215. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js +2 -2
  216. package/dist/cjs/atomic-result-multi-value-text.cjs.entry.js.map +1 -1
  217. package/dist/cjs/atomic-result-number.cjs.entry.js +2 -2
  218. package/dist/cjs/atomic-result-number.cjs.entry.js.map +1 -1
  219. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js +2 -2
  220. package/dist/cjs/atomic-result-printable-uri.cjs.entry.js.map +1 -1
  221. package/dist/cjs/atomic-result-rating.cjs.entry.js +2 -2
  222. package/dist/cjs/atomic-result-rating.cjs.entry.js.map +1 -1
  223. package/dist/cjs/atomic-result-text_2.cjs.entry.js +2 -2
  224. package/dist/cjs/atomic-result-text_2.cjs.entry.js.map +1 -1
  225. package/dist/cjs/atomic-result-timespan.cjs.entry.js +2 -2
  226. package/dist/cjs/atomic-result-timespan.cjs.entry.js.map +1 -1
  227. package/dist/cjs/atomic-result.cjs.entry.js.map +1 -1
  228. package/dist/cjs/atomic-search-box.cjs.entry.js +4 -8
  229. package/dist/cjs/atomic-search-box.cjs.entry.js.map +1 -1
  230. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +1 -1
  231. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js.map +1 -1
  232. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  233. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  234. package/dist/cjs/atomic.cjs.js +1 -1
  235. package/dist/cjs/index-757bc886.js +0 -4
  236. package/dist/cjs/index.cjs.js.map +1 -1
  237. package/dist/cjs/{result-template-decorators-432d11a9.js → stencil-result-template-decorators-28b05aaf.js} +6 -2
  238. package/dist/cjs/stencil-result-template-decorators-28b05aaf.js.map +1 -0
  239. package/dist/cjs/{stencil-suggestion-manager-88cb88f2.js → stencil-suggestion-manager-2cba6d69.js} +2 -2
  240. package/dist/cjs/stencil-suggestion-manager-2cba6d69.js.map +1 -0
  241. package/dist/cjs/version.cjs.js +1 -1
  242. package/dist/esm/_index.js +19 -19
  243. package/dist/esm/_loader.js +1 -1
  244. package/dist/esm/atomic-field-condition.entry.js +1 -1
  245. package/dist/esm/atomic-field-condition.entry.js.map +1 -1
  246. package/dist/esm/atomic-insight-result-action.entry.js +2 -2
  247. package/dist/esm/atomic-insight-result-action.entry.js.map +1 -1
  248. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +2 -2
  249. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js.map +1 -1
  250. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +2 -2
  251. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js.map +1 -1
  252. package/dist/esm/atomic-insight-result-quickview-action.entry.js +2 -2
  253. package/dist/esm/atomic-insight-result-quickview-action.entry.js.map +1 -1
  254. package/dist/esm/atomic-insight-search-box.entry.js +30 -4
  255. package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
  256. package/dist/esm/atomic-ipx-result-link.entry.js +2 -2
  257. package/dist/esm/atomic-ipx-result-link.entry.js.map +1 -1
  258. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  259. package/dist/esm/atomic-quickview.entry.js +2 -2
  260. package/dist/esm/atomic-quickview.entry.js.map +1 -1
  261. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  262. package/dist/esm/atomic-result-badge.entry.js +1 -1
  263. package/dist/esm/atomic-result-badge.entry.js.map +1 -1
  264. package/dist/esm/atomic-result-children.entry.js +2 -2
  265. package/dist/esm/atomic-result-children.entry.js.map +1 -1
  266. package/dist/esm/atomic-result-date.entry.js +1 -1
  267. package/dist/esm/atomic-result-date.entry.js.map +1 -1
  268. package/dist/esm/atomic-result-fields-list.entry.js +2 -2
  269. package/dist/esm/atomic-result-fields-list.entry.js.map +1 -1
  270. package/dist/esm/atomic-result-html.entry.js +1 -1
  271. package/dist/esm/atomic-result-html.entry.js.map +1 -1
  272. package/dist/esm/atomic-result-icon.entry.js +1 -1
  273. package/dist/esm/atomic-result-icon.entry.js.map +1 -1
  274. package/dist/esm/atomic-result-image.entry.js +1 -1
  275. package/dist/esm/atomic-result-image.entry.js.map +1 -1
  276. package/dist/esm/atomic-result-link.entry.js +2 -2
  277. package/dist/esm/atomic-result-link.entry.js.map +1 -1
  278. package/dist/esm/atomic-result-localized-text.entry.js +2 -2
  279. package/dist/esm/atomic-result-localized-text.entry.js.map +1 -1
  280. package/dist/esm/atomic-result-multi-value-text.entry.js +1 -1
  281. package/dist/esm/atomic-result-multi-value-text.entry.js.map +1 -1
  282. package/dist/esm/atomic-result-number.entry.js +1 -1
  283. package/dist/esm/atomic-result-number.entry.js.map +1 -1
  284. package/dist/esm/atomic-result-printable-uri.entry.js +1 -1
  285. package/dist/esm/atomic-result-printable-uri.entry.js.map +1 -1
  286. package/dist/esm/atomic-result-rating.entry.js +1 -1
  287. package/dist/esm/atomic-result-rating.entry.js.map +1 -1
  288. package/dist/esm/atomic-result-text_2.entry.js +1 -1
  289. package/dist/esm/atomic-result-text_2.entry.js.map +1 -1
  290. package/dist/esm/atomic-result-timespan.entry.js +1 -1
  291. package/dist/esm/atomic-result-timespan.entry.js.map +1 -1
  292. package/dist/esm/atomic-result.entry.js.map +1 -1
  293. package/dist/esm/atomic-search-box.entry.js +4 -8
  294. package/dist/esm/atomic-search-box.entry.js.map +1 -1
  295. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +1 -1
  296. package/dist/esm/atomic-smart-snippet-answer_2.entry.js.map +1 -1
  297. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  298. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  299. package/dist/esm/atomic.js +1 -1
  300. package/dist/esm/index-3f35faca.js +0 -4
  301. package/dist/esm/index.js.map +1 -1
  302. package/dist/esm/{result-template-decorators-2ed76ea9.js → stencil-result-template-decorators-f989bc6b.js} +6 -2
  303. package/dist/esm/stencil-result-template-decorators-f989bc6b.js.map +1 -0
  304. package/dist/esm/{stencil-suggestion-manager-1f4ed8d0.js → stencil-suggestion-manager-376f83e8.js} +2 -2
  305. package/dist/esm/stencil-suggestion-manager-376f83e8.js.map +1 -0
  306. package/dist/esm/version.js +1 -1
  307. package/dist/types/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.d.ts +0 -2
  308. package/dist/types/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.d.ts +0 -1
  309. package/dist/types/components/commerce/atomic-commerce-search-box-recent-queries/atomic-commerce-search-box-recent-queries.d.ts +0 -2
  310. package/dist/types/components/commerce/atomic-product/atomic-product.d.ts +1 -1
  311. package/dist/types/components/commerce/product-template-component-utils/context/fetch-product-context.d.ts +12 -0
  312. package/dist/types/components/commerce/product-template-component-utils/context/interactive-product-context-controller.d.ts +27 -0
  313. package/dist/types/components/commerce/product-template-component-utils/context/product-context-controller.d.ts +33 -0
  314. package/dist/types/components/commerce/product-template-component-utils/{stencil-product-template-decorators.d.ts → context/stencil-product-template-decorators.d.ts} +1 -1
  315. package/dist/types/components/common/breadbox/breadcrumb-button.d.ts +0 -2
  316. package/dist/types/components/common/smart-snippets/atomic-smart-snippet-source.d.ts +1 -1
  317. package/dist/types/components/search/atomic-result/atomic-result.d.ts +1 -1
  318. package/dist/types/components/search/atomic-search-box/atomic-search-box.d.ts +0 -1
  319. package/dist/types/components/search/{search-box-suggestions/atomic-search-box-query-suggestions → atomic-search-box-query-suggestions}/atomic-search-box-query-suggestions.d.ts +16 -7
  320. package/dist/types/components/search/index.d.ts +1 -0
  321. package/dist/types/components/search/result-template-component-utils/context/fetch-result-context.d.ts +8 -0
  322. package/dist/types/components/search/result-template-component-utils/context/interactive-result-context-controller.d.ts +12 -0
  323. package/dist/types/components/search/result-template-component-utils/context/result-context-controller.d.ts +18 -0
  324. package/dist/types/components/search/{result-template-components/result-template-decorators.d.ts → result-template-component-utils/context/stencil-result-template-decorators.d.ts} +6 -2
  325. package/dist/types/components.d.ts +0 -49
  326. package/dist/types/directives/hierarchical-path.d.ts +1 -1
  327. package/dist/types/index.d.ts +3 -3
  328. package/docs/atomic-docs.json +3 -102
  329. package/package.json +1 -1
  330. package/dist/atomic/components/atomic-search-box-query-suggestions.d.ts +0 -11
  331. package/dist/atomic/components/atomic-search-box-query-suggestions.js +0 -8
  332. package/dist/atomic/components/atomic-search-box-query-suggestions.js.map +0 -1
  333. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +0 -89
  334. package/dist/atomic/components/atomic-search-box-query-suggestions2.js.map +0 -1
  335. package/dist/atomic/components/components/common/item-list/fetch-item-context.js +0 -15
  336. package/dist/atomic/components/decorators/commerce/product-template-decorators.js +0 -68
  337. package/dist/atomic/components/result-template-decorators.js.map +0 -1
  338. package/dist/atomic/components/stencil-query-suggestions.js +0 -33
  339. package/dist/atomic/components/stencil-query-suggestions.js.map +0 -1
  340. package/dist/atomic/components/suggestions-events.js +0 -40
  341. package/dist/atomic/components/suggestions-events.js.map +0 -1
  342. package/dist/atomic/p-15547bd5.entry.js.map +0 -1
  343. package/dist/atomic/p-182f9112.entry.js.map +0 -1
  344. package/dist/atomic/p-18684d4c.js.map +0 -1
  345. package/dist/atomic/p-190ddaca.entry.js.map +0 -1
  346. package/dist/atomic/p-1ff7a9da.entry.js.map +0 -1
  347. package/dist/atomic/p-2559747d.js +0 -2
  348. package/dist/atomic/p-2559747d.js.map +0 -1
  349. package/dist/atomic/p-4069d801.entry.js.map +0 -1
  350. package/dist/atomic/p-448091f7.entry.js.map +0 -1
  351. package/dist/atomic/p-4cb91ee7.entry.js.map +0 -1
  352. package/dist/atomic/p-567b2841.entry.js +0 -2
  353. package/dist/atomic/p-567b2841.entry.js.map +0 -1
  354. package/dist/atomic/p-57049cd2.entry.js.map +0 -1
  355. package/dist/atomic/p-5cab535b.entry.js.map +0 -1
  356. package/dist/atomic/p-78427c6a.entry.js.map +0 -1
  357. package/dist/atomic/p-852cc16d.entry.js.map +0 -1
  358. package/dist/atomic/p-8d5228da.entry.js.map +0 -1
  359. package/dist/atomic/p-945ddd53.entry.js.map +0 -1
  360. package/dist/atomic/p-955092ed.entry.js.map +0 -1
  361. package/dist/atomic/p-9e6462cf.entry.js.map +0 -1
  362. package/dist/atomic/p-a1798150.entry.js.map +0 -1
  363. package/dist/atomic/p-af93b44c.js +0 -2
  364. package/dist/atomic/p-af93b44c.js.map +0 -1
  365. package/dist/atomic/p-b3f6561d.entry.js.map +0 -1
  366. package/dist/atomic/p-c5164dbf.entry.js.map +0 -1
  367. package/dist/atomic/p-dea22a8d.entry.js.map +0 -1
  368. package/dist/atomic/p-df8d38ca.entry.js.map +0 -1
  369. package/dist/atomic/p-e6dc9de7.entry.js.map +0 -1
  370. package/dist/atomic/p-e8176ac8.entry.js +0 -2
  371. package/dist/atomic/p-e8176ac8.entry.js.map +0 -1
  372. package/dist/atomic/p-e9dc8e90.entry.js.map +0 -1
  373. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js +0 -76
  374. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js.map +0 -1
  375. package/dist/cjs/result-template-decorators-432d11a9.js.map +0 -1
  376. package/dist/cjs/stencil-query-suggestions-03268ecc.js +0 -38
  377. package/dist/cjs/stencil-query-suggestions-03268ecc.js.map +0 -1
  378. package/dist/cjs/stencil-suggestion-manager-88cb88f2.js.map +0 -1
  379. package/dist/esm/atomic-search-box-query-suggestions.entry.js +0 -72
  380. package/dist/esm/atomic-search-box-query-suggestions.entry.js.map +0 -1
  381. package/dist/esm/result-template-decorators-2ed76ea9.js.map +0 -1
  382. package/dist/esm/stencil-query-suggestions-5d6a46d7.js +0 -33
  383. package/dist/esm/stencil-query-suggestions-5d6a46d7.js.map +0 -1
  384. package/dist/esm/stencil-suggestion-manager-1f4ed8d0.js.map +0 -1
  385. package/dist/types/decorators/commerce/product-template-decorators.d.ts +0 -68
  386. /package/dist/atomic/{p-874f0a4c.entry.js.map → p-060b94d2.entry.js.map} +0 -0
  387. /package/dist/atomic/{p-ed413091.entry.js.map → p-8a30d1e9.entry.js.map} +0 -0
  388. /package/dist/atomic/{p-df592625.entry.js.map → p-ce6e5989.entry.js.map} +0 -0
  389. /package/dist/atomic/{p-c2a5dac0.entry.js.map → p-f2c4209d.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;;;;;;;;;;;;AAGA;;;;;;;;;;;;SAYgB,cAAc,CAAoB,OAAgB;IAChE,OAAO,WAAW,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACnD;;MCHa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACoDA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/components/commerce/product-template-component-utils/stencil-product-template-decorators.tsx","src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/decorators/commerce/product-template-decorators.ts"],"sourcesContent":["import {Product} from '@coveo/headless/commerce';\nimport {itemContext} from '../../common/item-list/stencil-item-decorators';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This method is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered \"atomic-product\".\n * @returns A promise that resolves on initialization of the parent \"atomic-product\" element, or rejects when there is no parent \"atomic-product\" element.\n *\n * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \\@/src/decorators/commerce/product-template-decorators.ts\n */\nexport function productContext<T extends Product>(element: Element) {\n return itemContext<T>(element, 'atomic-product');\n}\n","import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {InteractiveProduct, Product} from '@coveo/headless/commerce';\nimport type {LitElement} from 'lit';\nimport {\n InteractiveItemContextController,\n type InteractiveItemContextEvent,\n} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {\n ItemContextController,\n type ItemContextEvent,\n} from '@/src/components/common/item-list/context/item-context-controller';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.\n *\n * @param host - The Lit component instance\n * @param options - Configuration options\n * @returns ItemContextController instance configured for atomic-product\n *\n * @example\n * ```typescript\n * @customElement('my-product-component')\n * export class MyProductComponent extends LitElement {\n * private productController = createProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.productController.item;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createProductContextController(\n host: LitElement & {error: Error | null},\n options: {folded?: boolean} = {}\n): ItemContextController<Product> {\n return new ItemContextController<Product>(host, {\n parentName: 'atomic-product',\n folded: options.folded ?? false,\n });\n}\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.\n *\n * @param host - The Lit component instance\n * @returns InteractiveItemContextController instance\n *\n * @example\n * ```typescript\n * @customElement('my-interactive-product-component')\n * export class MyInteractiveProductComponent extends LitElement {\n * private interactiveProductController = createInteractiveProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.interactiveProductController.interactiveItem;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createInteractiveProductContextController(\n host: LitElement & {error: Error}\n): InteractiveItemContextController<InteractiveProduct> {\n return new InteractiveItemContextController<InteractiveProduct>(host);\n}\n\nexport type ProductContextEvent<T = Product> = ItemContextEvent<T>;\nexport type InteractiveProductContextEvent<\n T extends InteractiveProduct = InteractiveProduct,\n> = InteractiveItemContextEvent<T>;\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n"],"version":3}
1
+ {"file":"index.js","mappings":";;;;;;;;;;;;;MAca,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACrBA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;ACZA;;;;;;;;;;;;SAYgB,cAAc,CAAoB,OAAgB;IAChE,OAAO,WAAW,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACnD;;;;","names":[],"sources":["src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/components/commerce/product-template-component-utils/context/fetch-product-context.ts","src/components/commerce/product-template-component-utils/context/stencil-product-template-decorators.tsx"],"sourcesContent":["import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {Product} from '@coveo/headless/commerce';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n","import {Product} from '@coveo/headless/commerce';\nimport {itemContext} from '@/src/components/common/item-list/stencil-item-decorators';\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This method is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered \"atomic-product\".\n * @returns A promise that resolves on initialization of the parent \"atomic-product\" element, or rejects when there is no parent \"atomic-product\" element.\n *\n * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \\@/src/components/commerce/product-template-component-utils/context/fetch-product-context.ts\n */\nexport function productContext<T extends Product>(element: Element) {\n return itemContext<T>(element, 'atomic-product');\n}\n"],"version":3}
@@ -8,6 +8,8 @@ import { I as ItemContext, a as InteractiveItemContext, i as itemContext } from
8
8
  * @ResultContext() private result!: Result;
9
9
  *
10
10
  * For more information and examples, view the "Utilities" section of the readme.
11
+ *
12
+ * @deprecated should only be used for Stencil components. For Lit components, use `createResultContextController` from \@/src/components/search/result-template-component-utils/context/result-context-controller.ts
11
13
  */
12
14
  function ResultContext(opts = { folded: false }) {
13
15
  return ItemContext({ parentName: 'atomic-result', folded: opts.folded });
@@ -22,8 +24,10 @@ function InteractiveResultContext() {
22
24
  *
23
25
  * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).
24
26
  *
25
- * @param element The element that the event is dispatched to, which must be the child of a rendered "atomic-result".
27
+ * @param element The element that the event is dispatched to, which must be the child of a rendered "atomic-result" element.
26
28
  * @returns A promise that resolves on initialization of the parent "atomic-result" element, or rejects when there is no parent "atomic-result" element.
29
+ *
30
+ * @deprecated should only be used for Stencil components. For Lit components, use `fetchResultContext` from \@/src/components/search/result-template-component-utils/context/fetch-result-context.ts
27
31
  */
28
32
  function resultContext(element) {
29
33
  return itemContext(element, 'atomic-result');
@@ -31,4 +35,4 @@ function resultContext(element) {
31
35
 
32
36
  export { InteractiveResultContext as I, ResultContext as R, resultContext as r };
33
37
 
34
- //# sourceMappingURL=result-template-decorators-2ed76ea9.js.map
38
+ //# sourceMappingURL=stencil-result-template-decorators-f989bc6b.js.map
@@ -0,0 +1 @@
1
+ {"file":"stencil-result-template-decorators-f989bc6b.js","mappings":";;AASA;;;;;;;;;;;SAWgB,aAAa,CAAC,OAA0B,EAAC,MAAM,EAAE,KAAK,EAAC;IACrE,OAAO,WAAW,CAAC,EAAC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;AACzE,CAAC;SAEe,wBAAwB;IACtC,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC;AAKD;;;;;;;;;;;;SAYgB,aAAa,CAC3B,OAAgB;IAEhB,OAAO,WAAW,CAAI,OAAO,EAAE,eAAe,CAAC,CAAC;AAClD;;;;","names":[],"sources":["src/components/search/result-template-component-utils/context/stencil-result-template-decorators.tsx"],"sourcesContent":["import {FoldedResult, Result} from '@coveo/headless';\nimport {\n InteractiveItemContext,\n InteractiveItemContextEvent,\n ItemContext,\n ItemContextEvent,\n itemContext,\n} from '@/src/components/common/item-list/stencil-item-decorators';\n\n/**\n * A [StencilJS property decorator](https://stenciljs.com/) to be used for result template components.\n * This allows the Stencil component to fetch the current result from its rendered parent, the `atomic-result` component.\n *\n * Example:\n * @ResultContext() private result!: Result;\n *\n * For more information and examples, view the \"Utilities\" section of the readme.\n * \n * @deprecated should only be used for Stencil components. For Lit components, use `createResultContextController` from \\@/src/components/search/result-template-component-utils/context/result-context-controller.ts\n */\nexport function ResultContext(opts: {folded: boolean} = {folded: false}) {\n return ItemContext({parentName: 'atomic-result', folded: opts.folded});\n}\n\nexport function InteractiveResultContext() {\n return InteractiveItemContext();\n}\n\nexport type ResultContextEvent<T = Result> = ItemContextEvent<T>;\nexport type InteractiveResultContextEvent = InteractiveItemContextEvent;\n\n/**\n * Retrieves `Result` on a rendered `atomic-result`.\n *\n * This method is useful for building custom result template elements, see [Create a Result List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-result-template-component-example) for more information.\n *\n * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element The element that the event is dispatched to, which must be the child of a rendered \"atomic-result\" element.\n * @returns A promise that resolves on initialization of the parent \"atomic-result\" element, or rejects when there is no parent \"atomic-result\" element.\n * \n * @deprecated should only be used for Stencil components. For Lit components, use `fetchResultContext` from \\@/src/components/search/result-template-component-utils/context/fetch-result-context.ts\n */\nexport function resultContext<T extends Result | FoldedResult = Result>(\n element: Element\n) {\n return itemContext<T>(element, 'atomic-result');\n}\n"],"version":3}
@@ -32,7 +32,7 @@ const TextAreaClearButton = ({ inputRef, bindings, onClick, ...defaultButtonProp
32
32
  h(Button, { style: "text-transparent", part: "clear-button", class: "text-neutral-dark flex h-8 w-8 shrink-0 items-center justify-center", onClick: () => {
33
33
  onClick?.();
34
34
  inputRef?.focus();
35
- }, ariaLabel: bindings.i18n.t('clear-search'), ...defaultButtonProps },
35
+ }, ariaLabel: bindings.i18n.t('clear'), ...defaultButtonProps },
36
36
  h("atomic-icon", { part: "clear-icon", icon: ClearSlim, class: "h-4 w-4" }))));
37
37
 
38
38
  function getPopupAttributes(props) {
@@ -411,4 +411,4 @@ class SuggestionManager {
411
411
 
412
412
  export { SuggestionManager as S, SearchSlimIcon as a, SearchTextArea as b, SearchBoxWrapper as c };
413
413
 
414
- //# sourceMappingURL=stencil-suggestion-manager-1f4ed8d0.js.map
414
+ //# sourceMappingURL=stencil-suggestion-manager-376f83e8.js.map
@@ -0,0 +1 @@
1
+ {"file":"stencil-suggestion-manager-376f83e8.js","mappings":"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","names":[],"sources":["src/components/common/search-box/stencil-search-box-wrapper.tsx","src/components/common/search-box/stencil-text-area-clear-button.tsx","src/components/common/search-box/stencil-search-text-area.tsx","src/utils/promise-utils.ts","src/components/common/suggestions/stencil-suggestion-manager.ts"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\n\ninterface Props {\n disabled: boolean;\n onFocusout?: (event: FocusEvent) => void;\n}\n\nexport const SearchBoxWrapper: FunctionalComponent<Props> = (\n props,\n children\n) => {\n const getClasses = () => {\n const baseClasses =\n 'flex bg-background w-full border border-neutral rounded-md focus-within:ring-3 absolute top-0 left-0';\n const focusClasses = props.disabled\n ? 'focus-within:border-disabled focus-within:ring-neutral'\n : 'focus-within:border-primary focus-within:ring-ring-primary';\n\n return [baseClasses, focusClasses].join(' ');\n };\n\n return (\n <div part=\"wrapper\" class={getClasses()} onFocusout={props.onFocusout}>\n {children}\n </div>\n );\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport ClearSlim from '../../../images/clear-slim.svg';\nimport {AnyBindings} from '../interface/bindings';\nimport {Button, StencilButtonProps} from '../stencil-button';\n\ninterface Props extends Partial<StencilButtonProps> {\n bindings: AnyBindings;\n inputRef: HTMLInputElement | HTMLTextAreaElement | null;\n}\n\nexport const TextAreaClearButton: FunctionalComponent<Props> = ({\n inputRef,\n bindings,\n onClick,\n ...defaultButtonProps\n}) => (\n <div\n part=\"clear-button-wrapper\"\n class=\"ml-2 flex items-center justify-center py-2\"\n >\n <Button\n style=\"text-transparent\"\n part=\"clear-button\"\n class=\"text-neutral-dark flex h-8 w-8 shrink-0 items-center justify-center\"\n onClick={() => {\n onClick?.();\n inputRef?.focus();\n }}\n ariaLabel={bindings.i18n.t('clear')}\n {...defaultButtonProps}\n >\n <atomic-icon\n part=\"clear-icon\"\n icon={ClearSlim}\n class=\"h-4 w-4\"\n ></atomic-icon>\n </Button>\n </div>\n);\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {JSXBase} from '@stencil/core/internal';\nimport {AnyBindings} from '../interface/bindings';\nimport {TextAreaClearButton} from './stencil-text-area-clear-button';\n\ninterface Props extends JSXBase.TextareaHTMLAttributes<HTMLTextAreaElement> {\n textAreaRef: HTMLTextAreaElement;\n loading: boolean;\n bindings: AnyBindings;\n value: string;\n ariaLabel: string;\n onClear(): void;\n popup?: {\n id: string;\n activeDescendant: string;\n expanded: boolean;\n hasSuggestions: boolean;\n };\n}\n\nfunction getPopupAttributes(props: Required<Props>['popup']) {\n return {\n autocomplete: 'off',\n autocapitalize: 'off',\n autocorrect: 'off',\n ...(props.activeDescendant && {\n 'aria-activedescendant': props.activeDescendant,\n }),\n 'aria-autocomplete': 'both',\n 'aria-haspopup': 'true',\n 'aria-controls': props.id,\n };\n}\n\nfunction syncTextWithReplica(elem: HTMLTextAreaElement, value?: string) {\n const parent = elem?.parentNode as HTMLElement;\n if (!parent) {\n return;\n }\n if (elem.value === '\\n') {\n return;\n }\n parent.dataset.replicatedValue = value ?? elem.value;\n}\n\nfunction resetReplicaText(elem: HTMLTextAreaElement) {\n const parent = elem?.parentNode as HTMLElement;\n if (parent) {\n delete parent.dataset.replicatedValue;\n }\n}\n\nfunction collapseTextArea(elem: HTMLTextAreaElement) {\n const parent = elem?.parentNode as HTMLElement;\n if (parent) {\n parent.classList.remove('expanded');\n }\n}\n\nfunction expandTextArea(elem: HTMLTextAreaElement) {\n const parent = elem?.parentNode as HTMLElement;\n if (parent) {\n parent.classList.add('expanded');\n }\n}\n\nexport const SearchTextArea: FunctionalComponent<Props> = ({\n textAreaRef,\n loading,\n bindings,\n onInput,\n onFocus,\n onBlur,\n onChange,\n onKeyDown,\n onKeyUp,\n value,\n ariaLabel,\n onClear,\n popup,\n ...defaultInputProps\n}) => (\n <div class=\"flex grow overflow-hidden\">\n <div part=\"textarea-expander\" class=\"grid grow overflow-hidden\">\n <textarea\n part=\"textarea\"\n aria-label={ariaLabel}\n placeholder={bindings.i18n.t('search')}\n class=\"placeholder-neutral-dark\"\n rows={1}\n onInput={(e) => {\n onInput?.(e);\n syncTextWithReplica(textAreaRef);\n }}\n onKeyDown={(e) => {\n syncTextWithReplica(textAreaRef);\n if (e.key === 'Enter') {\n if (e.shiftKey) {\n return;\n }\n e.preventDefault();\n }\n onKeyDown?.(e);\n }}\n onKeyUp={(e) => {\n onKeyUp?.(e);\n if (e.key === 'Enter') {\n e.preventDefault();\n return;\n }\n syncTextWithReplica(textAreaRef);\n }}\n onBlur={(e) => {\n onBlur?.(e);\n collapseTextArea(textAreaRef);\n syncTextWithReplica(textAreaRef);\n }}\n onChange={(e) => {\n onChange?.(e);\n syncTextWithReplica(textAreaRef);\n }}\n onFocus={(e) => {\n onFocus?.(e);\n const target = e.target as HTMLTextAreaElement;\n syncTextWithReplica(textAreaRef ?? target);\n expandTextArea(textAreaRef ?? target);\n }}\n autocomplete=\"off\"\n {...(popup && getPopupAttributes(popup))}\n {...defaultInputProps}\n value={value}\n />\n </div>\n\n {loading && (\n <div class=\"searchbox-button-wrapper ml-2 flex items-center justify-center\">\n <span\n part=\"loading\"\n class=\"loading mr-2 grid h-5 w-5 animate-spin place-items-center rounded-full bg-linear-to-r\"\n ></span>\n </div>\n )}\n {!loading && value && (\n <TextAreaClearButton\n inputRef={textAreaRef}\n bindings={bindings}\n onClick={() => {\n onClear();\n resetReplicaText(textAreaRef);\n }}\n />\n )}\n </div>\n);\n","export function promiseTimeout<T>(prom: T | Promise<T>, ms: number) {\n let id: NodeJS.Timeout;\n const timeout = new Promise((_, reject) => {\n id = setTimeout(() => {\n reject(new Error('Promise timed out.'));\n }, ms);\n });\n return Promise.race([prom, timeout]).then(() => {\n clearTimeout(id);\n });\n}\n","import {isNullOrUndefined} from '@coveo/bueno';\nimport {forceUpdate} from '@stencil/core';\nimport DOMPurify from 'dompurify';\nimport {debounce} from '../../../utils/debounce-utils';\nimport {promiseTimeout} from '../../../utils/promise-utils';\nimport type {\n SearchBoxSuggestionElement,\n SearchBoxSuggestionsBindings,\n SearchBoxSuggestionsEvent,\n} from './suggestions-types';\nimport {elementHasNoQuery, elementHasQuery} from './suggestions-utils';\n\n/**\n * List of suggestions that will be displayed along other lists (e.g recent queries) when the search box's input is selected.\n */\nexport interface SearchBoxSuggestions {\n /**\n * The search box will sort the position of suggestions using this value, the lowest value being first.\n * By default, the DOM position will be used.\n */\n position: number;\n /**\n * Whether the suggestions should be listed in the right or left panel. By default, the suggestions are listed in the right panel.\n */\n panel?: 'left' | 'right';\n /**\n * Method that returns the list of elements which will be rendered in the list of suggestions.\n */\n renderItems(): SearchBoxSuggestionElement[];\n /**\n * Hook called when the user changes the search box's input value. This can lead to all the query suggestions being updated.\n */\n onInput?(): Promise<unknown>;\n /**\n * Hook called when the current suggested query changes as the user navigates the list of suggestions.\n * This is used for instant results, which are rendered based on the current suggested query.\n * @param q The new current suggested query.\n */\n onSuggestedQueryChange?(q: string): Promise<unknown>;\n}\n\ninterface SearchBoxProps {\n getSearchBoxValue: () => string;\n updateQuery: (suggestedQuery: string) => void;\n getSuggestionTimeout: () => number;\n getNumberOfSuggestionsToDisplay: () => number;\n getSuggestionDelay: () => number;\n getLogger: () => Pick<typeof console, 'warn'>;\n getHost: () => HTMLElement;\n}\n\nexport class SuggestionManager<SearchBoxController> {\n public suggestions: SearchBoxSuggestions[] = [];\n public leftSuggestionElements: SearchBoxSuggestionElement[] = [];\n public rightSuggestionElements: SearchBoxSuggestionElement[] = [];\n public leftPanel: HTMLElement | undefined = undefined;\n public rightPanel: HTMLElement | undefined = undefined;\n public triggerSuggestions: () => Promise<void>;\n public activeDescendant = '';\n public suggestedQuery = '';\n public keyboardActiveDescendant = '';\n\n private queryDataAttribute = 'data-query';\n private suggestionEvents: SearchBoxSuggestionsEvent<SearchBoxController>[] =\n [];\n\n private previousActiveDescendantElement: HTMLElement | null = null;\n private leftSuggestions: SearchBoxSuggestions[] = [];\n private rightSuggestions: SearchBoxSuggestions[] = [];\n\n constructor(private ownerSearchBoxProps: SearchBoxProps) {\n this.triggerSuggestions = debounce(\n () => this.executeQuerySuggestion(),\n this.ownerSearchBoxProps.getSuggestionDelay()\n );\n }\n\n public get partialSuggestionBindings(): Pick<\n SearchBoxSuggestionsBindings<SearchBoxController>,\n | 'suggestedQuery'\n | 'clearSuggestions'\n | 'triggerSuggestions'\n | 'getSuggestions'\n | 'getSuggestionElements'\n > {\n return {\n suggestedQuery: () => this.suggestedQuery,\n clearSuggestions: () => this.clearSuggestions(),\n triggerSuggestions: () => this.triggerSuggestions(),\n getSuggestions: () => this.suggestions,\n getSuggestionElements: () => this.allSuggestionElements,\n };\n }\n\n public get activeDescendantElement(): HTMLElement | null {\n if (!this.hasActiveDescendant) {\n return null;\n }\n\n return (\n this.leftPanel?.querySelector(`#${this.activeDescendant}`) ||\n this.rightPanel?.querySelector(`#${this.activeDescendant}`) ||\n null\n );\n }\n\n public onSubmit() {\n this.clickOnActiveElement();\n this.clearSuggestions();\n }\n\n public updateActiveDescendant(id = '') {\n this.activeDescendant = id;\n forceUpdate(this.ownerSearchBoxProps.getHost());\n }\n\n public updateKeyboardActiveDescendant(id = '') {\n this.keyboardActiveDescendant = id;\n }\n\n public clickOnActiveElement() {\n this.activeDescendantElement?.click();\n this.updateActiveDescendant();\n }\n\n public isRightPanelInFocus() {\n if (\n isNullOrUndefined(this.panelInFocus) ||\n isNullOrUndefined(this.rightPanel)\n ) {\n return false;\n }\n\n return this.panelInFocus === this.rightPanel;\n }\n\n public initializeSuggestions(\n bindings: SearchBoxSuggestionsBindings<SearchBoxController>\n ) {\n this.suggestions = this.suggestionEvents.map((event) => event(bindings));\n }\n\n public registerSuggestionsFromEvent(\n event: CustomEvent<SearchBoxSuggestionsEvent<SearchBoxController>>,\n bindings: SearchBoxSuggestionsBindings<SearchBoxController>\n ) {\n event.preventDefault();\n event.stopPropagation();\n this.suggestionEvents.push(event.detail);\n this.suggestions.push(event.detail(bindings));\n }\n\n public registerSuggestions(suggestions: SearchBoxSuggestions) {\n this.suggestions.push(suggestions);\n }\n\n public get isDoubleList() {\n return Boolean(\n this.leftSuggestionElements.length && this.rightSuggestionElements.length\n );\n }\n\n public focusPanel(side: 'left' | 'right') {\n const panel = side === 'left' ? this.leftPanel : this.rightPanel;\n\n if (this.panelInFocus === panel) {\n return;\n }\n if (panel?.firstElementChild) {\n const panelHasActiveDescendant =\n this.previousActiveDescendantElement &&\n panel.contains(this.previousActiveDescendantElement);\n const newValue = panelHasActiveDescendant\n ? this.previousActiveDescendantElement!\n : (panel.firstElementChild as HTMLElement);\n this.updateDescendants(newValue.id);\n }\n }\n\n public clearSuggestions() {\n this.clearSuggestionElements();\n this.updateActiveDescendant();\n }\n\n public async focusNextValue() {\n if (!this.hasSuggestions || !this.nextOrFirstValue) {\n return;\n }\n\n await this.focusValue(this.nextOrFirstValue as HTMLElement);\n }\n\n public async focusValue(value: HTMLElement) {\n this.updateKeyboardActiveDescendant(value.id);\n this.updateActiveDescendant(value.id);\n this.scrollActiveDescendantIntoView();\n await this.updateQueryFromSuggestion();\n }\n\n public async onSuggestionMouseOver(\n item: SearchBoxSuggestionElement,\n side: 'left' | 'right',\n id: string\n ) {\n const thisPanel = side === 'left' ? this.leftPanel : this.rightPanel;\n // When hovering, always reset the keyboard active descendant\n this.updateKeyboardActiveDescendant();\n if (this.panelInFocus === thisPanel) {\n this.updateActiveDescendant(id);\n } else {\n this.updateDescendants(id);\n }\n if (item.query) {\n await this.updateSuggestedQuery(item.query);\n }\n }\n\n public async onSuggestionClick(item: SearchBoxSuggestionElement, e: Event) {\n if (item.query) {\n this.clearSuggestions();\n await this.updateOwnerSearchboxQuery(item.query);\n }\n item.onSelect?.(e);\n }\n\n public get hasSuggestions() {\n return !!this.allSuggestionElements.length;\n }\n\n public get allSuggestionElements() {\n return [...this.leftSuggestionElements, ...this.rightSuggestionElements];\n }\n\n public async focusPreviousValue() {\n if (this.firstValue === this.activeDescendantElement) {\n this.updateKeyboardActiveDescendant();\n this.updateActiveDescendant();\n return;\n }\n\n if (!this.hasSuggestions || !this.previousOrLastValue) {\n return;\n }\n\n await this.focusValue(this.previousOrLastValue as HTMLElement);\n }\n\n public get hasActiveDescendant() {\n return this.activeDescendant !== '';\n }\n\n private async executeQuerySuggestion() {\n this.updateActiveDescendant();\n const settled = await Promise.allSettled(\n this.suggestions.map((suggestion) =>\n promiseTimeout(\n suggestion.onInput ? suggestion.onInput() : Promise.resolve(),\n this.ownerSearchBoxProps.getSuggestionTimeout()\n )\n )\n );\n\n const fulfilledSuggestions: SearchBoxSuggestions[] = [];\n\n settled.forEach((prom, j) => {\n if (prom.status === 'fulfilled') {\n fulfilledSuggestions.push(this.suggestions[j]);\n } else {\n this.ownerSearchBoxProps\n .getLogger()\n .warn(\n 'Some query suggestions are not being shown because the promise timed out.'\n );\n }\n });\n\n const splitSuggestions = (side: 'left' | 'right', isDefault = false) =>\n fulfilledSuggestions\n .filter(\n (suggestion) =>\n suggestion.panel === side || (!suggestion.panel && isDefault)\n )\n .sort(this.sortSuggestions);\n\n this.leftSuggestions = splitSuggestions('left', true);\n this.leftSuggestionElements = this.getAndFilterLeftSuggestionElements();\n\n this.rightSuggestions = splitSuggestions('right');\n this.rightSuggestionElements = this.getSuggestionElements(\n this.rightSuggestions\n );\n\n const defaultSuggestedQuery =\n this.allSuggestionElements.find(elementHasQuery)?.query || '';\n\n await this.updateSuggestedQuery(defaultSuggestedQuery);\n }\n\n private get lastValue() {\n return this.panelInFocus?.lastElementChild;\n }\n\n private get previousOrLastValue() {\n if (!this.hasActiveDescendant) {\n return this.lastValue?.firstChild;\n }\n\n const parentOfActiveDescendant =\n this.activeDescendantElement?.parentElement;\n return (\n parentOfActiveDescendant?.previousElementSibling?.firstChild ||\n this.firstValue?.firstChild\n );\n }\n\n private sortSuggestions(a: SearchBoxSuggestions, b: SearchBoxSuggestions) {\n return a.position - b.position;\n }\n\n private get nextOrFirstValue() {\n if (!this.hasActiveDescendant) {\n return this.firstValue?.firstChild;\n }\n\n const parentOfActiveDescendant =\n this.activeDescendantElement?.parentElement;\n return (\n parentOfActiveDescendant?.nextElementSibling?.firstChild ||\n this.firstValue?.firstChild\n );\n }\n\n private get firstValue() {\n return this.panelInFocus?.firstElementChild;\n }\n\n private get panelInFocus() {\n if (this.leftPanel?.contains(this.activeDescendantElement)) {\n return this.leftPanel;\n }\n if (this.rightPanel?.contains(this.activeDescendantElement)) {\n return this.rightPanel;\n }\n return this.leftPanel || this.rightPanel;\n }\n\n private scrollActiveDescendantIntoView() {\n this.activeDescendantElement?.scrollIntoView({\n block: 'nearest',\n });\n }\n\n private async updateQueryFromSuggestion() {\n const suggestedQuery = this.activeDescendantElement?.getAttribute(\n this.queryDataAttribute\n );\n await this.updateOwnerSearchboxQuery(suggestedQuery || '');\n }\n\n private async updateOwnerSearchboxQuery(query: string) {\n if (query && this.ownerSearchBoxProps.getSearchBoxValue() !== query) {\n this.ownerSearchBoxProps.updateQuery(query);\n await this.updateSuggestedQuery(query);\n }\n }\n\n private async updateSuggestedQuery(suggestedQuery: string) {\n await Promise.allSettled(\n this.suggestions.map((suggestion) =>\n promiseTimeout(\n suggestion.onSuggestedQueryChange\n ? suggestion.onSuggestedQueryChange(suggestedQuery)\n : Promise.resolve(),\n this.ownerSearchBoxProps.getSuggestionTimeout()\n )\n )\n );\n this.suggestedQuery = suggestedQuery;\n this.updateSuggestionElements(suggestedQuery);\n forceUpdate(this.ownerSearchBoxProps.getHost());\n }\n\n private updateSuggestionElements(query: string) {\n if (!this.isPanelInFocus(this.leftPanel, query)) {\n this.leftSuggestionElements = this.getAndFilterLeftSuggestionElements();\n }\n\n if (!this.isPanelInFocus(this.rightPanel, query)) {\n this.rightSuggestionElements = this.getSuggestionElements(\n this.rightSuggestions\n );\n }\n }\n\n public forceUpdate() {\n this.updateSuggestionElements(this.suggestedQuery);\n forceUpdate(this.ownerSearchBoxProps.getHost());\n }\n\n private isPanelInFocus(\n panel: HTMLElement | undefined,\n query: string\n ): boolean {\n if (!this.activeDescendantElement) {\n return false;\n }\n\n if (query) {\n const escaped = DOMPurify.sanitize(query);\n return !!panel?.querySelector(\n `[${this.queryDataAttribute}=\"${CSS.escape(escaped)}\"]`\n );\n }\n\n return this.activeDescendantElement?.closest('ul') === panel;\n }\n\n private getAndFilterLeftSuggestionElements() {\n const suggestionElements = this.getSuggestionElements(this.leftSuggestions);\n const filterOnDuplicate = new Set();\n\n const out = suggestionElements.filter((suggestionElement) => {\n if (isNullOrUndefined(suggestionElement.query)) {\n return true;\n }\n if (filterOnDuplicate.has(suggestionElement.query)) {\n return false;\n } else {\n filterOnDuplicate.add(suggestionElement.query);\n return true;\n }\n });\n\n return out;\n }\n\n private getSuggestionElements(suggestions: SearchBoxSuggestions[]) {\n const elements = suggestions.flatMap((suggestion) =>\n suggestion.renderItems()\n );\n\n const max =\n this.ownerSearchBoxProps.getNumberOfSuggestionsToDisplay() +\n elements.filter(elementHasNoQuery).length;\n\n return elements.slice(0, max);\n }\n\n private updateDescendants(activeDescendant = '') {\n const newPrevDescendantElement = this.activeDescendantElement;\n this.previousActiveDescendantElement = newPrevDescendantElement;\n this.updateActiveDescendant(activeDescendant);\n }\n\n private clearSuggestionElements() {\n this.leftSuggestionElements = [];\n this.rightSuggestionElements = [];\n }\n}\n"],"version":3}
@@ -1,2 +1,2 @@
1
1
  export const headlessVersion = '3.31.2';
2
- export const atomicVersion = '3.35.0-pre.25e9237b66';
2
+ export const atomicVersion = '3.35.0-pre.2a8da8ee82';
@@ -2,7 +2,6 @@ import { type BreadcrumbManager, type BreadcrumbManagerState, type Context, type
2
2
  import { type CSSResultGroup, LitElement } from 'lit';
3
3
  import type { CommerceBindings } from "../atomic-commerce-interface/atomic-commerce-interface";
4
4
  import type { InitializableComponent } from "../../../decorators/types";
5
- import { AriaLiveRegionController } from "../../../utils/accessibility-utils";
6
5
  /**
7
6
  * The `atomic-commerce-breadbox` component creates breadcrumbs that display a summary of the currently active facet values.
8
7
  *
@@ -37,7 +36,6 @@ export declare class AtomicCommerceBreadbox extends LitElement implements Initia
37
36
  error: Error;
38
37
  private isCollapsed;
39
38
  private showMoreText;
40
- protected breadboxAriaMessage: AriaLiveRegionController;
41
39
  /**
42
40
  * This prop allows you to control the display depth
43
41
  * of the path by specifying the number of parent or ancestor
@@ -139,7 +139,6 @@ export declare class AtomicCommerceSearchBox extends LitElement implements Initi
139
139
  private renderSuggestion;
140
140
  private renderSlotContent;
141
141
  render(): import("lit-html").TemplateResult<1>;
142
- private announceClearSearchBoxToScreenReader;
143
142
  }
144
143
  declare global {
145
144
  interface HTMLElementTagNameMap {
@@ -1,7 +1,6 @@
1
1
  import { type SearchBox } from '@coveo/headless/commerce';
2
2
  import { LitElement } from 'lit';
3
3
  import type { SearchBoxSuggestionsComponent } from "../../../decorators/types";
4
- import { AriaLiveRegionController } from "../../../utils/accessibility-utils";
5
4
  import type { SearchBoxSuggestions, SearchBoxSuggestionsBindings } from '../../common/suggestions/suggestions-types';
6
5
  import type { CommerceBindings } from '../atomic-commerce-interface/atomic-commerce-interface';
7
6
  /**
@@ -28,7 +27,6 @@ export declare class AtomicCommerceSearchBoxRecentQueries extends LitElement imp
28
27
  * The maximum number of suggestions to display initially, when the input field is empty.
29
28
  */
30
29
  maxWithoutQuery?: number;
31
- protected searchBoxAriaMessage: AriaLiveRegionController;
32
30
  connectedCallback(): void;
33
31
  initialize(): SearchBoxSuggestions;
34
32
  private retrieveLocalStorage;
@@ -2,10 +2,10 @@ import type { InteractiveProduct, Product } from '@coveo/headless/commerce';
2
2
  import { type CSSResultGroup, LitElement } from 'lit';
3
3
  import type { CommerceStore } from "../atomic-commerce-interface/store";
4
4
  import type { CommerceRecommendationStore } from "../atomic-commerce-recommendation-interface/store";
5
+ import type { InteractiveProductContextEvent, ProductContextEvent } from "../product-template-component-utils/context/product-context-controller";
5
6
  import type { DisplayConfig } from "../../common/item-list/context/item-display-config-context-controller";
6
7
  import { type ItemRenderingFunction } from "../../common/item-list/item-list-common";
7
8
  import type { ItemDisplayDensity, ItemDisplayImageSize, ItemDisplayLayout } from "../../common/layout/display-options";
8
- import type { InteractiveProductContextEvent, ProductContextEvent } from "../../../decorators/commerce/product-template-decorators";
9
9
  declare const AtomicProduct_base: typeof LitElement;
10
10
  /**
11
11
  * The `atomic-product` component is used internally by the `atomic-commerce-product-list` and `atomic-commerce-recommendation-list` components.
@@ -0,0 +1,12 @@
1
+ import type { Product } from '@coveo/headless/commerce';
2
+ /**
3
+ * Retrieves `Product` on a rendered `atomic-product`.
4
+ *
5
+ * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.
6
+ *
7
+ * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).
8
+ *
9
+ * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.
10
+ * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.
11
+ */
12
+ export declare function fetchProductContext<T extends Product>(element: Element): Promise<T>;
@@ -0,0 +1,27 @@
1
+ import type { InteractiveProduct } from '@coveo/headless/commerce';
2
+ import type { LitElement } from 'lit';
3
+ import { InteractiveItemContextController } from "../../../common/item-list/context/interactive-item-context-controller";
4
+ /**
5
+ * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.
6
+ *
7
+ * @param host - The Lit component instance
8
+ * @returns InteractiveItemContextController instance
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @customElement('my-interactive-product-component')
13
+ * export class MyInteractiveProductComponent extends LitElement {
14
+ * private interactiveProductController = createInteractiveProductContextController(this);
15
+ *
16
+ * @state() product!: Product;
17
+ *
18
+ * render() {
19
+ * this.product = this.interactiveProductController.interactiveItem;
20
+ * return html`<div>${this.product?.ec_name}</div>`;
21
+ * }
22
+ * }
23
+ * ```
24
+ */
25
+ export declare function createInteractiveProductContextController(host: LitElement & {
26
+ error: Error;
27
+ }): InteractiveItemContextController<InteractiveProduct>;
@@ -0,0 +1,33 @@
1
+ import type { InteractiveProduct, Product } from '@coveo/headless/commerce';
2
+ import type { LitElement } from 'lit';
3
+ import type { InteractiveItemContextEvent } from "../../../common/item-list/context/interactive-item-context-controller";
4
+ import { ItemContextController, type ItemContextEvent } from "../../../common/item-list/context/item-context-controller";
5
+ /**
6
+ * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.
7
+ *
8
+ * @param host - The Lit component instance
9
+ * @param options - Configuration options
10
+ * @returns ItemContextController instance configured for atomic-product
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * @customElement('my-product-component')
15
+ * export class MyProductComponent extends LitElement {
16
+ * private productController = createProductContextController(this);
17
+ *
18
+ * @state() product!: Product;
19
+ *
20
+ * render() {
21
+ * this.product = this.productController.item;
22
+ * return html`<div>${this.product?.ec_name}</div>`;
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export declare function createProductContextController(host: LitElement & {
28
+ error: Error | null;
29
+ }, options?: {
30
+ folded?: boolean;
31
+ }): ItemContextController<Product>;
32
+ export type ProductContextEvent<T = Product> = ItemContextEvent<T>;
33
+ export type InteractiveProductContextEvent<T extends InteractiveProduct = InteractiveProduct> = InteractiveItemContextEvent<T>;
@@ -9,6 +9,6 @@ import { Product } from '@coveo/headless/commerce';
9
9
  * @param element - The element that the event is dispatched to, which must be the child of a rendered "atomic-product".
10
10
  * @returns A promise that resolves on initialization of the parent "atomic-product" element, or rejects when there is no parent "atomic-product" element.
11
11
  *
12
- * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \@/src/decorators/commerce/product-template-decorators.ts
12
+ * @deprecated should only be used for Stencil components. For Lit components, use `fetchProductContext` from \@/src/components/commerce/product-template-component-utils/context/fetch-product-context.ts
13
13
  */
14
14
  export declare function productContext<T extends Product>(element: Element): Promise<T>;
@@ -1,5 +1,4 @@
1
1
  import type { i18n } from 'i18next';
2
- import type { AriaLiveRegionController } from "../../../utils/accessibility-utils";
3
2
  import type { FunctionalComponentWithChildren } from "../../../utils/functional-component-utils";
4
3
  import type { Breadcrumb } from './breadcrumb-types';
5
4
  export interface BreadcrumbButtonProps {
@@ -8,6 +7,5 @@ export interface BreadcrumbButtonProps {
8
7
  pathLimit: number;
9
8
  breadcrumb: Breadcrumb;
10
9
  i18n: i18n;
11
- ariaController: AriaLiveRegionController;
12
10
  }
13
11
  export declare const renderBreadcrumbButton: FunctionalComponentWithChildren<BreadcrumbButtonProps>;
@@ -1,8 +1,8 @@
1
1
  import { Result } from '@coveo/headless';
2
2
  import { EventEmitter } from '../../../stencil-public-runtime';
3
3
  import { InitializableComponent } from '../../../utils/initialization-utils';
4
- import { ResultContextEvent } from '../../search/result-template-components/result-template-decorators';
5
4
  import { AnyBindings } from '../interface/bindings';
5
+ import { ResultContextEvent } from "../../search/result-template-component-utils/context/stencil-result-template-decorators";
6
6
  /**
7
7
  * @part source-url
8
8
  * @part source-title
@@ -3,7 +3,7 @@ import { DisplayConfig } from '../../common/item-list/stencil-item-decorators';
3
3
  import { ItemRenderingFunction } from '../../common/item-list/stencil-item-list-common';
4
4
  import { ItemDisplayDensity, ItemDisplayImageSize, ItemDisplayLayout } from '../../common/layout/display-options';
5
5
  import { SearchStore } from '../atomic-search-interface/store';
6
- import { InteractiveResultContextEvent, ResultContextEvent } from '../result-template-components/result-template-decorators';
6
+ import { InteractiveResultContextEvent, ResultContextEvent } from "../result-template-component-utils/context/stencil-result-template-decorators";
7
7
  /**
8
8
  * The `atomic-result` component is used internally by the `atomic-result-list` component.
9
9
  */
@@ -160,7 +160,6 @@ export declare class AtomicSearchBox implements InitializableComponent<Bindings>
160
160
  private isSearchDisabledForEndUser;
161
161
  private getSearchInputLabel;
162
162
  private announceNewActiveSuggestionToScreenReader;
163
- private announceClearSearchBoxToScreenReader;
164
163
  private announceNewSuggestionsToScreenReader;
165
164
  private renderSlotContent;
166
165
  render(): any;
@@ -1,9 +1,13 @@
1
+ import { type SearchBox } from '@coveo/headless';
2
+ import { LitElement } from 'lit';
3
+ import type { SearchBoxSuggestions, SearchBoxSuggestionsBindings } from "../../common/suggestions/suggestions-types";
4
+ import type { Bindings } from "../atomic-search-interface/interfaces";
5
+ import type { SearchBoxSuggestionsComponent } from "../../../decorators/types";
1
6
  /**
2
7
  * The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.
3
8
  */
4
- export declare class AtomicSearchBoxQuerySuggestions {
5
- private bindings;
6
- private host;
9
+ export declare class AtomicSearchBoxQuerySuggestions extends LitElement implements SearchBoxSuggestionsComponent<Bindings> {
10
+ bindings: SearchBoxSuggestionsBindings<SearchBox, Bindings>;
7
11
  error: Error;
8
12
  /**
9
13
  * The SVG icon to display.
@@ -16,14 +20,19 @@ export declare class AtomicSearchBoxQuerySuggestions {
16
20
  /**
17
21
  * The maximum number of suggestions that will be displayed if the user has typed something into the input field.
18
22
  */
19
- maxWithQuery?: number;
23
+ maxWithQuery: number;
20
24
  /**
21
25
  * The maximum number of suggestions that will be displayed initially when the input field is empty.
22
26
  */
23
27
  maxWithoutQuery?: number;
24
- componentWillLoad(): void;
25
- private initialize;
28
+ connectedCallback(): void;
29
+ initialize(): SearchBoxSuggestions;
26
30
  private renderItems;
27
31
  private renderItem;
28
- render(): any;
32
+ render(): import("lit-html").TemplateResult<1>;
33
+ }
34
+ declare global {
35
+ interface HTMLElementTagNameMap {
36
+ 'atomic-search-box-query-suggestions': AtomicSearchBoxQuerySuggestions;
37
+ }
29
38
  }
@@ -2,6 +2,7 @@ export { AtomicPager } from './atomic-pager/atomic-pager.js';
2
2
  export { AtomicQuerySummary } from './atomic-query-summary/atomic-query-summary.js';
3
3
  export { AtomicRelevanceInspector } from './atomic-relevance-inspector/atomic-relevance-inspector.js';
4
4
  export { AtomicResultsPerPage } from './atomic-results-per-page/atomic-results-per-page.js';
5
+ export { AtomicSearchBoxQuerySuggestions } from './atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js';
5
6
  export { AtomicSearchBoxRecentQueries } from './atomic-search-box-recent-queries/atomic-search-box-recent-queries.js';
6
7
  export { AtomicSearchInterface } from './atomic-search-interface/atomic-search-interface.js';
7
8
  export { AtomicSearchLayout } from './atomic-search-layout/atomic-search-layout.js';
@@ -0,0 +1,8 @@
1
+ import type { FoldedResult, Result } from '@coveo/headless';
2
+ /**
3
+ * Retrieves `Result` on a rendered `atomic-result`.
4
+ *
5
+ * @param element - The element that the event is dispatched to
6
+ * @returns A promise that resolves on initialization of the parent `atomic-result` element, or rejects if missing
7
+ */
8
+ export declare function fetchResultContext<T extends Result | FoldedResult = Result>(element: Element): Promise<T>;
@@ -0,0 +1,12 @@
1
+ import type { InteractiveResult } from '@coveo/headless';
2
+ import type { LitElement } from 'lit';
3
+ import { InteractiveItemContextController } from "../../../common/item-list/context/interactive-item-context-controller";
4
+ /**
5
+ * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive result context in result template components.
6
+ *
7
+ * @param host - The Lit component instance
8
+ * @returns InteractiveItemContextController instance
9
+ */
10
+ export declare function createInteractiveResultContextController(host: LitElement & {
11
+ error: Error;
12
+ }): InteractiveItemContextController<InteractiveResult>;
@@ -0,0 +1,18 @@
1
+ import type { FoldedResult, InteractiveResult, Result } from '@coveo/headless';
2
+ import type { LitElement } from 'lit';
3
+ import type { InteractiveItemContextEvent } from "../../../common/item-list/context/interactive-item-context-controller";
4
+ import { ItemContextController, type ItemContextEvent } from "../../../common/item-list/context/item-context-controller";
5
+ /**
6
+ * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing result context in result template components.
7
+ *
8
+ * @param host - The Lit component instance
9
+ * @param options - Configuration options
10
+ * @returns ItemContextController instance configured for atomic-result
11
+ */
12
+ export declare function createResultContextController(host: LitElement & {
13
+ error: Error | null;
14
+ }, options?: {
15
+ folded?: boolean;
16
+ }): ItemContextController<Result | FoldedResult>;
17
+ export type ResultContextEvent<T = Result | FoldedResult> = ItemContextEvent<T>;
18
+ export type InteractiveResultContextEvent<T extends InteractiveResult = InteractiveResult> = InteractiveItemContextEvent<T>;
@@ -1,5 +1,5 @@
1
1
  import { FoldedResult, Result } from '@coveo/headless';
2
- import { InteractiveItemContextEvent, ItemContextEvent } from '../../common/item-list/stencil-item-decorators';
2
+ import { InteractiveItemContextEvent, ItemContextEvent } from "../../../common/item-list/stencil-item-decorators";
3
3
  /**
4
4
  * A [StencilJS property decorator](https://stenciljs.com/) to be used for result template components.
5
5
  * This allows the Stencil component to fetch the current result from its rendered parent, the `atomic-result` component.
@@ -8,6 +8,8 @@ import { InteractiveItemContextEvent, ItemContextEvent } from '../../common/item
8
8
  * @ResultContext() private result!: Result;
9
9
  *
10
10
  * For more information and examples, view the "Utilities" section of the readme.
11
+ *
12
+ * @deprecated should only be used for Stencil components. For Lit components, use `createResultContextController` from \@/src/components/search/result-template-component-utils/context/result-context-controller.ts
11
13
  */
12
14
  export declare function ResultContext(opts?: {
13
15
  folded: boolean;
@@ -22,7 +24,9 @@ export type InteractiveResultContextEvent = InteractiveItemContextEvent;
22
24
  *
23
25
  * You should use the method in the [connectedCallback lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).
24
26
  *
25
- * @param element The element that the event is dispatched to, which must be the child of a rendered "atomic-result".
27
+ * @param element The element that the event is dispatched to, which must be the child of a rendered "atomic-result" element.
26
28
  * @returns A promise that resolves on initialization of the parent "atomic-result" element, or rejects when there is no parent "atomic-result" element.
29
+ *
30
+ * @deprecated should only be used for Stencil components. For Lit components, use `fetchResultContext` from \@/src/components/search/result-template-component-utils/context/fetch-result-context.ts
27
31
  */
28
32
  export declare function resultContext<T extends Result | FoldedResult = Result>(element: Element): Promise<T>;
@@ -2325,23 +2325,6 @@ export namespace Components {
2325
2325
  */
2326
2326
  "setRenderFunction": (resultRenderingFunction: ItemRenderingFunction) => Promise<void>;
2327
2327
  }
2328
- /**
2329
- * The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.
2330
- */
2331
- interface AtomicSearchBoxQuerySuggestions {
2332
- /**
2333
- * The SVG icon to display. - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location. - Use a value that starts with `assets://`, to display an icon from the Atomic package. - Use a stringified SVG to display it directly.
2334
- */
2335
- "icon"?: string;
2336
- /**
2337
- * The maximum number of suggestions that will be displayed if the user has typed something into the input field.
2338
- */
2339
- "maxWithQuery"?: number;
2340
- /**
2341
- * The maximum number of suggestions that will be displayed initially when the input field is empty.
2342
- */
2343
- "maxWithoutQuery"?: number;
2344
- }
2345
2328
  /**
2346
2329
  * The `atomic-segmented-facet` displays a horizontal facet of the results for the current query.
2347
2330
  */
@@ -3955,15 +3938,6 @@ declare global {
3955
3938
  prototype: HTMLAtomicSearchBoxInstantResultsElement;
3956
3939
  new (): HTMLAtomicSearchBoxInstantResultsElement;
3957
3940
  };
3958
- /**
3959
- * The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.
3960
- */
3961
- interface HTMLAtomicSearchBoxQuerySuggestionsElement extends Components.AtomicSearchBoxQuerySuggestions, HTMLStencilElement {
3962
- }
3963
- var HTMLAtomicSearchBoxQuerySuggestionsElement: {
3964
- prototype: HTMLAtomicSearchBoxQuerySuggestionsElement;
3965
- new (): HTMLAtomicSearchBoxQuerySuggestionsElement;
3966
- };
3967
3941
  /**
3968
3942
  * The `atomic-segmented-facet` displays a horizontal facet of the results for the current query.
3969
3943
  */
@@ -4355,7 +4329,6 @@ declare global {
4355
4329
  "atomic-result-timespan": HTMLAtomicResultTimespanElement;
4356
4330
  "atomic-search-box": HTMLAtomicSearchBoxElement;
4357
4331
  "atomic-search-box-instant-results": HTMLAtomicSearchBoxInstantResultsElement;
4358
- "atomic-search-box-query-suggestions": HTMLAtomicSearchBoxQuerySuggestionsElement;
4359
4332
  "atomic-segmented-facet": HTMLAtomicSegmentedFacetElement;
4360
4333
  "atomic-segmented-facet-scrollable": HTMLAtomicSegmentedFacetScrollableElement;
4361
4334
  "atomic-smart-snippet": HTMLAtomicSmartSnippetElement;
@@ -6548,23 +6521,6 @@ declare namespace LocalJSX {
6548
6521
  */
6549
6522
  "maxResultsPerQuery"?: number;
6550
6523
  }
6551
- /**
6552
- * The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.
6553
- */
6554
- interface AtomicSearchBoxQuerySuggestions {
6555
- /**
6556
- * The SVG icon to display. - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location. - Use a value that starts with `assets://`, to display an icon from the Atomic package. - Use a stringified SVG to display it directly.
6557
- */
6558
- "icon"?: string;
6559
- /**
6560
- * The maximum number of suggestions that will be displayed if the user has typed something into the input field.
6561
- */
6562
- "maxWithQuery"?: number;
6563
- /**
6564
- * The maximum number of suggestions that will be displayed initially when the input field is empty.
6565
- */
6566
- "maxWithoutQuery"?: number;
6567
- }
6568
6524
  /**
6569
6525
  * The `atomic-segmented-facet` displays a horizontal facet of the results for the current query.
6570
6526
  */
@@ -7067,7 +7023,6 @@ declare namespace LocalJSX {
7067
7023
  "atomic-result-timespan": AtomicResultTimespan;
7068
7024
  "atomic-search-box": AtomicSearchBox;
7069
7025
  "atomic-search-box-instant-results": AtomicSearchBoxInstantResults;
7070
- "atomic-search-box-query-suggestions": AtomicSearchBoxQuerySuggestions;
7071
7026
  "atomic-segmented-facet": AtomicSegmentedFacet;
7072
7027
  "atomic-segmented-facet-scrollable": AtomicSegmentedFacetScrollable;
7073
7028
  "atomic-smart-snippet": AtomicSmartSnippet;
@@ -7570,10 +7525,6 @@ declare module "@stencil/core" {
7570
7525
  * This component is not supported on mobile.
7571
7526
  */
7572
7527
  "atomic-search-box-instant-results": LocalJSX.AtomicSearchBoxInstantResults & JSXBase.HTMLAttributes<HTMLAtomicSearchBoxInstantResultsElement>;
7573
- /**
7574
- * The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.
7575
- */
7576
- "atomic-search-box-query-suggestions": LocalJSX.AtomicSearchBoxQuerySuggestions & JSXBase.HTMLAttributes<HTMLAtomicSearchBoxQuerySuggestionsElement>;
7577
7528
  /**
7578
7529
  * The `atomic-segmented-facet` displays a horizontal facet of the results for the current query.
7579
7530
  */
@@ -12,7 +12,7 @@ export interface HierarchicalPathProps {
12
12
  }
13
13
  declare class HierarchicalPathDirective extends Directive {
14
14
  constructor(partInfo: PartInfo);
15
- render(props: HierarchicalPathProps): string | TemplateResult<1>[] | TemplateResult;
15
+ render(props: HierarchicalPathProps): string | TemplateResult | TemplateResult<1>[];
16
16
  private getEllipsedPath;
17
17
  }
18
18
  export declare const hierarchicalPath: (props: HierarchicalPathProps) => import("lit-html/directive.js").DirectiveResult<typeof HierarchicalPathDirective>;