@empathyco/x-components 6.0.0-alpha.5 → 6.0.0-alpha.51

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 (761) hide show
  1. package/CHANGELOG.md +448 -0
  2. package/core/index.js +8 -1
  3. package/core/index.js.map +1 -1
  4. package/design-system/deprecated-full-theme.css +596 -596
  5. package/docs/API-reference/api/x-adapter-platform.md +12 -0
  6. package/docs/API-reference/api/x-adapter-platform.nextqueriesrelatedpromptsschema.md +11 -0
  7. package/docs/API-reference/api/x-adapter-platform.platformadapter.relatedprompts.md +11 -0
  8. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.md +23 -0
  9. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.nextqueries.md +11 -0
  10. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.suggestiontext.md +11 -0
  11. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.tagging.md +11 -0
  12. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompt.type.md +11 -0
  13. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptnextqueriestagging.md +22 -0
  14. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptnextqueriestagging.toolingdisplay.md +11 -0
  15. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptnextqueriestagging.toolingdisplayadd2cart.md +11 -0
  16. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptnextqueriestagging.toolingdisplayclick.md +11 -0
  17. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptsrequest.md +15 -0
  18. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptsresponse.data.md +13 -0
  19. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptsresponse.md +21 -0
  20. package/docs/API-reference/api/x-adapter-platform.platformrelatedpromptsresponse.status.md +11 -0
  21. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompttagging.md +22 -0
  22. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompttagging.nextqueries.md +11 -0
  23. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompttagging.toolingdisplay.md +11 -0
  24. package/docs/API-reference/api/x-adapter-platform.platformrelatedprompttagging.toolingdisplayclick.md +11 -0
  25. package/docs/API-reference/api/x-adapter-platform.platformsearchresponse.catalog.md +6 -0
  26. package/docs/API-reference/api/x-adapter-platform.platformsearchresponse.md +1 -1
  27. package/docs/API-reference/api/x-adapter-platform.relatedpromptschema.md +13 -0
  28. package/docs/API-reference/api/x-adapter-platform.relatedpromptsendpointadapter.md +13 -0
  29. package/docs/API-reference/api/x-adapter-platform.relatedpromptsrequestmapper.md +13 -0
  30. package/docs/API-reference/api/x-adapter-platform.relatedpromptsrequestschema.md +13 -0
  31. package/docs/API-reference/api/x-adapter-platform.relatedpromptsresponsemapper.md +13 -0
  32. package/docs/API-reference/api/x-adapter-platform.relatedpromptsresponseschema.md +13 -0
  33. package/docs/API-reference/api/x-components.animationprop.md +6 -1
  34. package/docs/API-reference/api/x-components.bannerslist.md +3 -3
  35. package/docs/API-reference/api/x-components.baseaddtocart.md +1 -0
  36. package/docs/API-reference/api/x-components.basedropdown.md +5 -5
  37. package/docs/API-reference/api/x-components.baseeventsmodal.md +2 -2
  38. package/docs/API-reference/api/x-components.basegrid.md +3 -3
  39. package/docs/API-reference/api/x-components.baseheadertogglepanel.md +5 -5
  40. package/docs/API-reference/api/x-components.baseidmodal.md +2 -2
  41. package/docs/API-reference/api/x-components.baseidtogglepanel.md +5 -5
  42. package/docs/API-reference/api/x-components.basemodal.md +10 -10
  43. package/docs/API-reference/api/x-components.baseresultimage.md +9 -9
  44. package/docs/API-reference/api/x-components.baseslider.md +70 -0
  45. package/docs/API-reference/api/x-components.basesuggestions.md +3 -3
  46. package/docs/API-reference/api/x-components.basetabspanel.md +8 -8
  47. package/docs/API-reference/api/x-components.basetogglepanel.md +3 -3
  48. package/docs/API-reference/api/x-components.basevariablecolumngrid.md +3 -3
  49. package/docs/API-reference/api/x-components.cancelfetchandsaverelatedprompts.md +13 -0
  50. package/docs/API-reference/api/x-components.configmutations.config.md +11 -0
  51. package/docs/API-reference/api/x-components.configmutations.md +29 -0
  52. package/docs/API-reference/api/x-components.configmutations.mergeconfig.md +24 -0
  53. package/docs/API-reference/api/x-components.configmutations.setconfig.md +24 -0
  54. package/docs/API-reference/api/x-components.createrelatedtagsquerygetter.md +26 -0
  55. package/docs/API-reference/api/x-components.createrelatedtagsquerygetteroptions.getrelatedtags.md +13 -0
  56. package/docs/API-reference/api/x-components.createrelatedtagsquerygetteroptions.md +20 -0
  57. package/docs/API-reference/api/x-components.createtrackrelatedprompttoolingdisplayclickwire.md +19 -0
  58. package/docs/API-reference/api/x-components.createtracktoolingadd2cartwire.md +19 -0
  59. package/docs/API-reference/api/x-components.createtracktoolingdisplaywire.md +19 -0
  60. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice._constructor_.md → x-components.defaultexternaltaggingservice._constructor_.md} +3 -3
  61. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.add_to_cart_id_key.md +13 -0
  62. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.instance.md +13 -0
  63. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.localstorageservice.md +11 -0
  64. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.md +43 -0
  65. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.movetosessionstorage.md → x-components.defaultexternaltaggingservice.movetosessionstorage.md} +2 -2
  66. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.result_clicked_id_key.md +13 -0
  67. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.sessionstorageservice.md +11 -0
  68. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.storagekey.md +11 -0
  69. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.storagettlms.md +11 -0
  70. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.store.md → x-components.defaultexternaltaggingservice.store.md} +2 -2
  71. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.storeaddtocart.md +24 -0
  72. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.storeresultclicked.md → x-components.defaultexternaltaggingservice.storeresultclicked.md} +3 -3
  73. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.trackaddtocart.md → x-components.defaultexternaltaggingservice.trackaddtocart.md} +3 -3
  74. package/docs/API-reference/api/x-components.displayclickprovider.md +66 -0
  75. package/docs/API-reference/api/x-components.empathize.md +6 -6
  76. package/docs/API-reference/api/x-components.empathizemutations.md +1 -1
  77. package/docs/API-reference/api/x-components.externaltaggingservice.md +23 -0
  78. package/docs/API-reference/api/{x-components.pdpaddtocartservice.movetosessionstorage.md → x-components.externaltaggingservice.movetosessionstorage.md} +2 -2
  79. package/docs/API-reference/api/x-components.externaltaggingservice.storeaddtocart.md +24 -0
  80. package/docs/API-reference/api/{x-components.pdpaddtocartservice.storeresultclicked.md → x-components.externaltaggingservice.storeresultclicked.md} +3 -3
  81. package/docs/API-reference/api/{x-components.pdpaddtocartservice.trackaddtocart.md → x-components.externaltaggingservice.trackaddtocart.md} +3 -3
  82. package/docs/API-reference/api/x-components.facets.md +3 -3
  83. package/docs/API-reference/api/x-components.facetsmutations.md +1 -1
  84. package/docs/API-reference/api/x-components.featurelocation.md +1 -1
  85. package/docs/API-reference/api/x-components.fetchandsaverelatedprompts.md +13 -0
  86. package/docs/API-reference/api/x-components.fetchrelatedprompts.md +13 -0
  87. package/docs/API-reference/api/x-components.filterslist.md +3 -3
  88. package/docs/API-reference/api/x-components.globalxbus.md +12 -0
  89. package/docs/API-reference/api/x-components.hierarchicalfilter.md +8 -2
  90. package/docs/API-reference/api/x-components.historyqueriesmutations.md +1 -1
  91. package/docs/API-reference/api/x-components.historyqueriesstate.md +1 -1
  92. package/docs/API-reference/api/x-components.identifierresults.md +3 -3
  93. package/docs/API-reference/api/x-components.identifierresultsmutations.md +1 -1
  94. package/docs/API-reference/api/x-components.identifierresultsstate.md +1 -1
  95. package/docs/API-reference/api/x-components.installxoptions.domelement.md +1 -1
  96. package/docs/API-reference/api/x-components.installxoptions.installextraplugins.md +2 -2
  97. package/docs/API-reference/api/x-components.installxoptions.md +1 -1
  98. package/docs/API-reference/api/x-components.itemslist.md +3 -3
  99. package/docs/API-reference/api/x-components.mainmodal.md +2 -2
  100. package/docs/API-reference/api/x-components.md +38 -3
  101. package/docs/API-reference/api/x-components.mergeconfig.md +27 -0
  102. package/docs/API-reference/api/x-components.multicolumnmaxwidthlayout.md +5 -5
  103. package/docs/API-reference/api/x-components.myhistory.md +3 -3
  104. package/docs/API-reference/api/x-components.nextqueriesgroup.md +22 -0
  105. package/docs/API-reference/api/x-components.nextqueriesgroup.modelname.md +11 -0
  106. package/docs/API-reference/api/x-components.nextqueriesgroup.nextqueries.md +11 -0
  107. package/docs/API-reference/api/x-components.nextquerieslist.md +3 -3
  108. package/docs/API-reference/api/x-components.nextqueriesmutations.md +1 -1
  109. package/docs/API-reference/api/x-components.nextqueriesstate.md +1 -1
  110. package/docs/API-reference/api/x-components.pageselector.md +80 -0
  111. package/docs/API-reference/api/x-components.partialresultslist.md +3 -3
  112. package/docs/API-reference/api/x-components.popularsearchesmutations.md +1 -1
  113. package/docs/API-reference/api/x-components.promotedslist.md +3 -3
  114. package/docs/API-reference/api/x-components.queriespreviewmutations.md +1 -1
  115. package/docs/API-reference/api/x-components.queryfeature.md +1 -1
  116. package/docs/API-reference/api/x-components.querymutations.md +20 -0
  117. package/docs/API-reference/api/x-components.querymutations.setquery.md +24 -0
  118. package/docs/API-reference/api/x-components.querypreviewlist.md +3 -3
  119. package/docs/API-reference/api/x-components.querystate.md +20 -0
  120. package/docs/API-reference/api/x-components.querystate.query.md +13 -0
  121. package/docs/API-reference/api/x-components.querysuggestionsmutations.md +1 -1
  122. package/docs/API-reference/api/x-components.querysuggestionsstate.md +1 -1
  123. package/docs/API-reference/api/x-components.recommendations.md +3 -3
  124. package/docs/API-reference/api/x-components.recommendationsmutations.md +1 -1
  125. package/docs/API-reference/api/x-components.relatedprompt.md +33 -0
  126. package/docs/API-reference/api/x-components.relatedpromptrequest.md +13 -0
  127. package/docs/API-reference/api/x-components.relatedpromptsactioncontext.md +15 -0
  128. package/docs/API-reference/api/x-components.relatedpromptsactions.cancelfetchandsaverelatedprompts.md +17 -0
  129. package/docs/API-reference/api/x-components.relatedpromptsactions.fetchandsaverelatedprompts.md +24 -0
  130. package/docs/API-reference/api/x-components.relatedpromptsactions.fetchrelatedprompts.md +24 -0
  131. package/docs/API-reference/api/x-components.relatedpromptsactions.md +22 -0
  132. package/docs/API-reference/api/x-components.relatedpromptsgetters.md +20 -0
  133. package/docs/API-reference/api/x-components.relatedpromptsgetters.request.md +13 -0
  134. package/docs/API-reference/api/x-components.relatedpromptslist.md +72 -0
  135. package/docs/API-reference/api/x-components.relatedpromptsmutations.md +26 -0
  136. package/docs/API-reference/api/x-components.relatedpromptsmutations.resetrelatedpromptsstate.md +17 -0
  137. package/docs/API-reference/api/x-components.relatedpromptsmutations.resetselectedprompt.md +17 -0
  138. package/docs/API-reference/api/x-components.relatedpromptsmutations.setparams.md +24 -0
  139. package/docs/API-reference/api/x-components.relatedpromptsmutations.setrelatedpromptsproducts.md +24 -0
  140. package/docs/API-reference/api/x-components.relatedpromptsmutations.setselectedprompt.md +24 -0
  141. package/docs/API-reference/api/x-components.relatedpromptsmutations.setselectedquery.md +24 -0
  142. package/docs/API-reference/api/x-components.relatedpromptsstate.md +24 -0
  143. package/docs/API-reference/api/x-components.relatedpromptsstate.params.md +13 -0
  144. package/docs/API-reference/api/x-components.relatedpromptsstate.relatedprompts.md +13 -0
  145. package/docs/API-reference/api/x-components.relatedpromptsstate.selectedprompt.md +13 -0
  146. package/docs/API-reference/api/x-components.relatedpromptsstate.selectedquery.md +13 -0
  147. package/docs/API-reference/api/x-components.relatedpromptstaglist.md +73 -0
  148. package/docs/API-reference/api/x-components.relatedpromptsxevents.md +24 -0
  149. package/docs/API-reference/api/x-components.relatedpromptsxevents.relatedpromptsrequestupdated.md +13 -0
  150. package/docs/API-reference/api/x-components.relatedpromptsxevents.userclickedarelatedpromptadd2cart.md +13 -0
  151. package/docs/API-reference/api/x-components.relatedpromptsxevents.userclickedarelatedpromptresult.md +13 -0
  152. package/docs/API-reference/api/x-components.relatedpromptsxevents.userselectedarelatedprompt.md +13 -0
  153. package/docs/API-reference/api/x-components.relatedpromptsxevents.userselectedarelatedpromptquery.md +13 -0
  154. package/docs/API-reference/api/x-components.relatedpromptsxmodule.md +13 -0
  155. package/docs/API-reference/api/x-components.relatedpromptsxstoremodule.md +15 -0
  156. package/docs/API-reference/api/x-components.relatedtags.md +3 -3
  157. package/docs/API-reference/api/x-components.relatedtagsmutations.md +1 -1
  158. package/docs/API-reference/api/x-components.relatedtagsstate.md +1 -1
  159. package/docs/API-reference/api/x-components.resultslist.md +3 -3
  160. package/docs/API-reference/api/x-components.scrolltotop.md +5 -5
  161. package/docs/API-reference/api/x-components.searchboxmutations.md +1 -1
  162. package/docs/API-reference/api/x-components.searchboxstate.md +1 -1
  163. package/docs/API-reference/api/x-components.searchconfig.md +1 -0
  164. package/docs/API-reference/api/x-components.searchconfig.pagemode.md +11 -0
  165. package/docs/API-reference/api/x-components.searchinputplaceholder.md +3 -3
  166. package/docs/API-reference/api/x-components.searchmutations.md +2 -1
  167. package/docs/API-reference/api/x-components.searchmutations.setstats.md +24 -0
  168. package/docs/API-reference/api/x-components.searchstate.md +2 -1
  169. package/docs/API-reference/api/x-components.searchstate.stats.md +13 -0
  170. package/docs/API-reference/api/x-components.searchxevents.md +1 -0
  171. package/docs/API-reference/api/x-components.searchxevents.userselectedapage.md +13 -0
  172. package/docs/API-reference/api/x-components.selectedfilterslist.md +3 -3
  173. package/docs/API-reference/api/x-components.semanticqueriesmutations.md +1 -1
  174. package/docs/API-reference/api/x-components.semanticqueriesstate.md +1 -1
  175. package/docs/API-reference/api/x-components.setconfig.md +27 -0
  176. package/docs/API-reference/api/x-components.setquery.md +25 -0
  177. package/docs/API-reference/api/x-components.simplefilter.md +6 -0
  178. package/docs/API-reference/api/x-components.singlecolumnlayout.md +3 -3
  179. package/docs/API-reference/api/x-components.slidingpanel.md +13 -5
  180. package/docs/API-reference/api/x-components.snippetcallbacks.md +6 -0
  181. package/docs/API-reference/api/x-components.sortdropdown.md +1 -1
  182. package/docs/API-reference/api/x-components.tagging.md +6 -6
  183. package/docs/API-reference/api/x-components.taggingconfig.md +2 -2
  184. package/docs/API-reference/api/{x-components.taggingconfig.clickedresultstoragekey.md → x-components.taggingconfig.storagekey.md} +3 -3
  185. package/docs/API-reference/api/x-components.taggingconfig.storagettlms.md +13 -0
  186. package/docs/API-reference/api/x-components.taggingmutations.md +1 -1
  187. package/docs/API-reference/api/x-components.taggingxevents.md +1 -1
  188. package/docs/API-reference/api/x-components.taggingxevents.resulturltrackingenabled.md +1 -1
  189. package/docs/API-reference/api/x-components.trackrelatedprompttoolingdisplayclickwire.md +13 -0
  190. package/docs/API-reference/api/x-components.tracktoolingadd2cartwire.md +13 -0
  191. package/docs/API-reference/api/x-components.tracktoolingdisplayclickedwire.md +13 -0
  192. package/docs/API-reference/api/x-components.typing.md +13 -0
  193. package/docs/API-reference/api/x-components.typingoptions.md +22 -0
  194. package/docs/API-reference/api/x-components.typingoptions.speed.md +13 -0
  195. package/docs/API-reference/api/x-components.typingoptions.targetattr.md +18 -0
  196. package/docs/API-reference/api/x-components.typingoptions.text.md +13 -0
  197. package/docs/API-reference/api/x-components.urlmutations.md +1 -1
  198. package/docs/API-reference/api/x-components.urlstate.md +1 -1
  199. package/docs/API-reference/api/x-components.usealiasapi.md +1 -0
  200. package/docs/API-reference/api/x-components.usealiasapi.pricestats.md +16 -0
  201. package/docs/API-reference/api/x-components.xeventstypes.md +3 -3
  202. package/docs/API-reference/api/x-components.xmodulestree.md +1 -0
  203. package/docs/API-reference/api/x-components.xmodulestree.relatedprompts.md +11 -0
  204. package/docs/API-reference/api/x-types.md +5 -0
  205. package/docs/API-reference/api/x-types.relatedprompt.md +26 -0
  206. package/docs/API-reference/api/x-types.relatedprompt.nextqueries.md +13 -0
  207. package/docs/API-reference/api/x-types.relatedprompt.relatedpromptnextqueries.md +13 -0
  208. package/docs/API-reference/api/x-types.relatedprompt.suggestiontext.md +13 -0
  209. package/docs/API-reference/api/x-types.relatedprompt.tagging.md +17 -0
  210. package/docs/API-reference/api/x-types.relatedprompt.toolingdisplaytagging.md +13 -0
  211. package/docs/API-reference/api/x-types.relatedprompt.type.md +13 -0
  212. package/docs/API-reference/api/x-types.relatedpromptnextquery.md +23 -0
  213. package/docs/API-reference/api/x-types.relatedpromptnextquery.query.md +13 -0
  214. package/docs/API-reference/api/x-types.relatedpromptnextquery.toolingdisplayadd2carttagging.md +13 -0
  215. package/docs/API-reference/api/x-types.relatedpromptnextquery.toolingdisplayclicktagging.md +13 -0
  216. package/docs/API-reference/api/x-types.relatedpromptnextquery.toolingdisplaytagging.md +13 -0
  217. package/docs/API-reference/api/x-types.relatedpromptsrequest.md +15 -0
  218. package/docs/API-reference/api/x-types.relatedpromptsresponse.md +20 -0
  219. package/docs/API-reference/api/x-types.relatedpromptsresponse.relatedprompts.md +11 -0
  220. package/docs/API-reference/api/x-types.searchresponse.md +1 -0
  221. package/docs/API-reference/api/x-types.searchresponse.stats.md +11 -0
  222. package/docs/API-reference/api/x-types.stats.md +22 -0
  223. package/docs/API-reference/api/x-types.stats.price.md +14 -0
  224. package/docs/API-reference/api/x-types.xcomponentsadapter.md +1 -0
  225. package/docs/API-reference/api/x-types.xcomponentsadapter.relatedprompts.md +11 -0
  226. package/docs/API-reference/components/common/result/x-components.base-result-image.md +2 -2
  227. package/docs/API-reference/components/common/x-components.base-slider.md +189 -0
  228. package/docs/API-reference/components/common/x-components.display-click-provider.md +17 -0
  229. package/docs/API-reference/components/common/x-components.items-list.md +1 -1
  230. package/docs/API-reference/components/common/x-components.page-selector.md +136 -0
  231. package/docs/API-reference/components/common/x-components.sliding-panel.md +7 -7
  232. package/docs/API-reference/components/facets/x-components.facets/facets.md +1 -1
  233. package/docs/API-reference/components/facets/x-components.lists/selected-filters-list.md +1 -1
  234. package/docs/API-reference/components/related-prompts/x-components.related-prompt.md +22 -0
  235. package/docs/API-reference/components/related-prompts/x-components.related-prompts-list.md +196 -0
  236. package/docs/API-reference/components/related-prompts/x-components.related-prompts-tag-list.md +32 -0
  237. package/docs/API-reference/components/search/x-components.results-list.md +1 -1
  238. package/docs/API-reference/components/tagging/x-components.tagging.md +15 -16
  239. package/js/components/animations/fade-and-slide.vue.js +1 -2
  240. package/js/components/animations/fade-and-slide.vue.js.map +1 -1
  241. package/js/components/base-dropdown.vue.js +1 -3
  242. package/js/components/base-dropdown.vue.js.map +1 -1
  243. package/js/components/base-dropdown.vue2.js +1 -7
  244. package/js/components/base-dropdown.vue2.js.map +1 -1
  245. package/js/components/base-event-button.vue.js +1 -2
  246. package/js/components/base-event-button.vue.js.map +1 -1
  247. package/js/components/base-grid.vue.js +11 -18
  248. package/js/components/base-grid.vue.js.map +1 -1
  249. package/js/components/base-grid.vue2.js.map +1 -1
  250. package/js/components/base-grid.vue3.js +1 -1
  251. package/js/components/base-keyboard-navigation.vue.js +1 -2
  252. package/js/components/base-keyboard-navigation.vue.js.map +1 -1
  253. package/js/components/base-rating.vue.js +1 -3
  254. package/js/components/base-rating.vue.js.map +1 -1
  255. package/js/components/base-slider.vue.js +65 -0
  256. package/js/components/base-slider.vue.js.map +1 -0
  257. package/js/components/base-slider.vue2.js +109 -0
  258. package/js/components/base-slider.vue2.js.map +1 -0
  259. package/js/components/base-slider.vue3.js +7 -0
  260. package/js/components/base-slider.vue3.js.map +1 -0
  261. package/js/components/base-variable-column-grid.vue.js +1 -2
  262. package/js/components/base-variable-column-grid.vue.js.map +1 -1
  263. package/js/components/column-picker/base-column-picker-dropdown.vue.js +1 -3
  264. package/js/components/column-picker/base-column-picker-dropdown.vue.js.map +1 -1
  265. package/js/components/column-picker/base-column-picker-list.vue.js +1 -3
  266. package/js/components/column-picker/base-column-picker-list.vue.js.map +1 -1
  267. package/js/components/display-click-provider.vue.js +74 -0
  268. package/js/components/display-click-provider.vue.js.map +1 -0
  269. package/js/components/display-click-provider.vue2.js +6 -0
  270. package/js/components/display-click-provider.vue2.js.map +1 -0
  271. package/js/components/filters/labels/base-rating-filter-label.vue.js +1 -3
  272. package/js/components/filters/labels/base-rating-filter-label.vue.js.map +1 -1
  273. package/js/components/icons/cross-tiny.vue.js +2 -2
  274. package/js/components/icons/plus.vue.js +2 -2
  275. package/js/components/items-list.vue.js +1 -2
  276. package/js/components/items-list.vue.js.map +1 -1
  277. package/js/components/items-list.vue2.js +2 -2
  278. package/js/components/items-list.vue2.js.map +1 -1
  279. package/js/components/layouts/fixed-header-and-asides-layout.vue.js +1 -7
  280. package/js/components/layouts/fixed-header-and-asides-layout.vue.js.map +1 -1
  281. package/js/components/layouts/multi-column-max-width-layout.vue.js +1 -9
  282. package/js/components/layouts/multi-column-max-width-layout.vue.js.map +1 -1
  283. package/js/components/layouts/single-column-layout.vue.js +1 -9
  284. package/js/components/layouts/single-column-layout.vue.js.map +1 -1
  285. package/js/components/modals/base-events-modal-close.vue.js +1 -2
  286. package/js/components/modals/base-events-modal-close.vue.js.map +1 -1
  287. package/js/components/modals/base-events-modal-open.vue.js +1 -2
  288. package/js/components/modals/base-events-modal-open.vue.js.map +1 -1
  289. package/js/components/modals/base-id-modal-close.vue.js +1 -2
  290. package/js/components/modals/base-id-modal-close.vue.js.map +1 -1
  291. package/js/components/modals/base-id-modal-open.vue.js +1 -2
  292. package/js/components/modals/base-id-modal-open.vue.js.map +1 -1
  293. package/js/components/modals/base-modal.vue.js +1 -2
  294. package/js/components/modals/base-modal.vue.js.map +1 -1
  295. package/js/components/modals/base-modal.vue2.js +13 -6
  296. package/js/components/modals/base-modal.vue2.js.map +1 -1
  297. package/js/components/page-loader-button.vue.js +8 -10
  298. package/js/components/page-loader-button.vue.js.map +1 -1
  299. package/js/components/page-loader-button.vue2.js.map +1 -1
  300. package/js/components/page-loader-button.vue3.js +7 -0
  301. package/js/components/page-loader-button.vue3.js.map +1 -0
  302. package/js/components/page-selector.vue.js +78 -0
  303. package/js/components/page-selector.vue.js.map +1 -0
  304. package/js/components/page-selector.vue2.js +128 -0
  305. package/js/components/page-selector.vue2.js.map +1 -0
  306. package/js/components/page-selector.vue3.js +7 -0
  307. package/js/components/page-selector.vue3.js.map +1 -0
  308. package/js/components/panels/base-header-toggle-panel.vue.js +1 -5
  309. package/js/components/panels/base-header-toggle-panel.vue.js.map +1 -1
  310. package/js/components/panels/base-id-toggle-panel-button.vue.js +1 -2
  311. package/js/components/panels/base-id-toggle-panel-button.vue.js.map +1 -1
  312. package/js/components/panels/base-id-toggle-panel.vue.js +1 -2
  313. package/js/components/panels/base-id-toggle-panel.vue.js.map +1 -1
  314. package/js/components/panels/base-tabs-panel.vue.js +1 -4
  315. package/js/components/panels/base-tabs-panel.vue.js.map +1 -1
  316. package/js/components/panels/base-toggle-panel.vue.js +1 -2
  317. package/js/components/panels/base-toggle-panel.vue.js.map +1 -1
  318. package/js/components/result/base-result-add-to-cart.vue.js +3 -3
  319. package/js/components/result/base-result-add-to-cart.vue.js.map +1 -1
  320. package/js/components/result/base-result-add-to-cart.vue2.js +19 -5
  321. package/js/components/result/base-result-add-to-cart.vue2.js.map +1 -1
  322. package/js/components/result/base-result-current-price.vue.js +1 -2
  323. package/js/components/result/base-result-current-price.vue.js.map +1 -1
  324. package/js/components/result/base-result-image.vue.js +39 -59
  325. package/js/components/result/base-result-image.vue.js.map +1 -1
  326. package/js/components/result/base-result-image.vue2.js +5 -5
  327. package/js/components/result/base-result-image.vue2.js.map +1 -1
  328. package/js/components/result/base-result-link.vue.js +1 -2
  329. package/js/components/result/base-result-link.vue.js.map +1 -1
  330. package/js/components/result/base-result-previous-price.vue.js +1 -2
  331. package/js/components/result/base-result-previous-price.vue.js.map +1 -1
  332. package/js/components/result/base-result-rating.vue.js +1 -4
  333. package/js/components/result/base-result-rating.vue.js.map +1 -1
  334. package/js/components/result/result-variant-selector.vue.js +1 -3
  335. package/js/components/result/result-variant-selector.vue.js.map +1 -1
  336. package/js/components/sliding-panel.vue.js +3 -6
  337. package/js/components/sliding-panel.vue.js.map +1 -1
  338. package/js/components/sliding-panel.vue2.js +2 -2
  339. package/js/components/sliding-panel.vue2.js.map +1 -1
  340. package/js/components/suggestions/base-suggestion.vue.js +1 -2
  341. package/js/components/suggestions/base-suggestion.vue.js.map +1 -1
  342. package/js/components/suggestions/base-suggestions.vue.js +1 -2
  343. package/js/components/suggestions/base-suggestions.vue.js.map +1 -1
  344. package/js/composables/use-alias-api.js +4 -1
  345. package/js/composables/use-alias-api.js.map +1 -1
  346. package/js/composables/use-getter.js +1 -1
  347. package/js/composables/use-state.js +1 -1
  348. package/js/directives/typing.js +58 -0
  349. package/js/directives/typing.js.map +1 -0
  350. package/js/index.js +20 -3
  351. package/js/index.js.map +1 -1
  352. package/js/types/animation-prop.js +5 -0
  353. package/js/types/animation-prop.js.map +1 -1
  354. package/js/x-installer/x-installer/x-installer.js +3 -3
  355. package/js/x-installer/x-installer/x-installer.js.map +1 -1
  356. package/js/x-modules/device/store/emitters.js +1 -0
  357. package/js/x-modules/device/store/emitters.js.map +1 -1
  358. package/js/x-modules/empathize/components/empathize.vue.js +1 -2
  359. package/js/x-modules/empathize/components/empathize.vue.js.map +1 -1
  360. package/js/x-modules/empathize/components/empathize.vue2.js +8 -3
  361. package/js/x-modules/empathize/components/empathize.vue2.js.map +1 -1
  362. package/js/x-modules/empathize/store/emitters.js +1 -0
  363. package/js/x-modules/empathize/store/emitters.js.map +1 -1
  364. package/js/x-modules/experience-controls/store/emitters.js +1 -0
  365. package/js/x-modules/experience-controls/store/emitters.js.map +1 -1
  366. package/js/x-modules/extra-params/components/extra-params.vue.js +1 -1
  367. package/js/x-modules/extra-params/components/extra-params.vue.js.map +1 -1
  368. package/js/x-modules/extra-params/store/emitters.js +1 -0
  369. package/js/x-modules/extra-params/store/emitters.js.map +1 -1
  370. package/js/x-modules/facets/components/facets/facets.vue.js +20 -33
  371. package/js/x-modules/facets/components/facets/facets.vue.js.map +1 -1
  372. package/js/x-modules/facets/components/facets/facets.vue2.js +2 -2
  373. package/js/x-modules/facets/components/facets/facets.vue2.js.map +1 -1
  374. package/js/x-modules/facets/components/filters/all-filter.vue.js +1 -2
  375. package/js/x-modules/facets/components/filters/all-filter.vue.js.map +1 -1
  376. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js +1 -6
  377. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js.map +1 -1
  378. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js +1 -3
  379. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js.map +1 -1
  380. package/js/x-modules/facets/components/filters/number-range-filter.vue.js +1 -3
  381. package/js/x-modules/facets/components/filters/number-range-filter.vue.js.map +1 -1
  382. package/js/x-modules/facets/components/filters/simple-filter.vue.js +1 -3
  383. package/js/x-modules/facets/components/filters/simple-filter.vue.js.map +1 -1
  384. package/js/x-modules/facets/components/lists/filters-list.vue.js +1 -2
  385. package/js/x-modules/facets/components/lists/filters-list.vue.js.map +1 -1
  386. package/js/x-modules/facets/components/lists/filters-search.vue.js +1 -3
  387. package/js/x-modules/facets/components/lists/filters-search.vue.js.map +1 -1
  388. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js +11 -18
  389. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js.map +1 -1
  390. package/js/x-modules/facets/components/lists/selected-filters-list.vue2.js +2 -2
  391. package/js/x-modules/facets/components/lists/selected-filters-list.vue2.js.map +1 -1
  392. package/js/x-modules/facets/components/lists/sliced-filters.vue.js +1 -4
  393. package/js/x-modules/facets/components/lists/sliced-filters.vue.js.map +1 -1
  394. package/js/x-modules/history-queries/components/clear-history-queries.vue.js +1 -2
  395. package/js/x-modules/history-queries/components/clear-history-queries.vue.js.map +1 -1
  396. package/js/x-modules/history-queries/components/history-queries.vue.js +1 -10
  397. package/js/x-modules/history-queries/components/history-queries.vue.js.map +1 -1
  398. package/js/x-modules/history-queries/components/history-query.vue.js +1 -6
  399. package/js/x-modules/history-queries/components/history-query.vue.js.map +1 -1
  400. package/js/x-modules/history-queries/components/my-history.vue.js +1 -4
  401. package/js/x-modules/history-queries/components/my-history.vue.js.map +1 -1
  402. package/js/x-modules/history-queries/components/remove-history-query.vue.js +1 -2
  403. package/js/x-modules/history-queries/components/remove-history-query.vue.js.map +1 -1
  404. package/js/x-modules/history-queries/store/emitters.js +1 -0
  405. package/js/x-modules/history-queries/store/emitters.js.map +1 -1
  406. package/js/x-modules/identifier-results/components/identifier-results.vue.js +1 -2
  407. package/js/x-modules/identifier-results/components/identifier-results.vue.js.map +1 -1
  408. package/js/x-modules/identifier-results/store/emitters.js +1 -0
  409. package/js/x-modules/identifier-results/store/emitters.js.map +1 -1
  410. package/js/x-modules/next-queries/components/next-queries.vue.js +1 -7
  411. package/js/x-modules/next-queries/components/next-queries.vue.js.map +1 -1
  412. package/js/x-modules/next-queries/components/next-query-preview.vue.js +1 -3
  413. package/js/x-modules/next-queries/components/next-query-preview.vue.js.map +1 -1
  414. package/js/x-modules/next-queries/components/next-query.vue.js +1 -4
  415. package/js/x-modules/next-queries/components/next-query.vue.js.map +1 -1
  416. package/js/x-modules/next-queries/store/emitters.js +1 -0
  417. package/js/x-modules/next-queries/store/emitters.js.map +1 -1
  418. package/js/x-modules/popular-searches/components/popular-search.vue.js +1 -4
  419. package/js/x-modules/popular-searches/components/popular-search.vue.js.map +1 -1
  420. package/js/x-modules/popular-searches/components/popular-searches.vue.js +1 -7
  421. package/js/x-modules/popular-searches/components/popular-searches.vue.js.map +1 -1
  422. package/js/x-modules/queries-preview/components/query-preview-button.vue.js +1 -2
  423. package/js/x-modules/queries-preview/components/query-preview-button.vue.js.map +1 -1
  424. package/js/x-modules/queries-preview/components/query-preview-button.vue2.js +6 -0
  425. package/js/x-modules/queries-preview/components/query-preview-button.vue2.js.map +1 -1
  426. package/js/x-modules/queries-preview/components/query-preview-list.vue.js.map +1 -1
  427. package/js/x-modules/queries-preview/components/query-preview-list.vue2.js +15 -2
  428. package/js/x-modules/queries-preview/components/query-preview-list.vue2.js.map +1 -1
  429. package/js/x-modules/queries-preview/components/query-preview.vue.js +1 -2
  430. package/js/x-modules/queries-preview/components/query-preview.vue.js.map +1 -1
  431. package/js/x-modules/queries-preview/components/query-preview.vue2.js +7 -1
  432. package/js/x-modules/queries-preview/components/query-preview.vue2.js.map +1 -1
  433. package/js/x-modules/queries-preview/store/actions/fetch-and-save-query-preview.action.js +2 -1
  434. package/js/x-modules/queries-preview/store/actions/fetch-and-save-query-preview.action.js.map +1 -1
  435. package/js/x-modules/queries-preview/store/emitters.js +1 -0
  436. package/js/x-modules/queries-preview/store/emitters.js.map +1 -1
  437. package/js/x-modules/queries-preview/store/module.js +1 -1
  438. package/js/x-modules/queries-preview/store/module.js.map +1 -1
  439. package/js/x-modules/queries-preview/utils/get-hash-from-query-preview.js +6 -4
  440. package/js/x-modules/queries-preview/utils/get-hash-from-query-preview.js.map +1 -1
  441. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js +1 -4
  442. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js.map +1 -1
  443. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js +1 -7
  444. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js.map +1 -1
  445. package/js/x-modules/query-suggestions/store/emitters.js +1 -0
  446. package/js/x-modules/query-suggestions/store/emitters.js.map +1 -1
  447. package/js/x-modules/recommendations/components/recommendations.vue.js +1 -2
  448. package/js/x-modules/recommendations/components/recommendations.vue.js.map +1 -1
  449. package/js/x-modules/recommendations/store/emitters.js +1 -0
  450. package/js/x-modules/recommendations/store/emitters.js.map +1 -1
  451. package/js/x-modules/related-prompts/components/related-prompt.vue.js +26 -0
  452. package/js/x-modules/related-prompts/components/related-prompt.vue.js.map +1 -0
  453. package/js/x-modules/related-prompts/components/related-prompt.vue2.js +31 -0
  454. package/js/x-modules/related-prompts/components/related-prompt.vue2.js.map +1 -0
  455. package/js/x-modules/related-prompts/components/related-prompt.vue3.js +7 -0
  456. package/js/x-modules/related-prompts/components/related-prompt.vue3.js.map +1 -0
  457. package/js/x-modules/related-prompts/components/related-prompts-list.vue.js +154 -0
  458. package/js/x-modules/related-prompts/components/related-prompts-list.vue.js.map +1 -0
  459. package/js/x-modules/related-prompts/components/related-prompts-list.vue2.js +6 -0
  460. package/js/x-modules/related-prompts/components/related-prompts-list.vue2.js.map +1 -0
  461. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue.js +98 -0
  462. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue.js.map +1 -0
  463. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue2.js +226 -0
  464. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue2.js.map +1 -0
  465. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue3.js +7 -0
  466. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue3.js.map +1 -0
  467. package/js/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.js +29 -0
  468. package/js/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.js.map +1 -0
  469. package/js/x-modules/related-prompts/store/actions/fetch-related-prompts.action.js +20 -0
  470. package/js/x-modules/related-prompts/store/actions/fetch-related-prompts.action.js.map +1 -0
  471. package/js/x-modules/related-prompts/store/emitters.js +15 -0
  472. package/js/x-modules/related-prompts/store/emitters.js.map +1 -0
  473. package/js/x-modules/related-prompts/store/getters/request.getter.js +16 -0
  474. package/js/x-modules/related-prompts/store/getters/request.getter.js.map +1 -0
  475. package/js/x-modules/related-prompts/store/module.js +61 -0
  476. package/js/x-modules/related-prompts/store/module.js.map +1 -0
  477. package/js/x-modules/related-prompts/wiring.js +99 -0
  478. package/js/x-modules/related-prompts/wiring.js.map +1 -0
  479. package/js/x-modules/related-prompts/x-module.js +21 -0
  480. package/js/x-modules/related-prompts/x-module.js.map +1 -0
  481. package/js/x-modules/related-tags/components/related-tag.vue.js +1 -2
  482. package/js/x-modules/related-tags/components/related-tag.vue.js.map +1 -1
  483. package/js/x-modules/related-tags/components/related-tags.vue.js +1 -4
  484. package/js/x-modules/related-tags/components/related-tags.vue.js.map +1 -1
  485. package/js/x-modules/related-tags/store/emitters.js +1 -0
  486. package/js/x-modules/related-tags/store/emitters.js.map +1 -1
  487. package/js/x-modules/scroll/components/scroll-to-top.vue.js +1 -2
  488. package/js/x-modules/scroll/components/scroll-to-top.vue.js.map +1 -1
  489. package/js/x-modules/scroll/components/scroll-to-top.vue2.js +6 -0
  490. package/js/x-modules/scroll/components/scroll-to-top.vue2.js.map +1 -1
  491. package/js/x-modules/scroll/store/emitters.js +1 -0
  492. package/js/x-modules/scroll/store/emitters.js.map +1 -1
  493. package/js/x-modules/search/components/partial-results-list.vue.js +1 -2
  494. package/js/x-modules/search/components/partial-results-list.vue.js.map +1 -1
  495. package/js/x-modules/search/components/results-list.vue.js +2 -2
  496. package/js/x-modules/search/components/results-list.vue.js.map +1 -1
  497. package/js/x-modules/search/components/sort-dropdown.vue.js +1 -3
  498. package/js/x-modules/search/components/sort-dropdown.vue.js.map +1 -1
  499. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js +10 -3
  500. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js.map +1 -1
  501. package/js/x-modules/search/store/actions/save-search-response.action.js +3 -1
  502. package/js/x-modules/search/store/actions/save-search-response.action.js.map +1 -1
  503. package/js/x-modules/search/store/emitters.js +1 -0
  504. package/js/x-modules/search/store/emitters.js.map +1 -1
  505. package/js/x-modules/search/store/module.js +9 -3
  506. package/js/x-modules/search/store/module.js.map +1 -1
  507. package/js/x-modules/search/wiring.js +4 -0
  508. package/js/x-modules/search/wiring.js.map +1 -1
  509. package/js/x-modules/search-box/components/clear-search-input.vue.js +1 -2
  510. package/js/x-modules/search-box/components/clear-search-input.vue.js.map +1 -1
  511. package/js/x-modules/search-box/components/search-button.vue.js +1 -2
  512. package/js/x-modules/search-box/components/search-button.vue.js.map +1 -1
  513. package/js/x-modules/search-box/store/emitters.js +1 -0
  514. package/js/x-modules/search-box/store/emitters.js.map +1 -1
  515. package/js/x-modules/semantic-queries/components/semantic-queries.vue.js +1 -3
  516. package/js/x-modules/semantic-queries/components/semantic-queries.vue.js.map +1 -1
  517. package/js/x-modules/semantic-queries/components/semantic-query.vue.js +1 -4
  518. package/js/x-modules/semantic-queries/components/semantic-query.vue.js.map +1 -1
  519. package/js/x-modules/tagging/components/tagging.vue.js +8 -7
  520. package/js/x-modules/tagging/components/tagging.vue.js.map +1 -1
  521. package/js/x-modules/tagging/service/{pdp-add-to-cart.service.js → external-tagging.service.js} +56 -25
  522. package/js/x-modules/tagging/service/external-tagging.service.js.map +1 -0
  523. package/js/x-modules/tagging/store/emitters.js +1 -1
  524. package/js/x-modules/tagging/store/emitters.js.map +1 -1
  525. package/js/x-modules/tagging/store/module.js +7 -3
  526. package/js/x-modules/tagging/store/module.js.map +1 -1
  527. package/js/x-modules/tagging/wiring.js +105 -8
  528. package/js/x-modules/tagging/wiring.js.map +1 -1
  529. package/js/x-modules/url/components/url-handler.vue.js.map +1 -1
  530. package/js/x-modules/url/components/url-handler.vue2.js +2 -1
  531. package/js/x-modules/url/components/url-handler.vue2.js.map +1 -1
  532. package/js/x-modules/url/store/emitters.js +1 -0
  533. package/js/x-modules/url/store/emitters.js.map +1 -1
  534. package/package.json +50 -49
  535. package/related-prompts/index.d.ts +1 -0
  536. package/related-prompts/index.js +10 -0
  537. package/report/x-adapter-platform.api.json +936 -81
  538. package/report/x-components.api.json +16366 -17517
  539. package/report/x-components.api.md +806 -213
  540. package/report/x-types.api.json +577 -0
  541. package/tagging/index.js +2 -2
  542. package/types/adapter/e2e-adapter.d.ts.map +1 -1
  543. package/types/adapter/mocked-responses.d.ts +3 -0
  544. package/types/adapter/mocked-responses.d.ts.map +1 -1
  545. package/types/components/base-dropdown.vue.d.ts +5 -5
  546. package/types/components/base-dropdown.vue.d.ts.map +1 -1
  547. package/types/components/base-grid.vue.d.ts +3 -3
  548. package/types/components/base-slider.vue.d.ts +74 -0
  549. package/types/components/base-slider.vue.d.ts.map +1 -0
  550. package/types/components/base-variable-column-grid.vue.d.ts +3 -3
  551. package/types/components/display-click-provider.vue.d.ts +61 -0
  552. package/types/components/display-click-provider.vue.d.ts.map +1 -0
  553. package/types/components/global-x-bus.vue.d.ts +12 -0
  554. package/types/components/global-x-bus.vue.d.ts.map +1 -1
  555. package/types/components/index.d.ts +3 -0
  556. package/types/components/index.d.ts.map +1 -1
  557. package/types/components/items-list.vue.d.ts +3 -3
  558. package/types/components/layouts/multi-column-max-width-layout.vue.d.ts +5 -5
  559. package/types/components/layouts/single-column-layout.vue.d.ts +3 -3
  560. package/types/components/modals/base-events-modal.vue.d.ts +2 -2
  561. package/types/components/modals/base-id-modal.vue.d.ts +2 -2
  562. package/types/components/modals/base-modal.vue.d.ts +10 -10
  563. package/types/components/modals/base-modal.vue.d.ts.map +1 -1
  564. package/types/components/modals/main-modal.vue.d.ts +2 -2
  565. package/types/components/page-selector.vue.d.ts +125 -0
  566. package/types/components/page-selector.vue.d.ts.map +1 -0
  567. package/types/components/panels/base-header-toggle-panel.vue.d.ts +5 -5
  568. package/types/components/panels/base-id-toggle-panel.vue.d.ts +5 -5
  569. package/types/components/panels/base-tabs-panel.vue.d.ts +8 -8
  570. package/types/components/panels/base-toggle-panel.vue.d.ts +3 -3
  571. package/types/components/result/base-result-add-to-cart.vue.d.ts +2 -0
  572. package/types/components/result/base-result-add-to-cart.vue.d.ts.map +1 -1
  573. package/types/components/result/base-result-image.vue.d.ts +10 -10
  574. package/types/components/result/base-result-image.vue.d.ts.map +1 -1
  575. package/types/components/sliding-panel.vue.d.ts +15 -5
  576. package/types/components/sliding-panel.vue.d.ts.map +1 -1
  577. package/types/components/snippet-callbacks.vue.d.ts +6 -0
  578. package/types/components/snippet-callbacks.vue.d.ts.map +1 -1
  579. package/types/components/suggestions/base-suggestions.vue.d.ts +3 -3
  580. package/types/composables/use-alias-api.d.ts +5 -0
  581. package/types/composables/use-alias-api.d.ts.map +1 -1
  582. package/types/composables/use-store.d.ts +2 -2
  583. package/types/composables/use-store.d.ts.map +1 -1
  584. package/types/directives/index.d.ts +1 -0
  585. package/types/directives/index.d.ts.map +1 -1
  586. package/types/directives/typing.d.ts +35 -0
  587. package/types/directives/typing.d.ts.map +1 -0
  588. package/types/index.d.ts +1 -0
  589. package/types/index.d.ts.map +1 -1
  590. package/types/store/index.d.ts +4 -1
  591. package/types/store/index.d.ts.map +1 -1
  592. package/types/tailwind/plugin-options.d.ts +1 -2
  593. package/types/tailwind/plugin-options.d.ts.map +1 -1
  594. package/types/types/animation-prop.d.ts +6 -2
  595. package/types/types/animation-prop.d.ts.map +1 -1
  596. package/types/types/origin.d.ts +2 -2
  597. package/types/types/origin.d.ts.map +1 -1
  598. package/types/types/page-mode.d.ts +2 -0
  599. package/types/types/page-mode.d.ts.map +1 -0
  600. package/types/views/home/types.d.ts +3 -0
  601. package/types/views/home/types.d.ts.map +1 -1
  602. package/types/wiring/events.types.d.ts +3 -1
  603. package/types/wiring/events.types.d.ts.map +1 -1
  604. package/types/x-installer/x-installer/types.d.ts +2 -2
  605. package/types/x-installer/x-installer/types.d.ts.map +1 -1
  606. package/types/x-installer/x-installer/x-installer.d.ts +4 -4
  607. package/types/x-installer/x-installer/x-installer.d.ts.map +1 -1
  608. package/types/x-modules/empathize/components/empathize.vue.d.ts +6 -6
  609. package/types/x-modules/empathize/components/empathize.vue.d.ts.map +1 -1
  610. package/types/x-modules/facets/components/facets/facets.vue.d.ts +3 -3
  611. package/types/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts +8 -2
  612. package/types/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts.map +1 -1
  613. package/types/x-modules/facets/components/filters/simple-filter.vue.d.ts +6 -0
  614. package/types/x-modules/facets/components/filters/simple-filter.vue.d.ts.map +1 -1
  615. package/types/x-modules/facets/components/lists/filters-list.vue.d.ts +3 -3
  616. package/types/x-modules/facets/components/lists/selected-filters-list.vue.d.ts +3 -3
  617. package/types/x-modules/history-queries/components/my-history.vue.d.ts +3 -3
  618. package/types/x-modules/identifier-results/components/identifier-results.vue.d.ts +3 -3
  619. package/types/x-modules/next-queries/components/next-queries-list.vue.d.ts +3 -3
  620. package/types/x-modules/next-queries/index.d.ts +1 -0
  621. package/types/x-modules/next-queries/index.d.ts.map +1 -1
  622. package/types/x-modules/queries-preview/components/query-preview-list.vue.d.ts +3 -3
  623. package/types/x-modules/queries-preview/components/query-preview-list.vue.d.ts.map +1 -1
  624. package/types/x-modules/queries-preview/components/query-preview.vue.d.ts.map +1 -1
  625. package/types/x-modules/queries-preview/store/actions/fetch-and-save-query-preview.action.d.ts.map +1 -1
  626. package/types/x-modules/queries-preview/store/module.d.ts.map +1 -1
  627. package/types/x-modules/queries-preview/utils/get-hash-from-query-preview.d.ts +4 -2
  628. package/types/x-modules/queries-preview/utils/get-hash-from-query-preview.d.ts.map +1 -1
  629. package/types/x-modules/recommendations/components/recommendations.vue.d.ts +3 -3
  630. package/types/x-modules/related-prompts/components/index.d.ts +4 -0
  631. package/types/x-modules/related-prompts/components/index.d.ts.map +1 -0
  632. package/types/x-modules/related-prompts/components/related-prompt.vue.d.ts +28 -0
  633. package/types/x-modules/related-prompts/components/related-prompt.vue.d.ts.map +1 -0
  634. package/types/x-modules/related-prompts/components/related-prompts-list.vue.d.ts +106 -0
  635. package/types/x-modules/related-prompts/components/related-prompts-list.vue.d.ts.map +1 -0
  636. package/types/x-modules/related-prompts/components/related-prompts-tag-list.vue.d.ts +132 -0
  637. package/types/x-modules/related-prompts/components/related-prompts-tag-list.vue.d.ts.map +1 -0
  638. package/types/x-modules/related-prompts/events.types.d.ts +36 -0
  639. package/types/x-modules/related-prompts/events.types.d.ts.map +1 -0
  640. package/types/x-modules/related-prompts/index.d.ts +6 -0
  641. package/types/x-modules/related-prompts/index.d.ts.map +1 -0
  642. package/types/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.d.ts +17 -0
  643. package/types/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.d.ts.map +1 -0
  644. package/types/x-modules/related-prompts/store/actions/fetch-related-prompts.action.d.ts +13 -0
  645. package/types/x-modules/related-prompts/store/actions/fetch-related-prompts.action.d.ts.map +1 -0
  646. package/types/x-modules/related-prompts/store/emitters.d.ts +9 -0
  647. package/types/x-modules/related-prompts/store/emitters.d.ts.map +1 -0
  648. package/types/x-modules/related-prompts/store/getters/request.getter.d.ts +13 -0
  649. package/types/x-modules/related-prompts/store/getters/request.getter.d.ts.map +1 -0
  650. package/types/x-modules/related-prompts/store/index.d.ts +7 -0
  651. package/types/x-modules/related-prompts/store/index.d.ts.map +1 -0
  652. package/types/x-modules/related-prompts/store/module.d.ts +8 -0
  653. package/types/x-modules/related-prompts/store/module.d.ts.map +1 -0
  654. package/types/x-modules/related-prompts/store/types.d.ts +108 -0
  655. package/types/x-modules/related-prompts/store/types.d.ts.map +1 -0
  656. package/types/x-modules/related-prompts/types.d.ts +10 -0
  657. package/types/x-modules/related-prompts/types.d.ts.map +1 -0
  658. package/types/x-modules/related-prompts/wiring.d.ts +38 -0
  659. package/types/x-modules/related-prompts/wiring.d.ts.map +1 -0
  660. package/types/x-modules/related-prompts/x-module.d.ts +16 -0
  661. package/types/x-modules/related-prompts/x-module.d.ts.map +1 -0
  662. package/types/x-modules/related-tags/components/related-tags.vue.d.ts +3 -3
  663. package/types/x-modules/scroll/components/scroll-to-top.vue.d.ts +5 -5
  664. package/types/x-modules/search/components/banners-list.vue.d.ts +3 -3
  665. package/types/x-modules/search/components/partial-results-list.vue.d.ts +3 -3
  666. package/types/x-modules/search/components/promoteds-list.vue.d.ts +3 -3
  667. package/types/x-modules/search/components/results-list.vue.d.ts +3 -3
  668. package/types/x-modules/search/components/sort-dropdown.vue.d.ts +1 -1
  669. package/types/x-modules/search/config.types.d.ts +2 -0
  670. package/types/x-modules/search/config.types.d.ts.map +1 -1
  671. package/types/x-modules/search/events.types.d.ts +4 -0
  672. package/types/x-modules/search/events.types.d.ts.map +1 -1
  673. package/types/x-modules/search/store/actions/fetch-and-save-search-response.action.d.ts.map +1 -1
  674. package/types/x-modules/search/store/actions/save-search-response.action.d.ts.map +1 -1
  675. package/types/x-modules/search/store/module.d.ts +2 -0
  676. package/types/x-modules/search/store/module.d.ts.map +1 -1
  677. package/types/x-modules/search/store/types.d.ts +9 -1
  678. package/types/x-modules/search/store/types.d.ts.map +1 -1
  679. package/types/x-modules/search/wiring.d.ts +4 -0
  680. package/types/x-modules/search/wiring.d.ts.map +1 -1
  681. package/types/x-modules/search-box/components/search-input-placeholder.vue.d.ts +3 -3
  682. package/types/x-modules/tagging/components/tagging.vue.d.ts +14 -12
  683. package/types/x-modules/tagging/components/tagging.vue.d.ts.map +1 -1
  684. package/types/x-modules/tagging/config.types.d.ts +3 -3
  685. package/types/x-modules/tagging/config.types.d.ts.map +1 -1
  686. package/types/x-modules/tagging/events.types.d.ts +2 -2
  687. package/types/x-modules/tagging/service/{pdp-add-to-cart.service.d.ts → external-tagging.service.d.ts} +31 -13
  688. package/types/x-modules/tagging/service/external-tagging.service.d.ts.map +1 -0
  689. package/types/x-modules/tagging/service/index.d.ts +1 -1
  690. package/types/x-modules/tagging/service/index.d.ts.map +1 -1
  691. package/types/x-modules/tagging/service/types.d.ts +13 -4
  692. package/types/x-modules/tagging/service/types.d.ts.map +1 -1
  693. package/types/x-modules/tagging/store/module.d.ts.map +1 -1
  694. package/types/x-modules/tagging/wiring.d.ts +54 -2
  695. package/types/x-modules/tagging/wiring.d.ts.map +1 -1
  696. package/types/x-modules/url/components/url-handler.vue.d.ts.map +1 -1
  697. package/types/x-modules/x-modules.types.d.ts +2 -0
  698. package/types/x-modules/x-modules.types.d.ts.map +1 -1
  699. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.clickedresultstoragekey.md +0 -11
  700. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.clickedresultstoragettlms.md +0 -11
  701. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.instance.md +0 -13
  702. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.localstorageservice.md +0 -11
  703. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.md +0 -41
  704. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.result_clicked_id_key.md +0 -13
  705. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.sessionstorageservice.md +0 -11
  706. package/docs/API-reference/api/x-components.pdpaddtocartservice.md +0 -22
  707. package/docs/API-reference/api/x-components.taggingconfig.clickedresultstoragettlms.md +0 -13
  708. package/docs/API-reference/api/x-components.usestore.md +0 -19
  709. package/docs/assets/features/overview-my-history.svg +0 -279
  710. package/docs/assets/features/overview-product-results-card.svg +0 -128
  711. package/docs/assets/interface/build-search-ui.svg +0 -167
  712. package/docs/assets/interface/experience-search-intro.svg +0 -1
  713. package/docs/assets/interface/integration-guide.svg +0 -1
  714. package/docs/assets/interface/integration-video.png +0 -0
  715. package/docs/assets/interface/x-architecture.svg +0 -1
  716. package/docs/assets/interface/x-empathize.gif +0 -0
  717. package/docs/assets/interface/x-facets.gif +0 -0
  718. package/docs/assets/interface/x-facets.svg +0 -189
  719. package/docs/assets/interface/x-history-queries.gif +0 -0
  720. package/docs/assets/interface/x-id-results.gif +0 -0
  721. package/docs/assets/interface/x-next-queries.gif +0 -0
  722. package/docs/assets/interface/x-popular-searches.gif +0 -0
  723. package/docs/assets/interface/x-query-suggestions.gif +0 -0
  724. package/docs/assets/interface/x-recommendations.gif +0 -0
  725. package/docs/assets/interface/x-recommendations.svg +0 -472
  726. package/docs/assets/interface/x-related-tags.gif +0 -0
  727. package/docs/assets/interface/x-results-layout.svg +0 -259
  728. package/docs/assets/interface/x-search-box-elements.svg +0 -1
  729. package/docs/assets/interface/x-search-box.svg +0 -60
  730. package/docs/build-search-ui/README.md +0 -127
  731. package/docs/build-search-ui/sidebar.js +0 -7
  732. package/docs/build-search-ui/web-archetype-development-guide.md +0 -186
  733. package/docs/build-search-ui/web-archetype-integration-guide.md +0 -458
  734. package/docs/build-search-ui/web-how-to-use-x-components-guide.md +0 -200
  735. package/docs/build-search-ui/web-x-architecture.md +0 -83
  736. package/docs/build-search-ui/web-x-components-development-guide.md +0 -157
  737. package/docs/experience-search-and-discovery/README.md +0 -132
  738. package/docs/experience-search-and-discovery/empathize.md +0 -119
  739. package/docs/experience-search-and-discovery/facets-and-filters.md +0 -154
  740. package/docs/experience-search-and-discovery/history-queries.md +0 -70
  741. package/docs/experience-search-and-discovery/id-results.md +0 -49
  742. package/docs/experience-search-and-discovery/my-history.md +0 -60
  743. package/docs/experience-search-and-discovery/next-queries.md +0 -72
  744. package/docs/experience-search-and-discovery/popular-searches.md +0 -50
  745. package/docs/experience-search-and-discovery/product-results-ui.md +0 -82
  746. package/docs/experience-search-and-discovery/query-suggestions.md +0 -48
  747. package/docs/experience-search-and-discovery/recommendations.md +0 -134
  748. package/docs/experience-search-and-discovery/related-tags.md +0 -66
  749. package/docs/experience-search-and-discovery/search-box.md +0 -99
  750. package/docs/experience-search-and-discovery/serp-ui.md +0 -125
  751. package/docs/experience-search-and-discovery/sidebar.js +0 -17
  752. package/docs/experience-search-and-discovery/web-local-storage.md +0 -30
  753. package/docs/input-status-machine-state.png +0 -0
  754. package/js/composables/use-store.js +0 -15
  755. package/js/composables/use-store.js.map +0 -1
  756. package/js/utils/options-api.js +0 -4
  757. package/js/utils/options-api.js.map +0 -1
  758. package/js/x-modules/tagging/service/pdp-add-to-cart.service.js.map +0 -1
  759. package/types/utils/options-api.d.ts +0 -3
  760. package/types/utils/options-api.d.ts.map +0 -1
  761. package/types/x-modules/tagging/service/pdp-add-to-cart.service.d.ts.map +0 -1
@@ -0,0 +1,98 @@
1
+ import _sfc_main from './related-prompts-tag-list.vue2.js';
2
+ import { resolveComponent, openBlock, createBlock, withCtx, renderSlot, createVNode, TransitionGroup, createElementBlock, Fragment, renderList, normalizeClass, normalizeStyle } from 'vue';
3
+ import './related-prompts-tag-list.vue3.js';
4
+ import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.js';
5
+
6
+ const _hoisted_1 = ["data-index"];
7
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
8
+ const _component_RelatedPrompt = resolveComponent("RelatedPrompt");
9
+ const _component_DisplayEmitter = resolveComponent("DisplayEmitter");
10
+ const _component_SlidingPanel = resolveComponent("SlidingPanel");
11
+ return openBlock(), createBlock(_component_SlidingPanel, {
12
+ key: _ctx.x.query.search,
13
+ "reset-on-content-change": false,
14
+ "button-class": _ctx.buttonClass,
15
+ "show-buttons": _ctx.showButtons && _ctx.selectedPromptIndex === -1,
16
+ "scroll-container-class": [
17
+ "x-related-prompts-tag-list-scroll-container",
18
+ _ctx.scrollContainerClass || ""
19
+ ]
20
+ }, {
21
+ "sliding-panel-left-button": withCtx(() => [
22
+ renderSlot(_ctx.$slots, "sliding-panel-left-button")
23
+ ]),
24
+ "sliding-panel-right-button": withCtx(() => [
25
+ renderSlot(_ctx.$slots, "sliding-panel-right-button")
26
+ ]),
27
+ default: withCtx(() => [
28
+ createVNode(TransitionGroup, {
29
+ onBeforeEnter: _ctx.onBeforeEnter,
30
+ onEnter: _ctx.onEnter,
31
+ onLeave: _ctx.onLeave,
32
+ class: "x-related-prompts-tag-list",
33
+ css: false,
34
+ tag: "ul",
35
+ appear: ""
36
+ }, {
37
+ default: withCtx(() => [
38
+ (openBlock(true), createElementBlock(
39
+ Fragment,
40
+ null,
41
+ renderList(_ctx.visibleRelatedPrompts, ({ index, ...relatedPrompt }) => {
42
+ return openBlock(), createElementBlock("li", {
43
+ ref_for: true,
44
+ ref: "listItems",
45
+ key: relatedPrompt.suggestionText,
46
+ class: normalizeClass(["x-related-prompts-tag-list-item", [_ctx.tagClass, _ctx.tagColors && _ctx.tagColors[index % _ctx.tagColors.length]]]),
47
+ "data-index": index,
48
+ style: normalizeStyle(_ctx.isAnimating && { pointerEvents: "none" }),
49
+ "data-test": "related-prompts-tag-list-item"
50
+ }, [
51
+ renderSlot(_ctx.$slots, "default", {
52
+ relatedPrompt,
53
+ onSelect: () => _ctx.onSelect(index),
54
+ isSelected: _ctx.isSelected(index)
55
+ }, () => [
56
+ createVNode(_component_DisplayEmitter, {
57
+ payload: relatedPrompt.toolingDisplayTagging,
58
+ eventMetadata: {
59
+ feature: "related-prompts",
60
+ displayOriginalQuery: _ctx.x.query.searchBox,
61
+ replaceable: false
62
+ }
63
+ }, {
64
+ default: withCtx(() => [
65
+ createVNode(_component_RelatedPrompt, {
66
+ onClick: ($event) => _ctx.onSelect(index),
67
+ "related-prompt": relatedPrompt,
68
+ selected: _ctx.isSelected(index)
69
+ }, {
70
+ "related-prompt-extra-content": withCtx(() => [
71
+ renderSlot(_ctx.$slots, "related-prompt-extra-content", { relatedPrompt })
72
+ ]),
73
+ _: 2
74
+ /* DYNAMIC */
75
+ }, 1032, ["onClick", "related-prompt", "selected"])
76
+ ]),
77
+ _: 2
78
+ /* DYNAMIC */
79
+ }, 1032, ["payload", "eventMetadata"])
80
+ ])
81
+ ], 14, _hoisted_1);
82
+ }),
83
+ 128
84
+ /* KEYED_FRAGMENT */
85
+ ))
86
+ ]),
87
+ _: 3
88
+ /* FORWARDED */
89
+ }, 8, ["onBeforeEnter", "onEnter", "onLeave"])
90
+ ]),
91
+ _: 3
92
+ /* FORWARDED */
93
+ }, 8, ["button-class", "show-buttons", "scroll-container-class"]);
94
+ }
95
+ var relatedPromptsTagList = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
96
+
97
+ export { relatedPromptsTagList as default };
98
+ //# sourceMappingURL=related-prompts-tag-list.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"related-prompts-tag-list.vue.js","sources":["../../../../../src/x-modules/related-prompts/components/related-prompts-tag-list.vue"],"sourcesContent":["<template>\n <SlidingPanel\n :key=\"x.query.search\"\n :reset-on-content-change=\"false\"\n :button-class=\"buttonClass\"\n :show-buttons=\"showButtons && selectedPromptIndex === -1\"\n :scroll-container-class=\"[\n 'x-related-prompts-tag-list-scroll-container',\n scrollContainerClass || ''\n ]\"\n >\n <template #sliding-panel-left-button>\n <!--\n @slot sliding-panel-left-button - The button to be displayed on the left side of the sliding panel.\n -->\n <slot name=\"sliding-panel-left-button\" />\n </template>\n <transition-group\n @before-enter=\"onBeforeEnter\"\n @enter=\"onEnter\"\n @leave=\"onLeave\"\n class=\"x-related-prompts-tag-list\"\n :css=\"false\"\n tag=\"ul\"\n appear\n >\n <li\n v-for=\"{ index, ...relatedPrompt } in visibleRelatedPrompts\"\n ref=\"listItems\"\n :key=\"relatedPrompt.suggestionText\"\n class=\"x-related-prompts-tag-list-item\"\n :class=\"[tagClass, tagColors && tagColors[index % tagColors.length]]\"\n :data-index=\"index\"\n :style=\"isAnimating && { pointerEvents: 'none' }\"\n data-test=\"related-prompts-tag-list-item\"\n >\n <!--\n @slot - The slot to render related prompt information.\n @prop {Object} relatedPrompt - The related prompt object.\n @prop {Function} onSelect - The function to select the related prompt.\n @prop {Boolean} isSelected - Indicates if the related prompt is currently selected.\n -->\n <slot\n :relatedPrompt=\"relatedPrompt\"\n :onSelect=\"() => onSelect(index)\"\n :isSelected=\"isSelected(index)\"\n >\n <DisplayEmitter\n :payload=\"relatedPrompt.toolingDisplayTagging\"\n :eventMetadata=\"{\n feature: 'related-prompts',\n displayOriginalQuery: x.query.searchBox,\n replaceable: false\n }\"\n >\n <RelatedPrompt\n @click=\"onSelect(index)\"\n :related-prompt=\"relatedPrompt\"\n :selected=\"isSelected(index)\"\n >\n <template #related-prompt-extra-content>\n <slot name=\"related-prompt-extra-content\" :relatedPrompt=\"relatedPrompt\" />\n </template>\n </RelatedPrompt>\n </DisplayEmitter>\n </slot>\n </li>\n </transition-group>\n <template #sliding-panel-right-button>\n <!--\n @slot sliding-panel-right-button - The button to be displayed on the right side of the sliding panel.\n -->\n <slot name=\"sliding-panel-right-button\" />\n </template>\n </SlidingPanel>\n</template>\n\n<script lang=\"ts\">\n import { RelatedPrompt as RelatedPromptModel } from '@empathyco/x-types';\n import { computed, defineComponent, PropType, ref } from 'vue';\n import SlidingPanel from '../../../components/sliding-panel.vue';\n import { relatedPromptsXModule } from '../x-module';\n import { use$x, useState } from '../../../composables';\n import DisplayEmitter from '../../../components/display-emitter.vue';\n import RelatedPrompt from './related-prompt.vue';\n\n /**\n * This component shows the list of `RelatedPrompts` components.\n *\n * If the default slot is reimplemented in the consumer, `onSelect` function will be\n * necessary to handle the selection of the related prompt and to trigger the stagger-fade-slide animation.\n *\n * @public\n */\n export default defineComponent({\n name: 'RelatedPromptsTagList',\n xModule: relatedPromptsXModule.name,\n components: { DisplayEmitter, RelatedPrompt, SlidingPanel },\n props: {\n /**\n * The CSS class for the left and right button of the sliding panel.\n *\n * @public\n */\n buttonClass: String,\n /**\n * The boolean prop to handle the visiblity of sliding pannel buttons.\n *\n * @public\n */\n showButtons: { type: Boolean, default: true },\n /**\n * The CSS class for the wrapper of all the related prompt wrapper elements.\n *\n * @public\n */\n scrollContainerClass: String,\n /**\n * The CSS class for all the related prompt wrapper elements.\n *\n * @public\n */\n tagClass: String,\n /**\n * Array of colors to apply to the related prompts. It will be applied to tag\n * elements cyclically according to their index in the nex way: `tagColors[index % tagColors.length]`.\n *\n * @public\n */\n tagColors: Array as PropType<string[]>,\n /**\n * The duration of the total animation in milliseconds.\n *\n * @public\n */\n animationDurationInMs: {\n type: Number,\n default: 700\n }\n },\n setup(props) {\n const x = use$x();\n const { relatedPrompts, selectedPrompt: selectedPromptIndex } = useState('relatedPrompts', [\n 'relatedPrompts',\n 'selectedPrompt'\n ]);\n\n const clickedListItemIndex = ref<number | null>(null);\n const initialOffsetLefts: Record<number, number> = {};\n const isAnimating = ref(false);\n const listItems = ref<HTMLElement[]>([]);\n\n const sortedListItems = computed<HTMLElement[]>(() =>\n [...listItems.value].sort(\n (a: HTMLElement, b: HTMLElement) =>\n Number.parseInt(b.getAttribute('data-index')!) -\n Number.parseInt(a.getAttribute('data-index')!)\n )\n );\n\n // The duration of a single animation (enter or leave) in milliseconds\n // if a related prompt is clicked (clickedListItemIndex.value !== null), the duration is divided by the number of related\n // prompts -1 (the clicked one is synchronized with the last one to leave or the first one to enter)\n const singleAnimationDurationInMs = computed(\n () =>\n props.animationDurationInMs /\n (clickedListItemIndex.value !== null\n ? relatedPrompts.value.length - 1\n : relatedPrompts.value.length)\n );\n\n const indexRelatedPrompts = computed(() =>\n (relatedPrompts.value as RelatedPromptModel[]).map(\n (relatedPrompt: RelatedPromptModel, index: number) => ({\n ...relatedPrompt,\n index\n })\n )\n );\n\n const visibleRelatedPrompts = computed(() => {\n return selectedPromptIndex.value !== -1\n ? [indexRelatedPrompts.value[selectedPromptIndex.value]]\n : indexRelatedPrompts.value;\n });\n\n let timeOutId: number;\n const resetTransitionStyle = (excludedProperties: Array<string> = ['width']) => {\n if (timeOutId) {\n clearTimeout(timeOutId);\n }\n\n isAnimating.value = true;\n timeOutId = +setTimeout(() => {\n isAnimating.value = false;\n clickedListItemIndex.value = null;\n\n sortedListItems.value.forEach(element => {\n element.style.cssText\n .split(';')\n .map(rule => rule.split(':')[0]?.trim())\n .forEach(property => {\n if (!excludedProperties.includes(property)) {\n element.style.removeProperty(property);\n }\n });\n });\n }, props.animationDurationInMs);\n };\n\n const onSelect = (selectedIndex: number): void => {\n resetTransitionStyle();\n\n clickedListItemIndex.value = selectedIndex;\n const selected: HTMLElement = sortedListItems.value.find(\n element => Number.parseInt(element.getAttribute('data-index')!) === selectedIndex\n )!;\n\n // selectedPromptIndex.value === -1 ? 'SELECTING' : 'DESELECTING'\n if (selectedPromptIndex.value === -1) {\n // Prepare all the elements for the leave animation (~ 'beforeLeave' hook). Remember the elements are\n // sorted in descending order by index.\n sortedListItems.value.forEach(element => {\n const index = Number.parseInt(element.getAttribute('data-index')!);\n\n initialOffsetLefts[index] = element.offsetLeft;\n element.style.left = `${element.offsetLeft}px`;\n element.style.position = 'absolute';\n element.style.transitionDuration = `${singleAnimationDurationInMs.value}ms`;\n\n if (index !== selectedIndex) {\n element.style.opacity = '1';\n element.style.transitionDelay = `${\n (index < selectedIndex ? index : index - 1) * singleAnimationDurationInMs.value\n }ms`;\n }\n });\n\n // Synchronize the transition delay of the selected element with the last\n // element to leave\n selected.style.transitionDelay = `${\n (relatedPrompts.value.length > 1 ? relatedPrompts.value.length - 2 : 0) *\n singleAnimationDurationInMs.value\n }ms`;\n\n // Trigger the animation (selecting) for the selected element\n requestAnimationFrame(() => {\n const maxWidth = getComputedStyle(selected).maxWidth;\n\n selected.style.left = '0px';\n selected.style.setProperty(\n 'width',\n `${maxWidth !== 'none' ? maxWidth : '100%'}`,\n 'important'\n );\n });\n } else {\n // Prepare the selected element for the deselecting animation\n selected.style.transitionDuration = `${singleAnimationDurationInMs.value}ms`;\n selected.style.left = '0px';\n selected.style.position = 'absolute';\n\n // Trigger the animation (deselecting) for the selected element\n selected.style.removeProperty('width');\n requestAnimationFrame(() => {\n selected.style.left = `${initialOffsetLefts[selectedIndex]}px`;\n });\n }\n\n x.emit('UserSelectedARelatedPrompt', selectedIndex, {\n relatedPrompt: relatedPrompts.value[selectedIndex],\n selectedPrompt: selectedPromptIndex.value\n });\n };\n\n const onBeforeEnter = (el: Element) => {\n const element = el as HTMLElement;\n const index = Number.parseInt(element.getAttribute('data-index')!);\n\n // Prepare the element for the enter animation\n element.style.opacity = '0';\n element.style.transform = 'translateY(5px)';\n element.style.transitionDelay = `${\n (clickedListItemIndex.value !== null && index > clickedListItemIndex.value\n ? index - 1\n : index) * singleAnimationDurationInMs.value\n }ms`;\n element.style.transitionDuration = `${singleAnimationDurationInMs.value}ms`;\n };\n\n const onEnter = (el: Element, done: () => void) => {\n const element = el as HTMLElement;\n const index = Number.parseInt(element.getAttribute('data-index')!);\n\n // Also part of the preparation for the enter animation, but it needs to be done\n // once the element is inserted in DOM (if not the offsetLeft will be always 0)\n element.style.left = `${initialOffsetLefts[index] ?? element.offsetLeft}px`;\n\n // trigger enter animation\n requestAnimationFrame(() => {\n element.style.opacity = '1';\n element.style.position = 'absolute';\n element.style.transform = 'translateY(0)';\n });\n\n done();\n };\n\n const onLeave = (el: Element, done: () => void) => {\n const element = el as HTMLElement;\n\n // trigger leave animation\n requestAnimationFrame(() => {\n element.style.opacity = '0';\n element.style.transform = 'translateY(5px)';\n });\n\n // Wait for the animation to finish (done() exectution extracts the element from the DOM)\n setTimeout(done, props.animationDurationInMs);\n };\n\n const isSelected = (index: number): boolean => selectedPromptIndex.value === index;\n\n // Changing the request will trigger the appear animation, so we need to reset the\n // style after it finishes\n x.on('SearchRequestChanged', false).subscribe(() => {\n resetTransitionStyle([]);\n });\n\n return {\n isSelected,\n onSelect,\n onBeforeEnter,\n onEnter,\n onLeave,\n selectedPromptIndex,\n visibleRelatedPrompts,\n listItems,\n isAnimating,\n x\n };\n }\n });\n</script>\n<style lang=\"css\">\n .x-related-prompts-tag-list-scroll-container {\n height: 100%;\n position: relative;\n }\n .x-related-prompts-tag-list {\n display: flex;\n gap: 16px;\n min-width: 100%;\n width: 100%;\n }\n .x-related-prompts-tag-list-item {\n height: 100%;\n flex-shrink: 0;\n }\n</style>\n"],"names":["_resolveComponent","_openBlock","_createBlock","buttonClass","showButtons","scrollContainerClass","_renderSlot","_withCtx","onBeforeEnter","onEnter","onLeave","_createElementBlock","_Fragment","_renderList","_normalizeClass","isAnimating","_normalizeStyle","onSelect","_createVNode","isSelected"],"mappings":"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"}
@@ -0,0 +1,226 @@
1
+ import { defineComponent, ref, computed } from 'vue';
2
+ import SlidingPanel from '../../../components/sliding-panel.vue.js';
3
+ import { relatedPromptsXModule } from '../x-module.js';
4
+ import '../../../composables/create-use-device.js';
5
+ import { use$x } from '../../../composables/use-_x.js';
6
+ import '@vue/devtools-api';
7
+ import '../../../plugins/devtools/timeline.devtools.js';
8
+ import '@empathyco/x-utils';
9
+ import 'rxjs/operators';
10
+ import 'rxjs';
11
+ import '../../../plugins/devtools/colors.utils.js';
12
+ import '../../../plugins/x-bus.js';
13
+ import '../../../plugins/x-plugin.js';
14
+ import 'vuex';
15
+ import '@vueuse/core';
16
+ import { useState } from '../../../composables/use-state.js';
17
+ import _sfc_main$1 from '../../../components/display-emitter.vue.js';
18
+ import RelatedPrompt from './related-prompt.vue.js';
19
+
20
+ /**
21
+ * This component shows the list of `RelatedPrompts` components.
22
+ *
23
+ * If the default slot is reimplemented in the consumer, `onSelect` function will be
24
+ * necessary to handle the selection of the related prompt and to trigger the stagger-fade-slide animation.
25
+ *
26
+ * @public
27
+ */
28
+ var _sfc_main = defineComponent({
29
+ name: 'RelatedPromptsTagList',
30
+ xModule: relatedPromptsXModule.name,
31
+ components: { DisplayEmitter: _sfc_main$1, RelatedPrompt, SlidingPanel },
32
+ props: {
33
+ /**
34
+ * The CSS class for the left and right button of the sliding panel.
35
+ *
36
+ * @public
37
+ */
38
+ buttonClass: String,
39
+ /**
40
+ * The boolean prop to handle the visiblity of sliding pannel buttons.
41
+ *
42
+ * @public
43
+ */
44
+ showButtons: { type: Boolean, default: true },
45
+ /**
46
+ * The CSS class for the wrapper of all the related prompt wrapper elements.
47
+ *
48
+ * @public
49
+ */
50
+ scrollContainerClass: String,
51
+ /**
52
+ * The CSS class for all the related prompt wrapper elements.
53
+ *
54
+ * @public
55
+ */
56
+ tagClass: String,
57
+ /**
58
+ * Array of colors to apply to the related prompts. It will be applied to tag
59
+ * elements cyclically according to their index in the nex way: `tagColors[index % tagColors.length]`.
60
+ *
61
+ * @public
62
+ */
63
+ tagColors: Array,
64
+ /**
65
+ * The duration of the total animation in milliseconds.
66
+ *
67
+ * @public
68
+ */
69
+ animationDurationInMs: {
70
+ type: Number,
71
+ default: 700
72
+ }
73
+ },
74
+ setup(props) {
75
+ const x = use$x();
76
+ const { relatedPrompts, selectedPrompt: selectedPromptIndex } = useState('relatedPrompts', [
77
+ 'relatedPrompts',
78
+ 'selectedPrompt'
79
+ ]);
80
+ const clickedListItemIndex = ref(null);
81
+ const initialOffsetLefts = {};
82
+ const isAnimating = ref(false);
83
+ const listItems = ref([]);
84
+ const sortedListItems = computed(() => [...listItems.value].sort((a, b) => Number.parseInt(b.getAttribute('data-index')) -
85
+ Number.parseInt(a.getAttribute('data-index'))));
86
+ // The duration of a single animation (enter or leave) in milliseconds
87
+ // if a related prompt is clicked (clickedListItemIndex.value !== null), the duration is divided by the number of related
88
+ // prompts -1 (the clicked one is synchronized with the last one to leave or the first one to enter)
89
+ const singleAnimationDurationInMs = computed(() => props.animationDurationInMs /
90
+ (clickedListItemIndex.value !== null
91
+ ? relatedPrompts.value.length - 1
92
+ : relatedPrompts.value.length));
93
+ const indexRelatedPrompts = computed(() => relatedPrompts.value.map((relatedPrompt, index) => ({
94
+ ...relatedPrompt,
95
+ index
96
+ })));
97
+ const visibleRelatedPrompts = computed(() => {
98
+ return selectedPromptIndex.value !== -1
99
+ ? [indexRelatedPrompts.value[selectedPromptIndex.value]]
100
+ : indexRelatedPrompts.value;
101
+ });
102
+ let timeOutId;
103
+ const resetTransitionStyle = (excludedProperties = ['width']) => {
104
+ if (timeOutId) {
105
+ clearTimeout(timeOutId);
106
+ }
107
+ isAnimating.value = true;
108
+ timeOutId = +setTimeout(() => {
109
+ isAnimating.value = false;
110
+ clickedListItemIndex.value = null;
111
+ sortedListItems.value.forEach(element => {
112
+ element.style.cssText
113
+ .split(';')
114
+ .map(rule => rule.split(':')[0]?.trim())
115
+ .forEach(property => {
116
+ if (!excludedProperties.includes(property)) {
117
+ element.style.removeProperty(property);
118
+ }
119
+ });
120
+ });
121
+ }, props.animationDurationInMs);
122
+ };
123
+ const onSelect = (selectedIndex) => {
124
+ resetTransitionStyle();
125
+ clickedListItemIndex.value = selectedIndex;
126
+ const selected = sortedListItems.value.find(element => Number.parseInt(element.getAttribute('data-index')) === selectedIndex);
127
+ // selectedPromptIndex.value === -1 ? 'SELECTING' : 'DESELECTING'
128
+ if (selectedPromptIndex.value === -1) {
129
+ // Prepare all the elements for the leave animation (~ 'beforeLeave' hook). Remember the elements are
130
+ // sorted in descending order by index.
131
+ sortedListItems.value.forEach(element => {
132
+ const index = Number.parseInt(element.getAttribute('data-index'));
133
+ initialOffsetLefts[index] = element.offsetLeft;
134
+ element.style.left = `${element.offsetLeft}px`;
135
+ element.style.position = 'absolute';
136
+ element.style.transitionDuration = `${singleAnimationDurationInMs.value}ms`;
137
+ if (index !== selectedIndex) {
138
+ element.style.opacity = '1';
139
+ element.style.transitionDelay = `${(index < selectedIndex ? index : index - 1) * singleAnimationDurationInMs.value}ms`;
140
+ }
141
+ });
142
+ // Synchronize the transition delay of the selected element with the last
143
+ // element to leave
144
+ selected.style.transitionDelay = `${(relatedPrompts.value.length > 1 ? relatedPrompts.value.length - 2 : 0) *
145
+ singleAnimationDurationInMs.value}ms`;
146
+ // Trigger the animation (selecting) for the selected element
147
+ requestAnimationFrame(() => {
148
+ const maxWidth = getComputedStyle(selected).maxWidth;
149
+ selected.style.left = '0px';
150
+ selected.style.setProperty('width', `${maxWidth !== 'none' ? maxWidth : '100%'}`, 'important');
151
+ });
152
+ }
153
+ else {
154
+ // Prepare the selected element for the deselecting animation
155
+ selected.style.transitionDuration = `${singleAnimationDurationInMs.value}ms`;
156
+ selected.style.left = '0px';
157
+ selected.style.position = 'absolute';
158
+ // Trigger the animation (deselecting) for the selected element
159
+ selected.style.removeProperty('width');
160
+ requestAnimationFrame(() => {
161
+ selected.style.left = `${initialOffsetLefts[selectedIndex]}px`;
162
+ });
163
+ }
164
+ x.emit('UserSelectedARelatedPrompt', selectedIndex, {
165
+ relatedPrompt: relatedPrompts.value[selectedIndex],
166
+ selectedPrompt: selectedPromptIndex.value
167
+ });
168
+ };
169
+ const onBeforeEnter = (el) => {
170
+ const element = el;
171
+ const index = Number.parseInt(element.getAttribute('data-index'));
172
+ // Prepare the element for the enter animation
173
+ element.style.opacity = '0';
174
+ element.style.transform = 'translateY(5px)';
175
+ element.style.transitionDelay = `${(clickedListItemIndex.value !== null && index > clickedListItemIndex.value
176
+ ? index - 1
177
+ : index) * singleAnimationDurationInMs.value}ms`;
178
+ element.style.transitionDuration = `${singleAnimationDurationInMs.value}ms`;
179
+ };
180
+ const onEnter = (el, done) => {
181
+ const element = el;
182
+ const index = Number.parseInt(element.getAttribute('data-index'));
183
+ // Also part of the preparation for the enter animation, but it needs to be done
184
+ // once the element is inserted in DOM (if not the offsetLeft will be always 0)
185
+ element.style.left = `${initialOffsetLefts[index] ?? element.offsetLeft}px`;
186
+ // trigger enter animation
187
+ requestAnimationFrame(() => {
188
+ element.style.opacity = '1';
189
+ element.style.position = 'absolute';
190
+ element.style.transform = 'translateY(0)';
191
+ });
192
+ done();
193
+ };
194
+ const onLeave = (el, done) => {
195
+ const element = el;
196
+ // trigger leave animation
197
+ requestAnimationFrame(() => {
198
+ element.style.opacity = '0';
199
+ element.style.transform = 'translateY(5px)';
200
+ });
201
+ // Wait for the animation to finish (done() exectution extracts the element from the DOM)
202
+ setTimeout(done, props.animationDurationInMs);
203
+ };
204
+ const isSelected = (index) => selectedPromptIndex.value === index;
205
+ // Changing the request will trigger the appear animation, so we need to reset the
206
+ // style after it finishes
207
+ x.on('SearchRequestChanged', false).subscribe(() => {
208
+ resetTransitionStyle([]);
209
+ });
210
+ return {
211
+ isSelected,
212
+ onSelect,
213
+ onBeforeEnter,
214
+ onEnter,
215
+ onLeave,
216
+ selectedPromptIndex,
217
+ visibleRelatedPrompts,
218
+ listItems,
219
+ isAnimating,
220
+ x
221
+ };
222
+ }
223
+ });
224
+
225
+ export { _sfc_main as default };
226
+ //# sourceMappingURL=related-prompts-tag-list.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"related-prompts-tag-list.vue2.js","sources":["../../../../../src/x-modules/related-prompts/components/related-prompts-tag-list.vue"],"sourcesContent":["<template>\n <SlidingPanel\n :key=\"x.query.search\"\n :reset-on-content-change=\"false\"\n :button-class=\"buttonClass\"\n :show-buttons=\"showButtons && selectedPromptIndex === -1\"\n :scroll-container-class=\"[\n 'x-related-prompts-tag-list-scroll-container',\n scrollContainerClass || ''\n ]\"\n >\n <template #sliding-panel-left-button>\n <!--\n @slot sliding-panel-left-button - The button to be displayed on the left side of the sliding panel.\n -->\n <slot name=\"sliding-panel-left-button\" />\n </template>\n <transition-group\n @before-enter=\"onBeforeEnter\"\n @enter=\"onEnter\"\n @leave=\"onLeave\"\n class=\"x-related-prompts-tag-list\"\n :css=\"false\"\n tag=\"ul\"\n appear\n >\n <li\n v-for=\"{ index, ...relatedPrompt } in visibleRelatedPrompts\"\n ref=\"listItems\"\n :key=\"relatedPrompt.suggestionText\"\n class=\"x-related-prompts-tag-list-item\"\n :class=\"[tagClass, tagColors && tagColors[index % tagColors.length]]\"\n :data-index=\"index\"\n :style=\"isAnimating && { pointerEvents: 'none' }\"\n data-test=\"related-prompts-tag-list-item\"\n >\n <!--\n @slot - The slot to render related prompt information.\n @prop {Object} relatedPrompt - The related prompt object.\n @prop {Function} onSelect - The function to select the related prompt.\n @prop {Boolean} isSelected - Indicates if the related prompt is currently selected.\n -->\n <slot\n :relatedPrompt=\"relatedPrompt\"\n :onSelect=\"() => onSelect(index)\"\n :isSelected=\"isSelected(index)\"\n >\n <DisplayEmitter\n :payload=\"relatedPrompt.toolingDisplayTagging\"\n :eventMetadata=\"{\n feature: 'related-prompts',\n displayOriginalQuery: x.query.searchBox,\n replaceable: false\n }\"\n >\n <RelatedPrompt\n @click=\"onSelect(index)\"\n :related-prompt=\"relatedPrompt\"\n :selected=\"isSelected(index)\"\n >\n <template #related-prompt-extra-content>\n <slot name=\"related-prompt-extra-content\" :relatedPrompt=\"relatedPrompt\" />\n </template>\n </RelatedPrompt>\n </DisplayEmitter>\n </slot>\n </li>\n </transition-group>\n <template #sliding-panel-right-button>\n <!--\n @slot sliding-panel-right-button - The button to be displayed on the right side of the sliding panel.\n -->\n <slot name=\"sliding-panel-right-button\" />\n </template>\n </SlidingPanel>\n</template>\n\n<script lang=\"ts\">\n import { RelatedPrompt as RelatedPromptModel } from '@empathyco/x-types';\n import { computed, defineComponent, PropType, ref } from 'vue';\n import SlidingPanel from '../../../components/sliding-panel.vue';\n import { relatedPromptsXModule } from '../x-module';\n import { use$x, useState } from '../../../composables';\n import DisplayEmitter from '../../../components/display-emitter.vue';\n import RelatedPrompt from './related-prompt.vue';\n\n /**\n * This component shows the list of `RelatedPrompts` components.\n *\n * If the default slot is reimplemented in the consumer, `onSelect` function will be\n * necessary to handle the selection of the related prompt and to trigger the stagger-fade-slide animation.\n *\n * @public\n */\n export default defineComponent({\n name: 'RelatedPromptsTagList',\n xModule: relatedPromptsXModule.name,\n components: { DisplayEmitter, RelatedPrompt, SlidingPanel },\n props: {\n /**\n * The CSS class for the left and right button of the sliding panel.\n *\n * @public\n */\n buttonClass: String,\n /**\n * The boolean prop to handle the visiblity of sliding pannel buttons.\n *\n * @public\n */\n showButtons: { type: Boolean, default: true },\n /**\n * The CSS class for the wrapper of all the related prompt wrapper elements.\n *\n * @public\n */\n scrollContainerClass: String,\n /**\n * The CSS class for all the related prompt wrapper elements.\n *\n * @public\n */\n tagClass: String,\n /**\n * Array of colors to apply to the related prompts. It will be applied to tag\n * elements cyclically according to their index in the nex way: `tagColors[index % tagColors.length]`.\n *\n * @public\n */\n tagColors: Array as PropType<string[]>,\n /**\n * The duration of the total animation in milliseconds.\n *\n * @public\n */\n animationDurationInMs: {\n type: Number,\n default: 700\n }\n },\n setup(props) {\n const x = use$x();\n const { relatedPrompts, selectedPrompt: selectedPromptIndex } = useState('relatedPrompts', [\n 'relatedPrompts',\n 'selectedPrompt'\n ]);\n\n const clickedListItemIndex = ref<number | null>(null);\n const initialOffsetLefts: Record<number, number> = {};\n const isAnimating = ref(false);\n const listItems = ref<HTMLElement[]>([]);\n\n const sortedListItems = computed<HTMLElement[]>(() =>\n [...listItems.value].sort(\n (a: HTMLElement, b: HTMLElement) =>\n Number.parseInt(b.getAttribute('data-index')!) -\n Number.parseInt(a.getAttribute('data-index')!)\n )\n );\n\n // The duration of a single animation (enter or leave) in milliseconds\n // if a related prompt is clicked (clickedListItemIndex.value !== null), the duration is divided by the number of related\n // prompts -1 (the clicked one is synchronized with the last one to leave or the first one to enter)\n const singleAnimationDurationInMs = computed(\n () =>\n props.animationDurationInMs /\n (clickedListItemIndex.value !== null\n ? relatedPrompts.value.length - 1\n : relatedPrompts.value.length)\n );\n\n const indexRelatedPrompts = computed(() =>\n (relatedPrompts.value as RelatedPromptModel[]).map(\n (relatedPrompt: RelatedPromptModel, index: number) => ({\n ...relatedPrompt,\n index\n })\n )\n );\n\n const visibleRelatedPrompts = computed(() => {\n return selectedPromptIndex.value !== -1\n ? [indexRelatedPrompts.value[selectedPromptIndex.value]]\n : indexRelatedPrompts.value;\n });\n\n let timeOutId: number;\n const resetTransitionStyle = (excludedProperties: Array<string> = ['width']) => {\n if (timeOutId) {\n clearTimeout(timeOutId);\n }\n\n isAnimating.value = true;\n timeOutId = +setTimeout(() => {\n isAnimating.value = false;\n clickedListItemIndex.value = null;\n\n sortedListItems.value.forEach(element => {\n element.style.cssText\n .split(';')\n .map(rule => rule.split(':')[0]?.trim())\n .forEach(property => {\n if (!excludedProperties.includes(property)) {\n element.style.removeProperty(property);\n }\n });\n });\n }, props.animationDurationInMs);\n };\n\n const onSelect = (selectedIndex: number): void => {\n resetTransitionStyle();\n\n clickedListItemIndex.value = selectedIndex;\n const selected: HTMLElement = sortedListItems.value.find(\n element => Number.parseInt(element.getAttribute('data-index')!) === selectedIndex\n )!;\n\n // selectedPromptIndex.value === -1 ? 'SELECTING' : 'DESELECTING'\n if (selectedPromptIndex.value === -1) {\n // Prepare all the elements for the leave animation (~ 'beforeLeave' hook). Remember the elements are\n // sorted in descending order by index.\n sortedListItems.value.forEach(element => {\n const index = Number.parseInt(element.getAttribute('data-index')!);\n\n initialOffsetLefts[index] = element.offsetLeft;\n element.style.left = `${element.offsetLeft}px`;\n element.style.position = 'absolute';\n element.style.transitionDuration = `${singleAnimationDurationInMs.value}ms`;\n\n if (index !== selectedIndex) {\n element.style.opacity = '1';\n element.style.transitionDelay = `${\n (index < selectedIndex ? index : index - 1) * singleAnimationDurationInMs.value\n }ms`;\n }\n });\n\n // Synchronize the transition delay of the selected element with the last\n // element to leave\n selected.style.transitionDelay = `${\n (relatedPrompts.value.length > 1 ? relatedPrompts.value.length - 2 : 0) *\n singleAnimationDurationInMs.value\n }ms`;\n\n // Trigger the animation (selecting) for the selected element\n requestAnimationFrame(() => {\n const maxWidth = getComputedStyle(selected).maxWidth;\n\n selected.style.left = '0px';\n selected.style.setProperty(\n 'width',\n `${maxWidth !== 'none' ? maxWidth : '100%'}`,\n 'important'\n );\n });\n } else {\n // Prepare the selected element for the deselecting animation\n selected.style.transitionDuration = `${singleAnimationDurationInMs.value}ms`;\n selected.style.left = '0px';\n selected.style.position = 'absolute';\n\n // Trigger the animation (deselecting) for the selected element\n selected.style.removeProperty('width');\n requestAnimationFrame(() => {\n selected.style.left = `${initialOffsetLefts[selectedIndex]}px`;\n });\n }\n\n x.emit('UserSelectedARelatedPrompt', selectedIndex, {\n relatedPrompt: relatedPrompts.value[selectedIndex],\n selectedPrompt: selectedPromptIndex.value\n });\n };\n\n const onBeforeEnter = (el: Element) => {\n const element = el as HTMLElement;\n const index = Number.parseInt(element.getAttribute('data-index')!);\n\n // Prepare the element for the enter animation\n element.style.opacity = '0';\n element.style.transform = 'translateY(5px)';\n element.style.transitionDelay = `${\n (clickedListItemIndex.value !== null && index > clickedListItemIndex.value\n ? index - 1\n : index) * singleAnimationDurationInMs.value\n }ms`;\n element.style.transitionDuration = `${singleAnimationDurationInMs.value}ms`;\n };\n\n const onEnter = (el: Element, done: () => void) => {\n const element = el as HTMLElement;\n const index = Number.parseInt(element.getAttribute('data-index')!);\n\n // Also part of the preparation for the enter animation, but it needs to be done\n // once the element is inserted in DOM (if not the offsetLeft will be always 0)\n element.style.left = `${initialOffsetLefts[index] ?? element.offsetLeft}px`;\n\n // trigger enter animation\n requestAnimationFrame(() => {\n element.style.opacity = '1';\n element.style.position = 'absolute';\n element.style.transform = 'translateY(0)';\n });\n\n done();\n };\n\n const onLeave = (el: Element, done: () => void) => {\n const element = el as HTMLElement;\n\n // trigger leave animation\n requestAnimationFrame(() => {\n element.style.opacity = '0';\n element.style.transform = 'translateY(5px)';\n });\n\n // Wait for the animation to finish (done() exectution extracts the element from the DOM)\n setTimeout(done, props.animationDurationInMs);\n };\n\n const isSelected = (index: number): boolean => selectedPromptIndex.value === index;\n\n // Changing the request will trigger the appear animation, so we need to reset the\n // style after it finishes\n x.on('SearchRequestChanged', false).subscribe(() => {\n resetTransitionStyle([]);\n });\n\n return {\n isSelected,\n onSelect,\n onBeforeEnter,\n onEnter,\n onLeave,\n selectedPromptIndex,\n visibleRelatedPrompts,\n listItems,\n isAnimating,\n x\n };\n }\n });\n</script>\n<style lang=\"css\">\n .x-related-prompts-tag-list-scroll-container {\n height: 100%;\n position: relative;\n }\n .x-related-prompts-tag-list {\n display: flex;\n gap: 16px;\n min-width: 100%;\n width: 100%;\n }\n .x-related-prompts-tag-list-item {\n height: 100%;\n flex-shrink: 0;\n }\n</style>\n"],"names":["DisplayEmitter"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import injectCss from '../../../../tools/inject-css.js';
2
+
3
+ var css = ".x-related-prompts-tag-list-scroll-container{height:100%;position:relative}.x-related-prompts-tag-list{display:flex;gap:16px;min-width:100%;width:100%}.x-related-prompts-tag-list-item{flex-shrink:0;height:100%}";
4
+ injectCss(css);
5
+
6
+ export { css, css as default };
7
+ //# sourceMappingURL=related-prompts-tag-list.vue3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"related-prompts-tag-list.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,29 @@
1
+ import { createFetchAndSaveActions } from '../../../../store/utils/fetch-and-save-action.utils.js';
2
+
3
+ const { fetchAndSave, cancelPrevious } = createFetchAndSaveActions({
4
+ fetch({ dispatch }, request) {
5
+ return dispatch('fetchRelatedPrompts', request);
6
+ },
7
+ onSuccess({ commit }, relatedPrompts) {
8
+ if (relatedPrompts) {
9
+ commit('setRelatedPromptsProducts', relatedPrompts);
10
+ }
11
+ }
12
+ });
13
+ /**
14
+ * Default implementation for
15
+ * {@link RelatedPromptsActions.fetchAndSaveRelatedPrompts} action.
16
+ *
17
+ * @public
18
+ */
19
+ const fetchAndSaveRelatedPrompts = fetchAndSave;
20
+ /**
21
+ * Default implementation for
22
+ * {@link RelatedPromptsActions.cancelFetchAndSaveRelatedPrompts} action.
23
+ *
24
+ * @public
25
+ */
26
+ const cancelFetchAndSaveRelatedPrompts = cancelPrevious;
27
+
28
+ export { cancelFetchAndSaveRelatedPrompts, fetchAndSaveRelatedPrompts };
29
+ //# sourceMappingURL=fetch-and-save-related-prompts.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-and-save-related-prompts.action.js","sources":["../../../../../../src/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.ts"],"sourcesContent":["import { RelatedPrompt, RelatedPromptsRequest } from '@empathyco/x-types';\nimport { createFetchAndSaveActions } from '../../../../store/utils/fetch-and-save-action.utils';\nimport { RelatedPromptsActionContext } from '../types';\n\nconst { fetchAndSave, cancelPrevious } = createFetchAndSaveActions<\n RelatedPromptsActionContext,\n RelatedPromptsRequest | null,\n RelatedPrompt[] | null\n>({\n fetch({ dispatch }, request) {\n return dispatch('fetchRelatedPrompts', request);\n },\n onSuccess({ commit }, relatedPrompts) {\n if (relatedPrompts) {\n commit('setRelatedPromptsProducts', relatedPrompts);\n }\n }\n});\n\n/**\n * Default implementation for\n * {@link RelatedPromptsActions.fetchAndSaveRelatedPrompts} action.\n *\n * @public\n */\nexport const fetchAndSaveRelatedPrompts = fetchAndSave;\n\n/**\n * Default implementation for\n * {@link RelatedPromptsActions.cancelFetchAndSaveRelatedPrompts} action.\n *\n * @public\n */\nexport const cancelFetchAndSaveRelatedPrompts = cancelPrevious;\n"],"names":[],"mappings":";;AAIA,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,yBAAyB,CAIhE;AACA,IAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAA;AACzB,QAAA,OAAO,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;KACjD;AACD,IAAA,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,EAAA;AAClC,QAAA,IAAI,cAAc,EAAE;AAClB,YAAA,MAAM,CAAC,2BAA2B,EAAE,cAAc,CAAC,CAAC;AACrD,SAAA;KACF;AACF,CAAA,CAAC,CAAC;AAEH;;;;;AAKG;AACI,MAAM,0BAA0B,GAAG,aAAa;AAEvD;;;;;AAKG;AACI,MAAM,gCAAgC,GAAG;;;;"}
@@ -0,0 +1,20 @@
1
+ import { XPlugin } from '../../../../plugins/x-plugin.js';
2
+
3
+ /**
4
+ * Default implementation for the {@link RelatedPromptsActions.fetchRelatedPrompts}.
5
+ *
6
+ * @param _ - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,
7
+ * provided by Vuex.
8
+ * @param request - The related prompts request to make.
9
+ * @returns The related prompts response.
10
+ *
11
+ * @public
12
+ */
13
+ const fetchRelatedPrompts = (_, request) => {
14
+ return request
15
+ ? XPlugin.adapter.relatedPrompts(request).then(({ relatedPrompts }) => relatedPrompts)
16
+ : null;
17
+ };
18
+
19
+ export { fetchRelatedPrompts };
20
+ //# sourceMappingURL=fetch-related-prompts.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-related-prompts.action.js","sources":["../../../../../../src/x-modules/related-prompts/store/actions/fetch-related-prompts.action.ts"],"sourcesContent":["import { XPlugin } from '../../../../plugins/x-plugin';\nimport { RelatedPromptsXStoreModule } from '../types';\n\n/**\n * Default implementation for the {@link RelatedPromptsActions.fetchRelatedPrompts}.\n *\n * @param _ - The {@link https://vuex.vuejs.org/guide/actions.html | context} of the actions,\n * provided by Vuex.\n * @param request - The related prompts request to make.\n * @returns The related prompts response.\n *\n * @public\n */\nexport const fetchRelatedPrompts: RelatedPromptsXStoreModule['actions']['fetchRelatedPrompts'] = (\n _,\n request\n) => {\n return request\n ? XPlugin.adapter.relatedPrompts(request).then(({ relatedPrompts }) => relatedPrompts)\n : null;\n};\n"],"names":[],"mappings":";;AAGA;;;;;;;;;AASG;MACU,mBAAmB,GAAiE,CAC/F,CAAC,EACD,OAAO,KACL;AACF,IAAA,OAAO,OAAO;UACV,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,cAAc,CAAC;UACpF,IAAI,CAAC;AACX;;;;"}
@@ -0,0 +1,15 @@
1
+ import '@empathyco/x-utils';
2
+ import { createStoreEmitters } from '../../../store/utils/store-emitters.utils.js';
3
+ import { relatedPromptsXStoreModule } from './module.js';
4
+
5
+ /**
6
+ * {@link StoreEmitters} For the related-prompts module.
7
+ *
8
+ * @internal
9
+ */
10
+ const relatedPromptsStoreEmitters = createStoreEmitters(relatedPromptsXStoreModule, {
11
+ RelatedPromptsRequestUpdated: (_, getters) => getters.request
12
+ });
13
+
14
+ export { relatedPromptsStoreEmitters };
15
+ //# sourceMappingURL=emitters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitters.js","sources":["../../../../../src/x-modules/related-prompts/store/emitters.ts"],"sourcesContent":["import { createStoreEmitters } from '../../../store';\nimport { relatedPromptsXStoreModule } from './module';\n\n/**\n * {@link StoreEmitters} For the related-prompts module.\n *\n * @internal\n */\nexport const relatedPromptsStoreEmitters = createStoreEmitters(relatedPromptsXStoreModule, {\n RelatedPromptsRequestUpdated: (_, getters) => getters.request\n});\n"],"names":[],"mappings":";;;;AAGA;;;;AAIG;AACU,MAAA,2BAA2B,GAAG,mBAAmB,CAAC,0BAA0B,EAAE;IACzF,4BAA4B,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO;AAC9D,CAAA;;;;"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Default implementation for the {@link RelatedPromptsGetters.request} getter.
3
+ *
4
+ * @param state - Current {@link https://vuex.vuejs.org/guide/state.html | state} of the related
5
+ * prompts module.
6
+ *
7
+ * @returns The related prompts request to fetch data from the API.
8
+ *
9
+ * @public
10
+ */
11
+ const request = ({ params, query }) => {
12
+ return query ? { query, extraParams: params } : null;
13
+ };
14
+
15
+ export { request };
16
+ //# sourceMappingURL=request.getter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.getter.js","sources":["../../../../../../src/x-modules/related-prompts/store/getters/request.getter.ts"],"sourcesContent":["import { RelatedPromptsXStoreModule } from '../types';\n\n/**\n * Default implementation for the {@link RelatedPromptsGetters.request} getter.\n *\n * @param state - Current {@link https://vuex.vuejs.org/guide/state.html | state} of the related\n * prompts module.\n *\n * @returns The related prompts request to fetch data from the API.\n *\n * @public\n */\nexport const request: RelatedPromptsXStoreModule['getters']['request'] = ({ params, query }) => {\n return query ? { query, extraParams: params } : null;\n};\n"],"names":[],"mappings":"AAEA;;;;;;;;;AASG;AACU,MAAA,OAAO,GAAqD,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAI;AAC7F,IAAA,OAAO,KAAK,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AACvD;;;;"}
@@ -0,0 +1,61 @@
1
+ import { setStatus } from '../../../store/utils/status-store.utils.js';
2
+ import { setQuery } from '../../../store/utils/query.utils.js';
3
+ import { fetchAndSaveRelatedPrompts, cancelFetchAndSaveRelatedPrompts } from './actions/fetch-and-save-related-prompts.action.js';
4
+ import { fetchRelatedPrompts } from './actions/fetch-related-prompts.action.js';
5
+ import { request } from './getters/request.getter.js';
6
+
7
+ /**
8
+ * {@link XStoreModule} For the related prompt module.
9
+ *
10
+ * @internal
11
+ */
12
+ const relatedPromptsXStoreModule = {
13
+ state: () => ({
14
+ query: '',
15
+ relatedPrompts: [],
16
+ selectedPrompt: -1,
17
+ selectedQuery: -1,
18
+ status: 'initial',
19
+ params: {}
20
+ }),
21
+ getters: {
22
+ request
23
+ },
24
+ mutations: {
25
+ setStatus,
26
+ setQuery,
27
+ setParams(state, params) {
28
+ state.params = params;
29
+ },
30
+ setRelatedPromptsProducts(state, products) {
31
+ state.relatedPrompts = products;
32
+ },
33
+ setSelectedPrompt(state, selectedPrompt) {
34
+ if (state.selectedPrompt === selectedPrompt) {
35
+ state.selectedPrompt = -1;
36
+ }
37
+ else {
38
+ state.selectedPrompt = selectedPrompt;
39
+ }
40
+ },
41
+ setSelectedQuery(state, selectedQuery) {
42
+ state.selectedQuery = selectedQuery;
43
+ },
44
+ resetRelatedPromptsState(state) {
45
+ state.selectedQuery = -1;
46
+ state.selectedPrompt = -1;
47
+ state.relatedPrompts = [];
48
+ },
49
+ resetSelectedPrompt(state) {
50
+ state.selectedPrompt = -1;
51
+ }
52
+ },
53
+ actions: {
54
+ fetchRelatedPrompts,
55
+ fetchAndSaveRelatedPrompts,
56
+ cancelFetchAndSaveRelatedPrompts
57
+ }
58
+ };
59
+
60
+ export { relatedPromptsXStoreModule };
61
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sources":["../../../../../src/x-modules/related-prompts/store/module.ts"],"sourcesContent":["import { setStatus } from '../../../store/utils/status-store.utils';\nimport { setQuery } from '../../../store/utils/query.utils';\nimport { RelatedPromptsXStoreModule } from './types';\nimport {\n cancelFetchAndSaveRelatedPrompts,\n fetchAndSaveRelatedPrompts\n} from './actions/fetch-and-save-related-prompts.action';\nimport { fetchRelatedPrompts } from './actions/fetch-related-prompts.action';\nimport { request } from './getters/request.getter';\n\n/**\n * {@link XStoreModule} For the related prompt module.\n *\n * @internal\n */\nexport const relatedPromptsXStoreModule: RelatedPromptsXStoreModule = {\n state: () => ({\n query: '',\n relatedPrompts: [],\n selectedPrompt: -1,\n selectedQuery: -1,\n status: 'initial',\n params: {}\n }),\n getters: {\n request\n },\n mutations: {\n setStatus,\n setQuery,\n setParams(state, params) {\n state.params = params;\n },\n setRelatedPromptsProducts(state, products) {\n state.relatedPrompts = products;\n },\n setSelectedPrompt(state, selectedPrompt) {\n if (state.selectedPrompt === selectedPrompt) {\n state.selectedPrompt = -1;\n } else {\n state.selectedPrompt = selectedPrompt;\n }\n },\n setSelectedQuery(state, selectedQuery) {\n state.selectedQuery = selectedQuery;\n },\n resetRelatedPromptsState(state) {\n state.selectedQuery = -1;\n state.selectedPrompt = -1;\n state.relatedPrompts = [];\n },\n resetSelectedPrompt(state) {\n state.selectedPrompt = -1;\n }\n },\n actions: {\n fetchRelatedPrompts,\n fetchAndSaveRelatedPrompts,\n cancelFetchAndSaveRelatedPrompts\n }\n};\n"],"names":[],"mappings":";;;;;;AAUA;;;;AAIG;AACU,MAAA,0BAA0B,GAA+B;AACpE,IAAA,KAAK,EAAE,OAAO;AACZ,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,CAAC,CAAC;QAClB,aAAa,EAAE,CAAC,CAAC;AACjB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,EAAE;KACX,CAAC;AACF,IAAA,OAAO,EAAE;QACP,OAAO;AACR,KAAA;AACD,IAAA,SAAS,EAAE;QACT,SAAS;QACT,QAAQ;QACR,SAAS,CAAC,KAAK,EAAE,MAAM,EAAA;AACrB,YAAA,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;SACvB;QACD,yBAAyB,CAAC,KAAK,EAAE,QAAQ,EAAA;AACvC,YAAA,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;SACjC;QACD,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAA;AACrC,YAAA,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,EAAE;AAC3C,gBAAA,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC;AACvC,aAAA;SACF;QACD,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAA;AACnC,YAAA,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;SACrC;AACD,QAAA,wBAAwB,CAAC,KAAK,EAAA;AAC5B,YAAA,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;AACzB,YAAA,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AAC1B,YAAA,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;SAC3B;AACD,QAAA,mBAAmB,CAAC,KAAK,EAAA;AACvB,YAAA,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;SAC3B;AACF,KAAA;AACD,IAAA,OAAO,EAAE;QACP,mBAAmB;QACnB,0BAA0B;QAC1B,gCAAgC;AACjC,KAAA;;;;;"}