@coveo/atomic 3.29.1-pre.2d3a8a3c7b → 3.29.2-pre.16192e6f2e

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 (699) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/atomic.esm.js.map +1 -1
  3. package/dist/atomic/components/_index.d.ts +0 -2
  4. package/dist/atomic/components/_index.js +0 -1
  5. package/dist/atomic/components/analytics-config.js +1 -1
  6. package/dist/atomic/components/atomic-aria-live2.js +1 -1
  7. package/dist/atomic/components/atomic-category-facet.js +1 -1
  8. package/dist/atomic/components/atomic-citation.js +1 -1
  9. package/dist/atomic/components/atomic-commerce-category-facet2.js +1 -1
  10. package/dist/atomic/components/atomic-commerce-facets.js +160 -1
  11. package/dist/atomic/components/atomic-commerce-facets.js.map +1 -1
  12. package/dist/atomic/components/atomic-commerce-numeric-facet2.js +2 -2
  13. package/dist/atomic/components/atomic-commerce-timeframe-facet2.js +1 -1
  14. package/dist/atomic/components/atomic-facet-manager.js +1 -1
  15. package/dist/atomic/components/atomic-facet.js +1 -1
  16. package/dist/atomic/components/atomic-format-currency.js +1 -1
  17. package/dist/atomic/components/atomic-format-number.js +1 -1
  18. package/dist/atomic/components/atomic-format-unit.js +1 -1
  19. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
  20. package/dist/atomic/components/atomic-html2.js +1 -1
  21. package/dist/atomic/components/atomic-insight-edit-toggle.js +1 -1
  22. package/dist/atomic/components/atomic-insight-facet.js +1 -1
  23. package/dist/atomic/components/atomic-insight-folded-result-list.js +1 -1
  24. package/dist/atomic/components/atomic-insight-full-search-button.js +1 -1
  25. package/dist/atomic/components/atomic-insight-history-toggle.js +1 -1
  26. package/dist/atomic/components/atomic-insight-no-results.js +1 -1
  27. package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
  28. package/dist/atomic/components/atomic-insight-pager.js +3 -3
  29. package/dist/atomic/components/atomic-insight-query-error.js +1 -1
  30. package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
  31. package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
  32. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
  33. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  34. package/dist/atomic/components/atomic-insight-result-list.js +1 -1
  35. package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
  36. package/dist/atomic/components/atomic-insight-result2.js +1 -1
  37. package/dist/atomic/components/atomic-insight-search-box.js +2 -2
  38. package/dist/atomic/components/atomic-insight-smart-snippet-feedback-modal2.js +2 -2
  39. package/dist/atomic/components/atomic-insight-tabs.js +1 -1
  40. package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
  41. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
  42. package/dist/atomic/components/atomic-ipx-body2.js +2 -2
  43. package/dist/atomic/components/atomic-ipx-button.js +2 -2
  44. package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
  45. package/dist/atomic/components/atomic-ipx-modal.js +2 -2
  46. package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
  47. package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
  48. package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
  49. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  50. package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
  51. package/dist/atomic/components/atomic-load-more-results.js +1 -1
  52. package/dist/atomic/components/atomic-modal2.js +2 -2
  53. package/dist/atomic/components/atomic-no-results.js +1 -1
  54. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  55. package/dist/atomic/components/atomic-pager.js +3 -3
  56. package/dist/atomic/components/atomic-product-price.js +1 -1
  57. package/dist/atomic/components/atomic-query-error.js +1 -1
  58. package/dist/atomic/components/atomic-query-summary.js +1 -1
  59. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  60. package/dist/atomic/components/atomic-quickview.js +1 -1
  61. package/dist/atomic/components/atomic-recs-error.js +1 -1
  62. package/dist/atomic/components/atomic-recs-list.js +1 -1
  63. package/dist/atomic/components/atomic-refine-modal2.js +35 -3
  64. package/dist/atomic/components/atomic-refine-modal2.js.map +1 -1
  65. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  66. package/dist/atomic/components/atomic-relevance-inspector2.js +2 -2
  67. package/dist/atomic/components/atomic-result-children.js +1 -1
  68. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  69. package/dist/atomic/components/atomic-result-link.js +1 -1
  70. package/dist/atomic/components/atomic-result-list.js +1 -1
  71. package/dist/atomic/components/atomic-result-placeholder2.js +2 -2
  72. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  73. package/dist/atomic/components/atomic-results-per-page.js +1 -1
  74. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
  75. package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
  76. package/dist/atomic/components/atomic-search-box.js +4 -4
  77. package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
  78. package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js +2 -2
  79. package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js +1 -1
  80. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  81. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  82. package/dist/atomic/components/atomic-sort-dropdown.js +6 -3
  83. package/dist/atomic/components/atomic-sort-dropdown.js.map +1 -1
  84. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  85. package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
  86. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  87. package/dist/atomic/components/components/commerce/atomic-commerce-refine-modal/atomic-commerce-refine-modal.js +202 -0
  88. package/dist/atomic/components/components/commerce/atomic-commerce-refine-modal/atomic-commerce-refine-modal.tw.css.js +7 -0
  89. package/dist/atomic/components/components/commerce/index.js +1 -0
  90. package/dist/atomic/components/components/commerce/lazy-index.js +1 -0
  91. package/dist/atomic/components/components/common/atomic-modal/export-parts.js +1 -0
  92. package/dist/atomic/components/components/common/refine-modal/body.js +12 -0
  93. package/dist/atomic/components/components/common/refine-modal/filters.js +29 -0
  94. package/dist/atomic/components/components/common/refine-modal/modal.js +76 -0
  95. package/dist/atomic/components/components/common/refine-modal/refine-modal-common.tw.css.js +2 -0
  96. package/dist/atomic/components/components/common/refine-modal/sort.js +32 -0
  97. package/dist/atomic/components/facet-date-input.js +3 -3
  98. package/dist/atomic/components/facet-number-input.js +2 -2
  99. package/dist/atomic/components/global/environment.js +1 -1
  100. package/dist/atomic/components/index.js.map +1 -1
  101. package/dist/atomic/components/tab-button.js +1 -1
  102. package/dist/atomic/components/tab-popover.js +1 -1
  103. package/dist/atomic/{p-02dc6f22.entry.js → p-02af42b6.entry.js} +2 -2
  104. package/dist/atomic/{p-237b6498.entry.js → p-03beab8e.entry.js} +2 -2
  105. package/dist/atomic/p-04b3493d.js +2 -0
  106. package/dist/atomic/{p-fe7f8010.entry.js → p-0581b5ee.entry.js} +2 -2
  107. package/dist/atomic/{p-ec2161f4.entry.js → p-0a144948.entry.js} +2 -2
  108. package/dist/atomic/{p-5a62a764.entry.js → p-0b790b7c.entry.js} +2 -2
  109. package/dist/atomic/{p-ea30c2c5.entry.js → p-0bfb845f.entry.js} +2 -2
  110. package/dist/atomic/{p-a4003b93.entry.js → p-199ff90b.entry.js} +2 -2
  111. package/dist/atomic/{p-7e35c35d.entry.js → p-1c8468e7.entry.js} +2 -2
  112. package/dist/atomic/{p-9dae1cd8.entry.js → p-1e634caa.entry.js} +2 -2
  113. package/dist/atomic/{p-6195bd9a.entry.js → p-20970213.entry.js} +2 -2
  114. package/dist/atomic/{p-47156866.entry.js → p-21c20ec6.entry.js} +2 -2
  115. package/dist/atomic/{p-607fee37.entry.js → p-22708648.entry.js} +2 -2
  116. package/dist/atomic/{p-605ad290.entry.js → p-23037179.entry.js} +2 -2
  117. package/dist/atomic/{p-40a6b242.entry.js → p-30529a7b.entry.js} +2 -2
  118. package/dist/atomic/p-308c8f97.entry.js +2 -0
  119. package/dist/atomic/{p-03325add.entry.js → p-31c65a76.entry.js} +2 -2
  120. package/dist/atomic/{p-fe735188.entry.js → p-35ba070e.entry.js} +2 -2
  121. package/dist/atomic/{p-263f6746.entry.js → p-381e9292.entry.js} +2 -2
  122. package/dist/atomic/{p-c2a0f838.entry.js → p-3858311d.entry.js} +2 -2
  123. package/dist/atomic/{p-3116ec7b.entry.js → p-3ae51da2.entry.js} +2 -2
  124. package/dist/atomic/{p-871bd105.entry.js → p-3b19694c.entry.js} +2 -2
  125. package/dist/atomic/{p-56e2b35d.entry.js → p-3d66abef.entry.js} +2 -2
  126. package/dist/atomic/{p-d044ff5f.js → p-3dabd73e.js} +2 -2
  127. package/dist/atomic/{p-a5aaa14c.entry.js → p-3ebbf512.entry.js} +2 -2
  128. package/dist/atomic/{p-ddb5a587.entry.js → p-3f27f540.entry.js} +2 -2
  129. package/dist/atomic/p-42bcba44.js +2 -0
  130. package/dist/atomic/{p-2fcbc513.entry.js → p-4475b820.entry.js} +2 -2
  131. package/dist/atomic/{p-b5845511.entry.js → p-46f1a130.entry.js} +2 -2
  132. package/dist/atomic/{p-4fe614d1.entry.js → p-4ac7cf4d.entry.js} +2 -2
  133. package/dist/atomic/p-4bf140ca.js +2 -0
  134. package/dist/atomic/{p-58193542.entry.js → p-4e93452a.entry.js} +2 -2
  135. package/dist/atomic/{p-c9cbc469.entry.js → p-532aea78.entry.js} +2 -2
  136. package/dist/atomic/{p-022e2c88.entry.js → p-538fa6a8.entry.js} +2 -2
  137. package/dist/atomic/{p-67439395.entry.js → p-54acf51c.entry.js} +2 -2
  138. package/dist/atomic/p-5a1b0c43.entry.js +2 -0
  139. package/dist/atomic/{p-61520136.entry.js → p-5a7287d7.entry.js} +2 -2
  140. package/dist/atomic/p-5c120caf.entry.js +2 -0
  141. package/dist/atomic/p-5c120caf.entry.js.map +1 -0
  142. package/dist/atomic/{p-2f89eaa5.entry.js → p-5e1091db.entry.js} +2 -2
  143. package/dist/atomic/{p-03e139a8.entry.js → p-5e43c72a.entry.js} +2 -2
  144. package/dist/atomic/{p-261cc069.entry.js → p-5fad24d1.entry.js} +2 -2
  145. package/dist/atomic/{p-06b55a5e.js → p-61f9c3f7.js} +2 -2
  146. package/dist/atomic/{p-3b92373f.entry.js → p-62896d9f.entry.js} +2 -2
  147. package/dist/atomic/p-62ad64ad.entry.js +2 -0
  148. package/dist/atomic/p-62ad64ad.entry.js.map +1 -0
  149. package/dist/atomic/{p-83b61fc7.entry.js → p-68cf6c73.entry.js} +2 -2
  150. package/dist/atomic/p-68ec0487.entry.js +2 -0
  151. package/dist/atomic/p-68ec0487.entry.js.map +1 -0
  152. package/dist/atomic/{p-43ef2a78.entry.js → p-6a7ad933.entry.js} +2 -2
  153. package/dist/atomic/{p-d61e65c5.entry.js → p-6c833c68.entry.js} +2 -2
  154. package/dist/atomic/{p-ae067eb1.entry.js → p-6e0aa85b.entry.js} +2 -2
  155. package/dist/atomic/{p-0297467f.entry.js → p-710756b1.entry.js} +2 -2
  156. package/dist/atomic/{p-10bfcc08.entry.js → p-719d27a4.entry.js} +2 -2
  157. package/dist/atomic/{p-e3abb9bf.entry.js → p-72693691.entry.js} +2 -2
  158. package/dist/atomic/{p-cc11dfe5.entry.js → p-72cb8c3d.entry.js} +2 -2
  159. package/dist/atomic/{p-5fb33957.entry.js → p-741cfe8d.entry.js} +2 -2
  160. package/dist/atomic/{p-37d04bd3.entry.js → p-76fde50b.entry.js} +2 -2
  161. package/dist/atomic/{p-9841c955.entry.js → p-778b5a69.entry.js} +2 -2
  162. package/dist/atomic/{p-85b0eb2c.entry.js → p-7969276e.entry.js} +2 -2
  163. package/dist/atomic/{p-cd65617e.entry.js → p-7b5c63e4.entry.js} +2 -2
  164. package/dist/atomic/p-7b67c9b9.entry.js +2 -0
  165. package/dist/atomic/p-7b6843d6.entry.js +2 -0
  166. package/dist/atomic/{p-43c60cfc.entry.js → p-7c62d253.entry.js} +2 -2
  167. package/dist/atomic/{p-e467bb89.entry.js → p-7f381070.entry.js} +2 -2
  168. package/dist/atomic/{p-33aeda20.entry.js → p-816f3469.entry.js} +2 -2
  169. package/dist/atomic/{p-5a397a22.entry.js → p-81cb6bbb.entry.js} +2 -2
  170. package/dist/atomic/{p-c3d0cd58.entry.js → p-833f101f.entry.js} +2 -2
  171. package/dist/atomic/{p-d730d365.entry.js → p-83a42baf.entry.js} +2 -2
  172. package/dist/atomic/p-8481d20b.entry.js +2 -0
  173. package/dist/atomic/p-8481d20b.entry.js.map +1 -0
  174. package/dist/atomic/{p-93e9272d.entry.js → p-84efa266.entry.js} +2 -2
  175. package/dist/atomic/{p-8471090e.entry.js → p-88d2981f.entry.js} +2 -2
  176. package/dist/atomic/{p-71743e67.entry.js → p-8981e00e.entry.js} +2 -2
  177. package/dist/atomic/{p-47307bf9.entry.js → p-8a959224.entry.js} +2 -2
  178. package/dist/atomic/{p-adf75ecf.entry.js → p-8c0cc64c.entry.js} +2 -2
  179. package/dist/atomic/{p-3f77fe9e.entry.js → p-8c780987.entry.js} +2 -2
  180. package/dist/atomic/{p-3bcfc0a2.entry.js → p-8e46ebd3.entry.js} +2 -2
  181. package/dist/atomic/{p-10e8d6e9.entry.js → p-8ec6e54b.entry.js} +2 -2
  182. package/dist/atomic/{p-2edbbd2c.entry.js → p-8ecb50bb.entry.js} +2 -2
  183. package/dist/atomic/{p-47591d90.entry.js → p-911adb53.entry.js} +2 -2
  184. package/dist/atomic/p-92e09b96.entry.js +2 -0
  185. package/dist/atomic/p-92e09b96.entry.js.map +1 -0
  186. package/dist/atomic/p-93030acf.js +2 -0
  187. package/dist/atomic/{p-aaf5add5.entry.js → p-9310cce8.entry.js} +2 -2
  188. package/dist/atomic/{p-463916e1.entry.js → p-942b2556.entry.js} +2 -2
  189. package/dist/atomic/{p-f1630863.js → p-958f7721.js} +2 -2
  190. package/dist/atomic/{p-9f3ecfe5.js → p-96a6f84f.js} +2 -2
  191. package/dist/atomic/{p-c030a2f0.entry.js → p-9aa8d0f8.entry.js} +2 -2
  192. package/dist/atomic/{p-eba0c897.entry.js → p-9b2e7084.entry.js} +2 -2
  193. package/dist/atomic/{p-e111d8f6.entry.js → p-9c3411c5.entry.js} +2 -2
  194. package/dist/atomic/{p-5c040ebc.entry.js → p-9ebb392a.entry.js} +2 -2
  195. package/dist/atomic/{p-6b780715.entry.js → p-a35f225e.entry.js} +2 -2
  196. package/dist/atomic/{p-22b3c655.entry.js → p-a35f2759.entry.js} +2 -2
  197. package/dist/atomic/{p-0d1f928f.entry.js → p-a46d0a72.entry.js} +2 -2
  198. package/dist/atomic/{p-0b705c31.entry.js → p-a55516b4.entry.js} +2 -2
  199. package/dist/atomic/{p-9ff8fec2.entry.js → p-a8f9ba93.entry.js} +2 -2
  200. package/dist/atomic/{p-5db46842.js → p-aa10238a.js} +2 -2
  201. package/dist/atomic/{p-ca98cb79.entry.js → p-ac60cfe4.entry.js} +2 -2
  202. package/dist/atomic/{p-95e4c09e.entry.js → p-ace62ee0.entry.js} +2 -2
  203. package/dist/atomic/{p-fc2cceb3.entry.js → p-ad5e7351.entry.js} +2 -2
  204. package/dist/atomic/{p-9957b28c.js → p-ad9fbb29.js} +2 -2
  205. package/dist/atomic/{p-62d16036.entry.js → p-ae7a143b.entry.js} +2 -2
  206. package/dist/atomic/{p-ec0b64a5.entry.js → p-aed080d1.entry.js} +2 -2
  207. package/dist/atomic/{p-da1d8792.js → p-b31d8fdd.js} +2 -2
  208. package/dist/atomic/{p-cb1905a6.entry.js → p-b3f05420.entry.js} +2 -2
  209. package/dist/atomic/{p-3835716f.entry.js → p-b3fa18f1.entry.js} +2 -2
  210. package/dist/atomic/{p-aaa324cd.entry.js → p-b878425f.entry.js} +2 -2
  211. package/dist/atomic/{p-186a5f0d.entry.js → p-b8b67309.entry.js} +2 -2
  212. package/dist/atomic/{p-b875f4b6.entry.js → p-b8beb062.entry.js} +2 -2
  213. package/dist/atomic/{p-0f506869.js → p-bc96b8f6.js} +2 -2
  214. package/dist/atomic/{p-6e592bf0.entry.js → p-bcbbb63f.entry.js} +2 -2
  215. package/dist/atomic/{p-b0d10266.entry.js → p-bd10dac1.entry.js} +2 -2
  216. package/dist/atomic/{p-57b6b64c.entry.js → p-be04b3b0.entry.js} +2 -2
  217. package/dist/atomic/{p-1519454c.entry.js → p-bf7d7b24.entry.js} +2 -2
  218. package/dist/atomic/{p-7e80de89.entry.js → p-c0edac65.entry.js} +2 -2
  219. package/dist/atomic/{p-b973f6f4.entry.js → p-c164379a.entry.js} +2 -2
  220. package/dist/atomic/{p-f5054252.entry.js → p-c5df6d2d.entry.js} +2 -2
  221. package/dist/atomic/{p-0fe2face.entry.js → p-c6e5e68e.entry.js} +2 -2
  222. package/dist/atomic/{p-2f6d4b52.entry.js → p-c7b888be.entry.js} +2 -2
  223. package/dist/atomic/{p-1697fe78.entry.js → p-c92957d3.entry.js} +2 -2
  224. package/dist/atomic/{p-d625f03b.entry.js → p-c9f3c083.entry.js} +2 -2
  225. package/dist/atomic/{p-934470ac.entry.js → p-cce54989.entry.js} +2 -2
  226. package/dist/atomic/{p-bf460507.entry.js → p-cd124dd9.entry.js} +2 -2
  227. package/dist/atomic/{p-dc7b46cc.entry.js → p-ce19125a.entry.js} +2 -2
  228. package/dist/atomic/{p-d28ce9d0.entry.js → p-d048d414.entry.js} +2 -2
  229. package/dist/atomic/{p-bebbdbee.entry.js → p-d1e2f51c.entry.js} +2 -2
  230. package/dist/atomic/{p-6776811d.js → p-d2db2d70.js} +2 -2
  231. package/dist/atomic/{p-26d0a8d6.entry.js → p-d57f5ca9.entry.js} +2 -2
  232. package/dist/atomic/{p-67438aff.entry.js → p-da1849e7.entry.js} +2 -2
  233. package/dist/atomic/p-db75a4d7.entry.js +2 -0
  234. package/dist/atomic/{p-a06e88d4.entry.js → p-dbee1385.entry.js} +2 -2
  235. package/dist/atomic/{p-29242cf4.entry.js → p-dcaabb9f.entry.js} +2 -2
  236. package/dist/atomic/{p-aba83a12.entry.js → p-dcc17bed.entry.js} +2 -2
  237. package/dist/atomic/{p-97cb6aa3.entry.js → p-e5b9e75e.entry.js} +2 -2
  238. package/dist/atomic/p-e61c3d85.entry.js +2 -0
  239. package/dist/atomic/{p-2b83ca10.entry.js.map → p-e61c3d85.entry.js.map} +1 -1
  240. package/dist/atomic/{p-c20f8897.entry.js → p-e661342b.entry.js} +2 -2
  241. package/dist/atomic/{p-f7b4d419.entry.js → p-e9b3e6c2.entry.js} +2 -2
  242. package/dist/atomic/{p-b7488ef9.entry.js → p-eaf09638.entry.js} +2 -2
  243. package/dist/atomic/{p-27fc83ff.entry.js → p-ecfe4a14.entry.js} +2 -2
  244. package/dist/atomic/{p-b3b4f0cb.entry.js → p-f2191c75.entry.js} +2 -2
  245. package/dist/atomic/{p-e5434c27.entry.js → p-f4a4f813.entry.js} +2 -2
  246. package/dist/atomic/{p-9450b20c.entry.js → p-f67a7223.entry.js} +2 -2
  247. package/dist/atomic/{p-ed21f076.js → p-f8cb48e1.js} +2 -2
  248. package/dist/atomic/{p-5a9d6ec0.entry.js → p-f95f4574.entry.js} +2 -2
  249. package/dist/atomic/{p-ad38f245.js → p-fcec0e93.js} +2 -2
  250. package/dist/atomic/{p-6c0c869b.js → p-fdc6ec4e.js} +2 -2
  251. package/dist/atomic/p-fee37590.entry.js +2 -0
  252. package/dist/atomic/{p-4b93d185.entry.js → p-ff6407a0.entry.js} +2 -2
  253. package/dist/cjs/_loader.cjs.js +1 -1
  254. package/dist/cjs/{analytics-config-b1eb91e7.js → analytics-config-5744aa95.js} +2 -2
  255. package/dist/cjs/{analytics-config-b1eb91e7.js.map → analytics-config-5744aa95.js.map} +1 -1
  256. package/dist/cjs/atomic-aria-live_2.cjs.entry.js +3 -3
  257. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  258. package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
  259. package/dist/cjs/{atomic-commerce-category-facet_6.cjs.entry.js → atomic-commerce-category-facet_4.cjs.entry.js} +8 -142
  260. package/dist/cjs/atomic-commerce-category-facet_4.cjs.entry.js.map +1 -0
  261. package/dist/cjs/atomic-commerce-facet-number-input.cjs.entry.js +73 -0
  262. package/dist/cjs/atomic-commerce-facet-number-input.cjs.entry.js.map +1 -0
  263. package/dist/cjs/atomic-facet-date-input.cjs.entry.js +88 -0
  264. package/dist/cjs/atomic-facet-date-input.cjs.entry.js.map +1 -0
  265. package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
  266. package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
  267. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  268. package/dist/cjs/atomic-focus-trap_2.cjs.entry.js +2 -2
  269. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  270. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  271. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  272. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +1 -1
  273. package/dist/cjs/atomic-html.cjs.entry.js +1 -1
  274. package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +1 -1
  275. package/dist/cjs/atomic-insight-facet.cjs.entry.js +1 -1
  276. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +1 -1
  277. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +1 -1
  278. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +1 -1
  279. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  280. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
  281. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +1 -1
  282. package/dist/cjs/atomic-insight-pager.cjs.entry.js +3 -3
  283. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +1 -1
  284. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +2 -2
  285. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
  286. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
  287. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +1 -1
  288. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +1 -1
  289. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
  290. package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
  291. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +2 -2
  292. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  293. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
  294. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
  295. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
  296. package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -2
  297. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
  298. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +1 -1
  299. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -2
  300. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +1 -1
  301. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +1 -1
  302. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
  303. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  304. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
  305. package/dist/cjs/atomic-load-more-results.cjs.entry.js +1 -1
  306. package/dist/cjs/atomic-no-results.cjs.entry.js +1 -1
  307. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -1
  308. package/dist/cjs/atomic-pager.cjs.entry.js +3 -3
  309. package/dist/cjs/atomic-product-price.cjs.entry.js +1 -1
  310. package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
  311. package/dist/cjs/atomic-query-summary.cjs.entry.js +1 -1
  312. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  313. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  314. package/dist/cjs/atomic-recs-error.cjs.entry.js +1 -1
  315. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  316. package/dist/cjs/atomic-recs-list.cjs.entry.js +1 -1
  317. package/dist/cjs/atomic-refine-modal.cjs.entry.js +36 -5
  318. package/dist/cjs/atomic-refine-modal.cjs.entry.js.map +1 -1
  319. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  320. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  321. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  322. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  323. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  324. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +3 -3
  325. package/dist/cjs/atomic-results-per-page.cjs.entry.js +1 -1
  326. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +2 -2
  327. package/dist/cjs/atomic-search-box.cjs.entry.js +4 -4
  328. package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
  329. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +2 -2
  330. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +3 -3
  331. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  332. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +6 -3
  333. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js.map +1 -1
  334. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  335. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +1 -1
  336. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +1 -1
  337. package/dist/cjs/atomic-tab-button.cjs.entry.js +1 -1
  338. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  339. package/dist/cjs/atomic.cjs.js +1 -1
  340. package/dist/cjs/index-757bc886.js +12 -8
  341. package/dist/cjs/version.cjs.js +2 -2
  342. package/dist/esm/_loader.js +1 -1
  343. package/dist/esm/{analytics-config-a69a37c5.js → analytics-config-9347c1c5.js} +2 -2
  344. package/dist/esm/{analytics-config-a69a37c5.js.map → analytics-config-9347c1c5.js.map} +1 -1
  345. package/dist/esm/atomic-aria-live_2.entry.js +4 -4
  346. package/dist/esm/atomic-automatic-facet_2.entry.js +3 -3
  347. package/dist/esm/atomic-breadbox.entry.js +2 -2
  348. package/dist/esm/atomic-category-facet.entry.js +4 -4
  349. package/dist/esm/atomic-citation.entry.js +1 -1
  350. package/dist/esm/atomic-color-facet.entry.js +3 -3
  351. package/dist/esm/{atomic-commerce-category-facet_6.entry.js → atomic-commerce-category-facet_4.entry.js} +16 -148
  352. package/dist/esm/atomic-commerce-category-facet_4.entry.js.map +1 -0
  353. package/dist/esm/atomic-commerce-facet-number-input.entry.js +69 -0
  354. package/dist/esm/atomic-commerce-facet-number-input.entry.js.map +1 -0
  355. package/dist/esm/atomic-commerce-facets.entry.js +2 -2
  356. package/dist/esm/atomic-commerce-query-error.entry.js +2 -2
  357. package/dist/esm/atomic-facet-date-input.entry.js +84 -0
  358. package/dist/esm/atomic-facet-date-input.entry.js.map +1 -0
  359. package/dist/esm/atomic-facet-manager.entry.js +1 -1
  360. package/dist/esm/atomic-facet-number-input.entry.js +2 -2
  361. package/dist/esm/atomic-facet.entry.js +7 -7
  362. package/dist/esm/atomic-field-condition.entry.js +4 -4
  363. package/dist/esm/atomic-focus-trap_2.entry.js +4 -4
  364. package/dist/esm/atomic-folded-result-list.entry.js +7 -7
  365. package/dist/esm/atomic-format-currency.entry.js +1 -1
  366. package/dist/esm/atomic-format-number.entry.js +1 -1
  367. package/dist/esm/atomic-format-unit.entry.js +1 -1
  368. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +2 -2
  369. package/dist/esm/atomic-generated-answer.entry.js +3 -3
  370. package/dist/esm/atomic-html.entry.js +1 -1
  371. package/dist/esm/atomic-insight-edit-toggle.entry.js +1 -1
  372. package/dist/esm/atomic-insight-facet.entry.js +5 -5
  373. package/dist/esm/atomic-insight-folded-result-list.entry.js +7 -7
  374. package/dist/esm/atomic-insight-full-search-button.entry.js +1 -1
  375. package/dist/esm/atomic-insight-generated-answer.entry.js +2 -2
  376. package/dist/esm/atomic-insight-history-toggle.entry.js +1 -1
  377. package/dist/esm/atomic-insight-interface.entry.js +4 -4
  378. package/dist/esm/atomic-insight-layout.entry.js +1 -1
  379. package/dist/esm/atomic-insight-no-results.entry.js +3 -3
  380. package/dist/esm/atomic-insight-numeric-facet.entry.js +6 -6
  381. package/dist/esm/atomic-insight-pager.entry.js +4 -4
  382. package/dist/esm/atomic-insight-query-error.entry.js +3 -3
  383. package/dist/esm/atomic-insight-query-summary.entry.js +2 -2
  384. package/dist/esm/atomic-insight-refine-modal.entry.js +5 -5
  385. package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
  386. package/dist/esm/atomic-insight-result-action-bar.entry.js +2 -2
  387. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
  388. package/dist/esm/atomic-insight-result-children-template.entry.js +4 -4
  389. package/dist/esm/atomic-insight-result-children.entry.js +2 -2
  390. package/dist/esm/atomic-insight-result-list.entry.js +7 -7
  391. package/dist/esm/atomic-insight-result-quickview-action.entry.js +3 -3
  392. package/dist/esm/atomic-insight-result-template.entry.js +4 -4
  393. package/dist/esm/atomic-insight-result.entry.js +6 -6
  394. package/dist/esm/atomic-insight-search-box.entry.js +4 -4
  395. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +3 -3
  396. package/dist/esm/atomic-insight-smart-snippet-suggestions.entry.js +1 -1
  397. package/dist/esm/atomic-insight-smart-snippet.entry.js +1 -1
  398. package/dist/esm/atomic-insight-tab.entry.js +2 -2
  399. package/dist/esm/atomic-insight-tabs.entry.js +1 -1
  400. package/dist/esm/atomic-insight-timeframe-facet.entry.js +4 -4
  401. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
  402. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
  403. package/dist/esm/atomic-ipx-body.entry.js +3 -3
  404. package/dist/esm/atomic-ipx-button.entry.js +2 -2
  405. package/dist/esm/atomic-ipx-embedded.entry.js +2 -2
  406. package/dist/esm/atomic-ipx-modal.entry.js +3 -3
  407. package/dist/esm/atomic-ipx-recs-list.entry.js +7 -7
  408. package/dist/esm/atomic-ipx-refine-modal.entry.js +4 -4
  409. package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
  410. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  411. package/dist/esm/atomic-ipx-tab.entry.js +2 -2
  412. package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
  413. package/dist/esm/atomic-load-more-results.entry.js +3 -3
  414. package/dist/esm/atomic-no-results.entry.js +3 -3
  415. package/dist/esm/atomic-notifications.entry.js +2 -2
  416. package/dist/esm/atomic-numeric-facet.entry.js +6 -6
  417. package/dist/esm/atomic-pager.entry.js +5 -5
  418. package/dist/esm/atomic-product-field-condition.entry.js +2 -2
  419. package/dist/esm/atomic-product-multi-value-text.entry.js +1 -1
  420. package/dist/esm/atomic-product-price.entry.js +1 -1
  421. package/dist/esm/atomic-product-section-actions.entry.js +2 -2
  422. package/dist/esm/atomic-product-section-badges.entry.js +2 -2
  423. package/dist/esm/atomic-product-section-bottom-metadata.entry.js +2 -2
  424. package/dist/esm/atomic-product-section-children.entry.js +2 -2
  425. package/dist/esm/atomic-product-section-description.entry.js +2 -2
  426. package/dist/esm/atomic-product-section-emphasized.entry.js +2 -2
  427. package/dist/esm/atomic-product-section-metadata.entry.js +2 -2
  428. package/dist/esm/atomic-product-section-name.entry.js +2 -2
  429. package/dist/esm/atomic-product-section-visual.entry.js +2 -2
  430. package/dist/esm/atomic-query-error.entry.js +3 -3
  431. package/dist/esm/atomic-query-summary.entry.js +3 -3
  432. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  433. package/dist/esm/atomic-quickview.entry.js +3 -3
  434. package/dist/esm/atomic-rating-facet.entry.js +4 -4
  435. package/dist/esm/atomic-rating-range-facet.entry.js +3 -3
  436. package/dist/esm/atomic-recs-error.entry.js +3 -3
  437. package/dist/esm/atomic-recs-interface.entry.js +4 -4
  438. package/dist/esm/atomic-recs-list.entry.js +7 -7
  439. package/dist/esm/atomic-recs-result-template.entry.js +4 -4
  440. package/dist/esm/atomic-recs-result.entry.js +5 -5
  441. package/dist/esm/atomic-refine-modal.entry.js +37 -6
  442. package/dist/esm/atomic-refine-modal.entry.js.map +1 -1
  443. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  444. package/dist/esm/atomic-result-children-template.entry.js +4 -4
  445. package/dist/esm/atomic-result-children.entry.js +2 -2
  446. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  447. package/dist/esm/atomic-result-icon.entry.js +1 -1
  448. package/dist/esm/atomic-result-link.entry.js +1 -1
  449. package/dist/esm/atomic-result-list.entry.js +8 -8
  450. package/dist/esm/atomic-result-localized-text.entry.js +2 -2
  451. package/dist/esm/atomic-result-multi-value-text.entry.js +1 -1
  452. package/dist/esm/atomic-result-placeholder_8.entry.js +7 -7
  453. package/dist/esm/atomic-result-printable-uri.entry.js +2 -2
  454. package/dist/esm/atomic-result-section-children.entry.js +2 -2
  455. package/dist/esm/atomic-result-section-emphasized.entry.js +2 -2
  456. package/dist/esm/atomic-result-section-title-metadata.entry.js +2 -2
  457. package/dist/esm/atomic-result-template.entry.js +4 -4
  458. package/dist/esm/atomic-result.entry.js +5 -5
  459. package/dist/esm/atomic-results-per-page.entry.js +3 -3
  460. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +3 -3
  461. package/dist/esm/atomic-search-box.entry.js +6 -6
  462. package/dist/esm/atomic-search-interface.entry.js +4 -4
  463. package/dist/esm/atomic-search-layout.entry.js +1 -1
  464. package/dist/esm/atomic-segmented-facet.entry.js +2 -2
  465. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +3 -3
  466. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +3 -3
  467. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +3 -3
  468. package/dist/esm/atomic-smart-snippet-suggestions.entry.js +1 -1
  469. package/dist/esm/atomic-smart-snippet.entry.js +2 -2
  470. package/dist/esm/atomic-sort-dropdown.entry.js +7 -4
  471. package/dist/esm/atomic-sort-dropdown.entry.js.map +1 -1
  472. package/dist/esm/atomic-sort-expression.entry.js +3 -3
  473. package/dist/esm/atomic-suggestion-renderer.entry.js +1 -1
  474. package/dist/esm/atomic-tab-bar_2.entry.js +1 -1
  475. package/dist/esm/atomic-tab-button.entry.js +1 -1
  476. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  477. package/dist/esm/atomic-timeframe-facet.entry.js +4 -4
  478. package/dist/esm/atomic.js +1 -1
  479. package/dist/esm/{cloned-facet-elements-cb9ef91b.js → cloned-facet-elements-c9417f2c.js} +2 -2
  480. package/dist/esm/{cloned-facet-elements-cb9ef91b.js.map → cloned-facet-elements-c9417f2c.js.map} +1 -1
  481. package/dist/esm/{display-options-e07c9a5b.js → display-options-49a0539f.js} +2 -2
  482. package/dist/esm/{display-options-e07c9a5b.js.map → display-options-49a0539f.js.map} +1 -1
  483. package/dist/esm/index-3f35faca.js +12 -8
  484. package/dist/esm/{item-section-utils-32bbb943.js → item-section-utils-dab19320.js} +2 -2
  485. package/dist/esm/{item-section-utils-32bbb943.js.map → item-section-utils-dab19320.js.map} +1 -1
  486. package/dist/esm/{props-utils-03d9fdf9.js → props-utils-8e3d7f26.js} +2 -2
  487. package/dist/esm/{props-utils-03d9fdf9.js.map → props-utils-8e3d7f26.js.map} +1 -1
  488. package/dist/esm/{result-template-common-5d59a9b5.js → result-template-common-0eb26069.js} +3 -3
  489. package/dist/esm/{result-template-common-5d59a9b5.js.map → result-template-common-0eb26069.js.map} +1 -1
  490. package/dist/esm/{sections-ef7bfd7a.js → sections-8f508dc1.js} +2 -2
  491. package/dist/esm/{sections-ef7bfd7a.js.map → sections-8f508dc1.js.map} +1 -1
  492. package/dist/esm/{stencil-accessibility-utils-2d41d4cd.js → stencil-accessibility-utils-bc273be5.js} +2 -2
  493. package/dist/esm/{stencil-accessibility-utils-2d41d4cd.js.map → stencil-accessibility-utils-bc273be5.js.map} +1 -1
  494. package/dist/esm/{stencil-facet-search-value-6a3f8ef6.js → stencil-facet-search-value-832313d5.js} +2 -2
  495. package/dist/esm/{stencil-facet-search-value-6a3f8ef6.js.map → stencil-facet-search-value-832313d5.js.map} +1 -1
  496. package/dist/esm/{stencil-facet-value-checkbox-5a90f933.js → stencil-facet-value-checkbox-82d52a44.js} +2 -2
  497. package/dist/esm/{stencil-facet-value-checkbox-5a90f933.js.map → stencil-facet-value-checkbox-82d52a44.js.map} +1 -1
  498. package/dist/esm/{stencil-facet-value-325f019d.js → stencil-facet-value-fda6d52e.js} +2 -2
  499. package/dist/esm/{stencil-facet-value-325f019d.js.map → stencil-facet-value-fda6d52e.js.map} +1 -1
  500. package/dist/esm/{stencil-item-list-common-7eaed4dd.js → stencil-item-list-common-ddc6fb51.js} +3 -3
  501. package/dist/esm/{stencil-item-list-common-7eaed4dd.js.map → stencil-item-list-common-ddc6fb51.js.map} +1 -1
  502. package/dist/esm/{store-e14e2958.js → store-5fcae420.js} +2 -2
  503. package/dist/esm/{store-e14e2958.js.map → store-5fcae420.js.map} +1 -1
  504. package/dist/esm/{timeframe-facet-common-8d7fa83e.js → timeframe-facet-common-1aad36a0.js} +2 -2
  505. package/dist/esm/{timeframe-facet-common-8d7fa83e.js.map → timeframe-facet-common-1aad36a0.js.map} +1 -1
  506. package/dist/esm/{utils-7ac76ba7.js → utils-30b00491.js} +2 -2
  507. package/dist/esm/{utils-7ac76ba7.js.map → utils-30b00491.js.map} +1 -1
  508. package/dist/esm/{values-container-29bf9f6b.js → values-container-0be51709.js} +2 -2
  509. package/dist/esm/{values-container-29bf9f6b.js.map → values-container-0be51709.js.map} +1 -1
  510. package/dist/esm/version.js +2 -2
  511. package/dist/types/components/commerce/atomic-commerce-refine-modal/atomic-commerce-refine-modal.d.ts +39 -31
  512. package/dist/types/components/commerce/index.d.ts +1 -0
  513. package/dist/types/components.d.ts +0 -45
  514. package/docs/atomic-docs.json +2 -326
  515. package/package.json +5 -5
  516. package/dist/atomic/components/atomic-commerce-facets2.js +0 -164
  517. package/dist/atomic/components/atomic-commerce-facets2.js.map +0 -1
  518. package/dist/atomic/components/atomic-commerce-refine-modal.d.ts +0 -11
  519. package/dist/atomic/components/atomic-commerce-refine-modal.js +0 -222
  520. package/dist/atomic/components/atomic-commerce-refine-modal.js.map +0 -1
  521. package/dist/atomic/components/stencil-option.js +0 -9
  522. package/dist/atomic/components/stencil-option.js.map +0 -1
  523. package/dist/atomic/components/stencil-sort.js +0 -38
  524. package/dist/atomic/components/stencil-sort.js.map +0 -1
  525. package/dist/atomic/p-0a81e031.js +0 -2
  526. package/dist/atomic/p-0a81e031.js.map +0 -1
  527. package/dist/atomic/p-1f1d886c.entry.js +0 -2
  528. package/dist/atomic/p-2b83ca10.entry.js +0 -2
  529. package/dist/atomic/p-436c41dd.js +0 -2
  530. package/dist/atomic/p-436c41dd.js.map +0 -1
  531. package/dist/atomic/p-492520bf.js +0 -2
  532. package/dist/atomic/p-5cafb3fe.js +0 -2
  533. package/dist/atomic/p-639696da.entry.js +0 -2
  534. package/dist/atomic/p-83a78247.entry.js +0 -2
  535. package/dist/atomic/p-8596426c.js +0 -2
  536. package/dist/atomic/p-893058c6.entry.js +0 -2
  537. package/dist/atomic/p-893058c6.entry.js.map +0 -1
  538. package/dist/atomic/p-9bb2603f.entry.js +0 -2
  539. package/dist/atomic/p-9bb2603f.entry.js.map +0 -1
  540. package/dist/atomic/p-b01bce99.entry.js +0 -2
  541. package/dist/atomic/p-b01bce99.entry.js.map +0 -1
  542. package/dist/atomic/p-c3606352.entry.js +0 -2
  543. package/dist/atomic/p-d38b2556.entry.js +0 -2
  544. package/dist/atomic/p-d38b2556.entry.js.map +0 -1
  545. package/dist/atomic/p-de544499.entry.js +0 -2
  546. package/dist/atomic/p-f4586b3a.entry.js +0 -2
  547. package/dist/atomic/p-fc0e5c34.js +0 -2
  548. package/dist/cjs/atomic-commerce-category-facet_6.cjs.entry.js.map +0 -1
  549. package/dist/cjs/atomic-commerce-refine-modal.cjs.entry.js +0 -152
  550. package/dist/cjs/atomic-commerce-refine-modal.cjs.entry.js.map +0 -1
  551. package/dist/cjs/stencil-option-273dd381.js +0 -11
  552. package/dist/cjs/stencil-option-273dd381.js.map +0 -1
  553. package/dist/cjs/stencil-sort-7d3e410e.js +0 -43
  554. package/dist/cjs/stencil-sort-7d3e410e.js.map +0 -1
  555. package/dist/esm/atomic-commerce-category-facet_6.entry.js.map +0 -1
  556. package/dist/esm/atomic-commerce-refine-modal.entry.js +0 -148
  557. package/dist/esm/atomic-commerce-refine-modal.entry.js.map +0 -1
  558. package/dist/esm/stencil-option-499a6807.js +0 -9
  559. package/dist/esm/stencil-option-499a6807.js.map +0 -1
  560. package/dist/esm/stencil-sort-7a7ebea2.js +0 -38
  561. package/dist/esm/stencil-sort-7a7ebea2.js.map +0 -1
  562. /package/dist/atomic/{p-02dc6f22.entry.js.map → p-02af42b6.entry.js.map} +0 -0
  563. /package/dist/atomic/{p-237b6498.entry.js.map → p-03beab8e.entry.js.map} +0 -0
  564. /package/dist/atomic/{p-492520bf.js.map → p-04b3493d.js.map} +0 -0
  565. /package/dist/atomic/{p-fe7f8010.entry.js.map → p-0581b5ee.entry.js.map} +0 -0
  566. /package/dist/atomic/{p-ec2161f4.entry.js.map → p-0a144948.entry.js.map} +0 -0
  567. /package/dist/atomic/{p-5a62a764.entry.js.map → p-0b790b7c.entry.js.map} +0 -0
  568. /package/dist/atomic/{p-ea30c2c5.entry.js.map → p-0bfb845f.entry.js.map} +0 -0
  569. /package/dist/atomic/{p-a4003b93.entry.js.map → p-199ff90b.entry.js.map} +0 -0
  570. /package/dist/atomic/{p-7e35c35d.entry.js.map → p-1c8468e7.entry.js.map} +0 -0
  571. /package/dist/atomic/{p-9dae1cd8.entry.js.map → p-1e634caa.entry.js.map} +0 -0
  572. /package/dist/atomic/{p-6195bd9a.entry.js.map → p-20970213.entry.js.map} +0 -0
  573. /package/dist/atomic/{p-47156866.entry.js.map → p-21c20ec6.entry.js.map} +0 -0
  574. /package/dist/atomic/{p-607fee37.entry.js.map → p-22708648.entry.js.map} +0 -0
  575. /package/dist/atomic/{p-605ad290.entry.js.map → p-23037179.entry.js.map} +0 -0
  576. /package/dist/atomic/{p-40a6b242.entry.js.map → p-30529a7b.entry.js.map} +0 -0
  577. /package/dist/atomic/{p-1f1d886c.entry.js.map → p-308c8f97.entry.js.map} +0 -0
  578. /package/dist/atomic/{p-03325add.entry.js.map → p-31c65a76.entry.js.map} +0 -0
  579. /package/dist/atomic/{p-fe735188.entry.js.map → p-35ba070e.entry.js.map} +0 -0
  580. /package/dist/atomic/{p-263f6746.entry.js.map → p-381e9292.entry.js.map} +0 -0
  581. /package/dist/atomic/{p-c2a0f838.entry.js.map → p-3858311d.entry.js.map} +0 -0
  582. /package/dist/atomic/{p-3116ec7b.entry.js.map → p-3ae51da2.entry.js.map} +0 -0
  583. /package/dist/atomic/{p-871bd105.entry.js.map → p-3b19694c.entry.js.map} +0 -0
  584. /package/dist/atomic/{p-56e2b35d.entry.js.map → p-3d66abef.entry.js.map} +0 -0
  585. /package/dist/atomic/{p-d044ff5f.js.map → p-3dabd73e.js.map} +0 -0
  586. /package/dist/atomic/{p-a5aaa14c.entry.js.map → p-3ebbf512.entry.js.map} +0 -0
  587. /package/dist/atomic/{p-ddb5a587.entry.js.map → p-3f27f540.entry.js.map} +0 -0
  588. /package/dist/atomic/{p-5cafb3fe.js.map → p-42bcba44.js.map} +0 -0
  589. /package/dist/atomic/{p-2fcbc513.entry.js.map → p-4475b820.entry.js.map} +0 -0
  590. /package/dist/atomic/{p-b5845511.entry.js.map → p-46f1a130.entry.js.map} +0 -0
  591. /package/dist/atomic/{p-4fe614d1.entry.js.map → p-4ac7cf4d.entry.js.map} +0 -0
  592. /package/dist/atomic/{p-fc0e5c34.js.map → p-4bf140ca.js.map} +0 -0
  593. /package/dist/atomic/{p-58193542.entry.js.map → p-4e93452a.entry.js.map} +0 -0
  594. /package/dist/atomic/{p-c9cbc469.entry.js.map → p-532aea78.entry.js.map} +0 -0
  595. /package/dist/atomic/{p-022e2c88.entry.js.map → p-538fa6a8.entry.js.map} +0 -0
  596. /package/dist/atomic/{p-67439395.entry.js.map → p-54acf51c.entry.js.map} +0 -0
  597. /package/dist/atomic/{p-639696da.entry.js.map → p-5a1b0c43.entry.js.map} +0 -0
  598. /package/dist/atomic/{p-61520136.entry.js.map → p-5a7287d7.entry.js.map} +0 -0
  599. /package/dist/atomic/{p-2f89eaa5.entry.js.map → p-5e1091db.entry.js.map} +0 -0
  600. /package/dist/atomic/{p-03e139a8.entry.js.map → p-5e43c72a.entry.js.map} +0 -0
  601. /package/dist/atomic/{p-261cc069.entry.js.map → p-5fad24d1.entry.js.map} +0 -0
  602. /package/dist/atomic/{p-06b55a5e.js.map → p-61f9c3f7.js.map} +0 -0
  603. /package/dist/atomic/{p-3b92373f.entry.js.map → p-62896d9f.entry.js.map} +0 -0
  604. /package/dist/atomic/{p-83b61fc7.entry.js.map → p-68cf6c73.entry.js.map} +0 -0
  605. /package/dist/atomic/{p-43ef2a78.entry.js.map → p-6a7ad933.entry.js.map} +0 -0
  606. /package/dist/atomic/{p-d61e65c5.entry.js.map → p-6c833c68.entry.js.map} +0 -0
  607. /package/dist/atomic/{p-ae067eb1.entry.js.map → p-6e0aa85b.entry.js.map} +0 -0
  608. /package/dist/atomic/{p-0297467f.entry.js.map → p-710756b1.entry.js.map} +0 -0
  609. /package/dist/atomic/{p-10bfcc08.entry.js.map → p-719d27a4.entry.js.map} +0 -0
  610. /package/dist/atomic/{p-e3abb9bf.entry.js.map → p-72693691.entry.js.map} +0 -0
  611. /package/dist/atomic/{p-cc11dfe5.entry.js.map → p-72cb8c3d.entry.js.map} +0 -0
  612. /package/dist/atomic/{p-5fb33957.entry.js.map → p-741cfe8d.entry.js.map} +0 -0
  613. /package/dist/atomic/{p-37d04bd3.entry.js.map → p-76fde50b.entry.js.map} +0 -0
  614. /package/dist/atomic/{p-9841c955.entry.js.map → p-778b5a69.entry.js.map} +0 -0
  615. /package/dist/atomic/{p-85b0eb2c.entry.js.map → p-7969276e.entry.js.map} +0 -0
  616. /package/dist/atomic/{p-cd65617e.entry.js.map → p-7b5c63e4.entry.js.map} +0 -0
  617. /package/dist/atomic/{p-c3606352.entry.js.map → p-7b67c9b9.entry.js.map} +0 -0
  618. /package/dist/atomic/{p-de544499.entry.js.map → p-7b6843d6.entry.js.map} +0 -0
  619. /package/dist/atomic/{p-43c60cfc.entry.js.map → p-7c62d253.entry.js.map} +0 -0
  620. /package/dist/atomic/{p-e467bb89.entry.js.map → p-7f381070.entry.js.map} +0 -0
  621. /package/dist/atomic/{p-33aeda20.entry.js.map → p-816f3469.entry.js.map} +0 -0
  622. /package/dist/atomic/{p-5a397a22.entry.js.map → p-81cb6bbb.entry.js.map} +0 -0
  623. /package/dist/atomic/{p-c3d0cd58.entry.js.map → p-833f101f.entry.js.map} +0 -0
  624. /package/dist/atomic/{p-d730d365.entry.js.map → p-83a42baf.entry.js.map} +0 -0
  625. /package/dist/atomic/{p-93e9272d.entry.js.map → p-84efa266.entry.js.map} +0 -0
  626. /package/dist/atomic/{p-8471090e.entry.js.map → p-88d2981f.entry.js.map} +0 -0
  627. /package/dist/atomic/{p-71743e67.entry.js.map → p-8981e00e.entry.js.map} +0 -0
  628. /package/dist/atomic/{p-47307bf9.entry.js.map → p-8a959224.entry.js.map} +0 -0
  629. /package/dist/atomic/{p-adf75ecf.entry.js.map → p-8c0cc64c.entry.js.map} +0 -0
  630. /package/dist/atomic/{p-3f77fe9e.entry.js.map → p-8c780987.entry.js.map} +0 -0
  631. /package/dist/atomic/{p-3bcfc0a2.entry.js.map → p-8e46ebd3.entry.js.map} +0 -0
  632. /package/dist/atomic/{p-10e8d6e9.entry.js.map → p-8ec6e54b.entry.js.map} +0 -0
  633. /package/dist/atomic/{p-2edbbd2c.entry.js.map → p-8ecb50bb.entry.js.map} +0 -0
  634. /package/dist/atomic/{p-47591d90.entry.js.map → p-911adb53.entry.js.map} +0 -0
  635. /package/dist/atomic/{p-8596426c.js.map → p-93030acf.js.map} +0 -0
  636. /package/dist/atomic/{p-aaf5add5.entry.js.map → p-9310cce8.entry.js.map} +0 -0
  637. /package/dist/atomic/{p-463916e1.entry.js.map → p-942b2556.entry.js.map} +0 -0
  638. /package/dist/atomic/{p-f1630863.js.map → p-958f7721.js.map} +0 -0
  639. /package/dist/atomic/{p-9f3ecfe5.js.map → p-96a6f84f.js.map} +0 -0
  640. /package/dist/atomic/{p-c030a2f0.entry.js.map → p-9aa8d0f8.entry.js.map} +0 -0
  641. /package/dist/atomic/{p-eba0c897.entry.js.map → p-9b2e7084.entry.js.map} +0 -0
  642. /package/dist/atomic/{p-e111d8f6.entry.js.map → p-9c3411c5.entry.js.map} +0 -0
  643. /package/dist/atomic/{p-5c040ebc.entry.js.map → p-9ebb392a.entry.js.map} +0 -0
  644. /package/dist/atomic/{p-6b780715.entry.js.map → p-a35f225e.entry.js.map} +0 -0
  645. /package/dist/atomic/{p-22b3c655.entry.js.map → p-a35f2759.entry.js.map} +0 -0
  646. /package/dist/atomic/{p-0d1f928f.entry.js.map → p-a46d0a72.entry.js.map} +0 -0
  647. /package/dist/atomic/{p-0b705c31.entry.js.map → p-a55516b4.entry.js.map} +0 -0
  648. /package/dist/atomic/{p-9ff8fec2.entry.js.map → p-a8f9ba93.entry.js.map} +0 -0
  649. /package/dist/atomic/{p-5db46842.js.map → p-aa10238a.js.map} +0 -0
  650. /package/dist/atomic/{p-ca98cb79.entry.js.map → p-ac60cfe4.entry.js.map} +0 -0
  651. /package/dist/atomic/{p-95e4c09e.entry.js.map → p-ace62ee0.entry.js.map} +0 -0
  652. /package/dist/atomic/{p-fc2cceb3.entry.js.map → p-ad5e7351.entry.js.map} +0 -0
  653. /package/dist/atomic/{p-9957b28c.js.map → p-ad9fbb29.js.map} +0 -0
  654. /package/dist/atomic/{p-62d16036.entry.js.map → p-ae7a143b.entry.js.map} +0 -0
  655. /package/dist/atomic/{p-ec0b64a5.entry.js.map → p-aed080d1.entry.js.map} +0 -0
  656. /package/dist/atomic/{p-da1d8792.js.map → p-b31d8fdd.js.map} +0 -0
  657. /package/dist/atomic/{p-cb1905a6.entry.js.map → p-b3f05420.entry.js.map} +0 -0
  658. /package/dist/atomic/{p-3835716f.entry.js.map → p-b3fa18f1.entry.js.map} +0 -0
  659. /package/dist/atomic/{p-aaa324cd.entry.js.map → p-b878425f.entry.js.map} +0 -0
  660. /package/dist/atomic/{p-186a5f0d.entry.js.map → p-b8b67309.entry.js.map} +0 -0
  661. /package/dist/atomic/{p-b875f4b6.entry.js.map → p-b8beb062.entry.js.map} +0 -0
  662. /package/dist/atomic/{p-0f506869.js.map → p-bc96b8f6.js.map} +0 -0
  663. /package/dist/atomic/{p-6e592bf0.entry.js.map → p-bcbbb63f.entry.js.map} +0 -0
  664. /package/dist/atomic/{p-b0d10266.entry.js.map → p-bd10dac1.entry.js.map} +0 -0
  665. /package/dist/atomic/{p-57b6b64c.entry.js.map → p-be04b3b0.entry.js.map} +0 -0
  666. /package/dist/atomic/{p-1519454c.entry.js.map → p-bf7d7b24.entry.js.map} +0 -0
  667. /package/dist/atomic/{p-7e80de89.entry.js.map → p-c0edac65.entry.js.map} +0 -0
  668. /package/dist/atomic/{p-b973f6f4.entry.js.map → p-c164379a.entry.js.map} +0 -0
  669. /package/dist/atomic/{p-f5054252.entry.js.map → p-c5df6d2d.entry.js.map} +0 -0
  670. /package/dist/atomic/{p-0fe2face.entry.js.map → p-c6e5e68e.entry.js.map} +0 -0
  671. /package/dist/atomic/{p-2f6d4b52.entry.js.map → p-c7b888be.entry.js.map} +0 -0
  672. /package/dist/atomic/{p-1697fe78.entry.js.map → p-c92957d3.entry.js.map} +0 -0
  673. /package/dist/atomic/{p-d625f03b.entry.js.map → p-c9f3c083.entry.js.map} +0 -0
  674. /package/dist/atomic/{p-934470ac.entry.js.map → p-cce54989.entry.js.map} +0 -0
  675. /package/dist/atomic/{p-bf460507.entry.js.map → p-cd124dd9.entry.js.map} +0 -0
  676. /package/dist/atomic/{p-dc7b46cc.entry.js.map → p-ce19125a.entry.js.map} +0 -0
  677. /package/dist/atomic/{p-d28ce9d0.entry.js.map → p-d048d414.entry.js.map} +0 -0
  678. /package/dist/atomic/{p-bebbdbee.entry.js.map → p-d1e2f51c.entry.js.map} +0 -0
  679. /package/dist/atomic/{p-6776811d.js.map → p-d2db2d70.js.map} +0 -0
  680. /package/dist/atomic/{p-26d0a8d6.entry.js.map → p-d57f5ca9.entry.js.map} +0 -0
  681. /package/dist/atomic/{p-67438aff.entry.js.map → p-da1849e7.entry.js.map} +0 -0
  682. /package/dist/atomic/{p-f4586b3a.entry.js.map → p-db75a4d7.entry.js.map} +0 -0
  683. /package/dist/atomic/{p-a06e88d4.entry.js.map → p-dbee1385.entry.js.map} +0 -0
  684. /package/dist/atomic/{p-29242cf4.entry.js.map → p-dcaabb9f.entry.js.map} +0 -0
  685. /package/dist/atomic/{p-aba83a12.entry.js.map → p-dcc17bed.entry.js.map} +0 -0
  686. /package/dist/atomic/{p-97cb6aa3.entry.js.map → p-e5b9e75e.entry.js.map} +0 -0
  687. /package/dist/atomic/{p-c20f8897.entry.js.map → p-e661342b.entry.js.map} +0 -0
  688. /package/dist/atomic/{p-f7b4d419.entry.js.map → p-e9b3e6c2.entry.js.map} +0 -0
  689. /package/dist/atomic/{p-b7488ef9.entry.js.map → p-eaf09638.entry.js.map} +0 -0
  690. /package/dist/atomic/{p-27fc83ff.entry.js.map → p-ecfe4a14.entry.js.map} +0 -0
  691. /package/dist/atomic/{p-b3b4f0cb.entry.js.map → p-f2191c75.entry.js.map} +0 -0
  692. /package/dist/atomic/{p-e5434c27.entry.js.map → p-f4a4f813.entry.js.map} +0 -0
  693. /package/dist/atomic/{p-9450b20c.entry.js.map → p-f67a7223.entry.js.map} +0 -0
  694. /package/dist/atomic/{p-ed21f076.js.map → p-f8cb48e1.js.map} +0 -0
  695. /package/dist/atomic/{p-5a9d6ec0.entry.js.map → p-f95f4574.entry.js.map} +0 -0
  696. /package/dist/atomic/{p-ad38f245.js.map → p-fcec0e93.js.map} +0 -0
  697. /package/dist/atomic/{p-6c0c869b.js.map → p-fdc6ec4e.js.map} +0 -0
  698. /package/dist/atomic/{p-83a78247.entry.js.map → p-fee37590.entry.js.map} +0 -0
  699. /package/dist/atomic/{p-4b93d185.entry.js.map → p-ff6407a0.entry.js.map} +0 -0
@@ -4,7 +4,6 @@ import { buildSearchStatus, buildSort, buildTabManager, parseCriterionExpression
4
4
  import { I as InitializeBindings, B as BindStateToController } from './initialization-utils.js';
5
5
  import { s as shouldDisplayOnCurrentTab } from './tab-utils.js';
6
6
  import { r as randomID } from './utils.js';
7
- import { S as SortOption } from './stencil-option.js';
8
7
  import { A as ArrowBottomIcon } from './arrow-bottom-rounded.js';
9
8
 
10
9
  const SortContainer = (_, children) => {
@@ -30,6 +29,10 @@ const SortLabel = ({ id, i18n }) => {
30
29
  })));
31
30
  };
32
31
 
32
+ const SortOption = ({ value, selected, i18n, label, }) => {
33
+ return (h("option", { value: value, selected: selected }, i18n.t(label)));
34
+ };
35
+
33
36
  const SortSelect = ({ i18n, id, onSelect }, children) => {
34
37
  return (h("div", { class: "relative", part: "select-parent" },
35
38
  h("select", { id: id, class: "btn-outline-neutral h-10 grow cursor-pointer appearance-none pr-24 pl-3", part: "select", "aria-label": i18n.t('sort-by'), onChange: (option) => onSelect(option) }, children),
@@ -114,8 +117,8 @@ const AtomicSortDropdown$1 = /*@__PURE__*/ proxyCustomElement(class AtomicSortDr
114
117
  const { hasError, hasResults, firstSearchExecuted } = this.searchStatusState;
115
118
  const { bindings: { i18n }, id, } = this;
116
119
  return [
117
- h(SortGuard, { key: '0f0047dbece058dc80e790d86cb025c294522abb', firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: hasResults }, h(SortContainer, { key: '8637e7d94b2e3b876f6670fd9ffa68d236c48b66' }, h(SortLabel, { key: '5648c4d23b5cca87c7df3bf9cdc23566b90d6ccd', i18n: i18n, id: id }), h(SortSelect, { key: '5706ad582d5ac02dfb196e9d3969ac108f50d4e8', i18n: i18n, id: id, onSelect: (evt) => this.select(evt) }, this.options.map(({ label, criteria, expression }) => (h(SortOption, { i18n: i18n, label: label, selected: this.sort.isSortedBy(criteria), value: expression })))))),
118
- h("slot", { key: 'cd441db170547726c77047cd23e59c96a80d620c' }),
120
+ h(SortGuard, { key: '0089f39a09665e11ddebb1627a3a8464d06836a6', firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: hasResults }, h(SortContainer, { key: 'c3c3fe60e52499f137955d44c6fe9cf1ca36cd7b' }, h(SortLabel, { key: '20e9da1573e3e5e36c6e17c93ed76f25513d85a3', i18n: i18n, id: id }), h(SortSelect, { key: 'ee075a32864b878917aeb1245580bcdc11cb5201', i18n: i18n, id: id, onSelect: (evt) => this.select(evt) }, this.options.map(({ label, criteria, expression }) => (h(SortOption, { i18n: i18n, label: label, selected: this.sort.isSortedBy(criteria), value: expression })))))),
121
+ h("slot", { key: 'bdbdd7296d60025e9cc0a6826108f9bc76860000' }),
119
122
  ];
120
123
  }
121
124
  get host() { return this; }
@@ -1 +1 @@
1
- {"file":"atomic-sort-dropdown.js","mappings":"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","names":["AtomicSortDropdown"],"sources":["src/components/common/sort/container.tsx","src/components/common/sort/stencil-guard.tsx","src/components/common/sort/stencil-label.tsx","src/components/common/sort/stencil-select.tsx","src/components/search/atomic-sort-dropdown/atomic-sort-dropdown.pcss?tag=atomic-sort-dropdown&encapsulation=shadow","src/components/search/atomic-sort-dropdown/atomic-sort-dropdown.tsx"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\n\nexport const SortContainer: FunctionalComponent = (_, children) => {\n return (\n <div class=\"text-on-background flex flex-wrap items-center\">{children}</div>\n );\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\n\ninterface SortGuardProps {\n hasError: boolean;\n firstSearchExecuted: boolean;\n hasResults: boolean;\n}\nexport const SortGuard: FunctionalComponent<SortGuardProps> = (\n {hasError, firstSearchExecuted, hasResults},\n children\n) => {\n if (hasError) {\n return;\n }\n\n if (!firstSearchExecuted) {\n return (\n <div\n part=\"placeholder\"\n aria-hidden\n class=\"bg-neutral my-2 h-6 w-44 animate-pulse rounded\"\n ></div>\n );\n }\n\n if (!hasResults) {\n return;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\n\ninterface SortLabelProps {\n id: string;\n i18n: i18n;\n}\n\nexport const SortLabel: FunctionalComponent<SortLabelProps> = ({id, i18n}) => {\n return (\n <label\n class=\"m-2 cursor-pointer text-sm font-bold\"\n part=\"label\"\n htmlFor={id}\n >\n {i18n.t('with-colon', {\n text: i18n.t('sort-by'),\n })}\n </label>\n );\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport ArrowBottomIcon from '../../../images/arrow-bottom-rounded.svg';\n\ninterface SortSelectProps {\n id: string;\n i18n: i18n;\n onSelect: (opt: Event) => void;\n}\nexport const SortSelect: FunctionalComponent<SortSelectProps> = (\n {i18n, id, onSelect},\n children\n) => {\n return (\n <div class=\"relative\" part=\"select-parent\">\n <select\n id={id}\n class=\"btn-outline-neutral h-10 grow cursor-pointer appearance-none pr-24 pl-3\"\n part=\"select\"\n aria-label={i18n.t('sort-by')}\n onChange={(option) => onSelect(option)}\n >\n {children}\n </select>\n <div\n part=\"select-separator\"\n class=\"border-neutral pointer-events-none absolute top-px right-0 bottom-px flex w-10 items-center justify-center border-l\"\n >\n <atomic-icon class=\"w-2.5\" icon={ArrowBottomIcon}></atomic-icon>\n </div>\n </div>\n );\n};\n","@import '../../../global/global.pcss';\n\nselect:hover + div,\nselect:focus-visible + div {\n @apply border-primary-light text-primary-light;\n}\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {\n Sort,\n buildSort,\n SortState,\n parseCriterionExpression,\n buildSearchStatus,\n SearchStatus,\n SearchStatusState,\n TabManager,\n TabManagerState,\n buildTabManager,\n loadSortCriteriaActions,\n} from '@coveo/headless';\nimport {Component, h, State, Element} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {shouldDisplayOnCurrentTab} from '../../../utils/tab-utils';\nimport {randomID} from '../../../utils/utils';\nimport {SortContainer} from '../../common/sort/container';\nimport {SortGuard} from '../../common/sort/stencil-guard';\nimport {SortLabel} from '../../common/sort/stencil-label';\nimport {SortOption} from '../../common/sort/stencil-option';\nimport {SortSelect} from '../../common/sort/stencil-select';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-sort-dropdown` component renders a dropdown that the end user can interact with to select the criteria to use when sorting query results.\n *\n * @slot default - The `atomic-sort-expression` of the dropdown are slotted in.\n *\n * @part label - The \"Sort by\" label of the `<select>` element.\n * @part select-parent - The `<select>` element parent.\n * @part select - The `<select>` element of the dropdown list.\n * @part select-separator - The element separating the select from the icon.\n * @part placeholder - The dropdown placeholder for while the search interface is initializing.\n */\n@Component({\n tag: 'atomic-sort-dropdown',\n styleUrl: 'atomic-sort-dropdown.pcss',\n shadow: true,\n})\nexport class AtomicSortDropdown implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n private sort!: Sort;\n public searchStatus!: SearchStatus;\n private id!: string;\n\n @Element() host!: HTMLElement;\n\n @State() @BindStateToController('sort') public sortState!: SortState;\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: SearchStatusState;\n public tabManager!: TabManager;\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n @State() public error!: Error;\n\n connectedCallback(): void {\n this.id ||= randomID('atomic-sort-dropdown-');\n }\n\n public initialize() {\n this.buildOptions();\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n this.sort = buildSort(this.bindings.engine, {\n initialState: {\n criterion: this.bindings.store.state.sortOptions[0]?.criteria,\n },\n });\n this.tabManager = buildTabManager(this.bindings.engine);\n }\n\n private buildOptions() {\n const sortExpressionElements = Array.from(\n this.host.querySelectorAll('atomic-sort-expression')\n );\n\n if (!sortExpressionElements.length) {\n this.error = new Error(\n 'The \"atomic-sort-dropdown\" element requires at least one \"atomic-sort-expression\" child.'\n );\n return;\n }\n\n this.bindings.store.state.sortOptions = sortExpressionElements.map(\n ({expression, label, tabsIncluded, tabsExcluded}) => {\n new Schema({\n label: new StringValue({emptyAllowed: false, required: true}),\n }).validate({label});\n\n return {\n tabs: {\n included: tabsIncluded,\n excluded: tabsExcluded,\n },\n criteria: parseCriterionExpression(expression),\n expression,\n label,\n };\n }\n );\n }\n\n private get options() {\n return this.bindings.store.state.sortOptions.filter(({tabs}) =>\n shouldDisplayOnCurrentTab(\n [...tabs.included],\n [...tabs.excluded],\n this.tabManagerState?.activeTab\n )\n );\n }\n\n private select(e: Event) {\n const select = e.composedPath()[0] as HTMLSelectElement;\n const option = this.options.find(\n (option) => option.expression === select.value\n );\n option && this.sort.sortBy(option.criteria);\n }\n\n public componentShouldUpdate(): void {\n if (\n this.options.some(\n (option) =>\n option.expression.trim().replace(/\\s*,\\s*/g, ',') ===\n this.sortState.sortCriteria.replace(/@/g, '')\n )\n ) {\n return;\n }\n\n const action = loadSortCriteriaActions(\n this.bindings.engine\n ).updateSortCriterion(this.options[0]?.criteria);\n\n this.bindings.engine.dispatch(action);\n }\n\n public render() {\n const {hasError, hasResults, firstSearchExecuted} = this.searchStatusState;\n const {\n bindings: {i18n},\n id,\n } = this;\n\n return [\n <SortGuard\n firstSearchExecuted={firstSearchExecuted}\n hasError={hasError}\n hasResults={hasResults}\n >\n <SortContainer>\n <SortLabel i18n={i18n} id={id} />\n <SortSelect i18n={i18n} id={id} onSelect={(evt) => this.select(evt)}>\n {this.options.map(({label, criteria, expression}) => (\n <SortOption\n i18n={i18n}\n label={label}\n selected={this.sort.isSortedBy(criteria)}\n value={expression}\n />\n ))}\n </SortSelect>\n </SortContainer>\n </SortGuard>,\n <slot></slot>,\n ];\n }\n}\n"],"version":3}
1
+ {"file":"atomic-sort-dropdown.js","mappings":"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","names":["AtomicSortDropdown"],"sources":["src/components/common/sort/container.tsx","src/components/common/sort/stencil-guard.tsx","src/components/common/sort/stencil-label.tsx","src/components/common/sort/stencil-option.tsx","src/components/common/sort/stencil-select.tsx","src/components/search/atomic-sort-dropdown/atomic-sort-dropdown.pcss?tag=atomic-sort-dropdown&encapsulation=shadow","src/components/search/atomic-sort-dropdown/atomic-sort-dropdown.tsx"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\n\nexport const SortContainer: FunctionalComponent = (_, children) => {\n return (\n <div class=\"text-on-background flex flex-wrap items-center\">{children}</div>\n );\n};\n","import {Fragment, FunctionalComponent, h} from '@stencil/core';\n\ninterface SortGuardProps {\n hasError: boolean;\n firstSearchExecuted: boolean;\n hasResults: boolean;\n}\nexport const SortGuard: FunctionalComponent<SortGuardProps> = (\n {hasError, firstSearchExecuted, hasResults},\n children\n) => {\n if (hasError) {\n return;\n }\n\n if (!firstSearchExecuted) {\n return (\n <div\n part=\"placeholder\"\n aria-hidden\n class=\"bg-neutral my-2 h-6 w-44 animate-pulse rounded\"\n ></div>\n );\n }\n\n if (!hasResults) {\n return;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\n\ninterface SortLabelProps {\n id: string;\n i18n: i18n;\n}\n\nexport const SortLabel: FunctionalComponent<SortLabelProps> = ({id, i18n}) => {\n return (\n <label\n class=\"m-2 cursor-pointer text-sm font-bold\"\n part=\"label\"\n htmlFor={id}\n >\n {i18n.t('with-colon', {\n text: i18n.t('sort-by'),\n })}\n </label>\n );\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\n\nexport interface SortOptionProps {\n value: string;\n selected: boolean;\n i18n: i18n;\n label: string;\n}\nexport const SortOption: FunctionalComponent<SortOptionProps> = ({\n value,\n selected,\n i18n,\n label,\n}) => {\n return (\n <option value={value} selected={selected}>\n {i18n.t(label)}\n </option>\n );\n};\n","import {FunctionalComponent, h} from '@stencil/core';\nimport {i18n} from 'i18next';\nimport ArrowBottomIcon from '../../../images/arrow-bottom-rounded.svg';\n\ninterface SortSelectProps {\n id: string;\n i18n: i18n;\n onSelect: (opt: Event) => void;\n}\nexport const SortSelect: FunctionalComponent<SortSelectProps> = (\n {i18n, id, onSelect},\n children\n) => {\n return (\n <div class=\"relative\" part=\"select-parent\">\n <select\n id={id}\n class=\"btn-outline-neutral h-10 grow cursor-pointer appearance-none pr-24 pl-3\"\n part=\"select\"\n aria-label={i18n.t('sort-by')}\n onChange={(option) => onSelect(option)}\n >\n {children}\n </select>\n <div\n part=\"select-separator\"\n class=\"border-neutral pointer-events-none absolute top-px right-0 bottom-px flex w-10 items-center justify-center border-l\"\n >\n <atomic-icon class=\"w-2.5\" icon={ArrowBottomIcon}></atomic-icon>\n </div>\n </div>\n );\n};\n","@import '../../../global/global.pcss';\n\nselect:hover + div,\nselect:focus-visible + div {\n @apply border-primary-light text-primary-light;\n}\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {\n Sort,\n buildSort,\n SortState,\n parseCriterionExpression,\n buildSearchStatus,\n SearchStatus,\n SearchStatusState,\n TabManager,\n TabManagerState,\n buildTabManager,\n loadSortCriteriaActions,\n} from '@coveo/headless';\nimport {Component, h, State, Element} from '@stencil/core';\nimport {\n BindStateToController,\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {shouldDisplayOnCurrentTab} from '../../../utils/tab-utils';\nimport {randomID} from '../../../utils/utils';\nimport {SortContainer} from '../../common/sort/container';\nimport {SortGuard} from '../../common/sort/stencil-guard';\nimport {SortLabel} from '../../common/sort/stencil-label';\nimport {SortOption} from '../../common/sort/stencil-option';\nimport {SortSelect} from '../../common/sort/stencil-select';\nimport {Bindings} from '../atomic-search-interface/atomic-search-interface';\n\n/**\n * The `atomic-sort-dropdown` component renders a dropdown that the end user can interact with to select the criteria to use when sorting query results.\n *\n * @slot default - The `atomic-sort-expression` of the dropdown are slotted in.\n *\n * @part label - The \"Sort by\" label of the `<select>` element.\n * @part select-parent - The `<select>` element parent.\n * @part select - The `<select>` element of the dropdown list.\n * @part select-separator - The element separating the select from the icon.\n * @part placeholder - The dropdown placeholder for while the search interface is initializing.\n */\n@Component({\n tag: 'atomic-sort-dropdown',\n styleUrl: 'atomic-sort-dropdown.pcss',\n shadow: true,\n})\nexport class AtomicSortDropdown implements InitializableComponent {\n @InitializeBindings() public bindings!: Bindings;\n private sort!: Sort;\n public searchStatus!: SearchStatus;\n private id!: string;\n\n @Element() host!: HTMLElement;\n\n @State() @BindStateToController('sort') public sortState!: SortState;\n @BindStateToController('searchStatus')\n @State()\n private searchStatusState!: SearchStatusState;\n public tabManager!: TabManager;\n @BindStateToController('tabManager')\n @State()\n public tabManagerState!: TabManagerState;\n @State() public error!: Error;\n\n connectedCallback(): void {\n this.id ||= randomID('atomic-sort-dropdown-');\n }\n\n public initialize() {\n this.buildOptions();\n this.searchStatus = buildSearchStatus(this.bindings.engine);\n this.sort = buildSort(this.bindings.engine, {\n initialState: {\n criterion: this.bindings.store.state.sortOptions[0]?.criteria,\n },\n });\n this.tabManager = buildTabManager(this.bindings.engine);\n }\n\n private buildOptions() {\n const sortExpressionElements = Array.from(\n this.host.querySelectorAll('atomic-sort-expression')\n );\n\n if (!sortExpressionElements.length) {\n this.error = new Error(\n 'The \"atomic-sort-dropdown\" element requires at least one \"atomic-sort-expression\" child.'\n );\n return;\n }\n\n this.bindings.store.state.sortOptions = sortExpressionElements.map(\n ({expression, label, tabsIncluded, tabsExcluded}) => {\n new Schema({\n label: new StringValue({emptyAllowed: false, required: true}),\n }).validate({label});\n\n return {\n tabs: {\n included: tabsIncluded,\n excluded: tabsExcluded,\n },\n criteria: parseCriterionExpression(expression),\n expression,\n label,\n };\n }\n );\n }\n\n private get options() {\n return this.bindings.store.state.sortOptions.filter(({tabs}) =>\n shouldDisplayOnCurrentTab(\n [...tabs.included],\n [...tabs.excluded],\n this.tabManagerState?.activeTab\n )\n );\n }\n\n private select(e: Event) {\n const select = e.composedPath()[0] as HTMLSelectElement;\n const option = this.options.find(\n (option) => option.expression === select.value\n );\n option && this.sort.sortBy(option.criteria);\n }\n\n public componentShouldUpdate(): void {\n if (\n this.options.some(\n (option) =>\n option.expression.trim().replace(/\\s*,\\s*/g, ',') ===\n this.sortState.sortCriteria.replace(/@/g, '')\n )\n ) {\n return;\n }\n\n const action = loadSortCriteriaActions(\n this.bindings.engine\n ).updateSortCriterion(this.options[0]?.criteria);\n\n this.bindings.engine.dispatch(action);\n }\n\n public render() {\n const {hasError, hasResults, firstSearchExecuted} = this.searchStatusState;\n const {\n bindings: {i18n},\n id,\n } = this;\n\n return [\n <SortGuard\n firstSearchExecuted={firstSearchExecuted}\n hasError={hasError}\n hasResults={hasResults}\n >\n <SortContainer>\n <SortLabel i18n={i18n} id={id} />\n <SortSelect i18n={i18n} id={id} onSelect={(evt) => this.select(evt)}>\n {this.options.map(({label, criteria, expression}) => (\n <SortOption\n i18n={i18n}\n label={label}\n selected={this.sort.isSortedBy(criteria)}\n value={expression}\n />\n ))}\n </SortSelect>\n </SortContainer>\n </SortGuard>,\n <slot></slot>,\n ];\n }\n}\n"],"version":3}
@@ -47,7 +47,7 @@ const AtomicSortExpression$1 = /*@__PURE__*/ proxyCustomElement(class AtomicSort
47
47
  const dropdownComponent = 'atomic-sort-dropdown';
48
48
  if (!this.host.closest(dropdownComponent)) {
49
49
  const error = new Error(`The "${this.host.nodeName.toLowerCase()}" component has to be used inside an ${dropdownComponent} element.`);
50
- return (h("atomic-component-error", { key: 'f8d757f03492d082e46915bfcc6f0ed4cb16d3ec', element: this.host, error: error }));
50
+ return (h("atomic-component-error", { key: 'a126d4ed7074ea1b9105566a97b2839d334f1091', element: this.host, error: error }));
51
51
  }
52
52
  }
53
53
  get host() { return this; }
@@ -73,7 +73,7 @@ const AtomicSuggestionRenderer = /*@__PURE__*/ proxyCustomElement(class AtomicSu
73
73
  }
74
74
  render() {
75
75
  const isButton = !!(this.suggestion.onSelect || this.suggestion.query);
76
- return (h(Host, { key: '2d331a78c32f14bb5313887b6e9849a52b8b6644', class: "contents" }, isButton ? (h("button", { id: this.id, key: this.suggestion.key, part: this.parts, class: this.classes, onMouseDown: (e) => e.preventDefault(), onClick: (e) => this.onClick?.(e), onMouseOver: (e) => this.onMouseOver?.(e), "data-query": this.suggestion.query, "aria-label": this.ariaLabel(isButton), ref: (el) => {
76
+ return (h(Host, { key: '0d56340addfa2e31b7d72e45baff47dcb741e1bb', class: "contents" }, isButton ? (h("button", { id: this.id, key: this.suggestion.key, part: this.parts, class: this.classes, onMouseDown: (e) => e.preventDefault(), onClick: (e) => this.onClick?.(e), onMouseOver: (e) => this.onMouseOver?.(e), "data-query": this.suggestion.query, "aria-label": this.ariaLabel(isButton), ref: (el) => {
77
77
  if (!el) {
78
78
  return;
79
79
  }
@@ -59,7 +59,7 @@ const AtomicTabManager$1 = /*@__PURE__*/ proxyCustomElement(class AtomicTabManag
59
59
  });
60
60
  }
61
61
  render() {
62
- return (h(Host, { key: 'c20b95de1f0d99a207ffb86df272b6574a533fde' }, h("atomic-tab-bar", { key: '4cf657592fad9cca15ade748966af72a276f65d3' }, h("div", { key: 'e6f73c165ee6720bbd642b1b7f9a438d136b1e40', role: "list", "aria-label": "tab-area", part: "tab-area", class: "border-neutral mb-2 flex w-full flex-row border-b" }, this.tabs.map((tab) => (h("atomic-tab-button", { active: this.tabManagerState.activeTab === tab.name, label: this.bindings.i18n.t(tab.label, {
62
+ return (h(Host, { key: '505b6c92c1bebf41bd32422b5c04f00058f21976' }, h("atomic-tab-bar", { key: 'd60de3f362d84a66d6f835126eb5a0ddc8c2e12a' }, h("div", { key: '5126d9a0a699c757bfeee49f0c5f652bff4ebe51', role: "list", "aria-label": "tab-area", part: "tab-area", class: "border-neutral mb-2 flex w-full flex-row border-b" }, this.tabs.map((tab) => (h("atomic-tab-button", { active: this.tabManagerState.activeTab === tab.name, label: this.bindings.i18n.t(tab.label, {
63
63
  defaultValue: tab.label,
64
64
  }), select: () => {
65
65
  if (!tab.tabController.state.isActive) {
@@ -0,0 +1,202 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { buildProductListing, buildSearch, } from '@coveo/headless/commerce';
8
+ import { html, LitElement, nothing, unsafeCSS } from 'lit';
9
+ import { customElement, property, state } from 'lit/decorators.js';
10
+ import { booleanConverter } from "../../../converters/boolean-converter";
11
+ import { bindStateToController } from "../../../decorators/bind-state";
12
+ import { bindingGuard } from "../../../decorators/binding-guard";
13
+ import { bindings } from "../../../decorators/bindings";
14
+ import { errorGuard } from "../../../decorators/error-guard";
15
+ import { watch } from "../../../decorators/watch";
16
+ import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
17
+ import { renderRefineModalBody } from '../../common/refine-modal/body';
18
+ import { renderRefineModalFiltersClearButton, renderRefineModalFiltersSection, } from '../../common/refine-modal/filters';
19
+ import { renderRefineModal } from '../../common/refine-modal/modal';
20
+ import { renderRefineModalSortSection } from '../../common/refine-modal/sort';
21
+ import { getSortByLabel, renderCommerceSortOption } from '../sort/option';
22
+ import styles from './atomic-commerce-refine-modal.tw.css';
23
+ /**
24
+ * The `atomic-commerce-refine-modal` is automatically created as a child of the `atomic-commerce-search-interface` when the `atomic-commerce-refine-toggle` is initialized.
25
+ *
26
+ * When the modal is opened, the class `atomic-modal-opened` is added to the interface element and the body, allowing further customization.
27
+ *
28
+ * @part title - The title of the modal.
29
+ * @part close-button - The button in the header that closes the modal.
30
+ * @part close-icon - The icon of the close button.
31
+ * @part footer-content - The wrapper around the content inside the footer of the modal, containing the button to view results.
32
+ * @part footer-button - The button in the footer that closes the modal.
33
+ * @part footer-button-text - The text inside the button in the footer that closes the modal.
34
+ * @part footer-button-count - The count inside the button in the footer that closes the modal.
35
+ * @part content - The wrapper around the content inside the body of the modal.
36
+ * @part select - The `<select>` element of the dropdown list.
37
+ * @part section-sort-title - The title for the sort section.
38
+ * @part select-wrapper - The wrapper around the select element, used to position the icon.
39
+ * @part select-icon-wrapper - The wrapper around the sort icon that's used to align it.
40
+ * @part select-icon - The select dropdown's sort icon.
41
+ * @part filter-section - The section containing facets and the "filters" title.
42
+ * @part section-filters-title - The title for the filters section.
43
+ * @part filter-clear-all - The button that resets all actively selected facet values.
44
+ * @part section-title - The title for each section.
45
+ */
46
+ let AtomicCommerceRefineModal = class AtomicCommerceRefineModal extends LitElement {
47
+ constructor() {
48
+ super(...arguments);
49
+ /**
50
+ * Whether the modal is open.
51
+ */
52
+ this.isOpen = false;
53
+ /**
54
+ * The number of expanded facets inside the refine modal.
55
+ * Remaining facets are automatically collapsed.
56
+ *
57
+ * Using the value `0` collapses all facets.
58
+ */
59
+ this.collapseFacetsAfter = 0;
60
+ this.onSelectSortOption = (e) => {
61
+ const select = e.composedPath()[0];
62
+ this.sort.sortBy(getSortByLabel(select.value, this.sortState.availableSorts));
63
+ };
64
+ }
65
+ initialize() {
66
+ const searchOrListing = this.bindings.interfaceElement.type === 'search'
67
+ ? buildSearch(this.bindings.engine)
68
+ : buildProductListing(this.bindings.engine);
69
+ this.summary = searchOrListing.summary();
70
+ this.sort = searchOrListing.sort();
71
+ this.facetGenerator = searchOrListing.facetGenerator();
72
+ this.breadcrumbManager = searchOrListing.breadcrumbManager();
73
+ this.watchEnabled();
74
+ }
75
+ watchEnabled() {
76
+ if (this.isOpen) {
77
+ if (this.querySelector('div[slot="facets"]')) {
78
+ return;
79
+ }
80
+ this.appendChild(this.createFacetSlot());
81
+ }
82
+ }
83
+ /**
84
+ * This method is necessary to ensure
85
+ * that the facets slot is rendered outside of the component's shadow DOM, preserving
86
+ * correct CSS inheritance and slot behavior. If this logic were placed in the render
87
+ * function, the slot would be rendered inside the shadow DOM, which would break
88
+ * expected CSS styling and slot distribution.
89
+ */
90
+ createFacetSlot() {
91
+ const divSlot = document.createElement('div');
92
+ divSlot.setAttribute('slot', 'facets');
93
+ const facets = document.createElement('atomic-commerce-facets');
94
+ facets.style.display = 'flex';
95
+ facets.style.flexDirection = 'column';
96
+ facets.style.gap = 'var(--atomic-refine-modal-facet-margin, 20px)';
97
+ facets.collapseFacetsAfter = this.collapseFacetsAfter;
98
+ divSlot.append(facets);
99
+ return divSlot;
100
+ }
101
+ renderSort() {
102
+ return renderRefineModalSortSection({
103
+ props: {
104
+ i18n: this.bindings.i18n,
105
+ onSelect: this.onSelectSortOption,
106
+ },
107
+ })(html `${this.sortState.availableSorts.map((sort) => renderCommerceSortOption({
108
+ props: {
109
+ i18n: this.bindings.i18n,
110
+ selected: this.sort.isSortedBy(sort),
111
+ sort,
112
+ },
113
+ }))}`);
114
+ }
115
+ renderFilters() {
116
+ if (this.facetGeneratorState.length === 0) {
117
+ return;
118
+ }
119
+ const { i18n } = this.bindings;
120
+ return renderRefineModalFiltersSection({
121
+ props: {
122
+ i18n,
123
+ withFacets: true,
124
+ withAutomaticFacets: false,
125
+ },
126
+ })(this.breadcrumbManagerState.hasBreadcrumbs
127
+ ? renderRefineModalFiltersClearButton({
128
+ props: {
129
+ i18n,
130
+ onClick: () => this.breadcrumbManager.deselectAll(),
131
+ },
132
+ })
133
+ : nothing);
134
+ }
135
+ render() {
136
+ return html `${renderRefineModal({
137
+ props: {
138
+ i18n: this.bindings.i18n,
139
+ host: this,
140
+ isOpen: this.isOpen,
141
+ onClose: () => {
142
+ this.isOpen = false;
143
+ },
144
+ title: this.bindings.i18n.t('sort-and-filter'),
145
+ numberOfItems: this.summaryState.totalNumberOfProducts,
146
+ openButton: this.openButton,
147
+ },
148
+ })(renderRefineModalBody()(html `
149
+ ${this.renderSort()} ${this.renderFilters()}
150
+ `))}`;
151
+ }
152
+ };
153
+ AtomicCommerceRefineModal.styles = [unsafeCSS(styles)];
154
+ __decorate([
155
+ state()
156
+ ], AtomicCommerceRefineModal.prototype, "bindings", void 0);
157
+ __decorate([
158
+ state()
159
+ ], AtomicCommerceRefineModal.prototype, "error", void 0);
160
+ __decorate([
161
+ property({ attribute: 'open-button', type: Object })
162
+ ], AtomicCommerceRefineModal.prototype, "openButton", void 0);
163
+ __decorate([
164
+ property({
165
+ type: Boolean,
166
+ converter: booleanConverter,
167
+ reflect: true,
168
+ attribute: 'is-open',
169
+ })
170
+ ], AtomicCommerceRefineModal.prototype, "isOpen", void 0);
171
+ __decorate([
172
+ property({ type: Number, reflect: true, attribute: 'collapse-facets-after' })
173
+ ], AtomicCommerceRefineModal.prototype, "collapseFacetsAfter", void 0);
174
+ __decorate([
175
+ bindStateToController('summary'),
176
+ state()
177
+ ], AtomicCommerceRefineModal.prototype, "summaryState", void 0);
178
+ __decorate([
179
+ bindStateToController('sort'),
180
+ state()
181
+ ], AtomicCommerceRefineModal.prototype, "sortState", void 0);
182
+ __decorate([
183
+ bindStateToController('facetGenerator'),
184
+ state()
185
+ ], AtomicCommerceRefineModal.prototype, "facetGeneratorState", void 0);
186
+ __decorate([
187
+ bindStateToController('breadcrumbManager'),
188
+ state()
189
+ ], AtomicCommerceRefineModal.prototype, "breadcrumbManagerState", void 0);
190
+ __decorate([
191
+ watch('isOpen')
192
+ ], AtomicCommerceRefineModal.prototype, "watchEnabled", null);
193
+ __decorate([
194
+ bindingGuard(),
195
+ errorGuard()
196
+ ], AtomicCommerceRefineModal.prototype, "render", null);
197
+ AtomicCommerceRefineModal = __decorate([
198
+ customElement('atomic-commerce-refine-modal'),
199
+ bindings(),
200
+ withTailwindStyles
201
+ ], AtomicCommerceRefineModal);
202
+ export { AtomicCommerceRefineModal };
@@ -0,0 +1,7 @@
1
+ import dep0 from '../../common/refine-modal/refine-modal-common.tw.css.js';
2
+ const css = `/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
3
+ :host{position:absolute}select:hover+div,select:focus-visible+div{color:var(--atomic-primary-light)}`;
4
+
5
+ const allCss = [...dep0, css];
6
+ export default allCss;
7
+
@@ -11,6 +11,7 @@ export { AtomicCommerceProductsPerPage } from './atomic-commerce-products-per-pa
11
11
  export { AtomicCommerceQuerySummary } from './atomic-commerce-query-summary/atomic-commerce-query-summary.js';
12
12
  export { AtomicCommerceRecommendationInterface } from './atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js';
13
13
  export { AtomicCommerceRecommendationList } from './atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.js';
14
+ export { AtomicCommerceRefineModal } from './atomic-commerce-refine-modal/atomic-commerce-refine-modal.js';
14
15
  export { AtomicCommerceRefineToggle } from './atomic-commerce-refine-toggle/atomic-commerce-refine-toggle.js';
15
16
  export { AtomicCommerceSearchBox } from './atomic-commerce-search-box/atomic-commerce-search-box.js';
16
17
  export { AtomicCommerceSearchBoxInstantProducts } from './atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.js';
@@ -12,6 +12,7 @@ export default {
12
12
  'atomic-commerce-query-summary': async () => await import('./atomic-commerce-query-summary/atomic-commerce-query-summary.js'),
13
13
  'atomic-commerce-recommendation-interface': async () => await import('./atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.js'),
14
14
  'atomic-commerce-recommendation-list': async () => await import('./atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.js'),
15
+ 'atomic-commerce-refine-modal': async () => await import('./atomic-commerce-refine-modal/atomic-commerce-refine-modal.js'),
15
16
  'atomic-commerce-refine-toggle': async () => await import('./atomic-commerce-refine-toggle/atomic-commerce-refine-toggle.js'),
16
17
  'atomic-commerce-search-box': async () => await import('./atomic-commerce-search-box/atomic-commerce-search-box.js'),
17
18
  'atomic-commerce-search-box-instant-products': async () => await import('./atomic-commerce-search-box-instant-products/atomic-commerce-search-box-instant-products.js'),
@@ -0,0 +1 @@
1
+ export const ATOMIC_MODAL_EXPORT_PARTS = 'backdrop,container,header-wrapper,header,header-ruler,body-wrapper,body,footer-wrapper,footer';
@@ -0,0 +1,12 @@
1
+ import { html } from 'lit';
2
+ export const renderRefineModalBody = () => (children) => {
3
+ return html `
4
+ <aside
5
+ part="content"
6
+ slot="body"
7
+ class="adjust-for-scroll-bar flex w-full flex-col"
8
+ >
9
+ ${children}
10
+ </aside>
11
+ `;
12
+ };
@@ -0,0 +1,29 @@
1
+ import { html, nothing } from 'lit';
2
+ import { when } from 'lit/directives/when.js';
3
+ import { renderButton } from '../button';
4
+ export const renderRefineModalFiltersSection = ({ props }) => (children) => {
5
+ return html `
6
+ <div part="filter-section" class="mt-8 mb-3 flex w-full justify-between">
7
+ <h1
8
+ part="section-title section-filters-title"
9
+ class="truncate text-2xl font-bold"
10
+ >
11
+ ${props.i18n.t('filters')}
12
+ </h1>
13
+ ${children}
14
+ </div>
15
+ ${when(props.withFacets, () => html `<slot name="facets"></slot>`)}
16
+ ${when(props.withAutomaticFacets, () => html `<slot name="automatic-facets"></slot>`)}
17
+ `;
18
+ };
19
+ export const renderRefineModalFiltersClearButton = ({ props }) => {
20
+ return html `${renderButton({
21
+ props: {
22
+ onClick: props.onClick,
23
+ style: 'text-primary',
24
+ text: props.i18n.t('clear'),
25
+ class: 'px-2 py-1',
26
+ part: 'filter-clear-all',
27
+ },
28
+ })(nothing)}`;
29
+ };
@@ -0,0 +1,76 @@
1
+ import { html } from 'lit';
2
+ import { localizedString } from "../../../directives/localized-string";
3
+ const CloseIcon = "<svg viewBox=\"0 0 22 22\"><g transform=\"matrix(.7071 -.7071 .7071 .7071 -3.142 11)\"><path d=\"m9-3.4h2v26.9h-2z\"/><path d=\"m-3.4 9h26.9v2h-26.9z\"/></g></svg>";
4
+ import { ATOMIC_MODAL_EXPORT_PARTS } from '../atomic-modal/export-parts';
5
+ import { renderButton } from '../button';
6
+ export const renderRefineModal = ({ props }) => (children) => {
7
+ const flushFacetElements = () => {
8
+ props.host.querySelector('div[slot="facets"]')?.remove();
9
+ };
10
+ const renderHeader = () => {
11
+ return html `
12
+ <div slot="header" class="contents">
13
+ <h1 part="title" class="truncate">${props.title}</h1>
14
+ ${renderButton({
15
+ props: {
16
+ style: 'text-transparent',
17
+ class: 'grid place-items-center',
18
+ part: 'close-button',
19
+ onClick: props.onClose,
20
+ ariaLabel: props.i18n.t('close'),
21
+ },
22
+ })(html `<atomic-icon
23
+ part="close-icon"
24
+ class="h-5 w-5"
25
+ icon=${CloseIcon}
26
+ ></atomic-icon>`)}
27
+ </div>
28
+ `;
29
+ };
30
+ const renderFooter = () => {
31
+ return html `
32
+ <div part="footer-content" slot="footer">
33
+ ${renderButton({
34
+ props: {
35
+ style: 'primary',
36
+ part: 'footer-button',
37
+ class: 'flex w-full justify-center p-3 text-lg',
38
+ onClick: props.onClose,
39
+ },
40
+ })(html `
41
+ <span part="footer-button-text" class="mr-1 truncate">
42
+ ${props.i18n.t('view-results')}
43
+ </span>
44
+ <span part="footer-button-count">
45
+ ${localizedString({
46
+ i18n: props.i18n,
47
+ key: 'between-parentheses',
48
+ params: {
49
+ text: props.numberOfItems.toLocaleString(props.i18n.language),
50
+ },
51
+ })}
52
+ </span>
53
+ `)}
54
+ </div>
55
+ `;
56
+ };
57
+ return html `
58
+ <atomic-modal
59
+ .fullscreen=${true}
60
+ .isOpen=${props.isOpen}
61
+ .source=${props.openButton}
62
+ .container=${props.host}
63
+ .close=${props.onClose}
64
+ .onAnimationEnded=${() => {
65
+ if (!props.isOpen) {
66
+ flushFacetElements();
67
+ }
68
+ }}
69
+ exportparts=${ATOMIC_MODAL_EXPORT_PARTS}
70
+ .boundary=${props.boundary}
71
+ .scope=${props.scope}
72
+ >
73
+ ${renderHeader()} ${children} ${renderFooter()}
74
+ </atomic-modal>
75
+ `;
76
+ };
@@ -0,0 +1,2 @@
1
+ const css = `.adjust-for-scroll-bar{margin-right:calc(-100vw + 3rem + 100%)}`;
2
+ export default [css];
@@ -0,0 +1,32 @@
1
+ import { html } from 'lit';
2
+ const SortIcon = "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.5 6L7.5 17\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M11 14L7.5 18L4 14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M16.5 18L16.5 6\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M13 10L16.5 6L20 10\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>";
3
+ export const renderRefineModalSortSection = ({ props }) => (children) => {
4
+ return html `
5
+ <h1
6
+ part="section-title section-sort-title"
7
+ class="mb-3 truncate text-2xl font-bold"
8
+ >
9
+ ${props.i18n.t('sort')}
10
+ </h1>
11
+ <div part="select-wrapper" class="relative">
12
+ <select
13
+ class="btn-outline-neutral w-full grow cursor-pointer appearance-none rounded-lg px-6 py-5 text-lg font-bold"
14
+ part="select"
15
+ aria-label=${props.i18n.t('sort-by')}
16
+ @change=${props.onSelect}
17
+ >
18
+ ${children}
19
+ </select>
20
+ <div
21
+ part="select-icon-wrapper"
22
+ class="pointer-events-none absolute top-0 right-0 bottom-0 flex items-center justify-center pr-6"
23
+ >
24
+ <atomic-icon
25
+ part="select-icon"
26
+ icon=${SortIcon}
27
+ class="h-6 w-6"
28
+ ></atomic-icon>
29
+ </div>
30
+ </div>
31
+ `;
32
+ };
@@ -65,13 +65,13 @@ const FacetDateInput = /*@__PURE__*/ proxyCustomElement(class FacetDateInput ext
65
65
  // Fallback for Safari < 14.1, date with format yyyy-mm-dd over 1400 (API limit)
66
66
  const pattern = '^(1[4-9]\\d{2}|2\\d{3})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$';
67
67
  const range = this.rangeGetter();
68
- return (h("form", { key: 'e2fa89f6162073d29eac48402c61c8639f7db8fa', class: "mt-4 grid grid-cols-[min-content_1fr] gap-2 px-2", onSubmit: (e) => {
68
+ return (h("form", { key: '66210360124b901bc06f4b580fc0dcfdc26d052a', class: "mt-4 grid grid-cols-[min-content_1fr] gap-2 px-2", onSubmit: (e) => {
69
69
  e.preventDefault();
70
70
  this.apply();
71
71
  return false;
72
- } }, h("label", { key: '4b27b2c56a50e1ba03cbe984f0f144dd09b65a24', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_start` }, startLabel, ":"), h("input", { key: 'a28f6f86eff1a0d6e9e7366d74d6292c1e400c67', id: `${this.facetId}_start`, part: "input-start", type: "date", ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": startAria, placeholder: placeholder, pattern: pattern, required: true,
72
+ } }, h("label", { key: 'd21bf8eb905967b1d7aa30642704c267740101db', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_start` }, startLabel, ":"), h("input", { key: '72fb4b93759acce7f4d83f43a01030fd3e8e5367', id: `${this.facetId}_start`, part: "input-start", type: "date", ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": startAria, placeholder: placeholder, pattern: pattern, required: true,
73
73
  // API/Index minimum supported date
74
- min: this.min || this.formattedDateValue('1401-01-01'), max: this.end ? this.formattedDateValue(this.end) : this.max, value: this.formattedDateValue(range?.start), onInput: (e) => (this.start = parseDate(e.target.value).toDate()) }), h("label", { key: '18152b1a37aeaa700e10b35577c45041c15b5259', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_end` }, endLabel, ":"), h("input", { key: 'ded55e597f62ef7f6c61ac6e2dfe4c0cd6cff1b6', id: `${this.facetId}_end`, part: "input-end", type: "date", ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": endAria, placeholder: placeholder, pattern: pattern, required: true, min: this.formattedDateValue(this.start) || this.min, max: this.max, value: this.formattedDateValue(range?.end), onInput: (e) => (this.end = parseDate(e.target.value).toDate()) }), h(Button, { key: 'a9265bb688842a5c0f4cb5b95133f4c3a7784556', style: "outline-primary", type: "submit", part: "input-apply-button", class: "col-span-2 truncate p-2.5", ariaLabel: applyAria, text: apply })));
74
+ min: this.min || this.formattedDateValue('1401-01-01'), max: this.end ? this.formattedDateValue(this.end) : this.max, value: this.formattedDateValue(range?.start), onInput: (e) => (this.start = parseDate(e.target.value).toDate()) }), h("label", { key: '2ab0bf19bb295a5c3feeb526146b0287f7c86512', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_end` }, endLabel, ":"), h("input", { key: '817f74aab19560d083cd31c77b33d0605b8fd2a0', id: `${this.facetId}_end`, part: "input-end", type: "date", ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": endAria, placeholder: placeholder, pattern: pattern, required: true, min: this.formattedDateValue(this.start) || this.min, max: this.max, value: this.formattedDateValue(range?.end), onInput: (e) => (this.end = parseDate(e.target.value).toDate()) }), h(Button, { key: '1bb5742a33b0e92011d2dff6289a8450e6a0f197', style: "outline-primary", type: "submit", part: "input-apply-button", class: "col-span-2 truncate p-2.5", ariaLabel: applyAria, text: apply })));
75
75
  }
76
76
  }, [0, "atomic-facet-date-input", {
77
77
  "bindings": [16],
@@ -42,11 +42,11 @@ const FacetNumberInput = /*@__PURE__*/ proxyCustomElement(class FacetNumberInput
42
42
  const inputClasses = 'p-2.5 input-primary placeholder-neutral-dark min-w-0 mr-1';
43
43
  const labelClasses = 'text-neutral-dark text-sm';
44
44
  const step = this.type === 'integer' ? '1' : 'any';
45
- return (h("form", { key: '88e2f97c8063421d3db1b888ff0bcb3c724c47f4', class: "mt-4 gap-y-0.5 px-2", part: "input-form", onSubmit: (e) => {
45
+ return (h("form", { key: '77291ac09dc1118f757f3d32c38aa6bc613edddf', class: "mt-4 gap-y-0.5 px-2", part: "input-form", onSubmit: (e) => {
46
46
  e.preventDefault();
47
47
  this.apply();
48
48
  return false;
49
- } }, h("label", { key: '1150309df6de7de6ab435bc2ba26cdaf41505758', part: "label-start", class: labelClasses, htmlFor: `${this.filterState.facetId}_start` }, minText), h("input", { key: '65b0514f64b2d058f1b4b857a7cf660184d6ddf6', part: "input-start", id: `${this.filterState.facetId}_start`, type: "number", step: step, ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": minAria, required: true, min: Number.MIN_SAFE_INTEGER, max: this.end, value: this.filterState.range?.start, onInput: (e) => (this.start = e.target.valueAsNumber) }), h("label", { key: '17f31559758e0c41cda84206efab8982ac8769a5', part: "label-end", class: labelClasses, htmlFor: `${this.filterState.facetId}_end` }, maxText), h("input", { key: '6bcd6327151f5b442564887b2fce9c0ea4f2c49c', part: "input-end", id: `${this.filterState.facetId}_end`, type: "number", step: step, ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": maxAria, required: true, min: this.start, max: Number.MAX_SAFE_INTEGER, value: this.filterState.range?.end, onInput: (e) => (this.end = e.target.valueAsNumber) }), h(Button, { key: '85141773c0640ab06511f22147ba63ce99821006', style: "outline-primary", type: "submit", part: "input-apply-button", class: "flex-none truncate p-2.5", ariaLabel: applyAria, text: apply })));
49
+ } }, h("label", { key: '5309a15ea4d3a9bc2fed7f3596866d2b3117ac12', part: "label-start", class: labelClasses, htmlFor: `${this.filterState.facetId}_start` }, minText), h("input", { key: '92a11cb7cb7bbf039c93b1ba90baa1843eb83192', part: "input-start", id: `${this.filterState.facetId}_start`, type: "number", step: step, ref: (ref) => (this.startRef = ref), class: inputClasses, "aria-label": minAria, required: true, min: Number.MIN_SAFE_INTEGER, max: this.end, value: this.filterState.range?.start, onInput: (e) => (this.start = e.target.valueAsNumber) }), h("label", { key: '21243a1753114f5c7b0b1cdd97ae889f0aff554d', part: "label-end", class: labelClasses, htmlFor: `${this.filterState.facetId}_end` }, maxText), h("input", { key: 'ebb84cfaebfe765fa9d092b69352867e1d8a9806', part: "input-end", id: `${this.filterState.facetId}_end`, type: "number", step: step, ref: (ref) => (this.endRef = ref), class: inputClasses, "aria-label": maxAria, required: true, min: this.start, max: Number.MAX_SAFE_INTEGER, value: this.filterState.range?.end, onInput: (e) => (this.end = e.target.valueAsNumber) }), h(Button, { key: 'b9f81396588324884c582045b7f784b170ca0863', style: "outline-primary", type: "submit", part: "input-apply-button", class: "flex-none truncate p-2.5", ariaLabel: applyAria, text: apply })));
50
50
  }
51
51
  static get style() { return AtomicFacetNumberInputStyle0; }
52
52
  }, [0, "atomic-facet-number-input", {
@@ -4,7 +4,7 @@ function getWindow() {
4
4
  }
5
5
  export function getAtomicEnvironment() {
6
6
  return {
7
- version: "3.29.1-pre.2d3a8a3c7b".VERSION,
7
+ version: "3.29.2-pre.16192e6f2e".VERSION,
8
8
  headlessVersion: VERSION,
9
9
  };
10
10
  }
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAca,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACoDA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/decorators/commerce/product-template-decorators.ts"],"sourcesContent":["import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {InteractiveProduct, Product} from '@coveo/headless/commerce';\nimport type {LitElement} from 'lit';\nimport {\n InteractiveItemContextController,\n type InteractiveItemContextEvent,\n} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {\n ItemContextController,\n type ItemContextEvent,\n} from '@/src/components/common/item-list/context/item-context-controller';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.\n *\n * @param host - The Lit component instance\n * @param options - Configuration options\n * @returns ItemContextController instance configured for atomic-product\n *\n * @example\n * ```typescript\n * @customElement('my-product-component')\n * export class MyProductComponent extends LitElement {\n * private productController = createProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.productController.item;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createProductContextController(\n host: LitElement & {error: Error | null},\n options: {folded?: boolean} = {}\n): ItemContextController<Product> {\n return new ItemContextController<Product>(host, {\n parentName: 'atomic-product',\n folded: options.folded ?? false,\n });\n}\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.\n *\n * @param host - The Lit component instance\n * @returns InteractiveItemContextController instance\n *\n * @example\n * ```typescript\n * @customElement('my-interactive-product-component')\n * export class MyInteractiveProductComponent extends LitElement {\n * private interactiveProductController = createInteractiveProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.interactiveProductController.interactiveItem;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createInteractiveProductContextController(\n host: LitElement & {error: Error}\n): InteractiveItemContextController<InteractiveProduct> {\n return new InteractiveItemContextController<InteractiveProduct>(host);\n}\n\nexport type ProductContextEvent<T = Product> = ItemContextEvent<T>;\nexport type InteractiveProductContextEvent<\n T extends InteractiveProduct = InteractiveProduct,\n> = InteractiveItemContextEvent<T>;\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n"],"version":3}
1
+ {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAca,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAmB,EAAE,UAAkB;QACjD,KAAK,CACH,QAAQ,WAAW,sCAAsC,UAAU,YAAY,CAChF,CAAC;KACH;;;ACfH,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;SAIpC,gBAAgB,CAAI,OAAgB,EAAE,UAAkB;IACtE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,oBAAoB,EACpB,CAAC,IAAO;YACN,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACjC,MAAM,CACJ,IAAI,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CACnE,CAAC;SACH;KACF,CAAC,CAAC;AACL;;ACoDA;;;;;;;;;;SAUgB,mBAAmB,CAAoB,OAAgB;IACrE,OAAO,gBAAgB,CAAI,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxD;;;;","names":[],"sources":["src/components/common/item-list/context/item-context-controller.ts","src/components/common/item-list/fetch-item-context.ts","src/decorators/commerce/product-template-decorators.ts"],"sourcesContent":["import type {LitElement, ReactiveController, ReactiveControllerHost} from 'lit';\nimport type {InitializableComponent} from '@/src/decorators/types.js';\nimport {buildCustomEvent} from '@/src/utils/event-utils';\n\ntype LitElementWithError = Omit<\n Pick<InitializableComponent, 'error'>,\n 'error'\n> &\n LitElement & {\n error: Error | null;\n };\n\nconst itemContextEventName = 'atomic/resolveResult';\n\nexport class MissingParentError extends Error {\n constructor(elementName: string, parentName: string) {\n super(\n `The \"${elementName}\" element must be the child of an \"${parentName}\" element.`\n );\n }\n}\n\nfunction extractFolded<T = Record<string, unknown>>(\n item: Record<string, unknown>,\n returnFolded: boolean\n): T {\n if (returnFolded) {\n if ('children' in item) {\n return item as T;\n } else {\n return {children: [], result: item} as T;\n }\n }\n\n if ('children' in item && 'result' in item) {\n return item.result as T;\n }\n return item as T;\n}\n\n/**\n * A reactive controller that manages item context data from parent components.\n * Handles fetching item data via custom events and manages error states.\n */\nexport class ItemContextController<T = Record<string, unknown>>\n implements ReactiveController\n{\n private host: ReactiveControllerHost & LitElementWithError;\n private parentName: string;\n private folded: boolean;\n private _item: T | null = null;\n private _error: MissingParentError | null = null;\n\n constructor(\n host: ReactiveControllerHost & LitElementWithError,\n options: {parentName?: string; folded?: boolean} = {}\n ) {\n this.host = host;\n this.parentName = options.parentName ?? 'atomic-result';\n this.folded = options.folded ?? false;\n host.addController(this);\n }\n\n get item(): T | null {\n return this._error ? null : this._item;\n }\n\n get error(): MissingParentError | null {\n return this._error;\n }\n\n get hasError(): boolean {\n return this._error !== null;\n }\n\n hostConnected(): void {\n this._resolveItemContext();\n }\n\n private _resolveItemContext(): void {\n const event = buildCustomEvent(\n itemContextEventName,\n (item: Record<string, unknown>) => {\n this._item = extractFolded<T>(item, this.folded);\n this._error = null;\n this.host.error = null;\n this.host.requestUpdate();\n }\n );\n\n const canceled = this.host.dispatchEvent(event);\n if (canceled) {\n const elementName = (this.host as Element).nodeName.toLowerCase();\n this._error = new MissingParentError(elementName, this.parentName);\n this._item = null;\n this.host.error = this._error;\n this.host.requestUpdate();\n }\n }\n}\n\ntype ItemContextEventHandler<T> = (item: T) => void;\nexport type ItemContextEvent<T> = CustomEvent<ItemContextEventHandler<T>>;\n","import {closest} from '../../../utils/dom-utils.js';\nimport {buildCustomEvent} from '../../../utils/event-utils.js';\nimport {MissingParentError} from './context/item-context-controller.js';\n\nconst itemContextEventName = 'atomic/resolveResult';\n\ntype ItemContextEventHandler<T> = (item: T) => void;\n\nexport function fetchItemContext<T>(element: Element, parentName: string) {\n return new Promise<T>((resolve, reject) => {\n const event = buildCustomEvent<ItemContextEventHandler<T>>(\n itemContextEventName,\n (item: T) => {\n return resolve(item);\n }\n );\n element.dispatchEvent(event);\n\n if (!closest(element, parentName)) {\n reject(\n new MissingParentError(element.nodeName.toLowerCase(), parentName)\n );\n }\n });\n}\n","import type {InteractiveProduct, Product} from '@coveo/headless/commerce';\nimport type {LitElement} from 'lit';\nimport {\n InteractiveItemContextController,\n type InteractiveItemContextEvent,\n} from '@/src/components/common/item-list/context/interactive-item-context-controller';\nimport {\n ItemContextController,\n type ItemContextEvent,\n} from '@/src/components/common/item-list/context/item-context-controller';\nimport {fetchItemContext} from '@/src/components/common/item-list/fetch-item-context';\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing product context in product template components.\n *\n * @param host - The Lit component instance\n * @param options - Configuration options\n * @returns ItemContextController instance configured for atomic-product\n *\n * @example\n * ```typescript\n * @customElement('my-product-component')\n * export class MyProductComponent extends LitElement {\n * private productController = createProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.productController.item;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createProductContextController(\n host: LitElement & {error: Error | null},\n options: {folded?: boolean} = {}\n): ItemContextController<Product> {\n return new ItemContextController<Product>(host, {\n parentName: 'atomic-product',\n folded: options.folded ?? false,\n });\n}\n\n/**\n * Creates a [Lit reactive controller](https://lit.dev/docs/composition/controllers/) for managing interactive product context in product template components.\n *\n * @param host - The Lit component instance\n * @returns InteractiveItemContextController instance\n *\n * @example\n * ```typescript\n * @customElement('my-interactive-product-component')\n * export class MyInteractiveProductComponent extends LitElement {\n * private interactiveProductController = createInteractiveProductContextController(this);\n *\n * @state() product!: Product;\n *\n * render() {\n * this.product = this.interactiveProductController.interactiveItem;\n * return html`<div>${this.product?.ec_name}</div>`;\n * }\n * }\n * ```\n */\nexport function createInteractiveProductContextController(\n host: LitElement & {error: Error}\n): InteractiveItemContextController<InteractiveProduct> {\n return new InteractiveItemContextController<InteractiveProduct>(host);\n}\n\nexport type ProductContextEvent<T = Product> = ItemContextEvent<T>;\nexport type InteractiveProductContextEvent<\n T extends InteractiveProduct = InteractiveProduct,\n> = InteractiveItemContextEvent<T>;\n\n/**\n * Retrieves `Product` on a rendered `atomic-product`.\n *\n * This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.\n *\n * You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).\n *\n * @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.\n * @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.\n */\nexport function fetchProductContext<T extends Product>(element: Element) {\n return fetchItemContext<T>(element, 'atomic-product');\n}\n"],"version":3}