@coveo/atomic 3.30.1-pre.6f8efc1feb → 3.30.1-pre.7d5a246bc8

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 (539) 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 -6
  4. package/dist/atomic/components/_index.js +0 -3
  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-numeric-facet2.js +2 -2
  11. package/dist/atomic/components/atomic-commerce-timeframe-facet2.js +1 -1
  12. package/dist/atomic/components/atomic-facet-manager.js +1 -1
  13. package/dist/atomic/components/atomic-facet.js +1 -1
  14. package/dist/atomic/components/atomic-format-currency.js +1 -1
  15. package/dist/atomic/components/atomic-format-number.js +1 -1
  16. package/dist/atomic/components/atomic-format-unit.js +1 -1
  17. package/dist/atomic/components/atomic-generated-answer-feedback-modal.js +1 -1
  18. package/dist/atomic/components/atomic-html2.js +1 -1
  19. package/dist/atomic/components/atomic-insight-edit-toggle.js +1 -1
  20. package/dist/atomic/components/atomic-insight-facet.js +1 -1
  21. package/dist/atomic/components/atomic-insight-folded-result-list.js +1 -1
  22. package/dist/atomic/components/atomic-insight-full-search-button.js +1 -1
  23. package/dist/atomic/components/atomic-insight-history-toggle.js +1 -1
  24. package/dist/atomic/components/atomic-insight-no-results.js +1 -1
  25. package/dist/atomic/components/atomic-insight-numeric-facet.js +1 -1
  26. package/dist/atomic/components/atomic-insight-pager.js +3 -3
  27. package/dist/atomic/components/atomic-insight-query-error.js +1 -1
  28. package/dist/atomic/components/atomic-insight-refine-modal2.js +2 -2
  29. package/dist/atomic/components/atomic-insight-refine-toggle.js +1 -1
  30. package/dist/atomic/components/atomic-insight-result-attach-to-case-indicator.js +1 -1
  31. package/dist/atomic/components/atomic-insight-result-children.js +1 -1
  32. package/dist/atomic/components/atomic-insight-result-list.js +1 -1
  33. package/dist/atomic/components/atomic-insight-result-quickview-action.js +1 -1
  34. package/dist/atomic/components/atomic-insight-result2.js +1 -1
  35. package/dist/atomic/components/atomic-insight-search-box.js +2 -2
  36. package/dist/atomic/components/atomic-insight-smart-snippet-feedback-modal2.js +2 -2
  37. package/dist/atomic/components/atomic-insight-tabs.js +1 -1
  38. package/dist/atomic/components/atomic-insight-user-actions-session2.js +1 -1
  39. package/dist/atomic/components/atomic-insight-user-actions-toggle.js +1 -1
  40. package/dist/atomic/components/atomic-ipx-body2.js +2 -2
  41. package/dist/atomic/components/atomic-ipx-button.js +2 -2
  42. package/dist/atomic/components/atomic-ipx-embedded.js +1 -1
  43. package/dist/atomic/components/atomic-ipx-modal.js +2 -2
  44. package/dist/atomic/components/atomic-ipx-recs-list.js +1 -1
  45. package/dist/atomic/components/atomic-ipx-refine-modal2.js +1 -1
  46. package/dist/atomic/components/atomic-ipx-refine-toggle.js +1 -1
  47. package/dist/atomic/components/atomic-ipx-result-link.js +1 -1
  48. package/dist/atomic/components/atomic-ipx-tabs.js +1 -1
  49. package/dist/atomic/components/atomic-load-more-results.js +1 -1
  50. package/dist/atomic/components/atomic-modal2.js +2 -2
  51. package/dist/atomic/components/atomic-no-results.js +1 -1
  52. package/dist/atomic/components/atomic-numeric-facet.js +1 -1
  53. package/dist/atomic/components/atomic-pager.js +3 -3
  54. package/dist/atomic/components/atomic-product-description.js +32 -2
  55. package/dist/atomic/components/atomic-product-description.js.map +1 -1
  56. package/dist/atomic/components/atomic-product-link.js +17 -1
  57. package/dist/atomic/components/atomic-product-link.js.map +1 -1
  58. package/dist/atomic/components/atomic-query-error.js +1 -1
  59. package/dist/atomic/components/atomic-query-summary.js +1 -1
  60. package/dist/atomic/components/atomic-quickview-modal2.js +1 -1
  61. package/dist/atomic/components/atomic-quickview.js +1 -1
  62. package/dist/atomic/components/atomic-rating.js +7 -1
  63. package/dist/atomic/components/atomic-rating.js.map +1 -1
  64. package/dist/atomic/components/atomic-recs-error.js +1 -1
  65. package/dist/atomic/components/atomic-recs-list.js +1 -1
  66. package/dist/atomic/components/atomic-refine-modal2.js +1 -1
  67. package/dist/atomic/components/atomic-refine-toggle.js +1 -1
  68. package/dist/atomic/components/atomic-relevance-inspector2.js +2 -2
  69. package/dist/atomic/components/atomic-result-children.js +1 -1
  70. package/dist/atomic/components/atomic-result-fields-list.js +1 -1
  71. package/dist/atomic/components/atomic-result-link.js +1 -1
  72. package/dist/atomic/components/atomic-result-list.js +1 -1
  73. package/dist/atomic/components/atomic-result-placeholder2.js +2 -2
  74. package/dist/atomic/components/atomic-result-table-placeholder2.js +1 -1
  75. package/dist/atomic/components/atomic-results-per-page.js +1 -1
  76. package/dist/atomic/components/atomic-search-box-query-suggestions2.js +1 -1
  77. package/dist/atomic/components/atomic-search-box-recent-queries2.js +1 -1
  78. package/dist/atomic/components/atomic-search-box.js +4 -4
  79. package/dist/atomic/components/atomic-smart-snippet-answer2.js +1 -1
  80. package/dist/atomic/components/atomic-smart-snippet-collapse-wrapper2.js +2 -2
  81. package/dist/atomic/components/atomic-smart-snippet-expandable-answer2.js +1 -1
  82. package/dist/atomic/components/atomic-smart-snippet-feedback-modal2.js +2 -2
  83. package/dist/atomic/components/atomic-smart-snippet-source2.js +1 -1
  84. package/dist/atomic/components/atomic-sort-dropdown.js +2 -2
  85. package/dist/atomic/components/atomic-sort-expression.js +1 -1
  86. package/dist/atomic/components/atomic-suggestion-renderer2.js +1 -1
  87. package/dist/atomic/components/atomic-tab-manager.js +1 -1
  88. package/dist/atomic/components/components/commerce/atomic-product-excerpt/atomic-product-excerpt.js +130 -0
  89. package/dist/atomic/components/components/commerce/atomic-product-excerpt/atomic-product-excerpt.tw.css.js +3 -0
  90. package/dist/atomic/components/components/commerce/atomic-product-numeric-field-value/atomic-product-numeric-field-value.js +81 -0
  91. package/dist/atomic/components/components/commerce/atomic-product-price/atomic-product-price.js +103 -0
  92. package/dist/atomic/components/components/commerce/atomic-product-price/atomic-product-price.tw.css.js +3 -0
  93. package/dist/atomic/components/components/commerce/atomic-product-template/atomic-product-template.js +3 -0
  94. package/dist/atomic/components/components/commerce/index.js +3 -0
  95. package/dist/atomic/components/components/commerce/lazy-index.js +3 -0
  96. package/dist/atomic/components/components/common/expandable-text/expandable-text.js +47 -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-3817e41f.entry.js → p-07736099.entry.js} +2 -2
  104. package/dist/atomic/{p-254493bb.entry.js → p-10533f5e.entry.js} +2 -2
  105. package/dist/atomic/{p-ff601596.entry.js → p-1241378f.entry.js} +2 -2
  106. package/dist/atomic/{p-fcc01555.entry.js → p-179dd992.entry.js} +2 -2
  107. package/dist/atomic/{p-9ea0730b.entry.js → p-188a5988.entry.js} +2 -2
  108. package/dist/atomic/{p-053630b7.entry.js → p-1d8d898e.entry.js} +2 -2
  109. package/dist/atomic/{p-b7c58d1b.entry.js → p-1e82867d.entry.js} +2 -2
  110. package/dist/atomic/{p-18a6ee18.entry.js → p-2075d1c2.entry.js} +2 -2
  111. package/dist/atomic/{p-ef42977c.entry.js → p-24df7eb5.entry.js} +2 -2
  112. package/dist/atomic/{p-6fafebf4.entry.js → p-2b7bd1a7.entry.js} +2 -2
  113. package/dist/atomic/{p-16f39309.entry.js → p-2cb0696d.entry.js} +2 -2
  114. package/dist/atomic/{p-82f73cb7.entry.js → p-34280d19.entry.js} +2 -2
  115. package/dist/atomic/{p-4600286e.entry.js → p-34f13f68.entry.js} +2 -2
  116. package/dist/atomic/{p-4780a993.entry.js → p-380e9947.entry.js} +2 -2
  117. package/dist/atomic/{p-2e5900d5.entry.js → p-3a22931a.entry.js} +2 -2
  118. package/dist/atomic/{p-fa1c4917.entry.js → p-3b4f8370.entry.js} +2 -2
  119. package/dist/atomic/p-3f50439d.entry.js +2 -0
  120. package/dist/atomic/{p-8f10d6b1.entry.js → p-451abd79.entry.js} +2 -2
  121. package/dist/atomic/{p-0457e70e.entry.js → p-4cb4dce2.entry.js} +2 -2
  122. package/dist/atomic/{p-7e477e6a.entry.js → p-4cf83057.entry.js} +2 -2
  123. package/dist/atomic/{p-f37215a3.entry.js → p-4f71433c.entry.js} +2 -2
  124. package/dist/atomic/{p-0dbfef2a.entry.js → p-5231d47e.entry.js} +2 -2
  125. package/dist/atomic/{p-1bd29155.entry.js → p-547ec848.entry.js} +2 -2
  126. package/dist/atomic/{p-e67e6f25.entry.js → p-558b561c.entry.js} +2 -2
  127. package/dist/atomic/{p-312ea507.entry.js → p-56f79dbc.entry.js} +2 -2
  128. package/dist/atomic/{p-90e7ab82.entry.js → p-598355e2.entry.js} +2 -2
  129. package/dist/atomic/{p-0caed756.entry.js → p-5f5f3c02.entry.js} +2 -2
  130. package/dist/atomic/{p-413a3e9a.entry.js → p-5fc9f751.entry.js} +2 -2
  131. package/dist/atomic/{p-d376a122.entry.js → p-60677298.entry.js} +2 -2
  132. package/dist/atomic/p-745322ff.entry.js +2 -0
  133. package/dist/atomic/p-745322ff.entry.js.map +1 -0
  134. package/dist/atomic/{p-0d272101.entry.js → p-75927180.entry.js} +2 -2
  135. package/dist/atomic/{p-619fdbad.entry.js → p-78798600.entry.js} +2 -2
  136. package/dist/atomic/{p-60c221c4.entry.js → p-7abdbad3.entry.js} +2 -2
  137. package/dist/atomic/{p-ab5284ef.entry.js → p-7c2465db.entry.js} +2 -2
  138. package/dist/atomic/{p-2553b81a.entry.js → p-7da7091f.entry.js} +2 -2
  139. package/dist/atomic/{p-fae8b0b6.entry.js → p-7e316f12.entry.js} +2 -2
  140. package/dist/atomic/{p-32d1d80d.entry.js → p-7e979900.entry.js} +2 -2
  141. package/dist/atomic/{p-f662801b.entry.js → p-81f9321f.entry.js} +2 -2
  142. package/dist/atomic/{p-5daf65a2.entry.js → p-8664e49f.entry.js} +2 -2
  143. package/dist/atomic/{p-32768595.js → p-866a36bb.js} +2 -2
  144. package/dist/atomic/{p-1868dae3.entry.js → p-87306667.entry.js} +2 -2
  145. package/dist/atomic/p-88e3af33.entry.js +2 -0
  146. package/dist/atomic/{p-14e07101.entry.js → p-8b19b5c1.entry.js} +2 -2
  147. package/dist/atomic/{p-b25c9315.entry.js → p-8c07fe23.entry.js} +2 -2
  148. package/dist/atomic/{p-40068301.entry.js → p-933fb81c.entry.js} +2 -2
  149. package/dist/atomic/p-9619c25e.entry.js +2 -0
  150. package/dist/atomic/{p-0ed3432e.entry.js.map → p-9619c25e.entry.js.map} +1 -1
  151. package/dist/atomic/{p-c9594881.entry.js → p-9f349dea.entry.js} +2 -2
  152. package/dist/atomic/{p-33883a60.entry.js → p-a21b8355.entry.js} +2 -2
  153. package/dist/atomic/{p-014d7074.entry.js → p-a6f59ee7.entry.js} +2 -2
  154. package/dist/atomic/p-a7a7573a.js +2 -0
  155. package/dist/atomic/p-a7a7573a.js.map +1 -0
  156. package/dist/atomic/{p-ef6daa3c.entry.js → p-a9e90e8d.entry.js} +2 -2
  157. package/dist/atomic/p-ac93a338.entry.js +2 -0
  158. package/dist/atomic/p-b1c25636.entry.js +2 -0
  159. package/dist/atomic/p-b1c25636.entry.js.map +1 -0
  160. package/dist/atomic/{p-3e4997cb.entry.js → p-b369d9f3.entry.js} +2 -2
  161. package/dist/atomic/{p-0051c09e.entry.js → p-b7df58a2.entry.js} +2 -2
  162. package/dist/atomic/{p-c7aea960.entry.js → p-b8884511.entry.js} +2 -2
  163. package/dist/atomic/{p-d67f0c7d.entry.js → p-b9d90a15.entry.js} +2 -2
  164. package/dist/atomic/{p-b9cdeb9c.entry.js → p-c52ea307.entry.js} +2 -2
  165. package/dist/atomic/{p-6757d5c8.entry.js → p-c6d607ef.entry.js} +2 -2
  166. package/dist/atomic/{p-5cae2acd.entry.js → p-c7c8a40b.entry.js} +2 -2
  167. package/dist/atomic/{p-6c10c08c.entry.js → p-c8d47706.entry.js} +2 -2
  168. package/dist/atomic/{p-c7e06c91.entry.js → p-c8f4a164.entry.js} +2 -2
  169. package/dist/atomic/{p-7151eb35.entry.js → p-c91d1951.entry.js} +2 -2
  170. package/dist/atomic/{p-d2d1bbbc.entry.js → p-c953ea9f.entry.js} +2 -2
  171. package/dist/atomic/{p-86f61caa.entry.js → p-c997c2ad.entry.js} +2 -2
  172. package/dist/atomic/{p-57377cc0.entry.js → p-cb07fb1a.entry.js} +2 -2
  173. package/dist/atomic/{p-55c12e5f.entry.js → p-cc4a90fc.entry.js} +2 -2
  174. package/dist/atomic/{p-f57dd2a9.entry.js → p-ce716a3a.entry.js} +2 -2
  175. package/dist/atomic/p-d441cf69.entry.js +2 -0
  176. package/dist/atomic/{p-0c604072.entry.js.map → p-d441cf69.entry.js.map} +1 -1
  177. package/dist/atomic/{p-05f50dc9.entry.js → p-d64c6b59.entry.js} +2 -2
  178. package/dist/atomic/{p-087ba363.entry.js → p-dad54a83.entry.js} +2 -2
  179. package/dist/atomic/{p-03c36274.entry.js → p-e0c09699.entry.js} +2 -2
  180. package/dist/atomic/{p-19b2085d.entry.js → p-e240f215.entry.js} +2 -2
  181. package/dist/atomic/{p-6a43fe66.entry.js → p-e2765b24.entry.js} +2 -2
  182. package/dist/atomic/p-e790d557.entry.js +2 -0
  183. package/dist/atomic/{p-b8584d50.entry.js → p-ea98f3c7.entry.js} +2 -2
  184. package/dist/atomic/p-efd2bb5f.entry.js +2 -0
  185. package/dist/atomic/p-f09c6548.entry.js +2 -0
  186. package/dist/atomic/{p-a44740ec.entry.js.map → p-f09c6548.entry.js.map} +1 -1
  187. package/dist/atomic/{p-1df62ba9.entry.js → p-f27fba44.entry.js} +2 -2
  188. package/dist/atomic/p-f389bcba.entry.js +2 -0
  189. package/dist/atomic/{p-1e971b29.entry.js.map → p-f389bcba.entry.js.map} +1 -1
  190. package/dist/atomic/{p-23200ea1.entry.js → p-f7830503.entry.js} +2 -2
  191. package/dist/atomic/{p-a516f15f.entry.js → p-f7e0887c.entry.js} +2 -2
  192. package/dist/atomic/{p-66fd5541.entry.js → p-fa9454b5.entry.js} +2 -2
  193. package/dist/atomic/{p-963e508f.entry.js → p-fc68c8b0.entry.js} +2 -2
  194. package/dist/cjs/_loader.cjs.js +1 -1
  195. package/dist/cjs/{analytics-config-56ddc132.js → analytics-config-19593b21.js} +2 -2
  196. package/dist/cjs/{analytics-config-56ddc132.js.map → analytics-config-19593b21.js.map} +1 -1
  197. package/dist/cjs/atomic-aria-live_2.cjs.entry.js +3 -3
  198. package/dist/cjs/atomic-category-facet.cjs.entry.js +1 -1
  199. package/dist/cjs/atomic-citation.cjs.entry.js +1 -1
  200. package/dist/cjs/atomic-commerce-category-facet_4.cjs.entry.js +4 -4
  201. package/dist/cjs/atomic-facet-date-input.cjs.entry.js +3 -3
  202. package/dist/cjs/atomic-facet-manager.cjs.entry.js +1 -1
  203. package/dist/cjs/atomic-facet-number-input.cjs.entry.js +2 -2
  204. package/dist/cjs/atomic-facet.cjs.entry.js +1 -1
  205. package/dist/cjs/atomic-focus-trap_2.cjs.entry.js +2 -2
  206. package/dist/cjs/atomic-format-currency.cjs.entry.js +1 -1
  207. package/dist/cjs/atomic-format-number.cjs.entry.js +1 -1
  208. package/dist/cjs/atomic-format-unit.cjs.entry.js +1 -1
  209. package/dist/cjs/atomic-generated-answer-feedback-modal.cjs.entry.js +1 -1
  210. package/dist/cjs/atomic-html.cjs.entry.js +1 -1
  211. package/dist/cjs/atomic-insight-edit-toggle.cjs.entry.js +1 -1
  212. package/dist/cjs/atomic-insight-facet.cjs.entry.js +1 -1
  213. package/dist/cjs/atomic-insight-folded-result-list.cjs.entry.js +1 -1
  214. package/dist/cjs/atomic-insight-full-search-button.cjs.entry.js +1 -1
  215. package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +1 -1
  216. package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
  217. package/dist/cjs/atomic-insight-no-results.cjs.entry.js +1 -1
  218. package/dist/cjs/atomic-insight-numeric-facet.cjs.entry.js +1 -1
  219. package/dist/cjs/atomic-insight-pager.cjs.entry.js +3 -3
  220. package/dist/cjs/atomic-insight-query-error.cjs.entry.js +1 -1
  221. package/dist/cjs/atomic-insight-refine-modal.cjs.entry.js +2 -2
  222. package/dist/cjs/atomic-insight-refine-toggle.cjs.entry.js +1 -1
  223. package/dist/cjs/atomic-insight-result-attach-to-case-indicator.cjs.entry.js +1 -1
  224. package/dist/cjs/atomic-insight-result-children.cjs.entry.js +1 -1
  225. package/dist/cjs/atomic-insight-result-list.cjs.entry.js +1 -1
  226. package/dist/cjs/atomic-insight-result-quickview-action.cjs.entry.js +1 -1
  227. package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
  228. package/dist/cjs/atomic-insight-search-box.cjs.entry.js +2 -2
  229. package/dist/cjs/atomic-insight-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  230. package/dist/cjs/atomic-insight-tabs.cjs.entry.js +1 -1
  231. package/dist/cjs/atomic-insight-user-actions-session_2.cjs.entry.js +1 -1
  232. package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +1 -1
  233. package/dist/cjs/atomic-ipx-body.cjs.entry.js +2 -2
  234. package/dist/cjs/atomic-ipx-button.cjs.entry.js +2 -2
  235. package/dist/cjs/atomic-ipx-embedded.cjs.entry.js +1 -1
  236. package/dist/cjs/atomic-ipx-modal.cjs.entry.js +2 -2
  237. package/dist/cjs/atomic-ipx-recs-list.cjs.entry.js +1 -1
  238. package/dist/cjs/atomic-ipx-refine-modal.cjs.entry.js +1 -1
  239. package/dist/cjs/atomic-ipx-refine-toggle.cjs.entry.js +1 -1
  240. package/dist/cjs/atomic-ipx-result-link.cjs.entry.js +1 -1
  241. package/dist/cjs/atomic-ipx-tabs.cjs.entry.js +1 -1
  242. package/dist/cjs/atomic-load-more-results.cjs.entry.js +1 -1
  243. package/dist/cjs/atomic-no-results.cjs.entry.js +1 -1
  244. package/dist/cjs/atomic-numeric-facet.cjs.entry.js +1 -1
  245. package/dist/cjs/atomic-pager.cjs.entry.js +3 -3
  246. package/dist/cjs/atomic-product-description.cjs.entry.js +32 -4
  247. package/dist/cjs/atomic-product-description.cjs.entry.js.map +1 -1
  248. package/dist/cjs/atomic-product-link.cjs.entry.js +18 -5
  249. package/dist/cjs/atomic-product-link.cjs.entry.js.map +1 -1
  250. package/dist/cjs/atomic-product-rating.cjs.entry.js +1 -2
  251. package/dist/cjs/atomic-product-rating.cjs.entry.js.map +1 -1
  252. package/dist/cjs/atomic-query-error.cjs.entry.js +1 -1
  253. package/dist/cjs/atomic-query-summary.cjs.entry.js +1 -1
  254. package/dist/cjs/atomic-quickview-modal.cjs.entry.js +1 -1
  255. package/dist/cjs/atomic-quickview.cjs.entry.js +1 -1
  256. package/dist/cjs/{atomic-rating-6d5a98ec.js → atomic-rating-a37a1793.js} +9 -3
  257. package/dist/cjs/atomic-rating-a37a1793.js.map +1 -0
  258. package/dist/cjs/atomic-rating-facet.cjs.entry.js +1 -2
  259. package/dist/cjs/atomic-rating-facet.cjs.entry.js.map +1 -1
  260. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js +1 -2
  261. package/dist/cjs/atomic-rating-range-facet.cjs.entry.js.map +1 -1
  262. package/dist/cjs/atomic-recs-error.cjs.entry.js +1 -1
  263. package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
  264. package/dist/cjs/atomic-recs-list.cjs.entry.js +1 -1
  265. package/dist/cjs/atomic-refine-modal.cjs.entry.js +1 -1
  266. package/dist/cjs/atomic-refine-toggle.cjs.entry.js +1 -1
  267. package/dist/cjs/atomic-result-children.cjs.entry.js +1 -1
  268. package/dist/cjs/atomic-result-fields-list.cjs.entry.js +1 -1
  269. package/dist/cjs/atomic-result-link.cjs.entry.js +1 -1
  270. package/dist/cjs/atomic-result-list.cjs.entry.js +1 -1
  271. package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +3 -3
  272. package/dist/cjs/atomic-result-rating.cjs.entry.js +1 -2
  273. package/dist/cjs/atomic-result-rating.cjs.entry.js.map +1 -1
  274. package/dist/cjs/atomic-results-per-page.cjs.entry.js +1 -1
  275. package/dist/cjs/atomic-search-box-query-suggestions_2.cjs.entry.js +2 -2
  276. package/dist/cjs/atomic-search-box.cjs.entry.js +4 -4
  277. package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
  278. package/dist/cjs/atomic-smart-snippet-answer_2.cjs.entry.js +2 -2
  279. package/dist/cjs/atomic-smart-snippet-collapse-wrapper_2.cjs.entry.js +3 -3
  280. package/dist/cjs/atomic-smart-snippet-feedback-modal.cjs.entry.js +2 -2
  281. package/dist/cjs/atomic-sort-dropdown.cjs.entry.js +2 -2
  282. package/dist/cjs/atomic-sort-expression.cjs.entry.js +1 -1
  283. package/dist/cjs/atomic-suggestion-renderer.cjs.entry.js +1 -1
  284. package/dist/cjs/atomic-tab-bar_2.cjs.entry.js +1 -1
  285. package/dist/cjs/atomic-tab-button.cjs.entry.js +1 -1
  286. package/dist/cjs/atomic-tab-manager.cjs.entry.js +1 -1
  287. package/dist/cjs/atomic.cjs.js +1 -1
  288. package/dist/cjs/index-757bc886.js +0 -12
  289. package/dist/cjs/version.cjs.js +2 -2
  290. package/dist/esm/_loader.js +1 -1
  291. package/dist/esm/{analytics-config-4e83a998.js → analytics-config-696a4e82.js} +2 -2
  292. package/dist/esm/{analytics-config-4e83a998.js.map → analytics-config-696a4e82.js.map} +1 -1
  293. package/dist/esm/atomic-aria-live_2.entry.js +3 -3
  294. package/dist/esm/atomic-category-facet.entry.js +1 -1
  295. package/dist/esm/atomic-citation.entry.js +1 -1
  296. package/dist/esm/atomic-commerce-category-facet_4.entry.js +4 -4
  297. package/dist/esm/atomic-facet-date-input.entry.js +3 -3
  298. package/dist/esm/atomic-facet-manager.entry.js +1 -1
  299. package/dist/esm/atomic-facet-number-input.entry.js +2 -2
  300. package/dist/esm/atomic-facet.entry.js +1 -1
  301. package/dist/esm/atomic-focus-trap_2.entry.js +2 -2
  302. package/dist/esm/atomic-format-currency.entry.js +1 -1
  303. package/dist/esm/atomic-format-number.entry.js +1 -1
  304. package/dist/esm/atomic-format-unit.entry.js +1 -1
  305. package/dist/esm/atomic-generated-answer-feedback-modal.entry.js +1 -1
  306. package/dist/esm/atomic-html.entry.js +1 -1
  307. package/dist/esm/atomic-insight-edit-toggle.entry.js +1 -1
  308. package/dist/esm/atomic-insight-facet.entry.js +1 -1
  309. package/dist/esm/atomic-insight-folded-result-list.entry.js +1 -1
  310. package/dist/esm/atomic-insight-full-search-button.entry.js +1 -1
  311. package/dist/esm/atomic-insight-history-toggle.entry.js +1 -1
  312. package/dist/esm/atomic-insight-interface.entry.js +1 -1
  313. package/dist/esm/atomic-insight-no-results.entry.js +1 -1
  314. package/dist/esm/atomic-insight-numeric-facet.entry.js +1 -1
  315. package/dist/esm/atomic-insight-pager.entry.js +3 -3
  316. package/dist/esm/atomic-insight-query-error.entry.js +1 -1
  317. package/dist/esm/atomic-insight-refine-modal.entry.js +2 -2
  318. package/dist/esm/atomic-insight-refine-toggle.entry.js +1 -1
  319. package/dist/esm/atomic-insight-result-attach-to-case-indicator.entry.js +1 -1
  320. package/dist/esm/atomic-insight-result-children.entry.js +1 -1
  321. package/dist/esm/atomic-insight-result-list.entry.js +1 -1
  322. package/dist/esm/atomic-insight-result-quickview-action.entry.js +1 -1
  323. package/dist/esm/atomic-insight-result.entry.js +1 -1
  324. package/dist/esm/atomic-insight-search-box.entry.js +2 -2
  325. package/dist/esm/atomic-insight-smart-snippet-feedback-modal.entry.js +2 -2
  326. package/dist/esm/atomic-insight-tabs.entry.js +1 -1
  327. package/dist/esm/atomic-insight-user-actions-session_2.entry.js +1 -1
  328. package/dist/esm/atomic-insight-user-actions-toggle.entry.js +1 -1
  329. package/dist/esm/atomic-ipx-body.entry.js +2 -2
  330. package/dist/esm/atomic-ipx-button.entry.js +2 -2
  331. package/dist/esm/atomic-ipx-embedded.entry.js +1 -1
  332. package/dist/esm/atomic-ipx-modal.entry.js +2 -2
  333. package/dist/esm/atomic-ipx-recs-list.entry.js +1 -1
  334. package/dist/esm/atomic-ipx-refine-modal.entry.js +1 -1
  335. package/dist/esm/atomic-ipx-refine-toggle.entry.js +1 -1
  336. package/dist/esm/atomic-ipx-result-link.entry.js +1 -1
  337. package/dist/esm/atomic-ipx-tabs.entry.js +1 -1
  338. package/dist/esm/atomic-load-more-results.entry.js +1 -1
  339. package/dist/esm/atomic-no-results.entry.js +1 -1
  340. package/dist/esm/atomic-numeric-facet.entry.js +1 -1
  341. package/dist/esm/atomic-pager.entry.js +3 -3
  342. package/dist/esm/atomic-product-description.entry.js +32 -4
  343. package/dist/esm/atomic-product-description.entry.js.map +1 -1
  344. package/dist/esm/atomic-product-link.entry.js +17 -4
  345. package/dist/esm/atomic-product-link.entry.js.map +1 -1
  346. package/dist/esm/atomic-product-rating.entry.js +1 -2
  347. package/dist/esm/atomic-product-rating.entry.js.map +1 -1
  348. package/dist/esm/atomic-query-error.entry.js +1 -1
  349. package/dist/esm/atomic-query-summary.entry.js +1 -1
  350. package/dist/esm/atomic-quickview-modal.entry.js +1 -1
  351. package/dist/esm/atomic-quickview.entry.js +1 -1
  352. package/dist/esm/{atomic-rating-623f80fb.js → atomic-rating-cb537bf2.js} +8 -2
  353. package/dist/esm/atomic-rating-cb537bf2.js.map +1 -0
  354. package/dist/esm/atomic-rating-facet.entry.js +1 -2
  355. package/dist/esm/atomic-rating-facet.entry.js.map +1 -1
  356. package/dist/esm/atomic-rating-range-facet.entry.js +1 -2
  357. package/dist/esm/atomic-rating-range-facet.entry.js.map +1 -1
  358. package/dist/esm/atomic-recs-error.entry.js +1 -1
  359. package/dist/esm/atomic-recs-interface.entry.js +1 -1
  360. package/dist/esm/atomic-recs-list.entry.js +1 -1
  361. package/dist/esm/atomic-refine-modal.entry.js +1 -1
  362. package/dist/esm/atomic-refine-toggle.entry.js +1 -1
  363. package/dist/esm/atomic-result-children.entry.js +1 -1
  364. package/dist/esm/atomic-result-fields-list.entry.js +1 -1
  365. package/dist/esm/atomic-result-link.entry.js +1 -1
  366. package/dist/esm/atomic-result-list.entry.js +1 -1
  367. package/dist/esm/atomic-result-placeholder_8.entry.js +3 -3
  368. package/dist/esm/atomic-result-rating.entry.js +1 -2
  369. package/dist/esm/atomic-result-rating.entry.js.map +1 -1
  370. package/dist/esm/atomic-results-per-page.entry.js +1 -1
  371. package/dist/esm/atomic-search-box-query-suggestions_2.entry.js +2 -2
  372. package/dist/esm/atomic-search-box.entry.js +4 -4
  373. package/dist/esm/atomic-search-interface.entry.js +1 -1
  374. package/dist/esm/atomic-smart-snippet-answer_2.entry.js +2 -2
  375. package/dist/esm/atomic-smart-snippet-collapse-wrapper_2.entry.js +3 -3
  376. package/dist/esm/atomic-smart-snippet-feedback-modal.entry.js +2 -2
  377. package/dist/esm/atomic-sort-dropdown.entry.js +2 -2
  378. package/dist/esm/atomic-sort-expression.entry.js +1 -1
  379. package/dist/esm/atomic-suggestion-renderer.entry.js +1 -1
  380. package/dist/esm/atomic-tab-bar_2.entry.js +1 -1
  381. package/dist/esm/atomic-tab-button.entry.js +1 -1
  382. package/dist/esm/atomic-tab-manager.entry.js +1 -1
  383. package/dist/esm/atomic.js +1 -1
  384. package/dist/esm/index-3f35faca.js +0 -12
  385. package/dist/esm/version.js +2 -2
  386. package/dist/types/components/commerce/atomic-product-excerpt/atomic-product-excerpt.d.ts +20 -10
  387. package/dist/types/components/commerce/atomic-product-numeric-field-value/atomic-product-numeric-field-value.d.ts +18 -13
  388. package/dist/types/components/commerce/atomic-product-price/atomic-product-price.d.ts +15 -8
  389. package/dist/types/components/commerce/atomic-product-template/atomic-product-template.d.ts +3 -0
  390. package/dist/types/components/commerce/index.d.ts +3 -0
  391. package/dist/types/components/common/expandable-text/expandable-text.d.ts +2 -0
  392. package/dist/types/components.d.ts +0 -103
  393. package/docs/atomic-docs.json +1 -166
  394. package/package.json +5 -5
  395. package/dist/atomic/components/atomic-product-excerpt.d.ts +0 -11
  396. package/dist/atomic/components/atomic-product-excerpt.js +0 -113
  397. package/dist/atomic/components/atomic-product-excerpt.js.map +0 -1
  398. package/dist/atomic/components/atomic-product-numeric-field-value.d.ts +0 -11
  399. package/dist/atomic/components/atomic-product-numeric-field-value.js +0 -90
  400. package/dist/atomic/components/atomic-product-numeric-field-value.js.map +0 -1
  401. package/dist/atomic/components/atomic-product-price.d.ts +0 -11
  402. package/dist/atomic/components/atomic-product-price.js +0 -98
  403. package/dist/atomic/components/atomic-product-price.js.map +0 -1
  404. package/dist/atomic/components/error.js +0 -10
  405. package/dist/atomic/components/error.js.map +0 -1
  406. package/dist/atomic/components/product-utils.js +0 -33
  407. package/dist/atomic/components/product-utils.js.map +0 -1
  408. package/dist/atomic/components/stencil-expandable-text.js +0 -36
  409. package/dist/atomic/components/stencil-expandable-text.js.map +0 -1
  410. package/dist/atomic/p-009af1a0.entry.js +0 -2
  411. package/dist/atomic/p-034a21aa.js +0 -2
  412. package/dist/atomic/p-034a21aa.js.map +0 -1
  413. package/dist/atomic/p-0c604072.entry.js +0 -2
  414. package/dist/atomic/p-0ed3432e.entry.js +0 -2
  415. package/dist/atomic/p-0ed66827.entry.js +0 -2
  416. package/dist/atomic/p-0ed66827.entry.js.map +0 -1
  417. package/dist/atomic/p-1e971b29.entry.js +0 -2
  418. package/dist/atomic/p-2bdfa055.js +0 -2
  419. package/dist/atomic/p-2bdfa055.js.map +0 -1
  420. package/dist/atomic/p-2cfcffc7.entry.js +0 -2
  421. package/dist/atomic/p-3a9ef094.entry.js +0 -2
  422. package/dist/atomic/p-609451bf.entry.js +0 -2
  423. package/dist/atomic/p-609451bf.entry.js.map +0 -1
  424. package/dist/atomic/p-7163256b.js +0 -2
  425. package/dist/atomic/p-7163256b.js.map +0 -1
  426. package/dist/atomic/p-7525968c.entry.js +0 -2
  427. package/dist/atomic/p-7525968c.entry.js.map +0 -1
  428. package/dist/atomic/p-7deba242.entry.js +0 -2
  429. package/dist/atomic/p-7deba242.entry.js.map +0 -1
  430. package/dist/atomic/p-a44740ec.entry.js +0 -2
  431. package/dist/atomic/p-b1b751a5.js +0 -2
  432. package/dist/atomic/p-b1b751a5.js.map +0 -1
  433. package/dist/atomic/p-d4f88be6.entry.js +0 -2
  434. package/dist/atomic/p-db9fc2f4.entry.js +0 -2
  435. package/dist/atomic/p-f20b2d62.entry.js +0 -2
  436. package/dist/atomic/p-f20b2d62.entry.js.map +0 -1
  437. package/dist/cjs/atomic-product-excerpt.cjs.entry.js +0 -104
  438. package/dist/cjs/atomic-product-excerpt.cjs.entry.js.map +0 -1
  439. package/dist/cjs/atomic-product-numeric-field-value.cjs.entry.js +0 -80
  440. package/dist/cjs/atomic-product-numeric-field-value.cjs.entry.js.map +0 -1
  441. package/dist/cjs/atomic-product-price.cjs.entry.js +0 -92
  442. package/dist/cjs/atomic-product-price.cjs.entry.js.map +0 -1
  443. package/dist/cjs/atomic-rating-6d5a98ec.js.map +0 -1
  444. package/dist/cjs/error-ad501bd7.js +0 -12
  445. package/dist/cjs/error-ad501bd7.js.map +0 -1
  446. package/dist/cjs/product-utils-4bd389b3.js +0 -36
  447. package/dist/cjs/product-utils-4bd389b3.js.map +0 -1
  448. package/dist/cjs/stencil-expandable-text-34b8f701.js +0 -38
  449. package/dist/cjs/stencil-expandable-text-34b8f701.js.map +0 -1
  450. package/dist/esm/atomic-product-excerpt.entry.js +0 -100
  451. package/dist/esm/atomic-product-excerpt.entry.js.map +0 -1
  452. package/dist/esm/atomic-product-numeric-field-value.entry.js +0 -76
  453. package/dist/esm/atomic-product-numeric-field-value.entry.js.map +0 -1
  454. package/dist/esm/atomic-product-price.entry.js +0 -88
  455. package/dist/esm/atomic-product-price.entry.js.map +0 -1
  456. package/dist/esm/atomic-rating-623f80fb.js.map +0 -1
  457. package/dist/esm/error-9520e6d0.js +0 -10
  458. package/dist/esm/error-9520e6d0.js.map +0 -1
  459. package/dist/esm/product-utils-9dcbe57e.js +0 -33
  460. package/dist/esm/product-utils-9dcbe57e.js.map +0 -1
  461. package/dist/esm/stencil-expandable-text-f3d562dc.js +0 -36
  462. package/dist/esm/stencil-expandable-text-f3d562dc.js.map +0 -1
  463. /package/dist/atomic/{p-3817e41f.entry.js.map → p-07736099.entry.js.map} +0 -0
  464. /package/dist/atomic/{p-254493bb.entry.js.map → p-10533f5e.entry.js.map} +0 -0
  465. /package/dist/atomic/{p-ff601596.entry.js.map → p-1241378f.entry.js.map} +0 -0
  466. /package/dist/atomic/{p-fcc01555.entry.js.map → p-179dd992.entry.js.map} +0 -0
  467. /package/dist/atomic/{p-9ea0730b.entry.js.map → p-188a5988.entry.js.map} +0 -0
  468. /package/dist/atomic/{p-053630b7.entry.js.map → p-1d8d898e.entry.js.map} +0 -0
  469. /package/dist/atomic/{p-b7c58d1b.entry.js.map → p-1e82867d.entry.js.map} +0 -0
  470. /package/dist/atomic/{p-18a6ee18.entry.js.map → p-2075d1c2.entry.js.map} +0 -0
  471. /package/dist/atomic/{p-ef42977c.entry.js.map → p-24df7eb5.entry.js.map} +0 -0
  472. /package/dist/atomic/{p-6fafebf4.entry.js.map → p-2b7bd1a7.entry.js.map} +0 -0
  473. /package/dist/atomic/{p-16f39309.entry.js.map → p-2cb0696d.entry.js.map} +0 -0
  474. /package/dist/atomic/{p-82f73cb7.entry.js.map → p-34280d19.entry.js.map} +0 -0
  475. /package/dist/atomic/{p-4600286e.entry.js.map → p-34f13f68.entry.js.map} +0 -0
  476. /package/dist/atomic/{p-4780a993.entry.js.map → p-380e9947.entry.js.map} +0 -0
  477. /package/dist/atomic/{p-2e5900d5.entry.js.map → p-3a22931a.entry.js.map} +0 -0
  478. /package/dist/atomic/{p-fa1c4917.entry.js.map → p-3b4f8370.entry.js.map} +0 -0
  479. /package/dist/atomic/{p-3a9ef094.entry.js.map → p-3f50439d.entry.js.map} +0 -0
  480. /package/dist/atomic/{p-8f10d6b1.entry.js.map → p-451abd79.entry.js.map} +0 -0
  481. /package/dist/atomic/{p-0457e70e.entry.js.map → p-4cb4dce2.entry.js.map} +0 -0
  482. /package/dist/atomic/{p-7e477e6a.entry.js.map → p-4cf83057.entry.js.map} +0 -0
  483. /package/dist/atomic/{p-f37215a3.entry.js.map → p-4f71433c.entry.js.map} +0 -0
  484. /package/dist/atomic/{p-0dbfef2a.entry.js.map → p-5231d47e.entry.js.map} +0 -0
  485. /package/dist/atomic/{p-1bd29155.entry.js.map → p-547ec848.entry.js.map} +0 -0
  486. /package/dist/atomic/{p-e67e6f25.entry.js.map → p-558b561c.entry.js.map} +0 -0
  487. /package/dist/atomic/{p-312ea507.entry.js.map → p-56f79dbc.entry.js.map} +0 -0
  488. /package/dist/atomic/{p-90e7ab82.entry.js.map → p-598355e2.entry.js.map} +0 -0
  489. /package/dist/atomic/{p-0caed756.entry.js.map → p-5f5f3c02.entry.js.map} +0 -0
  490. /package/dist/atomic/{p-413a3e9a.entry.js.map → p-5fc9f751.entry.js.map} +0 -0
  491. /package/dist/atomic/{p-d376a122.entry.js.map → p-60677298.entry.js.map} +0 -0
  492. /package/dist/atomic/{p-0d272101.entry.js.map → p-75927180.entry.js.map} +0 -0
  493. /package/dist/atomic/{p-619fdbad.entry.js.map → p-78798600.entry.js.map} +0 -0
  494. /package/dist/atomic/{p-60c221c4.entry.js.map → p-7abdbad3.entry.js.map} +0 -0
  495. /package/dist/atomic/{p-ab5284ef.entry.js.map → p-7c2465db.entry.js.map} +0 -0
  496. /package/dist/atomic/{p-2553b81a.entry.js.map → p-7da7091f.entry.js.map} +0 -0
  497. /package/dist/atomic/{p-fae8b0b6.entry.js.map → p-7e316f12.entry.js.map} +0 -0
  498. /package/dist/atomic/{p-32d1d80d.entry.js.map → p-7e979900.entry.js.map} +0 -0
  499. /package/dist/atomic/{p-f662801b.entry.js.map → p-81f9321f.entry.js.map} +0 -0
  500. /package/dist/atomic/{p-5daf65a2.entry.js.map → p-8664e49f.entry.js.map} +0 -0
  501. /package/dist/atomic/{p-32768595.js.map → p-866a36bb.js.map} +0 -0
  502. /package/dist/atomic/{p-1868dae3.entry.js.map → p-87306667.entry.js.map} +0 -0
  503. /package/dist/atomic/{p-2cfcffc7.entry.js.map → p-88e3af33.entry.js.map} +0 -0
  504. /package/dist/atomic/{p-14e07101.entry.js.map → p-8b19b5c1.entry.js.map} +0 -0
  505. /package/dist/atomic/{p-b25c9315.entry.js.map → p-8c07fe23.entry.js.map} +0 -0
  506. /package/dist/atomic/{p-40068301.entry.js.map → p-933fb81c.entry.js.map} +0 -0
  507. /package/dist/atomic/{p-c9594881.entry.js.map → p-9f349dea.entry.js.map} +0 -0
  508. /package/dist/atomic/{p-33883a60.entry.js.map → p-a21b8355.entry.js.map} +0 -0
  509. /package/dist/atomic/{p-014d7074.entry.js.map → p-a6f59ee7.entry.js.map} +0 -0
  510. /package/dist/atomic/{p-ef6daa3c.entry.js.map → p-a9e90e8d.entry.js.map} +0 -0
  511. /package/dist/atomic/{p-db9fc2f4.entry.js.map → p-ac93a338.entry.js.map} +0 -0
  512. /package/dist/atomic/{p-3e4997cb.entry.js.map → p-b369d9f3.entry.js.map} +0 -0
  513. /package/dist/atomic/{p-0051c09e.entry.js.map → p-b7df58a2.entry.js.map} +0 -0
  514. /package/dist/atomic/{p-c7aea960.entry.js.map → p-b8884511.entry.js.map} +0 -0
  515. /package/dist/atomic/{p-d67f0c7d.entry.js.map → p-b9d90a15.entry.js.map} +0 -0
  516. /package/dist/atomic/{p-b9cdeb9c.entry.js.map → p-c52ea307.entry.js.map} +0 -0
  517. /package/dist/atomic/{p-6757d5c8.entry.js.map → p-c6d607ef.entry.js.map} +0 -0
  518. /package/dist/atomic/{p-5cae2acd.entry.js.map → p-c7c8a40b.entry.js.map} +0 -0
  519. /package/dist/atomic/{p-6c10c08c.entry.js.map → p-c8d47706.entry.js.map} +0 -0
  520. /package/dist/atomic/{p-c7e06c91.entry.js.map → p-c8f4a164.entry.js.map} +0 -0
  521. /package/dist/atomic/{p-7151eb35.entry.js.map → p-c91d1951.entry.js.map} +0 -0
  522. /package/dist/atomic/{p-d2d1bbbc.entry.js.map → p-c953ea9f.entry.js.map} +0 -0
  523. /package/dist/atomic/{p-86f61caa.entry.js.map → p-c997c2ad.entry.js.map} +0 -0
  524. /package/dist/atomic/{p-57377cc0.entry.js.map → p-cb07fb1a.entry.js.map} +0 -0
  525. /package/dist/atomic/{p-55c12e5f.entry.js.map → p-cc4a90fc.entry.js.map} +0 -0
  526. /package/dist/atomic/{p-f57dd2a9.entry.js.map → p-ce716a3a.entry.js.map} +0 -0
  527. /package/dist/atomic/{p-05f50dc9.entry.js.map → p-d64c6b59.entry.js.map} +0 -0
  528. /package/dist/atomic/{p-087ba363.entry.js.map → p-dad54a83.entry.js.map} +0 -0
  529. /package/dist/atomic/{p-03c36274.entry.js.map → p-e0c09699.entry.js.map} +0 -0
  530. /package/dist/atomic/{p-19b2085d.entry.js.map → p-e240f215.entry.js.map} +0 -0
  531. /package/dist/atomic/{p-6a43fe66.entry.js.map → p-e2765b24.entry.js.map} +0 -0
  532. /package/dist/atomic/{p-d4f88be6.entry.js.map → p-e790d557.entry.js.map} +0 -0
  533. /package/dist/atomic/{p-b8584d50.entry.js.map → p-ea98f3c7.entry.js.map} +0 -0
  534. /package/dist/atomic/{p-009af1a0.entry.js.map → p-efd2bb5f.entry.js.map} +0 -0
  535. /package/dist/atomic/{p-1df62ba9.entry.js.map → p-f27fba44.entry.js.map} +0 -0
  536. /package/dist/atomic/{p-23200ea1.entry.js.map → p-f7830503.entry.js.map} +0 -0
  537. /package/dist/atomic/{p-a516f15f.entry.js.map → p-f7e0887c.entry.js.map} +0 -0
  538. /package/dist/atomic/{p-66fd5541.entry.js.map → p-fa9454b5.entry.js.map} +0 -0
  539. /package/dist/atomic/{p-963e508f.entry.js.map → p-fc68c8b0.entry.js.map} +0 -0
@@ -117,8 +117,8 @@ const AtomicSortDropdown$1 = /*@__PURE__*/ proxyCustomElement(class AtomicSortDr
117
117
  const { hasError, hasResults, firstSearchExecuted } = this.searchStatusState;
118
118
  const { bindings: { i18n }, id, } = this;
119
119
  return [
120
- h(SortGuard, { key: '4ee8ff63c7e211ad4c0363e767cb790cd9710e43', firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: hasResults }, h(SortContainer, { key: '5038bbcf2ada8edcaf3f53e8a773956c3ebb5b9e' }, h(SortLabel, { key: '854fc6ec309794b68c863dae07daef9c3e2220b5', i18n: i18n, id: id }), h(SortSelect, { key: 'bcf25587ecfda1360af47c9a38ac21d12bf06e50', 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: '780cda787ea62acbcc2c2c992320aed0bbd7e987' }),
120
+ h(SortGuard, { key: 'c4710486ab41fc6759c07d5850c8e83bb9a37160', firstSearchExecuted: firstSearchExecuted, hasError: hasError, hasResults: hasResults }, h(SortContainer, { key: '653c93dbd9d5b3535f8ddb808f4cdfba0026613c' }, h(SortLabel, { key: 'a9c6c2a860400c3f6c07eda8be3a34a2469bec71', i18n: i18n, id: id }), h(SortSelect, { key: '8f4826457092ffb87bc9292a9d8276b232f3d99b', 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: 'd36b41c41973b6fda29d7ba6b0ec3c1eacde7224' }),
122
122
  ];
123
123
  }
124
124
  get host() { return this; }
@@ -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: '4e670761918ce5550411f515fd32136df0e2224e', element: this.host, error: error }));
50
+ return (h("atomic-component-error", { key: '278d83f4f6b5d95041fe199f0a911e360eb5823c', 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: '67d5e49cfc54a02d7bea535ad2cacca11a4af465', 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: '285092df55387853ab1c4ae7b855329243e0f6e5', 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: '9e75ad3be1f4468d7b2d0eb9c6f6e57f50840826' }, h("atomic-tab-bar", { key: 'ed6823fbf1249ec38a1a057244a530ce7f3fae1f' }, h("div", { key: '87ed2de51ab176f9059339a8bb54e895716ca15a', 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: '51deeb9f56009f83954ab00c955065dcb740e319' }, h("atomic-tab-bar", { key: '7e637249b5b4db12f3a81f777e9fcb6cab66210d' }, h("div", { key: 'd19cc7766d8b1c5123bcc2cbb3d5482e541e63d8', 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,130 @@
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 { Schema, StringValue } from '@coveo/bueno';
8
+ import { html, LitElement, nothing, unsafeCSS } from 'lit';
9
+ import { customElement, property, state } from 'lit/decorators.js';
10
+ import { createRef } from 'lit/directives/ref.js';
11
+ import { booleanConverter } from "../../../converters/boolean-converter";
12
+ import { bindingGuard } from "../../../decorators/binding-guard";
13
+ import { bindings } from "../../../decorators/bindings";
14
+ import { createProductContextController } from "../../../decorators/commerce/product-template-decorators";
15
+ import { errorGuard } from "../../../decorators/error-guard";
16
+ import { injectStylesForNoShadowDOM } from "../../../decorators/inject-styles-for-no-shadow-dom";
17
+ import { withTailwindStyles } from "../../../decorators/with-tailwind-styles";
18
+ import { renderExpandableText, } from '../../common/expandable-text/expandable-text';
19
+ import styles from './atomic-product-excerpt.tw.css';
20
+ /**
21
+ * The `atomic-product-excerpt` component renders the excerpt of a product.
22
+ *
23
+ * @part expandable-text - The part that contains the product excerpt text.
24
+ * @alpha
25
+ */
26
+ let AtomicProductExcerpt = class AtomicProductExcerpt extends LitElement {
27
+ initialize() { }
28
+ constructor() {
29
+ super();
30
+ this.productController = createProductContextController(this);
31
+ this.isExpanded = false;
32
+ this.isTruncated = false;
33
+ this.excerptRef = createRef();
34
+ /**
35
+ * The number of lines after which the product excerpt should be truncated. A value of "none" will disable truncation.
36
+ */
37
+ this.truncateAfter = '2';
38
+ /**
39
+ * Whether the excerpt should be collapsible after being expanded.
40
+ */
41
+ this.isCollapsible = false;
42
+ this.resizeObserver = new ResizeObserver(() => {
43
+ if (this.excerptRef.value) {
44
+ this.isTruncated =
45
+ this.excerptRef.value.scrollHeight >
46
+ this.excerptRef.value.clientHeight;
47
+ }
48
+ });
49
+ }
50
+ validateProps() {
51
+ new Schema({
52
+ truncateAfter: new StringValue({
53
+ constrainTo: ['none', '1', '2', '3', '4'],
54
+ }),
55
+ }).validate({
56
+ truncateAfter: this.truncateAfter,
57
+ });
58
+ }
59
+ updated(changedProperties) {
60
+ super.updated(changedProperties);
61
+ if (changedProperties.has('truncateAfter')) {
62
+ this.validateProps();
63
+ }
64
+ if (this.excerptRef.value) {
65
+ this.resizeObserver.observe(this.excerptRef.value);
66
+ }
67
+ }
68
+ onToggleExpand(e) {
69
+ if (e) {
70
+ e.stopPropagation();
71
+ }
72
+ this.isExpanded = !this.isExpanded;
73
+ }
74
+ disconnectedCallback() {
75
+ super.disconnectedCallback();
76
+ this.resizeObserver.disconnect();
77
+ }
78
+ get product() {
79
+ return this.productController.item;
80
+ }
81
+ render() {
82
+ const productExcerpt = this.product?.excerpt ?? null;
83
+ if (!productExcerpt) {
84
+ return html `${nothing}`;
85
+ }
86
+ return html `${renderExpandableText({
87
+ props: {
88
+ isExpanded: this.isExpanded,
89
+ isTruncated: this.isTruncated,
90
+ truncateAfter: this.truncateAfter,
91
+ onToggleExpand: (e) => this.onToggleExpand(e),
92
+ showMoreLabel: this.bindings.i18n.t('show-more'),
93
+ showLessLabel: this.bindings.i18n.t('show-less'),
94
+ isCollapsible: this.isCollapsible,
95
+ textRef: this.excerptRef,
96
+ },
97
+ })(html `<atomic-product-text field="excerpt"></atomic-product-text>`)}`;
98
+ }
99
+ };
100
+ AtomicProductExcerpt.styles = unsafeCSS(styles);
101
+ __decorate([
102
+ state()
103
+ ], AtomicProductExcerpt.prototype, "bindings", void 0);
104
+ __decorate([
105
+ state()
106
+ ], AtomicProductExcerpt.prototype, "isExpanded", void 0);
107
+ __decorate([
108
+ state()
109
+ ], AtomicProductExcerpt.prototype, "isTruncated", void 0);
110
+ __decorate([
111
+ property({ type: String, attribute: 'truncate-after' })
112
+ ], AtomicProductExcerpt.prototype, "truncateAfter", void 0);
113
+ __decorate([
114
+ property({
115
+ type: Boolean,
116
+ attribute: 'is-collapsible',
117
+ converter: booleanConverter,
118
+ })
119
+ ], AtomicProductExcerpt.prototype, "isCollapsible", void 0);
120
+ __decorate([
121
+ bindingGuard(),
122
+ errorGuard()
123
+ ], AtomicProductExcerpt.prototype, "render", null);
124
+ AtomicProductExcerpt = __decorate([
125
+ customElement('atomic-product-excerpt'),
126
+ bindings(),
127
+ injectStylesForNoShadowDOM,
128
+ withTailwindStyles
129
+ ], AtomicProductExcerpt);
130
+ export { AtomicProductExcerpt };
@@ -0,0 +1,3 @@
1
+ const css = `/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ .expandable-text{line-height:var(--line-height)}.min-lines-1{min-height:calc(var(--line-height)*1)}.min-lines-2{min-height:calc(var(--line-height)*2)}.min-lines-3{min-height:calc(var(--line-height)*3)}.min-lines-4{min-height:calc(var(--line-height)*4)}`;
3
+ export default [css];
@@ -0,0 +1,81 @@
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 { html, LitElement } from 'lit';
8
+ import { customElement, property, state } from 'lit/decorators.js';
9
+ import { when } from 'lit/directives/when.js';
10
+ import { bindingGuard } from "../../../decorators/binding-guard.js";
11
+ import { bindings } from "../../../decorators/bindings.js";
12
+ import { createProductContextController } from "../../../decorators/commerce/product-template-decorators.js";
13
+ import { errorGuard } from "../../../decorators/error-guard.js";
14
+ import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
15
+ import { defaultNumberFormatter, } from '../../common/formats/format-common.js';
16
+ import { parseValue } from '../product-template-component-utils/product-utils.js';
17
+ /**
18
+ * The `atomic-product-numeric-field-value` component renders the value of a number product field.
19
+ *
20
+ * The number can be formatted by adding a `atomic-format-number`, `atomic-format-currency` or `atomic-format-unit` component into this component.
21
+ * @alpha
22
+ */
23
+ let AtomicProductNumericFieldValue = class AtomicProductNumericFieldValue extends LitElement {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.productController = createProductContextController(this);
27
+ this.formatter = defaultNumberFormatter;
28
+ this.setFormat = (event) => {
29
+ const customEvent = event;
30
+ customEvent.preventDefault();
31
+ customEvent.stopPropagation();
32
+ this.formatter = customEvent.detail;
33
+ };
34
+ }
35
+ createRenderRoot() {
36
+ return this;
37
+ }
38
+ initialize() {
39
+ this.addEventListener('atomic/numberFormat', this.setFormat);
40
+ }
41
+ disconnectedCallback() {
42
+ super.disconnectedCallback();
43
+ this.removeEventListener('atomic/numberFormat', this.setFormat);
44
+ }
45
+ get value() {
46
+ const product = this.productController.item;
47
+ if (!product) {
48
+ return null;
49
+ }
50
+ const value = parseValue(product, this.field);
51
+ if (value === null) {
52
+ return null;
53
+ }
54
+ return this.formatter(value, this.bindings.i18n.languages);
55
+ }
56
+ render() {
57
+ return html `${when(this.value !== null, () => html `${this.value}`)}`;
58
+ }
59
+ };
60
+ __decorate([
61
+ state()
62
+ ], AtomicProductNumericFieldValue.prototype, "bindings", void 0);
63
+ __decorate([
64
+ state()
65
+ ], AtomicProductNumericFieldValue.prototype, "error", void 0);
66
+ __decorate([
67
+ property({ reflect: true })
68
+ ], AtomicProductNumericFieldValue.prototype, "field", void 0);
69
+ __decorate([
70
+ state()
71
+ ], AtomicProductNumericFieldValue.prototype, "formatter", void 0);
72
+ __decorate([
73
+ errorGuard(),
74
+ bindingGuard()
75
+ ], AtomicProductNumericFieldValue.prototype, "render", null);
76
+ AtomicProductNumericFieldValue = __decorate([
77
+ customElement('atomic-product-numeric-field-value'),
78
+ bindings(),
79
+ withTailwindStyles
80
+ ], AtomicProductNumericFieldValue);
81
+ export { AtomicProductNumericFieldValue };
@@ -0,0 +1,103 @@
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 { buildContext, } from '@coveo/headless/commerce';
8
+ import { html, LitElement, unsafeCSS } from 'lit';
9
+ import { customElement, state } from 'lit/decorators.js';
10
+ import { when } from 'lit/directives/when.js';
11
+ import { bindStateToController } from "../../../decorators/bind-state.js";
12
+ import { bindingGuard } from "../../../decorators/binding-guard.js";
13
+ import { bindings } from "../../../decorators/bindings.js";
14
+ import { createProductContextController } from "../../../decorators/commerce/product-template-decorators.js";
15
+ import { errorGuard } from "../../../decorators/error-guard.js";
16
+ import { injectStylesForNoShadowDOM } from "../../../decorators/inject-styles-for-no-shadow-dom.js";
17
+ import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
18
+ import { multiClassMap, tw } from "../../../directives/multi-class-map.js";
19
+ import { defaultCurrencyFormatter } from '../../common/formats/format-common.js';
20
+ import { parseValue } from '../product-template-component-utils/product-utils.js';
21
+ import styles from './atomic-product-price.tw.css';
22
+ /**
23
+ * The `atomic-product-price` component renders the price of a product.
24
+ * @alpha
25
+ */
26
+ let AtomicProductPrice = class AtomicProductPrice extends LitElement {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.productController = createProductContextController(this);
30
+ }
31
+ initialize() {
32
+ this.context = buildContext(this.bindings.engine);
33
+ }
34
+ get product() {
35
+ return this.productController.item;
36
+ }
37
+ formatValue(value) {
38
+ try {
39
+ const { currency } = this.contextState;
40
+ const formatter = defaultCurrencyFormatter(currency);
41
+ return formatter(value, this.bindings.i18n.languages);
42
+ }
43
+ catch (error) {
44
+ this.error = error;
45
+ return value.toString();
46
+ }
47
+ }
48
+ getFormattedValue(field) {
49
+ const value = parseValue(this.product, field);
50
+ if (value !== null) {
51
+ return this.formatValue(value);
52
+ }
53
+ }
54
+ get hasPromotionalPrice() {
55
+ return (this.product &&
56
+ this.product.ec_promo_price !== null &&
57
+ this.product.ec_price !== null &&
58
+ this.product.ec_promo_price < this.product.ec_price);
59
+ }
60
+ render() {
61
+ const priceClasses = tw({
62
+ 'truncate break-keep text-2xl': true,
63
+ 'text-error': this.hasPromotionalPrice,
64
+ });
65
+ return html `
66
+ <div class="flex flex-wrap gap-1">
67
+ <div
68
+ class=${multiClassMap(priceClasses)}
69
+ >
70
+ ${this.getFormattedValue(this.hasPromotionalPrice ? 'ec_promo_price' : 'ec_price')}
71
+ </div>
72
+
73
+ ${when(this.hasPromotionalPrice, () => html `
74
+ <div class="original-price content-center truncate text-xl break-keep line-through">
75
+ ${this.getFormattedValue('ec_price')}
76
+ </div>
77
+ `)}
78
+ </div>
79
+ `;
80
+ }
81
+ };
82
+ AtomicProductPrice.styles = unsafeCSS(styles);
83
+ __decorate([
84
+ state()
85
+ ], AtomicProductPrice.prototype, "bindings", void 0);
86
+ __decorate([
87
+ state()
88
+ ], AtomicProductPrice.prototype, "error", void 0);
89
+ __decorate([
90
+ bindStateToController('context'),
91
+ state()
92
+ ], AtomicProductPrice.prototype, "contextState", void 0);
93
+ __decorate([
94
+ errorGuard(),
95
+ bindingGuard()
96
+ ], AtomicProductPrice.prototype, "render", null);
97
+ AtomicProductPrice = __decorate([
98
+ customElement('atomic-product-price'),
99
+ bindings(),
100
+ injectStylesForNoShadowDOM,
101
+ withTailwindStyles
102
+ ], AtomicProductPrice);
103
+ export { AtomicProductPrice };
@@ -0,0 +1,3 @@
1
+ const css = `/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial}}}.display-grid atomic-product-price{flex-flow:column wrap;display:flex}.display-grid atomic-product-price .original-price{--tw-leading:1;line-height:1}@property --tw-leading{syntax:"*";inherits:false}`;
3
+ export default [css];
@@ -13,7 +13,10 @@ import { ProductTemplateController } from '../../common/product-template/product
13
13
  import '../atomic-commerce-text/atomic-commerce-text';
14
14
  import '../atomic-product-text/atomic-product-text';
15
15
  import '../atomic-product/atomic-product';
16
+ import '../atomic-product-excerpt/atomic-product-excerpt';
16
17
  import '../atomic-product-children/atomic-product-children';
18
+ import '../atomic-product-price/atomic-product-price';
19
+ import '../atomic-product-numeric-field-value/atomic-product-numeric-field-value';
17
20
  /**
18
21
  * * A product template determines the format of the query results, depending on the conditions that are defined for each template.
19
22
  *
@@ -22,5 +22,8 @@ export { AtomicCommerceSortDropdown } from './atomic-commerce-sort-dropdown/atom
22
22
  export { AtomicCommerceText } from './atomic-commerce-text/atomic-commerce-text.js';
23
23
  export { AtomicProduct } from './atomic-product/atomic-product.js';
24
24
  export { AtomicProductChildren } from './atomic-product-children/atomic-product-children.js';
25
+ export { AtomicProductExcerpt } from './atomic-product-excerpt/atomic-product-excerpt.js';
26
+ export { AtomicProductNumericFieldValue } from './atomic-product-numeric-field-value/atomic-product-numeric-field-value.js';
27
+ export { AtomicProductPrice } from './atomic-product-price/atomic-product-price.js';
25
28
  export { AtomicProductTemplate } from './atomic-product-template/atomic-product-template.js';
26
29
  export { AtomicProductText } from './atomic-product-text/atomic-product-text.js';
@@ -23,6 +23,9 @@ export default {
23
23
  'atomic-commerce-text': async () => await import('./atomic-commerce-text/atomic-commerce-text.js'),
24
24
  'atomic-product': async () => await import('./atomic-product/atomic-product.js'),
25
25
  'atomic-product-children': async () => await import('./atomic-product-children/atomic-product-children.js'),
26
+ 'atomic-product-excerpt': async () => await import('./atomic-product-excerpt/atomic-product-excerpt.js'),
27
+ 'atomic-product-numeric-field-value': async () => await import('./atomic-product-numeric-field-value/atomic-product-numeric-field-value.js'),
28
+ 'atomic-product-price': async () => await import('./atomic-product-price/atomic-product-price.js'),
26
29
  'atomic-product-template': async () => await import('./atomic-product-template/atomic-product-template.js'),
27
30
  'atomic-product-text': async () => await import('./atomic-product-text/atomic-product-text.js'),
28
31
  };
@@ -0,0 +1,47 @@
1
+ import { html } from 'lit';
2
+ const MinusIcon = "<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m64 208h384v96h-384z\"/></svg>";
3
+ const PlusIcon = "<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M496 208H304V16h-96v192H16v96h192v192h96V304h192\"/>\n</svg>\n";
4
+ import { renderButton } from '../button';
5
+ import '../atomic-icon/atomic-icon';
6
+ import { ref } from 'lit/directives/ref.js';
7
+ const getLineClampClass = (truncateAfter) => {
8
+ const lineClampMap = {
9
+ none: 'line-clamp-none',
10
+ 1: 'line-clamp-1',
11
+ 2: 'line-clamp-2',
12
+ 3: 'line-clamp-3',
13
+ 4: 'line-clamp-4',
14
+ };
15
+ return lineClampMap[truncateAfter] || 'line-clamp-2';
16
+ };
17
+ export const renderExpandableText = ({ props: { isExpanded, isTruncated, isCollapsible, truncateAfter, onToggleExpand, showMoreLabel, showLessLabel, textRef, }, }) => (children) => {
18
+ const expandableTextClass = `expandable-text ${!isExpanded ? getLineClampClass(truncateAfter) : ''} min-lines-${truncateAfter}`;
19
+ let buttonClass = 'expandable-text-button p-1 text-xs leading-[calc(1/.75)]';
20
+ if (!isTruncated && !isExpanded) {
21
+ buttonClass += ' invisible';
22
+ }
23
+ else if (!isCollapsible && !isTruncated && isExpanded) {
24
+ buttonClass += ' hidden';
25
+ }
26
+ const buttonLabel = isExpanded ? showLessLabel : showMoreLabel;
27
+ const icon = isExpanded ? MinusIcon : PlusIcon;
28
+ return html `<div class="flex flex-col items-start">
29
+ <div part="expandable-text"
30
+ class="${expandableTextClass}"
31
+ ${ref(textRef)}
32
+ >
33
+ ${children}
34
+ </div>
35
+
36
+ ${renderButton({
37
+ props: {
38
+ style: 'text-primary',
39
+ class: buttonClass,
40
+ title: buttonLabel,
41
+ onClick: onToggleExpand,
42
+ },
43
+ })(html `
44
+ <atomic-icon icon="${icon}" class="mx-1 w-2 align-baseline"></atomic-icon>
45
+ ${buttonLabel}`)}
46
+ </div>`;
47
+ };
@@ -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: '59d2965df3aaf8d3cabfd9d923d976dd898a110c', class: "mt-4 grid grid-cols-[min-content_1fr] gap-2 px-2", onSubmit: (e) => {
68
+ return (h("form", { key: '090427f9c7d815510bb8732e1b13b6c31e9df82b', 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: 'd9306e47c3a1c45abf99926478417480273b7561', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_start` }, startLabel, ":"), h("input", { key: '2e55fef92f46cb097d1d69bf0bdfdb9dc81446ea', 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: 'a02063a5f8430c9144809253a3901d37a5a69b82', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_start` }, startLabel, ":"), h("input", { key: '89fa32c6e021cea4c6cb68ff4b60a7b39a0e2ff7', 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: '7e32476bce17332e6edb2fe213115c26c7d31508', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_end` }, endLabel, ":"), h("input", { key: '78951b704e23f57f650d080aaecc3c7f80953c00', 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: '3d04497fab31fbfa813ecfc34023571670f04ed9', 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: 'a80d6601ae3c3189b1f8b04f7ff0a49eae68f788', part: "input-label", class: labelClasses, htmlFor: `${this.facetId}_end` }, endLabel, ":"), h("input", { key: 'c5973654c89ab45cd9a93b4281fb7fbb3906b38c', 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: '82663ec5a0122841c1126bf1f0766bd6cc078c35', 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: '1c6d56892489a9579ecf5cec42b715ece7f9082e', class: "mt-4 gap-y-0.5 px-2", part: "input-form", onSubmit: (e) => {
45
+ return (h("form", { key: '70662088ef0218f339ee83b226e4e0b5d2654518', 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: 'cd494b8db49aaf6bf39ed73608fc486fd947c1e3', part: "label-start", class: labelClasses, htmlFor: `${this.filterState.facetId}_start` }, minText), h("input", { key: '6c8d4c2fedde248555c15181bcf45fbe858b5daf', 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: '7910a7cef3f0faf580acdb462f708ea595221bfe', part: "label-end", class: labelClasses, htmlFor: `${this.filterState.facetId}_end` }, maxText), h("input", { key: 'e5c99e99c8c9d88dfacdb0465f892d45707d1fb1', 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: 'c2c99c597e693d5c964c6294c315cf83492c7725', style: "outline-primary", type: "submit", part: "input-apply-button", class: "flex-none truncate p-2.5", ariaLabel: applyAria, text: apply })));
49
+ } }, h("label", { key: 'b7ae30e3bc6327a03537a7b21ab07d48f451dceb', part: "label-start", class: labelClasses, htmlFor: `${this.filterState.facetId}_start` }, minText), h("input", { key: '82f6b55550e7942598dbd7891647d587fe90d6fb', 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: 'f191b24d945184eb251e4a965d2fa308b71876ef', part: "label-end", class: labelClasses, htmlFor: `${this.filterState.facetId}_end` }, maxText), h("input", { key: '56eac2b3bc40e0feccd75bcb3f037cee8becb90d', 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: '7a342672e1066d4d12a867badbcb2d30dab76694', 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.30.1-pre.6f8efc1feb".VERSION,
7
+ version: "3.30.1-pre.7d5a246bc8".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}
@@ -25,7 +25,7 @@ const AtomicTabButton = /*@__PURE__*/ proxyCustomElement(class AtomicTabButton e
25
25
  return this.active ? '' : 'text-neutral-dark hover:text-primary-light';
26
26
  }
27
27
  render() {
28
- return (h(Host, { key: '8d718369b2efd1138ba68926b59b76f8c720ab93', role: "listitem", class: `${this.activeTabClass}`, "aria-current": this.active ? 'true' : 'false', "aria-label": 'tab for ' + this.label, part: 'button-container' + (this.active ? '-active' : '') }, h(Button, { key: 'c533d904d5e9189c7dabca041bd11fbc4c4cee43', class: `w-full truncate px-2 pb-1 text-xl sm:px-6 ${this.activeTabTextClass}`, part: 'tab-button' + (this.active ? '-active' : ''), onClick: this.select, style: "text-transparent" }, this.label)));
28
+ return (h(Host, { key: '54fada7b3513603138ccbacbcb02ba538fef10b0', role: "listitem", class: `${this.activeTabClass}`, "aria-current": this.active ? 'true' : 'false', "aria-label": 'tab for ' + this.label, part: 'button-container' + (this.active ? '-active' : '') }, h(Button, { key: '8b8ea4b2a6b70e6bd875dfd7450751828ef1076a', class: `w-full truncate px-2 pb-1 text-xl sm:px-6 ${this.activeTabTextClass}`, part: 'tab-button' + (this.active ? '-active' : ''), onClick: this.select, style: "text-transparent" }, this.label)));
29
29
  }
30
30
  static get style() { return AtomicTabButtonStyle0; }
31
31
  }, [0, "atomic-tab-button", {
@@ -144,7 +144,7 @@ const TabPopover = /*@__PURE__*/ proxyCustomElement(class TabPopover extends HTM
144
144
  this.popperInstance?.forceUpdate();
145
145
  }
146
146
  render() {
147
- return (h(Host, { key: 'daad6e94d79db5e2592dff929e461372fa854e05', onFocusout: (event) => this.closePopoverOnFocusOut(event), class: this.show ? '' : 'visibility-hidden', "aria-hidden": !this.show }, this.renderPopover(), this.isOpen && this.renderBackdrop()));
147
+ return (h(Host, { key: '5fed79028e682c16d9035ffb3a064951432568f9', onFocusout: (event) => this.closePopoverOnFocusOut(event), class: this.show ? '' : 'visibility-hidden', "aria-hidden": !this.show }, this.renderPopover(), this.isOpen && this.renderBackdrop()));
148
148
  }
149
149
  get host() { return this; }
150
150
  static get style() { return AtomicTabPopoverStyle0; }