@coveo/atomic 3.33.8-pre.e22cb89139 → 3.33.8-pre.e3728c3548

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 (520) 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/autoloader/index.cjs.js +2 -2
  4. package/dist/atomic/autoloader/index.esm.js +2 -2
  5. package/dist/atomic/components/_index.d.ts +0 -2
  6. package/dist/atomic/components/_index.js +1 -3
  7. package/dist/atomic/components/analytics-config.js +1 -1
  8. package/dist/atomic/components/atomic-category-facet.js +1 -1
  9. package/dist/atomic/components/atomic-citation.js +1 -1
  10. package/dist/atomic/components/atomic-facet-manager.js +1 -1
  11. package/dist/atomic/components/atomic-facet.js +1 -1
  12. package/dist/atomic/components/atomic-format-currency.js +1 -1
  13. package/dist/atomic/components/atomic-format-number.js +1 -1
  14. package/dist/atomic/components/atomic-format-unit.js +1 -1
  15. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
  16. package/dist/atomic/components/atomic-html2.js +1 -1
  17. package/dist/atomic/components/atomic-insight-edit-toggle.js +1 -1
  18. package/dist/atomic/components/atomic-insight-facet.js +1 -1
  19. package/dist/atomic/components/atomic-insight-folded-result-list.js +1 -1
  20. package/dist/atomic/components/atomic-insight-full-search-button.js +1 -1
  21. package/dist/atomic/components/atomic-insight-history-toggle.js +1 -1
  22. package/dist/atomic/components/atomic-insight-interface.js +1 -1
  23. package/dist/atomic/components/atomic-insight-no-results.js +1 -1
  24. package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
  25. package/dist/atomic/components/atomic-insight-pager.js +3 -3
  26. package/dist/atomic/components/atomic-insight-query-error.js +1 -1
  27. package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
  28. package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
  29. package/dist/atomic/components/atomic-insight-result-action.js +1 -1
  30. package/dist/atomic/components/atomic-insight-result-attach-to-case-action.js +1 -1
  31. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
  32. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  33. package/dist/atomic/components/atomic-insight-result-list.js +1 -1
  34. package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
  35. package/dist/atomic/components/atomic-insight-result2.js +1 -1
  36. package/dist/atomic/components/atomic-insight-search-box.js +4 -3
  37. package/dist/atomic/components/atomic-insight-search-box.js.map +1 -1
  38. package/dist/atomic/components/atomic-insight-smart-snippet-feedback-modal2.js +2 -2
  39. package/dist/atomic/components/atomic-insight-tabs.js +1 -1
  40. package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
  41. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
  42. package/dist/atomic/components/atomic-ipx-body2.js +2 -2
  43. package/dist/atomic/components/atomic-ipx-button.js +2 -2
  44. package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
  45. package/dist/atomic/components/atomic-ipx-modal.js +2 -2
  46. package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
  47. package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
  48. package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
  49. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  50. package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
  51. package/dist/atomic/components/atomic-load-more-results.js +1 -1
  52. package/dist/atomic/components/atomic-no-results.js +1 -1
  53. package/dist/atomic/components/atomic-numeric-facet.js +2 -1
  54. package/dist/atomic/components/atomic-numeric-facet.js.map +1 -1
  55. package/dist/atomic/components/atomic-pager.js +3 -3
  56. package/dist/atomic/components/atomic-query-error.js +1 -1
  57. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  58. package/dist/atomic/components/atomic-quickview.js +1 -1
  59. package/dist/atomic/components/atomic-recs-error.js +1 -1
  60. package/dist/atomic/components/atomic-recs-interface.js +1 -1
  61. package/dist/atomic/components/atomic-recs-list.js +1 -1
  62. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  63. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  64. package/dist/atomic/components/atomic-relevance-inspector.js +46 -1
  65. package/dist/atomic/components/atomic-relevance-inspector.js.map +1 -1
  66. package/dist/atomic/components/atomic-result-children.js +1 -1
  67. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  68. package/dist/atomic/components/atomic-result-link.js +1 -1
  69. package/dist/atomic/components/atomic-result-list.js +1 -1
  70. package/dist/atomic/components/atomic-result-placeholder2.js +2 -2
  71. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  72. package/dist/atomic/components/atomic-search-box-instant-results.js +2 -2
  73. package/dist/atomic/components/atomic-search-box-instant-results.js.map +1 -1
  74. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +2 -2
  75. package/dist/atomic/components/atomic-search-box-query-suggestions2.js.map +1 -1
  76. package/dist/atomic/components/atomic-search-box-recent-queries2.js +2 -2
  77. package/dist/atomic/components/atomic-search-box-recent-queries2.js.map +1 -1
  78. package/dist/atomic/components/atomic-search-box.js +9 -5
  79. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  80. package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
  81. package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js +2 -2
  82. package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js +1 -1
  83. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  84. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  85. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  86. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  87. package/dist/atomic/components/atomic-stencil-facet-date-input.js +3 -3
  88. package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
  89. package/dist/atomic/components/atomic-suggestion-renderer2.js.map +1 -1
  90. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  91. package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +4 -1
  92. package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +2 -2
  93. package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +1 -1
  94. package/dist/atomic/components/components/commerce/atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.js +1 -1
  95. package/dist/atomic/components/components/commerce/atomic-commerce-search-box-query-suggestions/atomic-commerce-search-box-query-suggestions.js +1 -1
  96. package/dist/atomic/components/components/commerce/atomic-commerce-search-box-recent-queries/atomic-commerce-search-box-recent-queries.js +1 -1
  97. package/dist/atomic/components/components/common/layout/layout-styles-controller.js +1 -1
  98. package/dist/atomic/components/components/common/suggestions/suggestion-manager.js +1 -1
  99. package/dist/atomic/components/components/common/suggestions/{suggestions-events.js → suggestions-common.js} +18 -16
  100. package/dist/atomic/components/components/search/atomic-search-interface/analytics-config.js +57 -0
  101. package/dist/atomic/components/components/search/atomic-search-interface/atomic-search-interface.js +495 -0
  102. package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.js +20 -9
  103. package/dist/atomic/components/components/search/index.js +1 -0
  104. package/dist/atomic/components/components/search/lazy-index.js +1 -0
  105. package/dist/atomic/components/facet-number-input.js +2 -2
  106. package/dist/atomic/components/global/environment.js +1 -1
  107. package/dist/atomic/components/index.js.map +1 -1
  108. package/dist/atomic/components/stencil-query-suggestions.js.map +1 -1
  109. package/dist/atomic/components/stencil-suggestion-manager.js +2 -20
  110. package/dist/atomic/components/stencil-suggestion-manager.js.map +1 -1
  111. package/dist/atomic/components/{suggestions-events.js → suggestions-common.js} +20 -18
  112. package/dist/atomic/components/suggestions-common.js.map +1 -0
  113. package/dist/atomic/components/tab-button.js +1 -1
  114. package/dist/atomic/components/tab-popover.js +1 -1
  115. package/dist/atomic/index.esm.js +1 -1
  116. package/dist/atomic/index.esm.js.map +1 -1
  117. package/dist/atomic/{p-6329ff94.entry.js → p-004adbb8.entry.js} +2 -2
  118. package/dist/atomic/{p-3b20b011.entry.js → p-0610b3e7.entry.js} +2 -2
  119. package/dist/atomic/{p-ee6771f1.entry.js → p-07b6424c.entry.js} +2 -2
  120. package/dist/atomic/{p-7a625c7e.entry.js → p-094b61d4.entry.js} +2 -2
  121. package/dist/atomic/{p-83c9244a.entry.js → p-0e27d4f2.entry.js} +2 -2
  122. package/dist/atomic/{p-c126ee6b.entry.js → p-0e5dc57f.entry.js} +2 -2
  123. package/dist/atomic/p-0edea6f9.entry.js +2 -0
  124. package/dist/atomic/{p-20341936.entry.js → p-10b5e0f3.entry.js} +2 -2
  125. package/dist/atomic/{p-2ca352f4.entry.js → p-15406648.entry.js} +2 -2
  126. package/dist/atomic/{p-a3efa89e.entry.js → p-160553ce.entry.js} +2 -2
  127. package/dist/atomic/{p-5048c3b8.entry.js → p-1656f59a.entry.js} +2 -2
  128. package/dist/atomic/{p-fbfe913d.entry.js → p-1c6f7489.entry.js} +2 -2
  129. package/dist/atomic/p-1c6f7489.entry.js.map +1 -0
  130. package/dist/atomic/{p-78b70622.entry.js → p-25eabe15.entry.js} +2 -2
  131. package/dist/atomic/p-29fd6768.js +2 -0
  132. package/dist/atomic/p-29fd6768.js.map +1 -0
  133. package/dist/atomic/{p-de066001.entry.js → p-2a4e9425.entry.js} +2 -2
  134. package/dist/atomic/{p-75e00690.entry.js → p-33899ab5.entry.js} +2 -2
  135. package/dist/atomic/{p-7b899b57.entry.js → p-394c600f.entry.js} +2 -2
  136. package/dist/atomic/{p-76111230.entry.js → p-3a7f1dd7.entry.js} +2 -2
  137. package/dist/atomic/{p-a760d9f9.entry.js → p-3c823399.entry.js} +2 -2
  138. package/dist/atomic/{p-26a51a77.entry.js → p-3db62800.entry.js} +2 -2
  139. package/dist/atomic/p-3db62800.entry.js.map +1 -0
  140. package/dist/atomic/{p-021f01d6.entry.js → p-41c5d5fa.entry.js} +2 -2
  141. package/dist/atomic/{p-e23b3334.entry.js → p-441b1a7b.entry.js} +2 -2
  142. package/dist/atomic/{p-330e6e7c.entry.js → p-45840906.entry.js} +2 -2
  143. package/dist/atomic/{p-f22bcb8c.entry.js → p-4b4b2626.entry.js} +2 -2
  144. package/dist/atomic/p-6de44060.entry.js +2 -0
  145. package/dist/atomic/{p-fcf3f7d7.entry.js.map → p-6de44060.entry.js.map} +1 -1
  146. package/dist/atomic/{p-c1999888.entry.js → p-754909fe.entry.js} +2 -2
  147. package/dist/atomic/p-7601c3de.js +2 -0
  148. package/dist/atomic/p-7601c3de.js.map +1 -0
  149. package/dist/atomic/{p-811d6dcb.entry.js → p-780170e5.entry.js} +2 -2
  150. package/dist/atomic/{p-36fab158.entry.js → p-7a6468a7.entry.js} +2 -2
  151. package/dist/atomic/{p-3a2c900c.entry.js → p-7b1a3cab.entry.js} +2 -2
  152. package/dist/atomic/{p-d93adf52.entry.js → p-7d63bf7b.entry.js} +2 -2
  153. package/dist/atomic/{p-4b3d253b.entry.js → p-7dd3d72f.entry.js} +2 -2
  154. package/dist/atomic/{p-d364064c.entry.js → p-7f40e57d.entry.js} +2 -2
  155. package/dist/atomic/{p-c49cfa0c.entry.js → p-80683e4c.entry.js} +2 -2
  156. package/dist/atomic/{p-d785121d.entry.js → p-856e858c.entry.js} +2 -2
  157. package/dist/atomic/{p-b28011e6.entry.js → p-867fd04d.entry.js} +2 -2
  158. package/dist/atomic/{p-534b6a0a.entry.js → p-87c6c206.entry.js} +2 -2
  159. package/dist/atomic/{p-e162805d.entry.js → p-8a7a23b7.entry.js} +2 -2
  160. package/dist/atomic/{p-31f1e44e.entry.js → p-8bac9d25.entry.js} +2 -2
  161. package/dist/atomic/p-8bac9d25.entry.js.map +1 -0
  162. package/dist/atomic/{p-604c4085.entry.js → p-8df7270f.entry.js} +2 -2
  163. package/dist/atomic/{p-8256cd44.entry.js → p-9147b0db.entry.js} +2 -2
  164. package/dist/atomic/{p-aa2a81fd.entry.js → p-9349aa1a.entry.js} +2 -2
  165. package/dist/atomic/{p-37374964.entry.js → p-9727f36b.entry.js} +2 -2
  166. package/dist/atomic/p-97829295.entry.js +2 -0
  167. package/dist/atomic/{p-31aa052e.entry.js → p-97e42c43.entry.js} +2 -2
  168. package/dist/atomic/{p-3c8d109e.entry.js → p-9b241ca5.entry.js} +2 -2
  169. package/dist/atomic/{p-3c8d109e.entry.js.map → p-9b241ca5.entry.js.map} +1 -1
  170. package/dist/atomic/{p-93e29b24.entry.js → p-9b92b4e2.entry.js} +2 -2
  171. package/dist/atomic/{p-1ef658d8.entry.js → p-9d023f0b.entry.js} +2 -2
  172. package/dist/atomic/{p-40635c2d.entry.js → p-9e771351.entry.js} +2 -2
  173. package/dist/atomic/{p-d00a12e9.entry.js → p-a278ffde.entry.js} +2 -2
  174. package/dist/atomic/{p-d0f47b33.entry.js → p-a37fae7c.entry.js} +2 -2
  175. package/dist/atomic/p-a37fae7c.entry.js.map +1 -0
  176. package/dist/atomic/{p-035f8dc8.entry.js → p-a3fa6695.entry.js} +2 -2
  177. package/dist/atomic/{p-f0c2dfe8.entry.js → p-abb14108.entry.js} +2 -2
  178. package/dist/atomic/{p-52ba404c.entry.js → p-aed46103.entry.js} +2 -2
  179. package/dist/atomic/p-af93b44c.js.map +1 -1
  180. package/dist/atomic/{p-48f57fd8.entry.js → p-b0c50194.entry.js} +2 -2
  181. package/dist/atomic/{p-b0b17e21.entry.js → p-b4c34553.entry.js} +2 -2
  182. package/dist/atomic/{p-98c5b9b8.entry.js → p-b6377fb6.entry.js} +2 -2
  183. package/dist/atomic/{p-ea446721.entry.js → p-bd32625e.entry.js} +2 -2
  184. package/dist/atomic/{p-939eaaac.entry.js → p-bd99fcc1.entry.js} +2 -2
  185. package/dist/atomic/{p-99b8d52d.entry.js → p-bf49fed3.entry.js} +2 -2
  186. package/dist/atomic/{p-3f912e98.entry.js → p-c08f4ee6.entry.js} +2 -2
  187. package/dist/atomic/{p-7b0b9e9b.entry.js → p-c23a07f5.entry.js} +2 -2
  188. package/dist/atomic/p-c2b4b401.entry.js +2 -0
  189. package/dist/atomic/{p-a53c7821.entry.js → p-c538c8ac.entry.js} +2 -2
  190. package/dist/atomic/{p-43d708cb.entry.js → p-c9fe4f77.entry.js} +2 -2
  191. package/dist/atomic/{p-ae060711.entry.js → p-ce41c447.entry.js} +2 -2
  192. package/dist/atomic/{p-fa8b7c4c.entry.js → p-d4ad7336.entry.js} +2 -2
  193. package/dist/atomic/{p-627e1265.entry.js → p-d50c96c2.entry.js} +2 -2
  194. package/dist/atomic/{p-bc0d6d3d.entry.js → p-dee60597.entry.js} +2 -2
  195. package/dist/atomic/{p-b2ff1330.entry.js → p-e1c99e2e.entry.js} +2 -2
  196. package/dist/atomic/{p-6e6d686e.entry.js → p-e3af1bb4.entry.js} +2 -2
  197. package/dist/atomic/{p-7dfcd6af.entry.js → p-e6a7e7b2.entry.js} +2 -2
  198. package/dist/atomic/{p-fbb9b867.js → p-ef556803.js} +2 -2
  199. package/dist/atomic/{p-594488f2.entry.js → p-f0012580.entry.js} +2 -2
  200. package/dist/atomic/{p-877d35b1.entry.js → p-f4780315.entry.js} +2 -2
  201. package/dist/atomic/{p-fea7bf3b.entry.js → p-f936f55e.entry.js} +2 -2
  202. package/dist/atomic/{p-c88a3d2d.entry.js → p-fab8d5cb.entry.js} +2 -2
  203. package/dist/atomic/p-fab8d5cb.entry.js.map +1 -0
  204. package/dist/cjs/_index.cjs.js +2 -5
  205. package/dist/cjs/_loader.cjs.js +1 -1
  206. package/dist/cjs/{analytics-config-4f976193.js → analytics-config-f89cfeca.js} +2 -2
  207. package/dist/cjs/{analytics-config-4f976193.js.map → analytics-config-f89cfeca.js.map} +1 -1
  208. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  209. package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
  210. package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
  211. package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
  212. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  213. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  214. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  215. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  216. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +1 -1
  217. package/dist/cjs/atomic-html.cjs.entry.js +1 -1
  218. package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +1 -1
  219. package/dist/cjs/atomic-insight-facet.cjs.entry.js +1 -1
  220. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +1 -1
  221. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +1 -1
  222. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +1 -1
  223. package/dist/cjs/atomic-insight-interface.cjs.entry.js +2 -2
  224. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
  225. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +1 -1
  226. package/dist/cjs/atomic-insight-pager.cjs.entry.js +3 -3
  227. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +1 -1
  228. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +2 -2
  229. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
  230. package/dist/cjs/atomic-insight-result-action.cjs.entry.js +1 -1
  231. package/dist/cjs/atomic-insight-result-attach-to-case-action.cjs.entry.js +1 -1
  232. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
  233. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +1 -1
  234. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +1 -1
  235. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
  236. package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
  237. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +5 -5
  238. package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
  239. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  240. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
  241. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
  242. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
  243. package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -2
  244. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
  245. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +1 -1
  246. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -2
  247. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +1 -1
  248. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +1 -1
  249. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
  250. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  251. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
  252. package/dist/cjs/atomic-load-more-results.cjs.entry.js +1 -1
  253. package/dist/cjs/atomic-no-results.cjs.entry.js +1 -1
  254. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +2 -1
  255. package/dist/cjs/atomic-numeric-facet.cjs.entry.js.map +1 -1
  256. package/dist/cjs/atomic-pager.cjs.entry.js +3 -3
  257. package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
  258. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  259. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  260. package/dist/cjs/atomic-recs-error.cjs.entry.js +1 -1
  261. package/dist/cjs/atomic-recs-interface.cjs.entry.js +2 -2
  262. package/dist/cjs/atomic-recs-list.cjs.entry.js +1 -1
  263. package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
  264. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  265. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js +2 -2
  266. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  267. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  268. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  269. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  270. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +3 -3
  271. package/dist/cjs/atomic-search-box-instant-results.cjs.entry.js +3 -3
  272. package/dist/cjs/atomic-search-box-instant-results.cjs.entry.js.map +1 -1
  273. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +5 -5
  274. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js.map +1 -1
  275. package/dist/cjs/atomic-search-box.cjs.entry.js +10 -7
  276. package/dist/cjs/atomic-search-box.cjs.entry.js.map +1 -1
  277. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +2 -2
  278. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +3 -3
  279. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  280. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  281. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  282. package/dist/cjs/atomic-stencil-facet-date-input.cjs.entry.js +3 -3
  283. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +1 -1
  284. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js.map +1 -1
  285. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +1 -1
  286. package/dist/cjs/atomic-tab-button.cjs.entry.js +1 -1
  287. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  288. package/dist/cjs/atomic.cjs.js +1 -1
  289. package/dist/cjs/index-757bc886.js +4 -8
  290. package/dist/cjs/index.cjs.js.map +1 -1
  291. package/dist/cjs/stencil-query-suggestions-03268ecc.js.map +1 -1
  292. package/dist/cjs/{stencil-suggestion-manager-2cba6d69.js → stencil-suggestion-manager-c0878ef2.js} +4 -4
  293. package/dist/cjs/{stencil-suggestion-manager-2cba6d69.js.map → stencil-suggestion-manager-c0878ef2.js.map} +1 -1
  294. package/dist/cjs/{suggestions-events-63dd0640.js → suggestions-common-5097a362.js} +21 -17
  295. package/dist/cjs/suggestions-common-5097a362.js.map +1 -0
  296. package/dist/cjs/version.cjs.js +2 -2
  297. package/dist/esm/_index.js +1 -2
  298. package/dist/esm/_loader.js +1 -1
  299. package/dist/esm/{analytics-config-0d90c656.js → analytics-config-80f5ac19.js} +2 -2
  300. package/dist/esm/{analytics-config-0d90c656.js.map → analytics-config-80f5ac19.js.map} +1 -1
  301. package/dist/esm/atomic-category-facet.entry.js +1 -1
  302. package/dist/esm/atomic-citation.entry.js +1 -1
  303. package/dist/esm/atomic-facet-manager.entry.js +1 -1
  304. package/dist/esm/atomic-facet-number-input.entry.js +2 -2
  305. package/dist/esm/atomic-facet.entry.js +1 -1
  306. package/dist/esm/atomic-format-currency.entry.js +1 -1
  307. package/dist/esm/atomic-format-number.entry.js +1 -1
  308. package/dist/esm/atomic-format-unit.entry.js +1 -1
  309. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +1 -1
  310. package/dist/esm/atomic-html.entry.js +1 -1
  311. package/dist/esm/atomic-insight-edit-toggle.entry.js +1 -1
  312. package/dist/esm/atomic-insight-facet.entry.js +1 -1
  313. package/dist/esm/atomic-insight-folded-result-list.entry.js +1 -1
  314. package/dist/esm/atomic-insight-full-search-button.entry.js +1 -1
  315. package/dist/esm/atomic-insight-history-toggle.entry.js +1 -1
  316. package/dist/esm/atomic-insight-interface.entry.js +2 -2
  317. package/dist/esm/atomic-insight-no-results.entry.js +1 -1
  318. package/dist/esm/atomic-insight-numeric-facet.entry.js +1 -1
  319. package/dist/esm/atomic-insight-pager.entry.js +3 -3
  320. package/dist/esm/atomic-insight-query-error.entry.js +1 -1
  321. package/dist/esm/atomic-insight-refine-modal.entry.js +2 -2
  322. package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
  323. package/dist/esm/atomic-insight-result-action.entry.js +1 -1
  324. package/dist/esm/atomic-insight-result-attach-to-case-action.entry.js +1 -1
  325. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
  326. package/dist/esm/atomic-insight-result-children.entry.js +1 -1
  327. package/dist/esm/atomic-insight-result-list.entry.js +1 -1
  328. package/dist/esm/atomic-insight-result-quickview-action.entry.js +1 -1
  329. package/dist/esm/atomic-insight-result.entry.js +1 -1
  330. package/dist/esm/atomic-insight-search-box.entry.js +4 -4
  331. package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
  332. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +2 -2
  333. package/dist/esm/atomic-insight-tabs.entry.js +1 -1
  334. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
  335. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
  336. package/dist/esm/atomic-ipx-body.entry.js +2 -2
  337. package/dist/esm/atomic-ipx-button.entry.js +2 -2
  338. package/dist/esm/atomic-ipx-embedded.entry.js +1 -1
  339. package/dist/esm/atomic-ipx-modal.entry.js +2 -2
  340. package/dist/esm/atomic-ipx-recs-list.entry.js +1 -1
  341. package/dist/esm/atomic-ipx-refine-modal.entry.js +1 -1
  342. package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
  343. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  344. package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
  345. package/dist/esm/atomic-load-more-results.entry.js +1 -1
  346. package/dist/esm/atomic-no-results.entry.js +1 -1
  347. package/dist/esm/atomic-numeric-facet.entry.js +2 -1
  348. package/dist/esm/atomic-numeric-facet.entry.js.map +1 -1
  349. package/dist/esm/atomic-pager.entry.js +3 -3
  350. package/dist/esm/atomic-query-error.entry.js +1 -1
  351. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  352. package/dist/esm/atomic-quickview.entry.js +1 -1
  353. package/dist/esm/atomic-recs-error.entry.js +1 -1
  354. package/dist/esm/atomic-recs-interface.entry.js +2 -2
  355. package/dist/esm/atomic-recs-list.entry.js +1 -1
  356. package/dist/esm/atomic-refine-modal.entry.js +1 -1
  357. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  358. package/dist/esm/atomic-relevance-inspector.entry.js +2 -2
  359. package/dist/esm/atomic-result-children.entry.js +1 -1
  360. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  361. package/dist/esm/atomic-result-link.entry.js +1 -1
  362. package/dist/esm/atomic-result-list.entry.js +1 -1
  363. package/dist/esm/atomic-result-placeholder_8.entry.js +3 -3
  364. package/dist/esm/atomic-search-box-instant-results.entry.js +2 -2
  365. package/dist/esm/atomic-search-box-instant-results.entry.js.map +1 -1
  366. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +3 -3
  367. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js.map +1 -1
  368. package/dist/esm/atomic-search-box.entry.js +9 -6
  369. package/dist/esm/atomic-search-box.entry.js.map +1 -1
  370. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +2 -2
  371. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +3 -3
  372. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  373. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  374. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  375. package/dist/esm/atomic-stencil-facet-date-input.entry.js +3 -3
  376. package/dist/esm/atomic-suggestion-renderer.entry.js +1 -1
  377. package/dist/esm/atomic-suggestion-renderer.entry.js.map +1 -1
  378. package/dist/esm/atomic-tab-bar_2.entry.js +1 -1
  379. package/dist/esm/atomic-tab-button.entry.js +1 -1
  380. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  381. package/dist/esm/atomic.js +1 -1
  382. package/dist/esm/index-3f35faca.js +4 -8
  383. package/dist/esm/index.js.map +1 -1
  384. package/dist/esm/stencil-query-suggestions-5d6a46d7.js.map +1 -1
  385. package/dist/esm/{stencil-suggestion-manager-376f83e8.js → stencil-suggestion-manager-486094dd.js} +2 -2
  386. package/dist/esm/{stencil-suggestion-manager-376f83e8.js.map → stencil-suggestion-manager-486094dd.js.map} +1 -1
  387. package/dist/esm/{suggestions-events-b7a6f007.js → suggestions-common-2b20db26.js} +20 -18
  388. package/dist/esm/suggestions-common-2b20db26.js.map +1 -0
  389. package/dist/esm/version.js +2 -2
  390. package/dist/types/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.d.ts +2 -1
  391. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +2 -1
  392. package/dist/types/components/commerce/atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.d.ts +1 -1
  393. package/dist/types/components/commerce/atomic-commerce-search-box-query-suggestions/atomic-commerce-search-box-query-suggestions.d.ts +1 -1
  394. package/dist/types/components/commerce/atomic-commerce-search-box-recent-queries/atomic-commerce-search-box-recent-queries.d.ts +1 -1
  395. package/dist/types/components/common/atomic-suggestion-renderer/atomic-suggestion-renderer.d.ts +1 -1
  396. package/dist/types/components/common/suggestions/instant-item.d.ts +1 -1
  397. package/dist/types/components/common/suggestions/query-suggestions.d.ts +1 -1
  398. package/dist/types/components/common/suggestions/recent-queries.d.ts +1 -1
  399. package/dist/types/components/common/suggestions/stencil-instant-item.d.ts +1 -1
  400. package/dist/types/components/common/suggestions/stencil-query-suggestions.d.ts +1 -1
  401. package/dist/types/components/common/suggestions/stencil-recent-queries.d.ts +1 -1
  402. package/dist/types/components/common/suggestions/stencil-suggestion-manager.d.ts +1 -1
  403. package/dist/types/components/common/suggestions/suggestion-manager.d.ts +1 -1
  404. package/dist/types/components/common/suggestions/{suggestions-types.d.ts → suggestions-common.d.ts} +16 -6
  405. package/dist/types/components/search/atomic-search-box/atomic-search-box.d.ts +1 -1
  406. package/dist/types/components/search/atomic-search-interface/atomic-search-interface.d.ts +47 -44
  407. package/dist/types/components/search/atomic-search-interface/interfaces.d.ts +2 -1
  408. package/dist/types/components/search/atomic-search-layout/atomic-search-layout.d.ts +3 -1
  409. package/dist/types/components/search/index.d.ts +1 -0
  410. package/dist/types/components/search/search-box-suggestions/atomic-search-box-instant-results/atomic-search-box-instant-results.d.ts +1 -1
  411. package/dist/types/components.d.ts +4 -167
  412. package/dist/types/decorators/types.d.ts +1 -1
  413. package/dist/types/index.d.ts +1 -3
  414. package/docs/atomic-docs.json +14 -577
  415. package/package.json +4 -4
  416. package/dist/atomic/components/atomic-relevance-inspector2.js +0 -50
  417. package/dist/atomic/components/atomic-relevance-inspector2.js.map +0 -1
  418. package/dist/atomic/components/atomic-search-interface.d.ts +0 -11
  419. package/dist/atomic/components/atomic-search-interface.js +0 -552
  420. package/dist/atomic/components/atomic-search-interface.js.map +0 -1
  421. package/dist/atomic/components/components/common/suggestions/suggestions-types.js +0 -1
  422. package/dist/atomic/components/components/common/suggestions/suggestions-utils.js +0 -18
  423. package/dist/atomic/components/suggestions-events.js.map +0 -1
  424. package/dist/atomic/p-0a051b8d.js +0 -2
  425. package/dist/atomic/p-0a051b8d.js.map +0 -1
  426. package/dist/atomic/p-16f4ce98.js +0 -2
  427. package/dist/atomic/p-16f4ce98.js.map +0 -1
  428. package/dist/atomic/p-1992b245.entry.js +0 -2
  429. package/dist/atomic/p-26a51a77.entry.js.map +0 -1
  430. package/dist/atomic/p-31f1e44e.entry.js.map +0 -1
  431. package/dist/atomic/p-4b7a19db.js +0 -2
  432. package/dist/atomic/p-4b7a19db.js.map +0 -1
  433. package/dist/atomic/p-c88a3d2d.entry.js.map +0 -1
  434. package/dist/atomic/p-cc72431b.entry.js +0 -2
  435. package/dist/atomic/p-cc72431b.entry.js.map +0 -1
  436. package/dist/atomic/p-d0f47b33.entry.js.map +0 -1
  437. package/dist/atomic/p-d24d34a7.entry.js +0 -2
  438. package/dist/atomic/p-e2afb475.entry.js +0 -2
  439. package/dist/atomic/p-fbfe913d.entry.js.map +0 -1
  440. package/dist/atomic/p-fcf3f7d7.entry.js +0 -2
  441. package/dist/cjs/atomic-search-interface.cjs.entry.js +0 -511
  442. package/dist/cjs/atomic-search-interface.cjs.entry.js.map +0 -1
  443. package/dist/cjs/suggestions-events-63dd0640.js.map +0 -1
  444. package/dist/cjs/suggestions-utils-61000808.js +0 -25
  445. package/dist/cjs/suggestions-utils-61000808.js.map +0 -1
  446. package/dist/esm/atomic-search-interface.entry.js +0 -507
  447. package/dist/esm/atomic-search-interface.entry.js.map +0 -1
  448. package/dist/esm/suggestions-events-b7a6f007.js.map +0 -1
  449. package/dist/esm/suggestions-utils-591559a0.js +0 -22
  450. package/dist/esm/suggestions-utils-591559a0.js.map +0 -1
  451. package/dist/types/components/common/suggestions/suggestions-events.d.ts +0 -14
  452. package/dist/types/components/common/suggestions/suggestions-utils.d.ts +0 -15
  453. /package/dist/atomic/{p-6329ff94.entry.js.map → p-004adbb8.entry.js.map} +0 -0
  454. /package/dist/atomic/{p-3b20b011.entry.js.map → p-0610b3e7.entry.js.map} +0 -0
  455. /package/dist/atomic/{p-ee6771f1.entry.js.map → p-07b6424c.entry.js.map} +0 -0
  456. /package/dist/atomic/{p-7a625c7e.entry.js.map → p-094b61d4.entry.js.map} +0 -0
  457. /package/dist/atomic/{p-83c9244a.entry.js.map → p-0e27d4f2.entry.js.map} +0 -0
  458. /package/dist/atomic/{p-c126ee6b.entry.js.map → p-0e5dc57f.entry.js.map} +0 -0
  459. /package/dist/atomic/{p-1992b245.entry.js.map → p-0edea6f9.entry.js.map} +0 -0
  460. /package/dist/atomic/{p-20341936.entry.js.map → p-10b5e0f3.entry.js.map} +0 -0
  461. /package/dist/atomic/{p-2ca352f4.entry.js.map → p-15406648.entry.js.map} +0 -0
  462. /package/dist/atomic/{p-a3efa89e.entry.js.map → p-160553ce.entry.js.map} +0 -0
  463. /package/dist/atomic/{p-5048c3b8.entry.js.map → p-1656f59a.entry.js.map} +0 -0
  464. /package/dist/atomic/{p-78b70622.entry.js.map → p-25eabe15.entry.js.map} +0 -0
  465. /package/dist/atomic/{p-de066001.entry.js.map → p-2a4e9425.entry.js.map} +0 -0
  466. /package/dist/atomic/{p-75e00690.entry.js.map → p-33899ab5.entry.js.map} +0 -0
  467. /package/dist/atomic/{p-7b899b57.entry.js.map → p-394c600f.entry.js.map} +0 -0
  468. /package/dist/atomic/{p-76111230.entry.js.map → p-3a7f1dd7.entry.js.map} +0 -0
  469. /package/dist/atomic/{p-a760d9f9.entry.js.map → p-3c823399.entry.js.map} +0 -0
  470. /package/dist/atomic/{p-021f01d6.entry.js.map → p-41c5d5fa.entry.js.map} +0 -0
  471. /package/dist/atomic/{p-e23b3334.entry.js.map → p-441b1a7b.entry.js.map} +0 -0
  472. /package/dist/atomic/{p-330e6e7c.entry.js.map → p-45840906.entry.js.map} +0 -0
  473. /package/dist/atomic/{p-f22bcb8c.entry.js.map → p-4b4b2626.entry.js.map} +0 -0
  474. /package/dist/atomic/{p-c1999888.entry.js.map → p-754909fe.entry.js.map} +0 -0
  475. /package/dist/atomic/{p-811d6dcb.entry.js.map → p-780170e5.entry.js.map} +0 -0
  476. /package/dist/atomic/{p-36fab158.entry.js.map → p-7a6468a7.entry.js.map} +0 -0
  477. /package/dist/atomic/{p-3a2c900c.entry.js.map → p-7b1a3cab.entry.js.map} +0 -0
  478. /package/dist/atomic/{p-d93adf52.entry.js.map → p-7d63bf7b.entry.js.map} +0 -0
  479. /package/dist/atomic/{p-4b3d253b.entry.js.map → p-7dd3d72f.entry.js.map} +0 -0
  480. /package/dist/atomic/{p-d364064c.entry.js.map → p-7f40e57d.entry.js.map} +0 -0
  481. /package/dist/atomic/{p-c49cfa0c.entry.js.map → p-80683e4c.entry.js.map} +0 -0
  482. /package/dist/atomic/{p-d785121d.entry.js.map → p-856e858c.entry.js.map} +0 -0
  483. /package/dist/atomic/{p-b28011e6.entry.js.map → p-867fd04d.entry.js.map} +0 -0
  484. /package/dist/atomic/{p-534b6a0a.entry.js.map → p-87c6c206.entry.js.map} +0 -0
  485. /package/dist/atomic/{p-e162805d.entry.js.map → p-8a7a23b7.entry.js.map} +0 -0
  486. /package/dist/atomic/{p-604c4085.entry.js.map → p-8df7270f.entry.js.map} +0 -0
  487. /package/dist/atomic/{p-8256cd44.entry.js.map → p-9147b0db.entry.js.map} +0 -0
  488. /package/dist/atomic/{p-aa2a81fd.entry.js.map → p-9349aa1a.entry.js.map} +0 -0
  489. /package/dist/atomic/{p-37374964.entry.js.map → p-9727f36b.entry.js.map} +0 -0
  490. /package/dist/atomic/{p-d24d34a7.entry.js.map → p-97829295.entry.js.map} +0 -0
  491. /package/dist/atomic/{p-31aa052e.entry.js.map → p-97e42c43.entry.js.map} +0 -0
  492. /package/dist/atomic/{p-93e29b24.entry.js.map → p-9b92b4e2.entry.js.map} +0 -0
  493. /package/dist/atomic/{p-1ef658d8.entry.js.map → p-9d023f0b.entry.js.map} +0 -0
  494. /package/dist/atomic/{p-40635c2d.entry.js.map → p-9e771351.entry.js.map} +0 -0
  495. /package/dist/atomic/{p-d00a12e9.entry.js.map → p-a278ffde.entry.js.map} +0 -0
  496. /package/dist/atomic/{p-035f8dc8.entry.js.map → p-a3fa6695.entry.js.map} +0 -0
  497. /package/dist/atomic/{p-f0c2dfe8.entry.js.map → p-abb14108.entry.js.map} +0 -0
  498. /package/dist/atomic/{p-52ba404c.entry.js.map → p-aed46103.entry.js.map} +0 -0
  499. /package/dist/atomic/{p-48f57fd8.entry.js.map → p-b0c50194.entry.js.map} +0 -0
  500. /package/dist/atomic/{p-b0b17e21.entry.js.map → p-b4c34553.entry.js.map} +0 -0
  501. /package/dist/atomic/{p-98c5b9b8.entry.js.map → p-b6377fb6.entry.js.map} +0 -0
  502. /package/dist/atomic/{p-ea446721.entry.js.map → p-bd32625e.entry.js.map} +0 -0
  503. /package/dist/atomic/{p-939eaaac.entry.js.map → p-bd99fcc1.entry.js.map} +0 -0
  504. /package/dist/atomic/{p-99b8d52d.entry.js.map → p-bf49fed3.entry.js.map} +0 -0
  505. /package/dist/atomic/{p-3f912e98.entry.js.map → p-c08f4ee6.entry.js.map} +0 -0
  506. /package/dist/atomic/{p-7b0b9e9b.entry.js.map → p-c23a07f5.entry.js.map} +0 -0
  507. /package/dist/atomic/{p-e2afb475.entry.js.map → p-c2b4b401.entry.js.map} +0 -0
  508. /package/dist/atomic/{p-a53c7821.entry.js.map → p-c538c8ac.entry.js.map} +0 -0
  509. /package/dist/atomic/{p-43d708cb.entry.js.map → p-c9fe4f77.entry.js.map} +0 -0
  510. /package/dist/atomic/{p-ae060711.entry.js.map → p-ce41c447.entry.js.map} +0 -0
  511. /package/dist/atomic/{p-fa8b7c4c.entry.js.map → p-d4ad7336.entry.js.map} +0 -0
  512. /package/dist/atomic/{p-627e1265.entry.js.map → p-d50c96c2.entry.js.map} +0 -0
  513. /package/dist/atomic/{p-bc0d6d3d.entry.js.map → p-dee60597.entry.js.map} +0 -0
  514. /package/dist/atomic/{p-b2ff1330.entry.js.map → p-e1c99e2e.entry.js.map} +0 -0
  515. /package/dist/atomic/{p-6e6d686e.entry.js.map → p-e3af1bb4.entry.js.map} +0 -0
  516. /package/dist/atomic/{p-7dfcd6af.entry.js.map → p-e6a7e7b2.entry.js.map} +0 -0
  517. /package/dist/atomic/{p-fbb9b867.js.map → p-ef556803.js.map} +0 -0
  518. /package/dist/atomic/{p-594488f2.entry.js.map → p-f0012580.entry.js.map} +0 -0
  519. /package/dist/atomic/{p-877d35b1.entry.js.map → p-f4780315.entry.js.map} +0 -0
  520. /package/dist/atomic/{p-fea7bf3b.entry.js.map → p-f936f55e.entry.js.map} +0 -0
@@ -1 +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
+ {"file":"stencil-suggestion-manager-486094dd.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 {\n elementHasNoQuery,\n elementHasQuery,\n type SearchBoxSuggestionElement,\n type SearchBoxSuggestionsBindings,\n type SearchBoxSuggestionsEvent,\n} from './suggestions-common';\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,22 +1,6 @@
1
1
  import { c as closest } from './dom-utils-f6086cd3.js';
2
2
  import { b as buildCustomEvent } from './event-utils-8de63ec3.js';
3
3
 
4
- /**
5
- * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.
6
- *
7
- * @param event Event sent from the registered query suggestions to the parent search box
8
- * @param element Element on which to dispatch the event, which must be the child of a configured search box
9
- * @param allowedSearchBoxElements Optional array of allowed search box element selectors
10
- *
11
- * @throws Error if the element is not a child of an allowed search box element
12
- */
13
- const dispatchSearchBoxSuggestionsEvent = (event, element, allowedSearchBoxElements = searchBoxElements) => {
14
- const interfaceElement = closest(element, searchBoxElements.join(', '));
15
- if (!interfaceElement) {
16
- throw new Error(`The "${element.nodeName.toLowerCase()}" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(', ')}`);
17
- }
18
- void dispatchSearchBoxSuggestionsEventEventually(interfaceElement, element, event);
19
- };
20
4
  const searchBoxElements = [
21
5
  'atomic-search-box',
22
6
  'atomic-insight-search-box',
@@ -34,7 +18,25 @@ const dispatchSearchBoxSuggestionsEventEventually = async (interfaceElement, ele
34
18
  }
35
19
  element.dispatchEvent(buildCustomEvent('atomic/searchBoxSuggestion/register', event));
36
20
  };
21
+ /**
22
+ * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.
23
+ * @param event Event sent from the registered query suggestions to the parent search box.
24
+ * @param element Element on which to dispatch the event, which must be the child of a configured search box.
25
+ */
26
+ const dispatchSearchBoxSuggestionsEvent = (event, element, allowedSearchBoxElements = searchBoxElements) => {
27
+ const interfaceElement = closest(element, searchBoxElements.join(', '));
28
+ if (!interfaceElement) {
29
+ throw new Error(`The "${element.nodeName.toLowerCase()}" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(', ')}`);
30
+ }
31
+ void dispatchSearchBoxSuggestionsEventEventually(interfaceElement, element, event);
32
+ };
33
+ function elementHasNoQuery(el) {
34
+ return !el.query || el.query.trim() === '';
35
+ }
36
+ function elementHasQuery(el) {
37
+ return !!el.query && el.query.trim() !== '';
38
+ }
37
39
 
38
- export { dispatchSearchBoxSuggestionsEvent as d };
40
+ export { elementHasNoQuery as a, dispatchSearchBoxSuggestionsEvent as d, elementHasQuery as e };
39
41
 
40
- //# sourceMappingURL=suggestions-events-b7a6f007.js.map
42
+ //# sourceMappingURL=suggestions-common-2b20db26.js.map
@@ -0,0 +1 @@
1
+ {"file":"suggestions-common-2b20db26.js","mappings":";;;AA0FA,MAAM,iBAAiB,GAAG;IACxB,mBAAmB;IACnB,2BAA2B;IAC3B,4BAA4B;CACpB,CAAC;AAoDX,MAAM,mBAAmB,GAAG,CAAC,SAAkB,KAC7C,gBAAgB,IAAK,SAAwB;IAC5C,SAAwB,CAAC,cAAc,YAAY,OAAO,CAAC;AAE9D,MAAM,2CAA2C,GAAG,OAIlD,gBAAyB,EACzB,OAAoB,EACpB,KAA+D;IAE/D,MAAM,cAAc,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,IAAI,mBAAmB,CAAC,gBAAgB,CAAC,EAAE;QACzC,MAAM,gBAAgB,CAAC,cAAc,CAAC;KACvC;SAAM,IAAI,kBAAkB,IAAI,gBAAgB,EAAE;QACjD,MAAO,gBAAuC,CAAC,gBAAgB,EAAE,CAAC;KACnE;IACD,OAAO,CAAC,aAAa,CACnB,gBAAgB,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAC/D,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;MAKa,iCAAiC,GAAG,CAI/C,KAA+D,EAC/D,OAAoB,EACpB,2BAA0E,iBAAiB;IAE3F,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,QAAQ,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,gFAAgF,wBAAwB,CAAC,IAAI,CACjJ,IAAI,CACL,EAAE,CACJ,CAAC;KACH;IACD,KAAK,2CAA2C,CAC9C,gBAAgB,EAChB,OAAO,EACP,KAAK,CACN,CAAC;AACJ,EAAE;SAEc,iBAAiB,CAAC,EAA8B;IAC9D,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;SAEe,eAAe,CAAC,EAA8B;IAC5D,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC9C;;;;","names":[],"sources":["src/components/common/suggestions/suggestions-common.ts"],"sourcesContent":["import type {VNode} from '@stencil/core';\nimport type {HTMLStencilElement} from '@stencil/core/internal';\nimport type {LitElement} from 'lit';\nimport {closest} from '../../../utils/dom-utils';\nimport {buildCustomEvent} from '../../../utils/event-utils';\nimport type {AnyBindings} from '../interface/bindings';\n\n/**\n * Element which will be rendered in the list of suggestions.\n */\nexport interface SearchBoxSuggestionElement {\n /**\n * Stable identity which enables Stencil to reuse DOM elements for better performance.\n * The best way to pick a key is to use a string that uniquely identifies that list item among its siblings (often your data will already have IDs).\n */\n key: string;\n /**\n * Rendered content of the element.\n *\n * @remarks\n * The `VNode` type will be deprecated in v4 as we are detaching from Stencil.\n */\n content: Element | VNode;\n /**\n * Hook called when the selection is selected.\n * @param e DOM event.\n */\n onSelect?(e: Event): void;\n /**\n * The query associated with the suggestion which will replace the query in the search box if the suggestion is selected.\n */\n query?: string;\n /**\n * For improved accessibility, provide this property with additional information.\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n */\n ariaLabel?: string;\n /**\n * Adds a specific shadow part attribute that can be selected with the CSS ::part pseudo-element.\n * https://developer.mozilla.org/en-US/docs/Web/CSS/::part\n */\n part?: string;\n /**\n * Hide the suggestion if it's the last in the list.\n */\n hideIfLast?: boolean;\n}\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 suggested query changes as a user traverses through 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 suggested query.\n */\n onSuggestedQueryChange?(q: string): Promise<unknown>;\n}\n\n/**\n * Event sent from the registered query suggestions to the parent search box.\n */\nexport type SearchBoxSuggestionsEvent<\n SearchBoxController,\n Bindings = AnyBindings,\n> = (\n /**\n * The bindings passed from the search box to the suggestions.\n */\n bindings: SearchBoxSuggestionsBindings<SearchBoxController, Bindings>\n) => SearchBoxSuggestions;\n\nconst searchBoxElements = [\n 'atomic-search-box',\n 'atomic-insight-search-box',\n 'atomic-commerce-search-box',\n] as const;\n\n/**\n * The bindings passed from the search box to the suggestions.\n */\nexport type SearchBoxSuggestionsBindings<\n SearchBoxController,\n Bindings = AnyBindings,\n> = Bindings & {\n /**\n * The unique id of the search box.\n */\n id: string;\n /**\n * Whether the search box is [standalone](https://docs.coveo.com/en/atomic/latest/usage/ssb/).\n */\n isStandalone: boolean;\n /**\n * The search box headless controller.\n */\n searchBoxController: SearchBoxController;\n /**\n * The number of queries to display when the user interacts with the search box.\n */\n numberOfQueries: number;\n /**\n * Whether to clear all active query filters when the end user submits a new query from the search box.\n */\n clearFilters: boolean;\n /**\n * Retrieves the suggested query, meaning the query that would be sent if the search is executed.\n * The suggested query changes as a user traverses through the list of suggestions.\n */\n suggestedQuery(): string;\n /**\n * Removes the current suggestions.\n */\n clearSuggestions(): void;\n /**\n * Triggers update & retrieval of all suggestions.\n */\n triggerSuggestions(): void;\n /**\n * Retrieves the current suggestions.\n */\n getSuggestions(): SearchBoxSuggestions[];\n /**\n * Retrieves the current suggestions elements.\n */\n getSuggestionElements(): SearchBoxSuggestionElement[];\n};\n\nconst isLitElementLoosely = (candidate: unknown): candidate is LitElement =>\n 'updateComplete' in (candidate as LitElement) &&\n (candidate as LitElement).updateComplete instanceof Promise;\n\nconst dispatchSearchBoxSuggestionsEventEventually = async <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n interfaceElement: Element,\n element: HTMLElement,\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>\n) => {\n await customElements.whenDefined(interfaceElement.nodeName.toLowerCase());\n if (isLitElementLoosely(interfaceElement)) {\n await interfaceElement.updateComplete;\n } else if ('componentOnReady' in interfaceElement) {\n await (interfaceElement as HTMLStencilElement).componentOnReady();\n }\n element.dispatchEvent(\n buildCustomEvent('atomic/searchBoxSuggestion/register', event)\n );\n};\n\n/**\n * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.\n * @param event Event sent from the registered query suggestions to the parent search box.\n * @param element Element on which to dispatch the event, which must be the child of a configured search box.\n */\nexport const dispatchSearchBoxSuggestionsEvent = <\n SearchBoxController,\n Bindings = AnyBindings,\n>(\n event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>,\n element: HTMLElement,\n allowedSearchBoxElements: readonly (typeof searchBoxElements)[number][] = searchBoxElements\n) => {\n const interfaceElement = closest(element, searchBoxElements.join(', '));\n if (!interfaceElement) {\n throw new Error(\n `The \"${element.nodeName.toLowerCase()}\" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(\n ', '\n )}`\n );\n }\n void dispatchSearchBoxSuggestionsEventEventually(\n interfaceElement,\n element,\n event\n );\n};\n\nexport function elementHasNoQuery(el: SearchBoxSuggestionElement) {\n return !el.query || el.query.trim() === '';\n}\n\nexport function elementHasQuery(el: SearchBoxSuggestionElement) {\n return !!el.query && el.query.trim() !== '';\n}\n"],"version":3}
@@ -1,2 +1,2 @@
1
- export const headlessVersion = '3.31.1-pre.e22cb89139';
2
- export const atomicVersion = '3.33.8-pre.e22cb89139';
1
+ export const headlessVersion = '3.31.0';
2
+ export const atomicVersion = '3.33.8-pre.e3728c3548';
@@ -53,7 +53,8 @@ export declare class AtomicCommerceBreadbox extends LitElement implements Initia
53
53
  pathLimit: number;
54
54
  initialize(): void;
55
55
  willUpdate(changedProperties: Map<string, unknown>): void;
56
- updated(): void;
56
+ firstUpdated(): void;
57
+ updateCompleted(): void;
57
58
  private validateProps;
58
59
  disconnectedCallback(): void;
59
60
  private get breadcrumbs();
@@ -26,6 +26,7 @@ export declare class AtomicCommerceInterface extends AtomicCommerceInterface_bas
26
26
  private unsubscribeSummary?;
27
27
  private initialized;
28
28
  private store;
29
+ private _mobileBreakpointController;
29
30
  private interfaceController;
30
31
  static styles: CSSResultGroup;
31
32
  /**
@@ -62,7 +63,7 @@ export declare class AtomicCommerceInterface extends AtomicCommerceInterface_bas
62
63
  */
63
64
  reflectStateInUrl: boolean;
64
65
  /**
65
- * Disable state reflection in the URL parameters.
66
+ * Whether to disable state reflection in the URL parameters.
66
67
  */
67
68
  disableStateReflectionInUrl: boolean;
68
69
  /**
@@ -2,7 +2,7 @@ import { type Product, type SearchBox } from '@coveo/headless/commerce';
2
2
  import { LitElement } from 'lit';
3
3
  import type { ItemRenderingFunction } from "../../common/item-list/item-list-common";
4
4
  import type { ItemDisplayDensity, ItemDisplayImageSize } from "../../common/layout/display-options";
5
- import type { SearchBoxSuggestions, SearchBoxSuggestionsBindings } from "../../common/suggestions/suggestions-types";
5
+ import { type SearchBoxSuggestions, type SearchBoxSuggestionsBindings } from "../../common/suggestions/suggestions-common";
6
6
  import type { SearchBoxSuggestionsComponent } from "../../../decorators/types";
7
7
  import type { CommerceBindings } from '../atomic-commerce-interface/atomic-commerce-interface';
8
8
  export type AriaLabelGenerator = (bindings: CommerceBindings, product: Product) => string | undefined;
@@ -1,6 +1,6 @@
1
1
  import { type SearchBox } from '@coveo/headless/commerce';
2
2
  import { LitElement } from 'lit';
3
- import type { SearchBoxSuggestions, SearchBoxSuggestionsBindings } from "../../common/suggestions/suggestions-types";
3
+ import { type SearchBoxSuggestions, type SearchBoxSuggestionsBindings } from "../../common/suggestions/suggestions-common";
4
4
  import type { SearchBoxSuggestionsComponent } from "../../../decorators/types";
5
5
  import type { CommerceBindings } from '../atomic-commerce-interface/atomic-commerce-interface';
6
6
  /**
@@ -1,7 +1,7 @@
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 type { SearchBoxSuggestions, SearchBoxSuggestionsBindings } from '../../common/suggestions/suggestions-types';
4
+ import { type SearchBoxSuggestions, type SearchBoxSuggestionsBindings } from '../../common/suggestions/suggestions-common';
5
5
  import type { CommerceBindings } from '../atomic-commerce-interface/atomic-commerce-interface';
6
6
  /**
7
7
  * The `atomic-commerce-search-box-recent-queries` component can be added as a child of an `atomic-commerce-search-box` component, allowing for the configuration of recent query suggestions.
@@ -1,5 +1,5 @@
1
1
  import { i18n } from 'i18next';
2
- import { SearchBoxSuggestionElement } from '../suggestions/suggestions-types';
2
+ import { SearchBoxSuggestionElement } from '../suggestions/suggestions-common';
3
3
  /**
4
4
  * The `atomic-suggestion-renderer` component is used to render individual suggestions. It was created to isolate
5
5
  * the rendering logic of the 'content' property of the `SearchBoxSuggestionElement` interface. This property can be Stencil
@@ -1,5 +1,5 @@
1
1
  import type { i18n } from 'i18next';
2
- import type { SearchBoxSuggestionElement } from './suggestions-types';
2
+ import type { SearchBoxSuggestionElement } from './suggestions-common';
3
3
  export declare const getPartialInstantItemElement: (i18n: i18n, itemTitle: string, itemUniqueId: string) => Pick<SearchBoxSuggestionElement, "ariaLabel" | "key" | "part">;
4
4
  export declare const getPartialInstantItemShowAllElement: (i18n: i18n) => Pick<SearchBoxSuggestionElement, "key" | "part" | "ariaLabel">;
5
5
  interface InstantItemShowAllButtonProps {
@@ -1,5 +1,5 @@
1
1
  import type { i18n } from 'i18next';
2
- import type { SearchBoxSuggestionElement } from './suggestions-types.js';
2
+ import type { SearchBoxSuggestionElement } from './suggestions-common.js';
3
3
  interface Suggestion {
4
4
  highlightedValue: string;
5
5
  rawValue: string;
@@ -1,5 +1,5 @@
1
1
  import type { i18n } from 'i18next';
2
- import type { SearchBoxSuggestionElement } from './suggestions-types';
2
+ import type { SearchBoxSuggestionElement } from './suggestions-common';
3
3
  export declare const getPartialRecentQueryElement: (value: string, i18n: i18n) => Pick<SearchBoxSuggestionElement, "ariaLabel" | "key" | "query" | "part">;
4
4
  export declare const getPartialRecentQueryClearElement: (i18n: i18n) => Pick<SearchBoxSuggestionElement, "ariaLabel" | "key" | "part" | "hideIfLast">;
5
5
  export interface RecentQueriesContainerProps {
@@ -1,6 +1,6 @@
1
1
  import { FunctionalComponent } from '../../../stencil-public-runtime';
2
2
  import { i18n } from 'i18next';
3
- import { SearchBoxSuggestionElement } from './suggestions-types';
3
+ import { SearchBoxSuggestionElement } from './suggestions-common';
4
4
  export declare const getPartialInstantItemElement: (i18n: i18n, itemTitle: string, itemUniqueId: string) => Pick<SearchBoxSuggestionElement, "ariaLabel" | "key" | "part">;
5
5
  export declare const getPartialInstantItemShowAllElement: (i18n: i18n) => Pick<SearchBoxSuggestionElement, "key" | "part" | "ariaLabel">;
6
6
  interface InstantItemShowAllButtonProps {
@@ -1,6 +1,6 @@
1
1
  import { FunctionalComponent } from '../../../stencil-public-runtime';
2
2
  import { i18n } from 'i18next';
3
- import { SearchBoxSuggestionElement } from './suggestions-types.js';
3
+ import { SearchBoxSuggestionElement } from './suggestions-common.js';
4
4
  interface Suggestion {
5
5
  highlightedValue: string;
6
6
  rawValue: string;
@@ -1,6 +1,6 @@
1
1
  import { FunctionalComponent } from '../../../stencil-public-runtime';
2
2
  import { i18n } from 'i18next';
3
- import { SearchBoxSuggestionElement } from './suggestions-types';
3
+ import { SearchBoxSuggestionElement } from './suggestions-common';
4
4
  export declare const getPartialRecentQueryElement: (value: string, i18n: i18n) => Pick<SearchBoxSuggestionElement, "ariaLabel" | "key" | "query" | "part">;
5
5
  export declare const getPartialRecentQueryClearElement: (i18n: i18n) => Pick<SearchBoxSuggestionElement, "ariaLabel" | "key" | "part" | "hideIfLast">;
6
6
  export declare const RecentQueriesContainer: FunctionalComponent;
@@ -1,4 +1,4 @@
1
- import type { SearchBoxSuggestionElement, SearchBoxSuggestionsBindings, SearchBoxSuggestionsEvent } from './suggestions-types';
1
+ import { type SearchBoxSuggestionElement, type SearchBoxSuggestionsBindings, type SearchBoxSuggestionsEvent } from './suggestions-common';
2
2
  /**
3
3
  * List of suggestions that will be displayed along other lists (e.g recent queries) when the search box's input is selected.
4
4
  */
@@ -1,5 +1,5 @@
1
1
  import type { LitElement } from 'lit';
2
- import type { SearchBoxSuggestionElement, SearchBoxSuggestionsBindings, SearchBoxSuggestionsEvent } from './suggestions-types';
2
+ import { type SearchBoxSuggestionElement, type SearchBoxSuggestionsBindings, type SearchBoxSuggestionsEvent } from './suggestions-common';
3
3
  /**
4
4
  * List of suggestions that will be displayed along other lists (e.g recent queries) when the search box's input is selected.
5
5
  */
@@ -68,6 +68,15 @@ export interface SearchBoxSuggestions {
68
68
  */
69
69
  onSuggestedQueryChange?(q: string): Promise<unknown>;
70
70
  }
71
+ /**
72
+ * Event sent from the registered query suggestions to the parent search box.
73
+ */
74
+ export type SearchBoxSuggestionsEvent<SearchBoxController, Bindings = AnyBindings> = (
75
+ /**
76
+ * The bindings passed from the search box to the suggestions.
77
+ */
78
+ bindings: SearchBoxSuggestionsBindings<SearchBoxController, Bindings>) => SearchBoxSuggestions;
79
+ declare const searchBoxElements: readonly ["atomic-search-box", "atomic-insight-search-box", "atomic-commerce-search-box"];
71
80
  /**
72
81
  * The bindings passed from the search box to the suggestions.
73
82
  */
@@ -115,10 +124,11 @@ export type SearchBoxSuggestionsBindings<SearchBoxController, Bindings = AnyBind
115
124
  getSuggestionElements(): SearchBoxSuggestionElement[];
116
125
  };
117
126
  /**
118
- * Event sent from the registered query suggestions to the parent search box.
127
+ * Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.
128
+ * @param event Event sent from the registered query suggestions to the parent search box.
129
+ * @param element Element on which to dispatch the event, which must be the child of a configured search box.
119
130
  */
120
- export type SearchBoxSuggestionsEvent<SearchBoxController, Bindings = AnyBindings> = (
121
- /**
122
- * The bindings passed from the search box to the suggestions.
123
- */
124
- bindings: SearchBoxSuggestionsBindings<SearchBoxController, Bindings>) => SearchBoxSuggestions;
131
+ export declare const dispatchSearchBoxSuggestionsEvent: <SearchBoxController, Bindings = AnyBindings>(event: SearchBoxSuggestionsEvent<SearchBoxController, Bindings>, element: HTMLElement, allowedSearchBoxElements?: readonly (typeof searchBoxElements)[number][]) => void;
132
+ export declare function elementHasNoQuery(el: SearchBoxSuggestionElement): boolean;
133
+ export declare function elementHasQuery(el: SearchBoxSuggestionElement): boolean;
134
+ export {};
@@ -2,7 +2,7 @@ import { SearchBox, StandaloneSearchBox } from '@coveo/headless';
2
2
  import { EventEmitter } from '../../../stencil-public-runtime';
3
3
  import { InitializableComponent } from '../../../utils/initialization-utils';
4
4
  import { RedirectionPayload } from '../../common/search-box/redirection-payload';
5
- import type { SearchBoxSuggestionsEvent } from '../../common/suggestions/suggestions-types';
5
+ import { SearchBoxSuggestionsEvent } from '../../common/suggestions/suggestions-common';
6
6
  import { Bindings } from '../atomic-search-interface/atomic-search-interface';
7
7
  /**
8
8
  * The `atomic-search-box` component creates a search box with built-in support for suggestions.
@@ -1,24 +1,31 @@
1
- import { LogLevel, SearchEngine, SearchEngineConfiguration } from '@coveo/headless';
2
- import { i18n } from 'i18next';
3
- import { InitializeEvent } from '../../../utils/initialization-utils';
4
- import { StencilBaseAtomicInterface } from '../../common/interface/interface-common-stencil';
5
- import type { Bindings as _Bindings } from './interfaces';
1
+ import { type LogLevel, type SearchEngine, type SearchEngineConfiguration, type SearchStatus, type UrlManager } from '@coveo/headless';
2
+ import { type i18n } from 'i18next';
3
+ import { type CSSResultGroup, LitElement } from 'lit';
4
+ import type { CommonBindings, NonceBindings } from '../../common/interface/bindings';
5
+ import { type BaseAtomicInterface } from '../../common/interface/interface-controller';
6
+ import { type SearchStore } from './store';
7
+ import '../../common/atomic-modal/atomic-modal';
6
8
  export type InitializationOptions = SearchEngineConfiguration;
7
- export type Bindings = _Bindings;
9
+ export type Bindings = CommonBindings<SearchEngine, SearchStore, AtomicSearchInterface> & NonceBindings;
10
+ declare const AtomicSearchInterface_base: typeof LitElement;
8
11
  /**
9
12
  * The `atomic-search-interface` component is the parent to all other atomic components in a search page. It handles the headless search engine and localization configurations.
13
+ *
14
+ * @slot default - The default slot where you can add child components to the interface.
10
15
  */
11
- export declare class AtomicSearchInterface implements StencilBaseAtomicInterface<SearchEngine> {
12
- private urlManager;
13
- private searchStatus;
16
+ export declare class AtomicSearchInterface extends AtomicSearchInterface_base implements BaseAtomicInterface<SearchEngine> {
17
+ bindings: Bindings;
18
+ error: Error;
19
+ relevanceInspectorIsOpen: boolean;
20
+ urlManager: UrlManager;
21
+ searchStatus: SearchStatus;
14
22
  private unsubscribeUrlManager;
15
23
  private unsubscribeSearchStatus;
16
24
  private initialized;
17
25
  private store;
18
- private commonInterfaceHelper;
19
- host: HTMLAtomicSearchInterfaceElement;
20
- error?: Error;
21
- relevanceInspectorIsOpen: boolean;
26
+ private _mobileBreakpointController;
27
+ private interfaceController;
28
+ static styles: CSSResultGroup;
22
29
  /**
23
30
  * A list of non-default fields to include in the query results.
24
31
  *
@@ -27,7 +34,7 @@ export declare class AtomicSearchInterface implements StencilBaseAtomicInterface
27
34
  * <atomic-search-interface fields-to-include='["fieldA", "fieldB"]'></atomic-search-interface>
28
35
  * ```
29
36
  */
30
- fieldsToInclude: string[] | string;
37
+ fieldsToInclude: string[];
31
38
  /**
32
39
  * The search interface [query pipeline](https://docs.coveo.com/en/180/).
33
40
  *
@@ -69,8 +76,13 @@ export declare class AtomicSearchInterface implements StencilBaseAtomicInterface
69
76
  engine?: SearchEngine;
70
77
  /**
71
78
  * Whether the state should be reflected in the URL parameters.
79
+ * @deprecated - replaced by `disable-state-reflection-in-url` (this defaults to `true`, while the replacement defaults to `false`).
72
80
  */
73
81
  reflectStateInUrl: boolean;
82
+ /**
83
+ * Whether to disable state reflection in the URL parameters.
84
+ */
85
+ disableStateReflectionInUrl: boolean;
74
86
  /**
75
87
  * The CSS selector for the container where the interface will scroll back to.
76
88
  */
@@ -95,39 +107,19 @@ export declare class AtomicSearchInterface implements StencilBaseAtomicInterface
95
107
  * The relevance inspector can be opened by holding the Alt key (Option on Mac) while over the interface, and performing a double click.
96
108
  *
97
109
  * The relevance inspector allows to troubleshoot and debug queries.
110
+ * @deprecated - replaced by `disable-relevance-inspector` (this defaults to `true`, while the replacement defaults to `false`).
98
111
  */
99
112
  enableRelevanceInspector: boolean;
100
113
  /**
101
- * The value to set the [nonce](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce) attribute to on inline script and style elements generated by this interface and its child components.
102
- * If your application is served with a Content Security Policy (CSP) that doesn't include the `script-src: 'unsafe-inline'` or `style-src: 'unsafe-inline'` directives,
103
- * you should ensure that your application server generates a new nonce on every page load and uses the generated value to set this prop and serve the corresponding CSP response headers
104
- * (i.e., script-src 'nonce-<YOUR_GENERATED_NONCE>' and style-src 'nonce-<YOUR_GENERATED_NONCE>').
105
- * Otherwise you may see console errors such as
106
- * - Refused to execute inline script because it violates the following Content Security Policy directive: [...]
107
- * - Refused to apply inline style because it violates the following Content Security Policy directive: [...].
108
- * @example:
109
- * ```html
110
- * <script nonce="<YOUR_GENERATED_NONCE>">
111
- * import {setNonce} from '@coveo/atomic';
112
- * setNonce('<YOUR_GENERATED_NONCE>');
113
- * </script>
114
- * ```
114
+ * Whether to disable the relevance inspector shortcut for this interface.
115
115
  */
116
- CspNonce?: string;
116
+ disableRelevanceInspector: boolean;
117
117
  private i18Initialized;
118
- private componentWillLoadCalledPromise;
119
- private componentWillLoadResolver;
120
118
  constructor();
121
119
  connectedCallback(): void;
122
- componentWillLoad(): void;
123
- updateSearchConfiguration(updatedProp: 'searchHub' | 'pipeline', newValue: string | undefined): void;
124
- updateSearchHub(): void;
125
- updatePipeline(): void;
126
- toggleAnalytics(): void;
127
- updateLanguage(): Promise<void> | undefined;
128
- updateIconAssetsPath(): void;
120
+ willUpdate(changedProperties: Map<string, unknown>): void;
129
121
  disconnectedCallback(): void;
130
- handleInitialization(event: InitializeEvent): void;
122
+ private handleInitialization;
131
123
  scrollToTop(): void;
132
124
  closeRelevanceInspector(): void;
133
125
  /**
@@ -135,7 +127,7 @@ export declare class AtomicSearchInterface implements StencilBaseAtomicInterface
135
127
  */
136
128
  initialize(options: InitializationOptions): Promise<void>;
137
129
  /**
138
- * Initializes the connection with an already preconfigured [headless search engine](https://docs.coveo.com/en/headless/latest/reference/interfaces/Search.SearchEngine.html), as opposed to the `initialize` method, which will internally create a new search engine instance.
130
+ * Initializes the interface using the provided [headless search engine](https://docs.coveo.com/en/headless/latest/reference/modules/Search.html, as opposed to the `initialize` method which internally builds a search engine instance.
139
131
  * This bypasses the properties set on the component, such as analytics, searchHub, pipeline, language, timezone & logLevel.
140
132
  */
141
133
  initializeWithSearchEngine(engine: SearchEngine): Promise<void>;
@@ -144,19 +136,30 @@ export declare class AtomicSearchInterface implements StencilBaseAtomicInterface
144
136
  * Executes the first search and logs the interface load event to analytics, after initializing connection to the headless search engine.
145
137
  */
146
138
  executeFirstSearch(): Promise<void>;
147
- get bindings(): Bindings;
139
+ updateSearchConfiguration(updatedProp: 'searchHub' | 'pipeline', newValue: string | undefined): void;
140
+ updateSearchHub(): void;
141
+ updatePipeline(): void;
142
+ toggleAnalytics(): void;
143
+ updateLanguage(): void;
144
+ updateIconAssetsPath(): void;
145
+ private getBindings;
148
146
  private initFieldsToInclude;
149
147
  registerFieldsToInclude(): void;
150
- private updateMobileBreakpoint;
151
148
  private initEngine;
152
149
  private getSearchConfiguration;
153
150
  private get fragment();
154
151
  private initUrlManager;
155
- private initAriaLive;
152
+ private handleRelevanceInspectorDoubleClick;
156
153
  private initRelevanceInspector;
157
154
  private initSearchStatus;
158
155
  private updateHash;
159
156
  private onHashChange;
160
157
  private internalInitialization;
161
- render(): any[];
158
+ render(): import("lit-html").TemplateResult<1>;
159
+ }
160
+ declare global {
161
+ interface HTMLElementTagNameMap {
162
+ 'atomic-search-interface': AtomicSearchInterface;
163
+ }
162
164
  }
165
+ export {};
@@ -1,4 +1,5 @@
1
1
  import type { SearchEngine } from '@coveo/headless';
2
2
  import type { CommonBindings, NonceBindings } from '../../common/interface/bindings';
3
+ import type { AtomicSearchInterface } from './atomic-search-interface';
3
4
  import type { SearchStore } from './store';
4
- export type Bindings = CommonBindings<SearchEngine, SearchStore, HTMLAtomicSearchInterfaceElement> & NonceBindings;
5
+ export type Bindings = CommonBindings<SearchEngine, SearchStore, AtomicSearchInterface> & NonceBindings;
@@ -11,14 +11,16 @@ declare const AtomicSearchLayout_base: import("../../../mixins/mixin-common").Co
11
11
  */
12
12
  export declare class AtomicSearchLayout extends AtomicSearchLayout_base {
13
13
  static styles: import("lit").CSSResult[];
14
- private addStyles;
15
14
  error: Error;
16
15
  /**
17
16
  * The viewport width at which the layout goes from desktop to mobile.
18
17
  * E.g., 800px, 65rem.
19
18
  */
20
19
  mobileBreakpoint: string;
20
+ private layoutStylesController;
21
21
  connectedCallback(): void;
22
+ private emitBreakpointChangeEvent;
23
+ onMobileBreakpointChange(): void;
22
24
  }
23
25
  declare global {
24
26
  interface HTMLElementTagNameMap {