@empathyco/x-components 7.2.1 → 7.2.3

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 (597) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/core/index.js +3 -3
  3. package/docs/API-reference/api/x-adapter-platform.browseendpointadapter.md +13 -0
  4. package/docs/API-reference/api/x-adapter-platform.browserequestmapper.md +13 -0
  5. package/docs/API-reference/api/x-adapter-platform.browserequestschema.md +13 -0
  6. package/docs/API-reference/api/x-adapter-platform.browseresponsemapper.md +13 -0
  7. package/docs/API-reference/api/x-adapter-platform.browseresponseschema.md +13 -0
  8. package/docs/API-reference/api/x-adapter-platform.md +55 -0
  9. package/docs/API-reference/api/x-types.browsablerequest.browsefield.md +11 -0
  10. package/docs/API-reference/api/x-types.browsablerequest.browsevalue.md +11 -0
  11. package/docs/API-reference/api/x-types.browsablerequest.md +73 -0
  12. package/docs/API-reference/api/x-types.browserequest.md +15 -0
  13. package/docs/API-reference/api/x-types.browseresponse.banners.md +11 -0
  14. package/docs/API-reference/api/x-types.browseresponse.browsetagging.md +11 -0
  15. package/docs/API-reference/api/x-types.browseresponse.displaybrowsetagging.md +11 -0
  16. package/docs/API-reference/api/x-types.browseresponse.facets.md +11 -0
  17. package/docs/API-reference/api/x-types.browseresponse.md +187 -0
  18. package/docs/API-reference/api/x-types.browseresponse.promoteds.md +11 -0
  19. package/docs/API-reference/api/x-types.browseresponse.results.md +11 -0
  20. package/docs/API-reference/api/x-types.browseresponse.stats.md +11 -0
  21. package/docs/API-reference/api/x-types.browseresponse.totalresults.md +11 -0
  22. package/docs/API-reference/api/x-types.md +33 -0
  23. package/js/components/animations/{animate-clip-path.vue2.js → animate-clip-path2.vue.js} +1 -1
  24. package/js/components/animations/animate-clip-path2.vue.js.map +1 -0
  25. package/js/components/animations/animate-clip-path3.vue.js +7 -0
  26. package/js/components/animations/animate-clip-path3.vue.js.map +1 -0
  27. package/js/components/animations/{animate-scale.vue2.js → animate-scale2.vue.js} +1 -1
  28. package/js/components/animations/animate-scale2.vue.js.map +1 -0
  29. package/js/components/animations/{animate-scale.vue3.js → animate-scale3.vue.js} +2 -2
  30. package/js/components/animations/animate-scale3.vue.js.map +1 -0
  31. package/js/components/animations/{animate-translate.vue2.js → animate-translate2.vue.js} +1 -1
  32. package/js/components/animations/animate-translate2.vue.js.map +1 -0
  33. package/js/components/animations/animate-translate3.vue.js +7 -0
  34. package/js/components/animations/animate-translate3.vue.js.map +1 -0
  35. package/js/components/animations/animate-width.vue.js +2 -2
  36. package/js/components/animations/{animate-width.vue2.js → animate-width2.vue.js} +1 -1
  37. package/js/components/animations/{animate-width.vue2.js.map → animate-width2.vue.js.map} +1 -1
  38. package/js/components/animations/{animate-width.vue3.js → animate-width3.vue.js} +1 -1
  39. package/js/components/animations/animate-width3.vue.js.map +1 -0
  40. package/js/components/animations/change-height.vue.js +2 -2
  41. package/js/components/animations/{change-height.vue2.js → change-height2.vue.js} +1 -1
  42. package/js/components/animations/{change-height.vue2.js.map → change-height2.vue.js.map} +1 -1
  43. package/js/components/animations/{change-height.vue3.js → change-height3.vue.js} +1 -1
  44. package/js/components/animations/change-height3.vue.js.map +1 -0
  45. package/js/components/animations/collapse-height.vue.js +2 -2
  46. package/js/components/animations/{collapse-height.vue2.js → collapse-height2.vue.js} +1 -1
  47. package/js/components/animations/{collapse-height.vue2.js.map → collapse-height2.vue.js.map} +1 -1
  48. package/js/components/animations/{collapse-height.vue3.js → collapse-height3.vue.js} +1 -1
  49. package/js/components/animations/collapse-height3.vue.js.map +1 -0
  50. package/js/components/animations/collapse-width.vue.js +2 -2
  51. package/js/components/animations/{collapse-width.vue2.js → collapse-width2.vue.js} +1 -1
  52. package/js/components/animations/{collapse-width.vue2.js.map → collapse-width2.vue.js.map} +1 -1
  53. package/js/components/animations/{collapse-width.vue3.js → collapse-width3.vue.js} +1 -1
  54. package/js/components/animations/collapse-width3.vue.js.map +1 -0
  55. package/js/components/animations/cross-fade.vue.js +2 -2
  56. package/js/components/animations/{cross-fade.vue2.js → cross-fade2.vue.js} +1 -1
  57. package/js/components/animations/{cross-fade.vue2.js.map → cross-fade2.vue.js.map} +1 -1
  58. package/js/components/animations/{cross-fade.vue3.js → cross-fade3.vue.js} +1 -1
  59. package/js/components/animations/cross-fade3.vue.js.map +1 -0
  60. package/js/components/animations/fade-and-slide.vue.js +2 -2
  61. package/js/components/animations/{fade-and-slide.vue2.js → fade-and-slide2.vue.js} +1 -1
  62. package/js/components/animations/{fade-and-slide.vue2.js.map → fade-and-slide2.vue.js.map} +1 -1
  63. package/js/components/animations/{fade-and-slide.vue3.js → fade-and-slide3.vue.js} +1 -1
  64. package/js/components/animations/fade-and-slide3.vue.js.map +1 -0
  65. package/js/components/animations/fade.vue.js +2 -2
  66. package/js/components/animations/{fade.vue2.js → fade2.vue.js} +1 -1
  67. package/js/components/animations/{fade.vue2.js.map → fade2.vue.js.map} +1 -1
  68. package/js/components/animations/{fade.vue3.js → fade3.vue.js} +1 -1
  69. package/js/components/animations/fade3.vue.js.map +1 -0
  70. package/js/components/animations/{no-animation.vue2.js → no-animation2.vue.js} +1 -1
  71. package/js/components/animations/no-animation2.vue.js.map +1 -0
  72. package/js/components/animations/staggered-fade-and-slide.vue.js +2 -2
  73. package/js/components/animations/{staggered-fade-and-slide.vue2.js → staggered-fade-and-slide2.vue.js} +1 -1
  74. package/js/components/animations/{staggered-fade-and-slide.vue2.js.map → staggered-fade-and-slide2.vue.js.map} +1 -1
  75. package/js/components/animations/{staggered-fade-and-slide.vue3.js → staggered-fade-and-slide3.vue.js} +1 -1
  76. package/js/components/animations/staggered-fade-and-slide3.vue.js.map +1 -0
  77. package/js/components/auto-progress-bar.vue.js +2 -2
  78. package/js/components/{auto-progress-bar.vue2.js → auto-progress-bar2.vue.js} +1 -1
  79. package/js/components/{auto-progress-bar.vue2.js.map → auto-progress-bar2.vue.js.map} +1 -1
  80. package/js/components/{auto-progress-bar.vue3.js → auto-progress-bar3.vue.js} +1 -1
  81. package/js/components/auto-progress-bar3.vue.js.map +1 -0
  82. package/js/components/base-dropdown.vue.js +2 -2
  83. package/js/components/{base-dropdown.vue2.js → base-dropdown2.vue.js} +20 -20
  84. package/js/components/{base-dropdown.vue2.js.map → base-dropdown2.vue.js.map} +1 -1
  85. package/js/components/{base-dropdown.vue3.js → base-dropdown3.vue.js} +1 -1
  86. package/js/components/base-dropdown3.vue.js.map +1 -0
  87. package/js/components/base-event-button.vue.js +1 -1
  88. package/js/components/{base-event-button.vue2.js → base-event-button2.vue.js} +1 -1
  89. package/js/components/{base-event-button.vue2.js.map → base-event-button2.vue.js.map} +1 -1
  90. package/js/components/base-grid.vue.js +2 -2
  91. package/js/components/{base-grid.vue2.js → base-grid2.vue.js} +1 -1
  92. package/js/components/{base-grid.vue2.js.map → base-grid2.vue.js.map} +1 -1
  93. package/js/components/{base-grid.vue3.js → base-grid3.vue.js} +1 -1
  94. package/js/components/base-grid3.vue.js.map +1 -0
  95. package/js/components/base-keyboard-navigation.vue.js +1 -1
  96. package/js/components/{base-keyboard-navigation.vue2.js → base-keyboard-navigation2.vue.js} +1 -1
  97. package/js/components/{base-keyboard-navigation.vue2.js.map → base-keyboard-navigation2.vue.js.map} +1 -1
  98. package/js/components/base-rating.vue.js +2 -2
  99. package/js/components/{base-rating.vue2.js → base-rating2.vue.js} +1 -1
  100. package/js/components/{base-rating.vue2.js.map → base-rating2.vue.js.map} +1 -1
  101. package/js/components/{base-rating.vue3.js → base-rating3.vue.js} +1 -1
  102. package/js/components/base-rating3.vue.js.map +1 -0
  103. package/js/components/base-slider.vue.js +2 -2
  104. package/js/components/{base-slider.vue2.js → base-slider2.vue.js} +1 -1
  105. package/js/components/{base-slider.vue2.js.map → base-slider2.vue.js.map} +1 -1
  106. package/js/components/{base-slider.vue3.js → base-slider3.vue.js} +1 -1
  107. package/js/components/base-slider3.vue.js.map +1 -0
  108. package/js/components/base-switch.vue.js +2 -2
  109. package/js/components/{base-switch.vue2.js → base-switch2.vue.js} +1 -1
  110. package/js/components/{base-switch.vue2.js.map → base-switch2.vue.js.map} +1 -1
  111. package/js/components/{base-switch.vue3.js → base-switch3.vue.js} +1 -1
  112. package/js/components/base-switch3.vue.js.map +1 -0
  113. package/js/components/base-teleport.vue.js +1 -1
  114. package/js/components/{base-teleport.vue2.js → base-teleport2.vue.js} +1 -1
  115. package/js/components/{base-teleport.vue2.js.map → base-teleport2.vue.js.map} +1 -1
  116. package/js/components/base-variable-column-grid.vue.js +1 -1
  117. package/js/components/{base-variable-column-grid.vue2.js → base-variable-column-grid2.vue.js} +1 -1
  118. package/js/components/{base-variable-column-grid.vue2.js.map → base-variable-column-grid2.vue.js.map} +1 -1
  119. package/js/components/column-picker/base-column-picker-dropdown.vue.js +1 -1
  120. package/js/components/column-picker/{base-column-picker-dropdown.vue2.js → base-column-picker-dropdown2.vue.js} +1 -1
  121. package/js/components/column-picker/{base-column-picker-dropdown.vue2.js.map → base-column-picker-dropdown2.vue.js.map} +1 -1
  122. package/js/components/column-picker/base-column-picker-list.vue.js +1 -1
  123. package/js/components/column-picker/{base-column-picker-list.vue2.js → base-column-picker-list2.vue.js} +1 -1
  124. package/js/components/column-picker/{base-column-picker-list.vue2.js.map → base-column-picker-list2.vue.js.map} +1 -1
  125. package/js/components/currency/base-currency.vue.js +1 -1
  126. package/js/components/currency/{base-currency.vue2.js → base-currency2.vue.js} +1 -1
  127. package/js/components/currency/{base-currency.vue2.js.map → base-currency2.vue.js.map} +1 -1
  128. package/js/components/{display-click-provider.vue2.js → display-click-provider2.vue.js} +1 -1
  129. package/js/components/display-click-provider2.vue.js.map +1 -0
  130. package/js/components/{display-emitter.vue2.js → display-emitter2.vue.js} +1 -1
  131. package/js/components/display-emitter2.vue.js.map +1 -0
  132. package/js/components/filters/labels/{base-price-filter-label.vue2.js → base-price-filter-label2.vue.js} +1 -1
  133. package/js/components/filters/labels/base-price-filter-label2.vue.js.map +1 -0
  134. package/js/components/filters/labels/base-rating-filter-label.vue.js +1 -1
  135. package/js/components/filters/labels/{base-rating-filter-label.vue2.js → base-rating-filter-label2.vue.js} +1 -1
  136. package/js/components/filters/labels/{base-rating-filter-label.vue2.js.map → base-rating-filter-label2.vue.js.map} +1 -1
  137. package/js/components/{global-x-bus.vue2.js → global-x-bus2.vue.js} +1 -1
  138. package/js/components/global-x-bus2.vue.js.map +1 -0
  139. package/js/components/highlight.vue.js +1 -1
  140. package/js/components/{highlight.vue2.js → highlight2.vue.js} +1 -1
  141. package/js/components/{highlight.vue2.js.map → highlight2.vue.js.map} +1 -1
  142. package/js/components/items-list.vue.js +1 -1
  143. package/js/components/{items-list.vue2.js → items-list2.vue.js} +1 -1
  144. package/js/components/{items-list.vue2.js.map → items-list2.vue.js.map} +1 -1
  145. package/js/components/{location-provider.vue2.js → location-provider2.vue.js} +1 -1
  146. package/js/components/location-provider2.vue.js.map +1 -0
  147. package/js/components/message.vue.js +17 -17
  148. package/js/components/{message.vue2.js → message2.vue.js} +1 -1
  149. package/js/components/message2.vue.js.map +1 -0
  150. package/js/components/modals/base-events-modal-close.vue.js +1 -1
  151. package/js/components/modals/{base-events-modal-close.vue2.js → base-events-modal-close2.vue.js} +1 -1
  152. package/js/components/modals/{base-events-modal-close.vue2.js.map → base-events-modal-close2.vue.js.map} +1 -1
  153. package/js/components/modals/base-events-modal-open.vue.js +1 -1
  154. package/js/components/modals/{base-events-modal-open.vue2.js → base-events-modal-open2.vue.js} +1 -1
  155. package/js/components/modals/{base-events-modal-open.vue2.js.map → base-events-modal-open2.vue.js.map} +1 -1
  156. package/js/components/modals/base-events-modal.vue.js +1 -1
  157. package/js/components/modals/{base-events-modal.vue2.js → base-events-modal2.vue.js} +1 -1
  158. package/js/components/modals/{base-events-modal.vue2.js.map → base-events-modal2.vue.js.map} +1 -1
  159. package/js/components/modals/base-id-modal-close.vue.js +1 -1
  160. package/js/components/modals/{base-id-modal-close.vue2.js → base-id-modal-close2.vue.js} +1 -1
  161. package/js/components/modals/{base-id-modal-close.vue2.js.map → base-id-modal-close2.vue.js.map} +1 -1
  162. package/js/components/modals/base-id-modal-open.vue.js +1 -1
  163. package/js/components/modals/{base-id-modal-open.vue2.js → base-id-modal-open2.vue.js} +1 -1
  164. package/js/components/modals/{base-id-modal-open.vue2.js.map → base-id-modal-open2.vue.js.map} +1 -1
  165. package/js/components/modals/base-id-modal.vue.js +1 -1
  166. package/js/components/modals/{base-id-modal.vue2.js → base-id-modal2.vue.js} +1 -1
  167. package/js/components/modals/{base-id-modal.vue2.js.map → base-id-modal2.vue.js.map} +1 -1
  168. package/js/components/modals/base-modal.vue.js +2 -2
  169. package/js/components/modals/{base-modal.vue2.js → base-modal2.vue.js} +18 -18
  170. package/js/components/modals/{base-modal.vue2.js.map → base-modal2.vue.js.map} +1 -1
  171. package/js/components/modals/{base-modal.vue3.js → base-modal3.vue.js} +1 -1
  172. package/js/components/modals/base-modal3.vue.js.map +1 -0
  173. package/js/components/modals/close-main-modal.vue.js +1 -1
  174. package/js/components/modals/{close-main-modal.vue2.js → close-main-modal2.vue.js} +1 -1
  175. package/js/components/modals/{close-main-modal.vue2.js.map → close-main-modal2.vue.js.map} +1 -1
  176. package/js/components/modals/main-modal.vue.js +1 -1
  177. package/js/components/modals/{main-modal.vue2.js → main-modal2.vue.js} +1 -1
  178. package/js/components/modals/{main-modal.vue2.js.map → main-modal2.vue.js.map} +1 -1
  179. package/js/components/modals/open-main-modal.vue.js +1 -1
  180. package/js/components/modals/{open-main-modal.vue2.js → open-main-modal2.vue.js} +1 -1
  181. package/js/components/modals/{open-main-modal.vue2.js.map → open-main-modal2.vue.js.map} +1 -1
  182. package/js/components/page-loader-button.vue.js +2 -2
  183. package/js/components/{page-loader-button.vue2.js → page-loader-button2.vue.js} +1 -1
  184. package/js/components/{page-loader-button.vue2.js.map → page-loader-button2.vue.js.map} +1 -1
  185. package/js/components/{page-loader-button.vue3.js → page-loader-button3.vue.js} +1 -1
  186. package/js/components/page-loader-button3.vue.js.map +1 -0
  187. package/js/components/page-selector.vue.js +2 -2
  188. package/js/components/{page-selector.vue2.js → page-selector2.vue.js} +1 -1
  189. package/js/components/{page-selector.vue2.js.map → page-selector2.vue.js.map} +1 -1
  190. package/js/components/{page-selector.vue3.js → page-selector3.vue.js} +1 -1
  191. package/js/components/page-selector3.vue.js.map +1 -0
  192. package/js/components/panels/base-header-toggle-panel.vue.js +2 -2
  193. package/js/components/panels/{base-header-toggle-panel.vue2.js → base-header-toggle-panel2.vue.js} +20 -20
  194. package/js/components/panels/{base-header-toggle-panel.vue2.js.map → base-header-toggle-panel2.vue.js.map} +1 -1
  195. package/js/components/panels/{base-header-toggle-panel.vue3.js → base-header-toggle-panel3.vue.js} +1 -1
  196. package/js/components/panels/base-header-toggle-panel3.vue.js.map +1 -0
  197. package/js/components/panels/base-id-toggle-panel-button.vue.js +1 -1
  198. package/js/components/panels/{base-id-toggle-panel-button.vue2.js → base-id-toggle-panel-button2.vue.js} +1 -1
  199. package/js/components/panels/{base-id-toggle-panel-button.vue2.js.map → base-id-toggle-panel-button2.vue.js.map} +1 -1
  200. package/js/components/panels/base-id-toggle-panel.vue.js +1 -1
  201. package/js/components/panels/{base-id-toggle-panel.vue2.js → base-id-toggle-panel2.vue.js} +20 -20
  202. package/js/components/panels/{base-id-toggle-panel.vue2.js.map → base-id-toggle-panel2.vue.js.map} +1 -1
  203. package/js/components/panels/base-tabs-panel.vue.js +2 -2
  204. package/js/components/panels/{base-tabs-panel.vue2.js → base-tabs-panel2.vue.js} +20 -20
  205. package/js/components/panels/{base-tabs-panel.vue2.js.map → base-tabs-panel2.vue.js.map} +1 -1
  206. package/js/components/panels/{base-tabs-panel.vue3.js → base-tabs-panel3.vue.js} +1 -1
  207. package/js/components/panels/base-tabs-panel3.vue.js.map +1 -0
  208. package/js/components/panels/base-toggle-panel.vue.js +1 -1
  209. package/js/components/panels/{base-toggle-panel.vue2.js → base-toggle-panel2.vue.js} +1 -1
  210. package/js/components/panels/{base-toggle-panel.vue2.js.map → base-toggle-panel2.vue.js.map} +1 -1
  211. package/js/components/result/base-result-add-to-cart.vue.js +1 -1
  212. package/js/components/result/{base-result-add-to-cart.vue2.js → base-result-add-to-cart2.vue.js} +1 -1
  213. package/js/components/result/{base-result-add-to-cart.vue2.js.map → base-result-add-to-cart2.vue.js.map} +1 -1
  214. package/js/components/result/base-result-current-price.vue.js +1 -1
  215. package/js/components/result/{base-result-current-price.vue2.js → base-result-current-price2.vue.js} +1 -1
  216. package/js/components/result/{base-result-current-price.vue2.js.map → base-result-current-price2.vue.js.map} +1 -1
  217. package/js/components/result/base-result-image.vue.js +2 -2
  218. package/js/components/result/{base-result-image.vue2.js → base-result-image2.vue.js} +20 -20
  219. package/js/components/result/{base-result-image.vue2.js.map → base-result-image2.vue.js.map} +1 -1
  220. package/js/components/result/{base-result-image.vue3.js → base-result-image3.vue.js} +1 -1
  221. package/js/components/result/base-result-image3.vue.js.map +1 -0
  222. package/js/components/result/base-result-link.vue.js +2 -2
  223. package/js/components/result/{base-result-link.vue2.js → base-result-link2.vue.js} +1 -1
  224. package/js/components/result/{base-result-link.vue2.js.map → base-result-link2.vue.js.map} +1 -1
  225. package/js/components/result/{base-result-link.vue3.js → base-result-link3.vue.js} +1 -1
  226. package/js/components/result/base-result-link3.vue.js.map +1 -0
  227. package/js/components/result/base-result-previous-price.vue.js +1 -1
  228. package/js/components/result/{base-result-previous-price.vue2.js → base-result-previous-price2.vue.js} +1 -1
  229. package/js/components/result/{base-result-previous-price.vue2.js.map → base-result-previous-price2.vue.js.map} +1 -1
  230. package/js/components/result/base-result-rating.vue.js +2 -2
  231. package/js/components/result/{base-result-rating.vue2.js → base-result-rating2.vue.js} +1 -1
  232. package/js/components/result/{base-result-rating.vue2.js.map → base-result-rating2.vue.js.map} +1 -1
  233. package/js/components/result/{base-result-rating.vue3.js → base-result-rating3.vue.js} +1 -1
  234. package/js/components/result/base-result-rating3.vue.js.map +1 -0
  235. package/js/components/result/result-variant-selector.vue.js +2 -2
  236. package/js/components/result/{result-variant-selector.vue2.js → result-variant-selector2.vue.js} +1 -1
  237. package/js/components/result/{result-variant-selector.vue2.js.map → result-variant-selector2.vue.js.map} +1 -1
  238. package/js/components/result/{result-variant-selector.vue3.js → result-variant-selector3.vue.js} +1 -1
  239. package/js/components/result/result-variant-selector3.vue.js.map +1 -0
  240. package/js/components/result/{result-variants-provider.vue2.js → result-variants-provider2.vue.js} +1 -1
  241. package/js/components/result/result-variants-provider2.vue.js.map +1 -0
  242. package/js/components/scroll/base-scroll.vue.js +1 -1
  243. package/js/components/scroll/{base-scroll.vue2.js → base-scroll2.vue.js} +1 -1
  244. package/js/components/scroll/{base-scroll.vue2.js.map → base-scroll2.vue.js.map} +1 -1
  245. package/js/components/sliding-panel.vue.js +2 -2
  246. package/js/components/{sliding-panel.vue2.js → sliding-panel2.vue.js} +1 -1
  247. package/js/components/{sliding-panel.vue2.js.map → sliding-panel2.vue.js.map} +1 -1
  248. package/js/components/{sliding-panel.vue3.js → sliding-panel3.vue.js} +1 -1
  249. package/js/components/sliding-panel3.vue.js.map +1 -0
  250. package/js/components/snippet-callbacks.vue.js +1 -1
  251. package/js/components/{snippet-callbacks.vue2.js → snippet-callbacks2.vue.js} +1 -1
  252. package/js/components/{snippet-callbacks.vue2.js.map → snippet-callbacks2.vue.js.map} +1 -1
  253. package/js/components/suggestions/base-suggestion.vue.js +1 -1
  254. package/js/components/suggestions/{base-suggestion.vue2.js → base-suggestion2.vue.js} +1 -1
  255. package/js/components/suggestions/{base-suggestion.vue2.js.map → base-suggestion2.vue.js.map} +1 -1
  256. package/js/components/suggestions/base-suggestions.vue.js +2 -2
  257. package/js/components/suggestions/{base-suggestions.vue2.js → base-suggestions2.vue.js} +1 -1
  258. package/js/components/suggestions/{base-suggestions.vue2.js.map → base-suggestions2.vue.js.map} +1 -1
  259. package/js/components/suggestions/{base-suggestions.vue3.js → base-suggestions3.vue.js} +1 -1
  260. package/js/components/suggestions/base-suggestions3.vue.js.map +1 -0
  261. package/js/index.js +3 -3
  262. package/js/x-modules/ai/components/ai-carousel.vue.js +2 -2
  263. package/js/x-modules/ai/components/{ai-carousel.vue2.js → ai-carousel2.vue.js} +75 -75
  264. package/js/x-modules/ai/components/{ai-carousel.vue2.js.map → ai-carousel2.vue.js.map} +1 -1
  265. package/js/x-modules/ai/components/{ai-carousel.vue3.js → ai-carousel3.vue.js} +1 -1
  266. package/js/x-modules/ai/components/ai-carousel3.vue.js.map +1 -0
  267. package/js/x-modules/ai/components/ai-grouped-carousel.vue.js +1 -1
  268. package/js/x-modules/ai/components/ai-grouped-carousel2.vue.js +123 -0
  269. package/js/x-modules/ai/components/{ai-grouped-carousel.vue2.js.map → ai-grouped-carousel2.vue.js.map} +1 -1
  270. package/js/x-modules/device/components/device-detector.vue.js +1 -1
  271. package/js/x-modules/device/components/{device-detector.vue2.js → device-detector2.vue.js} +1 -1
  272. package/js/x-modules/device/components/{device-detector.vue2.js.map → device-detector2.vue.js.map} +1 -1
  273. package/js/x-modules/empathize/components/empathize.vue.js +1 -1
  274. package/js/x-modules/empathize/components/{empathize.vue2.js → empathize2.vue.js} +82 -82
  275. package/js/x-modules/empathize/components/{empathize.vue2.js.map → empathize2.vue.js.map} +1 -1
  276. package/js/x-modules/experience-controls/components/{experience-controls.vue2.js → experience-controls2.vue.js} +1 -1
  277. package/js/x-modules/experience-controls/components/experience-controls2.vue.js.map +1 -0
  278. package/js/x-modules/extra-params/components/{extra-params.vue2.js → extra-params2.vue.js} +1 -1
  279. package/js/x-modules/{facets/components/facets/facets.vue3.js.map → extra-params/components/extra-params2.vue.js.map} +1 -1
  280. package/js/x-modules/extra-params/components/{renderless-extra-param.vue2.js → renderless-extra-param2.vue.js} +1 -1
  281. package/js/x-modules/extra-params/components/renderless-extra-param2.vue.js.map +1 -0
  282. package/js/x-modules/extra-params/components/snippet-config-extra-params.vue.js +1 -1
  283. package/js/x-modules/extra-params/components/{snippet-config-extra-params.vue2.js → snippet-config-extra-params2.vue.js} +1 -1
  284. package/js/x-modules/extra-params/components/{snippet-config-extra-params.vue2.js.map → snippet-config-extra-params2.vue.js.map} +1 -1
  285. package/js/x-modules/facets/components/clear-filters.vue.js +1 -1
  286. package/js/x-modules/facets/components/{clear-filters.vue2.js → clear-filters2.vue.js} +1 -1
  287. package/js/x-modules/facets/components/{clear-filters.vue2.js.map → clear-filters2.vue.js.map} +1 -1
  288. package/js/x-modules/facets/components/facets/facets-provider.vue.js +2 -2
  289. package/js/x-modules/facets/components/facets/{facets-provider.vue2.js → facets-provider2.vue.js} +1 -1
  290. package/js/x-modules/facets/components/facets/{facets-provider.vue2.js.map → facets-provider2.vue.js.map} +1 -1
  291. package/js/x-modules/facets/components/facets/{facets-provider.vue3.js → facets-provider3.vue.js} +1 -1
  292. package/js/x-modules/facets/components/facets/facets-provider3.vue.js.map +1 -0
  293. package/js/x-modules/facets/components/facets/facets.vue.js +2 -2
  294. package/js/x-modules/facets/components/facets/{facets.vue2.js → facets2.vue.js} +1 -1
  295. package/js/x-modules/facets/components/facets/{facets.vue2.js.map → facets2.vue.js.map} +1 -1
  296. package/js/x-modules/facets/components/facets/{facets.vue3.js → facets3.vue.js} +1 -1
  297. package/js/x-modules/facets/components/facets/facets3.vue.js.map +1 -0
  298. package/js/x-modules/facets/components/filters/all-filter.vue.js +1 -1
  299. package/js/x-modules/facets/components/filters/{all-filter.vue2.js → all-filter2.vue.js} +1 -1
  300. package/js/x-modules/facets/components/filters/{all-filter.vue2.js.map → all-filter2.vue.js.map} +1 -1
  301. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js +2 -2
  302. package/js/x-modules/facets/components/filters/{editable-number-range-filter.vue2.js → editable-number-range-filter2.vue.js} +1 -1
  303. package/js/x-modules/facets/components/filters/{editable-number-range-filter.vue2.js.map → editable-number-range-filter2.vue.js.map} +1 -1
  304. package/js/x-modules/facets/components/filters/{editable-number-range-filter.vue3.js → editable-number-range-filter3.vue.js} +1 -1
  305. package/js/x-modules/facets/components/filters/editable-number-range-filter3.vue.js.map +1 -0
  306. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js +1 -1
  307. package/js/x-modules/facets/components/filters/{hierarchical-filter.vue2.js → hierarchical-filter2.vue.js} +1 -1
  308. package/js/x-modules/facets/components/filters/{hierarchical-filter.vue2.js.map → hierarchical-filter2.vue.js.map} +1 -1
  309. package/js/x-modules/facets/components/filters/number-range-filter.vue.js +1 -1
  310. package/js/x-modules/facets/components/filters/{number-range-filter.vue2.js → number-range-filter2.vue.js} +1 -1
  311. package/js/x-modules/facets/components/filters/{number-range-filter.vue2.js.map → number-range-filter2.vue.js.map} +1 -1
  312. package/js/x-modules/facets/components/filters/{renderless-filter.vue2.js → renderless-filter2.vue.js} +1 -1
  313. package/js/x-modules/facets/components/filters/renderless-filter2.vue.js.map +1 -0
  314. package/js/x-modules/facets/components/filters/simple-filter.vue.js +1 -1
  315. package/js/x-modules/facets/components/filters/{simple-filter.vue2.js → simple-filter2.vue.js} +1 -1
  316. package/js/x-modules/facets/components/filters/{simple-filter.vue2.js.map → simple-filter2.vue.js.map} +1 -1
  317. package/js/x-modules/facets/components/lists/{exclude-filters-with-no-results.vue2.js → exclude-filters-with-no-results2.vue.js} +1 -1
  318. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results2.vue.js.map +1 -0
  319. package/js/x-modules/facets/components/lists/filters-list.vue.js +2 -2
  320. package/js/x-modules/facets/components/lists/{filters-list.vue2.js → filters-list2.vue.js} +1 -1
  321. package/js/x-modules/facets/components/lists/{filters-list.vue2.js.map → filters-list2.vue.js.map} +1 -1
  322. package/js/x-modules/facets/components/lists/{filters-list.vue3.js → filters-list3.vue.js} +1 -1
  323. package/js/x-modules/facets/components/lists/filters-list3.vue.js.map +1 -0
  324. package/js/x-modules/facets/components/lists/filters-search.vue.js +2 -2
  325. package/js/x-modules/facets/components/lists/{filters-search.vue2.js → filters-search2.vue.js} +1 -1
  326. package/js/x-modules/facets/components/lists/{filters-search.vue2.js.map → filters-search2.vue.js.map} +1 -1
  327. package/js/x-modules/facets/components/lists/{filters-search.vue3.js → filters-search3.vue.js} +1 -1
  328. package/js/x-modules/facets/components/lists/filters-search3.vue.js.map +1 -0
  329. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js +1 -1
  330. package/js/x-modules/facets/components/lists/{selected-filters-list.vue2.js → selected-filters-list2.vue.js} +1 -1
  331. package/js/x-modules/facets/components/lists/{selected-filters-list.vue2.js.map → selected-filters-list2.vue.js.map} +1 -1
  332. package/js/x-modules/facets/components/lists/{selected-filters.vue2.js → selected-filters2.vue.js} +1 -1
  333. package/js/x-modules/facets/components/lists/selected-filters2.vue.js.map +1 -0
  334. package/js/x-modules/facets/components/lists/sliced-filters.vue.js +1 -1
  335. package/js/x-modules/facets/components/lists/{sliced-filters.vue2.js → sliced-filters2.vue.js} +1 -1
  336. package/js/x-modules/facets/components/lists/{sliced-filters.vue2.js.map → sliced-filters2.vue.js.map} +1 -1
  337. package/js/x-modules/facets/components/lists/{sorted-filters.vue2.js → sorted-filters2.vue.js} +1 -1
  338. package/js/x-modules/facets/components/lists/sorted-filters2.vue.js.map +1 -0
  339. package/js/x-modules/facets/components/{preselected-filters.vue2.js → preselected-filters2.vue.js} +1 -1
  340. package/js/x-modules/facets/components/preselected-filters2.vue.js.map +1 -0
  341. package/js/x-modules/history-queries/components/clear-history-queries.vue.js +1 -1
  342. package/js/x-modules/history-queries/components/{clear-history-queries.vue2.js → clear-history-queries2.vue.js} +1 -1
  343. package/js/x-modules/history-queries/components/{clear-history-queries.vue2.js.map → clear-history-queries2.vue.js.map} +1 -1
  344. package/js/x-modules/history-queries/components/history-queries-switch.vue.js +1 -1
  345. package/js/x-modules/history-queries/components/{history-queries-switch.vue2.js → history-queries-switch2.vue.js} +1 -1
  346. package/js/x-modules/history-queries/components/{history-queries-switch.vue2.js.map → history-queries-switch2.vue.js.map} +1 -1
  347. package/js/x-modules/history-queries/components/history-queries.vue.js +1 -1
  348. package/js/x-modules/history-queries/components/{history-queries.vue2.js → history-queries2.vue.js} +1 -1
  349. package/js/x-modules/history-queries/components/{history-queries.vue2.js.map → history-queries2.vue.js.map} +1 -1
  350. package/js/x-modules/history-queries/components/history-query.vue.js +1 -1
  351. package/js/x-modules/history-queries/components/{history-query.vue2.js → history-query2.vue.js} +1 -1
  352. package/js/x-modules/history-queries/components/{history-query.vue2.js.map → history-query2.vue.js.map} +1 -1
  353. package/js/x-modules/history-queries/components/my-history.vue.js +2 -2
  354. package/js/x-modules/history-queries/components/{my-history.vue2.js → my-history2.vue.js} +1 -1
  355. package/js/x-modules/history-queries/components/{my-history.vue2.js.map → my-history2.vue.js.map} +1 -1
  356. package/js/x-modules/history-queries/components/{my-history.vue3.js → my-history3.vue.js} +1 -1
  357. package/js/x-modules/history-queries/components/my-history3.vue.js.map +1 -0
  358. package/js/x-modules/history-queries/components/remove-history-query.vue.js +1 -1
  359. package/js/x-modules/history-queries/components/{remove-history-query.vue2.js → remove-history-query2.vue.js} +1 -1
  360. package/js/x-modules/history-queries/components/{remove-history-query.vue2.js.map → remove-history-query2.vue.js.map} +1 -1
  361. package/js/x-modules/identifier-results/components/identifier-result.vue.js +1 -1
  362. package/js/x-modules/identifier-results/components/{identifier-result.vue2.js → identifier-result2.vue.js} +1 -1
  363. package/js/x-modules/identifier-results/components/{identifier-result.vue2.js.map → identifier-result2.vue.js.map} +1 -1
  364. package/js/x-modules/identifier-results/components/identifier-results.vue.js +2 -2
  365. package/js/x-modules/identifier-results/components/{identifier-results.vue2.js → identifier-results2.vue.js} +1 -1
  366. package/js/x-modules/identifier-results/components/{identifier-results.vue2.js.map → identifier-results2.vue.js.map} +1 -1
  367. package/js/x-modules/identifier-results/components/{identifier-results.vue3.js → identifier-results3.vue.js} +1 -1
  368. package/js/x-modules/identifier-results/components/identifier-results3.vue.js.map +1 -0
  369. package/js/x-modules/next-queries/components/{next-queries-list.vue2.js → next-queries-list2.vue.js} +1 -1
  370. package/js/x-modules/next-queries/components/next-queries-list2.vue.js.map +1 -0
  371. package/js/x-modules/next-queries/components/next-queries.vue.js +1 -1
  372. package/js/x-modules/next-queries/components/{next-queries.vue2.js → next-queries2.vue.js} +1 -1
  373. package/js/x-modules/next-queries/components/{next-queries.vue2.js.map → next-queries2.vue.js.map} +1 -1
  374. package/js/x-modules/next-queries/components/next-query-preview.vue.js +1 -1
  375. package/js/x-modules/next-queries/components/{next-query-preview.vue2.js → next-query-preview2.vue.js} +1 -1
  376. package/js/x-modules/next-queries/components/{next-query-preview.vue2.js.map → next-query-preview2.vue.js.map} +1 -1
  377. package/js/x-modules/next-queries/components/next-query.vue.js +1 -1
  378. package/js/x-modules/next-queries/components/{next-query.vue2.js → next-query2.vue.js} +1 -1
  379. package/js/x-modules/next-queries/components/{next-query.vue2.js.map → next-query2.vue.js.map} +1 -1
  380. package/js/x-modules/popular-searches/components/popular-search.vue.js +1 -1
  381. package/js/x-modules/popular-searches/components/{popular-search.vue2.js → popular-search2.vue.js} +1 -1
  382. package/js/x-modules/popular-searches/components/{popular-search.vue2.js.map → popular-search2.vue.js.map} +1 -1
  383. package/js/x-modules/popular-searches/components/popular-searches.vue.js +1 -1
  384. package/js/x-modules/popular-searches/components/{popular-searches.vue2.js → popular-searches2.vue.js} +1 -1
  385. package/js/x-modules/popular-searches/components/{popular-searches.vue2.js.map → popular-searches2.vue.js.map} +1 -1
  386. package/js/x-modules/queries-preview/components/query-preview-button.vue.js +1 -1
  387. package/js/x-modules/queries-preview/components/query-preview-button2.vue.js +165 -0
  388. package/js/x-modules/queries-preview/components/{query-preview-button.vue2.js.map → query-preview-button2.vue.js.map} +1 -1
  389. package/js/x-modules/queries-preview/components/query-preview-list.vue.js +2 -2
  390. package/js/x-modules/queries-preview/components/{query-preview-list.vue2.js → query-preview-list2.vue.js} +1 -1
  391. package/js/x-modules/queries-preview/components/{query-preview-list.vue2.js.map → query-preview-list2.vue.js.map} +1 -1
  392. package/js/x-modules/queries-preview/components/{query-preview-list.vue3.js → query-preview-list3.vue.js} +1 -1
  393. package/js/x-modules/queries-preview/components/query-preview-list3.vue.js.map +1 -0
  394. package/js/x-modules/queries-preview/components/query-preview.vue.js +1 -1
  395. package/js/x-modules/queries-preview/components/{query-preview.vue2.js → query-preview2.vue.js} +82 -82
  396. package/js/x-modules/queries-preview/components/{query-preview.vue2.js.map → query-preview2.vue.js.map} +1 -1
  397. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js +1 -1
  398. package/js/x-modules/query-suggestions/components/{query-suggestion.vue2.js → query-suggestion2.vue.js} +1 -1
  399. package/js/x-modules/query-suggestions/components/{query-suggestion.vue2.js.map → query-suggestion2.vue.js.map} +1 -1
  400. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js +1 -1
  401. package/js/x-modules/query-suggestions/components/{query-suggestions.vue2.js → query-suggestions2.vue.js} +1 -1
  402. package/js/x-modules/query-suggestions/components/{query-suggestions.vue2.js.map → query-suggestions2.vue.js.map} +1 -1
  403. package/js/x-modules/recommendations/components/recommendations.vue.js +2 -2
  404. package/js/x-modules/recommendations/components/{recommendations.vue2.js → recommendations2.vue.js} +1 -1
  405. package/js/x-modules/recommendations/components/{recommendations.vue2.js.map → recommendations2.vue.js.map} +1 -1
  406. package/js/x-modules/recommendations/components/{recommendations.vue3.js → recommendations3.vue.js} +1 -1
  407. package/js/x-modules/recommendations/components/recommendations3.vue.js.map +1 -0
  408. package/js/x-modules/related-prompts/components/related-prompt.vue.js +2 -2
  409. package/js/x-modules/related-prompts/components/{related-prompt.vue2.js → related-prompt2.vue.js} +1 -1
  410. package/js/x-modules/related-prompts/components/{related-prompt.vue2.js.map → related-prompt2.vue.js.map} +1 -1
  411. package/js/x-modules/related-prompts/components/{related-prompt.vue3.js → related-prompt3.vue.js} +1 -1
  412. package/js/x-modules/related-prompts/components/related-prompt3.vue.js.map +1 -0
  413. package/js/x-modules/related-prompts/components/{related-prompts-list.vue2.js → related-prompts-list2.vue.js} +1 -1
  414. package/js/x-modules/related-prompts/components/related-prompts-list2.vue.js.map +1 -0
  415. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue.js +2 -2
  416. package/js/x-modules/related-prompts/components/{related-prompts-tag-list.vue2.js → related-prompts-tag-list2.vue.js} +1 -1
  417. package/js/x-modules/related-prompts/components/{related-prompts-tag-list.vue2.js.map → related-prompts-tag-list2.vue.js.map} +1 -1
  418. package/js/x-modules/related-prompts/components/{related-prompts-tag-list.vue3.js → related-prompts-tag-list3.vue.js} +1 -1
  419. package/js/x-modules/related-prompts/components/related-prompts-tag-list3.vue.js.map +1 -0
  420. package/js/x-modules/related-tags/components/related-tag.vue.js +1 -1
  421. package/js/x-modules/related-tags/components/{related-tag.vue2.js → related-tag2.vue.js} +1 -1
  422. package/js/x-modules/related-tags/components/{related-tag.vue2.js.map → related-tag2.vue.js.map} +1 -1
  423. package/js/x-modules/related-tags/components/related-tags.vue.js +2 -2
  424. package/js/x-modules/related-tags/components/{related-tags.vue2.js → related-tags2.vue.js} +1 -1
  425. package/js/x-modules/related-tags/components/{related-tags.vue2.js.map → related-tags2.vue.js.map} +1 -1
  426. package/js/x-modules/related-tags/components/{related-tags.vue3.js → related-tags3.vue.js} +1 -1
  427. package/js/x-modules/related-tags/components/related-tags3.vue.js.map +1 -0
  428. package/js/x-modules/scroll/components/main-scroll-item.vue.js +1 -1
  429. package/js/x-modules/scroll/components/{main-scroll-item.vue2.js → main-scroll-item2.vue.js} +1 -1
  430. package/js/x-modules/scroll/components/{main-scroll-item.vue2.js.map → main-scroll-item2.vue.js.map} +1 -1
  431. package/js/x-modules/scroll/components/{main-scroll.vue2.js → main-scroll2.vue.js} +1 -1
  432. package/js/x-modules/scroll/components/main-scroll2.vue.js.map +1 -0
  433. package/js/x-modules/scroll/components/scroll-to-top.vue.js +1 -1
  434. package/js/x-modules/scroll/components/{scroll-to-top.vue2.js → scroll-to-top2.vue.js} +81 -81
  435. package/js/x-modules/scroll/components/{scroll-to-top.vue2.js.map → scroll-to-top2.vue.js.map} +1 -1
  436. package/js/x-modules/scroll/components/scroll.vue.js +1 -1
  437. package/js/x-modules/scroll/components/{scroll.vue2.js → scroll2.vue.js} +1 -1
  438. package/js/x-modules/scroll/components/{scroll.vue2.js.map → scroll2.vue.js.map} +1 -1
  439. package/js/x-modules/search/components/banner.vue.js +2 -2
  440. package/js/x-modules/search/components/{banner.vue2.js → banner2.vue.js} +1 -1
  441. package/js/x-modules/search/components/{banner.vue2.js.map → banner2.vue.js.map} +1 -1
  442. package/js/x-modules/search/components/{banner.vue3.js → banner3.vue.js} +1 -1
  443. package/js/x-modules/search/components/banner3.vue.js.map +1 -0
  444. package/js/x-modules/search/components/{banners-list.vue2.js → banners-list2.vue.js} +1 -1
  445. package/js/x-modules/search/components/banners-list2.vue.js.map +1 -0
  446. package/js/x-modules/search/components/fallback-disclaimer.vue.js +1 -1
  447. package/js/x-modules/search/components/{fallback-disclaimer.vue2.js → fallback-disclaimer2.vue.js} +1 -1
  448. package/js/x-modules/search/components/{fallback-disclaimer.vue2.js.map → fallback-disclaimer2.vue.js.map} +1 -1
  449. package/js/x-modules/search/components/partial-query-button.vue.js +1 -1
  450. package/js/x-modules/search/components/{partial-query-button.vue2.js → partial-query-button2.vue.js} +1 -1
  451. package/js/x-modules/search/components/{partial-query-button.vue2.js.map → partial-query-button2.vue.js.map} +1 -1
  452. package/js/x-modules/search/components/partial-results-list.vue.js +2 -2
  453. package/js/x-modules/search/components/{partial-results-list.vue2.js → partial-results-list2.vue.js} +1 -1
  454. package/js/x-modules/search/components/{partial-results-list.vue2.js.map → partial-results-list2.vue.js.map} +1 -1
  455. package/js/x-modules/search/components/{partial-results-list.vue3.js → partial-results-list3.vue.js} +1 -1
  456. package/js/x-modules/search/components/partial-results-list3.vue.js.map +1 -0
  457. package/js/x-modules/search/components/promoted.vue.js +2 -2
  458. package/js/x-modules/search/components/{promoted.vue2.js → promoted2.vue.js} +1 -1
  459. package/js/x-modules/search/components/{promoted.vue2.js.map → promoted2.vue.js.map} +1 -1
  460. package/js/x-modules/search/components/{promoted.vue3.js → promoted3.vue.js} +1 -1
  461. package/js/x-modules/search/components/promoted3.vue.js.map +1 -0
  462. package/js/x-modules/search/components/{promoteds-list.vue2.js → promoteds-list2.vue.js} +1 -1
  463. package/js/x-modules/search/components/promoteds-list2.vue.js.map +1 -0
  464. package/js/x-modules/search/components/redirection.vue.js +1 -1
  465. package/js/x-modules/search/components/{redirection.vue2.js → redirection2.vue.js} +1 -1
  466. package/js/x-modules/search/components/{redirection.vue2.js.map → redirection2.vue.js.map} +1 -1
  467. package/js/x-modules/search/components/{results-list.vue2.js → results-list2.vue.js} +1 -1
  468. package/js/x-modules/search/components/results-list2.vue.js.map +1 -0
  469. package/js/x-modules/search/components/sort-dropdown.vue.js +1 -1
  470. package/js/x-modules/search/components/{sort-dropdown.vue2.js → sort-dropdown2.vue.js} +1 -1
  471. package/js/x-modules/search/components/{sort-dropdown.vue2.js.map → sort-dropdown2.vue.js.map} +1 -1
  472. package/js/x-modules/search/components/sort-list.vue.js +2 -2
  473. package/js/x-modules/search/components/{sort-list.vue2.js → sort-list2.vue.js} +1 -1
  474. package/js/x-modules/search/components/{sort-list.vue2.js.map → sort-list2.vue.js.map} +1 -1
  475. package/js/x-modules/search/components/{sort-list.vue3.js → sort-list3.vue.js} +1 -1
  476. package/js/x-modules/search/components/sort-list3.vue.js.map +1 -0
  477. package/js/x-modules/search/components/sort-picker-list.vue.js +1 -1
  478. package/js/x-modules/search/components/{sort-picker-list.vue2.js → sort-picker-list2.vue.js} +1 -1
  479. package/js/x-modules/search/components/{sort-picker-list.vue2.js.map → sort-picker-list2.vue.js.map} +1 -1
  480. package/js/x-modules/search/components/spellcheck-button.vue.js +1 -1
  481. package/js/x-modules/search/components/{spellcheck-button.vue2.js → spellcheck-button2.vue.js} +1 -1
  482. package/js/x-modules/search/components/{spellcheck-button.vue2.js.map → spellcheck-button2.vue.js.map} +1 -1
  483. package/js/x-modules/search/components/spellcheck.vue.js +1 -1
  484. package/js/x-modules/search/components/{spellcheck.vue2.js → spellcheck2.vue.js} +1 -1
  485. package/js/x-modules/search/components/{spellcheck.vue2.js.map → spellcheck2.vue.js.map} +1 -1
  486. package/js/x-modules/search-box/components/clear-search-input.vue.js +1 -1
  487. package/js/x-modules/search-box/components/{clear-search-input.vue2.js → clear-search-input2.vue.js} +1 -1
  488. package/js/x-modules/search-box/components/{clear-search-input.vue2.js.map → clear-search-input2.vue.js.map} +1 -1
  489. package/js/x-modules/search-box/components/search-button.vue.js +1 -1
  490. package/js/x-modules/search-box/components/{search-button.vue2.js → search-button2.vue.js} +1 -1
  491. package/js/x-modules/search-box/components/{search-button.vue2.js.map → search-button2.vue.js.map} +1 -1
  492. package/js/x-modules/search-box/components/search-input-placeholder.vue.js +3 -3
  493. package/js/x-modules/search-box/components/{search-input-placeholder.vue2.js → search-input-placeholder2.vue.js} +2 -2
  494. package/js/x-modules/search-box/components/{search-input-placeholder.vue2.js.map → search-input-placeholder2.vue.js.map} +1 -1
  495. package/js/x-modules/search-box/components/{search-input-placeholder.vue3.js → search-input-placeholder3.vue.js} +1 -1
  496. package/js/x-modules/search-box/components/search-input-placeholder3.vue.js.map +1 -0
  497. package/js/x-modules/search-box/components/{search-input-placeholder.vue4.js → search-input-placeholder4.vue.js} +1 -1
  498. package/js/x-modules/search-box/components/search-input-placeholder4.vue.js.map +1 -0
  499. package/js/x-modules/search-box/components/search-input.vue.js +2 -2
  500. package/js/x-modules/search-box/components/{search-input.vue2.js → search-input2.vue.js} +1 -1
  501. package/js/x-modules/search-box/components/{search-input.vue2.js.map → search-input2.vue.js.map} +1 -1
  502. package/js/x-modules/search-box/components/{search-input.vue3.js → search-input3.vue.js} +1 -1
  503. package/js/x-modules/search-box/components/search-input3.vue.js.map +1 -0
  504. package/js/x-modules/semantic-queries/components/semantic-queries.vue.js +1 -1
  505. package/js/x-modules/semantic-queries/components/{semantic-queries.vue2.js → semantic-queries2.vue.js} +1 -1
  506. package/js/x-modules/semantic-queries/components/{semantic-queries.vue2.js.map → semantic-queries2.vue.js.map} +1 -1
  507. package/js/x-modules/semantic-queries/components/semantic-query.vue.js +1 -1
  508. package/js/x-modules/semantic-queries/components/{semantic-query.vue2.js → semantic-query2.vue.js} +1 -1
  509. package/js/x-modules/semantic-queries/components/{semantic-query.vue2.js.map → semantic-query2.vue.js.map} +1 -1
  510. package/js/x-modules/tagging/components/{tagging.vue2.js → tagging2.vue.js} +1 -1
  511. package/js/x-modules/tagging/components/tagging2.vue.js.map +1 -0
  512. package/js/x-modules/url/components/url-handler.vue.js +1 -1
  513. package/js/x-modules/url/components/{url-handler.vue2.js → url-handler2.vue.js} +1 -1
  514. package/js/x-modules/url/components/{url-handler.vue2.js.map → url-handler2.vue.js.map} +1 -1
  515. package/package.json +23 -23
  516. package/report/tsdoc-metadata.json +1 -1
  517. package/report/x-adapter-platform.api.json +251 -1
  518. package/report/x-components.api.json +1 -1
  519. package/report/x-types.api.json +426 -1
  520. package/types/src/x-modules/related-prompts/components/related-prompts-tag-list.vue.d.ts.map +1 -1
  521. package/js/components/animations/animate-clip-path.vue2.js.map +0 -1
  522. package/js/components/animations/animate-clip-path.vue3.js +0 -7
  523. package/js/components/animations/animate-clip-path.vue3.js.map +0 -1
  524. package/js/components/animations/animate-scale.vue2.js.map +0 -1
  525. package/js/components/animations/animate-scale.vue3.js.map +0 -1
  526. package/js/components/animations/animate-translate.vue2.js.map +0 -1
  527. package/js/components/animations/animate-translate.vue3.js +0 -7
  528. package/js/components/animations/animate-translate.vue3.js.map +0 -1
  529. package/js/components/animations/animate-width.vue3.js.map +0 -1
  530. package/js/components/animations/change-height.vue3.js.map +0 -1
  531. package/js/components/animations/collapse-height.vue3.js.map +0 -1
  532. package/js/components/animations/collapse-width.vue3.js.map +0 -1
  533. package/js/components/animations/cross-fade.vue3.js.map +0 -1
  534. package/js/components/animations/fade-and-slide.vue3.js.map +0 -1
  535. package/js/components/animations/fade.vue3.js.map +0 -1
  536. package/js/components/animations/no-animation.vue2.js.map +0 -1
  537. package/js/components/animations/staggered-fade-and-slide.vue3.js.map +0 -1
  538. package/js/components/auto-progress-bar.vue3.js.map +0 -1
  539. package/js/components/base-dropdown.vue3.js.map +0 -1
  540. package/js/components/base-grid.vue3.js.map +0 -1
  541. package/js/components/base-rating.vue3.js.map +0 -1
  542. package/js/components/base-slider.vue3.js.map +0 -1
  543. package/js/components/base-switch.vue3.js.map +0 -1
  544. package/js/components/display-click-provider.vue2.js.map +0 -1
  545. package/js/components/display-emitter.vue2.js.map +0 -1
  546. package/js/components/filters/labels/base-price-filter-label.vue2.js.map +0 -1
  547. package/js/components/global-x-bus.vue2.js.map +0 -1
  548. package/js/components/location-provider.vue2.js.map +0 -1
  549. package/js/components/message.vue2.js.map +0 -1
  550. package/js/components/modals/base-modal.vue3.js.map +0 -1
  551. package/js/components/page-loader-button.vue3.js.map +0 -1
  552. package/js/components/page-selector.vue3.js.map +0 -1
  553. package/js/components/panels/base-header-toggle-panel.vue3.js.map +0 -1
  554. package/js/components/panels/base-tabs-panel.vue3.js.map +0 -1
  555. package/js/components/result/base-result-image.vue3.js.map +0 -1
  556. package/js/components/result/base-result-link.vue3.js.map +0 -1
  557. package/js/components/result/base-result-rating.vue3.js.map +0 -1
  558. package/js/components/result/result-variant-selector.vue3.js.map +0 -1
  559. package/js/components/result/result-variants-provider.vue2.js.map +0 -1
  560. package/js/components/sliding-panel.vue3.js.map +0 -1
  561. package/js/components/suggestions/base-suggestions.vue3.js.map +0 -1
  562. package/js/x-modules/ai/components/ai-carousel.vue3.js.map +0 -1
  563. package/js/x-modules/ai/components/ai-grouped-carousel.vue2.js +0 -123
  564. package/js/x-modules/experience-controls/components/experience-controls.vue2.js.map +0 -1
  565. package/js/x-modules/extra-params/components/extra-params.vue2.js.map +0 -1
  566. package/js/x-modules/extra-params/components/renderless-extra-param.vue2.js.map +0 -1
  567. package/js/x-modules/facets/components/facets/facets-provider.vue3.js.map +0 -1
  568. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue3.js.map +0 -1
  569. package/js/x-modules/facets/components/filters/renderless-filter.vue2.js.map +0 -1
  570. package/js/x-modules/facets/components/lists/exclude-filters-with-no-results.vue2.js.map +0 -1
  571. package/js/x-modules/facets/components/lists/filters-list.vue3.js.map +0 -1
  572. package/js/x-modules/facets/components/lists/filters-search.vue3.js.map +0 -1
  573. package/js/x-modules/facets/components/lists/selected-filters.vue2.js.map +0 -1
  574. package/js/x-modules/facets/components/lists/sorted-filters.vue2.js.map +0 -1
  575. package/js/x-modules/facets/components/preselected-filters.vue2.js.map +0 -1
  576. package/js/x-modules/history-queries/components/my-history.vue3.js.map +0 -1
  577. package/js/x-modules/identifier-results/components/identifier-results.vue3.js.map +0 -1
  578. package/js/x-modules/next-queries/components/next-queries-list.vue2.js.map +0 -1
  579. package/js/x-modules/queries-preview/components/query-preview-button.vue2.js +0 -165
  580. package/js/x-modules/queries-preview/components/query-preview-list.vue3.js.map +0 -1
  581. package/js/x-modules/recommendations/components/recommendations.vue3.js.map +0 -1
  582. package/js/x-modules/related-prompts/components/related-prompt.vue3.js.map +0 -1
  583. package/js/x-modules/related-prompts/components/related-prompts-list.vue2.js.map +0 -1
  584. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue3.js.map +0 -1
  585. package/js/x-modules/related-tags/components/related-tags.vue3.js.map +0 -1
  586. package/js/x-modules/scroll/components/main-scroll.vue2.js.map +0 -1
  587. package/js/x-modules/search/components/banner.vue3.js.map +0 -1
  588. package/js/x-modules/search/components/banners-list.vue2.js.map +0 -1
  589. package/js/x-modules/search/components/partial-results-list.vue3.js.map +0 -1
  590. package/js/x-modules/search/components/promoted.vue3.js.map +0 -1
  591. package/js/x-modules/search/components/promoteds-list.vue2.js.map +0 -1
  592. package/js/x-modules/search/components/results-list.vue2.js.map +0 -1
  593. package/js/x-modules/search/components/sort-list.vue3.js.map +0 -1
  594. package/js/x-modules/search-box/components/search-input-placeholder.vue3.js.map +0 -1
  595. package/js/x-modules/search-box/components/search-input-placeholder.vue4.js.map +0 -1
  596. package/js/x-modules/search-box/components/search-input.vue3.js.map +0 -1
  597. package/js/x-modules/tagging/components/tagging.vue2.js.map +0 -1
@@ -145,4 +145,4 @@ var _sfc_main = defineComponent({
145
145
  });
146
146
 
147
147
  export { _sfc_main as default };
148
- //# sourceMappingURL=base-suggestion.vue2.js.map
148
+ //# sourceMappingURL=base-suggestion2.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-suggestion.vue2.js","sources":["../../../../src/components/suggestions/base-suggestion.vue"],"sourcesContent":["<template>\n <button ref=\"el\" :class=\"dynamicCSSClasses\" @click=\"emitEvents\">\n <!--\n @slot Button content\n @binding {Suggestion} suggestion - Suggestion data\n @binding {String} query - The query that the suggestion belongs to\n @binding {Filter} filter - Suggestion's filter\n -->\n <slot v-bind=\"{ query, suggestion, filter }\">\n <Highlight class=\"x-suggestion__query\" :text=\"suggestion.query\" :highlight=\"query\" />\n <span v-if=\"filter\" class=\"x-suggestion__filter\">{{ filter.label }}</span>\n </slot>\n </button>\n</template>\n\n<script lang=\"ts\">\nimport type { BooleanFilter, Suggestion } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport type { QueryFeature } from '../../types'\nimport type { VueCSSClasses } from '../../utils/types'\nimport type { XEventsTypes } from '../../wiring/events.types'\nimport { forEach } from '@empathyco/x-utils'\nimport { computed, defineComponent, ref } from 'vue'\nimport { use$x } from '../../composables/index'\nimport Highlight from '../highlight.vue'\n\n/**\n * Renders a button with a default slot. It receives a query, which should be the query of the\n * module using this component, a suggestion, the {@link XEvent} that will be emitted\n * on click with a given feature.\n *\n * The default slot receives the suggestion and the matched query has props.\n *\n * @public\n */\nexport default defineComponent({\n components: { Highlight },\n props: {\n /**\n * The normalized query of the module using this component.\n *\n * @public\n */\n query: {\n type: String,\n default: '',\n },\n\n /**\n * The suggestion to render and use in the default slot.\n *\n * @public\n */\n suggestion: {\n type: Object as PropType<Suggestion>,\n required: true,\n },\n\n /**\n * The feature from which the events will be emitted.\n *\n * @public\n */\n //TODO: set to true when the suggestions components pass it.\n feature: {\n type: String as PropType<QueryFeature>,\n },\n\n /**\n * The {@link XEvent} that will be emitted when selecting a suggestion.\n *\n * @public\n */\n suggestionSelectedEvents: {\n type: Object as PropType<Partial<XEventsTypes>>,\n required: true,\n },\n\n /**\n * Indicates if the curated suggestion should be highlighted.\n *\n * @public\n */\n highlightCurated: {\n type: Boolean,\n },\n },\n\n setup(props) {\n const el = ref<HTMLElement | null>(null)\n\n const $x = use$x()\n\n /**\n * Returns the suggestion filter object.\n * It is a BooleanFilter because the label is needed.\n * It returns only the first element because the facets and filters are being planned\n * in the BaseSuggestions component.\n *\n * @returns The filter.\n * @public\n */\n const filter = computed<BooleanFilter | undefined>(\n () => props.suggestion.facets?.[0]?.filters[0] as BooleanFilter,\n )\n\n /**\n * The event handler that will be triggered when clicking on a suggestion.\n *\n * @remarks\n * UserAcceptedAQuery: suggestion.query\n * UserSelectedASuggestion: suggestion\n * UserClickedAFilter: suggestion.facets[0].filters[0]\n * Merges the events defined in the suggestionSelectedEvents prop and also emits them\n *\n * @returns The {@link XEvent} to emit.\n * @public\n */\n const events = computed<Partial<XEventsTypes>>(() => {\n const filterEvent: Partial<XEventsTypes> = filter.value\n ? { UserClickedAFilter: filter.value }\n : {}\n return {\n UserAcceptedAQuery: props.suggestion.query,\n UserSelectedASuggestion: props.suggestion,\n ...props.suggestionSelectedEvents,\n ...filterEvent,\n }\n })\n\n /**\n * Emits the events when the button is clicked.\n *\n * @public\n */\n const emitEvents = (): void => {\n forEach(events.value, (event, payload): void => {\n $x.emit(event, payload, {\n target: el.value!,\n feature: props.feature,\n })\n })\n }\n\n /**\n * Checks if the suggestion is curated and if it should be highlighted.\n *\n * @returns True if the suggestion is curated and should be highlighted.\n *\n * @internal\n */\n const shouldHighlightCurated = computed<boolean>(\n () => props.highlightCurated && !!props.suggestion.isCurated,\n )\n\n /**\n * Generates css classes dynamically.\n *\n * @remarks\n * 'x-suggestion--matching added when the query should be matched.\n *\n * @returns The {@link VueCSSClasses} classes.\n * @public\n */\n const dynamicCSSClasses = computed<VueCSSClasses>(() => ({\n 'x-suggestion--is-curated': shouldHighlightCurated.value,\n }))\n\n return {\n el,\n filter,\n emitEvents,\n dynamicCSSClasses,\n }\n },\n})\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following events:\n\n- [`UserAcceptedAQuery`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the suggestion query\n data.\n- [`UserSelectedASuggestion`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the suggestion data.\n- [`UserClickedAFilter`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button if the suggestion includes a filter. The\n event payload is the suggestion filter.\n- The component can emit more events on click using the `suggestionSelectedEvents` prop.\n\n## Examples\n\n### Basic usage\n\nThis suggestion component expects a suggestion to render and pass to its default slot, a normalized\nquery to compare with the suggestion's query and highlight its matching parts, and events to emit\nwhen the suggestion is selected.\n\nIf the suggestion contains a filter, it is displayed next to the suggestion.\n\n```vue live\n<template>\n <BaseSuggestion :query=\"query\" :suggestion=\"suggestion\" />\n</template>\n\n<script setup>\nimport { BaseSuggestion } from '@empathyco/x-components'\nconst query = 'st'\nconst suggestion = {\n modelName: 'QuerySuggestion',\n query: 'steak',\n facets: [\n {\n modelName: 'SimpleFacet',\n id: 'category',\n label: 'Category',\n filters: [\n {\n id: 'category:groceries',\n modelName: 'SimpleFilter',\n facetId: 'category-facet',\n label: 'Groceries',\n selected: false,\n totalResults: 10,\n },\n ],\n },\n ],\n}\n</script>\n```\n\n### Customise the content\n\nYou can make this component render any content you want by using the `default` slot.\n\n```vue live\n<template>\n <BaseSuggestion :query=\"query\" :suggestion=\"suggestion\">\n <template #default=\"{ suggestion, query, filter }\">\n <span>🔍</span>\n <Highlight :text=\"suggestion.query\" :highlight=\"query\" />\n <span v-if=\"filter\">{{ filter.label }}</span>\n </template>\n </BaseSuggestion>\n</template>\n\n<script setup>\nimport { BaseSuggestion } from '@empathyco/x-components'\nconst query = 'st'\nconst suggestion = {\n modelName: 'QuerySuggestion',\n query: 'steak',\n}\n</script>\n```\n\n### Emitting custom events with suggestionSelectedEvents\n\nYou can emit additional custom events when a suggestion is selected by passing them in the `suggestionSelectedEvents` prop. For example, to emit a custom event called `CustomSuggestionEvent` with a payload:\n\n```vue live\n<template>\n <BaseSuggestion\n :query=\"query\"\n :suggestion=\"suggestion\"\n :suggestionSelectedEvents=\"suggestionSelectedEvents\"\n />\n</template>\n\n<script setup>\nimport { BaseSuggestion } from '@empathyco/x-components'\nconst query = 'st'\nconst suggestion = {\n modelName: 'QuerySuggestion',\n query: 'steak',\n}\nconst suggestionSelectedEvents = {\n CustomSuggestionEvent: { custom: 'payload' },\n}\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;;;;;;AA0BA;;;;;;;;AAQE;AACF,gBAAe,eAAe,CAAC;IAC7B,UAAU,EAAE,EAAE,WAAW;AACzB,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,EAAE;AACZ,SAAA;AAED;;;;AAIE;AACF,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,MAA8B;AACpC,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AAED;;;;AAIE;;AAEF,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,MAAgC;AACvC,SAAA;AAED;;;;AAIE;AACF,QAAA,wBAAwB,EAAE;AACxB,YAAA,IAAI,EAAE,MAAyC;AAC/C,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AAED;;;;AAIE;AACF,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,OAAO;AACd,SAAA;AACF,KAAA;AAED,IAAA,KAAK,CAAC,KAAK,EAAA;AACT,QAAA,MAAM,EAAC,GAAI,GAAG,CAAqB,IAAI,CAAA;AAEvC,QAAA,MAAM,EAAC,GAAI,KAAK,EAAC;AAEjB;;;;;;;;AAQE;QACF,MAAM,SAAS,QAAQ,CACrB,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAkB,CACjE;AAEA;;;;;;;;;;;AAWE;AACF,QAAA,MAAM,MAAK,GAAI,QAAQ,CAAwB,MAAI;AACjD,YAAA,MAAM,WAAW,GAA0B,MAAM,CAAC;AAChD,kBAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,KAAI;kBACjC,EAAC;YACL,OAAO;AACL,gBAAA,kBAAkB,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;gBAC1C,uBAAuB,EAAE,KAAK,CAAC,UAAU;gBACzC,GAAG,KAAK,CAAC,wBAAwB;AACjC,gBAAA,GAAG,WAAW;aAChB;AACF,QAAA,CAAC,CAAA;AAED;;;;AAIE;QACF,MAAM,UAAS,GAAI,MAAU;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAS;AAC5C,gBAAA,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;oBACtB,MAAM,EAAE,EAAE,CAAC,KAAM;oBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;AACvB,iBAAA,CAAA;AACH,YAAA,CAAC,CAAA;AACH,QAAA,CAAA;AAEA;;;;;;AAME;AACF,QAAA,MAAM,sBAAqB,GAAI,QAAQ,CACrC,MAAM,KAAK,CAAC,gBAAe,IAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAC9D;AAEA;;;;;;;;AAQE;AACF,QAAA,MAAM,iBAAgB,GAAI,QAAQ,CAAgB,OAAO;YACvD,0BAA0B,EAAE,sBAAsB,CAAC,KAAK;AACzD,SAAA,CAAC,CAAA;QAEF,OAAO;YACL,EAAE;YACF,MAAM;YACN,UAAU;YACV,iBAAiB;SACnB;IACF,CAAC;AACF,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"base-suggestion2.vue.js","sources":["../../../../src/components/suggestions/base-suggestion.vue"],"sourcesContent":["<template>\n <button ref=\"el\" :class=\"dynamicCSSClasses\" @click=\"emitEvents\">\n <!--\n @slot Button content\n @binding {Suggestion} suggestion - Suggestion data\n @binding {String} query - The query that the suggestion belongs to\n @binding {Filter} filter - Suggestion's filter\n -->\n <slot v-bind=\"{ query, suggestion, filter }\">\n <Highlight class=\"x-suggestion__query\" :text=\"suggestion.query\" :highlight=\"query\" />\n <span v-if=\"filter\" class=\"x-suggestion__filter\">{{ filter.label }}</span>\n </slot>\n </button>\n</template>\n\n<script lang=\"ts\">\nimport type { BooleanFilter, Suggestion } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport type { QueryFeature } from '../../types'\nimport type { VueCSSClasses } from '../../utils/types'\nimport type { XEventsTypes } from '../../wiring/events.types'\nimport { forEach } from '@empathyco/x-utils'\nimport { computed, defineComponent, ref } from 'vue'\nimport { use$x } from '../../composables/index'\nimport Highlight from '../highlight.vue'\n\n/**\n * Renders a button with a default slot. It receives a query, which should be the query of the\n * module using this component, a suggestion, the {@link XEvent} that will be emitted\n * on click with a given feature.\n *\n * The default slot receives the suggestion and the matched query has props.\n *\n * @public\n */\nexport default defineComponent({\n components: { Highlight },\n props: {\n /**\n * The normalized query of the module using this component.\n *\n * @public\n */\n query: {\n type: String,\n default: '',\n },\n\n /**\n * The suggestion to render and use in the default slot.\n *\n * @public\n */\n suggestion: {\n type: Object as PropType<Suggestion>,\n required: true,\n },\n\n /**\n * The feature from which the events will be emitted.\n *\n * @public\n */\n //TODO: set to true when the suggestions components pass it.\n feature: {\n type: String as PropType<QueryFeature>,\n },\n\n /**\n * The {@link XEvent} that will be emitted when selecting a suggestion.\n *\n * @public\n */\n suggestionSelectedEvents: {\n type: Object as PropType<Partial<XEventsTypes>>,\n required: true,\n },\n\n /**\n * Indicates if the curated suggestion should be highlighted.\n *\n * @public\n */\n highlightCurated: {\n type: Boolean,\n },\n },\n\n setup(props) {\n const el = ref<HTMLElement | null>(null)\n\n const $x = use$x()\n\n /**\n * Returns the suggestion filter object.\n * It is a BooleanFilter because the label is needed.\n * It returns only the first element because the facets and filters are being planned\n * in the BaseSuggestions component.\n *\n * @returns The filter.\n * @public\n */\n const filter = computed<BooleanFilter | undefined>(\n () => props.suggestion.facets?.[0]?.filters[0] as BooleanFilter,\n )\n\n /**\n * The event handler that will be triggered when clicking on a suggestion.\n *\n * @remarks\n * UserAcceptedAQuery: suggestion.query\n * UserSelectedASuggestion: suggestion\n * UserClickedAFilter: suggestion.facets[0].filters[0]\n * Merges the events defined in the suggestionSelectedEvents prop and also emits them\n *\n * @returns The {@link XEvent} to emit.\n * @public\n */\n const events = computed<Partial<XEventsTypes>>(() => {\n const filterEvent: Partial<XEventsTypes> = filter.value\n ? { UserClickedAFilter: filter.value }\n : {}\n return {\n UserAcceptedAQuery: props.suggestion.query,\n UserSelectedASuggestion: props.suggestion,\n ...props.suggestionSelectedEvents,\n ...filterEvent,\n }\n })\n\n /**\n * Emits the events when the button is clicked.\n *\n * @public\n */\n const emitEvents = (): void => {\n forEach(events.value, (event, payload): void => {\n $x.emit(event, payload, {\n target: el.value!,\n feature: props.feature,\n })\n })\n }\n\n /**\n * Checks if the suggestion is curated and if it should be highlighted.\n *\n * @returns True if the suggestion is curated and should be highlighted.\n *\n * @internal\n */\n const shouldHighlightCurated = computed<boolean>(\n () => props.highlightCurated && !!props.suggestion.isCurated,\n )\n\n /**\n * Generates css classes dynamically.\n *\n * @remarks\n * 'x-suggestion--matching added when the query should be matched.\n *\n * @returns The {@link VueCSSClasses} classes.\n * @public\n */\n const dynamicCSSClasses = computed<VueCSSClasses>(() => ({\n 'x-suggestion--is-curated': shouldHighlightCurated.value,\n }))\n\n return {\n el,\n filter,\n emitEvents,\n dynamicCSSClasses,\n }\n },\n})\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following events:\n\n- [`UserAcceptedAQuery`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the suggestion query\n data.\n- [`UserSelectedASuggestion`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the suggestion data.\n- [`UserClickedAFilter`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button if the suggestion includes a filter. The\n event payload is the suggestion filter.\n- The component can emit more events on click using the `suggestionSelectedEvents` prop.\n\n## Examples\n\n### Basic usage\n\nThis suggestion component expects a suggestion to render and pass to its default slot, a normalized\nquery to compare with the suggestion's query and highlight its matching parts, and events to emit\nwhen the suggestion is selected.\n\nIf the suggestion contains a filter, it is displayed next to the suggestion.\n\n```vue live\n<template>\n <BaseSuggestion :query=\"query\" :suggestion=\"suggestion\" />\n</template>\n\n<script setup>\nimport { BaseSuggestion } from '@empathyco/x-components'\nconst query = 'st'\nconst suggestion = {\n modelName: 'QuerySuggestion',\n query: 'steak',\n facets: [\n {\n modelName: 'SimpleFacet',\n id: 'category',\n label: 'Category',\n filters: [\n {\n id: 'category:groceries',\n modelName: 'SimpleFilter',\n facetId: 'category-facet',\n label: 'Groceries',\n selected: false,\n totalResults: 10,\n },\n ],\n },\n ],\n}\n</script>\n```\n\n### Customise the content\n\nYou can make this component render any content you want by using the `default` slot.\n\n```vue live\n<template>\n <BaseSuggestion :query=\"query\" :suggestion=\"suggestion\">\n <template #default=\"{ suggestion, query, filter }\">\n <span>🔍</span>\n <Highlight :text=\"suggestion.query\" :highlight=\"query\" />\n <span v-if=\"filter\">{{ filter.label }}</span>\n </template>\n </BaseSuggestion>\n</template>\n\n<script setup>\nimport { BaseSuggestion } from '@empathyco/x-components'\nconst query = 'st'\nconst suggestion = {\n modelName: 'QuerySuggestion',\n query: 'steak',\n}\n</script>\n```\n\n### Emitting custom events with suggestionSelectedEvents\n\nYou can emit additional custom events when a suggestion is selected by passing them in the `suggestionSelectedEvents` prop. For example, to emit a custom event called `CustomSuggestionEvent` with a payload:\n\n```vue live\n<template>\n <BaseSuggestion\n :query=\"query\"\n :suggestion=\"suggestion\"\n :suggestionSelectedEvents=\"suggestionSelectedEvents\"\n />\n</template>\n\n<script setup>\nimport { BaseSuggestion } from '@empathyco/x-components'\nconst query = 'st'\nconst suggestion = {\n modelName: 'QuerySuggestion',\n query: 'steak',\n}\nconst suggestionSelectedEvents = {\n CustomSuggestionEvent: { custom: 'payload' },\n}\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;;;;;;AA0BA;;;;;;;;AAQE;AACF,gBAAe,eAAe,CAAC;IAC7B,UAAU,EAAE,EAAE,WAAW;AACzB,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,EAAE;AACZ,SAAA;AAED;;;;AAIE;AACF,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,MAA8B;AACpC,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AAED;;;;AAIE;;AAEF,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,MAAgC;AACvC,SAAA;AAED;;;;AAIE;AACF,QAAA,wBAAwB,EAAE;AACxB,YAAA,IAAI,EAAE,MAAyC;AAC/C,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AAED;;;;AAIE;AACF,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,OAAO;AACd,SAAA;AACF,KAAA;AAED,IAAA,KAAK,CAAC,KAAK,EAAA;AACT,QAAA,MAAM,EAAC,GAAI,GAAG,CAAqB,IAAI,CAAA;AAEvC,QAAA,MAAM,EAAC,GAAI,KAAK,EAAC;AAEjB;;;;;;;;AAQE;QACF,MAAM,SAAS,QAAQ,CACrB,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAkB,CACjE;AAEA;;;;;;;;;;;AAWE;AACF,QAAA,MAAM,MAAK,GAAI,QAAQ,CAAwB,MAAI;AACjD,YAAA,MAAM,WAAW,GAA0B,MAAM,CAAC;AAChD,kBAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,KAAI;kBACjC,EAAC;YACL,OAAO;AACL,gBAAA,kBAAkB,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;gBAC1C,uBAAuB,EAAE,KAAK,CAAC,UAAU;gBACzC,GAAG,KAAK,CAAC,wBAAwB;AACjC,gBAAA,GAAG,WAAW;aAChB;AACF,QAAA,CAAC,CAAA;AAED;;;;AAIE;QACF,MAAM,UAAS,GAAI,MAAU;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAS;AAC5C,gBAAA,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;oBACtB,MAAM,EAAE,EAAE,CAAC,KAAM;oBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;AACvB,iBAAA,CAAA;AACH,YAAA,CAAC,CAAA;AACH,QAAA,CAAA;AAEA;;;;;;AAME;AACF,QAAA,MAAM,sBAAqB,GAAI,QAAQ,CACrC,MAAM,KAAK,CAAC,gBAAe,IAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAC9D;AAEA;;;;;;;;AAQE;AACF,QAAA,MAAM,iBAAgB,GAAI,QAAQ,CAAgB,OAAO;YACvD,0BAA0B,EAAE,sBAAsB,CAAC,KAAK;AACzD,SAAA,CAAC,CAAA;QAEF,OAAO;YACL,EAAE;YACF,MAAM;YACN,UAAU;YACV,iBAAiB;SACnB;IACF,CAAC;AACF,CAAA,CAAA;;;;"}
@@ -1,6 +1,6 @@
1
- import _sfc_main from './base-suggestions.vue2.js';
1
+ import _sfc_main from './base-suggestions2.vue.js';
2
2
  import { openBlock, createBlock, resolveDynamicComponent, withCtx, createElementBlock, Fragment, renderList, normalizeClass, renderSlot, mergeProps, createCommentVNode } from 'vue';
3
- import './base-suggestions.vue3.js';
3
+ import './base-suggestions3.vue.js';
4
4
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
5
5
 
6
6
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -124,4 +124,4 @@ var _sfc_main = defineComponent({
124
124
  });
125
125
 
126
126
  export { _sfc_main as default };
127
- //# sourceMappingURL=base-suggestions.vue2.js.map
127
+ //# sourceMappingURL=base-suggestions2.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-suggestions.vue2.js","sources":["../../../../src/components/suggestions/base-suggestions.vue"],"sourcesContent":["<template>\n <component :is=\"animation\" v-if=\"suggestions.length\" tag=\"ul\" class=\"x-suggestions\">\n <li\n v-for=\"(suggestion, index) in suggestionsToRender\"\n :key=\"suggestionsKeys[index]\"\n class=\"x-suggestions__item\"\n :class=\"suggestionItemClass\"\n data-test=\"suggestion-item\"\n >\n <!--\n @slot (Required) List item content\n @binding {Suggestion} suggestion - Suggestion data\n @binding {number} index - Suggestion index\n @binding {Filter | undefined} filter - Suggestion's filter\n -->\n <slot v-bind=\"{ suggestion, index, filter: getSuggestionFilter(suggestion) }\" />\n </li>\n </component>\n</template>\n\n<script lang=\"ts\">\nimport type { Facet, Suggestion } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport { computed, defineComponent } from 'vue'\nimport { AnimationProp } from '../../types'\nimport { isArrayEmpty } from '../../utils/array'\n\n/**\n * Paints a list of suggestions passed in by prop. Requires a component for a single suggestion\n * in the default slot for working.\n *\n * @public\n */\nexport default defineComponent({\n name: 'BaseSuggestions',\n props: {\n /**\n * The list of suggestions to render.\n *\n * @public\n */\n suggestions: {\n type: Array as PropType<Suggestion[]>,\n required: true,\n },\n /**\n * Animation component that will be used to animate the suggestion.\n *\n * @public\n */\n animation: {\n type: AnimationProp,\n default: 'ul',\n },\n /**\n * Number of suggestions to be rendered.\n *\n * @public\n */\n maxItemsToRender: Number,\n /**\n * Boolean value to indicate if the facets should be rendered.\n *\n * @public\n */\n showFacets: {\n type: Boolean,\n default: false,\n },\n /**\n * When `showFacets` property of `BaseSuggestions` component is true, it indicates if the suggestion without\n * filter should be rendered.\n *\n * @public\n */\n showPlainSuggestion: {\n type: Boolean,\n default: false,\n },\n /** Class inherited by content element. */\n suggestionItemClass: String,\n },\n setup(props) {\n /**\n * Creates a suggestion for each one of the filter inside each facet.\n *\n * @param suggestion - Suggestion to expand.\n * @returns A list of suggestions, each one with a single filter.\n *\n * @internal\n */\n const expandSuggestionFilters = (suggestion: Suggestion): Suggestion[] => {\n return (\n suggestion.facets?.flatMap(facet =>\n facet.filters.map(filter => ({\n ...suggestion,\n facets: [{ ...facet, filters: [filter] }],\n })),\n ) ?? []\n )\n }\n\n /**\n * Creates a list of suggestions to render based on the configuration of this component.\n *\n * @returns - The list of suggestions to be rendered by this component.\n *\n * @internal\n */\n const suggestionsToRender = computed(() =>\n props.suggestions\n .flatMap(suggestion =>\n props.showFacets && suggestion.facets?.length\n ? props.showPlainSuggestion\n ? [{ ...suggestion, facets: [] }, ...expandSuggestionFilters(suggestion)]\n : expandSuggestionFilters(suggestion)\n : { ...suggestion, facets: [] },\n )\n .slice(0, props.maxItemsToRender),\n )\n\n /**\n * Generates a string from the given facet.\n *\n * @param facet - The facet to reduce to a string.\n * @returns - A string representing the facet.\n * @internal\n */\n const getFacetKey = (facet: Facet) => facet.filters.map(filter => filter.id).join('&')\n\n /**\n * Generates a string from the given facets.\n *\n * @param facets - The list of facets to reduce to a string.\n * @returns - A string representing the list of facets.\n * @internal\n */\n const getFacetsKey = (facets: Facet[]) => facets.map(getFacetKey).join('&')\n\n /**\n * An array with the unique keys for each suggestion. Required by the `v-for` loop.\n *\n * @returns An array with the unique keys of the suggestions.\n * @internal\n */\n const suggestionsKeys = computed(() =>\n suggestionsToRender.value.map(suggestion =>\n isArrayEmpty(suggestion.facets)\n ? suggestion.query\n : `${suggestion.query}-in-${getFacetsKey(suggestion.facets)}`,\n ),\n )\n\n /**\n * Returns the filter contained by the suggestion.\n *\n * @param suggestion - Suggestion containing the filter.\n * @returns The suggestion filter.\n * @internal\n */\n const getSuggestionFilter = (suggestion: Suggestion) => suggestion.facets?.[0]?.filters[0]\n\n return { suggestionsToRender, suggestionsKeys, getSuggestionFilter }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-suggestions {\n list-style-type: none;\n}\n\n.x-suggestions,\n.x-suggestions__item {\n display: flex;\n flex-flow: column nowrap;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nFor this component to work, you will need to set a list of suggestions as prop, and also to\nimplement the component for single suggestion, which handles the click event. In the following\nexample, the suggestions are retrieved from a property called `suggestions`, and the implementation\nof the suggestion component is a simple `button`, that calls the `emitSuggestionSelected` method\nwhen clicked.\n\n```vue\n<template>\n <BaseSuggestions :suggestions=\"suggestions\">\n <template #default=\"{ suggestion }\">\n <button @click=\"emitSuggestionSelected($event, suggestion)\">\n {{ suggestion.query }}\n </button>\n </template>\n </BaseSuggestions>\n</template>\n\n<script setup>\nimport { ref } from 'vue'\nimport { BaseSuggestions } from '@empathyco/x-components'\nimport { use$x } from '../../composables'\n\nconst x = use$x()\nconst suggestions = ref([\n {\n query: 'Chips',\n facets: [],\n key: 'chips',\n totalResults: 10,\n results: [],\n modelName: 'PopularSearch',\n },\n {\n query: 'Puzzle',\n facets: [],\n key: 'puzzle',\n totalResults: 5,\n results: [],\n modelName: 'PopularSearch',\n },\n])\nfunction emitSuggestionSelected(event, suggestion) {\n x.emit('UserAcceptedAQuery', suggestion.query, { target: event.target })\n x.emit('UserSelectedAQuerySuggestion', suggestion, { target: event.target })\n}\n</script>\n```\n\n### Play with props\n\nIn this example, the suggestions has been limited to render a maximum of 3 items. _Type \"puzzle\" or\nanother toy in the input field to try it out!_\n\n```vue\n<template>\n <BaseSuggestions :suggestions=\"suggestions\" :maxItemsToRender=\"3\" />\n</template>\n\n<script setup>\nimport { BaseSuggestions } from '@empathyco/x-components'\nconst suggestions = [\n {\n facets: [],\n key: 'chips',\n query: 'Chips',\n totalResults: 10,\n results: [],\n modelName: 'PopularSearch',\n },\n {\n facets: [],\n key: 'puzzle',\n query: 'Puzzle',\n totalResults: 5,\n results: [],\n modelName: 'PopularSearch',\n },\n {\n facets: [],\n key: 'lego',\n query: 'Lego',\n totalResults: 8,\n results: [],\n modelName: 'PopularSearch',\n },\n {\n facets: [],\n key: 'car',\n query: 'Car',\n totalResults: 3,\n results: [],\n modelName: 'PopularSearch',\n },\n]\n</script>\n```\n\nIn this example, the filters of the suggestion will be rendered along with the query.\n\nThe `showPlainSuggestion` prop can be used to indicate if the suggestion without filter must be\nrendered along with the suggestion with filters.\n\nThis will render:\n\n- Chips //If `showPlainSuggestion` is true\n- Chips EXAMPLE\n\n```vue\n<template>\n <BaseSuggestions :suggestions=\"suggestions\" showFacets showPlainSuggestion />\n</template>\n\n<script setup>\nimport { BaseSuggestions } from '@empathyco/x-components'\nconst suggestions = [\n {\n facets: [\n {\n id: 'exampleFacet',\n label: 'exampleFacet',\n modelName: 'SimpleFacet',\n filters: [\n {\n facetId: 'exampleFacet',\n id: '{!tag=exampleFacet}exampleFacet_60361120_64009600:\"EXAMPLE\"',\n label: 'EXAMPLE',\n selected: false,\n totalResults: 10,\n modelName: 'SimpleFilter',\n },\n ],\n },\n ],\n key: 'chips',\n query: 'Chips',\n totalResults: 10,\n results: [],\n modelName: 'PopularSearch',\n },\n]\n</script>\n```\n\nIn this example, the `suggestionItemClass` prop can be used to add classes to the suggestion item.\n\n```vue\n<template>\n <BaseSuggestions :suggestions=\"suggestions\" suggestionItemClass=\"x-custom-class\" />\n</template>\n\n<script setup>\nimport { BaseSuggestions } from '@empathyco/x-components'\nconst suggestions = [\n {\n facets: [],\n key: 'chips',\n query: 'Chips',\n totalResults: 10,\n results: [],\n modelName: 'PopularSearch',\n },\n]\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;AA2BA;;;;;AAKE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,WAAW,EAAE;AACX,YAAA,IAAI,EAAE,KAA+B;AACrC,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD;;;;AAIE;AACF,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,OAAO,EAAE,IAAI;AACd,SAAA;AACD;;;;AAIE;AACF,QAAA,gBAAgB,EAAE,MAAM;AACxB;;;;AAIE;AACF,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD;;;;;AAKE;AACF,QAAA,mBAAmB,EAAE;AACnB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;;AAED,QAAA,mBAAmB,EAAE,MAAM;AAC5B,KAAA;AACD,IAAA,KAAK,CAAC,KAAK,EAAA;AACT;;;;;;;AAOE;AACF,QAAA,MAAM,uBAAsB,GAAI,CAAC,UAAsB,KAAiB;YACtE,QACE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,SACzB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAK,KAAM;AAC3B,gBAAA,GAAG,UAAU;AACb,gBAAA,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAA,EAAG,CAAC;AAC1C,aAAA,CAAC,CAAC,CACL,IAAK,EAAC;AAEV,QAAA,CAAA;AAEA;;;;;;AAME;QACF,MAAM,mBAAkB,GAAI,QAAQ,CAAC,MACnC,KAAK,CAAC;AACH,aAAA,OAAO,CAAC,cACP,KAAK,CAAC,cAAc,UAAU,CAAC,MAAM,EAAE;cACnC,KAAK,CAAC;AACN,kBAAE,CAAC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,EAAC,EAAG,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC;AACxE,kBAAE,uBAAuB,CAAC,UAAU;cACpC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,EAAC,EAAG;aAElC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,CACrC;AAEA;;;;;;AAME;QACF,MAAM,cAAc,CAAC,KAAY,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;AAErF;;;;;;AAME;AACF,QAAA,MAAM,YAAW,GAAI,CAAC,MAAe,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;AAE1E;;;;;AAKE;QACF,MAAM,eAAc,GAAI,QAAQ,CAAC,MAC/B,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,cAC5B,YAAY,CAAC,UAAU,CAAC,MAAM;cAC1B,UAAU,CAAC;AACb,cAAE,CAAA,EAAG,UAAU,CAAC,KAAK,CAAA,IAAA,EAAO,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA,CAAE,CAChE,CACH;AAEA;;;;;;AAME;AACF,QAAA,MAAM,mBAAkB,GAAI,CAAC,UAAsB,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AAEzF,QAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAkB,EAAE;IACrE,CAAC;AACF,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"base-suggestions2.vue.js","sources":["../../../../src/components/suggestions/base-suggestions.vue"],"sourcesContent":["<template>\n <component :is=\"animation\" v-if=\"suggestions.length\" tag=\"ul\" class=\"x-suggestions\">\n <li\n v-for=\"(suggestion, index) in suggestionsToRender\"\n :key=\"suggestionsKeys[index]\"\n class=\"x-suggestions__item\"\n :class=\"suggestionItemClass\"\n data-test=\"suggestion-item\"\n >\n <!--\n @slot (Required) List item content\n @binding {Suggestion} suggestion - Suggestion data\n @binding {number} index - Suggestion index\n @binding {Filter | undefined} filter - Suggestion's filter\n -->\n <slot v-bind=\"{ suggestion, index, filter: getSuggestionFilter(suggestion) }\" />\n </li>\n </component>\n</template>\n\n<script lang=\"ts\">\nimport type { Facet, Suggestion } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport { computed, defineComponent } from 'vue'\nimport { AnimationProp } from '../../types'\nimport { isArrayEmpty } from '../../utils/array'\n\n/**\n * Paints a list of suggestions passed in by prop. Requires a component for a single suggestion\n * in the default slot for working.\n *\n * @public\n */\nexport default defineComponent({\n name: 'BaseSuggestions',\n props: {\n /**\n * The list of suggestions to render.\n *\n * @public\n */\n suggestions: {\n type: Array as PropType<Suggestion[]>,\n required: true,\n },\n /**\n * Animation component that will be used to animate the suggestion.\n *\n * @public\n */\n animation: {\n type: AnimationProp,\n default: 'ul',\n },\n /**\n * Number of suggestions to be rendered.\n *\n * @public\n */\n maxItemsToRender: Number,\n /**\n * Boolean value to indicate if the facets should be rendered.\n *\n * @public\n */\n showFacets: {\n type: Boolean,\n default: false,\n },\n /**\n * When `showFacets` property of `BaseSuggestions` component is true, it indicates if the suggestion without\n * filter should be rendered.\n *\n * @public\n */\n showPlainSuggestion: {\n type: Boolean,\n default: false,\n },\n /** Class inherited by content element. */\n suggestionItemClass: String,\n },\n setup(props) {\n /**\n * Creates a suggestion for each one of the filter inside each facet.\n *\n * @param suggestion - Suggestion to expand.\n * @returns A list of suggestions, each one with a single filter.\n *\n * @internal\n */\n const expandSuggestionFilters = (suggestion: Suggestion): Suggestion[] => {\n return (\n suggestion.facets?.flatMap(facet =>\n facet.filters.map(filter => ({\n ...suggestion,\n facets: [{ ...facet, filters: [filter] }],\n })),\n ) ?? []\n )\n }\n\n /**\n * Creates a list of suggestions to render based on the configuration of this component.\n *\n * @returns - The list of suggestions to be rendered by this component.\n *\n * @internal\n */\n const suggestionsToRender = computed(() =>\n props.suggestions\n .flatMap(suggestion =>\n props.showFacets && suggestion.facets?.length\n ? props.showPlainSuggestion\n ? [{ ...suggestion, facets: [] }, ...expandSuggestionFilters(suggestion)]\n : expandSuggestionFilters(suggestion)\n : { ...suggestion, facets: [] },\n )\n .slice(0, props.maxItemsToRender),\n )\n\n /**\n * Generates a string from the given facet.\n *\n * @param facet - The facet to reduce to a string.\n * @returns - A string representing the facet.\n * @internal\n */\n const getFacetKey = (facet: Facet) => facet.filters.map(filter => filter.id).join('&')\n\n /**\n * Generates a string from the given facets.\n *\n * @param facets - The list of facets to reduce to a string.\n * @returns - A string representing the list of facets.\n * @internal\n */\n const getFacetsKey = (facets: Facet[]) => facets.map(getFacetKey).join('&')\n\n /**\n * An array with the unique keys for each suggestion. Required by the `v-for` loop.\n *\n * @returns An array with the unique keys of the suggestions.\n * @internal\n */\n const suggestionsKeys = computed(() =>\n suggestionsToRender.value.map(suggestion =>\n isArrayEmpty(suggestion.facets)\n ? suggestion.query\n : `${suggestion.query}-in-${getFacetsKey(suggestion.facets)}`,\n ),\n )\n\n /**\n * Returns the filter contained by the suggestion.\n *\n * @param suggestion - Suggestion containing the filter.\n * @returns The suggestion filter.\n * @internal\n */\n const getSuggestionFilter = (suggestion: Suggestion) => suggestion.facets?.[0]?.filters[0]\n\n return { suggestionsToRender, suggestionsKeys, getSuggestionFilter }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-suggestions {\n list-style-type: none;\n}\n\n.x-suggestions,\n.x-suggestions__item {\n display: flex;\n flex-flow: column nowrap;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nFor this component to work, you will need to set a list of suggestions as prop, and also to\nimplement the component for single suggestion, which handles the click event. In the following\nexample, the suggestions are retrieved from a property called `suggestions`, and the implementation\nof the suggestion component is a simple `button`, that calls the `emitSuggestionSelected` method\nwhen clicked.\n\n```vue\n<template>\n <BaseSuggestions :suggestions=\"suggestions\">\n <template #default=\"{ suggestion }\">\n <button @click=\"emitSuggestionSelected($event, suggestion)\">\n {{ suggestion.query }}\n </button>\n </template>\n </BaseSuggestions>\n</template>\n\n<script setup>\nimport { ref } from 'vue'\nimport { BaseSuggestions } from '@empathyco/x-components'\nimport { use$x } from '../../composables'\n\nconst x = use$x()\nconst suggestions = ref([\n {\n query: 'Chips',\n facets: [],\n key: 'chips',\n totalResults: 10,\n results: [],\n modelName: 'PopularSearch',\n },\n {\n query: 'Puzzle',\n facets: [],\n key: 'puzzle',\n totalResults: 5,\n results: [],\n modelName: 'PopularSearch',\n },\n])\nfunction emitSuggestionSelected(event, suggestion) {\n x.emit('UserAcceptedAQuery', suggestion.query, { target: event.target })\n x.emit('UserSelectedAQuerySuggestion', suggestion, { target: event.target })\n}\n</script>\n```\n\n### Play with props\n\nIn this example, the suggestions has been limited to render a maximum of 3 items. _Type \"puzzle\" or\nanother toy in the input field to try it out!_\n\n```vue\n<template>\n <BaseSuggestions :suggestions=\"suggestions\" :maxItemsToRender=\"3\" />\n</template>\n\n<script setup>\nimport { BaseSuggestions } from '@empathyco/x-components'\nconst suggestions = [\n {\n facets: [],\n key: 'chips',\n query: 'Chips',\n totalResults: 10,\n results: [],\n modelName: 'PopularSearch',\n },\n {\n facets: [],\n key: 'puzzle',\n query: 'Puzzle',\n totalResults: 5,\n results: [],\n modelName: 'PopularSearch',\n },\n {\n facets: [],\n key: 'lego',\n query: 'Lego',\n totalResults: 8,\n results: [],\n modelName: 'PopularSearch',\n },\n {\n facets: [],\n key: 'car',\n query: 'Car',\n totalResults: 3,\n results: [],\n modelName: 'PopularSearch',\n },\n]\n</script>\n```\n\nIn this example, the filters of the suggestion will be rendered along with the query.\n\nThe `showPlainSuggestion` prop can be used to indicate if the suggestion without filter must be\nrendered along with the suggestion with filters.\n\nThis will render:\n\n- Chips //If `showPlainSuggestion` is true\n- Chips EXAMPLE\n\n```vue\n<template>\n <BaseSuggestions :suggestions=\"suggestions\" showFacets showPlainSuggestion />\n</template>\n\n<script setup>\nimport { BaseSuggestions } from '@empathyco/x-components'\nconst suggestions = [\n {\n facets: [\n {\n id: 'exampleFacet',\n label: 'exampleFacet',\n modelName: 'SimpleFacet',\n filters: [\n {\n facetId: 'exampleFacet',\n id: '{!tag=exampleFacet}exampleFacet_60361120_64009600:\"EXAMPLE\"',\n label: 'EXAMPLE',\n selected: false,\n totalResults: 10,\n modelName: 'SimpleFilter',\n },\n ],\n },\n ],\n key: 'chips',\n query: 'Chips',\n totalResults: 10,\n results: [],\n modelName: 'PopularSearch',\n },\n]\n</script>\n```\n\nIn this example, the `suggestionItemClass` prop can be used to add classes to the suggestion item.\n\n```vue\n<template>\n <BaseSuggestions :suggestions=\"suggestions\" suggestionItemClass=\"x-custom-class\" />\n</template>\n\n<script setup>\nimport { BaseSuggestions } from '@empathyco/x-components'\nconst suggestions = [\n {\n facets: [],\n key: 'chips',\n query: 'Chips',\n totalResults: 10,\n results: [],\n modelName: 'PopularSearch',\n },\n]\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;AA2BA;;;;;AAKE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,WAAW,EAAE;AACX,YAAA,IAAI,EAAE,KAA+B;AACrC,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD;;;;AAIE;AACF,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,OAAO,EAAE,IAAI;AACd,SAAA;AACD;;;;AAIE;AACF,QAAA,gBAAgB,EAAE,MAAM;AACxB;;;;AAIE;AACF,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;AACD;;;;;AAKE;AACF,QAAA,mBAAmB,EAAE;AACnB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,KAAK;AACf,SAAA;;AAED,QAAA,mBAAmB,EAAE,MAAM;AAC5B,KAAA;AACD,IAAA,KAAK,CAAC,KAAK,EAAA;AACT;;;;;;;AAOE;AACF,QAAA,MAAM,uBAAsB,GAAI,CAAC,UAAsB,KAAiB;YACtE,QACE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,SACzB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAK,KAAM;AAC3B,gBAAA,GAAG,UAAU;AACb,gBAAA,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,CAAA,EAAG,CAAC;AAC1C,aAAA,CAAC,CAAC,CACL,IAAK,EAAC;AAEV,QAAA,CAAA;AAEA;;;;;;AAME;QACF,MAAM,mBAAkB,GAAI,QAAQ,CAAC,MACnC,KAAK,CAAC;AACH,aAAA,OAAO,CAAC,cACP,KAAK,CAAC,cAAc,UAAU,CAAC,MAAM,EAAE;cACnC,KAAK,CAAC;AACN,kBAAE,CAAC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,EAAC,EAAG,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC;AACxE,kBAAE,uBAAuB,CAAC,UAAU;cACpC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,EAAC,EAAG;aAElC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,CACrC;AAEA;;;;;;AAME;QACF,MAAM,cAAc,CAAC,KAAY,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;AAErF;;;;;;AAME;AACF,QAAA,MAAM,YAAW,GAAI,CAAC,MAAe,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;AAE1E;;;;;AAKE;QACF,MAAM,eAAc,GAAI,QAAQ,CAAC,MAC/B,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,cAC5B,YAAY,CAAC,UAAU,CAAC,MAAM;cAC1B,UAAU,CAAC;AACb,cAAE,CAAA,EAAG,UAAU,CAAC,KAAK,CAAA,IAAA,EAAO,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA,CAAE,CAChE,CACH;AAEA;;;;;;AAME;AACF,QAAA,MAAM,mBAAkB,GAAI,CAAC,UAAsB,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AAEzF,QAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAkB,EAAE;IACrE,CAAC;AACF,CAAA,CAAA;;;;"}
@@ -4,4 +4,4 @@ var css = ".x-suggestions[data-v-60a55deb]{list-style-type:none}.x-suggestions[d
4
4
  injectCss(css);
5
5
 
6
6
  export { css };
7
- //# sourceMappingURL=base-suggestions.vue3.js.map
7
+ //# sourceMappingURL=base-suggestions3.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-suggestions3.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
package/js/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  export { default as AnimateClipPath } from './components/animations/animate-clip-path.vue.js';
2
- import './components/animations/animate-clip-path.vue2.js';
2
+ import './components/animations/animate-clip-path2.vue.js';
3
3
  export { default as AnimateScale } from './components/animations/animate-scale.vue.js';
4
- import './components/animations/animate-scale.vue2.js';
4
+ import './components/animations/animate-scale2.vue.js';
5
5
  export { default as AnimateTranslate } from './components/animations/animate-translate.vue.js';
6
- import './components/animations/animate-translate.vue2.js';
6
+ import './components/animations/animate-translate2.vue.js';
7
7
  export { default as AnimateWidth } from './components/animations/animate-width.vue.js';
8
8
  export { default as ChangeHeight } from './components/animations/change-height.vue.js';
9
9
  export { default as CollapseHeight } from './components/animations/collapse-height.vue.js';
@@ -1,6 +1,6 @@
1
- import _sfc_main from './ai-carousel.vue2.js';
1
+ import _sfc_main from './ai-carousel2.vue.js';
2
2
  import { resolveComponent, openBlock, createBlock, withCtx, createElementBlock, createVNode, createElementVNode, normalizeClass, toDisplayString, createCommentVNode, renderSlot, Fragment, renderList, createTextVNode } from 'vue';
3
- import './ai-carousel.vue3.js';
3
+ import './ai-carousel3.vue.js';
4
4
  import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.js';
5
5
 
6
6
  const _hoisted_1 = {
@@ -1,95 +1,95 @@
1
1
  import { useResizeObserver } from '@vueuse/core';
2
2
  import { defineComponent, ref, computed, watch, onMounted } from 'vue';
3
- import '../../../components/animations/animate-clip-path.vue2.js';
4
- import '../../../components/animations/animate-scale.vue2.js';
5
- import '../../../components/animations/animate-translate.vue2.js';
6
- import '../../../components/animations/animate-width.vue2.js';
7
- import '../../../components/animations/animate-width.vue3.js';
3
+ import '../../../components/animations/animate-clip-path2.vue.js';
4
+ import '../../../components/animations/animate-scale2.vue.js';
5
+ import '../../../components/animations/animate-translate2.vue.js';
6
+ import '../../../components/animations/animate-width2.vue.js';
7
+ import '../../../components/animations/animate-width3.vue.js';
8
8
  import ChangeHeight from '../../../components/animations/change-height.vue.js';
9
9
  import CollapseHeight from '../../../components/animations/collapse-height.vue.js';
10
- import '../../../components/animations/collapse-width.vue2.js';
11
- import '../../../components/animations/collapse-width.vue3.js';
12
- import '../../../components/animations/cross-fade.vue2.js';
13
- import '../../../components/animations/cross-fade.vue3.js';
14
- import '../../../components/animations/fade-and-slide.vue2.js';
15
- import '../../../components/animations/fade-and-slide.vue3.js';
16
- import '../../../components/animations/fade.vue2.js';
17
- import '../../../components/animations/fade.vue3.js';
10
+ import '../../../components/animations/collapse-width2.vue.js';
11
+ import '../../../components/animations/collapse-width3.vue.js';
12
+ import '../../../components/animations/cross-fade2.vue.js';
13
+ import '../../../components/animations/cross-fade3.vue.js';
14
+ import '../../../components/animations/fade-and-slide2.vue.js';
15
+ import '../../../components/animations/fade-and-slide3.vue.js';
16
+ import '../../../components/animations/fade2.vue.js';
17
+ import '../../../components/animations/fade3.vue.js';
18
18
  import '../../../components/animations/no-animation.vue.js';
19
- import '../../../components/animations/staggered-fade-and-slide.vue2.js';
20
- import '../../../components/animations/staggered-fade-and-slide.vue3.js';
21
- import '../../../components/auto-progress-bar.vue2.js';
22
- import '../../../components/auto-progress-bar.vue3.js';
23
- import '../../../components/base-dropdown.vue2.js';
24
- import '../../../components/base-dropdown.vue3.js';
19
+ import '../../../components/animations/staggered-fade-and-slide2.vue.js';
20
+ import '../../../components/animations/staggered-fade-and-slide3.vue.js';
21
+ import '../../../components/auto-progress-bar2.vue.js';
22
+ import '../../../components/auto-progress-bar3.vue.js';
23
+ import '../../../components/base-dropdown2.vue.js';
24
+ import '../../../components/base-dropdown3.vue.js';
25
25
  import BaseEventButton from '../../../components/base-event-button.vue.js';
26
- import '../../../components/base-grid.vue2.js';
27
- import '../../../components/base-grid.vue3.js';
28
- import '../../../components/base-keyboard-navigation.vue2.js';
29
- import '../../../components/base-rating.vue2.js';
30
- import '../../../components/base-rating.vue3.js';
31
- import '../../../components/base-slider.vue2.js';
32
- import '../../../components/base-slider.vue3.js';
33
- import '../../../components/base-switch.vue2.js';
34
- import '../../../components/base-switch.vue3.js';
35
- import '../../../components/base-teleport.vue2.js';
36
- import '../../../components/base-variable-column-grid.vue2.js';
37
- import '../../../components/column-picker/base-column-picker-dropdown.vue2.js';
38
- import '../../../components/column-picker/base-column-picker-list.vue2.js';
39
- import '../../../components/currency/base-currency.vue2.js';
26
+ import '../../../components/base-grid2.vue.js';
27
+ import '../../../components/base-grid3.vue.js';
28
+ import '../../../components/base-keyboard-navigation2.vue.js';
29
+ import '../../../components/base-rating2.vue.js';
30
+ import '../../../components/base-rating3.vue.js';
31
+ import '../../../components/base-slider2.vue.js';
32
+ import '../../../components/base-slider3.vue.js';
33
+ import '../../../components/base-switch2.vue.js';
34
+ import '../../../components/base-switch3.vue.js';
35
+ import '../../../components/base-teleport2.vue.js';
36
+ import '../../../components/base-variable-column-grid2.vue.js';
37
+ import '../../../components/column-picker/base-column-picker-dropdown2.vue.js';
38
+ import '../../../components/column-picker/base-column-picker-list2.vue.js';
39
+ import '../../../components/currency/base-currency2.vue.js';
40
40
  import _sfc_main$2 from '../../../components/display-click-provider.vue.js';
41
41
  import _sfc_main$1 from '../../../components/display-emitter.vue.js';
42
42
  import '../../../components/filters/labels/base-price-filter-label.vue.js';
43
- import '../../../components/filters/labels/base-rating-filter-label.vue2.js';
43
+ import '../../../components/filters/labels/base-rating-filter-label2.vue.js';
44
44
  import '../../../components/global-x-bus.vue.js';
45
- import '../../../components/highlight.vue2.js';
45
+ import '../../../components/highlight2.vue.js';
46
46
  import AIStarIcon from '../../../components/icons/ai-star.vue.js';
47
47
  import ArrowRightIcon from '../../../components/icons/arrow-right.vue.js';
48
48
  import ChevronDownIcon from '../../../components/icons/chevron-down.vue.js';
49
- import '../../../components/items-list.vue2.js';
49
+ import '../../../components/items-list2.vue.js';
50
50
  import '../../../components/location-provider.vue.js';
51
- import '../../../components/modals/base-events-modal-close.vue2.js';
52
- import '../../../components/modals/base-events-modal-open.vue2.js';
53
- import '../../../components/modals/base-events-modal.vue2.js';
54
- import '../../../components/modals/base-id-modal-close.vue2.js';
55
- import '../../../components/modals/base-id-modal-open.vue2.js';
56
- import '../../../components/modals/base-id-modal.vue2.js';
57
- import '../../../components/modals/base-modal.vue2.js';
58
- import '../../../components/modals/base-modal.vue3.js';
59
- import '../../../components/modals/close-main-modal.vue2.js';
60
- import '../../../components/modals/main-modal.vue2.js';
61
- import '../../../components/modals/open-main-modal.vue2.js';
62
- import '../../../components/page-loader-button.vue2.js';
63
- import '../../../components/page-loader-button.vue3.js';
64
- import '../../../components/page-selector.vue2.js';
65
- import '../../../components/page-selector.vue3.js';
66
- import '../../../components/panels/base-header-toggle-panel.vue2.js';
67
- import '../../../components/panels/base-header-toggle-panel.vue3.js';
68
- import '../../../components/panels/base-id-toggle-panel-button.vue2.js';
69
- import '../../../components/panels/base-id-toggle-panel.vue2.js';
70
- import '../../../components/panels/base-tabs-panel.vue2.js';
71
- import '../../../components/panels/base-tabs-panel.vue3.js';
72
- import '../../../components/panels/base-toggle-panel.vue2.js';
73
- import '../../../components/result/base-result-add-to-cart.vue2.js';
74
- import '../../../components/result/base-result-current-price.vue2.js';
75
- import '../../../components/result/base-result-image.vue2.js';
76
- import '../../../components/result/base-result-image.vue3.js';
77
- import '../../../components/result/base-result-link.vue2.js';
78
- import '../../../components/result/base-result-link.vue3.js';
79
- import '../../../components/result/base-result-previous-price.vue2.js';
80
- import '../../../components/result/base-result-rating.vue2.js';
81
- import '../../../components/result/base-result-rating.vue3.js';
82
- import '../../../components/result/result-variant-selector.vue2.js';
83
- import '../../../components/result/result-variant-selector.vue3.js';
51
+ import '../../../components/modals/base-events-modal-close2.vue.js';
52
+ import '../../../components/modals/base-events-modal-open2.vue.js';
53
+ import '../../../components/modals/base-events-modal2.vue.js';
54
+ import '../../../components/modals/base-id-modal-close2.vue.js';
55
+ import '../../../components/modals/base-id-modal-open2.vue.js';
56
+ import '../../../components/modals/base-id-modal2.vue.js';
57
+ import '../../../components/modals/base-modal2.vue.js';
58
+ import '../../../components/modals/base-modal3.vue.js';
59
+ import '../../../components/modals/close-main-modal2.vue.js';
60
+ import '../../../components/modals/main-modal2.vue.js';
61
+ import '../../../components/modals/open-main-modal2.vue.js';
62
+ import '../../../components/page-loader-button2.vue.js';
63
+ import '../../../components/page-loader-button3.vue.js';
64
+ import '../../../components/page-selector2.vue.js';
65
+ import '../../../components/page-selector3.vue.js';
66
+ import '../../../components/panels/base-header-toggle-panel2.vue.js';
67
+ import '../../../components/panels/base-header-toggle-panel3.vue.js';
68
+ import '../../../components/panels/base-id-toggle-panel-button2.vue.js';
69
+ import '../../../components/panels/base-id-toggle-panel2.vue.js';
70
+ import '../../../components/panels/base-tabs-panel2.vue.js';
71
+ import '../../../components/panels/base-tabs-panel3.vue.js';
72
+ import '../../../components/panels/base-toggle-panel2.vue.js';
73
+ import '../../../components/result/base-result-add-to-cart2.vue.js';
74
+ import '../../../components/result/base-result-current-price2.vue.js';
75
+ import '../../../components/result/base-result-image2.vue.js';
76
+ import '../../../components/result/base-result-image3.vue.js';
77
+ import '../../../components/result/base-result-link2.vue.js';
78
+ import '../../../components/result/base-result-link3.vue.js';
79
+ import '../../../components/result/base-result-previous-price2.vue.js';
80
+ import '../../../components/result/base-result-rating2.vue.js';
81
+ import '../../../components/result/base-result-rating3.vue.js';
82
+ import '../../../components/result/result-variant-selector2.vue.js';
83
+ import '../../../components/result/result-variant-selector3.vue.js';
84
84
  import '../../../components/result/result-variants-provider.vue.js';
85
- import '../../../components/scroll/base-scroll.vue2.js';
85
+ import '../../../components/scroll/base-scroll2.vue.js';
86
86
  import '@empathyco/x-utils';
87
87
  import { use$x } from '../../../composables/use-_x.js';
88
88
  import SlidingPanel from '../../../components/sliding-panel.vue.js';
89
- import '../../../components/snippet-callbacks.vue2.js';
90
- import '../../../components/suggestions/base-suggestion.vue2.js';
91
- import '../../../components/suggestions/base-suggestions.vue2.js';
92
- import '../../../components/suggestions/base-suggestions.vue3.js';
89
+ import '../../../components/snippet-callbacks2.vue.js';
90
+ import '../../../components/suggestions/base-suggestion2.vue.js';
91
+ import '../../../components/suggestions/base-suggestions2.vue.js';
92
+ import '../../../components/suggestions/base-suggestions3.vue.js';
93
93
  import '../../../composables/create-use-device.js';
94
94
  import 'vuex';
95
95
  import '../../../plugins/x-bus.js';
@@ -189,4 +189,4 @@ var _sfc_main = defineComponent({
189
189
  });
190
190
 
191
191
  export { _sfc_main as default };
192
- //# sourceMappingURL=ai-carousel.vue2.js.map
192
+ //# sourceMappingURL=ai-carousel2.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-carousel.vue2.js","sources":["../../../../../src/x-modules/ai/components/ai-carousel.vue"],"sourcesContent":["<template>\n <CollapseHeight>\n <div v-if=\"suggestionsSearch.length\" class=\"x-ai-carousel\">\n <DisplayEmitter\n :payload=\"tagging?.toolingDisplay ?? emptyTaggingRequest\"\n :event-metadata=\"{\n feature: 'ai_carousel',\n displayOriginalQuery: query || 'ai-carousel-without-query',\n replaceable: false,\n }\"\n data-test=\"ai-carousel-display-emitter\"\n >\n <span\n class=\"x-ai-carousel-title\"\n :class=\"{ 'x-ai-carousel-title--expanded': titleExpanded }\"\n data-test=\"ai-carousel-title\"\n @click=\"toggleTitleExpansion\"\n >\n <AIStarIcon class=\"x-ai-carousel-title-icon\" />\n <ChangeHeight>\n <span\n ref=\"titleRef\"\n class=\"x-ai-carousel-title-text\"\n :class=\"{ 'x-ai-carousel-title-text--expanded': titleExpanded }\"\n >\n {{ title }}\n </span>\n </ChangeHeight>\n <button\n v-if=\"isTitleOverflowing\"\n class=\"x-ai-carousel-title-button\"\n data-test=\"ai-carousel-title-button\"\n :aria-label=\"titleExpanded ? 'Collapse' : 'Expand'\"\n >\n <ChevronDownIcon\n class=\"x-ai-carousel-title-button-icon\"\n :class=\"{ 'x-ai-carousel-title-button-icon--expanded': titleExpanded }\"\n />\n </button>\n </span>\n </DisplayEmitter>\n\n <AiGroupedCarousel v-if=\"group\">\n <template #sliding-panel-addons=\"{ arrivedState }\">\n <slot name=\"sliding-panels-addons\" :arrived-state=\"arrivedState\" />\n </template>\n <template #sliding-panel-left-button>\n <slot name=\"sliding-panels-left-button\" />\n </template>\n <template #sliding-panel-right-button>\n <slot name=\"sliding-panels-right-button\" />\n </template>\n <template #result=\"{ result }\">\n <slot name=\"result\" :result=\"result\" />\n </template>\n </AiGroupedCarousel>\n\n <div v-else class=\"x-ai-carousel-suggestions\" data-test=\"ai-carousel-suggestions-container\">\n <DisplayEmitter\n v-for=\"{ query: suggestionQuery, results: queriesResults } in suggestionsSearch\"\n :key=\"suggestionQuery\"\n :payload=\"tagging?.searchQueries[suggestionQuery].toolingDisplay ?? emptyTaggingRequest\"\n :event-metadata=\"{\n feature: 'ai_carousel',\n displayOriginalQuery: query || 'ai-carousel-without-query',\n replaceable: false,\n }\"\n data-test=\"ai-carousel-query-display-emitter\"\n >\n <div class=\"x-ai-carousel-suggestion\" data-test=\"ai-carousel-suggestion\">\n <BaseEventButton\n class=\"x-ai-carousel-suggestion-query-btn\"\n :events=\"{ UserAcceptedAQuery: suggestionQuery }\"\n >\n {{ suggestionQuery }}\n <ArrowRightIcon class=\"x-ai-carousel-suggestion-query-btn-icon\" />\n </BaseEventButton>\n\n <DisplayClickProvider\n :tooling-display-tagging=\"tagging?.searchQueries[suggestionQuery].toolingDisplayClick\"\n :tooling-add2-cart-tagging=\"\n tagging?.searchQueries[suggestionQuery].toolingDisplayAdd2Cart\n \"\n result-feature=\"ai_carousel\"\n >\n <slot name=\"sliding-panel\" :results=\"queriesResults\">\n <SlidingPanel\n :class=\"slidingPanelClasses\"\n :scroll-container-class=\"slidingPanelContainerClasses\"\n :button-class=\"slidingPanelButtonsClasses\"\n :reset-on-content-change=\"false\"\n >\n <template #sliding-panel-addons=\"{ arrivedState }\">\n <slot name=\"sliding-panels-addons\" :arrived-state=\"arrivedState\" />\n </template>\n <template #sliding-panel-left-button>\n <slot name=\"sliding-panels-left-button\" />\n </template>\n <template #sliding-panel-right-button>\n <slot name=\"sliding-panels-right-button\" />\n </template>\n <ul class=\"x-ai-carousel-suggestion-results\">\n <li\n v-for=\"result in queriesResults\"\n :key=\"result.id\"\n data-test=\"ai-carousel-suggestion-result\"\n >\n <!-- @slot (required) result card -->\n <slot name=\"result\" :result=\"result\" />\n </li>\n </ul>\n </SlidingPanel>\n </slot>\n </DisplayClickProvider>\n </div>\n </DisplayEmitter>\n <slot name=\"suggestions-extra-content\" />\n </div>\n\n <slot name=\"extra-content\" />\n <slot name=\"cta-button\" />\n </div>\n </CollapseHeight>\n</template>\n\n<script lang=\"ts\">\nimport type { TaggingRequest } from '@empathyco/x-types'\nimport { useResizeObserver } from '@vueuse/core'\nimport { computed, defineComponent, onMounted, ref, watch } from 'vue'\nimport {\n AIStarIcon,\n ArrowRightIcon,\n BaseEventButton,\n ChangeHeight,\n ChevronDownIcon,\n CollapseHeight,\n DisplayClickProvider,\n DisplayEmitter,\n SlidingPanel,\n} from '../../../components'\nimport { use$x, useState } from '../../../composables'\nimport { aiXModule } from '../x-module'\nimport AiGroupedCarousel from './ai-grouped-carousel.vue'\n\nexport default defineComponent({\n xModule: aiXModule.name,\n components: {\n AIStarIcon,\n AiGroupedCarousel,\n ArrowRightIcon,\n BaseEventButton,\n ChangeHeight,\n ChevronDownIcon,\n CollapseHeight,\n DisplayClickProvider,\n DisplayEmitter,\n SlidingPanel,\n },\n props: {\n /* The title text displayed */\n title: String,\n /* The classes added to the sliding panel. */\n slidingPanelClasses: String,\n /* The classes added to the sliding panel container. */\n slidingPanelContainerClasses: String,\n /* The classes added to the sliding panel buttons. */\n slidingPanelButtonsClasses: String,\n /* Controls whether the carousel should group results or display N carousels per N queries. */\n group: {\n type: Boolean,\n default: true,\n },\n },\n setup(props) {\n const $x = use$x()\n const { query, suggestionsSearch, queries, tagging } = useState('ai')\n const emptyTaggingRequest: TaggingRequest = { url: '', params: {} }\n\n const titleRef = ref<HTMLElement | null>(null)\n const titleExpanded = ref(false)\n const isTitleOverflowing = ref(false)\n\n /**\n * Checks if the title is overflowing and updates the state.\n */\n function updateTitleOverflow() {\n if (titleExpanded.value) {\n return\n }\n if (titleRef.value) {\n isTitleOverflowing.value = titleRef.value.scrollWidth > titleRef.value.clientWidth\n }\n }\n\n /**\n * Toggles the title expanded state if it is overflowing.\n */\n function toggleTitleExpansion() {\n if (isTitleOverflowing.value) {\n titleExpanded.value = !titleExpanded.value\n }\n }\n\n const title = computed(() => {\n if (!props.title) {\n const queriesList = new Intl.ListFormat('en', {\n style: 'long',\n type: 'conjunction',\n }).format(queries.value.map(({ query }) => query))\n return `Searching for ${queriesList}`\n }\n return props.title\n })\n\n watch(queries, () => {\n if (queries.value.length > 0) {\n $x.emit('AiSuggestionsSearchRequestUpdated')\n }\n })\n\n onMounted(() => {\n $x.emit('AiComponentMounted', undefined, { feature: 'ai_carousel' })\n })\n\n useResizeObserver(titleRef, updateTitleOverflow)\n\n return {\n emptyTaggingRequest,\n isTitleOverflowing,\n queries,\n query,\n suggestionsSearch,\n tagging,\n title,\n titleExpanded,\n titleRef,\n toggleTitleExpansion,\n }\n },\n})\n</script>\n\n<style lang=\"css\">\n.x-ai-carousel {\n --color: var(--x-ai-carousel-color, #bbc9cf);\n --color-lighter: var(--x-ai-carousel-color-lighter, color-mix(in srgb, var(--color) 25%, white));\n\n padding: 8px 0;\n position: relative;\n border-radius: 1.5rem;\n background-color: var(--color-lighter);\n}\n\n.x-ai-carousel-title {\n display: flex;\n font-size: 12px;\n gap: 8px;\n align-items: flex-start;\n margin: 0 14px 8px;\n cursor: pointer;\n}\n.x-ai-carousel-title-text {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.x-ai-carousel-title-text--expanded {\n white-space: normal;\n}\n.x-ai-carousel-title-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n color: var(--color);\n flex-shrink: 0;\n margin-bottom: auto;\n}\n.x-ai-carousel-title-button {\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--color);\n margin-bottom: auto;\n}\n.x-ai-carousel-title-button-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n transition: transform 0.3s ease;\n}\n.x-ai-carousel-title-button-icon--expanded {\n transform: rotate(180deg);\n}\n\n.x-ai-carousel-suggestions {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding-bottom: 1rem;\n}\n\n.x-ai-carousel-suggestion {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.x-ai-carousel-suggestion-query-btn {\n border-color: transparent;\n background-color: transparent;\n margin-left: 1rem;\n margin-right: 1rem;\n font-weight: 700;\n width: fit-content;\n display: flex;\n align-items: center;\n gap: 1rem;\n cursor: pointer;\n}\n\n.x-ai-carousel-suggestion-query-btn-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n}\n\n.x-ai-carousel-suggestion-results {\n display: flex;\n gap: 1rem;\n padding-left: 1rem;\n padding-right: 1rem;\n}\n</style>\n"],"names":["DisplayClickProvider","DisplayEmitter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgJA,gBAAe,eAAe,CAAC;IAC7B,OAAO,EAAE,SAAS,CAAC,IAAI;AACvB,IAAA,UAAU,EAAE;QACV,UAAU;QACV,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,YAAY;QACZ,eAAe;QACf,cAAc;8BACdA,WAAoB;wBACpBC,WAAc;QACd,YAAY;AACb,KAAA;AACD,IAAA,KAAK,EAAE;;AAEL,QAAA,KAAK,EAAE,MAAM;;AAEb,QAAA,mBAAmB,EAAE,MAAM;;AAE3B,QAAA,4BAA4B,EAAE,MAAM;;AAEpC,QAAA,0BAA0B,EAAE,MAAM;;AAElC,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,IAAI;AACd,SAAA;AACF,KAAA;AACD,IAAA,KAAK,CAAC,KAAK,EAAA;AACT,QAAA,MAAM,EAAC,GAAI,KAAK,EAAC;AACjB,QAAA,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAM,EAAE,GAAI,QAAQ,CAAC,IAAI,CAAA;QACpE,MAAM,mBAAmB,GAAmB,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAC,EAAE;AAElE,QAAA,MAAM,QAAO,GAAI,GAAG,CAAqB,IAAI,CAAA;AAC7C,QAAA,MAAM,aAAY,GAAI,GAAG,CAAC,KAAK,CAAA;AAC/B,QAAA,MAAM,qBAAqB,GAAG,CAAC,KAAK,CAAA;AAEpC;;AAEE;AACF,QAAA,SAAS,mBAAmB,GAAA;AAC1B,YAAA,IAAI,aAAa,CAAC,KAAK,EAAE;gBACvB;YACF;AACA,YAAA,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClB,gBAAA,kBAAkB,CAAC,KAAI,GAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,KAAK,CAAC,WAAU;YACnF;QACF;AAEA;;AAEE;AACF,QAAA,SAAS,oBAAoB,GAAA;AAC3B,YAAA,IAAI,kBAAkB,CAAC,KAAK,EAAE;AAC5B,gBAAA,aAAa,CAAC,KAAI,GAAI,CAAC,aAAa,CAAC,KAAI;YAC3C;QACF;AAEA,QAAA,MAAM,KAAI,GAAI,QAAQ,CAAC,MAAI;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAChB,MAAM,WAAU,GAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAC5C,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,CAAA;gBACjD,OAAO,CAAA,cAAA,EAAiB,WAAW,CAAA,CAAC;YACtC;YACA,OAAO,KAAK,CAAC,KAAI;AACnB,QAAA,CAAC,CAAA;AAED,QAAA,KAAK,CAAC,OAAO,EAAE,MAAI;YACjB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAK,GAAI,CAAC,EAAE;AAC5B,gBAAA,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAA;YAC7C;AACF,QAAA,CAAC,CAAA;QAED,SAAS,CAAC,MAAI;AACZ,YAAA,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,aAAY,EAAG,CAAA;AACrE,QAAA,CAAC,CAAA;AAED,QAAA,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,CAAA;QAE/C,OAAO;YACL,mBAAmB;YACnB,kBAAkB;YAClB,OAAO;YACP,KAAK;YACL,iBAAiB;YACjB,OAAO;YACP,KAAK;YACL,aAAa;YACb,QAAQ;YACR,oBAAoB;SACtB;IACF,CAAC;AACF,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"ai-carousel2.vue.js","sources":["../../../../../src/x-modules/ai/components/ai-carousel.vue"],"sourcesContent":["<template>\n <CollapseHeight>\n <div v-if=\"suggestionsSearch.length\" class=\"x-ai-carousel\">\n <DisplayEmitter\n :payload=\"tagging?.toolingDisplay ?? emptyTaggingRequest\"\n :event-metadata=\"{\n feature: 'ai_carousel',\n displayOriginalQuery: query || 'ai-carousel-without-query',\n replaceable: false,\n }\"\n data-test=\"ai-carousel-display-emitter\"\n >\n <span\n class=\"x-ai-carousel-title\"\n :class=\"{ 'x-ai-carousel-title--expanded': titleExpanded }\"\n data-test=\"ai-carousel-title\"\n @click=\"toggleTitleExpansion\"\n >\n <AIStarIcon class=\"x-ai-carousel-title-icon\" />\n <ChangeHeight>\n <span\n ref=\"titleRef\"\n class=\"x-ai-carousel-title-text\"\n :class=\"{ 'x-ai-carousel-title-text--expanded': titleExpanded }\"\n >\n {{ title }}\n </span>\n </ChangeHeight>\n <button\n v-if=\"isTitleOverflowing\"\n class=\"x-ai-carousel-title-button\"\n data-test=\"ai-carousel-title-button\"\n :aria-label=\"titleExpanded ? 'Collapse' : 'Expand'\"\n >\n <ChevronDownIcon\n class=\"x-ai-carousel-title-button-icon\"\n :class=\"{ 'x-ai-carousel-title-button-icon--expanded': titleExpanded }\"\n />\n </button>\n </span>\n </DisplayEmitter>\n\n <AiGroupedCarousel v-if=\"group\">\n <template #sliding-panel-addons=\"{ arrivedState }\">\n <slot name=\"sliding-panels-addons\" :arrived-state=\"arrivedState\" />\n </template>\n <template #sliding-panel-left-button>\n <slot name=\"sliding-panels-left-button\" />\n </template>\n <template #sliding-panel-right-button>\n <slot name=\"sliding-panels-right-button\" />\n </template>\n <template #result=\"{ result }\">\n <slot name=\"result\" :result=\"result\" />\n </template>\n </AiGroupedCarousel>\n\n <div v-else class=\"x-ai-carousel-suggestions\" data-test=\"ai-carousel-suggestions-container\">\n <DisplayEmitter\n v-for=\"{ query: suggestionQuery, results: queriesResults } in suggestionsSearch\"\n :key=\"suggestionQuery\"\n :payload=\"tagging?.searchQueries[suggestionQuery].toolingDisplay ?? emptyTaggingRequest\"\n :event-metadata=\"{\n feature: 'ai_carousel',\n displayOriginalQuery: query || 'ai-carousel-without-query',\n replaceable: false,\n }\"\n data-test=\"ai-carousel-query-display-emitter\"\n >\n <div class=\"x-ai-carousel-suggestion\" data-test=\"ai-carousel-suggestion\">\n <BaseEventButton\n class=\"x-ai-carousel-suggestion-query-btn\"\n :events=\"{ UserAcceptedAQuery: suggestionQuery }\"\n >\n {{ suggestionQuery }}\n <ArrowRightIcon class=\"x-ai-carousel-suggestion-query-btn-icon\" />\n </BaseEventButton>\n\n <DisplayClickProvider\n :tooling-display-tagging=\"tagging?.searchQueries[suggestionQuery].toolingDisplayClick\"\n :tooling-add2-cart-tagging=\"\n tagging?.searchQueries[suggestionQuery].toolingDisplayAdd2Cart\n \"\n result-feature=\"ai_carousel\"\n >\n <slot name=\"sliding-panel\" :results=\"queriesResults\">\n <SlidingPanel\n :class=\"slidingPanelClasses\"\n :scroll-container-class=\"slidingPanelContainerClasses\"\n :button-class=\"slidingPanelButtonsClasses\"\n :reset-on-content-change=\"false\"\n >\n <template #sliding-panel-addons=\"{ arrivedState }\">\n <slot name=\"sliding-panels-addons\" :arrived-state=\"arrivedState\" />\n </template>\n <template #sliding-panel-left-button>\n <slot name=\"sliding-panels-left-button\" />\n </template>\n <template #sliding-panel-right-button>\n <slot name=\"sliding-panels-right-button\" />\n </template>\n <ul class=\"x-ai-carousel-suggestion-results\">\n <li\n v-for=\"result in queriesResults\"\n :key=\"result.id\"\n data-test=\"ai-carousel-suggestion-result\"\n >\n <!-- @slot (required) result card -->\n <slot name=\"result\" :result=\"result\" />\n </li>\n </ul>\n </SlidingPanel>\n </slot>\n </DisplayClickProvider>\n </div>\n </DisplayEmitter>\n <slot name=\"suggestions-extra-content\" />\n </div>\n\n <slot name=\"extra-content\" />\n <slot name=\"cta-button\" />\n </div>\n </CollapseHeight>\n</template>\n\n<script lang=\"ts\">\nimport type { TaggingRequest } from '@empathyco/x-types'\nimport { useResizeObserver } from '@vueuse/core'\nimport { computed, defineComponent, onMounted, ref, watch } from 'vue'\nimport {\n AIStarIcon,\n ArrowRightIcon,\n BaseEventButton,\n ChangeHeight,\n ChevronDownIcon,\n CollapseHeight,\n DisplayClickProvider,\n DisplayEmitter,\n SlidingPanel,\n} from '../../../components'\nimport { use$x, useState } from '../../../composables'\nimport { aiXModule } from '../x-module'\nimport AiGroupedCarousel from './ai-grouped-carousel.vue'\n\nexport default defineComponent({\n xModule: aiXModule.name,\n components: {\n AIStarIcon,\n AiGroupedCarousel,\n ArrowRightIcon,\n BaseEventButton,\n ChangeHeight,\n ChevronDownIcon,\n CollapseHeight,\n DisplayClickProvider,\n DisplayEmitter,\n SlidingPanel,\n },\n props: {\n /* The title text displayed */\n title: String,\n /* The classes added to the sliding panel. */\n slidingPanelClasses: String,\n /* The classes added to the sliding panel container. */\n slidingPanelContainerClasses: String,\n /* The classes added to the sliding panel buttons. */\n slidingPanelButtonsClasses: String,\n /* Controls whether the carousel should group results or display N carousels per N queries. */\n group: {\n type: Boolean,\n default: true,\n },\n },\n setup(props) {\n const $x = use$x()\n const { query, suggestionsSearch, queries, tagging } = useState('ai')\n const emptyTaggingRequest: TaggingRequest = { url: '', params: {} }\n\n const titleRef = ref<HTMLElement | null>(null)\n const titleExpanded = ref(false)\n const isTitleOverflowing = ref(false)\n\n /**\n * Checks if the title is overflowing and updates the state.\n */\n function updateTitleOverflow() {\n if (titleExpanded.value) {\n return\n }\n if (titleRef.value) {\n isTitleOverflowing.value = titleRef.value.scrollWidth > titleRef.value.clientWidth\n }\n }\n\n /**\n * Toggles the title expanded state if it is overflowing.\n */\n function toggleTitleExpansion() {\n if (isTitleOverflowing.value) {\n titleExpanded.value = !titleExpanded.value\n }\n }\n\n const title = computed(() => {\n if (!props.title) {\n const queriesList = new Intl.ListFormat('en', {\n style: 'long',\n type: 'conjunction',\n }).format(queries.value.map(({ query }) => query))\n return `Searching for ${queriesList}`\n }\n return props.title\n })\n\n watch(queries, () => {\n if (queries.value.length > 0) {\n $x.emit('AiSuggestionsSearchRequestUpdated')\n }\n })\n\n onMounted(() => {\n $x.emit('AiComponentMounted', undefined, { feature: 'ai_carousel' })\n })\n\n useResizeObserver(titleRef, updateTitleOverflow)\n\n return {\n emptyTaggingRequest,\n isTitleOverflowing,\n queries,\n query,\n suggestionsSearch,\n tagging,\n title,\n titleExpanded,\n titleRef,\n toggleTitleExpansion,\n }\n },\n})\n</script>\n\n<style lang=\"css\">\n.x-ai-carousel {\n --color: var(--x-ai-carousel-color, #bbc9cf);\n --color-lighter: var(--x-ai-carousel-color-lighter, color-mix(in srgb, var(--color) 25%, white));\n\n padding: 8px 0;\n position: relative;\n border-radius: 1.5rem;\n background-color: var(--color-lighter);\n}\n\n.x-ai-carousel-title {\n display: flex;\n font-size: 12px;\n gap: 8px;\n align-items: flex-start;\n margin: 0 14px 8px;\n cursor: pointer;\n}\n.x-ai-carousel-title-text {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.x-ai-carousel-title-text--expanded {\n white-space: normal;\n}\n.x-ai-carousel-title-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n color: var(--color);\n flex-shrink: 0;\n margin-bottom: auto;\n}\n.x-ai-carousel-title-button {\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--color);\n margin-bottom: auto;\n}\n.x-ai-carousel-title-button-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n transition: transform 0.3s ease;\n}\n.x-ai-carousel-title-button-icon--expanded {\n transform: rotate(180deg);\n}\n\n.x-ai-carousel-suggestions {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding-bottom: 1rem;\n}\n\n.x-ai-carousel-suggestion {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.x-ai-carousel-suggestion-query-btn {\n border-color: transparent;\n background-color: transparent;\n margin-left: 1rem;\n margin-right: 1rem;\n font-weight: 700;\n width: fit-content;\n display: flex;\n align-items: center;\n gap: 1rem;\n cursor: pointer;\n}\n\n.x-ai-carousel-suggestion-query-btn-icon {\n height: 1rem;\n aspect-ratio: 1 / 1;\n}\n\n.x-ai-carousel-suggestion-results {\n display: flex;\n gap: 1rem;\n padding-left: 1rem;\n padding-right: 1rem;\n}\n</style>\n"],"names":["DisplayClickProvider","DisplayEmitter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgJA,gBAAe,eAAe,CAAC;IAC7B,OAAO,EAAE,SAAS,CAAC,IAAI;AACvB,IAAA,UAAU,EAAE;QACV,UAAU;QACV,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,YAAY;QACZ,eAAe;QACf,cAAc;8BACdA,WAAoB;wBACpBC,WAAc;QACd,YAAY;AACb,KAAA;AACD,IAAA,KAAK,EAAE;;AAEL,QAAA,KAAK,EAAE,MAAM;;AAEb,QAAA,mBAAmB,EAAE,MAAM;;AAE3B,QAAA,4BAA4B,EAAE,MAAM;;AAEpC,QAAA,0BAA0B,EAAE,MAAM;;AAElC,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE,IAAI;AACd,SAAA;AACF,KAAA;AACD,IAAA,KAAK,CAAC,KAAK,EAAA;AACT,QAAA,MAAM,EAAC,GAAI,KAAK,EAAC;AACjB,QAAA,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAM,EAAE,GAAI,QAAQ,CAAC,IAAI,CAAA;QACpE,MAAM,mBAAmB,GAAmB,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAC,EAAE;AAElE,QAAA,MAAM,QAAO,GAAI,GAAG,CAAqB,IAAI,CAAA;AAC7C,QAAA,MAAM,aAAY,GAAI,GAAG,CAAC,KAAK,CAAA;AAC/B,QAAA,MAAM,qBAAqB,GAAG,CAAC,KAAK,CAAA;AAEpC;;AAEE;AACF,QAAA,SAAS,mBAAmB,GAAA;AAC1B,YAAA,IAAI,aAAa,CAAC,KAAK,EAAE;gBACvB;YACF;AACA,YAAA,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClB,gBAAA,kBAAkB,CAAC,KAAI,GAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,KAAK,CAAC,WAAU;YACnF;QACF;AAEA;;AAEE;AACF,QAAA,SAAS,oBAAoB,GAAA;AAC3B,YAAA,IAAI,kBAAkB,CAAC,KAAK,EAAE;AAC5B,gBAAA,aAAa,CAAC,KAAI,GAAI,CAAC,aAAa,CAAC,KAAI;YAC3C;QACF;AAEA,QAAA,MAAM,KAAI,GAAI,QAAQ,CAAC,MAAI;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAChB,MAAM,WAAU,GAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAC5C,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,CAAA;gBACjD,OAAO,CAAA,cAAA,EAAiB,WAAW,CAAA,CAAC;YACtC;YACA,OAAO,KAAK,CAAC,KAAI;AACnB,QAAA,CAAC,CAAA;AAED,QAAA,KAAK,CAAC,OAAO,EAAE,MAAI;YACjB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAK,GAAI,CAAC,EAAE;AAC5B,gBAAA,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAA;YAC7C;AACF,QAAA,CAAC,CAAA;QAED,SAAS,CAAC,MAAI;AACZ,YAAA,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,aAAY,EAAG,CAAA;AACrE,QAAA,CAAC,CAAA;AAED,QAAA,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,CAAA;QAE/C,OAAO;YACL,mBAAmB;YACnB,kBAAkB;YAClB,OAAO;YACP,KAAK;YACL,iBAAiB;YACjB,OAAO;YACP,KAAK;YACL,aAAa;YACb,QAAQ;YACR,oBAAoB;SACtB;IACF,CAAC;AACF,CAAA,CAAA;;;;"}
@@ -4,4 +4,4 @@ var css = ".x-ai-carousel{--color:var(--x-ai-carousel-color,#bbc9cf);--color-lig
4
4
  injectCss(css);
5
5
 
6
6
  export { css };
7
- //# sourceMappingURL=ai-carousel.vue3.js.map
7
+ //# sourceMappingURL=ai-carousel3.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-carousel3.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,4 +1,4 @@
1
- import _sfc_main from './ai-grouped-carousel.vue2.js';
1
+ import _sfc_main from './ai-grouped-carousel2.vue.js';
2
2
  import { resolveComponent, openBlock, createBlock, normalizeClass, withCtx, createElementVNode, createElementBlock, Fragment, renderList, renderSlot } from 'vue';
3
3
  import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.js';
4
4
 
@@ -0,0 +1,123 @@
1
+ import { defineComponent } from 'vue';
2
+ import '../../../components/animations/animate-clip-path2.vue.js';
3
+ import '../../../components/animations/animate-scale2.vue.js';
4
+ import '../../../components/animations/animate-translate2.vue.js';
5
+ import '../../../components/animations/animate-width2.vue.js';
6
+ import '../../../components/animations/animate-width3.vue.js';
7
+ import '../../../components/animations/change-height2.vue.js';
8
+ import '../../../components/animations/change-height3.vue.js';
9
+ import '../../../components/animations/collapse-height2.vue.js';
10
+ import '../../../components/animations/collapse-height3.vue.js';
11
+ import '../../../components/animations/collapse-width2.vue.js';
12
+ import '../../../components/animations/collapse-width3.vue.js';
13
+ import '../../../components/animations/cross-fade2.vue.js';
14
+ import '../../../components/animations/cross-fade3.vue.js';
15
+ import '../../../components/animations/fade-and-slide2.vue.js';
16
+ import '../../../components/animations/fade-and-slide3.vue.js';
17
+ import '../../../components/animations/fade2.vue.js';
18
+ import '../../../components/animations/fade3.vue.js';
19
+ import '../../../components/animations/no-animation.vue.js';
20
+ import '../../../components/animations/staggered-fade-and-slide2.vue.js';
21
+ import '../../../components/animations/staggered-fade-and-slide3.vue.js';
22
+ import '../../../components/auto-progress-bar2.vue.js';
23
+ import '../../../components/auto-progress-bar3.vue.js';
24
+ import '../../../components/base-dropdown2.vue.js';
25
+ import '../../../components/base-dropdown3.vue.js';
26
+ import '../../../components/base-event-button2.vue.js';
27
+ import '../../../components/base-grid2.vue.js';
28
+ import '../../../components/base-grid3.vue.js';
29
+ import '../../../components/base-keyboard-navigation2.vue.js';
30
+ import '../../../components/base-rating2.vue.js';
31
+ import '../../../components/base-rating3.vue.js';
32
+ import '../../../components/base-slider2.vue.js';
33
+ import '../../../components/base-slider3.vue.js';
34
+ import '../../../components/base-switch2.vue.js';
35
+ import '../../../components/base-switch3.vue.js';
36
+ import '../../../components/base-teleport2.vue.js';
37
+ import '../../../components/base-variable-column-grid2.vue.js';
38
+ import '../../../components/column-picker/base-column-picker-dropdown2.vue.js';
39
+ import '../../../components/column-picker/base-column-picker-list2.vue.js';
40
+ import '../../../components/currency/base-currency2.vue.js';
41
+ import _sfc_main$1 from '../../../components/display-click-provider.vue.js';
42
+ import '../../../components/display-emitter.vue.js';
43
+ import '../../../components/filters/labels/base-price-filter-label.vue.js';
44
+ import '../../../components/filters/labels/base-rating-filter-label2.vue.js';
45
+ import '../../../components/global-x-bus.vue.js';
46
+ import '../../../components/highlight2.vue.js';
47
+ import '../../../components/items-list2.vue.js';
48
+ import '../../../components/location-provider.vue.js';
49
+ import '../../../components/modals/base-events-modal-close2.vue.js';
50
+ import '../../../components/modals/base-events-modal-open2.vue.js';
51
+ import '../../../components/modals/base-events-modal2.vue.js';
52
+ import '../../../components/modals/base-id-modal-close2.vue.js';
53
+ import '../../../components/modals/base-id-modal-open2.vue.js';
54
+ import '../../../components/modals/base-id-modal2.vue.js';
55
+ import '../../../components/modals/base-modal2.vue.js';
56
+ import '../../../components/modals/base-modal3.vue.js';
57
+ import '../../../components/modals/close-main-modal2.vue.js';
58
+ import '../../../components/modals/main-modal2.vue.js';
59
+ import '../../../components/modals/open-main-modal2.vue.js';
60
+ import '../../../components/page-loader-button2.vue.js';
61
+ import '../../../components/page-loader-button3.vue.js';
62
+ import '../../../components/page-selector2.vue.js';
63
+ import '../../../components/page-selector3.vue.js';
64
+ import '../../../components/panels/base-header-toggle-panel2.vue.js';
65
+ import '../../../components/panels/base-header-toggle-panel3.vue.js';
66
+ import '../../../components/panels/base-id-toggle-panel-button2.vue.js';
67
+ import '../../../components/panels/base-id-toggle-panel2.vue.js';
68
+ import '../../../components/panels/base-tabs-panel2.vue.js';
69
+ import '../../../components/panels/base-tabs-panel3.vue.js';
70
+ import '../../../components/panels/base-toggle-panel2.vue.js';
71
+ import '../../../components/result/base-result-add-to-cart2.vue.js';
72
+ import '../../../components/result/base-result-current-price2.vue.js';
73
+ import '../../../components/result/base-result-image2.vue.js';
74
+ import '../../../components/result/base-result-image3.vue.js';
75
+ import '../../../components/result/base-result-link2.vue.js';
76
+ import '../../../components/result/base-result-link3.vue.js';
77
+ import '../../../components/result/base-result-previous-price2.vue.js';
78
+ import '../../../components/result/base-result-rating2.vue.js';
79
+ import '../../../components/result/base-result-rating3.vue.js';
80
+ import '../../../components/result/result-variant-selector2.vue.js';
81
+ import '../../../components/result/result-variant-selector3.vue.js';
82
+ import '../../../components/result/result-variants-provider.vue.js';
83
+ import '../../../components/scroll/base-scroll2.vue.js';
84
+ import '@empathyco/x-utils';
85
+ import 'vuex';
86
+ import '../../../plugins/x-bus.js';
87
+ import '../../../plugins/x-plugin.js';
88
+ import 'rxjs';
89
+ import SlidingPanel from '../../../components/sliding-panel.vue.js';
90
+ import '../../../components/snippet-callbacks2.vue.js';
91
+ import '../../../components/suggestions/base-suggestion2.vue.js';
92
+ import '../../../components/suggestions/base-suggestions2.vue.js';
93
+ import '../../../components/suggestions/base-suggestions3.vue.js';
94
+ import '../../../composables/create-use-device.js';
95
+ import '@vueuse/core';
96
+ import { useState } from '../../../composables/use-state.js';
97
+
98
+ var _sfc_main = defineComponent({
99
+ components: {
100
+ DisplayClickProvider: _sfc_main$1,
101
+ SlidingPanel,
102
+ },
103
+ props: {
104
+ /* The title text displayed */
105
+ title: String,
106
+ /* The classes added to the sliding panel. */
107
+ slidingPanelClasses: String,
108
+ /* The classes added to the sliding panel container. */
109
+ slidingPanelContainerClasses: String,
110
+ /* The classes added to the sliding panel buttons. */
111
+ slidingPanelButtonsClasses: String,
112
+ },
113
+ setup() {
114
+ const { suggestionsSearch, tagging } = useState('ai');
115
+ return {
116
+ suggestionsSearch,
117
+ tagging,
118
+ };
119
+ },
120
+ });
121
+
122
+ export { _sfc_main as default };
123
+ //# sourceMappingURL=ai-grouped-carousel2.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-grouped-carousel.vue2.js","sources":["../../../../../src/x-modules/ai/components/ai-grouped-carousel.vue"],"sourcesContent":["<template>\n <SlidingPanel\n :class=\"slidingPanelClasses\"\n :scroll-container-class=\"slidingPanelContainerClasses\"\n :button-class=\"slidingPanelButtonsClasses\"\n :reset-on-content-change=\"false\"\n >\n <template #sliding-panel-addons=\"{ arrivedState }\">\n <slot name=\"sliding-panels-addons\" :arrived-state=\"arrivedState\" />\n </template>\n <template #sliding-panel-left-button>\n <slot name=\"sliding-panels-left-button\" />\n </template>\n <template #sliding-panel-right-button>\n <slot name=\"sliding-panels-right-button\" />\n </template>\n <ul class=\"x-ai-carousel-suggestion-results\">\n <DisplayClickProvider\n v-for=\"suggestion in suggestionsSearch\"\n :key=\"suggestion.query\"\n :tooling-display-tagging=\"tagging?.searchQueries[suggestion.query].toolingDisplayClick\"\n :tooling-add2-cart-tagging=\"tagging?.searchQueries[suggestion.query].toolingDisplayAdd2Cart\"\n result-feature=\"ai_carousel\"\n >\n <li\n v-for=\"result in suggestion.results\"\n :key=\"result.id\"\n data-test=\"ai-carousel-suggestion-result\"\n >\n <!-- @slot (required) result card -->\n <slot name=\"result\" :result=\"result\" />\n </li>\n </DisplayClickProvider>\n </ul>\n </SlidingPanel>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { DisplayClickProvider, SlidingPanel } from '../../../components'\nimport { useState } from '../../../composables'\n\nexport default defineComponent({\n components: {\n DisplayClickProvider,\n SlidingPanel,\n },\n props: {\n /* The title text displayed */\n title: String,\n /* The classes added to the sliding panel. */\n slidingPanelClasses: String,\n /* The classes added to the sliding panel container. */\n slidingPanelContainerClasses: String,\n /* The classes added to the sliding panel buttons. */\n slidingPanelButtonsClasses: String,\n },\n setup() {\n const { suggestionsSearch, tagging } = useState('ai')\n\n return {\n suggestionsSearch,\n tagging,\n }\n },\n})\n</script>\n"],"names":["DisplayClickProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,gBAAe,eAAe,CAAC;AAC7B,IAAA,UAAU,EAAE;8BACVA,WAAoB;QACpB,YAAY;AACb,KAAA;AACD,IAAA,KAAK,EAAE;;AAEL,QAAA,KAAK,EAAE,MAAM;;AAEb,QAAA,mBAAmB,EAAE,MAAM;;AAE3B,QAAA,4BAA4B,EAAE,MAAM;;AAEpC,QAAA,0BAA0B,EAAE,MAAM;AACnC,KAAA;IACD,KAAK,GAAA;QACH,MAAM,EAAE,iBAAiB,EAAE,OAAM,EAAE,GAAI,QAAQ,CAAC,IAAI,CAAA;QAEpD,OAAO;YACL,iBAAiB;YACjB,OAAO;SACT;IACF,CAAC;AACF,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"ai-grouped-carousel2.vue.js","sources":["../../../../../src/x-modules/ai/components/ai-grouped-carousel.vue"],"sourcesContent":["<template>\n <SlidingPanel\n :class=\"slidingPanelClasses\"\n :scroll-container-class=\"slidingPanelContainerClasses\"\n :button-class=\"slidingPanelButtonsClasses\"\n :reset-on-content-change=\"false\"\n >\n <template #sliding-panel-addons=\"{ arrivedState }\">\n <slot name=\"sliding-panels-addons\" :arrived-state=\"arrivedState\" />\n </template>\n <template #sliding-panel-left-button>\n <slot name=\"sliding-panels-left-button\" />\n </template>\n <template #sliding-panel-right-button>\n <slot name=\"sliding-panels-right-button\" />\n </template>\n <ul class=\"x-ai-carousel-suggestion-results\">\n <DisplayClickProvider\n v-for=\"suggestion in suggestionsSearch\"\n :key=\"suggestion.query\"\n :tooling-display-tagging=\"tagging?.searchQueries[suggestion.query].toolingDisplayClick\"\n :tooling-add2-cart-tagging=\"tagging?.searchQueries[suggestion.query].toolingDisplayAdd2Cart\"\n result-feature=\"ai_carousel\"\n >\n <li\n v-for=\"result in suggestion.results\"\n :key=\"result.id\"\n data-test=\"ai-carousel-suggestion-result\"\n >\n <!-- @slot (required) result card -->\n <slot name=\"result\" :result=\"result\" />\n </li>\n </DisplayClickProvider>\n </ul>\n </SlidingPanel>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { DisplayClickProvider, SlidingPanel } from '../../../components'\nimport { useState } from '../../../composables'\n\nexport default defineComponent({\n components: {\n DisplayClickProvider,\n SlidingPanel,\n },\n props: {\n /* The title text displayed */\n title: String,\n /* The classes added to the sliding panel. */\n slidingPanelClasses: String,\n /* The classes added to the sliding panel container. */\n slidingPanelContainerClasses: String,\n /* The classes added to the sliding panel buttons. */\n slidingPanelButtonsClasses: String,\n },\n setup() {\n const { suggestionsSearch, tagging } = useState('ai')\n\n return {\n suggestionsSearch,\n tagging,\n }\n },\n})\n</script>\n"],"names":["DisplayClickProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,gBAAe,eAAe,CAAC;AAC7B,IAAA,UAAU,EAAE;8BACVA,WAAoB;QACpB,YAAY;AACb,KAAA;AACD,IAAA,KAAK,EAAE;;AAEL,QAAA,KAAK,EAAE,MAAM;;AAEb,QAAA,mBAAmB,EAAE,MAAM;;AAE3B,QAAA,4BAA4B,EAAE,MAAM;;AAEpC,QAAA,0BAA0B,EAAE,MAAM;AACnC,KAAA;IACD,KAAK,GAAA;QACH,MAAM,EAAE,iBAAiB,EAAE,OAAM,EAAE,GAAI,QAAQ,CAAC,IAAI,CAAA;QAEpD,OAAO;YACL,iBAAiB;YACjB,OAAO;SACT;IACF,CAAC;AACF,CAAA,CAAA;;;;"}