@coveo/atomic 3.33.8-pre.e5ad619274 → 3.33.8-pre.f184f52f60

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 (238) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/components/_index.d.ts +2 -2
  4. package/dist/atomic/components/_index.js +1 -1
  5. package/dist/atomic/components/analytics-config.js +1 -1
  6. package/dist/atomic/components/atomic-category-facet.js +1 -1
  7. package/dist/atomic/components/atomic-facet.js +1 -1
  8. package/dist/atomic/components/atomic-format-currency.js +1 -1
  9. package/dist/atomic/components/atomic-format-number.js +1 -1
  10. package/dist/atomic/components/atomic-format-unit.js +1 -1
  11. package/dist/atomic/components/atomic-insight-history-toggle.js +2 -2
  12. package/dist/atomic/components/atomic-insight-history-toggle.js.map +1 -1
  13. package/dist/atomic/components/atomic-insight-pager.js +2 -38
  14. package/dist/atomic/components/atomic-insight-pager.js.map +1 -1
  15. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +2 -2
  16. package/dist/atomic/components/atomic-insight-user-actions-toggle.js.map +1 -1
  17. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  18. package/dist/atomic/components/atomic-pager.d.ts +11 -0
  19. package/dist/atomic/components/atomic-pager.js +134 -0
  20. package/dist/atomic/components/atomic-pager.js.map +1 -0
  21. package/dist/atomic/components/atomic-query-error.js +1 -1
  22. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  23. package/dist/atomic/components/atomic-quickview.js +1 -1
  24. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  25. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  26. package/dist/atomic/components/atomic-relevance-inspector2.js +2 -2
  27. package/dist/atomic/components/atomic-result-children.js +1 -1
  28. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  29. package/dist/atomic/components/atomic-result-link.js +1 -1
  30. package/dist/atomic/components/atomic-result-list.js +1 -1
  31. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  32. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
  33. package/dist/atomic/components/atomic-search-box.js +17 -12
  34. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  35. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  36. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  37. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  38. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  39. package/dist/atomic/components/clock.js +2 -2
  40. package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +49 -7
  41. package/dist/atomic/components/components/commerce/atomic-commerce-query-summary/atomic-commerce-query-summary.js +2 -2
  42. package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +25 -10
  43. package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +12 -5
  44. package/dist/atomic/components/components/common/atomic-modal/atomic-modal.js +2 -0
  45. package/dist/atomic/components/components/search/atomic-search-box-recent-queries/atomic-search-box-recent-queries.js +137 -0
  46. package/dist/atomic/components/components/search/index.js +1 -1
  47. package/dist/atomic/components/components/search/lazy-index.js +1 -1
  48. package/dist/atomic/components/global/environment.js +1 -1
  49. package/dist/atomic/components/stencil-pager-navigation.js +42 -0
  50. package/dist/atomic/components/stencil-pager-navigation.js.map +1 -0
  51. package/dist/atomic/{p-e8d5e852.entry.js → p-021f01d6.entry.js} +2 -2
  52. package/dist/atomic/{p-45c4685e.entry.js → p-089be992.entry.js} +2 -2
  53. package/dist/atomic/{p-65373475.entry.js → p-09a3a067.entry.js} +2 -2
  54. package/dist/atomic/{p-4915faeb.entry.js → p-11a2e38a.entry.js} +2 -2
  55. package/dist/atomic/{p-a02b1209.entry.js → p-1d1f54a5.entry.js} +2 -2
  56. package/dist/atomic/p-211d7d6a.js +2 -0
  57. package/dist/atomic/p-211d7d6a.js.map +1 -0
  58. package/dist/atomic/p-33f71897.entry.js +2 -0
  59. package/dist/atomic/p-33f71897.entry.js.map +1 -0
  60. package/dist/atomic/{p-5adbf098.entry.js → p-3b023e83.entry.js} +2 -2
  61. package/dist/atomic/{p-4c30ca3e.entry.js → p-49c38b27.entry.js} +2 -2
  62. package/dist/atomic/{p-b4ad3036.entry.js → p-5f1fa581.entry.js} +2 -2
  63. package/dist/atomic/{p-6e6d686e.entry.js → p-7383fd32.entry.js} +2 -2
  64. package/dist/atomic/p-744da781.entry.js +2 -0
  65. package/dist/atomic/{p-fb7ad34b.entry.js.map → p-744da781.entry.js.map} +1 -1
  66. package/dist/atomic/{p-bf50b64d.entry.js → p-7dfcd6af.entry.js} +2 -2
  67. package/dist/atomic/{p-be1b98a6.entry.js → p-7e2109e9.entry.js} +2 -2
  68. package/dist/atomic/{p-12a900c7.entry.js → p-7ff12dbd.entry.js} +2 -2
  69. package/dist/atomic/{p-71bb8125.entry.js → p-89085429.entry.js} +2 -2
  70. package/dist/atomic/{p-a17f09fd.js → p-89ee9829.js} +2 -2
  71. package/dist/atomic/{p-9883415e.entry.js → p-93e29b24.entry.js} +2 -2
  72. package/dist/atomic/{p-0af754d9.entry.js → p-9b1fb140.entry.js} +2 -2
  73. package/dist/atomic/{p-3af5c567.entry.js → p-9c9b1965.entry.js} +2 -2
  74. package/dist/atomic/{p-8acb1466.entry.js → p-a8882a2a.entry.js} +2 -2
  75. package/dist/atomic/{p-00e5bb15.entry.js → p-ae060711.entry.js} +2 -2
  76. package/dist/atomic/{p-d2d22ab2.entry.js → p-b6963bae.entry.js} +2 -2
  77. package/dist/atomic/{p-6f988841.entry.js → p-b7063a0d.entry.js} +2 -2
  78. package/dist/atomic/{p-6329ff94.entry.js → p-ba4bf29f.entry.js} +2 -2
  79. package/dist/atomic/{p-4e9d1f9e.entry.js → p-cd62de88.entry.js} +2 -2
  80. package/dist/atomic/{p-34bc809a.entry.js → p-d026cbf4.entry.js} +2 -2
  81. package/dist/atomic/{p-757de797.entry.js → p-de066001.entry.js} +2 -2
  82. package/dist/atomic/{p-c280cd05.js → p-e1cc5150.js} +1 -1
  83. package/dist/atomic/{p-f073a78d.entry.js → p-f289269f.entry.js} +2 -2
  84. package/dist/atomic/p-fa8b7c4c.entry.js +2 -0
  85. package/dist/atomic/p-fa8b7c4c.entry.js.map +1 -0
  86. package/dist/atomic/p-fcf3f7d7.entry.js +2 -0
  87. package/dist/atomic/p-fcf3f7d7.entry.js.map +1 -0
  88. package/dist/atomic/{p-d11b2b24.entry.js → p-fda26113.entry.js} +2 -2
  89. package/dist/cjs/_loader.cjs.js +1 -1
  90. package/dist/cjs/{analytics-config-6a35718f.js → analytics-config-00f31d12.js} +2 -2
  91. package/dist/cjs/{analytics-config-6a35718f.js.map → analytics-config-00f31d12.js.map} +1 -1
  92. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  93. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  94. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  95. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  96. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  97. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +2 -2
  98. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js.map +1 -1
  99. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  100. package/dist/cjs/atomic-insight-pager.cjs.entry.js +7 -41
  101. package/dist/cjs/atomic-insight-pager.cjs.entry.js.map +1 -1
  102. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +2 -2
  103. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js.map +1 -1
  104. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -1
  105. package/dist/cjs/atomic-pager.cjs.entry.js +121 -0
  106. package/dist/cjs/atomic-pager.cjs.entry.js.map +1 -0
  107. package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
  108. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  109. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  110. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  111. package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
  112. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  113. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js +2 -2
  114. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  115. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  116. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  117. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  118. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +1 -1
  119. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js +76 -0
  120. package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js.map +1 -0
  121. package/dist/cjs/atomic-search-box.cjs.entry.js +15 -4
  122. package/dist/cjs/atomic-search-box.cjs.entry.js.map +1 -1
  123. package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
  124. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  125. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  126. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  127. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  128. package/dist/cjs/atomic.cjs.js +1 -1
  129. package/dist/cjs/clock-7aeb19d0.js +7 -0
  130. package/dist/cjs/clock-7aeb19d0.js.map +1 -0
  131. package/dist/cjs/index-757bc886.js +6 -2
  132. package/dist/cjs/stencil-pager-navigation-c20b8a95.js +48 -0
  133. package/dist/cjs/stencil-pager-navigation-c20b8a95.js.map +1 -0
  134. package/dist/cjs/version.cjs.js +2 -2
  135. package/dist/esm/_loader.js +1 -1
  136. package/dist/esm/{analytics-config-2fbeff47.js → analytics-config-82e68f8c.js} +2 -2
  137. package/dist/esm/{analytics-config-2fbeff47.js.map → analytics-config-82e68f8c.js.map} +1 -1
  138. package/dist/esm/atomic-category-facet.entry.js +1 -1
  139. package/dist/esm/atomic-facet.entry.js +1 -1
  140. package/dist/esm/atomic-format-currency.entry.js +1 -1
  141. package/dist/esm/atomic-format-number.entry.js +1 -1
  142. package/dist/esm/atomic-format-unit.entry.js +1 -1
  143. package/dist/esm/atomic-insight-history-toggle.entry.js +2 -2
  144. package/dist/esm/atomic-insight-history-toggle.entry.js.map +1 -1
  145. package/dist/esm/atomic-insight-interface.entry.js +1 -1
  146. package/dist/esm/atomic-insight-pager.entry.js +4 -38
  147. package/dist/esm/atomic-insight-pager.entry.js.map +1 -1
  148. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +2 -2
  149. package/dist/esm/atomic-insight-user-actions-toggle.entry.js.map +1 -1
  150. package/dist/esm/atomic-numeric-facet.entry.js +1 -1
  151. package/dist/esm/atomic-pager.entry.js +117 -0
  152. package/dist/esm/atomic-pager.entry.js.map +1 -0
  153. package/dist/esm/atomic-query-error.entry.js +1 -1
  154. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  155. package/dist/esm/atomic-quickview.entry.js +1 -1
  156. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  157. package/dist/esm/atomic-refine-modal.entry.js +1 -1
  158. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  159. package/dist/esm/atomic-relevance-inspector.entry.js +2 -2
  160. package/dist/esm/atomic-result-children.entry.js +1 -1
  161. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  162. package/dist/esm/atomic-result-link.entry.js +1 -1
  163. package/dist/esm/atomic-result-list.entry.js +1 -1
  164. package/dist/esm/atomic-result-placeholder_8.entry.js +1 -1
  165. package/dist/esm/atomic-search-box-query-suggestions.entry.js +72 -0
  166. package/dist/esm/atomic-search-box-query-suggestions.entry.js.map +1 -0
  167. package/dist/esm/atomic-search-box.entry.js +15 -4
  168. package/dist/esm/atomic-search-box.entry.js.map +1 -1
  169. package/dist/esm/atomic-search-interface.entry.js +1 -1
  170. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  171. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  172. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  173. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  174. package/dist/esm/atomic.js +1 -1
  175. package/dist/esm/clock-b1f5d7f7.js +5 -0
  176. package/dist/esm/clock-b1f5d7f7.js.map +1 -0
  177. package/dist/esm/index-3f35faca.js +6 -2
  178. package/dist/esm/stencil-pager-navigation-7261a834.js +42 -0
  179. package/dist/esm/stencil-pager-navigation-7261a834.js.map +1 -0
  180. package/dist/esm/version.js +2 -2
  181. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +29 -1
  182. package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +1 -0
  183. package/dist/types/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.d.ts +1 -0
  184. package/dist/types/components/search/atomic-pager/atomic-pager.d.ts +16 -26
  185. package/dist/types/components/search/atomic-search-box/atomic-search-box.d.ts +1 -0
  186. package/dist/types/components/search/atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts +45 -0
  187. package/dist/types/components/search/index.d.ts +1 -1
  188. package/dist/types/components.d.ts +65 -49
  189. package/docs/atomic-docs.json +167 -98
  190. package/package.json +3 -3
  191. package/dist/atomic/components/atomic-search-box-recent-queries.d.ts +0 -11
  192. package/dist/atomic/components/atomic-search-box-recent-queries.js +0 -8
  193. package/dist/atomic/components/atomic-search-box-recent-queries.js.map +0 -1
  194. package/dist/atomic/components/atomic-search-box-recent-queries2.js +0 -183
  195. package/dist/atomic/components/atomic-search-box-recent-queries2.js.map +0 -1
  196. package/dist/atomic/components/components/search/atomic-pager/atomic-pager.js +0 -175
  197. package/dist/atomic/p-516b8165.entry.js +0 -2
  198. package/dist/atomic/p-516b8165.entry.js.map +0 -1
  199. package/dist/atomic/p-593903ec.entry.js +0 -2
  200. package/dist/atomic/p-593903ec.entry.js.map +0 -1
  201. package/dist/atomic/p-fb7ad34b.entry.js +0 -2
  202. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +0 -234
  203. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js.map +0 -1
  204. package/dist/cjs/clock-f03ff827.js +0 -7
  205. package/dist/cjs/clock-f03ff827.js.map +0 -1
  206. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +0 -229
  207. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js.map +0 -1
  208. package/dist/esm/clock-add3e9a5.js +0 -5
  209. package/dist/esm/clock-add3e9a5.js.map +0 -1
  210. package/dist/types/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts +0 -37
  211. /package/dist/atomic/{p-e8d5e852.entry.js.map → p-021f01d6.entry.js.map} +0 -0
  212. /package/dist/atomic/{p-45c4685e.entry.js.map → p-089be992.entry.js.map} +0 -0
  213. /package/dist/atomic/{p-65373475.entry.js.map → p-09a3a067.entry.js.map} +0 -0
  214. /package/dist/atomic/{p-4915faeb.entry.js.map → p-11a2e38a.entry.js.map} +0 -0
  215. /package/dist/atomic/{p-a02b1209.entry.js.map → p-1d1f54a5.entry.js.map} +0 -0
  216. /package/dist/atomic/{p-5adbf098.entry.js.map → p-3b023e83.entry.js.map} +0 -0
  217. /package/dist/atomic/{p-4c30ca3e.entry.js.map → p-49c38b27.entry.js.map} +0 -0
  218. /package/dist/atomic/{p-b4ad3036.entry.js.map → p-5f1fa581.entry.js.map} +0 -0
  219. /package/dist/atomic/{p-6e6d686e.entry.js.map → p-7383fd32.entry.js.map} +0 -0
  220. /package/dist/atomic/{p-bf50b64d.entry.js.map → p-7dfcd6af.entry.js.map} +0 -0
  221. /package/dist/atomic/{p-be1b98a6.entry.js.map → p-7e2109e9.entry.js.map} +0 -0
  222. /package/dist/atomic/{p-12a900c7.entry.js.map → p-7ff12dbd.entry.js.map} +0 -0
  223. /package/dist/atomic/{p-71bb8125.entry.js.map → p-89085429.entry.js.map} +0 -0
  224. /package/dist/atomic/{p-a17f09fd.js.map → p-89ee9829.js.map} +0 -0
  225. /package/dist/atomic/{p-9883415e.entry.js.map → p-93e29b24.entry.js.map} +0 -0
  226. /package/dist/atomic/{p-0af754d9.entry.js.map → p-9b1fb140.entry.js.map} +0 -0
  227. /package/dist/atomic/{p-3af5c567.entry.js.map → p-9c9b1965.entry.js.map} +0 -0
  228. /package/dist/atomic/{p-8acb1466.entry.js.map → p-a8882a2a.entry.js.map} +0 -0
  229. /package/dist/atomic/{p-00e5bb15.entry.js.map → p-ae060711.entry.js.map} +0 -0
  230. /package/dist/atomic/{p-d2d22ab2.entry.js.map → p-b6963bae.entry.js.map} +0 -0
  231. /package/dist/atomic/{p-6f988841.entry.js.map → p-b7063a0d.entry.js.map} +0 -0
  232. /package/dist/atomic/{p-6329ff94.entry.js.map → p-ba4bf29f.entry.js.map} +0 -0
  233. /package/dist/atomic/{p-4e9d1f9e.entry.js.map → p-cd62de88.entry.js.map} +0 -0
  234. /package/dist/atomic/{p-34bc809a.entry.js.map → p-d026cbf4.entry.js.map} +0 -0
  235. /package/dist/atomic/{p-757de797.entry.js.map → p-de066001.entry.js.map} +0 -0
  236. /package/dist/atomic/{p-c280cd05.js.map → p-e1cc5150.js.map} +0 -0
  237. /package/dist/atomic/{p-f073a78d.entry.js.map → p-f289269f.entry.js.map} +0 -0
  238. /package/dist/atomic/{p-d11b2b24.entry.js.map → p-fda26113.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-09-26T15:09:31",
2
+ "timestamp": "2025-09-30T18:22:13",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.20.0",
@@ -5833,6 +5833,172 @@
5833
5833
  "dependencies": [],
5834
5834
  "dependencyGraph": {}
5835
5835
  },
5836
+ {
5837
+ "filePath": "src/components/search/atomic-pager/atomic-pager.tsx",
5838
+ "encapsulation": "shadow",
5839
+ "tag": "atomic-pager",
5840
+ "docs": "The `atomic-pager` provides buttons that allow the end user to navigate through the different result pages.",
5841
+ "docsTags": [
5842
+ {
5843
+ "name": "part",
5844
+ "text": "buttons - The list of the next/previous buttons and page-buttons."
5845
+ },
5846
+ {
5847
+ "name": "part",
5848
+ "text": "page-buttons - The list of page buttons."
5849
+ },
5850
+ {
5851
+ "name": "part",
5852
+ "text": "page-button - The page button."
5853
+ },
5854
+ {
5855
+ "name": "part",
5856
+ "text": "active-page-button - The active page button."
5857
+ },
5858
+ {
5859
+ "name": "part",
5860
+ "text": "previous-button - The previous button."
5861
+ },
5862
+ {
5863
+ "name": "part",
5864
+ "text": "next-button - The next button."
5865
+ },
5866
+ {
5867
+ "name": "part",
5868
+ "text": "previous-button-icon - Icon of the previous button."
5869
+ },
5870
+ {
5871
+ "name": "part",
5872
+ "text": "next-button-icon - Icon of the next button."
5873
+ }
5874
+ ],
5875
+ "usage": {},
5876
+ "props": [
5877
+ {
5878
+ "name": "nextButtonIcon",
5879
+ "type": "string",
5880
+ "complexType": {
5881
+ "original": "string",
5882
+ "resolved": "string",
5883
+ "references": {}
5884
+ },
5885
+ "mutable": false,
5886
+ "attr": "next-button-icon",
5887
+ "reflectToAttr": true,
5888
+ "docs": "The SVG icon to use to display the Next button.\n\n- Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n- Use a value that starts with `assets://`, to display an icon from the Atomic package.\n- Use a stringified SVG to display it directly.",
5889
+ "docsTags": [],
5890
+ "default": "ArrowRightIcon",
5891
+ "values": [
5892
+ {
5893
+ "type": "string"
5894
+ }
5895
+ ],
5896
+ "optional": false,
5897
+ "required": false
5898
+ },
5899
+ {
5900
+ "name": "numberOfPages",
5901
+ "type": "number",
5902
+ "complexType": {
5903
+ "original": "number",
5904
+ "resolved": "number",
5905
+ "references": {}
5906
+ },
5907
+ "mutable": false,
5908
+ "attr": "number-of-pages",
5909
+ "reflectToAttr": true,
5910
+ "docs": "Specifies how many page buttons to display in the pager.",
5911
+ "docsTags": [],
5912
+ "default": "5",
5913
+ "values": [
5914
+ {
5915
+ "type": "number"
5916
+ }
5917
+ ],
5918
+ "optional": false,
5919
+ "required": false
5920
+ },
5921
+ {
5922
+ "name": "previousButtonIcon",
5923
+ "type": "string",
5924
+ "complexType": {
5925
+ "original": "string",
5926
+ "resolved": "string",
5927
+ "references": {}
5928
+ },
5929
+ "mutable": false,
5930
+ "attr": "previous-button-icon",
5931
+ "reflectToAttr": true,
5932
+ "docs": "The SVG icon to use to display the Previous button.\n\n- Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n- Use a value that starts with `assets://`, to display an icon from the Atomic package.\n- Use a stringified SVG to display it directly.",
5933
+ "docsTags": [],
5934
+ "default": "ArrowLeftIcon",
5935
+ "values": [
5936
+ {
5937
+ "type": "string"
5938
+ }
5939
+ ],
5940
+ "optional": false,
5941
+ "required": false
5942
+ }
5943
+ ],
5944
+ "methods": [],
5945
+ "events": [
5946
+ {
5947
+ "event": "atomic/scrollToTop",
5948
+ "detail": "any",
5949
+ "bubbles": true,
5950
+ "complexType": {
5951
+ "original": "any",
5952
+ "resolved": "any",
5953
+ "references": {}
5954
+ },
5955
+ "cancelable": true,
5956
+ "composed": true,
5957
+ "docs": "",
5958
+ "docsTags": []
5959
+ }
5960
+ ],
5961
+ "listeners": [],
5962
+ "styles": [],
5963
+ "slots": [],
5964
+ "parts": [
5965
+ {
5966
+ "name": "active-page-button",
5967
+ "docs": "The active page button."
5968
+ },
5969
+ {
5970
+ "name": "buttons",
5971
+ "docs": "The list of the next/previous buttons and page-buttons."
5972
+ },
5973
+ {
5974
+ "name": "next-button",
5975
+ "docs": "The next button."
5976
+ },
5977
+ {
5978
+ "name": "next-button-icon",
5979
+ "docs": "Icon of the next button."
5980
+ },
5981
+ {
5982
+ "name": "page-button",
5983
+ "docs": "The page button."
5984
+ },
5985
+ {
5986
+ "name": "page-buttons",
5987
+ "docs": "The list of page buttons."
5988
+ },
5989
+ {
5990
+ "name": "previous-button",
5991
+ "docs": "The previous button."
5992
+ },
5993
+ {
5994
+ "name": "previous-button-icon",
5995
+ "docs": "Icon of the previous button."
5996
+ }
5997
+ ],
5998
+ "dependents": [],
5999
+ "dependencies": [],
6000
+ "dependencyGraph": {}
6001
+ },
5836
6002
  {
5837
6003
  "filePath": "src/components/search/facets/atomic-popover/atomic-popover.tsx",
5838
6004
  "encapsulation": "shadow",
@@ -12314,13 +12480,11 @@
12314
12480
  "dependents": [],
12315
12481
  "dependencies": [
12316
12482
  "atomic-suggestion-renderer",
12317
- "atomic-search-box-recent-queries",
12318
12483
  "atomic-search-box-query-suggestions"
12319
12484
  ],
12320
12485
  "dependencyGraph": {
12321
12486
  "atomic-search-box": [
12322
12487
  "atomic-suggestion-renderer",
12323
- "atomic-search-box-recent-queries",
12324
12488
  "atomic-search-box-query-suggestions"
12325
12489
  ]
12326
12490
  }
@@ -12639,101 +12803,6 @@
12639
12803
  ]
12640
12804
  }
12641
12805
  },
12642
- {
12643
- "filePath": "src/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.tsx",
12644
- "encapsulation": "shadow",
12645
- "tag": "atomic-search-box-recent-queries",
12646
- "docs": "The `atomic-search-box-recent-queries` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of recent query suggestions.",
12647
- "docsTags": [],
12648
- "usage": {},
12649
- "props": [
12650
- {
12651
- "name": "icon",
12652
- "type": "string | undefined",
12653
- "complexType": {
12654
- "original": "string",
12655
- "resolved": "string | undefined",
12656
- "references": {}
12657
- },
12658
- "mutable": false,
12659
- "attr": "icon",
12660
- "reflectToAttr": false,
12661
- "docs": "The SVG icon to display.\n\n- Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n- Use a value that starts with `assets://`, to display an icon from the Atomic package.\n- Use a stringified SVG to display it directly.",
12662
- "docsTags": [],
12663
- "values": [
12664
- {
12665
- "type": "string"
12666
- },
12667
- {
12668
- "type": "undefined"
12669
- }
12670
- ],
12671
- "optional": true,
12672
- "required": false
12673
- },
12674
- {
12675
- "name": "maxWithQuery",
12676
- "type": "number",
12677
- "complexType": {
12678
- "original": "number",
12679
- "resolved": "number",
12680
- "references": {}
12681
- },
12682
- "mutable": false,
12683
- "attr": "max-with-query",
12684
- "reflectToAttr": true,
12685
- "docs": "The maximum number of suggestions that will be displayed if the user has typed something into the input field.",
12686
- "docsTags": [],
12687
- "default": "3",
12688
- "values": [
12689
- {
12690
- "type": "number"
12691
- }
12692
- ],
12693
- "optional": false,
12694
- "required": false
12695
- },
12696
- {
12697
- "name": "maxWithoutQuery",
12698
- "type": "number | undefined",
12699
- "complexType": {
12700
- "original": "number",
12701
- "resolved": "number | undefined",
12702
- "references": {}
12703
- },
12704
- "mutable": false,
12705
- "attr": "max-without-query",
12706
- "reflectToAttr": true,
12707
- "docs": "The maximum number of suggestions that will be displayed initially when the input field is empty.",
12708
- "docsTags": [],
12709
- "values": [
12710
- {
12711
- "type": "number"
12712
- },
12713
- {
12714
- "type": "undefined"
12715
- }
12716
- ],
12717
- "optional": true,
12718
- "required": false
12719
- }
12720
- ],
12721
- "methods": [],
12722
- "events": [],
12723
- "listeners": [],
12724
- "styles": [],
12725
- "slots": [],
12726
- "parts": [],
12727
- "dependents": [
12728
- "atomic-search-box"
12729
- ],
12730
- "dependencies": [],
12731
- "dependencyGraph": {
12732
- "atomic-search-box": [
12733
- "atomic-search-box-recent-queries"
12734
- ]
12735
- }
12736
- },
12737
12806
  {
12738
12807
  "filePath": "src/components/search/atomic-search-interface/atomic-search-interface.tsx",
12739
12808
  "encapsulation": "shadow",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@coveo/atomic",
3
3
  "type": "module",
4
- "version": "3.33.8-pre.e5ad619274",
4
+ "version": "3.33.8-pre.f184f52f60",
5
5
  "description": "A web-component library for building modern UIs interfacing with the Coveo platform",
6
6
  "homepage": "https://docs.coveo.com/en/atomic/latest/",
7
7
  "repository": {
@@ -81,7 +81,7 @@
81
81
  },
82
82
  "dependencies": {
83
83
  "@coveo/bueno": "1.1.2",
84
- "@coveo/headless": "3.31.1-pre.e5ad619274",
84
+ "@coveo/headless": "3.31.1-pre.f184f52f60",
85
85
  "@lit/context": "1.1.6",
86
86
  "@open-wc/lit-helpers": "0.7.0",
87
87
  "@popperjs/core": "2.11.8",
@@ -153,7 +153,7 @@
153
153
  },
154
154
  "peerDependencies": {
155
155
  "@coveo/bueno": "1.1.2",
156
- "@coveo/headless": "3.31.1-pre.e5ad619274",
156
+ "@coveo/headless": "3.31.1-pre.f184f52f60",
157
157
  "typescript": ">=5.0.0"
158
158
  },
159
159
  "peerDependenciesMeta": {
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../../types/components";
2
-
3
- interface AtomicSearchBoxRecentQueries extends Components.AtomicSearchBoxRecentQueries, HTMLElement {}
4
- export const AtomicSearchBoxRecentQueries: {
5
- prototype: AtomicSearchBoxRecentQueries;
6
- new (): AtomicSearchBoxRecentQueries;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1,8 +0,0 @@
1
- import { A as AtomicSearchBoxRecentQueries$1, d as defineCustomElement$1 } from './atomic-search-box-recent-queries2.js';
2
-
3
- const AtomicSearchBoxRecentQueries = AtomicSearchBoxRecentQueries$1;
4
- const defineCustomElement = defineCustomElement$1;
5
-
6
- export { AtomicSearchBoxRecentQueries, defineCustomElement };
7
-
8
- //# sourceMappingURL=atomic-search-box-recent-queries.js.map
@@ -1 +0,0 @@
1
- {"file":"atomic-search-box-recent-queries.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1,183 +0,0 @@
1
- import { h, proxyCustomElement, HTMLElement } from '@stencil/core/internal/client';
2
- import { HighlightUtils, buildRecentQueriesList } from '@coveo/headless';
3
- import { C as Clock } from './clock.js';
4
- import { a as SafeStorage, S as StorageItems } from './local-storage-utils.js';
5
- import { o as once } from './utils.js';
6
- import { e as encodeForDomAttribute } from './string-utils.js';
7
- import { d as dispatchSearchBoxSuggestionsEvent } from './suggestions-events.js';
8
-
9
- const getPartialRecentQueryElement = (value, i18n) => {
10
- return {
11
- part: 'recent-query-item',
12
- query: value,
13
- key: `recent-${encodeForDomAttribute(value)}`,
14
- ariaLabel: i18n.t('recent-query-suggestion-label', {
15
- query: value,
16
- interpolation: { escapeValue: false },
17
- }),
18
- };
19
- };
20
- const getPartialRecentQueryClearElement = (i18n) => {
21
- return {
22
- key: 'recent-query-clear',
23
- ariaLabel: i18n.t('clear-recent-searches', {
24
- interpolation: { escapeValue: false },
25
- }),
26
- part: 'recent-query-title-item suggestion-divider',
27
- hideIfLast: true,
28
- };
29
- };
30
- const RecentQueriesContainer = (_, children) => {
31
- return (h("div", { part: "recent-query-content", class: "flex items-center text-left break-all" }, children));
32
- };
33
- const RecentQueryIcon = ({ icon, }) => {
34
- return (h("atomic-icon", { part: "recent-query-icon", icon: icon, class: "mr-2 h-4 w-4 shrink-0" }));
35
- };
36
- const RecentQueryText = ({ query, value, }) => {
37
- if (query === '') {
38
- return (h("span", { part: "recent-query-text", class: "line-clamp-2 break-all" }, value));
39
- }
40
- return (h("span", { part: "recent-query-text", class: "line-clamp-2 break-all", innerHTML: HighlightUtils.highlightString({
41
- content: value,
42
- openingDelimiter: '<span part="recent-query-text-highlight" class="font-bold">',
43
- closingDelimiter: '</span>',
44
- highlights: [
45
- {
46
- offset: query.length,
47
- length: value.length - query.length,
48
- },
49
- ],
50
- }) }));
51
- };
52
- const RecentQueryClear = ({ i18n, }) => {
53
- return (h("div", { part: "recent-query-title-content", class: "flex w-full justify-between" },
54
- h("span", { class: "font-bold", part: "recent-query-title" }, i18n.t('recent-searches')),
55
- h("span", { part: "recent-query-clear" }, i18n.t('clear'))));
56
- };
57
-
58
- const AtomicSearchBoxRecentQueries = /*@__PURE__*/ proxyCustomElement(class AtomicSearchBoxRecentQueries extends HTMLElement {
59
- constructor() {
60
- super();
61
- this.__registerHost();
62
- this.__attachShadow();
63
- /**
64
- * The maximum number of suggestions that will be displayed if the user has typed something into the input field.
65
- */
66
- this.maxWithQuery = 3;
67
- this.warnUser = once(() => this.bindings.engine.logger.warn('Because analytics are disabled, the recent queries feature is deactivated.'));
68
- this.error = undefined;
69
- this.icon = undefined;
70
- this.maxWithQuery = 3;
71
- this.maxWithoutQuery = undefined;
72
- }
73
- componentWillLoad() {
74
- try {
75
- dispatchSearchBoxSuggestionsEvent((bindings) => {
76
- this.bindings = bindings;
77
- return this.initialize();
78
- }, this.host, ['atomic-search-box']);
79
- }
80
- catch (error) {
81
- this.error = error;
82
- }
83
- }
84
- renderIcon() {
85
- return this.icon || Clock;
86
- }
87
- initialize() {
88
- this.storage = new SafeStorage();
89
- this.recentQueriesList = buildRecentQueriesList(this.bindings.engine, {
90
- initialState: { queries: this.retrieveLocalStorage() },
91
- options: { maxLength: 1000, clearFilters: this.bindings.clearFilters },
92
- });
93
- this.recentQueriesList.subscribe(() => this.updateLocalStorage());
94
- return {
95
- position: Array.from(this.host.parentNode.children).indexOf(this.host),
96
- renderItems: () => this.renderItems(),
97
- };
98
- }
99
- retrieveLocalStorage() {
100
- return this.storage.getParsedJSON(StorageItems.RECENT_QUERIES, []);
101
- }
102
- updateLocalStorage() {
103
- if (!this.recentQueriesList.state.analyticsEnabled) {
104
- return this.disableFeature();
105
- }
106
- return this.storage.setJSON(StorageItems.RECENT_QUERIES, this.recentQueriesList.state.queries);
107
- }
108
- disableFeature() {
109
- this.warnUser();
110
- this.storage.removeItem(StorageItems.RECENT_QUERIES);
111
- }
112
- renderItems() {
113
- if (!this.recentQueriesList.state.analyticsEnabled) {
114
- return [];
115
- }
116
- const query = this.bindings.searchBoxController.state.value;
117
- const hasQuery = query !== '';
118
- const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;
119
- const filteredQueries = this.recentQueriesList.state.queries
120
- .filter((recentQuery) => recentQuery.toLowerCase().startsWith(query.toLowerCase()))
121
- .slice(0, max);
122
- const suggestionElements = filteredQueries.map((value) => this.renderItem(value));
123
- if (suggestionElements.length) {
124
- suggestionElements.unshift(this.renderClear());
125
- }
126
- return suggestionElements;
127
- }
128
- renderClear() {
129
- const partialItem = getPartialRecentQueryClearElement(this.bindings.i18n);
130
- return {
131
- ...partialItem,
132
- content: h(RecentQueryClear, { i18n: this.bindings.i18n }),
133
- onSelect: () => {
134
- this.recentQueriesList.clear();
135
- this.bindings.triggerSuggestions();
136
- },
137
- };
138
- }
139
- renderItem(value) {
140
- const query = this.bindings.searchBoxController.state.value;
141
- const partialItem = getPartialRecentQueryElement(value, this.bindings.i18n);
142
- return {
143
- ...partialItem,
144
- content: (h(RecentQueriesContainer, null, h(RecentQueryIcon, { icon: this.renderIcon() }), h(RecentQueryText, { query: query, value: value }))),
145
- onSelect: () => {
146
- if (this.bindings.isStandalone) {
147
- this.bindings.searchBoxController.updateText(value);
148
- this.bindings.searchBoxController.submit();
149
- return;
150
- }
151
- this.recentQueriesList.executeRecentQuery(this.recentQueriesList.state.queries.indexOf(value));
152
- },
153
- };
154
- }
155
- render() {
156
- if (this.error) {
157
- return (h("atomic-component-error", { key: '577129c08c073b99dbb6b86b77e2ffa7c2ff7f69', element: this.host, error: this.error }));
158
- }
159
- }
160
- get host() { return this; }
161
- }, [1, "atomic-search-box-recent-queries", {
162
- "icon": [1],
163
- "maxWithQuery": [514, "max-with-query"],
164
- "maxWithoutQuery": [514, "max-without-query"],
165
- "error": [32]
166
- }]);
167
- function defineCustomElement() {
168
- if (typeof customElements === "undefined") {
169
- return;
170
- }
171
- const components = ["atomic-search-box-recent-queries"];
172
- components.forEach(tagName => { switch (tagName) {
173
- case "atomic-search-box-recent-queries":
174
- if (!customElements.get(tagName)) {
175
- customElements.define(tagName, AtomicSearchBoxRecentQueries);
176
- }
177
- break;
178
- } });
179
- }
180
-
181
- export { AtomicSearchBoxRecentQueries as A, defineCustomElement as d };
182
-
183
- //# sourceMappingURL=atomic-search-box-recent-queries2.js.map
@@ -1 +0,0 @@
1
- {"file":"atomic-search-box-recent-queries2.js","mappings":"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","names":[],"sources":["src/components/common/suggestions/stencil-recent-queries.tsx","src/components/search/search-box-suggestions/atomic-search-box-recent-queries/atomic-search-box-recent-queries.tsx"],"sourcesContent":["import {HighlightUtils} from '@coveo/headless';\nimport {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {encodeForDomAttribute} from '../../../utils/string-utils';\nimport {SearchBoxSuggestionElement} from './suggestions-types';\n\nexport const getPartialRecentQueryElement = (\n value: string,\n i18n: i18n\n): Pick<SearchBoxSuggestionElement, 'ariaLabel' | 'key' | 'query' | 'part'> => {\n return {\n part: 'recent-query-item',\n query: value,\n key: `recent-${encodeForDomAttribute(value)}`,\n ariaLabel: i18n.t('recent-query-suggestion-label', {\n query: value,\n interpolation: {escapeValue: false},\n }),\n };\n};\n\nexport const getPartialRecentQueryClearElement = (\n i18n: i18n\n): Pick<\n SearchBoxSuggestionElement,\n 'ariaLabel' | 'key' | 'part' | 'hideIfLast'\n> => {\n return {\n key: 'recent-query-clear',\n ariaLabel: i18n.t('clear-recent-searches', {\n interpolation: {escapeValue: false},\n }),\n part: 'recent-query-title-item suggestion-divider',\n hideIfLast: true,\n };\n};\n\nexport const RecentQueriesContainer: FunctionalComponent = (_, children) => {\n return (\n <div\n part=\"recent-query-content\"\n class=\"flex items-center text-left break-all\"\n >\n {children}\n </div>\n );\n};\n\ninterface RecentQueryIconProps {\n icon: string;\n}\n\nexport const RecentQueryIcon: FunctionalComponent<RecentQueryIconProps> = ({\n icon,\n}) => {\n return (\n <atomic-icon\n part=\"recent-query-icon\"\n icon={icon}\n class=\"mr-2 h-4 w-4 shrink-0\"\n ></atomic-icon>\n );\n};\n\ninterface RecentQueryTextProps {\n query: string;\n value: string;\n}\n\nexport const RecentQueryText: FunctionalComponent<RecentQueryTextProps> = ({\n query,\n value,\n}) => {\n if (query === '') {\n return (\n <span part=\"recent-query-text\" class=\"line-clamp-2 break-all\">\n {value}\n </span>\n );\n }\n return (\n <span\n part=\"recent-query-text\"\n class=\"line-clamp-2 break-all\"\n innerHTML={HighlightUtils.highlightString({\n content: value,\n openingDelimiter:\n '<span part=\"recent-query-text-highlight\" class=\"font-bold\">',\n closingDelimiter: '</span>',\n highlights: [\n {\n offset: query.length,\n length: value.length - query.length,\n },\n ],\n })}\n ></span>\n );\n};\n\ninterface RecentQueryClearProps {\n i18n: i18n;\n}\n\nexport const RecentQueryClear: FunctionalComponent<RecentQueryClearProps> = ({\n i18n,\n}) => {\n return (\n <div part=\"recent-query-title-content\" class=\"flex w-full justify-between\">\n <span class=\"font-bold\" part=\"recent-query-title\">\n {i18n.t('recent-searches')}\n </span>\n <span part=\"recent-query-clear\">{i18n.t('clear')}</span>\n </div>\n );\n};\n","import {\n buildRecentQueriesList,\n RecentQueriesList,\n SearchBox,\n} from '@coveo/headless';\nimport {Component, Element, Prop, State, h} from '@stencil/core';\nimport Clock from '../../../../images/clock.svg';\nimport {SafeStorage, StorageItems} from '../../../../utils/local-storage-utils';\nimport {once} from '../../../../utils/utils';\nimport {\n getPartialRecentQueryClearElement,\n getPartialRecentQueryElement,\n RecentQueriesContainer,\n RecentQueryClear,\n RecentQueryIcon,\n RecentQueryText,\n} from '../../../common/suggestions/stencil-recent-queries';\nimport {\n dispatchSearchBoxSuggestionsEvent,\n} from '../../../common/suggestions/suggestions-events';\nimport type {\n SearchBoxSuggestionElement,\n SearchBoxSuggestions,\n SearchBoxSuggestionsBindings,\n} from '../../../common/suggestions/suggestions-types';\nimport {Bindings} from '../../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-search-box-recent-queries` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of recent query suggestions.\n */\n@Component({\n tag: 'atomic-search-box-recent-queries',\n shadow: true,\n})\nexport class AtomicSearchBoxRecentQueries {\n private bindings!: SearchBoxSuggestionsBindings<SearchBox, Bindings>;\n private recentQueriesList!: RecentQueriesList;\n private storage!: SafeStorage;\n\n @Element() private host!: HTMLElement;\n\n @State() public error!: Error;\n\n /**\n * The SVG icon to display.\n *\n * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.\n * - Use a value that starts with `assets://`, to display an icon from the Atomic package.\n * - Use a stringified SVG to display it directly.\n */\n @Prop() public icon?: string;\n\n /**\n * The maximum number of suggestions that will be displayed if the user has typed something into the input field.\n */\n @Prop({reflect: true}) public maxWithQuery = 3;\n /**\n * The maximum number of suggestions that will be displayed initially when the input field is empty.\n */\n @Prop({reflect: true}) public maxWithoutQuery?: number;\n\n componentWillLoad() {\n try {\n dispatchSearchBoxSuggestionsEvent<SearchBox, Bindings>(\n (bindings) => {\n this.bindings = bindings;\n return this.initialize();\n },\n this.host,\n ['atomic-search-box']\n );\n } catch (error) {\n this.error = error as Error;\n }\n }\n\n private renderIcon() {\n return this.icon || Clock;\n }\n\n private initialize(): SearchBoxSuggestions {\n this.storage = new SafeStorage();\n this.recentQueriesList = buildRecentQueriesList(this.bindings.engine, {\n initialState: {queries: this.retrieveLocalStorage()},\n options: {maxLength: 1000, clearFilters: this.bindings.clearFilters},\n });\n\n this.recentQueriesList.subscribe(() => this.updateLocalStorage());\n\n return {\n position: Array.from(this.host.parentNode!.children).indexOf(this.host),\n renderItems: () => this.renderItems(),\n };\n }\n\n private retrieveLocalStorage() {\n return this.storage.getParsedJSON(StorageItems.RECENT_QUERIES, []);\n }\n\n private updateLocalStorage() {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return this.disableFeature();\n }\n\n return this.storage.setJSON(\n StorageItems.RECENT_QUERIES,\n this.recentQueriesList.state.queries\n );\n }\n\n private warnUser = once(() =>\n this.bindings.engine.logger.warn(\n 'Because analytics are disabled, the recent queries feature is deactivated.'\n )\n );\n\n private disableFeature() {\n this.warnUser();\n this.storage.removeItem(StorageItems.RECENT_QUERIES);\n }\n\n private renderItems(): SearchBoxSuggestionElement[] {\n if (!this.recentQueriesList.state.analyticsEnabled) {\n return [];\n }\n\n const query = this.bindings.searchBoxController.state.value;\n const hasQuery = query !== '';\n const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;\n const filteredQueries = this.recentQueriesList.state.queries\n .filter((recentQuery) =>\n recentQuery.toLowerCase().startsWith(query.toLowerCase())\n )\n .slice(0, max);\n\n const suggestionElements: SearchBoxSuggestionElement[] =\n filteredQueries.map((value) => this.renderItem(value));\n if (suggestionElements.length) {\n suggestionElements.unshift(this.renderClear());\n }\n\n return suggestionElements;\n }\n\n private renderClear(): SearchBoxSuggestionElement {\n const partialItem = getPartialRecentQueryClearElement(this.bindings.i18n);\n\n return {\n ...partialItem,\n content: <RecentQueryClear i18n={this.bindings.i18n} />,\n onSelect: () => {\n this.recentQueriesList.clear();\n this.bindings.triggerSuggestions();\n },\n };\n }\n\n private renderItem(value: string): SearchBoxSuggestionElement {\n const query = this.bindings.searchBoxController.state.value;\n const partialItem = getPartialRecentQueryElement(value, this.bindings.i18n);\n return {\n ...partialItem,\n content: (\n <RecentQueriesContainer>\n <RecentQueryIcon icon={this.renderIcon()} />\n <RecentQueryText query={query} value={value} />\n </RecentQueriesContainer>\n ),\n\n onSelect: () => {\n if (this.bindings.isStandalone) {\n this.bindings.searchBoxController.updateText(value);\n this.bindings.searchBoxController.submit();\n return;\n }\n\n this.recentQueriesList.executeRecentQuery(\n this.recentQueriesList.state.queries.indexOf(value)\n );\n },\n };\n }\n\n public render() {\n if (this.error) {\n return (\n <atomic-component-error\n element={this.host}\n error={this.error}\n ></atomic-component-error>\n );\n }\n }\n}\n"],"version":3}