@empathyco/x-components 6.0.0-alpha.6 → 6.0.0-alpha.60

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 (823) hide show
  1. package/CHANGELOG.md +522 -0
  2. package/core/index.js +8 -1
  3. package/core/index.js.map +1 -1
  4. package/design-system/deprecated-full-theme.css +1647 -1648
  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 +1 -1
  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.baseswitch.md +1 -1
  47. package/docs/API-reference/api/x-components.basetabspanel.md +8 -8
  48. package/docs/API-reference/api/x-components.basetogglepanel.md +3 -3
  49. package/docs/API-reference/api/x-components.basevariablecolumngrid.md +3 -3
  50. package/docs/API-reference/api/x-components.cancelfetchandsaverelatedprompts.md +13 -0
  51. package/docs/API-reference/api/x-components.configmutations.config.md +11 -0
  52. package/docs/API-reference/api/x-components.configmutations.md +29 -0
  53. package/docs/API-reference/api/x-components.configmutations.mergeconfig.md +24 -0
  54. package/docs/API-reference/api/x-components.configmutations.setconfig.md +24 -0
  55. package/docs/API-reference/api/x-components.createrelatedtagsquerygetter.md +26 -0
  56. package/docs/API-reference/api/x-components.createrelatedtagsquerygetteroptions.getrelatedtags.md +13 -0
  57. package/docs/API-reference/api/x-components.createrelatedtagsquerygetteroptions.md +20 -0
  58. package/docs/API-reference/api/x-components.createtrackrelatedprompttoolingdisplayclickwire.md +19 -0
  59. package/docs/API-reference/api/x-components.createtracktoolingadd2cartwire.md +19 -0
  60. package/docs/API-reference/api/x-components.createtracktoolingdisplaywire.md +19 -0
  61. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice._constructor_.md → x-components.defaultexternaltaggingservice._constructor_.md} +3 -3
  62. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.add_to_cart_id_key.md +13 -0
  63. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.instance.md +13 -0
  64. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.localstorageservice.md +11 -0
  65. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.md +43 -0
  66. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.movetosessionstorage.md → x-components.defaultexternaltaggingservice.movetosessionstorage.md} +2 -2
  67. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.result_clicked_id_key.md +13 -0
  68. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.sessionstorageservice.md +11 -0
  69. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.storagekey.md +11 -0
  70. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.storagettlms.md +11 -0
  71. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.store.md → x-components.defaultexternaltaggingservice.store.md} +2 -2
  72. package/docs/API-reference/api/x-components.defaultexternaltaggingservice.storeaddtocart.md +24 -0
  73. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.storeresultclicked.md → x-components.defaultexternaltaggingservice.storeresultclicked.md} +3 -3
  74. package/docs/API-reference/api/{x-components.defaultpdpaddtocartservice.trackaddtocart.md → x-components.defaultexternaltaggingservice.trackaddtocart.md} +3 -3
  75. package/docs/API-reference/api/x-components.displayclickprovider.md +66 -0
  76. package/docs/API-reference/api/x-components.empathize.md +6 -6
  77. package/docs/API-reference/api/x-components.empathizemutations.md +1 -1
  78. package/docs/API-reference/api/x-components.externaltaggingservice.md +23 -0
  79. package/docs/API-reference/api/{x-components.pdpaddtocartservice.movetosessionstorage.md → x-components.externaltaggingservice.movetosessionstorage.md} +2 -2
  80. package/docs/API-reference/api/x-components.externaltaggingservice.storeaddtocart.md +24 -0
  81. package/docs/API-reference/api/{x-components.pdpaddtocartservice.storeresultclicked.md → x-components.externaltaggingservice.storeresultclicked.md} +3 -3
  82. package/docs/API-reference/api/{x-components.pdpaddtocartservice.trackaddtocart.md → x-components.externaltaggingservice.trackaddtocart.md} +3 -3
  83. package/docs/API-reference/api/x-components.facets.md +3 -3
  84. package/docs/API-reference/api/x-components.facetsmutations.md +1 -1
  85. package/docs/API-reference/api/x-components.featurelocation.md +1 -1
  86. package/docs/API-reference/api/x-components.fetchandsaverelatedprompts.md +13 -0
  87. package/docs/API-reference/api/x-components.fetchrelatedprompts.md +13 -0
  88. package/docs/API-reference/api/x-components.filterslist.md +3 -3
  89. package/docs/API-reference/api/x-components.globalxbus.md +14 -0
  90. package/docs/API-reference/api/x-components.hierarchicalfilter.md +9 -2
  91. package/docs/API-reference/api/x-components.historyqueriesmutations.md +1 -1
  92. package/docs/API-reference/api/x-components.historyqueriesstate.md +1 -1
  93. package/docs/API-reference/api/x-components.identifierresults.md +3 -3
  94. package/docs/API-reference/api/x-components.identifierresultsmutations.md +1 -1
  95. package/docs/API-reference/api/x-components.identifierresultsstate.md +1 -1
  96. package/docs/API-reference/api/x-components.installxoptions.domelement.md +1 -1
  97. package/docs/API-reference/api/x-components.installxoptions.installextraplugins.md +2 -2
  98. package/docs/API-reference/api/x-components.installxoptions.md +1 -1
  99. package/docs/API-reference/api/x-components.itemslist.md +3 -3
  100. package/docs/API-reference/api/x-components.mainmodal.md +2 -2
  101. package/docs/API-reference/api/x-components.md +38 -3
  102. package/docs/API-reference/api/x-components.mergeconfig.md +27 -0
  103. package/docs/API-reference/api/x-components.multicolumnmaxwidthlayout.md +5 -5
  104. package/docs/API-reference/api/x-components.myhistory.md +3 -3
  105. package/docs/API-reference/api/x-components.nextqueriesgroup.md +22 -0
  106. package/docs/API-reference/api/x-components.nextqueriesgroup.modelname.md +11 -0
  107. package/docs/API-reference/api/x-components.nextqueriesgroup.nextqueries.md +11 -0
  108. package/docs/API-reference/api/x-components.nextquerieslist.md +3 -3
  109. package/docs/API-reference/api/x-components.nextqueriesmutations.md +1 -1
  110. package/docs/API-reference/api/x-components.nextqueriesstate.md +1 -1
  111. package/docs/API-reference/api/x-components.pageselector.md +80 -0
  112. package/docs/API-reference/api/x-components.partialresultslist.md +3 -3
  113. package/docs/API-reference/api/x-components.popularsearchesmutations.md +1 -1
  114. package/docs/API-reference/api/x-components.promotedslist.md +3 -3
  115. package/docs/API-reference/api/x-components.queriespreviewmutations.md +1 -1
  116. package/docs/API-reference/api/x-components.queryfeature.md +1 -1
  117. package/docs/API-reference/api/x-components.querymutations.md +20 -0
  118. package/docs/API-reference/api/x-components.querymutations.setquery.md +24 -0
  119. package/docs/API-reference/api/x-components.querypreviewlist.md +3 -3
  120. package/docs/API-reference/api/x-components.querystate.md +20 -0
  121. package/docs/API-reference/api/x-components.querystate.query.md +13 -0
  122. package/docs/API-reference/api/x-components.querysuggestionsmutations.md +1 -1
  123. package/docs/API-reference/api/x-components.querysuggestionsstate.md +1 -1
  124. package/docs/API-reference/api/x-components.recommendations.md +3 -3
  125. package/docs/API-reference/api/x-components.recommendationsmutations.md +1 -1
  126. package/docs/API-reference/api/x-components.relatedprompt.md +33 -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 +23 -0
  132. package/docs/API-reference/api/x-components.relatedpromptsactions.seturlparams.md +24 -0
  133. package/docs/API-reference/api/x-components.relatedpromptsgetters.md +21 -0
  134. package/docs/API-reference/api/x-components.relatedpromptsgetters.query.md +13 -0
  135. package/docs/API-reference/api/x-components.relatedpromptsgetters.request.md +13 -0
  136. package/docs/API-reference/api/x-components.relatedpromptslist.md +72 -0
  137. package/docs/API-reference/api/x-components.relatedpromptsmutations.md +27 -0
  138. package/docs/API-reference/api/x-components.relatedpromptsmutations.resetrelatedpromptsstate.md +17 -0
  139. package/docs/API-reference/api/x-components.relatedpromptsmutations.resetselectedprompt.md +17 -0
  140. package/docs/API-reference/api/x-components.relatedpromptsmutations.setparams.md +24 -0
  141. package/docs/API-reference/api/x-components.relatedpromptsmutations.setrelatedpromptsproducts.md +24 -0
  142. package/docs/API-reference/api/x-components.relatedpromptsmutations.setrelatedpromptsrelatedtags.md +24 -0
  143. package/docs/API-reference/api/x-components.relatedpromptsmutations.setselectedprompt.md +24 -0
  144. package/docs/API-reference/api/x-components.relatedpromptsmutations.setselectedquery.md +24 -0
  145. package/docs/API-reference/api/x-components.relatedpromptsstate.md +25 -0
  146. package/docs/API-reference/api/x-components.relatedpromptsstate.params.md +13 -0
  147. package/docs/API-reference/api/x-components.relatedpromptsstate.relatedprompts.md +13 -0
  148. package/docs/API-reference/api/x-components.relatedpromptsstate.relatedtags.md +13 -0
  149. package/docs/API-reference/api/x-components.relatedpromptsstate.selectedprompt.md +13 -0
  150. package/docs/API-reference/api/x-components.relatedpromptsstate.selectedquery.md +13 -0
  151. package/docs/API-reference/api/x-components.relatedpromptstaglist.md +72 -0
  152. package/docs/API-reference/api/x-components.relatedpromptsxevents.md +25 -0
  153. package/docs/API-reference/api/x-components.relatedpromptsxevents.relatedpromptsrequestupdated.md +13 -0
  154. package/docs/API-reference/api/x-components.relatedpromptsxevents.selectedrelatedpromptchanged.md +13 -0
  155. package/docs/API-reference/api/x-components.relatedpromptsxevents.userclickedarelatedpromptadd2cart.md +13 -0
  156. package/docs/API-reference/api/x-components.relatedpromptsxevents.userclickedarelatedpromptresult.md +13 -0
  157. package/docs/API-reference/api/x-components.relatedpromptsxevents.userselectedarelatedprompt.md +13 -0
  158. package/docs/API-reference/api/x-components.relatedpromptsxevents.userselectedarelatedpromptquery.md +13 -0
  159. package/docs/API-reference/api/x-components.relatedpromptsxmodule.md +13 -0
  160. package/docs/API-reference/api/x-components.relatedpromptsxstoremodule.md +15 -0
  161. package/docs/API-reference/api/x-components.relatedtags.md +3 -3
  162. package/docs/API-reference/api/x-components.relatedtagsmutations.md +1 -1
  163. package/docs/API-reference/api/x-components.relatedtagsstate.md +1 -1
  164. package/docs/API-reference/api/x-components.resultfeature.md +1 -1
  165. package/docs/API-reference/api/x-components.resultslist.md +3 -3
  166. package/docs/API-reference/api/x-components.scrolltotop.md +5 -5
  167. package/docs/API-reference/api/x-components.searchboxmutations.md +1 -1
  168. package/docs/API-reference/api/x-components.searchboxstate.md +1 -1
  169. package/docs/API-reference/api/x-components.searchconfig.md +1 -0
  170. package/docs/API-reference/api/x-components.searchconfig.pagemode.md +11 -0
  171. package/docs/API-reference/api/x-components.searchinputplaceholder.md +3 -3
  172. package/docs/API-reference/api/x-components.searchmutations.md +2 -1
  173. package/docs/API-reference/api/x-components.searchmutations.setstats.md +24 -0
  174. package/docs/API-reference/api/x-components.searchstate.md +2 -1
  175. package/docs/API-reference/api/x-components.searchstate.stats.md +13 -0
  176. package/docs/API-reference/api/x-components.searchxevents.md +1 -0
  177. package/docs/API-reference/api/x-components.searchxevents.userselectedapage.md +13 -0
  178. package/docs/API-reference/api/x-components.selectedfilterslist.md +3 -3
  179. package/docs/API-reference/api/x-components.semanticqueriesgetters.md +1 -0
  180. package/docs/API-reference/api/x-components.semanticqueriesgetters.query.md +13 -0
  181. package/docs/API-reference/api/x-components.semanticqueriesmutations.md +2 -1
  182. package/docs/API-reference/api/x-components.semanticqueriesmutations.setsemanticqueriesrelatedtags.md +24 -0
  183. package/docs/API-reference/api/x-components.semanticqueriesstate.md +2 -1
  184. package/docs/API-reference/api/x-components.semanticqueriesstate.relatedtags.md +13 -0
  185. package/docs/API-reference/api/x-components.setconfig.md +27 -0
  186. package/docs/API-reference/api/x-components.setquery.md +25 -0
  187. package/docs/API-reference/api/x-components.seturlprompt.md +13 -0
  188. package/docs/API-reference/api/x-components.simplefilter.md +7 -0
  189. package/docs/API-reference/api/x-components.singlecolumnlayout.md +3 -3
  190. package/docs/API-reference/api/x-components.slidingpanel.md +13 -5
  191. package/docs/API-reference/api/x-components.snippetcallbacks.md +7 -0
  192. package/docs/API-reference/api/x-components.sortdropdown.md +1 -1
  193. package/docs/API-reference/api/x-components.tagging.md +6 -6
  194. package/docs/API-reference/api/x-components.taggingconfig.md +2 -2
  195. package/docs/API-reference/api/{x-components.taggingconfig.clickedresultstoragekey.md → x-components.taggingconfig.storagekey.md} +3 -3
  196. package/docs/API-reference/api/x-components.taggingconfig.storagettlms.md +13 -0
  197. package/docs/API-reference/api/x-components.taggingmutations.md +1 -1
  198. package/docs/API-reference/api/x-components.taggingxevents.md +1 -1
  199. package/docs/API-reference/api/x-components.taggingxevents.resulturltrackingenabled.md +1 -1
  200. package/docs/API-reference/api/x-components.trackrelatedprompttoolingdisplayclickwire.md +13 -0
  201. package/docs/API-reference/api/x-components.tracktoolingadd2cartwire.md +13 -0
  202. package/docs/API-reference/api/x-components.tracktoolingdisplayclickedwire.md +13 -0
  203. package/docs/API-reference/api/x-components.typing.md +13 -0
  204. package/docs/API-reference/api/x-components.typingoptions.md +22 -0
  205. package/docs/API-reference/api/x-components.typingoptions.speed.md +13 -0
  206. package/docs/API-reference/api/x-components.typingoptions.targetattr.md +18 -0
  207. package/docs/API-reference/api/x-components.typingoptions.text.md +13 -0
  208. package/docs/API-reference/api/x-components.urlmutations.md +2 -1
  209. package/docs/API-reference/api/x-components.urlmutations.setprompt.md +24 -0
  210. package/docs/API-reference/api/x-components.urlparams.md +1 -0
  211. package/docs/API-reference/api/x-components.urlparams.prompt.md +11 -0
  212. package/docs/API-reference/api/x-components.urlstate.md +1 -1
  213. package/docs/API-reference/api/x-components.usealiasapi.md +1 -0
  214. package/docs/API-reference/api/x-components.usealiasapi.pricestats.md +16 -0
  215. package/docs/API-reference/api/x-components.xeventstypes.md +3 -3
  216. package/docs/API-reference/api/x-components.xmodulestree.md +1 -0
  217. package/docs/API-reference/api/x-components.xmodulestree.relatedprompts.md +11 -0
  218. package/docs/API-reference/api/x-types.md +2 -0
  219. package/docs/API-reference/api/x-types.relatedprompt.md +4 -1
  220. package/docs/API-reference/api/x-types.relatedprompt.nextqueries.md +1 -1
  221. package/docs/API-reference/api/x-types.relatedprompt.relatedpromptnextqueries.md +13 -0
  222. package/docs/API-reference/api/x-types.relatedprompt.tagging.md +17 -0
  223. package/docs/API-reference/api/x-types.relatedprompt.toolingdisplaytagging.md +13 -0
  224. package/docs/API-reference/api/x-types.relatedpromptnextquery.md +23 -0
  225. package/docs/API-reference/api/x-types.relatedpromptnextquery.query.md +13 -0
  226. package/docs/API-reference/api/x-types.relatedpromptnextquery.toolingdisplayadd2carttagging.md +13 -0
  227. package/docs/API-reference/api/x-types.relatedpromptnextquery.toolingdisplayclicktagging.md +13 -0
  228. package/docs/API-reference/api/x-types.relatedpromptnextquery.toolingdisplaytagging.md +13 -0
  229. package/docs/API-reference/api/x-types.searchresponse.md +1 -0
  230. package/docs/API-reference/api/x-types.searchresponse.stats.md +11 -0
  231. package/docs/API-reference/api/x-types.stats.md +22 -0
  232. package/docs/API-reference/api/x-types.stats.price.md +14 -0
  233. package/docs/API-reference/components/common/result/x-components.base-result-image.md +2 -2
  234. package/docs/API-reference/components/common/x-components.base-slider.md +189 -0
  235. package/docs/API-reference/components/common/x-components.display-click-provider.md +17 -0
  236. package/docs/API-reference/components/common/x-components.items-list.md +1 -1
  237. package/docs/API-reference/components/common/x-components.page-selector.md +136 -0
  238. package/docs/API-reference/components/common/x-components.sliding-panel.md +7 -7
  239. package/docs/API-reference/components/facets/x-components.facets/facets.md +1 -1
  240. package/docs/API-reference/components/facets/x-components.lists/selected-filters-list.md +1 -1
  241. package/docs/API-reference/components/related-prompts/x-components.related-prompt.md +22 -0
  242. package/docs/API-reference/components/related-prompts/x-components.related-prompts-list.md +196 -0
  243. package/docs/API-reference/components/related-prompts/x-components.related-prompts-tag-list.md +32 -0
  244. package/docs/API-reference/components/search/x-components.results-list.md +1 -1
  245. package/docs/API-reference/components/tagging/x-components.tagging.md +15 -16
  246. package/js/components/animations/fade-and-slide.vue.js +1 -2
  247. package/js/components/animations/fade-and-slide.vue.js.map +1 -1
  248. package/js/components/base-dropdown.vue.js +1 -3
  249. package/js/components/base-dropdown.vue.js.map +1 -1
  250. package/js/components/base-dropdown.vue2.js +1 -7
  251. package/js/components/base-dropdown.vue2.js.map +1 -1
  252. package/js/components/base-event-button.vue.js +1 -2
  253. package/js/components/base-event-button.vue.js.map +1 -1
  254. package/js/components/base-grid.vue.js +11 -18
  255. package/js/components/base-grid.vue.js.map +1 -1
  256. package/js/components/base-grid.vue2.js.map +1 -1
  257. package/js/components/base-grid.vue3.js +1 -1
  258. package/js/components/base-keyboard-navigation.vue.js +1 -2
  259. package/js/components/base-keyboard-navigation.vue.js.map +1 -1
  260. package/js/components/base-rating.vue.js +1 -3
  261. package/js/components/base-rating.vue.js.map +1 -1
  262. package/js/components/base-slider.vue.js +65 -0
  263. package/js/components/base-slider.vue.js.map +1 -0
  264. package/js/components/base-slider.vue2.js +109 -0
  265. package/js/components/base-slider.vue2.js.map +1 -0
  266. package/js/components/base-slider.vue3.js +7 -0
  267. package/js/components/base-slider.vue3.js.map +1 -0
  268. package/js/components/base-switch.vue.js.map +1 -1
  269. package/js/components/base-switch.vue2.js +3 -7
  270. package/js/components/base-switch.vue2.js.map +1 -1
  271. package/js/components/base-variable-column-grid.vue.js +1 -2
  272. package/js/components/base-variable-column-grid.vue.js.map +1 -1
  273. package/js/components/column-picker/base-column-picker-dropdown.vue.js +1 -3
  274. package/js/components/column-picker/base-column-picker-dropdown.vue.js.map +1 -1
  275. package/js/components/column-picker/base-column-picker-list.vue.js +1 -3
  276. package/js/components/column-picker/base-column-picker-list.vue.js.map +1 -1
  277. package/js/components/display-click-provider.vue.js +74 -0
  278. package/js/components/display-click-provider.vue.js.map +1 -0
  279. package/js/components/display-click-provider.vue2.js +6 -0
  280. package/js/components/display-click-provider.vue2.js.map +1 -0
  281. package/js/components/filters/labels/base-rating-filter-label.vue.js +1 -3
  282. package/js/components/filters/labels/base-rating-filter-label.vue.js.map +1 -1
  283. package/js/components/icons/cross-tiny.vue.js +2 -2
  284. package/js/components/icons/plus.vue.js +2 -2
  285. package/js/components/items-list.vue.js +1 -2
  286. package/js/components/items-list.vue.js.map +1 -1
  287. package/js/components/items-list.vue2.js +2 -2
  288. package/js/components/items-list.vue2.js.map +1 -1
  289. package/js/components/layouts/fixed-header-and-asides-layout.vue.js +1 -7
  290. package/js/components/layouts/fixed-header-and-asides-layout.vue.js.map +1 -1
  291. package/js/components/layouts/multi-column-max-width-layout.vue.js +1 -9
  292. package/js/components/layouts/multi-column-max-width-layout.vue.js.map +1 -1
  293. package/js/components/layouts/single-column-layout.vue.js +1 -9
  294. package/js/components/layouts/single-column-layout.vue.js.map +1 -1
  295. package/js/components/modals/base-events-modal-close.vue.js +1 -2
  296. package/js/components/modals/base-events-modal-close.vue.js.map +1 -1
  297. package/js/components/modals/base-events-modal-open.vue.js +1 -2
  298. package/js/components/modals/base-events-modal-open.vue.js.map +1 -1
  299. package/js/components/modals/base-id-modal-close.vue.js +1 -2
  300. package/js/components/modals/base-id-modal-close.vue.js.map +1 -1
  301. package/js/components/modals/base-id-modal-open.vue.js +1 -2
  302. package/js/components/modals/base-id-modal-open.vue.js.map +1 -1
  303. package/js/components/modals/base-modal.vue.js +1 -2
  304. package/js/components/modals/base-modal.vue.js.map +1 -1
  305. package/js/components/modals/base-modal.vue2.js +13 -6
  306. package/js/components/modals/base-modal.vue2.js.map +1 -1
  307. package/js/components/page-loader-button.vue.js +8 -10
  308. package/js/components/page-loader-button.vue.js.map +1 -1
  309. package/js/components/page-loader-button.vue2.js.map +1 -1
  310. package/js/components/page-loader-button.vue3.js +7 -0
  311. package/js/components/page-loader-button.vue3.js.map +1 -0
  312. package/js/components/page-selector.vue.js +78 -0
  313. package/js/components/page-selector.vue.js.map +1 -0
  314. package/js/components/page-selector.vue2.js +128 -0
  315. package/js/components/page-selector.vue2.js.map +1 -0
  316. package/js/components/page-selector.vue3.js +7 -0
  317. package/js/components/page-selector.vue3.js.map +1 -0
  318. package/js/components/panels/base-header-toggle-panel.vue.js +1 -5
  319. package/js/components/panels/base-header-toggle-panel.vue.js.map +1 -1
  320. package/js/components/panels/base-id-toggle-panel-button.vue.js +1 -2
  321. package/js/components/panels/base-id-toggle-panel-button.vue.js.map +1 -1
  322. package/js/components/panels/base-id-toggle-panel.vue.js +1 -2
  323. package/js/components/panels/base-id-toggle-panel.vue.js.map +1 -1
  324. package/js/components/panels/base-tabs-panel.vue.js +1 -4
  325. package/js/components/panels/base-tabs-panel.vue.js.map +1 -1
  326. package/js/components/panels/base-toggle-panel.vue.js +1 -2
  327. package/js/components/panels/base-toggle-panel.vue.js.map +1 -1
  328. package/js/components/result/base-result-add-to-cart.vue.js +3 -3
  329. package/js/components/result/base-result-add-to-cart.vue.js.map +1 -1
  330. package/js/components/result/base-result-add-to-cart.vue2.js +19 -5
  331. package/js/components/result/base-result-add-to-cart.vue2.js.map +1 -1
  332. package/js/components/result/base-result-current-price.vue.js +1 -2
  333. package/js/components/result/base-result-current-price.vue.js.map +1 -1
  334. package/js/components/result/base-result-image.vue.js +39 -59
  335. package/js/components/result/base-result-image.vue.js.map +1 -1
  336. package/js/components/result/base-result-image.vue2.js +5 -5
  337. package/js/components/result/base-result-image.vue2.js.map +1 -1
  338. package/js/components/result/base-result-link.vue.js +1 -2
  339. package/js/components/result/base-result-link.vue.js.map +1 -1
  340. package/js/components/result/base-result-previous-price.vue.js +1 -2
  341. package/js/components/result/base-result-previous-price.vue.js.map +1 -1
  342. package/js/components/result/base-result-rating.vue.js +1 -4
  343. package/js/components/result/base-result-rating.vue.js.map +1 -1
  344. package/js/components/result/result-variant-selector.vue.js +1 -3
  345. package/js/components/result/result-variant-selector.vue.js.map +1 -1
  346. package/js/components/sliding-panel.vue.js +3 -6
  347. package/js/components/sliding-panel.vue.js.map +1 -1
  348. package/js/components/sliding-panel.vue2.js +2 -2
  349. package/js/components/sliding-panel.vue2.js.map +1 -1
  350. package/js/components/suggestions/base-suggestion.vue.js +1 -2
  351. package/js/components/suggestions/base-suggestion.vue.js.map +1 -1
  352. package/js/components/suggestions/base-suggestions.vue.js +1 -2
  353. package/js/components/suggestions/base-suggestions.vue.js.map +1 -1
  354. package/js/composables/use-alias-api.js +4 -1
  355. package/js/composables/use-alias-api.js.map +1 -1
  356. package/js/composables/use-getter.js +1 -1
  357. package/js/composables/use-state.js +1 -1
  358. package/js/directives/typing.js +58 -0
  359. package/js/directives/typing.js.map +1 -0
  360. package/js/index.js +20 -4
  361. package/js/index.js.map +1 -1
  362. package/js/types/animation-prop.js +5 -0
  363. package/js/types/animation-prop.js.map +1 -1
  364. package/js/x-installer/x-installer/x-installer.js +3 -3
  365. package/js/x-installer/x-installer/x-installer.js.map +1 -1
  366. package/js/x-modules/device/store/emitters.js +1 -0
  367. package/js/x-modules/device/store/emitters.js.map +1 -1
  368. package/js/x-modules/empathize/components/empathize.vue.js +1 -2
  369. package/js/x-modules/empathize/components/empathize.vue.js.map +1 -1
  370. package/js/x-modules/empathize/components/empathize.vue2.js +8 -3
  371. package/js/x-modules/empathize/components/empathize.vue2.js.map +1 -1
  372. package/js/x-modules/empathize/store/emitters.js +1 -0
  373. package/js/x-modules/empathize/store/emitters.js.map +1 -1
  374. package/js/x-modules/experience-controls/store/emitters.js +1 -0
  375. package/js/x-modules/experience-controls/store/emitters.js.map +1 -1
  376. package/js/x-modules/extra-params/components/extra-params.vue.js +1 -1
  377. package/js/x-modules/extra-params/components/extra-params.vue.js.map +1 -1
  378. package/js/x-modules/extra-params/store/emitters.js +1 -0
  379. package/js/x-modules/extra-params/store/emitters.js.map +1 -1
  380. package/js/x-modules/facets/components/facets/facets.vue.js +20 -33
  381. package/js/x-modules/facets/components/facets/facets.vue.js.map +1 -1
  382. package/js/x-modules/facets/components/facets/facets.vue2.js +2 -2
  383. package/js/x-modules/facets/components/facets/facets.vue2.js.map +1 -1
  384. package/js/x-modules/facets/components/filters/all-filter.vue.js +1 -2
  385. package/js/x-modules/facets/components/filters/all-filter.vue.js.map +1 -1
  386. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js +1 -6
  387. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js.map +1 -1
  388. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js +1 -3
  389. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js.map +1 -1
  390. package/js/x-modules/facets/components/filters/number-range-filter.vue.js +1 -3
  391. package/js/x-modules/facets/components/filters/number-range-filter.vue.js.map +1 -1
  392. package/js/x-modules/facets/components/filters/simple-filter.vue.js +1 -3
  393. package/js/x-modules/facets/components/filters/simple-filter.vue.js.map +1 -1
  394. package/js/x-modules/facets/components/lists/filters-list.vue.js +1 -2
  395. package/js/x-modules/facets/components/lists/filters-list.vue.js.map +1 -1
  396. package/js/x-modules/facets/components/lists/filters-search.vue.js +1 -3
  397. package/js/x-modules/facets/components/lists/filters-search.vue.js.map +1 -1
  398. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js +11 -18
  399. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js.map +1 -1
  400. package/js/x-modules/facets/components/lists/selected-filters-list.vue2.js +2 -2
  401. package/js/x-modules/facets/components/lists/selected-filters-list.vue2.js.map +1 -1
  402. package/js/x-modules/facets/components/lists/sliced-filters.vue.js +1 -4
  403. package/js/x-modules/facets/components/lists/sliced-filters.vue.js.map +1 -1
  404. package/js/x-modules/history-queries/components/clear-history-queries.vue.js +1 -2
  405. package/js/x-modules/history-queries/components/clear-history-queries.vue.js.map +1 -1
  406. package/js/x-modules/history-queries/components/history-queries.vue.js +1 -10
  407. package/js/x-modules/history-queries/components/history-queries.vue.js.map +1 -1
  408. package/js/x-modules/history-queries/components/history-query.vue.js +1 -6
  409. package/js/x-modules/history-queries/components/history-query.vue.js.map +1 -1
  410. package/js/x-modules/history-queries/components/my-history.vue.js +1 -4
  411. package/js/x-modules/history-queries/components/my-history.vue.js.map +1 -1
  412. package/js/x-modules/history-queries/components/remove-history-query.vue.js +1 -2
  413. package/js/x-modules/history-queries/components/remove-history-query.vue.js.map +1 -1
  414. package/js/x-modules/history-queries/store/emitters.js +1 -0
  415. package/js/x-modules/history-queries/store/emitters.js.map +1 -1
  416. package/js/x-modules/identifier-results/components/identifier-results.vue.js +1 -2
  417. package/js/x-modules/identifier-results/components/identifier-results.vue.js.map +1 -1
  418. package/js/x-modules/identifier-results/store/emitters.js +1 -0
  419. package/js/x-modules/identifier-results/store/emitters.js.map +1 -1
  420. package/js/x-modules/next-queries/components/next-queries.vue.js +1 -7
  421. package/js/x-modules/next-queries/components/next-queries.vue.js.map +1 -1
  422. package/js/x-modules/next-queries/components/next-query-preview.vue.js +1 -3
  423. package/js/x-modules/next-queries/components/next-query-preview.vue.js.map +1 -1
  424. package/js/x-modules/next-queries/components/next-query.vue.js +1 -4
  425. package/js/x-modules/next-queries/components/next-query.vue.js.map +1 -1
  426. package/js/x-modules/next-queries/store/emitters.js +1 -0
  427. package/js/x-modules/next-queries/store/emitters.js.map +1 -1
  428. package/js/x-modules/popular-searches/components/popular-search.vue.js +1 -4
  429. package/js/x-modules/popular-searches/components/popular-search.vue.js.map +1 -1
  430. package/js/x-modules/popular-searches/components/popular-searches.vue.js +1 -7
  431. package/js/x-modules/popular-searches/components/popular-searches.vue.js.map +1 -1
  432. package/js/x-modules/queries-preview/components/query-preview-button.vue.js +1 -2
  433. package/js/x-modules/queries-preview/components/query-preview-button.vue.js.map +1 -1
  434. package/js/x-modules/queries-preview/components/query-preview-button.vue2.js +6 -0
  435. package/js/x-modules/queries-preview/components/query-preview-button.vue2.js.map +1 -1
  436. package/js/x-modules/queries-preview/components/query-preview-list.vue.js.map +1 -1
  437. package/js/x-modules/queries-preview/components/query-preview-list.vue2.js +15 -2
  438. package/js/x-modules/queries-preview/components/query-preview-list.vue2.js.map +1 -1
  439. package/js/x-modules/queries-preview/components/query-preview.vue.js +1 -2
  440. package/js/x-modules/queries-preview/components/query-preview.vue.js.map +1 -1
  441. package/js/x-modules/queries-preview/components/query-preview.vue2.js +7 -1
  442. package/js/x-modules/queries-preview/components/query-preview.vue2.js.map +1 -1
  443. package/js/x-modules/queries-preview/store/actions/fetch-and-save-query-preview.action.js +2 -1
  444. package/js/x-modules/queries-preview/store/actions/fetch-and-save-query-preview.action.js.map +1 -1
  445. package/js/x-modules/queries-preview/store/emitters.js +1 -0
  446. package/js/x-modules/queries-preview/store/emitters.js.map +1 -1
  447. package/js/x-modules/queries-preview/store/module.js +1 -1
  448. package/js/x-modules/queries-preview/store/module.js.map +1 -1
  449. package/js/x-modules/queries-preview/utils/get-hash-from-query-preview.js +6 -4
  450. package/js/x-modules/queries-preview/utils/get-hash-from-query-preview.js.map +1 -1
  451. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js +1 -4
  452. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js.map +1 -1
  453. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js +1 -7
  454. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js.map +1 -1
  455. package/js/x-modules/query-suggestions/store/emitters.js +1 -0
  456. package/js/x-modules/query-suggestions/store/emitters.js.map +1 -1
  457. package/js/x-modules/recommendations/components/recommendations.vue.js +1 -2
  458. package/js/x-modules/recommendations/components/recommendations.vue.js.map +1 -1
  459. package/js/x-modules/recommendations/store/emitters.js +1 -0
  460. package/js/x-modules/recommendations/store/emitters.js.map +1 -1
  461. package/js/x-modules/related-prompts/components/related-prompt.vue.js +27 -0
  462. package/js/x-modules/related-prompts/components/related-prompt.vue.js.map +1 -0
  463. package/js/x-modules/related-prompts/components/related-prompt.vue2.js +31 -0
  464. package/js/x-modules/related-prompts/components/related-prompt.vue2.js.map +1 -0
  465. package/js/x-modules/related-prompts/components/related-prompt.vue3.js +7 -0
  466. package/js/x-modules/related-prompts/components/related-prompt.vue3.js.map +1 -0
  467. package/js/x-modules/related-prompts/components/related-prompts-list.vue.js +154 -0
  468. package/js/x-modules/related-prompts/components/related-prompts-list.vue.js.map +1 -0
  469. package/js/x-modules/related-prompts/components/related-prompts-list.vue2.js +6 -0
  470. package/js/x-modules/related-prompts/components/related-prompts-list.vue2.js.map +1 -0
  471. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue.js +101 -0
  472. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue.js.map +1 -0
  473. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue2.js +221 -0
  474. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue2.js.map +1 -0
  475. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue3.js +7 -0
  476. package/js/x-modules/related-prompts/components/related-prompts-tag-list.vue3.js.map +1 -0
  477. package/js/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.js +29 -0
  478. package/js/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.js.map +1 -0
  479. package/js/x-modules/related-prompts/store/actions/fetch-related-prompts.action.js +20 -0
  480. package/js/x-modules/related-prompts/store/actions/fetch-related-prompts.action.js.map +1 -0
  481. package/js/x-modules/related-prompts/store/actions/set-url-params.action.js +15 -0
  482. package/js/x-modules/related-prompts/store/actions/set-url-params.action.js.map +1 -0
  483. package/js/x-modules/related-prompts/store/emitters.js +16 -0
  484. package/js/x-modules/related-prompts/store/emitters.js.map +1 -0
  485. package/js/x-modules/related-prompts/store/getters/related-prompts-query.getter.js +18 -0
  486. package/js/x-modules/related-prompts/store/getters/related-prompts-query.getter.js.map +1 -0
  487. package/js/x-modules/related-prompts/store/getters/request.getter.js +17 -0
  488. package/js/x-modules/related-prompts/store/getters/request.getter.js.map +1 -0
  489. package/js/x-modules/related-prompts/store/module.js +64 -0
  490. package/js/x-modules/related-prompts/store/module.js.map +1 -0
  491. package/js/x-modules/related-prompts/wiring.js +82 -0
  492. package/js/x-modules/related-prompts/wiring.js.map +1 -0
  493. package/js/x-modules/related-prompts/x-module.js +21 -0
  494. package/js/x-modules/related-prompts/x-module.js.map +1 -0
  495. package/js/x-modules/related-tags/components/related-tag.vue.js +1 -2
  496. package/js/x-modules/related-tags/components/related-tag.vue.js.map +1 -1
  497. package/js/x-modules/related-tags/components/related-tags.vue.js +1 -4
  498. package/js/x-modules/related-tags/components/related-tags.vue.js.map +1 -1
  499. package/js/x-modules/related-tags/store/emitters.js +1 -0
  500. package/js/x-modules/related-tags/store/emitters.js.map +1 -1
  501. package/js/x-modules/scroll/components/scroll-to-top.vue.js +1 -2
  502. package/js/x-modules/scroll/components/scroll-to-top.vue.js.map +1 -1
  503. package/js/x-modules/scroll/components/scroll-to-top.vue2.js +6 -0
  504. package/js/x-modules/scroll/components/scroll-to-top.vue2.js.map +1 -1
  505. package/js/x-modules/scroll/store/emitters.js +1 -0
  506. package/js/x-modules/scroll/store/emitters.js.map +1 -1
  507. package/js/x-modules/search/components/partial-results-list.vue.js +1 -2
  508. package/js/x-modules/search/components/partial-results-list.vue.js.map +1 -1
  509. package/js/x-modules/search/components/results-list.vue.js +2 -2
  510. package/js/x-modules/search/components/results-list.vue.js.map +1 -1
  511. package/js/x-modules/search/components/sort-dropdown.vue.js +1 -3
  512. package/js/x-modules/search/components/sort-dropdown.vue.js.map +1 -1
  513. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js +10 -3
  514. package/js/x-modules/search/store/actions/fetch-and-save-search-response.action.js.map +1 -1
  515. package/js/x-modules/search/store/actions/save-search-response.action.js +3 -1
  516. package/js/x-modules/search/store/actions/save-search-response.action.js.map +1 -1
  517. package/js/x-modules/search/store/emitters.js +1 -0
  518. package/js/x-modules/search/store/emitters.js.map +1 -1
  519. package/js/x-modules/search/store/module.js +9 -3
  520. package/js/x-modules/search/store/module.js.map +1 -1
  521. package/js/x-modules/search/wiring.js +4 -0
  522. package/js/x-modules/search/wiring.js.map +1 -1
  523. package/js/x-modules/search-box/components/clear-search-input.vue.js +1 -2
  524. package/js/x-modules/search-box/components/clear-search-input.vue.js.map +1 -1
  525. package/js/x-modules/search-box/components/search-button.vue.js +1 -2
  526. package/js/x-modules/search-box/components/search-button.vue.js.map +1 -1
  527. package/js/x-modules/search-box/store/emitters.js +1 -0
  528. package/js/x-modules/search-box/store/emitters.js.map +1 -1
  529. package/js/x-modules/semantic-queries/components/semantic-queries.vue.js +1 -3
  530. package/js/x-modules/semantic-queries/components/semantic-queries.vue.js.map +1 -1
  531. package/js/x-modules/semantic-queries/components/semantic-query.vue.js +1 -4
  532. package/js/x-modules/semantic-queries/components/semantic-query.vue.js.map +1 -1
  533. package/js/x-modules/semantic-queries/store/getters/normalized-query.getter.js +1 -1
  534. package/js/x-modules/semantic-queries/store/getters/normalized-query.getter.js.map +1 -1
  535. package/js/x-modules/semantic-queries/store/getters/request.getter.js +5 -4
  536. package/js/x-modules/semantic-queries/store/getters/request.getter.js.map +1 -1
  537. package/js/x-modules/semantic-queries/store/getters/semanti-queries-query.getter.js +18 -0
  538. package/js/x-modules/semantic-queries/store/getters/semanti-queries-query.getter.js.map +1 -0
  539. package/js/x-modules/semantic-queries/store/module.js +8 -2
  540. package/js/x-modules/semantic-queries/store/module.js.map +1 -1
  541. package/js/x-modules/semantic-queries/wiring.js +5 -0
  542. package/js/x-modules/semantic-queries/wiring.js.map +1 -1
  543. package/js/x-modules/tagging/components/tagging.vue.js +8 -7
  544. package/js/x-modules/tagging/components/tagging.vue.js.map +1 -1
  545. package/js/x-modules/tagging/service/{pdp-add-to-cart.service.js → external-tagging.service.js} +56 -25
  546. package/js/x-modules/tagging/service/external-tagging.service.js.map +1 -0
  547. package/js/x-modules/tagging/store/emitters.js +1 -1
  548. package/js/x-modules/tagging/store/emitters.js.map +1 -1
  549. package/js/x-modules/tagging/store/module.js +7 -3
  550. package/js/x-modules/tagging/store/module.js.map +1 -1
  551. package/js/x-modules/tagging/wiring.js +110 -9
  552. package/js/x-modules/tagging/wiring.js.map +1 -1
  553. package/js/x-modules/url/components/url-handler.vue.js.map +1 -1
  554. package/js/x-modules/url/components/url-handler.vue2.js +4 -5
  555. package/js/x-modules/url/components/url-handler.vue2.js.map +1 -1
  556. package/js/x-modules/url/store/emitters.js +1 -0
  557. package/js/x-modules/url/store/emitters.js.map +1 -1
  558. package/js/x-modules/url/store/getters/url-params.getter.js +2 -3
  559. package/js/x-modules/url/store/getters/url-params.getter.js.map +1 -1
  560. package/js/x-modules/url/store/initial-state.js +2 -1
  561. package/js/x-modules/url/store/initial-state.js.map +1 -1
  562. package/js/x-modules/url/store/module.js +3 -0
  563. package/js/x-modules/url/store/module.js.map +1 -1
  564. package/js/x-modules/url/wiring.js +10 -1
  565. package/js/x-modules/url/wiring.js.map +1 -1
  566. package/package.json +50 -49
  567. package/related-prompts/index.d.ts +1 -0
  568. package/related-prompts/index.js +9 -0
  569. package/report/x-adapter-platform.api.json +895 -67
  570. package/report/x-components.api.json +16383 -17149
  571. package/report/x-components.api.md +834 -215
  572. package/report/x-types.api.json +320 -4
  573. package/tagging/index.js +2 -2
  574. package/types/adapter/mocked-responses.d.ts +3 -0
  575. package/types/adapter/mocked-responses.d.ts.map +1 -1
  576. package/types/components/base-dropdown.vue.d.ts +5 -5
  577. package/types/components/base-dropdown.vue.d.ts.map +1 -1
  578. package/types/components/base-grid.vue.d.ts +3 -3
  579. package/types/components/base-slider.vue.d.ts +74 -0
  580. package/types/components/base-slider.vue.d.ts.map +1 -0
  581. package/types/components/base-switch.vue.d.ts +2 -1
  582. package/types/components/base-switch.vue.d.ts.map +1 -1
  583. package/types/components/base-variable-column-grid.vue.d.ts +3 -3
  584. package/types/components/display-click-provider.vue.d.ts +61 -0
  585. package/types/components/display-click-provider.vue.d.ts.map +1 -0
  586. package/types/components/global-x-bus.vue.d.ts +14 -0
  587. package/types/components/global-x-bus.vue.d.ts.map +1 -1
  588. package/types/components/index.d.ts +3 -0
  589. package/types/components/index.d.ts.map +1 -1
  590. package/types/components/items-list.vue.d.ts +3 -3
  591. package/types/components/layouts/multi-column-max-width-layout.vue.d.ts +5 -5
  592. package/types/components/layouts/single-column-layout.vue.d.ts +3 -3
  593. package/types/components/modals/base-events-modal.vue.d.ts +2 -2
  594. package/types/components/modals/base-id-modal.vue.d.ts +2 -2
  595. package/types/components/modals/base-modal.vue.d.ts +10 -10
  596. package/types/components/modals/base-modal.vue.d.ts.map +1 -1
  597. package/types/components/modals/main-modal.vue.d.ts +2 -2
  598. package/types/components/page-selector.vue.d.ts +125 -0
  599. package/types/components/page-selector.vue.d.ts.map +1 -0
  600. package/types/components/panels/base-header-toggle-panel.vue.d.ts +5 -5
  601. package/types/components/panels/base-id-toggle-panel.vue.d.ts +5 -5
  602. package/types/components/panels/base-tabs-panel.vue.d.ts +8 -8
  603. package/types/components/panels/base-toggle-panel.vue.d.ts +3 -3
  604. package/types/components/result/base-result-add-to-cart.vue.d.ts +2 -0
  605. package/types/components/result/base-result-add-to-cart.vue.d.ts.map +1 -1
  606. package/types/components/result/base-result-image.vue.d.ts +10 -10
  607. package/types/components/result/base-result-image.vue.d.ts.map +1 -1
  608. package/types/components/sliding-panel.vue.d.ts +15 -5
  609. package/types/components/sliding-panel.vue.d.ts.map +1 -1
  610. package/types/components/snippet-callbacks.vue.d.ts +7 -0
  611. package/types/components/snippet-callbacks.vue.d.ts.map +1 -1
  612. package/types/components/suggestions/base-suggestions.vue.d.ts +3 -3
  613. package/types/composables/use-alias-api.d.ts +5 -0
  614. package/types/composables/use-alias-api.d.ts.map +1 -1
  615. package/types/composables/use-store.d.ts +2 -2
  616. package/types/composables/use-store.d.ts.map +1 -1
  617. package/types/directives/index.d.ts +1 -0
  618. package/types/directives/index.d.ts.map +1 -1
  619. package/types/directives/typing.d.ts +35 -0
  620. package/types/directives/typing.d.ts.map +1 -0
  621. package/types/index.d.ts +1 -0
  622. package/types/index.d.ts.map +1 -1
  623. package/types/store/index.d.ts +4 -1
  624. package/types/store/index.d.ts.map +1 -1
  625. package/types/tailwind/plugin-options.d.ts +1 -2
  626. package/types/tailwind/plugin-options.d.ts.map +1 -1
  627. package/types/types/animation-prop.d.ts +6 -2
  628. package/types/types/animation-prop.d.ts.map +1 -1
  629. package/types/types/origin.d.ts +3 -3
  630. package/types/types/origin.d.ts.map +1 -1
  631. package/types/types/page-mode.d.ts +2 -0
  632. package/types/types/page-mode.d.ts.map +1 -0
  633. package/types/types/url-params.d.ts +1 -0
  634. package/types/types/url-params.d.ts.map +1 -1
  635. package/types/views/home/types.d.ts +3 -0
  636. package/types/views/home/types.d.ts.map +1 -1
  637. package/types/wiring/events.types.d.ts +3 -1
  638. package/types/wiring/events.types.d.ts.map +1 -1
  639. package/types/x-installer/x-installer/types.d.ts +2 -2
  640. package/types/x-installer/x-installer/types.d.ts.map +1 -1
  641. package/types/x-installer/x-installer/x-installer.d.ts +4 -4
  642. package/types/x-installer/x-installer/x-installer.d.ts.map +1 -1
  643. package/types/x-modules/empathize/components/empathize.vue.d.ts +6 -6
  644. package/types/x-modules/empathize/components/empathize.vue.d.ts.map +1 -1
  645. package/types/x-modules/facets/components/facets/facets.vue.d.ts +3 -3
  646. package/types/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts +9 -2
  647. package/types/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts.map +1 -1
  648. package/types/x-modules/facets/components/filters/simple-filter.vue.d.ts +7 -0
  649. package/types/x-modules/facets/components/filters/simple-filter.vue.d.ts.map +1 -1
  650. package/types/x-modules/facets/components/lists/filters-list.vue.d.ts +3 -3
  651. package/types/x-modules/facets/components/lists/selected-filters-list.vue.d.ts +3 -3
  652. package/types/x-modules/history-queries/components/my-history.vue.d.ts +3 -3
  653. package/types/x-modules/identifier-results/components/identifier-results.vue.d.ts +3 -3
  654. package/types/x-modules/next-queries/components/next-queries-list.vue.d.ts +3 -3
  655. package/types/x-modules/next-queries/index.d.ts +1 -0
  656. package/types/x-modules/next-queries/index.d.ts.map +1 -1
  657. package/types/x-modules/queries-preview/components/query-preview-list.vue.d.ts +3 -3
  658. package/types/x-modules/queries-preview/components/query-preview-list.vue.d.ts.map +1 -1
  659. package/types/x-modules/queries-preview/components/query-preview.vue.d.ts.map +1 -1
  660. package/types/x-modules/queries-preview/store/actions/fetch-and-save-query-preview.action.d.ts.map +1 -1
  661. package/types/x-modules/queries-preview/store/module.d.ts.map +1 -1
  662. package/types/x-modules/queries-preview/utils/get-hash-from-query-preview.d.ts +4 -2
  663. package/types/x-modules/queries-preview/utils/get-hash-from-query-preview.d.ts.map +1 -1
  664. package/types/x-modules/recommendations/components/recommendations.vue.d.ts +3 -3
  665. package/types/x-modules/related-prompts/components/index.d.ts +4 -0
  666. package/types/x-modules/related-prompts/components/index.d.ts.map +1 -0
  667. package/types/x-modules/related-prompts/components/related-prompt.vue.d.ts +28 -0
  668. package/types/x-modules/related-prompts/components/related-prompt.vue.d.ts.map +1 -0
  669. package/types/x-modules/related-prompts/components/related-prompts-list.vue.d.ts +106 -0
  670. package/types/x-modules/related-prompts/components/related-prompts-list.vue.d.ts.map +1 -0
  671. package/types/x-modules/related-prompts/components/related-prompts-tag-list.vue.d.ts +131 -0
  672. package/types/x-modules/related-prompts/components/related-prompts-tag-list.vue.d.ts.map +1 -0
  673. package/types/x-modules/related-prompts/events.types.d.ts +41 -0
  674. package/types/x-modules/related-prompts/events.types.d.ts.map +1 -0
  675. package/types/x-modules/related-prompts/index.d.ts +6 -0
  676. package/types/x-modules/related-prompts/index.d.ts.map +1 -0
  677. package/types/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.d.ts +17 -0
  678. package/types/x-modules/related-prompts/store/actions/fetch-and-save-related-prompts.action.d.ts.map +1 -0
  679. package/types/x-modules/related-prompts/store/actions/fetch-related-prompts.action.d.ts +13 -0
  680. package/types/x-modules/related-prompts/store/actions/fetch-related-prompts.action.d.ts.map +1 -0
  681. package/types/x-modules/related-prompts/store/actions/set-url-params.action.d.ts +11 -0
  682. package/types/x-modules/related-prompts/store/actions/set-url-params.action.d.ts.map +1 -0
  683. package/types/x-modules/related-prompts/store/emitters.d.ts +10 -0
  684. package/types/x-modules/related-prompts/store/emitters.d.ts.map +1 -0
  685. package/types/x-modules/related-prompts/store/getters/index.d.ts +3 -0
  686. package/types/x-modules/related-prompts/store/getters/index.d.ts.map +1 -0
  687. package/types/x-modules/related-prompts/store/getters/related-prompts-query.getter.d.ts +13 -0
  688. package/types/x-modules/related-prompts/store/getters/related-prompts-query.getter.d.ts.map +1 -0
  689. package/types/x-modules/related-prompts/store/getters/request.getter.d.ts +14 -0
  690. package/types/x-modules/related-prompts/store/getters/request.getter.d.ts.map +1 -0
  691. package/types/x-modules/related-prompts/store/index.d.ts +6 -0
  692. package/types/x-modules/related-prompts/store/index.d.ts.map +1 -0
  693. package/types/x-modules/related-prompts/store/module.d.ts +8 -0
  694. package/types/x-modules/related-prompts/store/module.d.ts.map +1 -0
  695. package/types/x-modules/related-prompts/store/types.d.ts +125 -0
  696. package/types/x-modules/related-prompts/store/types.d.ts.map +1 -0
  697. package/types/x-modules/related-prompts/types.d.ts +10 -0
  698. package/types/x-modules/related-prompts/types.d.ts.map +1 -0
  699. package/types/x-modules/related-prompts/wiring.d.ts +42 -0
  700. package/types/x-modules/related-prompts/wiring.d.ts.map +1 -0
  701. package/types/x-modules/related-prompts/x-module.d.ts +16 -0
  702. package/types/x-modules/related-prompts/x-module.d.ts.map +1 -0
  703. package/types/x-modules/related-tags/components/related-tags.vue.d.ts +3 -3
  704. package/types/x-modules/scroll/components/scroll-to-top.vue.d.ts +5 -5
  705. package/types/x-modules/search/components/banners-list.vue.d.ts +3 -3
  706. package/types/x-modules/search/components/partial-results-list.vue.d.ts +3 -3
  707. package/types/x-modules/search/components/promoteds-list.vue.d.ts +3 -3
  708. package/types/x-modules/search/components/results-list.vue.d.ts +3 -3
  709. package/types/x-modules/search/components/sort-dropdown.vue.d.ts +1 -1
  710. package/types/x-modules/search/config.types.d.ts +2 -0
  711. package/types/x-modules/search/config.types.d.ts.map +1 -1
  712. package/types/x-modules/search/events.types.d.ts +4 -0
  713. package/types/x-modules/search/events.types.d.ts.map +1 -1
  714. package/types/x-modules/search/store/actions/fetch-and-save-search-response.action.d.ts.map +1 -1
  715. package/types/x-modules/search/store/actions/save-search-response.action.d.ts.map +1 -1
  716. package/types/x-modules/search/store/module.d.ts +2 -0
  717. package/types/x-modules/search/store/module.d.ts.map +1 -1
  718. package/types/x-modules/search/store/types.d.ts +9 -1
  719. package/types/x-modules/search/store/types.d.ts.map +1 -1
  720. package/types/x-modules/search/wiring.d.ts +4 -0
  721. package/types/x-modules/search/wiring.d.ts.map +1 -1
  722. package/types/x-modules/search-box/components/search-input-placeholder.vue.d.ts +3 -3
  723. package/types/x-modules/semantic-queries/store/getters/index.d.ts +1 -0
  724. package/types/x-modules/semantic-queries/store/getters/index.d.ts.map +1 -1
  725. package/types/x-modules/semantic-queries/store/getters/normalized-query.getter.d.ts +1 -1
  726. package/types/x-modules/semantic-queries/store/getters/request.getter.d.ts +2 -1
  727. package/types/x-modules/semantic-queries/store/getters/request.getter.d.ts.map +1 -1
  728. package/types/x-modules/semantic-queries/store/getters/semanti-queries-query.getter.d.ts +13 -0
  729. package/types/x-modules/semantic-queries/store/getters/semanti-queries-query.getter.d.ts.map +1 -0
  730. package/types/x-modules/semantic-queries/store/module.d.ts.map +1 -1
  731. package/types/x-modules/semantic-queries/store/types.d.ts +13 -1
  732. package/types/x-modules/semantic-queries/store/types.d.ts.map +1 -1
  733. package/types/x-modules/semantic-queries/wiring.d.ts +3 -0
  734. package/types/x-modules/semantic-queries/wiring.d.ts.map +1 -1
  735. package/types/x-modules/tagging/components/tagging.vue.d.ts +14 -12
  736. package/types/x-modules/tagging/components/tagging.vue.d.ts.map +1 -1
  737. package/types/x-modules/tagging/config.types.d.ts +3 -3
  738. package/types/x-modules/tagging/config.types.d.ts.map +1 -1
  739. package/types/x-modules/tagging/events.types.d.ts +2 -2
  740. package/types/x-modules/tagging/service/{pdp-add-to-cart.service.d.ts → external-tagging.service.d.ts} +31 -13
  741. package/types/x-modules/tagging/service/external-tagging.service.d.ts.map +1 -0
  742. package/types/x-modules/tagging/service/index.d.ts +1 -1
  743. package/types/x-modules/tagging/service/index.d.ts.map +1 -1
  744. package/types/x-modules/tagging/service/types.d.ts +13 -4
  745. package/types/x-modules/tagging/service/types.d.ts.map +1 -1
  746. package/types/x-modules/tagging/store/module.d.ts.map +1 -1
  747. package/types/x-modules/tagging/wiring.d.ts +54 -2
  748. package/types/x-modules/tagging/wiring.d.ts.map +1 -1
  749. package/types/x-modules/url/components/url-handler.vue.d.ts.map +1 -1
  750. package/types/x-modules/url/store/getters/url-params.getter.d.ts +2 -3
  751. package/types/x-modules/url/store/getters/url-params.getter.d.ts.map +1 -1
  752. package/types/x-modules/url/store/initial-state.d.ts.map +1 -1
  753. package/types/x-modules/url/store/module.d.ts.map +1 -1
  754. package/types/x-modules/url/store/types.d.ts +6 -0
  755. package/types/x-modules/url/store/types.d.ts.map +1 -1
  756. package/types/x-modules/url/wiring.d.ts +9 -0
  757. package/types/x-modules/url/wiring.d.ts.map +1 -1
  758. package/types/x-modules/x-modules.types.d.ts +2 -0
  759. package/types/x-modules/x-modules.types.d.ts.map +1 -1
  760. package/url/index.js +1 -1
  761. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.clickedresultstoragekey.md +0 -11
  762. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.clickedresultstoragettlms.md +0 -11
  763. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.instance.md +0 -13
  764. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.localstorageservice.md +0 -11
  765. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.md +0 -41
  766. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.result_clicked_id_key.md +0 -13
  767. package/docs/API-reference/api/x-components.defaultpdpaddtocartservice.sessionstorageservice.md +0 -11
  768. package/docs/API-reference/api/x-components.pdpaddtocartservice.md +0 -22
  769. package/docs/API-reference/api/x-components.taggingconfig.clickedresultstoragettlms.md +0 -13
  770. package/docs/API-reference/api/x-components.usestore.md +0 -19
  771. package/docs/assets/features/overview-my-history.svg +0 -279
  772. package/docs/assets/features/overview-product-results-card.svg +0 -128
  773. package/docs/assets/interface/build-search-ui.svg +0 -167
  774. package/docs/assets/interface/experience-search-intro.svg +0 -1
  775. package/docs/assets/interface/integration-guide.svg +0 -1
  776. package/docs/assets/interface/integration-video.png +0 -0
  777. package/docs/assets/interface/x-architecture.svg +0 -1
  778. package/docs/assets/interface/x-empathize.gif +0 -0
  779. package/docs/assets/interface/x-facets.gif +0 -0
  780. package/docs/assets/interface/x-facets.svg +0 -189
  781. package/docs/assets/interface/x-history-queries.gif +0 -0
  782. package/docs/assets/interface/x-id-results.gif +0 -0
  783. package/docs/assets/interface/x-next-queries.gif +0 -0
  784. package/docs/assets/interface/x-popular-searches.gif +0 -0
  785. package/docs/assets/interface/x-query-suggestions.gif +0 -0
  786. package/docs/assets/interface/x-recommendations.gif +0 -0
  787. package/docs/assets/interface/x-recommendations.svg +0 -472
  788. package/docs/assets/interface/x-related-tags.gif +0 -0
  789. package/docs/assets/interface/x-results-layout.svg +0 -259
  790. package/docs/assets/interface/x-search-box-elements.svg +0 -1
  791. package/docs/assets/interface/x-search-box.svg +0 -60
  792. package/docs/build-search-ui/README.md +0 -127
  793. package/docs/build-search-ui/sidebar.js +0 -7
  794. package/docs/build-search-ui/web-archetype-development-guide.md +0 -186
  795. package/docs/build-search-ui/web-archetype-integration-guide.md +0 -458
  796. package/docs/build-search-ui/web-how-to-use-x-components-guide.md +0 -200
  797. package/docs/build-search-ui/web-x-architecture.md +0 -83
  798. package/docs/build-search-ui/web-x-components-development-guide.md +0 -157
  799. package/docs/experience-search-and-discovery/README.md +0 -132
  800. package/docs/experience-search-and-discovery/empathize.md +0 -119
  801. package/docs/experience-search-and-discovery/facets-and-filters.md +0 -154
  802. package/docs/experience-search-and-discovery/history-queries.md +0 -70
  803. package/docs/experience-search-and-discovery/id-results.md +0 -49
  804. package/docs/experience-search-and-discovery/my-history.md +0 -60
  805. package/docs/experience-search-and-discovery/next-queries.md +0 -72
  806. package/docs/experience-search-and-discovery/popular-searches.md +0 -50
  807. package/docs/experience-search-and-discovery/product-results-ui.md +0 -82
  808. package/docs/experience-search-and-discovery/query-suggestions.md +0 -48
  809. package/docs/experience-search-and-discovery/recommendations.md +0 -134
  810. package/docs/experience-search-and-discovery/related-tags.md +0 -66
  811. package/docs/experience-search-and-discovery/search-box.md +0 -99
  812. package/docs/experience-search-and-discovery/serp-ui.md +0 -125
  813. package/docs/experience-search-and-discovery/sidebar.js +0 -17
  814. package/docs/experience-search-and-discovery/web-local-storage.md +0 -30
  815. package/docs/input-status-machine-state.png +0 -0
  816. package/js/composables/use-store.js +0 -15
  817. package/js/composables/use-store.js.map +0 -1
  818. package/js/utils/options-api.js +0 -4
  819. package/js/utils/options-api.js.map +0 -1
  820. package/js/x-modules/tagging/service/pdp-add-to-cart.service.js.map +0 -1
  821. package/types/utils/options-api.d.ts +0 -3
  822. package/types/utils/options-api.d.ts.map +0 -1
  823. package/types/x-modules/tagging/service/pdp-add-to-cart.service.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './single-column-layout.vue2.js';
2
- import { resolveComponent, openBlock, createElementBlock, normalizeClass, createCommentVNode, renderSlot, createVNode, withCtx, createBlock } from 'vue';
2
+ import { resolveComponent, openBlock, createElementBlock, normalizeClass, renderSlot, createCommentVNode, createVNode, withCtx, createBlock } from 'vue';
3
3
  import './single-column-layout.vue3.js';
4
4
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
5
5
 
@@ -79,19 +79,16 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
79
79
  },
80
80
  [
81
81
  _ctx.devMode || _ctx.$slots["header"] ? (openBlock(), createElementBlock("header", _hoisted_1, [
82
- createCommentVNode(" @slot Slot that is used to insert content into the Header. "),
83
82
  renderSlot(_ctx.$slots, "header", {}, () => [
84
83
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_2, "HEADER")) : createCommentVNode("v-if", true)
85
84
  ], true)
86
85
  ])) : createCommentVNode("v-if", true),
87
86
  _ctx.devMode || _ctx.$slots["sub-header"] ? (openBlock(), createElementBlock("div", _hoisted_3, [
88
- createCommentVNode(" @slot Slot that can be used to insert content into the Sub Header. "),
89
87
  renderSlot(_ctx.$slots, "sub-header", {}, () => [
90
88
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_4, "SUB HEADER")) : createCommentVNode("v-if", true)
91
89
  ], true)
92
90
  ])) : createCommentVNode("v-if", true),
93
91
  _ctx.devMode || _ctx.$slots["toolbar"] ? (openBlock(), createElementBlock("div", _hoisted_5, [
94
- createCommentVNode(" @slot Slot that can be used to insert content into the Toolbar. "),
95
92
  renderSlot(_ctx.$slots, "toolbar", {}, () => [
96
93
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_6, "TOOLBAR")) : createCommentVNode("v-if", true)
97
94
  ], true)
@@ -99,7 +96,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
99
96
  _ctx.devMode || _ctx.$slots["predictive"] ? (openBlock(), createElementBlock("div", _hoisted_7, [
100
97
  createVNode(_component_BaseScroll, { class: "x-layout__predictive-scroll x-list x-list--vertical x-list__item--expand" }, {
101
98
  default: withCtx(() => [
102
- createCommentVNode(" @slot Slot that can be used to insert content into the Predictive Layer. "),
103
99
  renderSlot(_ctx.$slots, "predictive", {}, () => [
104
100
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_8, "PREDICTIVE")) : createCommentVNode("v-if", true)
105
101
  ], true)
@@ -116,7 +112,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
116
112
  class: "x-layout__main-scroll x-list x-list--vertical"
117
113
  }, {
118
114
  default: withCtx(() => [
119
- createCommentVNode(" @slot Slot that can be used to insert content into the Main. "),
120
115
  renderSlot(_ctx.$slots, "main", {}, () => [
121
116
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_10, "MAIN")) : createCommentVNode("v-if", true)
122
117
  ], true)
@@ -130,13 +125,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
130
125
  })
131
126
  ])) : createCommentVNode("v-if", true),
132
127
  _ctx.devMode || _ctx.$slots["floating"] ? (openBlock(), createElementBlock("div", _hoisted_11, [
133
- createCommentVNode(" @slot Slot that can be used to insert content into the Floating. "),
134
128
  renderSlot(_ctx.$slots, "floating", {}, () => [
135
129
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_12, "FLOATING")) : createCommentVNode("v-if", true)
136
130
  ], true)
137
131
  ])) : createCommentVNode("v-if", true),
138
132
  _ctx.devMode || _ctx.$slots["footer"] ? (openBlock(), createElementBlock("footer", _hoisted_13, [
139
- createCommentVNode(" @slot Slot that can be used to insert content into the Footer. "),
140
133
  renderSlot(_ctx.$slots, "footer", {}, () => [
141
134
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_14, "FOOTER")) : createCommentVNode("v-if", true)
142
135
  ], true)
@@ -148,7 +141,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
148
141
  class: "x-layout__aside"
149
142
  }, {
150
143
  default: withCtx(() => [
151
- createCommentVNode(" @slot Slot that can be used to insert content into the Aside. "),
152
144
  renderSlot(_ctx.$slots, "aside", {}, () => [
153
145
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_15, "ASIDE")) : createCommentVNode("v-if", true)
154
146
  ], true)
@@ -1 +1 @@
1
- {"version":3,"file":"single-column-layout.vue.js","sources":["../../../../src/components/layouts/single-column-layout.vue"],"sourcesContent":["<template>\n <div class=\"x-layout x-layout--single-column\" :class=\"{ 'dev-mode': devMode }\">\n <header v-if=\"devMode || $slots['header']\" class=\"x-layout__header x-list x-list--horizontal\">\n <!-- @slot Slot that is used to insert content into the Header. -->\n <slot name=\"header\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER</span>\n </slot>\n </header>\n\n <div\n v-if=\"devMode || $slots['sub-header']\"\n class=\"x-layout__sub-header x-list x-list--horizontal\"\n >\n <!-- @slot Slot that can be used to insert content into the Sub Header. -->\n <slot name=\"sub-header\">\n <span v-if=\"devMode\" class=\"slot-helper\">SUB HEADER</span>\n </slot>\n </div>\n\n <div v-if=\"devMode || $slots['toolbar']\" class=\"x-layout__toolbar x-list x-list--horizontal\">\n <!-- @slot Slot that can be used to insert content into the Toolbar. -->\n <slot name=\"toolbar\">\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR</span>\n </slot>\n </div>\n\n <div\n v-if=\"devMode || $slots['predictive']\"\n class=\"x-layout__predictive x-list x-list--vertical\"\n >\n <BaseScroll class=\"x-layout__predictive-scroll x-list x-list--vertical x-list__item--expand\">\n <!-- @slot Slot that can be used to insert content into the Predictive Layer. -->\n <slot name=\"predictive\">\n <span v-if=\"devMode\" class=\"slot-helper\">PREDICTIVE</span>\n </slot>\n </BaseScroll>\n </div>\n\n <main v-if=\"devMode || $slots['main']\" class=\"x-layout__main\">\n <MainScroll>\n <Scroll id=\"main-scroll\" class=\"x-layout__main-scroll x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert content into the Main. -->\n <slot name=\"main\">\n <span v-if=\"devMode\" class=\"slot-helper\">MAIN</span>\n </slot>\n </Scroll>\n </MainScroll>\n </main>\n\n <div v-if=\"devMode || $slots['floating']\" class=\"x-layout__floating x-list x-list--horizontal\">\n <!-- @slot Slot that can be used to insert content into the Floating. -->\n <slot name=\"floating\">\n <span v-if=\"devMode\" class=\"slot-helper\">FLOATING</span>\n </slot>\n </div>\n\n <footer v-if=\"devMode || $slots['footer']\" class=\"x-layout__footer x-list x-list--horizontal\">\n <!-- @slot Slot that can be used to insert content into the Footer. -->\n <slot name=\"footer\">\n <span v-if=\"devMode\" class=\"slot-helper\">FOOTER</span>\n </slot>\n </footer>\n\n <BaseIdModal\n v-if=\"devMode || $slots['aside']\"\n :animation=\"asideAnimation\"\n modalId=\"aside-modal\"\n class=\"x-layout__aside\"\n >\n <!-- @slot Slot that can be used to insert content into the Aside. -->\n <slot name=\"aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">ASIDE</span>\n </slot>\n </BaseIdModal>\n\n <slot name=\"extra-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">EXTRA ASIDE</span>\n </slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent } from 'vue';\n import Scroll from '../../x-modules/scroll/components/scroll.vue';\n import MainScroll from '../../x-modules/scroll/components/main-scroll.vue';\n import { animateTranslate } from '../animations/animate-translate/animate-translate.factory';\n import BaseIdModal from '../modals/base-id-modal.vue';\n import BaseScroll from '../scroll/base-scroll.vue';\n import { AnimationProp } from '../../types';\n\n /**\n * Component for use as Layout to be filled with the rest of the Components.\n *\n * @deprecated - The layout has been deprecated in favor of using new XDS layout.\n *\n * @public\n */\n export default defineComponent({\n name: 'SingleColumnLayout',\n components: { BaseIdModal, BaseScroll, MainScroll, Scroll },\n props: {\n /** The animation used for the Main Aside. */\n asideAnimation: {\n type: AnimationProp,\n default: () => animateTranslate('right')\n },\n /** Enables the devMode, which shows the available slots to use with its names. */\n devMode: Boolean\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n @import url('../../design-system-deprecated/utilities/dev-mode.css');\n\n .x-layout {\n display: grid;\n align-content: stretch;\n justify-content: stretch;\n height: 100%;\n\n grid-template-rows:\n [page-start header-start]\n auto\n [header-end sub-header-start]\n auto\n [sub-header-end toolbar-start]\n auto\n [toolbar-end main-start]\n 1fr\n [floating-start]\n auto\n [main-end floating-end footer-start]\n auto\n [footer-end page-end];\n\n grid-template-columns: 1fr;\n }\n\n .x-layout > * {\n grid-column: 1/-1;\n min-width: 0;\n min-height: 0;\n display: flex;\n }\n\n .x-layout__header {\n grid-row: header;\n z-index: 1;\n }\n\n .x-layout__sub-header {\n grid-row: sub-header;\n z-index: 1;\n }\n\n .x-layout__toolbar {\n grid-row: toolbar;\n z-index: 1;\n }\n\n .x-layout__predictive {\n grid-row-start: header-end;\n grid-row-end: page-end;\n flex-flow: column nowrap;\n z-index: 2;\n }\n\n .x-layout__main {\n grid-row: main;\n flex-flow: column nowrap;\n }\n\n .x-layout__floating {\n grid-row: floating;\n z-index: 1;\n }\n\n .x-layout__footer {\n grid-row: footer;\n }\n\n .x-layout__aside {\n grid-row: page;\n z-index: 3;\n }\n\n .x-layout :deep(.x-layout__aside .x-modal__content) {\n width: 100%;\n height: 100%;\n margin-inline-start: var(--x-size-margin-left-layout-single-column, 0);\n }\n\n .x-layout :deep(.x-layout__aside > *:not(.slot-helper)) {\n pointer-events: all;\n }\n</style>\n"],"names":["_resolveComponent","devMode","$slots","_openBlock","_createElementBlock","_createCommentVNode","_renderSlot","_createVNode","_withCtx","asideAnimation"],"mappings":";;;;;MAE+C,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAGxB,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAM7B,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAIiB,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAIU,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAGtB,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAM7B,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAKmB,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAKM,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAKhB,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAMO,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAGvB,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAIY,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAGxB,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAYN,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAKR,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;;;;;iCA3E/BA,gBA6EM,CAAA,aAAA,CAAA,CAAA;;;;AA5EUC,MAAAA,KAAAA,EAAAA,cAAAA,CAAWC,CAAM,kCAAA,EAAA,EAAA,UAAA,EAAA,IAAA,CAAA,OAAA,EAAA,CAAA,CAAA;AAAA,KAAA;;AAC7B,MAAA,IAAA,CAAA,OAAA,IAAA,IAAA,CAAA,MAAA,CAAA,QAAA,CAAA,IAAAC,SAAA,EAGO,EAAAC,kBAAA,CAAA,QAAA,EAAA,UAAA,EAAA;AAAA,QADcC,kBAAA,CAAA,8DAAA,CAAA;AAAA,QAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,QAAsD,EAAA,EAAA,EAAA,MAAA;AAAA,UAL9D,IAAA,CAAA,OAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,QAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,SAAA,EAAA,IAAA,CAAA;AAAA,OASI,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,MAAA,IAAA,CAIE,mDAGO,EAAAD,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,QADcC,kBAAA,CAAA,sEAAA,CAAA;AAAA,QAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,kBAA0D,MAA1D;AAAA,UAfR,IAAA,CAAA,OAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,YAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,SAAA,EAAA,IAAA,CAAA;AAAA,OAmBI,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,MACE,IAAA,CAAA,OAAA,IAAA,IAAA,CAAA,MAAA,CAAA,SAAA,CAAA,IAAAF,SAAA,EAGO,EAAAC,kBAAA,CAAA,KAAA,EAFP,UAEO,EAAA;AAAA,QADcC,kBAAA,CAAA,mEAAA,CAAA;AAAA,QAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,SAAuD,EAAA,EAAA,EAAA,MAAA;AAAA,UAtB/D,IAAA,CAAA,OAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,SAAA,EAAA,IAAA,CAAA;AAAA,OA0BI,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,MAIE,IAAA,CAAA,OAAA,IAAA,IAAA,CAKa,mCAJsE,EAAAD,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,QAAAG,WAAA,CAAjF,qBAAiF,EAAA,EAAA,KAAA,EAAA,0EAAA,EAAA,EAAA;AAAA,UAAA,OAAA,EACjFC,OAEO,CAAA,MAAA;AAAA,YADcH,kBAAA,CAAA,4EAAA,CAAA;AAAA,YAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,kBAA0D,MAA1D;AAAA,cAjCV,IAAA,CAAA,OAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,YAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,aAAA,EAAA,IAAA,CAAA;AAAA,WAAA,CAAA;;;AAAA,SAAA,CAAA;AAAA,OAsCI,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,MACE,IAAA,CAAA,OAAA,IAAA,IAAA,CAOa,6BADF,EAAAD,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA;AAAA,QAAAG,WAAA,CALT,qBAKS,EAAA,IAAA,EAAA;AAAA,UAAA,OAAA,EALEC,OAAa,CAAA,MAAA;AAAA,YAAOD,WAAA,CAAA,iBAAA,EAAA;AAAA,cAAA,EAAA,EAAA,aAAA;AAxCvC,cAAA,KAAA,EAAA,+CAAA;AAAA,aAAA,EAAA;uBA0CUC,OAEO,CAAA,MAAA;AAAA,gBADcH,kBAAA,CAAA,gEAAA,CAAA;AAAA,gBAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,MAAoD,EAAA,EAAA,EAAA,MAAA;AAAA,kBA3ChE,IAAA,CAAA,OAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,MAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,iBAAA,EAAA,IAAA,CAAA;AAAA,eAAA,CAAA;;;AAAA,aAAA,CAAA;AAAA,WAAA,CAAA;;;AAAA,SAAA,CAAA;AAAA,OAiDI,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,MAAA,IAAA,CACE,iDAGO,EAAAD,kBAAA,CAAA,KAAA,EAAA,WAAA,EAAA;AAAA,QADcC,kBAAA,CAAA,oEAAA,CAAA;AAAA,QAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,UAAwD,EAAA,EAAA,EAAA,MAAA;AAAA,UApDhE,IAAA,CAAA,OAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,UAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,SAAA,EAAA,IAAA,CAAA;AAAA,OAwDI,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,MAAA,IAAA,CACE,+CAGO,EAAAD,kBAAA,CAAA,QAAA,EAAA,WAAA,EAAA;AAAA,QADcC,kBAAA,CAAA,kEAAA,CAAA;AAAA,QAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,QAAsD,EAAA,EAAA,EAAA,MAAA;AAAA,UA3D9D,IAAA,CAAA,OAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,QAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,SAAA,EAAA,IAAA,CAAA;AAAA,+BA+DI,MAUc,EAAA,IAAA,CAAA;AAAA,MAzElB,IAAA,CAAA,OAAA,IAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,IAAAF,SAAA,IAiEkBM,WAAc,CAAA,sBAAA,EAAA;AAAA,QAC1B,GAAA,EAAA,CAAA;AAAA,QACA,SAAM,EAAA,IAAA,CAAA,cAAA;AAAA,QAAA,OAAA,EAAA,aAAA;AAnEZ,QAAA,KAAA,EAAA,iBAAA;AAAA,OAAA,EAAA;iBAsEMD,OAEO,CAAA,MAAA;AAAA,UADcH,kBAAA,CAAA,iEAAA,CAAA;AAAA,UAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,OAAqD,EAAA,EAAA,EAAA,MAAA;AAAA,YAvE7D,IAAA,CAAA,OAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,OAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,WAAA,EAAA,IAAA,CAAA;AAAA,SAAA,CAAA;AAAA,QAAA,CAAA,EAAA,CAAA;AAAA;AAAA,OA2EI,EAAA,CAAA,EAEO,kBADOJ,kBAAO,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,MAAAK,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,iBAAA,EAAA,MAAA;AAAA,QA5EN,IAAA,CAAA,OAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,aAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"single-column-layout.vue.js","sources":["../../../../src/components/layouts/single-column-layout.vue"],"sourcesContent":["<template>\n <div class=\"x-layout x-layout--single-column\" :class=\"{ 'dev-mode': devMode }\">\n <header v-if=\"devMode || $slots['header']\" class=\"x-layout__header x-list x-list--horizontal\">\n <!-- @slot Slot that is used to insert content into the Header. -->\n <slot name=\"header\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER</span>\n </slot>\n </header>\n\n <div\n v-if=\"devMode || $slots['sub-header']\"\n class=\"x-layout__sub-header x-list x-list--horizontal\"\n >\n <!-- @slot Slot that can be used to insert content into the Sub Header. -->\n <slot name=\"sub-header\">\n <span v-if=\"devMode\" class=\"slot-helper\">SUB HEADER</span>\n </slot>\n </div>\n\n <div v-if=\"devMode || $slots['toolbar']\" class=\"x-layout__toolbar x-list x-list--horizontal\">\n <!-- @slot Slot that can be used to insert content into the Toolbar. -->\n <slot name=\"toolbar\">\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR</span>\n </slot>\n </div>\n\n <div\n v-if=\"devMode || $slots['predictive']\"\n class=\"x-layout__predictive x-list x-list--vertical\"\n >\n <BaseScroll class=\"x-layout__predictive-scroll x-list x-list--vertical x-list__item--expand\">\n <!-- @slot Slot that can be used to insert content into the Predictive Layer. -->\n <slot name=\"predictive\">\n <span v-if=\"devMode\" class=\"slot-helper\">PREDICTIVE</span>\n </slot>\n </BaseScroll>\n </div>\n\n <main v-if=\"devMode || $slots['main']\" class=\"x-layout__main\">\n <MainScroll>\n <Scroll id=\"main-scroll\" class=\"x-layout__main-scroll x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert content into the Main. -->\n <slot name=\"main\">\n <span v-if=\"devMode\" class=\"slot-helper\">MAIN</span>\n </slot>\n </Scroll>\n </MainScroll>\n </main>\n\n <div v-if=\"devMode || $slots['floating']\" class=\"x-layout__floating x-list x-list--horizontal\">\n <!-- @slot Slot that can be used to insert content into the Floating. -->\n <slot name=\"floating\">\n <span v-if=\"devMode\" class=\"slot-helper\">FLOATING</span>\n </slot>\n </div>\n\n <footer v-if=\"devMode || $slots['footer']\" class=\"x-layout__footer x-list x-list--horizontal\">\n <!-- @slot Slot that can be used to insert content into the Footer. -->\n <slot name=\"footer\">\n <span v-if=\"devMode\" class=\"slot-helper\">FOOTER</span>\n </slot>\n </footer>\n\n <BaseIdModal\n v-if=\"devMode || $slots['aside']\"\n :animation=\"asideAnimation\"\n modalId=\"aside-modal\"\n class=\"x-layout__aside\"\n >\n <!-- @slot Slot that can be used to insert content into the Aside. -->\n <slot name=\"aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">ASIDE</span>\n </slot>\n </BaseIdModal>\n\n <slot name=\"extra-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">EXTRA ASIDE</span>\n </slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent } from 'vue';\n import Scroll from '../../x-modules/scroll/components/scroll.vue';\n import MainScroll from '../../x-modules/scroll/components/main-scroll.vue';\n import { animateTranslate } from '../animations/animate-translate/animate-translate.factory';\n import BaseIdModal from '../modals/base-id-modal.vue';\n import BaseScroll from '../scroll/base-scroll.vue';\n import { AnimationProp } from '../../types';\n\n /**\n * Component for use as Layout to be filled with the rest of the Components.\n *\n * @deprecated - The layout has been deprecated in favor of using new XDS layout.\n *\n * @public\n */\n export default defineComponent({\n name: 'SingleColumnLayout',\n components: { BaseIdModal, BaseScroll, MainScroll, Scroll },\n props: {\n /** The animation used for the Main Aside. */\n asideAnimation: {\n type: AnimationProp,\n default: () => animateTranslate('right')\n },\n /** Enables the devMode, which shows the available slots to use with its names. */\n devMode: Boolean\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n @import url('../../design-system-deprecated/utilities/dev-mode.css');\n\n .x-layout {\n display: grid;\n align-content: stretch;\n justify-content: stretch;\n height: 100%;\n\n grid-template-rows:\n [page-start header-start]\n auto\n [header-end sub-header-start]\n auto\n [sub-header-end toolbar-start]\n auto\n [toolbar-end main-start]\n 1fr\n [floating-start]\n auto\n [main-end floating-end footer-start]\n auto\n [footer-end page-end];\n\n grid-template-columns: 1fr;\n }\n\n .x-layout > * {\n grid-column: 1/-1;\n min-width: 0;\n min-height: 0;\n display: flex;\n }\n\n .x-layout__header {\n grid-row: header;\n z-index: 1;\n }\n\n .x-layout__sub-header {\n grid-row: sub-header;\n z-index: 1;\n }\n\n .x-layout__toolbar {\n grid-row: toolbar;\n z-index: 1;\n }\n\n .x-layout__predictive {\n grid-row-start: header-end;\n grid-row-end: page-end;\n flex-flow: column nowrap;\n z-index: 2;\n }\n\n .x-layout__main {\n grid-row: main;\n flex-flow: column nowrap;\n }\n\n .x-layout__floating {\n grid-row: floating;\n z-index: 1;\n }\n\n .x-layout__footer {\n grid-row: footer;\n }\n\n .x-layout__aside {\n grid-row: page;\n z-index: 3;\n }\n\n .x-layout :deep(.x-layout__aside .x-modal__content) {\n width: 100%;\n height: 100%;\n margin-inline-start: var(--x-size-margin-left-layout-single-column, 0);\n }\n\n .x-layout :deep(.x-layout__aside > *:not(.slot-helper)) {\n pointer-events: all;\n }\n</style>\n"],"names":["_resolveComponent","devMode","$slots","_createElementBlock","_renderSlot","_openBlock","_createCommentVNode","_createVNode","_withCtx","asideAnimation"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './base-events-modal-close.vue2.js';
2
- import { resolveComponent, openBlock, createBlock, withCtx, createCommentVNode, renderSlot } from 'vue';
2
+ import { resolveComponent, openBlock, createBlock, withCtx, renderSlot } from 'vue';
3
3
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -11,7 +11,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11
11
  "aria-label": "Close"
12
12
  }, {
13
13
  default: withCtx(() => [
14
- createCommentVNode(" @slot (Required) Button content with a text, an icon or both "),
15
14
  renderSlot(_ctx.$slots, "default")
16
15
  ]),
17
16
  _: 3
@@ -1 +1 @@
1
- {"version":3,"file":"base-events-modal-close.vue.js","sources":["../../../../src/components/modals/base-events-modal-close.vue"],"sourcesContent":["<template>\n <BaseEventButton\n :events=\"events\"\n class=\"x-events-modal-close-button x-button\"\n data-test=\"close-modal\"\n aria-label=\"Close\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { PropsWithType } from '../../utils/types';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component contains an event button that emits {@link XEventsTypes.UserClickedCloseEventsModal}\n * when clicked. It has a default slot to customize its contents.\n *\n * @public\n */\n export default defineComponent({\n components: {\n BaseEventButton\n },\n props: {\n /**\n * Event name to use for closing the modal.\n *\n * @public\n */\n closingEvent: {\n type: String as PropType<PropsWithType<XEventsTypes, void>>,\n default: 'UserClickedCloseEventsModal'\n }\n },\n setup(props) {\n const events = computed<Partial<XEventsTypes>>(() => ({ [props.closingEvent]: undefined }));\n return {\n events\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedCloseEventsModal`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button.\n\n## Examples\n\nThe `BaseEventsModalClose` component can be used to close the `BaseEventsModal` component.\n\n### Basic example\n\nOn clicked, the component closes the `BaseEventsModal`. The only needed thing is the content that\nthe button should render, that can be any thing: a text, an image, an icon, a combination of the two\nof them...\n\n```vue\n<template>\n <BaseEventsCloseButton>\n <img src=\"./close-button-icon.svg\" />\n </BaseEventsCloseButton>\n</template>\n\n<script>\n import { BaseEventsModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalCloseTest',\n components: {\n BaseEventsModalClose\n }\n };\n</script>\n```\n\n### Defining another event to emit when clicking the button\n\nBy default it uses the same `closingEvent` that the `BaseEventsModal` is listening by default too.\nThis event can be changed using the `closingEvent` prop.\n\n```vue\n<template>\n <BaseEventsModalClose closingEvent=\"UserClosedEmpathize\">×</BaseEventsModalClose>\n</template>\n\n<script>\n import { BaseEventsModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalCloseTest',\n components: {\n BaseEventsModalClose\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_withCtx","_createCommentVNode","_renderSlot"],"mappings":";;;;;AASoB,EAAA,MAAA,0BAAA,GAAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA;AANX,EAAA,OAAAC,SAAA,EAAuC,EAAAC,WAAA,CAAA,0BAAA,EAAA;AAAA,IAC5C,MAAU,EAAA,IAAA,CAAA,MAAA;AAAA,IACV,KAAA,EAAA,sCAAA;AAAA,IAAA,WAAA,EAAA,aAAA;AALJ,IAAA,YAAA,EAAA,OAAA;AAAA,GAAA,EAAA;aAQIC,OAAQ,CAAA,MAAA;AAAA,MAAAC,kBAAA,CAAA,gEAAA,CAAA;AARZ,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
1
+ {"version":3,"file":"base-events-modal-close.vue.js","sources":["../../../../src/components/modals/base-events-modal-close.vue"],"sourcesContent":["<template>\n <BaseEventButton\n :events=\"events\"\n class=\"x-events-modal-close-button x-button\"\n data-test=\"close-modal\"\n aria-label=\"Close\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { PropsWithType } from '../../utils/types';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component contains an event button that emits {@link XEventsTypes.UserClickedCloseEventsModal}\n * when clicked. It has a default slot to customize its contents.\n *\n * @public\n */\n export default defineComponent({\n components: {\n BaseEventButton\n },\n props: {\n /**\n * Event name to use for closing the modal.\n *\n * @public\n */\n closingEvent: {\n type: String as PropType<PropsWithType<XEventsTypes, void>>,\n default: 'UserClickedCloseEventsModal'\n }\n },\n setup(props) {\n const events = computed<Partial<XEventsTypes>>(() => ({ [props.closingEvent]: undefined }));\n return {\n events\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedCloseEventsModal`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button.\n\n## Examples\n\nThe `BaseEventsModalClose` component can be used to close the `BaseEventsModal` component.\n\n### Basic example\n\nOn clicked, the component closes the `BaseEventsModal`. The only needed thing is the content that\nthe button should render, that can be any thing: a text, an image, an icon, a combination of the two\nof them...\n\n```vue\n<template>\n <BaseEventsCloseButton>\n <img src=\"./close-button-icon.svg\" />\n </BaseEventsCloseButton>\n</template>\n\n<script>\n import { BaseEventsModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalCloseTest',\n components: {\n BaseEventsModalClose\n }\n };\n</script>\n```\n\n### Defining another event to emit when clicking the button\n\nBy default it uses the same `closingEvent` that the `BaseEventsModal` is listening by default too.\nThis event can be changed using the `closingEvent` prop.\n\n```vue\n<template>\n <BaseEventsModalClose closingEvent=\"UserClosedEmpathize\">×</BaseEventsModalClose>\n</template>\n\n<script>\n import { BaseEventsModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalCloseTest',\n components: {\n BaseEventsModalClose\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_renderSlot"],"mappings":";;;;;AASoB,EAAA,MAAA,0BAAA,GAAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA;AANX,EAAA,OAAAC,SAAA,EAAuC,EAAAC,WAAA,CAAA,0BAAA,EAAA;AAAA,IAC5C,MAAU,EAAA,IAAA,CAAA,MAAA;AAAA,IACV,KAAA,EAAA,sCAAA;AAAA,IAAA,WAAA,EAAA,aAAA;AALJ,IAAA,YAAA,EAAA,OAAA;AAAA,GAAA,EAAA;;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './base-events-modal-open.vue2.js';
2
- import { resolveComponent, openBlock, createBlock, withCtx, createCommentVNode, renderSlot } from 'vue';
2
+ import { resolveComponent, openBlock, createBlock, withCtx, renderSlot } from 'vue';
3
3
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -11,7 +11,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11
11
  "aria-label": "Open"
12
12
  }, {
13
13
  default: withCtx(() => [
14
- createCommentVNode(" @slot (Required) Button content with a text, an icon or both "),
15
14
  renderSlot(_ctx.$slots, "default")
16
15
  ]),
17
16
  _: 3
@@ -1 +1 @@
1
- {"version":3,"file":"base-events-modal-open.vue.js","sources":["../../../../src/components/modals/base-events-modal-open.vue"],"sourcesContent":["<template>\n <BaseEventButton\n :events=\"events\"\n class=\"x-events-modal-open-button x-button\"\n data-test=\"open-modal\"\n aria-label=\"Open\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { PropsWithType } from '../../utils/types';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component contains an event button that emits {@link XEventsTypes.UserClickedOpenEventsModal}\n * when clicked. It has a default slot to customize its contents.\n *\n * @public\n */\n export default defineComponent({\n components: {\n BaseEventButton\n },\n props: {\n /**\n * Event name to use for opening the modal.\n *\n * @public\n */\n openingEvent: {\n type: String as PropType<PropsWithType<XEventsTypes, void>>,\n default: 'UserClickedOpenEventsModal'\n }\n },\n setup(props) {\n const events = computed<Partial<XEventsTypes>>(() => ({ [props.openingEvent]: undefined }));\n\n return {\n events\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedOpenEventsModal`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button.\n\n## Examples\n\nThis component serves to open the `BaseEventsModal`.\n\n### Basic example\n\nOn clicked, the component closes the `BaseEventsModal`. The only needed thing is the content that\nthe button should render, that can be any thing: a text, an image, an icon, a combination of the two\nof them...\n\n```vue\n<template>\n <BaseEventsModalOpen>\n <img src=\"./open-button-icon.svg\" />\n <span>Open</span>\n </BaseEventsModalOpen>\n</template>\n\n<script>\n import { BaseEventsModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalOpenTest',\n components: {\n BaseEventsModalOpen\n }\n };\n</script>\n```\n\n### Defining another event to emit when clicking the button\n\nBy default it uses the same `openingEvent` that the `BaseEventsModal` is listening by default too.\nThis event can be changed using the `openingEvent` prop, but remember to change it in the target\n`BaseEventsModal` too.\n\n```vue\n<template>\n <BaseEventsModalOpen openingEvent=\"UserOpenedEmpathize\">\n <span>Open</span>\n </BaseEventsModalOpen>\n</template>\n\n<script>\n import { BaseEventsModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalOpenTest',\n components: {\n BaseEventsModalOpen\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_withCtx","_createCommentVNode","_renderSlot"],"mappings":";;;;;AASoB,EAAA,MAAA,0BAAA,GAAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA;AANX,EAAA,OAAAC,SAAA,EAAsC,EAAAC,WAAA,CAAA,0BAAA,EAAA;AAAA,IAC3C,MAAU,EAAA,IAAA,CAAA,MAAA;AAAA,IACV,KAAA,EAAA,qCAAA;AAAA,IAAA,WAAA,EAAA,YAAA;AALJ,IAAA,YAAA,EAAA,MAAA;AAAA,GAAA,EAAA;aAQIC,OAAQ,CAAA,MAAA;AAAA,MAAAC,kBAAA,CAAA,gEAAA,CAAA;AARZ,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
1
+ {"version":3,"file":"base-events-modal-open.vue.js","sources":["../../../../src/components/modals/base-events-modal-open.vue"],"sourcesContent":["<template>\n <BaseEventButton\n :events=\"events\"\n class=\"x-events-modal-open-button x-button\"\n data-test=\"open-modal\"\n aria-label=\"Open\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </BaseEventButton>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { PropsWithType } from '../../utils/types';\n import { XEventsTypes } from '../../wiring/events.types';\n import BaseEventButton from '../base-event-button.vue';\n\n /**\n * Component contains an event button that emits {@link XEventsTypes.UserClickedOpenEventsModal}\n * when clicked. It has a default slot to customize its contents.\n *\n * @public\n */\n export default defineComponent({\n components: {\n BaseEventButton\n },\n props: {\n /**\n * Event name to use for opening the modal.\n *\n * @public\n */\n openingEvent: {\n type: String as PropType<PropsWithType<XEventsTypes, void>>,\n default: 'UserClickedOpenEventsModal'\n }\n },\n setup(props) {\n const events = computed<Partial<XEventsTypes>>(() => ({ [props.openingEvent]: undefined }));\n\n return {\n events\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedOpenEventsModal`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button.\n\n## Examples\n\nThis component serves to open the `BaseEventsModal`.\n\n### Basic example\n\nOn clicked, the component closes the `BaseEventsModal`. The only needed thing is the content that\nthe button should render, that can be any thing: a text, an image, an icon, a combination of the two\nof them...\n\n```vue\n<template>\n <BaseEventsModalOpen>\n <img src=\"./open-button-icon.svg\" />\n <span>Open</span>\n </BaseEventsModalOpen>\n</template>\n\n<script>\n import { BaseEventsModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalOpenTest',\n components: {\n BaseEventsModalOpen\n }\n };\n</script>\n```\n\n### Defining another event to emit when clicking the button\n\nBy default it uses the same `openingEvent` that the `BaseEventsModal` is listening by default too.\nThis event can be changed using the `openingEvent` prop, but remember to change it in the target\n`BaseEventsModal` too.\n\n```vue\n<template>\n <BaseEventsModalOpen openingEvent=\"UserOpenedEmpathize\">\n <span>Open</span>\n </BaseEventsModalOpen>\n</template>\n\n<script>\n import { BaseEventsModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseEventsModalOpenTest',\n components: {\n BaseEventsModalOpen\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_renderSlot"],"mappings":";;;;;AASoB,EAAA,MAAA,0BAAA,GAAAA,gBAAA,CAAA,iBAAA,CAAA,CAAA;AANX,EAAA,OAAAC,SAAA,EAAsC,EAAAC,WAAA,CAAA,0BAAA,EAAA;AAAA,IAC3C,MAAU,EAAA,IAAA,CAAA,MAAA;AAAA,IACV,KAAA,EAAA,qCAAA;AAAA,IAAA,WAAA,EAAA,YAAA;AALJ,IAAA,YAAA,EAAA,MAAA;AAAA,GAAA,EAAA;;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './base-id-modal-close.vue2.js';
2
- import { openBlock, createElementBlock, createCommentVNode, renderSlot } from 'vue';
2
+ import { openBlock, createElementBlock, renderSlot } from 'vue';
3
3
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -8,7 +8,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
8
8
  class: "x-events-modal-id-close-button x-button",
9
9
  "data-test": "close-modal-id"
10
10
  }, [
11
- createCommentVNode(" @slot (Required) Button content with a text, an icon or both "),
12
11
  renderSlot(_ctx.$slots, "default")
13
12
  ]);
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-id-modal-close.vue.js","sources":["../../../../src/components/modals/base-id-modal-close.vue"],"sourcesContent":["<template>\n <button\n @click=\"closeModal\"\n class=\"x-events-modal-id-close-button x-button\"\n data-test=\"close-modal-id\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </button>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent } from 'vue';\n import { use$x } from '../../composables';\n\n /**\n * Component that allows to close a modal by emitting\n * {@link XEventsTypes.UserClickedCloseModal}.\n * It allows full customization with the 'closing-element' slot and exposes the 'closeModal'\n * function.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseIdModalClose',\n props: {\n /** The modalId of the modal that will be closed. */\n modalId: {\n type: String,\n required: true\n }\n },\n setup(props, { slots }) {\n const $x = use$x();\n\n /**\n * Emits the {@link XEventsTypes.UserClickedCloseModal} event with the modalId as payload.\n *\n * @param event - The event triggering the function.\n */\n function closeModal({ target }: Event) {\n $x.emit('UserClickedCloseModal', props.modalId, { target: target as HTMLElement });\n }\n\n /* Hack to render through a render-function, the `closing-element` slot or, in its absence,\n the component itself. It is the alternative for the NoElement antipattern. */\n const innerProps = { closeModal };\n return (\n slots['closing-element'] ? () => slots['closing-element']?.(innerProps)[0] : innerProps\n ) as typeof innerProps;\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedCloseModal`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the id of the modal\n that is going to be closed.\n\n## Examples\n\nComponent containing an event button that emits `UserClickedCloseModal` when clicked with the\nmodalId as payload. It has a default slot to customize its contents and can also be fully\ncustomized, replacing the default button with any other element.\n\n### Basic example\n\nThe component renders whatever is passed to it in the default slot inside the button and closes the\nmodal with modalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalClose modalId=\"my-modal\">\n <img src=\"./close-button-icon.svg\" />\n </BaseIdModalClose>\n</template>\n\n<script>\n import { BaseIdModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalCloseTest',\n components: {\n BaseIdModalClose\n }\n };\n</script>\n```\n\n### Replacing the default button\n\nThe component renders whatever element is passed, replacing the default button and exposing the\nfunction to close the modal with modalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalClose modalId=\"my-modal\">\n <template #closing-element=\"{ closeModal }\">\n <ul>\n <li @click=\"closeModal\">Close here</li>\n <li>Not here</li>\n </ul>\n </template>\n </BaseIdModalClose>\n</template>\n\n<script>\n import { BaseIdModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalCloseTest',\n components: {\n BaseIdModalClose\n }\n };\n</script>\n```\n</docs>\n"],"names":["_openBlock","_createElementBlock","_createCommentVNode"],"mappings":";;;;AAEK,SAAA,WAAA,CAAK,IAAE,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AACH,EAAA,OAAAA,SAAA,EAA0C,EAAAC,kBAAA,CAAA,QAAA,EAAA;AAAA,IAC/C,gBAAU,CAAgB,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,UAAA,IAAA,IAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,IAAA,KAAA,EAAA,yCAAA;AAE1B,IAAA,WAAA,EAAA,gBAAA;AAAA,GACA,EAAA;AAAA,IAAAC,kBAAA,CAAA,gEAAA,CAAA;;;;;;;;"}
1
+ {"version":3,"file":"base-id-modal-close.vue.js","sources":["../../../../src/components/modals/base-id-modal-close.vue"],"sourcesContent":["<template>\n <button\n @click=\"closeModal\"\n class=\"x-events-modal-id-close-button x-button\"\n data-test=\"close-modal-id\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </button>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent } from 'vue';\n import { use$x } from '../../composables';\n\n /**\n * Component that allows to close a modal by emitting\n * {@link XEventsTypes.UserClickedCloseModal}.\n * It allows full customization with the 'closing-element' slot and exposes the 'closeModal'\n * function.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseIdModalClose',\n props: {\n /** The modalId of the modal that will be closed. */\n modalId: {\n type: String,\n required: true\n }\n },\n setup(props, { slots }) {\n const $x = use$x();\n\n /**\n * Emits the {@link XEventsTypes.UserClickedCloseModal} event with the modalId as payload.\n *\n * @param event - The event triggering the function.\n */\n function closeModal({ target }: Event) {\n $x.emit('UserClickedCloseModal', props.modalId, { target: target as HTMLElement });\n }\n\n /* Hack to render through a render-function, the `closing-element` slot or, in its absence,\n the component itself. It is the alternative for the NoElement antipattern. */\n const innerProps = { closeModal };\n return (\n slots['closing-element'] ? () => slots['closing-element']?.(innerProps)[0] : innerProps\n ) as typeof innerProps;\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedCloseModal`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the id of the modal\n that is going to be closed.\n\n## Examples\n\nComponent containing an event button that emits `UserClickedCloseModal` when clicked with the\nmodalId as payload. It has a default slot to customize its contents and can also be fully\ncustomized, replacing the default button with any other element.\n\n### Basic example\n\nThe component renders whatever is passed to it in the default slot inside the button and closes the\nmodal with modalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalClose modalId=\"my-modal\">\n <img src=\"./close-button-icon.svg\" />\n </BaseIdModalClose>\n</template>\n\n<script>\n import { BaseIdModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalCloseTest',\n components: {\n BaseIdModalClose\n }\n };\n</script>\n```\n\n### Replacing the default button\n\nThe component renders whatever element is passed, replacing the default button and exposing the\nfunction to close the modal with modalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalClose modalId=\"my-modal\">\n <template #closing-element=\"{ closeModal }\">\n <ul>\n <li @click=\"closeModal\">Close here</li>\n <li>Not here</li>\n </ul>\n </template>\n </BaseIdModalClose>\n</template>\n\n<script>\n import { BaseIdModalClose } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalCloseTest',\n components: {\n BaseIdModalClose\n }\n };\n</script>\n```\n</docs>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;;AAEK,SAAA,WAAA,CAAK,IAAE,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AACH,EAAA,OAAAA,SAAA,EAA0C,EAAAC,kBAAA,CAAA,QAAA,EAAA;AAAA,IAC/C,gBAAU,CAAgB,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,UAAA,IAAA,IAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,IAAA,KAAA,EAAA,yCAAA;IAG1B,WAAQ,EAAA,gBAAA;AAAA,GAAA,EAAA;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './base-id-modal-open.vue2.js';
2
- import { openBlock, createElementBlock, createCommentVNode, renderSlot } from 'vue';
2
+ import { openBlock, createElementBlock, renderSlot } from 'vue';
3
3
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -8,7 +8,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
8
8
  class: "x-events-modal-id-open-button x-button",
9
9
  "data-test": "open-modal-id"
10
10
  }, [
11
- createCommentVNode(" @slot (Required) Button content with a text, an icon or both "),
12
11
  renderSlot(_ctx.$slots, "default")
13
12
  ]);
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-id-modal-open.vue.js","sources":["../../../../src/components/modals/base-id-modal-open.vue"],"sourcesContent":["<template>\n <button\n @click=\"openModal\"\n class=\"x-events-modal-id-open-button x-button\"\n data-test=\"open-modal-id\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </button>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent } from 'vue';\n import { use$x } from '../../composables';\n\n /**\n * Component that allows to open a modal by emitting {@link XEventsTypes.UserClickedOpenModal}\n * with the modalId as payload. It allows full customization with the 'opening-element' slot and\n * exposes the 'openModal' function.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseIdModalOpen',\n props: {\n /** The modalId of the modal that will be opened. */\n modalId: {\n type: String,\n required: true\n }\n },\n setup(props, { slots }) {\n const $x = use$x();\n\n /**\n * Emits the {@link XEventsTypes.UserClickedOpenModal} event with the modalId as payload.\n *\n * @param event - The event triggering the function.\n */\n function openModal({ target }: Event) {\n $x.emit('UserClickedOpenModal', props.modalId, { target: target as HTMLElement });\n }\n\n /* Hack to render through a render-function, the `opening-element` slot or, in its absence,\n the component itself. It is the alternative for the NoElement antipattern. */\n const innerProps = { openModal };\n return (\n slots['opening-element'] ? () => slots['opening-element']?.(innerProps)[0] : innerProps\n ) as typeof innerProps;\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedOpenModal`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the id of the modal\n that is going to be opened.\n\n## Examples\n\nComponent containing an event button that emits `UserClickedOpenModal` when it is clicked with the\nmodalId as payload. It has a default slot to customize its contents and can also be fully\ncustomized, replacing the default button with any other element.\n\n### Basic example\n\nThe component rendering content passed to the default slot inside the button and opening the modal\nwith modalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalOpen modalId=\"my-modal\">\n <img src=\"./open-button-icon.svg\" />\n <span>Open</span>\n </BaseIdModalOpen>\n</template>\n\n<script>\n import { BaseIdModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalOpenTest',\n components: {\n BaseIdModalOpen\n }\n };\n</script>\n```\n\n### Replacing the default button\n\nThe component renders whatever element is passed, replacing the default button and exposing the\nfunction to open the modal with modalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalOpen modalId=\"my-modal\">\n <template #opening-element=\"{ openModal }\">\n <ul>\n <li @click=\"openModal\">Open here</li>\n <li>Not here</li>\n </ul>\n </template>\n </BaseIdModalOpen>\n</template>\n\n<script>\n import { BaseIdModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalOpenTest',\n components: {\n BaseIdModalOpen\n }\n };\n</script>\n```\n</docs>\n"],"names":["_openBlock","_createElementBlock","_createCommentVNode"],"mappings":";;;;AAEK,SAAA,WAAA,CAAK,IAAE,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AACH,EAAA,OAAAA,SAAA,EAAyC,EAAAC,kBAAA,CAAA,QAAA,EAAA;AAAA,IAC9C,gBAAU,CAAe,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,SAAA,IAAA,IAAA,CAAA,SAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,IAAA,KAAA,EAAA,wCAAA;AAEzB,IAAA,WAAA,EAAA,eAAA;AAAA,GACA,EAAA;AAAA,IAAAC,kBAAA,CAAA,gEAAA,CAAA;;;;;;;;"}
1
+ {"version":3,"file":"base-id-modal-open.vue.js","sources":["../../../../src/components/modals/base-id-modal-open.vue"],"sourcesContent":["<template>\n <button\n @click=\"openModal\"\n class=\"x-events-modal-id-open-button x-button\"\n data-test=\"open-modal-id\"\n >\n <!-- @slot (Required) Button content with a text, an icon or both -->\n <slot />\n </button>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent } from 'vue';\n import { use$x } from '../../composables';\n\n /**\n * Component that allows to open a modal by emitting {@link XEventsTypes.UserClickedOpenModal}\n * with the modalId as payload. It allows full customization with the 'opening-element' slot and\n * exposes the 'openModal' function.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseIdModalOpen',\n props: {\n /** The modalId of the modal that will be opened. */\n modalId: {\n type: String,\n required: true\n }\n },\n setup(props, { slots }) {\n const $x = use$x();\n\n /**\n * Emits the {@link XEventsTypes.UserClickedOpenModal} event with the modalId as payload.\n *\n * @param event - The event triggering the function.\n */\n function openModal({ target }: Event) {\n $x.emit('UserClickedOpenModal', props.modalId, { target: target as HTMLElement });\n }\n\n /* Hack to render through a render-function, the `opening-element` slot or, in its absence,\n the component itself. It is the alternative for the NoElement antipattern. */\n const innerProps = { openModal };\n return (\n slots['opening-element'] ? () => slots['opening-element']?.(innerProps)[0] : innerProps\n ) as typeof innerProps;\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedOpenModal`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks the button. The event payload is the id of the modal\n that is going to be opened.\n\n## Examples\n\nComponent containing an event button that emits `UserClickedOpenModal` when it is clicked with the\nmodalId as payload. It has a default slot to customize its contents and can also be fully\ncustomized, replacing the default button with any other element.\n\n### Basic example\n\nThe component rendering content passed to the default slot inside the button and opening the modal\nwith modalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalOpen modalId=\"my-modal\">\n <img src=\"./open-button-icon.svg\" />\n <span>Open</span>\n </BaseIdModalOpen>\n</template>\n\n<script>\n import { BaseIdModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalOpenTest',\n components: {\n BaseIdModalOpen\n }\n };\n</script>\n```\n\n### Replacing the default button\n\nThe component renders whatever element is passed, replacing the default button and exposing the\nfunction to open the modal with modalId `my-modal`.\n\n```vue\n<template>\n <BaseIdModalOpen modalId=\"my-modal\">\n <template #opening-element=\"{ openModal }\">\n <ul>\n <li @click=\"openModal\">Open here</li>\n <li>Not here</li>\n </ul>\n </template>\n </BaseIdModalOpen>\n</template>\n\n<script>\n import { BaseIdModalOpen } from '@empathyco/x-components';\n\n export default {\n name: 'BaseIdModalOpenTest',\n components: {\n BaseIdModalOpen\n }\n };\n</script>\n```\n</docs>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;;AAEK,SAAA,WAAA,CAAK,IAAE,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AACH,EAAA,OAAAA,SAAA,EAAyC,EAAAC,kBAAA,CAAA,QAAA,EAAA;AAAA,IAC9C,gBAAU,CAAe,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,SAAA,IAAA,IAAA,CAAA,SAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,IAAA,KAAA,EAAA,wCAAA;IAGzB,WAAQ,EAAA,eAAA;AAAA,GAAA,EAAA;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './base-modal.vue2.js';
2
- import { withDirectives, openBlock, createElementBlock, createBlock, resolveDynamicComponent, withCtx, normalizeClass, createCommentVNode, renderSlot, vShow } from 'vue';
2
+ import { withDirectives, openBlock, createElementBlock, createBlock, resolveDynamicComponent, withCtx, normalizeClass, renderSlot, createCommentVNode, vShow } from 'vue';
3
3
  import './base-modal.vue3.js';
4
4
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
5
5
 
@@ -31,7 +31,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
31
31
  role: "dialog"
32
32
  },
33
33
  [
34
- createCommentVNode(" @slot (Required) Modal container content "),
35
34
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
36
35
  ],
37
36
  2
@@ -1 +1 @@
1
- {"version":3,"file":"base-modal.vue.js","sources":["../../../../src/components/modals/base-modal.vue"],"sourcesContent":["<template>\n <div v-show=\"isWaitingForLeave || open\" ref=\"modalRef\" class=\"x-modal\" data-test=\"modal\">\n <component\n :is=\"animation\"\n @before-leave=\"isWaitingForLeave = true\"\n @after-leave=\"isWaitingForLeave = false\"\n >\n <div\n v-if=\"open\"\n ref=\"modalContentRef\"\n class=\"x-modal__content\"\n data-test=\"modal-content\"\n role=\"dialog\"\n :class=\"contentClass\"\n >\n <!-- @slot (Required) Modal container content -->\n <slot />\n </div>\n </component>\n <component :is=\"overlayAnimation\">\n <div\n v-if=\"open\"\n @click=\"emitOverlayClicked\"\n @keydown=\"emitOverlayClicked\"\n class=\"x-modal__overlay\"\n :class=\"overlayClass\"\n data-test=\"modal-overlay\"\n />\n </component>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue';\n import { useDebounce } from '../../composables';\n import { AnimationProp } from '../../types';\n import { getTargetElement, FOCUSABLE_SELECTORS } from '../../utils';\n import { Fade, NoAnimation } from '../animations';\n\n /**\n * Base component with no XPlugin dependencies that serves as a utility for constructing more\n * complex modals.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseModal',\n props: {\n /** Determines if the modal is open or not. */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Determines if the focused element changes to one inside the modal when it opens. Either the\n * first element with a positive tabindex or just the first focusable element.\n */\n focusOnOpen: {\n type: Boolean,\n default: true\n },\n /**\n * The reference selector of a DOM element to use as reference to position the modal.\n * This selector can be an ID or a class, if it is a class, it will use the first\n * element that matches.\n */\n referenceSelector: String,\n /** Animation to use for opening/closing the modal.This animation only affects the content. */\n animation: {\n type: AnimationProp,\n default: () => NoAnimation\n },\n /**\n * Animation to use for the overlay (backdrop) part of the modal. By default, it uses\n * a fade transition.\n */\n overlayAnimation: {\n type: AnimationProp,\n default: () => Fade\n },\n /** Class inherited by content element. */\n contentClass: String,\n /** Class inherited by overlay element. */\n overlayClass: String\n },\n emits: ['click:overlay', 'focusin:body'],\n setup(props, { emit }) {\n /** Reference to the modal element in the DOM. */\n const modalRef = ref<HTMLDivElement>();\n /** Reference to the modal content element in the DOM. */\n const modalContentRef = ref<HTMLDivElement>();\n\n /** The previous value of the body overflow style. */\n const previousBodyOverflow = ref('');\n /** The previous value of the HTML element overflow style. */\n const previousHTMLOverflow = ref('');\n /** Boolean to delay the leave animation until it has completed. */\n const isWaitingForLeave = ref(false);\n /** The reference element to use to find the modal's position. */\n let referenceElement: HTMLElement;\n\n /** Disables the scroll of both the body and the window. */\n function disableScroll() {\n previousBodyOverflow.value = document.body.style.overflow;\n previousHTMLOverflow.value = document.documentElement.style.overflow;\n document.body.style.overflow = document.documentElement.style.overflow = 'hidden';\n }\n\n /** Restores the scroll of both the body and the window. */\n function enableScroll() {\n document.body.style.overflow = previousBodyOverflow.value;\n document.documentElement.style.overflow = previousHTMLOverflow.value;\n }\n\n /**\n * Emits the `click:overlay` event if the click has been triggered in the overlay layer.\n *\n * @param event - The click event.\n */\n function emitOverlayClicked(event: Event) {\n emit('click:overlay', event);\n }\n\n /**\n * Emits the `focusin:body` event if a focus event has been triggered outside the modal.\n *\n * @param event - The focusin event.\n */\n function emitFocusInBody(event: FocusEvent) {\n if (!modalContentRef.value?.contains(getTargetElement(event))) {\n emit('focusin:body', event);\n }\n }\n\n /**\n * Adds listeners to the body element ot detect if the modal should be closed.\n *\n * @remarks TODO find a better solution and remove the timeout\n * To avoid emit the focusin on opening X that provokes closing it immediately.\n * This is because this event was emitted after the open of main modal when the user clicks\n * on the customer website search box (focus event). This way we avoid add the listener before\n * the open and the avoid the event that provokes the close.\n */\n function addBodyListeners() {\n setTimeout(() => {\n document.body.addEventListener('focusin', emitFocusInBody);\n });\n }\n\n /** Removes the body listeners. */\n function removeBodyListeners() {\n document.body.removeEventListener('focusin', emitFocusInBody);\n }\n\n /**\n * Sets the focused element to the first element either the first element with a positive\n * tabindex or, if there isn't any, the first focusable element inside the modal.\n */\n function setFocus() {\n const candidates: HTMLElement[] = Array.from(\n modalContentRef.value?.querySelectorAll(FOCUSABLE_SELECTORS) ?? []\n );\n const element = candidates.find(element => element.tabIndex) ?? candidates[0];\n element?.focus();\n }\n\n /**\n * Syncs the body to the open state of the modal, adding or removing styles and listeners.\n *\n * @remarks nextTick() to wait for `modalContentRef` to be updated to look for focusable\n * candidates inside.\n *\n * @param isOpen - True when the modal is opened.\n */\n async function syncBody(isOpen: boolean) {\n if (isOpen) {\n disableScroll();\n addBodyListeners();\n if (props.focusOnOpen) {\n await nextTick();\n setFocus();\n }\n } else {\n enableScroll();\n removeBodyListeners();\n }\n }\n\n /**\n * Updates the position of the modal setting the top of the element depending\n * on the selector. The modal will be placed under this selector.\n */\n const debouncedUpdatePosition = useDebounce(\n () => {\n const { height, y } = referenceElement?.getBoundingClientRect() ?? { height: 0, y: 0 };\n modalRef.value!.style.top = `${height + y}px`;\n modalRef.value!.style.bottom = '0';\n modalRef.value!.style.height = 'auto';\n },\n 100,\n { leading: true }\n );\n\n let resizeObserver: ResizeObserver;\n\n onMounted(() => {\n watch(() => props.open, syncBody);\n if (props.open) {\n syncBody(true);\n }\n\n resizeObserver = new ResizeObserver(debouncedUpdatePosition);\n\n if (props.referenceSelector) {\n const element = document.querySelector(props.referenceSelector) as HTMLElement;\n if (element) {\n referenceElement = element;\n resizeObserver.observe(element);\n }\n }\n });\n\n onBeforeUnmount(() => {\n if (props.open) {\n removeBodyListeners();\n enableScroll();\n }\n resizeObserver.disconnect();\n });\n\n return {\n emitOverlayClicked,\n isWaitingForLeave,\n modalContentRef,\n modalRef\n };\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n .x-modal {\n position: fixed;\n top: 0;\n left: 0;\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n width: 100%;\n height: 100%;\n z-index: 1;\n }\n\n .x-modal__content {\n display: flex;\n flex-flow: column nowrap;\n z-index: 1;\n }\n\n .x-modal__overlay {\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: rgb(0, 0, 0);\n opacity: 0.3;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nThe `BaseModal` is a simple component that serves to create complex modals. Its open state has to be\npassed via prop. There is a prop, `referenceSelector`, used to place the modal under some element\ninstead of set the top of the element directly. It also accepts an animation to use for opening &\nclosing.\n\nIt emits a `click:overlay` event when any part out of the content is clicked, but only if the modal\nis open.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n### Customized usage\n\n#### Customizing the content with classes\n\nThe `contentClass` prop can be used to add classes to the modal content.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n contentClass=\"x-bg-neutral-75\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n#### Customizing the overlay with classes\n\nThe `overlayClass` prop can be used to add classes to the modal overlay.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n overlayClass=\"x-bg-neutral-75\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n## Vue Events\n\nA list of events that the component will emit:\n\n- `click:overlay`: the event is emitted after the user clicks any part out of the content but only\n if the modal is open. The event payload is the mouse event that triggers it.\n- `focusin:body`: the event is emitted after the user focus in any part out of the content but only\n if the modal is open. The event payload is the focus event that triggers it.\n</docs>\n"],"names":["animation","_withDirectives","_openBlock","_createElementBlock","isWaitingForLeave","_createBlock","_withCtx","_normalizeClass","_createCommentVNode","_renderSlot","_resolveDynamicComponent","overlayClass"],"mappings":";;;;;MACyD,UAAe,GAAA;AAAA,EAAC,GAAA,EAAA,UAAA;AAAA,EAAA,KAAA,EAAA,SAAA;;;AACrE,SAAA,WAAA,CAAA,IAAA,EAAA,MAAA,EAFJ,MAGWA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA;SACJC,cAAY,EAAAC,SAAA,EAAA,EAAAC,kBAAA;AAAA,IAAEC,KAAAA;AAAAA,IAAAA,UAAAA;AAAAA,IAAAA;AAAAA,OAAAA,SAAAA,EACH,EAAAC,WAAA;AAAA,QAAED,uBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA;AAAAA,QAAAA;AAAAA,UAAAA,aAAAA,EAAAA,MAAAA,CAAAA,CAAAA,CAAAA,KAAAA,MAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,MAAAA,KAAAA,IAAAA,CAAAA,iBAAAA,GAAAA,IAAAA,CAAAA;UALpB,YAiBY,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,iBAAA,GAAA,KAAA,CAAA;AAAA,SAAA;;AAVN,UAAA,OAAA,EAAAE,OAAA,CAAA,MAAA;AAAA,YAAA,IAAA,CAPN,IASY,IAAAJ,SAAA,EAAA,EAAAC,kBAAA;AAAA,cAAiB,KAAA;AAAA,cAAA;AAAA,gBACrB,GAAK,EAAA,CAAA;AAAA,gBACL,GAAA,EAAA,iBAAA;AAAA,gBACA,OAAKI,cAAQ,CAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,YAAA,CAAA,CAAA;AAAA,gBAAA,WAAA,EAAA,eAAA;AAGb,gBAAA,IAAA,EAAA,QAAA;AAAA,eAAA;AACA,cAAA;AAAA,gBAAAC,kBAAA,CAAA,4CAAA,CAAA;AAhBR,gBAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA,EAAA,EAAA,KAAA,CAAA,EAAA,IAAA,CAAA;AAAA,eAAA;;;AAAA,aAAA,IAAAD,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,WAAA,CAAA;;;;AAAA,QAAA,EAAA;AAAA;AAAA,OA2BQ;AAAA,OAAAN,SAAA,EANU,EAAAG,WAAA,CAAAK,uBAAA,CAAA,IAAA,CAAA,gBAAA,CAAA,EAAA,IAAA,EAAA;AAAA,QADZ,OAAA,EAAAJ,OAAA,CAAA,MAAA;AAAA,UAAA,IAAA,CApBN,IAsBc,IAAAJ,SAAA,EAAA,EAAAC,kBAAA;AAAA,YAAA,KAAA;AAAA,YAAA;AAAA,cACL,GAAA,EAAA,CAAA;AAAA,cACD,OAAA,EAxBR,MAwBc,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KACEQ,IAAY,CAAA,kBAAA,IAAA,IAAA,CAAA,kBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cACpB,SAAA,EAAS,OAAC,CAAe,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,kBAAA,IAAA,IAAA,CAAA,kBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cAAA,KAAA,EAAAJ,cAAA,CAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,YAAA,CAAA,CAAA;AA1BjC,cAAA,WAAA,EAAA,eAAA;AAAA,aAAA;;;;AAAA,WAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,SAAA,CAAA;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-modal.vue.js","sources":["../../../../src/components/modals/base-modal.vue"],"sourcesContent":["<template>\n <div v-show=\"isWaitingForLeave || open\" ref=\"modalRef\" class=\"x-modal\" data-test=\"modal\">\n <component\n :is=\"animation\"\n @before-leave=\"isWaitingForLeave = true\"\n @after-leave=\"isWaitingForLeave = false\"\n >\n <div\n v-if=\"open\"\n ref=\"modalContentRef\"\n class=\"x-modal__content\"\n data-test=\"modal-content\"\n role=\"dialog\"\n :class=\"contentClass\"\n >\n <!-- @slot (Required) Modal container content -->\n <slot />\n </div>\n </component>\n <component :is=\"overlayAnimation\">\n <div\n v-if=\"open\"\n @click=\"emitOverlayClicked\"\n @keydown=\"emitOverlayClicked\"\n class=\"x-modal__overlay\"\n :class=\"overlayClass\"\n data-test=\"modal-overlay\"\n />\n </component>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue';\n import { useDebounce } from '../../composables';\n import { AnimationProp } from '../../types';\n import { getTargetElement, FOCUSABLE_SELECTORS } from '../../utils';\n import { Fade, NoAnimation } from '../animations';\n\n /**\n * Base component with no XPlugin dependencies that serves as a utility for constructing more\n * complex modals.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseModal',\n props: {\n /** Determines if the modal is open or not. */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Determines if the focused element changes to one inside the modal when it opens. Either the\n * first element with a positive tabindex or just the first focusable element.\n */\n focusOnOpen: {\n type: Boolean,\n default: true\n },\n /**\n * The reference selector of a DOM element to use as reference to position the modal.\n * This selector can be an ID or a class, if it is a class, it will use the first\n * element that matches.\n */\n referenceSelector: String,\n /** Animation to use for opening/closing the modal.This animation only affects the content. */\n animation: {\n type: AnimationProp,\n default: () => NoAnimation\n },\n /**\n * Animation to use for the overlay (backdrop) part of the modal. By default, it uses\n * a fade transition.\n */\n overlayAnimation: {\n type: AnimationProp,\n default: () => Fade\n },\n /** Class inherited by content element. */\n contentClass: String,\n /** Class inherited by overlay element. */\n overlayClass: String\n },\n emits: ['click:overlay', 'focusin:body'],\n setup(props, { emit }) {\n /** Reference to the modal element in the DOM. */\n const modalRef = ref<HTMLDivElement>();\n /** Reference to the modal content element in the DOM. */\n const modalContentRef = ref<HTMLDivElement>();\n\n /** The previous value of the body overflow style. */\n const previousBodyOverflow = ref('');\n /** The previous value of the HTML element overflow style. */\n const previousHTMLOverflow = ref('');\n /** Boolean to delay the leave animation until it has completed. */\n const isWaitingForLeave = ref(false);\n /** The reference element to use to find the modal's position. */\n let referenceElement: HTMLElement | undefined;\n\n /** Disables the scroll of both the body and the window. */\n function disableScroll() {\n previousBodyOverflow.value = document.body.style.overflow;\n previousHTMLOverflow.value = document.documentElement.style.overflow;\n document.body.style.overflow = document.documentElement.style.overflow = 'hidden';\n }\n\n /** Restores the scroll of both the body and the window. */\n function enableScroll() {\n document.body.style.overflow = previousBodyOverflow.value;\n document.documentElement.style.overflow = previousHTMLOverflow.value;\n }\n\n /**\n * Emits the `click:overlay` event if the click has been triggered in the overlay layer.\n *\n * @param event - The click event.\n */\n function emitOverlayClicked(event: Event) {\n emit('click:overlay', event);\n }\n\n /**\n * Emits the `focusin:body` event if a focus event has been triggered outside the modal.\n *\n * @param event - The focusin event.\n */\n function emitFocusInBody(event: FocusEvent) {\n if (!modalContentRef.value?.contains(getTargetElement(event))) {\n emit('focusin:body', event);\n }\n }\n\n /**\n * Adds listeners to the body element ot detect if the modal should be closed.\n *\n * @remarks TODO find a better solution and remove the timeout\n * To avoid emit the focusin on opening X that provokes closing it immediately.\n * This is because this event was emitted after the open of main modal when the user clicks\n * on the customer website search box (focus event). This way we avoid add the listener before\n * the open and the avoid the event that provokes the close.\n */\n function addBodyListeners() {\n setTimeout(() => {\n document.body.addEventListener('focusin', emitFocusInBody);\n });\n }\n\n /** Removes the body listeners. */\n function removeBodyListeners() {\n document.body.removeEventListener('focusin', emitFocusInBody);\n }\n\n /**\n * Sets the focused element to the first element either the first element with a positive\n * tabindex or, if there isn't any, the first focusable element inside the modal.\n */\n function setFocus() {\n const candidates: HTMLElement[] = Array.from(\n modalContentRef.value?.querySelectorAll(FOCUSABLE_SELECTORS) ?? []\n );\n const element = candidates.find(element => element.tabIndex) ?? candidates[0];\n element?.focus();\n }\n\n /**\n * Syncs the body to the open state of the modal, adding or removing styles and listeners.\n *\n * @remarks nextTick() to wait for `modalContentRef` to be updated to look for focusable\n * candidates inside.\n *\n * @param isOpen - True when the modal is opened.\n */\n async function syncBody(isOpen: boolean) {\n if (isOpen) {\n disableScroll();\n addBodyListeners();\n if (props.focusOnOpen) {\n await nextTick();\n setFocus();\n }\n } else {\n enableScroll();\n removeBodyListeners();\n }\n }\n\n /**\n * Updates the position of the modal setting the top of the element depending\n * on the selector. The modal will be placed under this selector.\n */\n const debouncedUpdatePosition = useDebounce(\n () => {\n const { height, y } = referenceElement?.getBoundingClientRect() ?? { height: 0, y: 0 };\n modalRef.value!.style.top = `${height + y}px`;\n modalRef.value!.style.bottom = '0';\n modalRef.value!.style.height = 'auto';\n },\n 100,\n { leading: true }\n );\n\n let resizeObserver: ResizeObserver;\n\n onMounted(() => {\n watch(() => props.open, syncBody);\n if (props.open) {\n syncBody(true);\n }\n\n resizeObserver = new ResizeObserver(debouncedUpdatePosition);\n\n watch(\n () => props.referenceSelector,\n () => {\n resizeObserver.disconnect();\n\n if (props.referenceSelector) {\n const element = document.querySelector(props.referenceSelector) as HTMLElement;\n if (element) {\n referenceElement = element;\n resizeObserver.observe(element);\n }\n } else {\n referenceElement = undefined;\n debouncedUpdatePosition();\n }\n },\n { immediate: true }\n );\n });\n\n onBeforeUnmount(() => {\n if (props.open) {\n removeBodyListeners();\n enableScroll();\n }\n resizeObserver.disconnect();\n });\n\n return {\n emitOverlayClicked,\n isWaitingForLeave,\n modalContentRef,\n modalRef\n };\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n .x-modal {\n position: fixed;\n top: 0;\n left: 0;\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n width: 100%;\n height: 100%;\n z-index: 1;\n }\n\n .x-modal__content {\n display: flex;\n flex-flow: column nowrap;\n z-index: 1;\n }\n\n .x-modal__overlay {\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: rgb(0, 0, 0);\n opacity: 0.3;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nThe `BaseModal` is a simple component that serves to create complex modals. Its open state has to be\npassed via prop. There is a prop, `referenceSelector`, used to place the modal under some element\ninstead of set the top of the element directly. It also accepts an animation to use for opening &\nclosing.\n\nIt emits a `click:overlay` event when any part out of the content is clicked, but only if the modal\nis open.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n### Customized usage\n\n#### Customizing the content with classes\n\nThe `contentClass` prop can be used to add classes to the modal content.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n contentClass=\"x-bg-neutral-75\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n#### Customizing the overlay with classes\n\nThe `overlayClass` prop can be used to add classes to the modal overlay.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n overlayClass=\"x-bg-neutral-75\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n## Vue Events\n\nA list of events that the component will emit:\n\n- `click:overlay`: the event is emitted after the user clicks any part out of the content but only\n if the modal is open. The event payload is the mouse event that triggers it.\n- `focusin:body`: the event is emitted after the user focus in any part out of the content but only\n if the modal is open. The event payload is the focus event that triggers it.\n</docs>\n"],"names":["animation","_withDirectives","_openBlock","_createElementBlock","isWaitingForLeave","_createBlock","_withCtx","_normalizeClass","_renderSlot","_createCommentVNode","_resolveDynamicComponent","overlayClass"],"mappings":";;;;;MACyD,UAAe,GAAA;AAAA,EAAC,GAAA,EAAA,UAAA;AAAA,EAAA,KAAA,EAAA,SAAA;;;AACrE,SAAA,WAAA,CAAA,IAAA,EAAA,MAAA,EAFJ,MAGWA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA;SACJC,cAAY,EAAAC,SAAA,EAAA,EAAAC,kBAAA;AAAA,IAAEC,KAAAA;AAAAA,IAAAA,UAAAA;AAAAA,IAAAA;AAAAA,OAAAA,SAAAA,EACH,EAAAC,WAAA;AAAA,QAAED,uBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA;AAAAA,QAAAA;AAAAA,UAAAA,aAAAA,EAAAA,MAAAA,CAAAA,CAAAA,CAAAA,KAAAA,MAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,MAAAA,KAAAA,IAAAA,CAAAA,iBAAAA,GAAAA,IAAAA,CAAAA;UALpB,YAiBY,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,iBAAA,GAAA,KAAA,CAAA;AAAA,SAAA;;AAVN,UAAA,OAAA,EAAAE,OAAA,CAAA,MAAA;AAAA,YAAA,IAAA,CAPN,IASY,IAAAJ,SAAA,EAAA,EAAAC,kBAAA;AAAA,cAAiB,KAAA;AAAA,cAAA;AAAA,gBACrB,GAAK,EAAA,CAAA;AAAA,gBACL,GAAA,EAAA,iBAAA;AAAA,gBACA,OAAKI,cAAQ,CAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,YAAA,CAAA,CAAA;AAAA,gBAAA,WAAA,EAAA,eAAA;AAIb,gBAAA,IAAA,EAAA,QAAA;AAAA,eAAA;;AAhBR,gBAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA,EAAA,EAAA,KAAA,CAAA,EAAA,IAAA,CAAA;AAAA,eAAA;;;AAAA,aAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,WAAA,CAAA;;;;AAAA,QAAA,EAAA;AAAA;AAAA,OA2BQ;AAAA,OAAAP,SAAA,EANU,EAAAG,WAAA,CAAAK,uBAAA,CAAA,IAAA,CAAA,gBAAA,CAAA,EAAA,IAAA,EAAA;AAAA,QADZ,OAAA,EAAAJ,OAAA,CAAA,MAAA;AAAA,UAAA,IAAA,CApBN,IAsBc,IAAAJ,SAAA,EAAA,EAAAC,kBAAA;AAAA,YAAA,KAAA;AAAA,YAAA;AAAA,cACL,GAAA,EAAA,CAAA;AAAA,cACD,OAAA,EAxBR,MAwBc,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KACEQ,IAAY,CAAA,kBAAA,IAAA,IAAA,CAAA,kBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cACpB,SAAA,EAAS,OAAC,CAAe,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,kBAAA,IAAA,IAAA,CAAA,kBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,cAAA,KAAA,EAAAJ,cAAA,CAAA,CAAA,kBAAA,EAAA,IAAA,CAAA,YAAA,CAAA,CAAA;AA1BjC,cAAA,WAAA,EAAA,eAAA;AAAA,aAAA;;;;AAAA,WAAA,IAAAE,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,SAAA,CAAA;;;;;;;;;;;;;;;"}
@@ -188,13 +188,20 @@ var _sfc_main = defineComponent({
188
188
  syncBody(true);
189
189
  }
190
190
  resizeObserver = new ResizeObserver(debouncedUpdatePosition);
191
- if (props.referenceSelector) {
192
- const element = document.querySelector(props.referenceSelector);
193
- if (element) {
194
- referenceElement = element;
195
- resizeObserver.observe(element);
191
+ watch(() => props.referenceSelector, () => {
192
+ resizeObserver.disconnect();
193
+ if (props.referenceSelector) {
194
+ const element = document.querySelector(props.referenceSelector);
195
+ if (element) {
196
+ referenceElement = element;
197
+ resizeObserver.observe(element);
198
+ }
196
199
  }
197
- }
200
+ else {
201
+ referenceElement = undefined;
202
+ debouncedUpdatePosition();
203
+ }
204
+ }, { immediate: true });
198
205
  });
199
206
  onBeforeUnmount(() => {
200
207
  if (props.open) {
@@ -1 +1 @@
1
- {"version":3,"file":"base-modal.vue2.js","sources":["../../../../src/components/modals/base-modal.vue"],"sourcesContent":["<template>\n <div v-show=\"isWaitingForLeave || open\" ref=\"modalRef\" class=\"x-modal\" data-test=\"modal\">\n <component\n :is=\"animation\"\n @before-leave=\"isWaitingForLeave = true\"\n @after-leave=\"isWaitingForLeave = false\"\n >\n <div\n v-if=\"open\"\n ref=\"modalContentRef\"\n class=\"x-modal__content\"\n data-test=\"modal-content\"\n role=\"dialog\"\n :class=\"contentClass\"\n >\n <!-- @slot (Required) Modal container content -->\n <slot />\n </div>\n </component>\n <component :is=\"overlayAnimation\">\n <div\n v-if=\"open\"\n @click=\"emitOverlayClicked\"\n @keydown=\"emitOverlayClicked\"\n class=\"x-modal__overlay\"\n :class=\"overlayClass\"\n data-test=\"modal-overlay\"\n />\n </component>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue';\n import { useDebounce } from '../../composables';\n import { AnimationProp } from '../../types';\n import { getTargetElement, FOCUSABLE_SELECTORS } from '../../utils';\n import { Fade, NoAnimation } from '../animations';\n\n /**\n * Base component with no XPlugin dependencies that serves as a utility for constructing more\n * complex modals.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseModal',\n props: {\n /** Determines if the modal is open or not. */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Determines if the focused element changes to one inside the modal when it opens. Either the\n * first element with a positive tabindex or just the first focusable element.\n */\n focusOnOpen: {\n type: Boolean,\n default: true\n },\n /**\n * The reference selector of a DOM element to use as reference to position the modal.\n * This selector can be an ID or a class, if it is a class, it will use the first\n * element that matches.\n */\n referenceSelector: String,\n /** Animation to use for opening/closing the modal.This animation only affects the content. */\n animation: {\n type: AnimationProp,\n default: () => NoAnimation\n },\n /**\n * Animation to use for the overlay (backdrop) part of the modal. By default, it uses\n * a fade transition.\n */\n overlayAnimation: {\n type: AnimationProp,\n default: () => Fade\n },\n /** Class inherited by content element. */\n contentClass: String,\n /** Class inherited by overlay element. */\n overlayClass: String\n },\n emits: ['click:overlay', 'focusin:body'],\n setup(props, { emit }) {\n /** Reference to the modal element in the DOM. */\n const modalRef = ref<HTMLDivElement>();\n /** Reference to the modal content element in the DOM. */\n const modalContentRef = ref<HTMLDivElement>();\n\n /** The previous value of the body overflow style. */\n const previousBodyOverflow = ref('');\n /** The previous value of the HTML element overflow style. */\n const previousHTMLOverflow = ref('');\n /** Boolean to delay the leave animation until it has completed. */\n const isWaitingForLeave = ref(false);\n /** The reference element to use to find the modal's position. */\n let referenceElement: HTMLElement;\n\n /** Disables the scroll of both the body and the window. */\n function disableScroll() {\n previousBodyOverflow.value = document.body.style.overflow;\n previousHTMLOverflow.value = document.documentElement.style.overflow;\n document.body.style.overflow = document.documentElement.style.overflow = 'hidden';\n }\n\n /** Restores the scroll of both the body and the window. */\n function enableScroll() {\n document.body.style.overflow = previousBodyOverflow.value;\n document.documentElement.style.overflow = previousHTMLOverflow.value;\n }\n\n /**\n * Emits the `click:overlay` event if the click has been triggered in the overlay layer.\n *\n * @param event - The click event.\n */\n function emitOverlayClicked(event: Event) {\n emit('click:overlay', event);\n }\n\n /**\n * Emits the `focusin:body` event if a focus event has been triggered outside the modal.\n *\n * @param event - The focusin event.\n */\n function emitFocusInBody(event: FocusEvent) {\n if (!modalContentRef.value?.contains(getTargetElement(event))) {\n emit('focusin:body', event);\n }\n }\n\n /**\n * Adds listeners to the body element ot detect if the modal should be closed.\n *\n * @remarks TODO find a better solution and remove the timeout\n * To avoid emit the focusin on opening X that provokes closing it immediately.\n * This is because this event was emitted after the open of main modal when the user clicks\n * on the customer website search box (focus event). This way we avoid add the listener before\n * the open and the avoid the event that provokes the close.\n */\n function addBodyListeners() {\n setTimeout(() => {\n document.body.addEventListener('focusin', emitFocusInBody);\n });\n }\n\n /** Removes the body listeners. */\n function removeBodyListeners() {\n document.body.removeEventListener('focusin', emitFocusInBody);\n }\n\n /**\n * Sets the focused element to the first element either the first element with a positive\n * tabindex or, if there isn't any, the first focusable element inside the modal.\n */\n function setFocus() {\n const candidates: HTMLElement[] = Array.from(\n modalContentRef.value?.querySelectorAll(FOCUSABLE_SELECTORS) ?? []\n );\n const element = candidates.find(element => element.tabIndex) ?? candidates[0];\n element?.focus();\n }\n\n /**\n * Syncs the body to the open state of the modal, adding or removing styles and listeners.\n *\n * @remarks nextTick() to wait for `modalContentRef` to be updated to look for focusable\n * candidates inside.\n *\n * @param isOpen - True when the modal is opened.\n */\n async function syncBody(isOpen: boolean) {\n if (isOpen) {\n disableScroll();\n addBodyListeners();\n if (props.focusOnOpen) {\n await nextTick();\n setFocus();\n }\n } else {\n enableScroll();\n removeBodyListeners();\n }\n }\n\n /**\n * Updates the position of the modal setting the top of the element depending\n * on the selector. The modal will be placed under this selector.\n */\n const debouncedUpdatePosition = useDebounce(\n () => {\n const { height, y } = referenceElement?.getBoundingClientRect() ?? { height: 0, y: 0 };\n modalRef.value!.style.top = `${height + y}px`;\n modalRef.value!.style.bottom = '0';\n modalRef.value!.style.height = 'auto';\n },\n 100,\n { leading: true }\n );\n\n let resizeObserver: ResizeObserver;\n\n onMounted(() => {\n watch(() => props.open, syncBody);\n if (props.open) {\n syncBody(true);\n }\n\n resizeObserver = new ResizeObserver(debouncedUpdatePosition);\n\n if (props.referenceSelector) {\n const element = document.querySelector(props.referenceSelector) as HTMLElement;\n if (element) {\n referenceElement = element;\n resizeObserver.observe(element);\n }\n }\n });\n\n onBeforeUnmount(() => {\n if (props.open) {\n removeBodyListeners();\n enableScroll();\n }\n resizeObserver.disconnect();\n });\n\n return {\n emitOverlayClicked,\n isWaitingForLeave,\n modalContentRef,\n modalRef\n };\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n .x-modal {\n position: fixed;\n top: 0;\n left: 0;\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n width: 100%;\n height: 100%;\n z-index: 1;\n }\n\n .x-modal__content {\n display: flex;\n flex-flow: column nowrap;\n z-index: 1;\n }\n\n .x-modal__overlay {\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: rgb(0, 0, 0);\n opacity: 0.3;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nThe `BaseModal` is a simple component that serves to create complex modals. Its open state has to be\npassed via prop. There is a prop, `referenceSelector`, used to place the modal under some element\ninstead of set the top of the element directly. It also accepts an animation to use for opening &\nclosing.\n\nIt emits a `click:overlay` event when any part out of the content is clicked, but only if the modal\nis open.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n### Customized usage\n\n#### Customizing the content with classes\n\nThe `contentClass` prop can be used to add classes to the modal content.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n contentClass=\"x-bg-neutral-75\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n#### Customizing the overlay with classes\n\nThe `overlayClass` prop can be used to add classes to the modal overlay.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n overlayClass=\"x-bg-neutral-75\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n## Vue Events\n\nA list of events that the component will emit:\n\n- `click:overlay`: the event is emitted after the user clicks any part out of the content but only\n if the modal is open. The event payload is the mouse event that triggers it.\n- `focusin:body`: the event is emitted after the user focus in any part out of the content but only\n if the modal is open. The event payload is the focus event that triggers it.\n</docs>\n"],"names":["NoAnimation"],"mappings":"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"}
1
+ {"version":3,"file":"base-modal.vue2.js","sources":["../../../../src/components/modals/base-modal.vue"],"sourcesContent":["<template>\n <div v-show=\"isWaitingForLeave || open\" ref=\"modalRef\" class=\"x-modal\" data-test=\"modal\">\n <component\n :is=\"animation\"\n @before-leave=\"isWaitingForLeave = true\"\n @after-leave=\"isWaitingForLeave = false\"\n >\n <div\n v-if=\"open\"\n ref=\"modalContentRef\"\n class=\"x-modal__content\"\n data-test=\"modal-content\"\n role=\"dialog\"\n :class=\"contentClass\"\n >\n <!-- @slot (Required) Modal container content -->\n <slot />\n </div>\n </component>\n <component :is=\"overlayAnimation\">\n <div\n v-if=\"open\"\n @click=\"emitOverlayClicked\"\n @keydown=\"emitOverlayClicked\"\n class=\"x-modal__overlay\"\n :class=\"overlayClass\"\n data-test=\"modal-overlay\"\n />\n </component>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue';\n import { useDebounce } from '../../composables';\n import { AnimationProp } from '../../types';\n import { getTargetElement, FOCUSABLE_SELECTORS } from '../../utils';\n import { Fade, NoAnimation } from '../animations';\n\n /**\n * Base component with no XPlugin dependencies that serves as a utility for constructing more\n * complex modals.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseModal',\n props: {\n /** Determines if the modal is open or not. */\n open: {\n type: Boolean,\n required: true\n },\n /**\n * Determines if the focused element changes to one inside the modal when it opens. Either the\n * first element with a positive tabindex or just the first focusable element.\n */\n focusOnOpen: {\n type: Boolean,\n default: true\n },\n /**\n * The reference selector of a DOM element to use as reference to position the modal.\n * This selector can be an ID or a class, if it is a class, it will use the first\n * element that matches.\n */\n referenceSelector: String,\n /** Animation to use for opening/closing the modal.This animation only affects the content. */\n animation: {\n type: AnimationProp,\n default: () => NoAnimation\n },\n /**\n * Animation to use for the overlay (backdrop) part of the modal. By default, it uses\n * a fade transition.\n */\n overlayAnimation: {\n type: AnimationProp,\n default: () => Fade\n },\n /** Class inherited by content element. */\n contentClass: String,\n /** Class inherited by overlay element. */\n overlayClass: String\n },\n emits: ['click:overlay', 'focusin:body'],\n setup(props, { emit }) {\n /** Reference to the modal element in the DOM. */\n const modalRef = ref<HTMLDivElement>();\n /** Reference to the modal content element in the DOM. */\n const modalContentRef = ref<HTMLDivElement>();\n\n /** The previous value of the body overflow style. */\n const previousBodyOverflow = ref('');\n /** The previous value of the HTML element overflow style. */\n const previousHTMLOverflow = ref('');\n /** Boolean to delay the leave animation until it has completed. */\n const isWaitingForLeave = ref(false);\n /** The reference element to use to find the modal's position. */\n let referenceElement: HTMLElement | undefined;\n\n /** Disables the scroll of both the body and the window. */\n function disableScroll() {\n previousBodyOverflow.value = document.body.style.overflow;\n previousHTMLOverflow.value = document.documentElement.style.overflow;\n document.body.style.overflow = document.documentElement.style.overflow = 'hidden';\n }\n\n /** Restores the scroll of both the body and the window. */\n function enableScroll() {\n document.body.style.overflow = previousBodyOverflow.value;\n document.documentElement.style.overflow = previousHTMLOverflow.value;\n }\n\n /**\n * Emits the `click:overlay` event if the click has been triggered in the overlay layer.\n *\n * @param event - The click event.\n */\n function emitOverlayClicked(event: Event) {\n emit('click:overlay', event);\n }\n\n /**\n * Emits the `focusin:body` event if a focus event has been triggered outside the modal.\n *\n * @param event - The focusin event.\n */\n function emitFocusInBody(event: FocusEvent) {\n if (!modalContentRef.value?.contains(getTargetElement(event))) {\n emit('focusin:body', event);\n }\n }\n\n /**\n * Adds listeners to the body element ot detect if the modal should be closed.\n *\n * @remarks TODO find a better solution and remove the timeout\n * To avoid emit the focusin on opening X that provokes closing it immediately.\n * This is because this event was emitted after the open of main modal when the user clicks\n * on the customer website search box (focus event). This way we avoid add the listener before\n * the open and the avoid the event that provokes the close.\n */\n function addBodyListeners() {\n setTimeout(() => {\n document.body.addEventListener('focusin', emitFocusInBody);\n });\n }\n\n /** Removes the body listeners. */\n function removeBodyListeners() {\n document.body.removeEventListener('focusin', emitFocusInBody);\n }\n\n /**\n * Sets the focused element to the first element either the first element with a positive\n * tabindex or, if there isn't any, the first focusable element inside the modal.\n */\n function setFocus() {\n const candidates: HTMLElement[] = Array.from(\n modalContentRef.value?.querySelectorAll(FOCUSABLE_SELECTORS) ?? []\n );\n const element = candidates.find(element => element.tabIndex) ?? candidates[0];\n element?.focus();\n }\n\n /**\n * Syncs the body to the open state of the modal, adding or removing styles and listeners.\n *\n * @remarks nextTick() to wait for `modalContentRef` to be updated to look for focusable\n * candidates inside.\n *\n * @param isOpen - True when the modal is opened.\n */\n async function syncBody(isOpen: boolean) {\n if (isOpen) {\n disableScroll();\n addBodyListeners();\n if (props.focusOnOpen) {\n await nextTick();\n setFocus();\n }\n } else {\n enableScroll();\n removeBodyListeners();\n }\n }\n\n /**\n * Updates the position of the modal setting the top of the element depending\n * on the selector. The modal will be placed under this selector.\n */\n const debouncedUpdatePosition = useDebounce(\n () => {\n const { height, y } = referenceElement?.getBoundingClientRect() ?? { height: 0, y: 0 };\n modalRef.value!.style.top = `${height + y}px`;\n modalRef.value!.style.bottom = '0';\n modalRef.value!.style.height = 'auto';\n },\n 100,\n { leading: true }\n );\n\n let resizeObserver: ResizeObserver;\n\n onMounted(() => {\n watch(() => props.open, syncBody);\n if (props.open) {\n syncBody(true);\n }\n\n resizeObserver = new ResizeObserver(debouncedUpdatePosition);\n\n watch(\n () => props.referenceSelector,\n () => {\n resizeObserver.disconnect();\n\n if (props.referenceSelector) {\n const element = document.querySelector(props.referenceSelector) as HTMLElement;\n if (element) {\n referenceElement = element;\n resizeObserver.observe(element);\n }\n } else {\n referenceElement = undefined;\n debouncedUpdatePosition();\n }\n },\n { immediate: true }\n );\n });\n\n onBeforeUnmount(() => {\n if (props.open) {\n removeBodyListeners();\n enableScroll();\n }\n resizeObserver.disconnect();\n });\n\n return {\n emitOverlayClicked,\n isWaitingForLeave,\n modalContentRef,\n modalRef\n };\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n .x-modal {\n position: fixed;\n top: 0;\n left: 0;\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n width: 100%;\n height: 100%;\n z-index: 1;\n }\n\n .x-modal__content {\n display: flex;\n flex-flow: column nowrap;\n z-index: 1;\n }\n\n .x-modal__overlay {\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: rgb(0, 0, 0);\n opacity: 0.3;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Examples\n\nThe `BaseModal` is a simple component that serves to create complex modals. Its open state has to be\npassed via prop. There is a prop, `referenceSelector`, used to place the modal under some element\ninstead of set the top of the element directly. It also accepts an animation to use for opening &\nclosing.\n\nIt emits a `click:overlay` event when any part out of the content is clicked, but only if the modal\nis open.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n### Customized usage\n\n#### Customizing the content with classes\n\nThe `contentClass` prop can be used to add classes to the modal content.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n contentClass=\"x-bg-neutral-75\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n#### Customizing the overlay with classes\n\nThe `overlayClass` prop can be used to add classes to the modal overlay.\n\n```vue\n<template>\n <div>\n <button @click=\"open = true\">Open modal</button>\n <BaseModal\n :animation=\"fadeAndSlide\"\n :open=\"open\"\n @click:overlay=\"open = false\"\n referenceSelector=\".header\"\n overlayClass=\"x-bg-neutral-75\"\n >\n <h1>Hello</h1>\n <p>The modal is working</p>\n <button @click=\"open = false\">Close modal</button>\n </BaseModal>\n </div>\n</template>\n\n<script>\n import { BaseModal, FadeAndSlide } from '@empathyco/x-components';\n import Vue from 'vue';\n\n Vue.component('fadeAndSlide', FadeAndSlide);\n\n export default {\n components: {\n BaseModal\n },\n data() {\n return {\n open: false\n };\n }\n };\n</script>\n```\n\n## Vue Events\n\nA list of events that the component will emit:\n\n- `click:overlay`: the event is emitted after the user clicks any part out of the content but only\n if the modal is open. The event payload is the mouse event that triggers it.\n- `focusin:body`: the event is emitted after the user focus in any part out of the content but only\n if the modal is open. The event payload is the focus event that triggers it.\n</docs>\n"],"names":["NoAnimation"],"mappings":"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"}
@@ -1,21 +1,20 @@
1
1
  import _sfc_main from './page-loader-button.vue2.js';
2
- import { resolveComponent, openBlock, createElementBlock, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createElementVNode, toDisplayString, createVNode, normalizeClass, withCtx, createTextVNode } from 'vue';
2
+ import { resolveComponent, openBlock, createElementBlock, renderSlot, normalizeProps, guardReactiveProps, createElementVNode, toDisplayString, createVNode, normalizeClass, withCtx, createTextVNode } from 'vue';
3
+ import './page-loader-button.vue3.js';
3
4
  import _export_sfc from '../_virtual/_plugin-vue_export-helper.js';
4
5
 
5
6
  const _hoisted_1 = {
6
- class: "x-flex x-flex-col x-items-center x-py-32",
7
+ class: "x-page-loader",
7
8
  "data-test": "page-loader"
8
9
  };
9
10
  const _hoisted_2 = {
10
- class: "x-text x-py-16",
11
+ class: "x-page-loader__text-content",
11
12
  "data-test": "text-content"
12
13
  };
13
14
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
14
15
  const _component_BaseEventButton = resolveComponent("BaseEventButton");
15
16
  return openBlock(), createElementBlock("div", _hoisted_1, [
16
- createCommentVNode("\n @slot default\n @binding {number} resultsLength - The search result's length\n @binding {number} totalResults - The totalResults of a searched query\n "),
17
17
  renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ resultsLength: _ctx.resultsLength, totalResults: _ctx.totalResults })), () => [
18
- createCommentVNode(" @slot Rendered count with a text and the number of results displayed & remaining. "),
19
18
  renderSlot(_ctx.$slots, "textContent", {
20
19
  resultsLength: _ctx.resultsLength,
21
20
  totalResults: _ctx.totalResults
@@ -27,7 +26,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
27
26
  1
28
27
  /* TEXT */
29
28
  )
30
- ]),
29
+ ], true),
31
30
  createVNode(_component_BaseEventButton, {
32
31
  class: normalizeClass(["x-button", _ctx.buttonClasses]),
33
32
  events: _ctx.events,
@@ -35,18 +34,17 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
35
34
  "aria-label": "Load"
36
35
  }, {
37
36
  default: withCtx(() => [
38
- createCommentVNode(" @slot Button content with a text, an icon or both "),
39
37
  renderSlot(_ctx.$slots, "buttonContent", {}, () => [
40
38
  createTextVNode("Load")
41
- ])
39
+ ], true)
42
40
  ]),
43
41
  _: 3
44
42
  /* FORWARDED */
45
43
  }, 8, ["class", "events"])
46
- ])
44
+ ], true)
47
45
  ]);
48
46
  }
49
- var pageLoaderButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
47
+ var pageLoaderButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-1e62f4ee"]]);
50
48
 
51
49
  export { pageLoaderButton as default };
52
50
  //# sourceMappingURL=page-loader-button.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-loader-button.vue.js","sources":["../../../src/components/page-loader-button.vue"],"sourcesContent":["<template>\n <div class=\"x-flex x-flex-col x-items-center x-py-32\" data-test=\"page-loader\">\n <!--\n @slot default\n @binding {number} resultsLength - The search result's length\n @binding {number} totalResults - The totalResults of a searched query\n -->\n <slot v-bind=\"{ resultsLength, totalResults }\">\n <!-- @slot Rendered count with a text and the number of results displayed & remaining. -->\n <slot name=\"textContent\" :resultsLength=\"resultsLength\" :totalResults=\"totalResults\">\n <p class=\"x-text x-py-16\" data-test=\"text-content\">\n You are seeing {{ resultsLength }} of {{ totalResults }} results\n </p>\n </slot>\n <BaseEventButton\n class=\"x-button\"\n :class=\"buttonClasses\"\n :events=\"events\"\n data-test=\"load-content\"\n aria-label=\"Load\"\n >\n <!-- @slot Button content with a text, an icon or both -->\n <slot name=\"buttonContent\">Load</slot>\n </BaseEventButton>\n </slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { VueCSSClasses } from '../utils/types';\n import { use$x } from '../composables';\n import { XEventsTypes } from '../wiring';\n import BaseEventButton from './base-event-button.vue';\n\n /**\n * Component that renders a text with the number of rendered results and\n * the remaining ones and a `<BaseEventButton>` with the logic of emitting\n * the event \"UserReachedResultsListEnd\" to load more results on click.\n *\n * @public\n */\n export default defineComponent({\n name: 'PageLoaderButton',\n components: { BaseEventButton },\n props: {\n /**\n * CSS classes to customize the loader button.\n *\n * @internal\n */\n buttonClasses: {\n type: String as PropType<VueCSSClasses>,\n default: ''\n },\n /**\n * Events to customize what will be emitted by the loader button.\n *\n * @internal\n */\n buttonEvents: {\n type: Object as PropType<Partial<XEventsTypes>>\n }\n },\n setup(props) {\n const $x = use$x();\n const resultsLength = computed(() => $x.results.length);\n const totalResults = computed(() => $x.totalResults);\n\n /**\n * The events that will be emitted when clicking on the loader button.\n *\n * @returns The {@link XEvent} to emit.\n * @public\n */\n const events = computed<Partial<XEventsTypes>>(() => {\n return { UserReachedResultsListEnd: undefined, ...props.buttonEvents };\n });\n\n return {\n resultsLength,\n totalResults,\n events\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the \"UserReachedResultsListEnd\" event by default. This can be changed using the\nbuttonEvents prop:\n\n```vue live\n<template>\n <PageLoaderButton :buttonEvents=\"{ UserClickedCloseX: undefined }\" />\n</template>\n\n<script>\n import { PageLoaderButton } from '@empathyco/x-components';\n\n export default {\n name: 'PageLoaderButtonDemo',\n components: {\n PageLoaderButton\n }\n };\n</script>\n```\n\n## See it in action\n\nHere you have a basic example of how the page loader component is rendered.\n\n```vue live\n<template>\n <PageLoaderButton />\n</template>\n\n<script>\n import { PageLoaderButton } from '@empathyco/x-components';\n\n export default {\n name: 'PageLoaderButtonDemo',\n components: {\n PageLoaderButton\n }\n };\n</script>\n```\n\n### Customise the default layout\n\nThis component has a default slot which allows to customise the entire layout.\n\n```vue live\n<template>\n <PageLoaderButton>\n <template #default=\"{ resultsLength, totalResults }\">\n <div class=\"x-flex x-flex-col\">\n <div class=\"x-flex x-gap-4 x-text\">\n <span class=\"x-text-accent-50 x-font-bold\">{{ resultsLength }}</span>\n <span>of</span>\n <span class=\"x-text-accent-50\">{{ totalResults }}</span>\n </div>\n <button\n @click=\"$x.emit('UserReachedResultsListEnd', undefined)\"\n class=\"x-button x-button-ghost\"\n >\n Load more\n </button>\n </div>\n </template>\n </PageLoaderButton>\n</template>\n\n<script>\n import { PageLoaderButton } from '@empathyco/x-components';\n\n export default {\n name: 'PageLoaderButtonDemo',\n components: {\n PageLoaderButton\n }\n };\n</script>\n```\n\n### Customise the slots\n\nThis component allows to customise both the textContent and the buttonContent slots. The\ntextContent's slot layout can be replaced entirely, while the buttonContent's slot enables wrapping\ncontent inside and customizing its style using the buttonClasses prop.\n\n```vue live\n<template>\n <PageLoaderButton :buttonClasses=\"buttonClasses\">\n <template #textContent=\"{ resultsLength, totalResults }\">\n <div class=\"x-flex x-gap-4 x-text\">\n <span class=\"x-text-accent-50 x-font-bold\">{{ resultsLength }}</span>\n <span>of</span>\n <span class=\"x-text-accent-50\">{{ totalResults }}</span>\n </div>\n </template>\n <template #buttonContent>Load more results</template>\n </PageLoaderButton>\n</template>\n\n<script>\n import { PageLoaderButton } from '@empathyco/x-components';\n\n export default {\n name: 'PageLoaderButtonDemo',\n components: {\n PageLoaderButton\n },\n data() {\n return {\n buttonClasses: 'x-rounded-full'\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_createCommentVNode","_renderSlot","_normalizeProps","_guardReactiveProps","resultsLength","totalResults","_createElementVNode","_toDisplayString","events","_withCtx"],"mappings":";;;;MACwD,UAAU,GAAA;AAAA,EAAA,KAAA,EAAA,0CAAA;;;MAShC,UAAU,GAAA;AAAA,EAAA,KAAA,EAAA,gBAAA;;;;qCAT1CA,gBAwBM,CAAA,iBAAA,CAAA,CAAA;AAlBJ,EAAA,OAAAC,SAAA,EAPJ,EAAAC,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,IAAAC,kBAAA,CAQM,wLAA0F,CAAA;AAAA,IAAAC,UAAA,CAC1F,IAIO,CAAA,MAAA,EAAA,SAAA,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,CAAA,aAAA,EAAA,YAAA,EAAA,IAAA,CAAA,YAAA,EAAA,CAAA,CAAA,EAAA,MAAA;AAAA,MAAAH,kBAAA,CAJkCI,qFAAa,CAAA;AAAA,MAAAH,UAAA,CAAG,KAAcI,MAAY,EAAA,aAAA,EAAA;AAAA,QAI5E,aAAA,EAAA,IAAA,CAAA,aAAA;AAAA,QAHL,YAAA,EAAA,IAAA,CAAA,YAAA;AAAA,OAAA,EAAA,MAAA;AAIF,QAAAC,kBAAA;AAAA,UASkB,GAAA;AAAA,UAAA,UAAA;AAAA,UAAA,kBAAA,GAAAC,eAAA,CAAA,IAAA,CAAA,aAAA,CAAA,GAAA,MAAA,GAAAA,eAAA,CAAA,IAAA,CAAA,YAAA,CAAA,GAAA,WAAA;AAAA,UAAA,CAAA;AAAA;AAAA,SAAA;AAAA,OAAA,CAAA;kBANPC,0BAAM,EAAA;AAAA,QACf,sBAAU,CAAc,UAAA,EAAA,IAAA,CAAA,aAAA,CAAA,CAAA;AAAA,QACxB,MAAU,EAAA,IAAA,CAAA,MAAA;AAAA,QAAA,WAAA,EAAA,cAAA;AAnBlB,QAAA,YAAA,EAAA,MAAA;AAAA,OAAA,EAAA;iBAsBQC,OAAsC,CAAA,MAAA;AAAA,UAAAT,kBAAA,CAAX,qDAAI,CAAA;AAAA,UAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,eAAA,EAAA,EAAA,EAAA,MAAA;;AAtBvC,WAAA,CAAA;AAAA,SAAA,CAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"page-loader-button.vue.js","sources":["../../../src/components/page-loader-button.vue"],"sourcesContent":["<template>\n <div class=\"x-page-loader\" data-test=\"page-loader\">\n <!--\n @slot default\n @binding {number} resultsLength - The search result's length\n @binding {number} totalResults - The totalResults of a searched query\n -->\n <slot v-bind=\"{ resultsLength, totalResults }\">\n <!-- @slot Rendered count with a text and the number of results displayed & remaining. -->\n <slot name=\"textContent\" :resultsLength=\"resultsLength\" :totalResults=\"totalResults\">\n <p class=\"x-page-loader__text-content\" data-test=\"text-content\">\n You are seeing {{ resultsLength }} of {{ totalResults }} results\n </p>\n </slot>\n <BaseEventButton\n class=\"x-button\"\n :class=\"buttonClasses\"\n :events=\"events\"\n data-test=\"load-content\"\n aria-label=\"Load\"\n >\n <!-- @slot Button content with a text, an icon or both -->\n <slot name=\"buttonContent\">Load</slot>\n </BaseEventButton>\n </slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { VueCSSClasses } from '../utils/types';\n import { use$x } from '../composables';\n import { XEventsTypes } from '../wiring';\n import BaseEventButton from './base-event-button.vue';\n\n /**\n * Component that renders a text with the number of rendered results and\n * the remaining ones and a `<BaseEventButton>` with the logic of emitting\n * the event \"UserReachedResultsListEnd\" to load more results on click.\n *\n * @public\n */\n export default defineComponent({\n name: 'PageLoaderButton',\n components: { BaseEventButton },\n props: {\n /**\n * CSS classes to customize the loader button.\n *\n * @internal\n */\n buttonClasses: {\n type: String as PropType<VueCSSClasses>,\n default: ''\n },\n /**\n * Events to customize what will be emitted by the loader button.\n *\n * @internal\n */\n buttonEvents: {\n type: Object as PropType<Partial<XEventsTypes>>\n }\n },\n setup(props) {\n const $x = use$x();\n const resultsLength = computed(() => $x.results.length);\n const totalResults = computed(() => $x.totalResults);\n\n /**\n * The events that will be emitted when clicking on the loader button.\n *\n * @returns The {@link XEvent} to emit.\n * @public\n */\n const events = computed<Partial<XEventsTypes>>(() => {\n return { UserReachedResultsListEnd: undefined, ...props.buttonEvents };\n });\n\n return {\n resultsLength,\n totalResults,\n events\n };\n }\n });\n</script>\n\n<style scoped>\n .x-page-loader {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 32px 0;\n }\n\n .x-page-loader__text-content {\n padding: 16px 0;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the \"UserReachedResultsListEnd\" event by default. This can be changed using the\nbuttonEvents prop:\n\n```vue live\n<template>\n <PageLoaderButton :buttonEvents=\"{ UserClickedCloseX: undefined }\" />\n</template>\n\n<script>\n import { PageLoaderButton } from '@empathyco/x-components';\n\n export default {\n name: 'PageLoaderButtonDemo',\n components: {\n PageLoaderButton\n }\n };\n</script>\n```\n\n## See it in action\n\nHere you have a basic example of how the page loader component is rendered.\n\n```vue live\n<template>\n <PageLoaderButton />\n</template>\n\n<script>\n import { PageLoaderButton } from '@empathyco/x-components';\n\n export default {\n name: 'PageLoaderButtonDemo',\n components: {\n PageLoaderButton\n }\n };\n</script>\n```\n\n### Customise the default layout\n\nThis component has a default slot which allows to customise the entire layout.\n\n```vue live\n<template>\n <PageLoaderButton>\n <template #default=\"{ resultsLength, totalResults }\">\n <div class=\"x-flex x-flex-col\">\n <div class=\"x-flex x-gap-4 x-text\">\n <span class=\"x-text-accent-50 x-font-bold\">{{ resultsLength }}</span>\n <span>of</span>\n <span class=\"x-text-accent-50\">{{ totalResults }}</span>\n </div>\n <button\n @click=\"$x.emit('UserReachedResultsListEnd', undefined)\"\n class=\"x-button x-button-ghost\"\n >\n Load more\n </button>\n </div>\n </template>\n </PageLoaderButton>\n</template>\n\n<script>\n import { PageLoaderButton } from '@empathyco/x-components';\n\n export default {\n name: 'PageLoaderButtonDemo',\n components: {\n PageLoaderButton\n }\n };\n</script>\n```\n\n### Customise the slots\n\nThis component allows to customise both the textContent and the buttonContent slots. The\ntextContent's slot layout can be replaced entirely, while the buttonContent's slot enables wrapping\ncontent inside and customizing its style using the buttonClasses prop.\n\n```vue live\n<template>\n <PageLoaderButton :buttonClasses=\"buttonClasses\">\n <template #textContent=\"{ resultsLength, totalResults }\">\n <div class=\"x-flex x-gap-4 x-text\">\n <span class=\"x-text-accent-50 x-font-bold\">{{ resultsLength }}</span>\n <span>of</span>\n <span class=\"x-text-accent-50\">{{ totalResults }}</span>\n </div>\n </template>\n <template #buttonContent>Load more results</template>\n </PageLoaderButton>\n</template>\n\n<script>\n import { PageLoaderButton } from '@empathyco/x-components';\n\n export default {\n name: 'PageLoaderButtonDemo',\n components: {\n PageLoaderButton\n },\n data() {\n return {\n buttonClasses: 'x-rounded-full'\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_renderSlot","resultsLength","_normalizeProps","_guardReactiveProps","totalResults","_createElementVNode","_toDisplayString","_createVNode","events","_withCtx"],"mappings":";;;;;MAC6B,UAAU,GAAA;AAAA,EAAA,KAAA,EAAA,eAAA;;;MASQ,UAAU,GAAA;AAAA,EAAA,KAAA,EAAA,6BAAA;;;;qCATvDA,gBAwBM,CAAA,iBAAA,CAAA,CAAA;SAhBFC,SAIO,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,IAJmBC,UAAA,CAAA,IAAA,CAAa,QAAEC,SAAa,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,CAAA,aAAA,EAAA,YAAA,EAAA,IAAA,CAAA,YAAA,EAAA,CAAA,CAAA,EAAA,MAAA;AAAA,MAAAH,UAAA,CAAG,KAAcI,MAAY,EAAA,aAAA,EAAA;AAAA,QAI5E,aAAA,EAAA,IAAA,CAAA,aAAA;AAAA,QAHL,YAAA,EAAA,IAAA,CAAA,YAAA;AAAA,OAAA,EAAA,MAAA;AAIF,QAAAC,kBAAA;AAAA,UASkB,GAAA;AAAA,UAAA,UAAA;AAAA,UAAA,kBAAA,GAAAC,eAAA,CAAA,IAAA,CAAA,aAAA,CAAA,GAAA,MAAA,GAAAA,eAAA,CAAA,IAAA,CAAA,YAAA,CAAA,GAAA,WAAA;AAAA,UAAA,CAAA;AAAA;AAAA,SAAA;AAAA,OAAA,EARhB,IAAK,CAAA;AAAA,MAAAC,WAAA,CAEIC,0BAAM,EAAA;AAAA,QACf,sBAAU,CAAc,UAAA,EAAA,IAAA,CAAA,aAAA,CAAA,CAAA;AAAA,QACxB,MAAU,EAAA,IAAA,CAAA,MAAA;AAAA,QAAA,WAAA,EAAA,cAAA;AAnBlB,QAAA,YAAA,EAAA,MAAA;AAAA,OAAA,EAAA;iBAAAC,OAsBmC,CAAA,MAAA;AAAA,UAAAT,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,eAAA,EAAA,EAAA,EAAA,MAAA;;AAtBnC,WAAA,EAAA,IAAA,CAAA;AAAA,SAAA,CAAA;;;;;;;;;;;"}