@coveo/atomic 3.33.8-pre.fbe332fd49 → 3.33.9-pre.5fbff5b5f4

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 (248) 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 -0
  4. package/dist/atomic/components/_index.js +1 -0
  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-pager.js +2 -38
  12. package/dist/atomic/components/atomic-insight-pager.js.map +1 -1
  13. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  14. package/dist/atomic/components/atomic-pager.d.ts +11 -0
  15. package/dist/atomic/components/atomic-pager.js +134 -0
  16. package/dist/atomic/components/atomic-pager.js.map +1 -0
  17. package/dist/atomic/components/atomic-query-error.js +1 -1
  18. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  19. package/dist/atomic/components/atomic-quickview.js +1 -1
  20. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  21. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  22. package/dist/atomic/components/atomic-relevance-inspector2.js +2 -2
  23. package/dist/atomic/components/atomic-result-children.js +1 -1
  24. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  25. package/dist/atomic/components/atomic-result-link.js +1 -1
  26. package/dist/atomic/components/atomic-result-list.js +1 -1
  27. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  28. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
  29. package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
  30. package/dist/atomic/components/atomic-search-box.js +15 -4
  31. package/dist/atomic/components/atomic-search-box.js.map +1 -1
  32. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  33. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  34. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  35. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  36. package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +49 -7
  37. package/dist/atomic/components/components/commerce/atomic-commerce-query-summary/atomic-commerce-query-summary.js +2 -2
  38. package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js +25 -10
  39. package/dist/atomic/components/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.js +12 -5
  40. package/dist/atomic/components/components/common/atomic-modal/atomic-modal.js +2 -0
  41. package/dist/atomic/components/components/common/formats/format-common.js +1 -1
  42. package/dist/atomic/components/components/search/index.js +0 -1
  43. package/dist/atomic/components/components/search/lazy-index.js +0 -1
  44. package/dist/atomic/components/depends-on.js +28 -28
  45. package/dist/atomic/components/depends-on.js.map +1 -1
  46. package/dist/atomic/components/format-common.js.map +1 -1
  47. package/dist/atomic/components/global/environment.js +1 -1
  48. package/dist/atomic/components/index.js.map +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-2f8de0b9.entry.js → p-07fbb49a.entry.js} +2 -2
  53. package/dist/atomic/{p-45c4685e.entry.js → p-089be992.entry.js} +2 -2
  54. package/dist/atomic/{p-65373475.entry.js → p-09a3a067.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-25a96534.js.map +1 -1
  59. package/dist/atomic/{p-4915faeb.entry.js → p-2ce8220a.entry.js} +2 -2
  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-e514cdb2.entry.js → p-4a74f4a3.entry.js} +2 -2
  63. package/dist/atomic/{p-516b8165.entry.js → p-4c2f230f.entry.js} +2 -2
  64. package/dist/atomic/{p-43c16eeb.entry.js → p-5650c7ee.entry.js} +2 -2
  65. package/dist/atomic/{p-b4ad3036.entry.js → p-5f1fa581.entry.js} +2 -2
  66. package/dist/atomic/{p-470f88ed.entry.js → p-6a49f518.entry.js} +2 -2
  67. package/dist/atomic/p-744da781.entry.js +2 -0
  68. package/dist/atomic/{p-fb7ad34b.entry.js.map → p-744da781.entry.js.map} +1 -1
  69. package/dist/atomic/{p-bf50b64d.entry.js → p-7dfcd6af.entry.js} +2 -2
  70. package/dist/atomic/{p-be1b98a6.entry.js → p-7e2109e9.entry.js} +2 -2
  71. package/dist/atomic/{p-71bb8125.entry.js → p-89085429.entry.js} +2 -2
  72. package/dist/atomic/{p-4e9d1f9e.entry.js → p-89ab44de.entry.js} +2 -2
  73. package/dist/atomic/{p-3af5c567.entry.js → p-92548ab6.entry.js} +2 -2
  74. package/dist/atomic/{p-9883415e.entry.js → p-93e29b24.entry.js} +2 -2
  75. package/dist/atomic/{p-8acb1466.entry.js → p-a8882a2a.entry.js} +2 -2
  76. package/dist/atomic/{p-534b6a0a.entry.js → p-a9b32844.entry.js} +2 -2
  77. package/dist/atomic/{p-6f988841.entry.js → p-ada63017.entry.js} +2 -2
  78. package/dist/atomic/{p-00e5bb15.entry.js → p-ae060711.entry.js} +2 -2
  79. package/dist/atomic/{p-d2d22ab2.entry.js → p-b6963bae.entry.js} +2 -2
  80. package/dist/atomic/{p-08794435.entry.js → p-ba650801.entry.js} +2 -2
  81. package/dist/atomic/{p-ca762513.entry.js → p-c889adbd.entry.js} +2 -2
  82. package/dist/atomic/{p-e1865f9f.entry.js → p-cbfe91a3.entry.js} +2 -2
  83. package/dist/atomic/{p-031670fe.js → p-d503b157.js} +2 -2
  84. package/dist/atomic/{p-d11b2b24.entry.js → p-d716d680.entry.js} +2 -2
  85. package/dist/atomic/p-dafbe2ef.js +2 -0
  86. package/dist/atomic/p-dafbe2ef.js.map +1 -0
  87. package/dist/atomic/{p-757de797.entry.js → p-de066001.entry.js} +2 -2
  88. package/dist/atomic/{p-f073a78d.entry.js → p-f289269f.entry.js} +2 -2
  89. package/dist/atomic/{p-811d6dcb.entry.js → p-f5b58a15.entry.js} +2 -2
  90. package/dist/atomic/{p-fbe37f4b.entry.js → p-f8d62605.entry.js} +2 -2
  91. package/dist/atomic/{p-bdbbb47b.entry.js → p-f8ded37c.entry.js} +2 -2
  92. package/dist/atomic/p-fa8b7c4c.entry.js +2 -0
  93. package/dist/atomic/p-fa8b7c4c.entry.js.map +1 -0
  94. package/dist/atomic/p-fcf3f7d7.entry.js +2 -0
  95. package/dist/atomic/p-fcf3f7d7.entry.js.map +1 -0
  96. package/dist/cjs/_loader.cjs.js +1 -1
  97. package/dist/cjs/{analytics-config-e3890e2c.js → analytics-config-131765bd.js} +2 -2
  98. package/dist/cjs/{analytics-config-e3890e2c.js.map → analytics-config-131765bd.js.map} +1 -1
  99. package/dist/cjs/atomic-category-facet.cjs.entry.js +2 -2
  100. package/dist/cjs/atomic-color-facet.cjs.entry.js +1 -1
  101. package/dist/cjs/atomic-facet.cjs.entry.js +2 -2
  102. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  103. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  104. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  105. package/dist/cjs/atomic-insight-facet.cjs.entry.js +1 -1
  106. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  107. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +1 -1
  108. package/dist/cjs/atomic-insight-pager.cjs.entry.js +7 -41
  109. package/dist/cjs/atomic-insight-pager.cjs.entry.js.map +1 -1
  110. package/dist/cjs/atomic-insight-timeframe-facet.cjs.entry.js +1 -1
  111. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +2 -2
  112. package/dist/cjs/atomic-pager.cjs.entry.js +121 -0
  113. package/dist/cjs/atomic-pager.cjs.entry.js.map +1 -0
  114. package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
  115. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  116. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  117. package/dist/cjs/atomic-rating-facet.cjs.entry.js +1 -1
  118. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +1 -1
  119. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  120. package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
  121. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  122. package/dist/cjs/atomic-relevance-inspector.cjs.entry.js +2 -2
  123. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  124. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  125. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  126. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  127. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +1 -1
  128. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +2 -2
  129. package/dist/cjs/atomic-search-box.cjs.entry.js +15 -4
  130. package/dist/cjs/atomic-search-box.cjs.entry.js.map +1 -1
  131. package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
  132. package/dist/cjs/atomic-segmented-facet.cjs.entry.js +1 -1
  133. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  134. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  135. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  136. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  137. package/dist/cjs/atomic-timeframe-facet.cjs.entry.js +1 -1
  138. package/dist/cjs/atomic.cjs.js +1 -1
  139. package/dist/cjs/depends-on-f0cf3617.js +68 -0
  140. package/dist/cjs/depends-on-f0cf3617.js.map +1 -0
  141. package/dist/cjs/format-common-4aa8aa88.js.map +1 -1
  142. package/dist/cjs/index-757bc886.js +4 -0
  143. package/dist/cjs/stencil-pager-navigation-c20b8a95.js +48 -0
  144. package/dist/cjs/stencil-pager-navigation-c20b8a95.js.map +1 -0
  145. package/dist/cjs/version.cjs.js +2 -2
  146. package/dist/esm/_loader.js +1 -1
  147. package/dist/esm/{analytics-config-76f4b38f.js → analytics-config-0ec5e016.js} +2 -2
  148. package/dist/esm/{analytics-config-76f4b38f.js.map → analytics-config-0ec5e016.js.map} +1 -1
  149. package/dist/esm/atomic-category-facet.entry.js +2 -2
  150. package/dist/esm/atomic-color-facet.entry.js +1 -1
  151. package/dist/esm/atomic-facet.entry.js +2 -2
  152. package/dist/esm/atomic-format-currency.entry.js +1 -1
  153. package/dist/esm/atomic-format-number.entry.js +1 -1
  154. package/dist/esm/atomic-format-unit.entry.js +1 -1
  155. package/dist/esm/atomic-insight-facet.entry.js +1 -1
  156. package/dist/esm/atomic-insight-interface.entry.js +1 -1
  157. package/dist/esm/atomic-insight-numeric-facet.entry.js +1 -1
  158. package/dist/esm/atomic-insight-pager.entry.js +4 -38
  159. package/dist/esm/atomic-insight-pager.entry.js.map +1 -1
  160. package/dist/esm/atomic-insight-timeframe-facet.entry.js +1 -1
  161. package/dist/esm/atomic-numeric-facet.entry.js +2 -2
  162. package/dist/esm/atomic-pager.entry.js +117 -0
  163. package/dist/esm/atomic-pager.entry.js.map +1 -0
  164. package/dist/esm/atomic-query-error.entry.js +1 -1
  165. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  166. package/dist/esm/atomic-quickview.entry.js +1 -1
  167. package/dist/esm/atomic-rating-facet.entry.js +1 -1
  168. package/dist/esm/atomic-rating-range-facet.entry.js +1 -1
  169. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  170. package/dist/esm/atomic-refine-modal.entry.js +1 -1
  171. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  172. package/dist/esm/atomic-relevance-inspector.entry.js +2 -2
  173. package/dist/esm/atomic-result-children.entry.js +1 -1
  174. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  175. package/dist/esm/atomic-result-link.entry.js +1 -1
  176. package/dist/esm/atomic-result-list.entry.js +1 -1
  177. package/dist/esm/atomic-result-placeholder_8.entry.js +1 -1
  178. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +2 -2
  179. package/dist/esm/atomic-search-box.entry.js +15 -4
  180. package/dist/esm/atomic-search-box.entry.js.map +1 -1
  181. package/dist/esm/atomic-search-interface.entry.js +1 -1
  182. package/dist/esm/atomic-segmented-facet.entry.js +1 -1
  183. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  184. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  185. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  186. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  187. package/dist/esm/atomic-timeframe-facet.entry.js +1 -1
  188. package/dist/esm/atomic.js +1 -1
  189. package/dist/esm/depends-on-20dabb86.js +66 -0
  190. package/dist/esm/depends-on-20dabb86.js.map +1 -0
  191. package/dist/esm/format-common-274e0f7c.js.map +1 -1
  192. package/dist/esm/index-3f35faca.js +4 -0
  193. package/dist/esm/stencil-pager-navigation-7261a834.js +42 -0
  194. package/dist/esm/stencil-pager-navigation-7261a834.js.map +1 -0
  195. package/dist/esm/version.js +2 -2
  196. package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +29 -1
  197. package/dist/types/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.d.ts +1 -0
  198. package/dist/types/components/commerce/atomic-commerce-search-box/atomic-commerce-search-box.d.ts +1 -0
  199. package/dist/types/components/search/atomic-pager/atomic-pager.d.ts +16 -26
  200. package/dist/types/components/search/atomic-search-box/atomic-search-box.d.ts +1 -0
  201. package/dist/types/components/search/index.d.ts +0 -1
  202. package/dist/types/components.d.ts +65 -0
  203. package/docs/atomic-docs.json +167 -1
  204. package/package.json +4 -4
  205. package/dist/atomic/components/components/search/atomic-pager/atomic-pager.js +0 -175
  206. package/dist/atomic/p-0f13077e.js +0 -2
  207. package/dist/atomic/p-0f13077e.js.map +0 -1
  208. package/dist/atomic/p-593903ec.entry.js +0 -2
  209. package/dist/atomic/p-593903ec.entry.js.map +0 -1
  210. package/dist/atomic/p-fb7ad34b.entry.js +0 -2
  211. package/dist/cjs/depends-on-0d4e4f15.js +0 -68
  212. package/dist/cjs/depends-on-0d4e4f15.js.map +0 -1
  213. package/dist/esm/depends-on-d73b0ce3.js +0 -66
  214. package/dist/esm/depends-on-d73b0ce3.js.map +0 -1
  215. /package/dist/atomic/{p-e8d5e852.entry.js.map → p-021f01d6.entry.js.map} +0 -0
  216. /package/dist/atomic/{p-2f8de0b9.entry.js.map → p-07fbb49a.entry.js.map} +0 -0
  217. /package/dist/atomic/{p-45c4685e.entry.js.map → p-089be992.entry.js.map} +0 -0
  218. /package/dist/atomic/{p-65373475.entry.js.map → p-09a3a067.entry.js.map} +0 -0
  219. /package/dist/atomic/{p-a02b1209.entry.js.map → p-1d1f54a5.entry.js.map} +0 -0
  220. /package/dist/atomic/{p-4915faeb.entry.js.map → p-2ce8220a.entry.js.map} +0 -0
  221. /package/dist/atomic/{p-5adbf098.entry.js.map → p-3b023e83.entry.js.map} +0 -0
  222. /package/dist/atomic/{p-4c30ca3e.entry.js.map → p-49c38b27.entry.js.map} +0 -0
  223. /package/dist/atomic/{p-e514cdb2.entry.js.map → p-4a74f4a3.entry.js.map} +0 -0
  224. /package/dist/atomic/{p-516b8165.entry.js.map → p-4c2f230f.entry.js.map} +0 -0
  225. /package/dist/atomic/{p-43c16eeb.entry.js.map → p-5650c7ee.entry.js.map} +0 -0
  226. /package/dist/atomic/{p-b4ad3036.entry.js.map → p-5f1fa581.entry.js.map} +0 -0
  227. /package/dist/atomic/{p-470f88ed.entry.js.map → p-6a49f518.entry.js.map} +0 -0
  228. /package/dist/atomic/{p-bf50b64d.entry.js.map → p-7dfcd6af.entry.js.map} +0 -0
  229. /package/dist/atomic/{p-be1b98a6.entry.js.map → p-7e2109e9.entry.js.map} +0 -0
  230. /package/dist/atomic/{p-71bb8125.entry.js.map → p-89085429.entry.js.map} +0 -0
  231. /package/dist/atomic/{p-4e9d1f9e.entry.js.map → p-89ab44de.entry.js.map} +0 -0
  232. /package/dist/atomic/{p-3af5c567.entry.js.map → p-92548ab6.entry.js.map} +0 -0
  233. /package/dist/atomic/{p-9883415e.entry.js.map → p-93e29b24.entry.js.map} +0 -0
  234. /package/dist/atomic/{p-8acb1466.entry.js.map → p-a8882a2a.entry.js.map} +0 -0
  235. /package/dist/atomic/{p-534b6a0a.entry.js.map → p-a9b32844.entry.js.map} +0 -0
  236. /package/dist/atomic/{p-6f988841.entry.js.map → p-ada63017.entry.js.map} +0 -0
  237. /package/dist/atomic/{p-00e5bb15.entry.js.map → p-ae060711.entry.js.map} +0 -0
  238. /package/dist/atomic/{p-d2d22ab2.entry.js.map → p-b6963bae.entry.js.map} +0 -0
  239. /package/dist/atomic/{p-08794435.entry.js.map → p-ba650801.entry.js.map} +0 -0
  240. /package/dist/atomic/{p-ca762513.entry.js.map → p-c889adbd.entry.js.map} +0 -0
  241. /package/dist/atomic/{p-e1865f9f.entry.js.map → p-cbfe91a3.entry.js.map} +0 -0
  242. /package/dist/atomic/{p-031670fe.js.map → p-d503b157.js.map} +0 -0
  243. /package/dist/atomic/{p-d11b2b24.entry.js.map → p-d716d680.entry.js.map} +0 -0
  244. /package/dist/atomic/{p-757de797.entry.js.map → p-de066001.entry.js.map} +0 -0
  245. /package/dist/atomic/{p-f073a78d.entry.js.map → p-f289269f.entry.js.map} +0 -0
  246. /package/dist/atomic/{p-811d6dcb.entry.js.map → p-f5b58a15.entry.js.map} +0 -0
  247. /package/dist/atomic/{p-fbe37f4b.entry.js.map → p-f8d62605.entry.js.map} +0 -0
  248. /package/dist/atomic/{p-bdbbb47b.entry.js.map → p-f8ded37c.entry.js.map} +0 -0
@@ -0,0 +1,66 @@
1
+ function parseDependsOn(dependsOn) {
2
+ if (Object.keys(dependsOn).length > 1) {
3
+ throw "Depending on multiple facets isn't supported";
4
+ }
5
+ const entries = Object.entries(dependsOn);
6
+ return entries.map(([parentFacetId, expectedValue]) => ({
7
+ parentFacetId,
8
+ condition: buildDependsOnCondition(expectedValue),
9
+ }));
10
+ }
11
+ function buildDependsOnCondition(expectedValue) {
12
+ return (values) => values.some((value) => {
13
+ if (isCategoryFacetValue(value)) {
14
+ return matchesCategoryFacetValue(value, expectedValue);
15
+ }
16
+ if (isSimpleFacetValue(value)) {
17
+ return matchesSimpleFacetValue(value, expectedValue);
18
+ }
19
+ return false;
20
+ });
21
+ }
22
+ function matchesCategoryFacetValue(value, expectedValue) {
23
+ const selectedValue = getSelectedCategoryFacetValueRequest(value);
24
+ if (!selectedValue) {
25
+ return false;
26
+ }
27
+ return !expectedValue || selectedValue.value === expectedValue;
28
+ }
29
+ function matchesSimpleFacetValue(value, expectedValue) {
30
+ if (value.state !== 'selected') {
31
+ return false;
32
+ }
33
+ return !expectedValue || value.value === expectedValue;
34
+ }
35
+ function isCategoryFacetValue(request) {
36
+ const requestAsRecord = request;
37
+ return ((requestAsRecord?.children &&
38
+ Array.isArray(requestAsRecord.children) &&
39
+ requestAsRecord?.state &&
40
+ typeof requestAsRecord.state === 'string') === true);
41
+ }
42
+ function getSelectedCategoryFacetValueRequest(value) {
43
+ if (!isCategoryFacetValue(value)) {
44
+ return null;
45
+ }
46
+ if (value.state === 'selected') {
47
+ return value;
48
+ }
49
+ for (const child of value.children) {
50
+ const selectedValue = getSelectedCategoryFacetValueRequest(child);
51
+ if (selectedValue !== null) {
52
+ return selectedValue;
53
+ }
54
+ }
55
+ return null;
56
+ }
57
+ function isSimpleFacetValue(value) {
58
+ const asRecord = value;
59
+ return ('value' in asRecord &&
60
+ typeof asRecord.value === 'string' &&
61
+ !('children' in asRecord));
62
+ }
63
+
64
+ export { parseDependsOn as p };
65
+
66
+ //# sourceMappingURL=depends-on-20dabb86.js.map
@@ -0,0 +1 @@
1
+ {"file":"depends-on-20dabb86.js","mappings":"SAcgB,cAAc,CAE5B,SAAiC;IACjC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACrC,MAAM,8CAA8C,CAAC;KACtD;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM;QACtD,aAAa;QACb,SAAS,EAAE,uBAAuB,CAAa,aAAa,CAAC;KAC9D,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAE9B,aAAqB;IACrB,OAAO,CAAC,MAAoB,KAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;QAChB,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE;YAC/B,OAAO,yBAAyB,CAC9B,KAA2B,EAC3B,aAAa,CACd,CAAC;SACH;QACD,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,uBAAuB,CAC5B,KAAyB,EACzB,aAAa,CACd,CAAC;SACH;QACD,OAAO,KAAK,CAAC;KACd,CAAC,CAAC;AACP,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAiB,EACjB,aAAqB;IAErB,MAAM,aAAa,GAAG,oCAAoC,CAAC,KAAK,CAAC,CAAC;IAClE,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK,KAAK,aAAa,CAAC;AACjE,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAuB,EACvB,aAAqB;IAErB,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE;QAC9B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC;AACzD,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,MAAM,eAAe,GAAG,OAAkC,CAAC;IAC3D,QACE,CAAC,eAAe,EAAE,QAAQ;QACxB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC;QACvC,eAAe,EAAE,KAAK;QACtB,OAAO,eAAe,CAAC,KAAK,KAAK,QAAQ,MAAM,IAAI,EACrD;AACJ,CAAC;AAED,SAAS,oCAAoC,CAC3C,KAAc;IAEd,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;QAChC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE;QAC9B,OAAO,KAAK,CAAC;KACd;IACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE;QAClC,MAAM,aAAa,GAAG,oCAAoC,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,OAAO,aAAa,CAAC;SACtB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,MAAM,QAAQ,GAAG,KAAgC,CAAC;IAClD,QACE,OAAO,IAAI,QAAQ;QACnB,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAClC,EAAE,UAAU,IAAI,QAAQ,CAAC,EACzB;AACJ;;;;","names":[],"sources":["src/components/common/facets/depends-on.ts"],"sourcesContent":["type GenericCondition<AnyFacetValueRequest> = {\n parentFacetId: string;\n condition(parentValues: AnyFacetValueRequest[]): boolean;\n};\n\ninterface SimpleFacetValue {\n value: string;\n state: string;\n}\n\ninterface CategoryFacetValue extends SimpleFacetValue {\n children: SimpleFacetValue[];\n}\n\nexport function parseDependsOn<\n FacetValue extends SimpleFacetValue | CategoryFacetValue,\n>(dependsOn: Record<string, string>): GenericCondition<FacetValue>[] {\n if (Object.keys(dependsOn).length > 1) {\n throw \"Depending on multiple facets isn't supported\";\n }\n\n const entries = Object.entries(dependsOn);\n return entries.map(([parentFacetId, expectedValue]) => ({\n parentFacetId,\n condition: buildDependsOnCondition<FacetValue>(expectedValue),\n }));\n}\n\nfunction buildDependsOnCondition<\n FacetValue extends SimpleFacetValue | CategoryFacetValue,\n>(expectedValue: string): (values: FacetValue[]) => boolean {\n return (values: FacetValue[]) =>\n values.some((value) => {\n if (isCategoryFacetValue(value)) {\n return matchesCategoryFacetValue(\n value as CategoryFacetValue,\n expectedValue\n );\n }\n if (isSimpleFacetValue(value)) {\n return matchesSimpleFacetValue(\n value as SimpleFacetValue,\n expectedValue\n );\n }\n return false;\n });\n}\n\nfunction matchesCategoryFacetValue<FacetValue extends CategoryFacetValue>(\n value: FacetValue,\n expectedValue: string\n): boolean {\n const selectedValue = getSelectedCategoryFacetValueRequest(value);\n if (!selectedValue) {\n return false;\n }\n return !expectedValue || selectedValue.value === expectedValue;\n}\n\nfunction matchesSimpleFacetValue(\n value: SimpleFacetValue,\n expectedValue: string\n): boolean {\n if (value.state !== 'selected') {\n return false;\n }\n return !expectedValue || value.value === expectedValue;\n}\n\nfunction isCategoryFacetValue(request: unknown): request is CategoryFacetValue {\n const requestAsRecord = request as Record<string, unknown>;\n return (\n (requestAsRecord?.children &&\n Array.isArray(requestAsRecord.children) &&\n requestAsRecord?.state &&\n typeof requestAsRecord.state === 'string') === true\n );\n}\n\nfunction getSelectedCategoryFacetValueRequest(\n value: unknown\n): CategoryFacetValue | null {\n if (!isCategoryFacetValue(value)) {\n return null;\n }\n if (value.state === 'selected') {\n return value;\n }\n for (const child of value.children) {\n const selectedValue = getSelectedCategoryFacetValueRequest(child);\n if (selectedValue !== null) {\n return selectedValue;\n }\n }\n return null;\n}\n\nfunction isSimpleFacetValue(value: unknown): value is SimpleFacetValue {\n const asRecord = value as Record<string, unknown>;\n return (\n 'value' in asRecord &&\n typeof asRecord.value === 'string' &&\n !('children' in asRecord)\n );\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"file":"format-common-274e0f7c.js","mappings":";;MAIa,yBAAyB,GAAG,CACvC,SAA0B,EAC1B,OAAgB;IAEhB,MAAM,KAAK,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,QAAQ,EAAE;QACZ,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;KACH;AACH,EAAE;MAEW,sBAAsB,GAAoB,CAAC,KAAK,EAAE,SAAS,KACtE,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE;MAErB,wBAAwB,GACnC,CAAC,QAAQ,KAAK,CAAC,KAAK,EAAE,SAAS;IAC7B,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE;QACrC,KAAK,EAAE,UAAU;QACjB,QAAQ;KACT,CAAC,CAAC;AACL;;;;","names":[],"sources":["src/components/common/formats/format-common.ts"],"sourcesContent":["import {buildCustomEvent} from '../../../utils/event-utils';\n\nexport type NumberFormatter = (value: number, languages: string[]) => string;\n\nexport const dispatchNumberFormatEvent = (\n formatter: NumberFormatter,\n element: Element\n) => {\n const event = buildCustomEvent('atomic/numberFormat', formatter);\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n throw new Error(\n 'The Atomic number format component was not handled, as it is not a child of a compatible component'\n );\n }\n};\n\nexport const defaultNumberFormatter: NumberFormatter = (value, languages) =>\n value.toLocaleString(languages);\n\nexport const defaultCurrencyFormatter: (currency: string) => NumberFormatter =\n (currency) => (value, languages) => {\n return value.toLocaleString(languages, {\n style: 'currency',\n currency,\n });\n };\n"],"version":3}
1
+ {"file":"format-common-274e0f7c.js","mappings":";;MAIa,yBAAyB,GAAG,CACvC,SAA0B,EAC1B,OAAgB;IAEhB,MAAM,KAAK,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,QAAQ,EAAE;QACZ,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;KACH;AACH,EAAE;MAEW,sBAAsB,GAAoB,CAAC,KAAK,EAAE,SAAS,KACtE,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE;MAErB,wBAAwB,GACnC,CAAC,QAAQ,KAAK,CAAC,KAAK,EAAE,SAAS;IAC7B,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE;QACrC,KAAK,EAAE,UAAU;QACjB,QAAQ;KACT,CAAC,CAAC;AACL;;;;","names":[],"sources":["src/components/common/formats/format-common.ts"],"sourcesContent":["import {buildCustomEvent} from '@/src/utils/event-utils';\n\nexport type NumberFormatter = (value: number, languages: string[]) => string;\n\nexport const dispatchNumberFormatEvent = (\n formatter: NumberFormatter,\n element: Element\n) => {\n const event = buildCustomEvent('atomic/numberFormat', formatter);\n\n const canceled = element.dispatchEvent(event);\n if (canceled) {\n throw new Error(\n 'The Atomic number format component was not handled, as it is not a child of a compatible component'\n );\n }\n};\n\nexport const defaultNumberFormatter: NumberFormatter = (value, languages) =>\n value.toLocaleString(languages);\n\nexport const defaultCurrencyFormatter: (currency: string) => NumberFormatter =\n (currency) => (value, languages) => {\n return value.toLocaleString(languages, {\n style: 'currency',\n currency,\n });\n };\n"],"version":3}
@@ -284,6 +284,10 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
284
284
  return import(
285
285
  /* webpackMode: "lazy" */
286
286
  './atomic-numeric-range.entry.js').then(processMod, consoleError);
287
+ case 'atomic-pager':
288
+ return import(
289
+ /* webpackMode: "lazy" */
290
+ './atomic-pager.entry.js').then(processMod, consoleError);
287
291
  case 'atomic-popover':
288
292
  return import(
289
293
  /* webpackMode: "lazy" */
@@ -0,0 +1,42 @@
1
+ import { h } from './index-3f35faca.js';
2
+ import { B as Button } from './stencil-button-1a29a5df.js';
3
+ import { R as RadioButton } from './stencil-radio-button-cae5f40a.js';
4
+
5
+ /**
6
+ * @deprecated use the lit equivalent
7
+ */
8
+ const PagerPreviousButton = (props) => {
9
+ return (h(Button, { ...props, ariaLabel: props.i18n.t('previous'), style: "outline-primary", part: "previous-button", class: "flex min-h-10 min-w-10 items-center justify-center p-1" },
10
+ h("atomic-icon", { icon: props.icon, part: "previous-button-icon", class: "w-5 align-middle" })));
11
+ };
12
+ /**
13
+ * @deprecated use the lit equivalent
14
+ */
15
+ const PagerNextButton = (props) => {
16
+ return (h(Button, { ...props, ariaLabel: props.i18n.t('next'), style: "outline-primary", part: "next-button", class: "flex min-h-10 min-w-10 items-center justify-center p-1" },
17
+ h("atomic-icon", { icon: props.icon, part: "next-button-icon", class: "w-5 align-middle" })));
18
+ };
19
+ /**
20
+ * @deprecated use the lit equivalent
21
+ */
22
+ const PagerPageButton = (props) => {
23
+ return (h(RadioButton, { ...props, selectWhenFocused: false, key: props.page, style: "outline-neutral", checked: props.isSelected, ariaCurrent: props.isSelected ? 'page' : 'false', class: "btn-page focus-visible:bg-neutral-light min-h-10 min-w-10 p-1", part: `page-button${props.isSelected ? ' active-page-button' : ''}` }));
24
+ };
25
+ /**
26
+ * @deprecated use the lit equivalent
27
+ */
28
+ const PagerPageButtons = (props, children) => {
29
+ return (h("div", { part: "page-buttons", role: "radiogroup", "aria-label": props.i18n.t('pagination'), class: "contents" }, ...children));
30
+ };
31
+
32
+ /**
33
+ * @deprecated use the lit equivalent
34
+ */
35
+ const PagerNavigation = (props, children) => {
36
+ return (h("nav", { "aria-label": props.i18n.t('pagination') },
37
+ h("div", { part: "buttons", role: "toolbar", class: "flex flex-wrap gap-2" }, ...children)));
38
+ };
39
+
40
+ export { PagerNavigation as P, PagerPreviousButton as a, PagerPageButtons as b, PagerPageButton as c, PagerNextButton as d };
41
+
42
+ //# sourceMappingURL=stencil-pager-navigation-7261a834.js.map
@@ -0,0 +1 @@
1
+ {"file":"stencil-pager-navigation-7261a834.js","mappings":";;;;AAkCA;;;MAGa,mBAAmB,GAE5B,CAAC,KAAK;IACR,QACE,EAAC,MAAM,OACD,KAAK,EACT,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EACnC,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAC,iBAAiB,EACtB,KAAK,EAAC,wDAAwD;QAE9D,mBACE,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAC,sBAAsB,EAC3B,KAAK,EAAC,kBAAkB,GACX,CACR,EACT;AACJ,EAAE;AAEF;;;MAGa,eAAe,GAExB,CAAC,KAAK;IACR,QACE,EAAC,MAAM,OACD,KAAK,EACT,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAC,aAAa,EAClB,KAAK,EAAC,wDAAwD;QAE9D,mBACE,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAC,kBAAkB,EACvB,KAAK,EAAC,kBAAkB,GACX,CACR,EACT;AACJ,EAAE;AAEF;;;MAGa,eAAe,GAA8C,CACxE,KAAK;IAEL,QACE,EAAC,WAAW,OACN,KAAK,EACT,iBAAiB,EAAE,KAAK,EACxB,GAAG,EAAE,KAAK,CAAC,IAAI,EACf,KAAK,EAAC,iBAAiB,EACvB,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,WAAW,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,OAAO,EAChD,KAAK,EAAC,+DAA+D,EACrE,IAAI,EAAE,cAAc,KAAK,CAAC,UAAU,GAAG,qBAAqB,GAAG,EAAE,EAAE,GACtD,EACf;AACJ,EAAE;AAEF;;;MAGa,gBAAgB,GAA+C,CAC1E,KAAK,EACL,QAAQ;IAER,QACE,WACE,IAAI,EAAC,cAAc,EACnB,IAAI,EAAC,YAAY,gBACL,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EACtC,KAAK,EAAC,UAAU,OAEZ,QAAQ,CACR,EACN;AACJ;;AC3GA;;;MAGa,eAAe,GAA8C,CACxE,KAAK,EACL,QAAQ;IAER,QACE,yBAAiB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;QACzC,WAAK,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,sBAAsB,OACzD,QAAQ,CACR,CACF,EACN;AACJ;;;;","names":[],"sources":["src/components/common/pager/stencil-pager-buttons.tsx","src/components/common/pager/stencil-pager-navigation.tsx"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport {Button, StencilButtonProps} from '../stencil-button';\nimport {RadioButton, StencilRadioButtonProps} from '../stencil-radio-button';\n\n/**\n * @deprecated use the lit equivalent\n */\nexport interface PagerNavigationButtonProps\n extends Omit<StencilButtonProps, 'style' | 'part' | 'class'> {\n icon: string;\n i18n: i18n;\n}\n\n/**\n * @deprecated use the lit equivalent\n */\nexport interface PagerPageButtonProps\n extends Omit<\n StencilRadioButtonProps,\n 'part' | 'style' | 'checked' | 'ariaCurrent' | 'key' | 'class' | 'ref'\n > {\n page: number;\n isSelected: boolean;\n text: string;\n}\n\n/**\n * @deprecated use the lit equivalent\n */\nexport interface PagerPageButtonsProps {\n i18n: i18n;\n}\n\n/**\n * @deprecated use the lit equivalent\n */\nexport const PagerPreviousButton: FunctionalComponent<\n PagerNavigationButtonProps\n> = (props) => {\n return (\n <Button\n {...props}\n ariaLabel={props.i18n.t('previous')}\n style=\"outline-primary\"\n part=\"previous-button\"\n class=\"flex min-h-10 min-w-10 items-center justify-center p-1\"\n >\n <atomic-icon\n icon={props.icon}\n part=\"previous-button-icon\"\n class=\"w-5 align-middle\"\n ></atomic-icon>\n </Button>\n );\n};\n\n/**\n * @deprecated use the lit equivalent\n */\nexport const PagerNextButton: FunctionalComponent<\n PagerNavigationButtonProps\n> = (props) => {\n return (\n <Button\n {...props}\n ariaLabel={props.i18n.t('next')}\n style=\"outline-primary\"\n part=\"next-button\"\n class=\"flex min-h-10 min-w-10 items-center justify-center p-1\"\n >\n <atomic-icon\n icon={props.icon}\n part=\"next-button-icon\"\n class=\"w-5 align-middle\"\n ></atomic-icon>\n </Button>\n );\n};\n\n/**\n * @deprecated use the lit equivalent\n */\nexport const PagerPageButton: FunctionalComponent<PagerPageButtonProps> = (\n props\n) => {\n return (\n <RadioButton\n {...props}\n selectWhenFocused={false}\n key={props.page}\n style=\"outline-neutral\"\n checked={props.isSelected}\n ariaCurrent={props.isSelected ? 'page' : 'false'}\n class=\"btn-page focus-visible:bg-neutral-light min-h-10 min-w-10 p-1\"\n part={`page-button${props.isSelected ? ' active-page-button' : ''}`}\n ></RadioButton>\n );\n};\n\n/**\n * @deprecated use the lit equivalent\n */\nexport const PagerPageButtons: FunctionalComponent<PagerPageButtonsProps> = (\n props,\n children\n) => {\n return (\n <div\n part=\"page-buttons\"\n role=\"radiogroup\"\n aria-label={props.i18n.t('pagination')}\n class=\"contents\"\n >\n {...children}\n </div>\n );\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\n\n/**\n * @deprecated use the lit equivalent\n */\nexport interface PagerNavigationProps {\n i18n: i18n;\n}\n\n/**\n * @deprecated use the lit equivalent\n */\nexport const PagerNavigation: FunctionalComponent<PagerNavigationProps> = (\n props,\n children\n) => {\n return (\n <nav aria-label={props.i18n.t('pagination')}>\n <div part=\"buttons\" role=\"toolbar\" class=\"flex flex-wrap gap-2\">\n {...children}\n </div>\n </nav>\n );\n};\n"],"version":3}
@@ -1,2 +1,2 @@
1
- export const headlessVersion = '3.31.1-pre.fbe332fd49';
2
- export const atomicVersion = '3.33.8-pre.fbe332fd49';
1
+ export const headlessVersion = '3.31.1';
2
+ export const atomicVersion = '3.33.9-pre.5fbff5b5f4';
@@ -1,4 +1,5 @@
1
1
  import { type CommerceEngine, type CommerceEngineConfiguration, type Context, type LogLevel, type ProductListing, type ProductListingSummaryState, type Search, type SearchSummaryState, type Summary, type UrlManager } from '@coveo/headless/commerce';
2
+ import type { CurrencyCodeISO4217 } from '@coveo/relay-event-types';
2
3
  import { type i18n } from 'i18next';
3
4
  import { type CSSResultGroup, LitElement } from 'lit';
4
5
  import type { CommonBindings } from '../../common/interface/bindings';
@@ -49,7 +50,13 @@ export declare class AtomicCommerceInterface extends AtomicCommerceInterface_bas
49
50
  /**
50
51
  * The commerce interface language.
51
52
  *
52
- * Will default to the value set in the Headless engine context if not provided.
53
+ * Will default to the value set in the Headless engine context if not
54
+ * provided.
55
+ *
56
+ * @deprecated - This property will be removed in the next major version of
57
+ * Atomic (v4). Rather than using this property, set the initial language
58
+ * through the engine configuration when calling `initializeWithEngine`, and
59
+ * update the language as needed using the `updateLocale` method.
53
60
  */
54
61
  language?: string;
55
62
  /**
@@ -100,6 +107,26 @@ export declare class AtomicCommerceInterface extends AtomicCommerceInterface_bas
100
107
  * Executes the first request after initializing connection to the headless commerce engine.
101
108
  */
102
109
  executeFirstRequest(): Promise<void>;
110
+ /**
111
+ * Updates the locale settings for the commerce interface and headless commerce
112
+ * engine. Only the provided parameters will be updated.
113
+ *
114
+ * Calling this method affects the localization of the interface as well as
115
+ * the catalog configuration being used by the Commerce API. If the resulting
116
+ * language-country-currency combination matches no existing catalog
117
+ * configuration in your Coveo organization, requests made through the
118
+ * commerce engine will start failing.
119
+ *
120
+ * @param language - (Optional) The IETF language code tag (e.g., `en`).
121
+ * @param country - (Optional) The ISO-3166-1 country tag (e.g., `US`).
122
+ * @param currency - (Optional) The ISO-4217 currency code (e.g., `USD`).
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * interface.updateLocale('fr', 'CA', 'CAD');
127
+ * ```
128
+ */
129
+ updateLocale(language?: string, country?: string, currency?: CurrencyCodeISO4217): void;
103
130
  toggleAnalytics(): void;
104
131
  updateIconAssetsPath(): void;
105
132
  updateLanguage(): void;
@@ -115,6 +142,7 @@ export declare class AtomicCommerceInterface extends AtomicCommerceInterface_bas
115
142
  private initSummary;
116
143
  private initUrlManager;
117
144
  private internalInitialization;
145
+ private isNewLocale;
118
146
  private onHashChange;
119
147
  scrollToTop(): void;
120
148
  private updateHash;
@@ -103,6 +103,7 @@ export declare class AtomicCommerceRecommendationInterface extends AtomicCommerc
103
103
  private initContext;
104
104
  private getBindings;
105
105
  private initLanguage;
106
+ private isNewLocale;
106
107
  }
107
108
  declare global {
108
109
  interface HTMLElementTagNameMap {
@@ -137,6 +137,7 @@ export declare class AtomicCommerceSearchBox extends LitElement implements Initi
137
137
  private renderSuggestions;
138
138
  private renderPanel;
139
139
  private renderSuggestion;
140
+ private renderSlotContent;
140
141
  render(): import("lit-html").TemplateResult<1>;
141
142
  }
142
143
  declare global {
@@ -1,36 +1,33 @@
1
- import { type Pager, type PagerState, type SearchStatus, type SearchStatusState } from '@coveo/headless';
2
- import { LitElement } from 'lit';
3
- import type { Bindings } from "../atomic-search-interface/interfaces";
4
- import type { InitializableComponent } from "../../../decorators/types";
5
- declare const AtomicPager_base: typeof LitElement;
1
+ import { Pager, PagerState, SearchStatus, SearchStatusState } from '@coveo/headless';
2
+ import { InitializableComponent } from '../../../utils/initialization-utils';
3
+ import { Bindings } from '../atomic-search-interface/atomic-search-interface';
6
4
  /**
7
5
  * The `atomic-pager` provides buttons that allow the end user to navigate through the different result pages.
8
6
  *
9
7
  * @part buttons - The list of the next/previous buttons and page-buttons.
10
8
  * @part page-buttons - The list of page buttons.
11
- * @part page-button - The individual page buttons.
9
+ * @part page-button - The page button.
12
10
  * @part active-page-button - The active page button.
13
- * @part previous-button - The previous page button.
14
- * @part next-button - The next page button.
15
- * @part previous-button-icon - The icon displayed on the "previous page" button.
16
- * @part next-button-icon - The icon displayed on the "next page" button.
17
- *
18
- * @event atomic/scrollToTop - Emitted when the user clicks any of the buttons rendered by the component.
11
+ * @part previous-button - The previous button.
12
+ * @part next-button - The next button.
13
+ * @part previous-button-icon - Icon of the previous button.
14
+ * @part next-button-icon - Icon of the next button.
19
15
  */
20
- export declare class AtomicPager extends AtomicPager_base implements InitializableComponent<Bindings> {
16
+ export declare class AtomicPager implements InitializableComponent {
21
17
  bindings: Bindings;
22
- error: Error;
23
- private isAppLoaded;
24
18
  pager: Pager;
25
19
  searchStatus: SearchStatus;
26
20
  pagerState: PagerState;
27
21
  searchStatusState: SearchStatusState;
22
+ error: Error;
23
+ private isAppLoaded;
24
+ private scrollToTopEvent;
28
25
  /**
29
- * The maximum number of page buttons to display in the pager.
26
+ * Specifies how many page buttons to display in the pager.
30
27
  */
31
28
  numberOfPages: number;
32
29
  /**
33
- * The SVG icon to render on the "previous page" button.
30
+ * The SVG icon to use to display the Previous button.
34
31
  *
35
32
  * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.
36
33
  * - Use a value that starts with `assets://`, to display an icon from the Atomic package.
@@ -38,7 +35,7 @@ export declare class AtomicPager extends AtomicPager_base implements Initializab
38
35
  */
39
36
  previousButtonIcon: string;
40
37
  /**
41
- * The SVG icon to render on the "next page" button.
38
+ * The SVG icon to use to display the Next button.
42
39
  *
43
40
  * - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location.
44
41
  * - Use a value that starts with `assets://`, to display an icon from the Atomic package.
@@ -47,13 +44,6 @@ export declare class AtomicPager extends AtomicPager_base implements Initializab
47
44
  nextButtonIcon: string;
48
45
  private radioGroupName;
49
46
  initialize(): void;
50
- render(): import("lit-html").TemplateResult<1>;
51
- private validateProps;
47
+ render(): any;
52
48
  private focusOnFirstResultAndScrollToTop;
53
49
  }
54
- declare global {
55
- interface HTMLElementTagNameMap {
56
- 'atomic-pager': AtomicPager;
57
- }
58
- }
59
- export {};
@@ -161,5 +161,6 @@ export declare class AtomicSearchBox implements InitializableComponent<Bindings>
161
161
  private getSearchInputLabel;
162
162
  private announceNewActiveSuggestionToScreenReader;
163
163
  private announceNewSuggestionsToScreenReader;
164
+ private renderSlotContent;
164
165
  render(): any;
165
166
  }
@@ -1,4 +1,3 @@
1
- export { AtomicPager } from './atomic-pager/atomic-pager.js';
2
1
  export { AtomicQuerySummary } from './atomic-query-summary/atomic-query-summary.js';
3
2
  export { AtomicResultsPerPage } from './atomic-results-per-page/atomic-results-per-page.js';
4
3
  export { AtomicSearchLayout } from './atomic-search-layout/atomic-search-layout.js';
@@ -1427,6 +1427,23 @@ export namespace Components {
1427
1427
  */
1428
1428
  "start": number;
1429
1429
  }
1430
+ /**
1431
+ * The `atomic-pager` provides buttons that allow the end user to navigate through the different result pages.
1432
+ */
1433
+ interface AtomicPager {
1434
+ /**
1435
+ * The SVG icon to use to display the Next button. - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location. - Use a value that starts with `assets://`, to display an icon from the Atomic package. - Use a stringified SVG to display it directly.
1436
+ */
1437
+ "nextButtonIcon": string;
1438
+ /**
1439
+ * Specifies how many page buttons to display in the pager.
1440
+ */
1441
+ "numberOfPages": number;
1442
+ /**
1443
+ * The SVG icon to use to display the Previous button. - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location. - Use a value that starts with `assets://`, to display an icon from the Atomic package. - Use a stringified SVG to display it directly.
1444
+ */
1445
+ "previousButtonIcon": string;
1446
+ }
1430
1447
  /**
1431
1448
  * The `atomic-popover` component displays any facet as a popover menu.
1432
1449
  */
@@ -2922,6 +2939,10 @@ export interface AtomicIpxModalCustomEvent<T> extends CustomEvent<T> {
2922
2939
  detail: T;
2923
2940
  target: HTMLAtomicIpxModalElement;
2924
2941
  }
2942
+ export interface AtomicPagerCustomEvent<T> extends CustomEvent<T> {
2943
+ detail: T;
2944
+ target: HTMLAtomicPagerElement;
2945
+ }
2925
2946
  export interface AtomicQuickviewModalCustomEvent<T> extends CustomEvent<T> {
2926
2947
  detail: T;
2927
2948
  target: HTMLAtomicQuickviewModalElement;
@@ -3598,6 +3619,26 @@ declare global {
3598
3619
  prototype: HTMLAtomicNumericRangeElement;
3599
3620
  new (): HTMLAtomicNumericRangeElement;
3600
3621
  };
3622
+ interface HTMLAtomicPagerElementEventMap {
3623
+ "atomic/scrollToTop": any;
3624
+ }
3625
+ /**
3626
+ * The `atomic-pager` provides buttons that allow the end user to navigate through the different result pages.
3627
+ */
3628
+ interface HTMLAtomicPagerElement extends Components.AtomicPager, HTMLStencilElement {
3629
+ addEventListener<K extends keyof HTMLAtomicPagerElementEventMap>(type: K, listener: (this: HTMLAtomicPagerElement, ev: AtomicPagerCustomEvent<HTMLAtomicPagerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3630
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3631
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3632
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3633
+ removeEventListener<K extends keyof HTMLAtomicPagerElementEventMap>(type: K, listener: (this: HTMLAtomicPagerElement, ev: AtomicPagerCustomEvent<HTMLAtomicPagerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
3634
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3635
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3636
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
3637
+ }
3638
+ var HTMLAtomicPagerElement: {
3639
+ prototype: HTMLAtomicPagerElement;
3640
+ new (): HTMLAtomicPagerElement;
3641
+ };
3601
3642
  /**
3602
3643
  * The `atomic-popover` component displays any facet as a popover menu.
3603
3644
  */
@@ -4527,6 +4568,7 @@ declare global {
4527
4568
  "atomic-notifications": HTMLAtomicNotificationsElement;
4528
4569
  "atomic-numeric-facet": HTMLAtomicNumericFacetElement;
4529
4570
  "atomic-numeric-range": HTMLAtomicNumericRangeElement;
4571
+ "atomic-pager": HTMLAtomicPagerElement;
4530
4572
  "atomic-popover": HTMLAtomicPopoverElement;
4531
4573
  "atomic-query-error": HTMLAtomicQueryErrorElement;
4532
4574
  "atomic-quickview": HTMLAtomicQuickviewElement;
@@ -5918,6 +5960,24 @@ declare namespace LocalJSX {
5918
5960
  */
5919
5961
  "start": number;
5920
5962
  }
5963
+ /**
5964
+ * The `atomic-pager` provides buttons that allow the end user to navigate through the different result pages.
5965
+ */
5966
+ interface AtomicPager {
5967
+ /**
5968
+ * The SVG icon to use to display the Next button. - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location. - Use a value that starts with `assets://`, to display an icon from the Atomic package. - Use a stringified SVG to display it directly.
5969
+ */
5970
+ "nextButtonIcon"?: string;
5971
+ /**
5972
+ * Specifies how many page buttons to display in the pager.
5973
+ */
5974
+ "numberOfPages"?: number;
5975
+ "onAtomic/scrollToTop"?: (event: AtomicPagerCustomEvent<any>) => void;
5976
+ /**
5977
+ * The SVG icon to use to display the Previous button. - Use a value that starts with `http://`, `https://`, `./`, or `../`, to fetch and display an icon from a given location. - Use a value that starts with `assets://`, to display an icon from the Atomic package. - Use a stringified SVG to display it directly.
5978
+ */
5979
+ "previousButtonIcon"?: string;
5980
+ }
5921
5981
  /**
5922
5982
  * The `atomic-popover` component displays any facet as a popover menu.
5923
5983
  */
@@ -7380,6 +7440,7 @@ declare namespace LocalJSX {
7380
7440
  "atomic-notifications": AtomicNotifications;
7381
7441
  "atomic-numeric-facet": AtomicNumericFacet;
7382
7442
  "atomic-numeric-range": AtomicNumericRange;
7443
+ "atomic-pager": AtomicPager;
7383
7444
  "atomic-popover": AtomicPopover;
7384
7445
  "atomic-query-error": AtomicQueryError;
7385
7446
  "atomic-quickview": AtomicQuickview;
@@ -7645,6 +7706,10 @@ declare module "@stencil/core" {
7645
7706
  * The `atomic-numeric-range` component defines the range of an `atomic-numeric-facet`, and therefore must be defined within an `atomic-numeric-facet` component.
7646
7707
  */
7647
7708
  "atomic-numeric-range": LocalJSX.AtomicNumericRange & JSXBase.HTMLAttributes<HTMLAtomicNumericRangeElement>;
7709
+ /**
7710
+ * The `atomic-pager` provides buttons that allow the end user to navigate through the different result pages.
7711
+ */
7712
+ "atomic-pager": LocalJSX.AtomicPager & JSXBase.HTMLAttributes<HTMLAtomicPagerElement>;
7648
7713
  /**
7649
7714
  * The `atomic-popover` component displays any facet as a popover menu.
7650
7715
  */
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-09-26T15:57:29",
2
+ "timestamp": "2025-10-01T03:24:56",
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",
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.fbe332fd49",
4
+ "version": "3.33.9-pre.5fbff5b5f4",
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.fbe332fd49",
84
+ "@coveo/headless": "3.31.1",
85
85
  "@lit/context": "1.1.6",
86
86
  "@open-wc/lit-helpers": "0.7.0",
87
87
  "@popperjs/core": "2.11.8",
@@ -149,11 +149,11 @@
149
149
  "typescript": "5.8.3",
150
150
  "vite": "7.0.6",
151
151
  "vitest": "3.2.4",
152
- "wait-on": "8.0.4"
152
+ "wait-on": "9.0.1"
153
153
  },
154
154
  "peerDependencies": {
155
155
  "@coveo/bueno": "1.1.2",
156
- "@coveo/headless": "3.31.1-pre.fbe332fd49",
156
+ "@coveo/headless": "3.31.1",
157
157
  "typescript": ">=5.0.0"
158
158
  },
159
159
  "peerDependenciesMeta": {