@athoscommerce/snap-preact 1.10.1-beta.150 → 1.12.0

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 (612) hide show
  1. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +25 -62
  2. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +0 -13
  3. package/dist/cjs/components/src/components/Atoms/Image/Image.js +10 -2
  4. package/dist/cjs/components/src/components/Atoms/ProductDetail/ProductDetail.js +98 -0
  5. package/dist/cjs/components/src/components/Atoms/ProductDetail/index.js +7 -0
  6. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +16 -3
  7. package/dist/cjs/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +4 -1
  8. package/dist/cjs/components/src/components/Molecules/Gallery/Gallery.js +298 -0
  9. package/dist/cjs/components/src/components/{Templates/Chat → Molecules/Gallery}/index.js +1 -1
  10. package/dist/cjs/components/src/components/Molecules/Grid/Grid.js +9 -13
  11. package/dist/cjs/components/src/components/Molecules/List/List.js +9 -13
  12. package/dist/cjs/components/src/components/Molecules/Modal/Modal.js +21 -2
  13. package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +1 -1
  14. package/dist/cjs/components/src/components/Molecules/ProductDetailTable/ProductDetailTable.js +115 -0
  15. package/dist/cjs/components/src/components/Molecules/{ChatResultsDisplay → ProductDetailTable}/index.js +1 -1
  16. package/dist/cjs/components/src/components/Molecules/QuantityPicker/QuantityPicker.js +136 -0
  17. package/dist/cjs/components/src/components/Molecules/{ChatResult → QuantityPicker}/index.js +1 -1
  18. package/dist/cjs/components/src/components/Molecules/RadioList/RadioList.js +9 -13
  19. package/dist/cjs/components/src/components/Molecules/Result/Result.js +28 -36
  20. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  21. package/dist/cjs/components/src/components/Molecules/Select/Select.js +9 -13
  22. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +33 -26
  23. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +37 -8
  24. package/dist/cjs/components/src/components/Molecules/Swatches/Swatches.js +1 -1
  25. package/dist/cjs/components/src/components/Molecules/TabSelection/TabSelection.js +108 -0
  26. package/dist/cjs/components/src/components/{Templates/ChatButton → Molecules/TabSelection}/index.js +1 -1
  27. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +1 -1
  28. package/dist/cjs/components/src/components/Molecules/VariantSelection/VariantSelection.js +7 -1
  29. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +25 -10
  30. package/dist/cjs/components/src/components/Organisms/Layout/Layout.js +15 -1
  31. package/dist/cjs/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +612 -0
  32. package/dist/cjs/components/src/components/{Molecules/ChatMessageUser → Organisms/QuickviewLayout}/index.js +1 -1
  33. package/dist/cjs/components/src/components/Organisms/Results/Results.js +4 -4
  34. package/dist/cjs/components/src/components/Organisms/Toolbar/Toolbar.js +2 -1
  35. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +13 -11
  36. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +13 -11
  37. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +12 -10
  38. package/dist/cjs/components/src/components/Templates/QuickviewModal/QuickviewModal.js +153 -0
  39. package/dist/cjs/components/src/components/{Molecules/ChatMessageText → Templates/QuickviewModal}/index.js +1 -1
  40. package/dist/cjs/components/src/components/Templates/QuickviewSlideout/QuickviewSlideout.js +124 -0
  41. package/dist/cjs/components/src/components/Templates/QuickviewSlideout/index.js +17 -0
  42. package/dist/cjs/components/src/components/Templates/Recommendation/Recommendation.js +2 -1
  43. package/dist/cjs/components/src/components/Templates/RecommendationBundle/RecommendationBundle.js +2 -1
  44. package/dist/cjs/components/src/components/Templates/RecommendationGrid/RecommendationGrid.js +2 -1
  45. package/dist/cjs/components/src/components/Templates/Search/Search.js +10 -3
  46. package/dist/cjs/components/src/hooks/useA11y.js +3 -1
  47. package/dist/cjs/components/src/hooks/useAcRenderedInput.js +14 -3
  48. package/dist/cjs/components/src/hooks/useClickOutside.js +6 -3
  49. package/dist/cjs/components/src/hooks/useCreateController.js +24 -3
  50. package/dist/cjs/components/src/hooks/useTracking.js +14 -8
  51. package/dist/cjs/components/src/index.js +8 -17
  52. package/dist/cjs/components/src/providers/themeComponents.js +5 -20
  53. package/dist/cjs/components/src/setupTests.js +6 -10
  54. package/dist/cjs/components/src/themes/base/components/templates/index.js +0 -10
  55. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +0 -10
  56. package/dist/cjs/components/src/themes/pike/components/templates/index.js +0 -10
  57. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +0 -10
  58. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +0 -10
  59. package/dist/cjs/components/src/utilities/Colour/Colour.js +0 -41
  60. package/dist/cjs/components/src/utilities/createImpressionObserver.js +1 -1
  61. package/dist/cjs/components/src/utilities/index.js +2 -0
  62. package/dist/cjs/components/src/utilities/lazyRenderMinSize.js +10 -0
  63. package/dist/cjs/components/src/utilities/selectionKey.js +12 -0
  64. package/dist/cjs/components/src/utilities/snapify.js +0 -27
  65. package/dist/cjs/src/Instantiators/RecommendationInstantiator.js +2 -1
  66. package/dist/cjs/src/Snap.js +41 -70
  67. package/dist/cjs/src/Templates/SnapTemplates.js +194 -82
  68. package/dist/cjs/src/Templates/Stores/LibraryStore.js +80 -60
  69. package/dist/cjs/src/Templates/Stores/TabManagerStore.js +151 -0
  70. package/dist/cjs/src/Templates/Stores/TemplateEditor/TemplateEditorStore.js +6 -1
  71. package/dist/cjs/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.js +2 -5
  72. package/dist/cjs/src/Templates/Stores/TemplateStore.js +49 -12
  73. package/dist/cjs/src/Templates/Stores/library/components/QuickviewModal.js +5 -0
  74. package/dist/cjs/src/Templates/Stores/library/components/QuickviewSlideout.js +5 -0
  75. package/dist/cjs/src/Templates/Stores/library/currencies/currencies.js +1433 -0
  76. package/dist/cjs/src/Templates/Stores/library/languages/ar.js +487 -0
  77. package/dist/cjs/src/Templates/Stores/library/languages/de.js +487 -0
  78. package/dist/cjs/src/Templates/Stores/library/languages/en.js +1 -0
  79. package/dist/cjs/src/Templates/Stores/library/languages/es.js +102 -526
  80. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +105 -527
  81. package/dist/cjs/src/Templates/Stores/library/languages/hi.js +487 -0
  82. package/dist/cjs/src/Templates/Stores/library/languages/it.js +487 -0
  83. package/dist/cjs/src/Templates/Stores/library/languages/ja.js +487 -0
  84. package/dist/cjs/src/Templates/Stores/library/languages/ko.js +487 -0
  85. package/dist/cjs/src/Templates/Stores/library/languages/nl.js +487 -0
  86. package/dist/cjs/src/Templates/Stores/library/languages/pt.js +487 -0
  87. package/dist/cjs/src/Templates/Stores/library/languages/ru.js +487 -0
  88. package/dist/cjs/src/Templates/Stores/library/languages/tr.js +487 -0
  89. package/dist/cjs/src/Templates/Stores/library/languages/vi.js +487 -0
  90. package/dist/cjs/src/Templates/Stores/library/languages/zh.js +487 -0
  91. package/dist/cjs/src/Templates/index.js +3 -1
  92. package/dist/cjs/src/create/createAutocompleteController.js +7 -1
  93. package/dist/cjs/src/create/createRecommendationController.js +1 -0
  94. package/dist/cjs/src/create/createSearchController.js +1 -0
  95. package/dist/cjs/src/create/index.js +1 -3
  96. package/dist/cjs/src/index.js +3 -1
  97. package/dist/cjs/src/setupEvents.js +0 -44
  98. package/dist/cjs/src/utils/index.js +1 -3
  99. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -3
  100. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  101. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -6
  102. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  103. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +26 -63
  104. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +0 -13
  105. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  106. package/dist/esm/components/src/components/Atoms/Icon/paths.js +0 -13
  107. package/dist/esm/components/src/components/Atoms/Image/Image.d.ts +5 -0
  108. package/dist/esm/components/src/components/Atoms/Image/Image.d.ts.map +1 -1
  109. package/dist/esm/components/src/components/Atoms/Image/Image.js +10 -2
  110. package/dist/esm/components/src/components/Atoms/ProductDetail/ProductDetail.d.ts +18 -0
  111. package/dist/esm/components/src/components/Atoms/ProductDetail/ProductDetail.d.ts.map +1 -0
  112. package/dist/esm/components/src/components/Atoms/ProductDetail/ProductDetail.js +89 -0
  113. package/dist/esm/components/src/components/Atoms/ProductDetail/index.d.ts +3 -0
  114. package/dist/esm/components/src/components/Atoms/ProductDetail/index.d.ts.map +1 -0
  115. package/dist/esm/components/src/components/Atoms/ProductDetail/index.js +3 -0
  116. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts +1 -1
  117. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
  118. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +16 -3
  119. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.d.ts.map +1 -1
  120. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +4 -1
  121. package/dist/esm/components/src/components/Molecules/Gallery/Gallery.d.ts +28 -0
  122. package/dist/esm/components/src/components/Molecules/Gallery/Gallery.d.ts.map +1 -0
  123. package/dist/esm/components/src/components/Molecules/Gallery/Gallery.js +292 -0
  124. package/dist/esm/components/src/components/Molecules/Gallery/index.d.ts +2 -0
  125. package/dist/esm/components/src/components/Molecules/Gallery/index.d.ts.map +1 -0
  126. package/dist/esm/components/src/components/Molecules/Gallery/index.js +1 -0
  127. package/dist/esm/components/src/components/Molecules/Grid/Grid.d.ts.map +1 -1
  128. package/dist/esm/components/src/components/Molecules/Grid/Grid.js +10 -14
  129. package/dist/esm/components/src/components/Molecules/List/List.d.ts.map +1 -1
  130. package/dist/esm/components/src/components/Molecules/List/List.js +10 -14
  131. package/dist/esm/components/src/components/Molecules/Modal/Modal.d.ts.map +1 -1
  132. package/dist/esm/components/src/components/Molecules/Modal/Modal.js +22 -3
  133. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  134. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  135. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +1 -1
  136. package/dist/esm/components/src/components/Molecules/ProductDetailTable/ProductDetailTable.d.ts +14 -0
  137. package/dist/esm/components/src/components/Molecules/ProductDetailTable/ProductDetailTable.d.ts.map +1 -0
  138. package/dist/esm/components/src/components/Molecules/ProductDetailTable/ProductDetailTable.js +109 -0
  139. package/dist/esm/components/src/components/Molecules/ProductDetailTable/index.d.ts +2 -0
  140. package/dist/esm/components/src/components/Molecules/ProductDetailTable/index.d.ts.map +1 -0
  141. package/dist/esm/components/src/components/Molecules/ProductDetailTable/index.js +1 -0
  142. package/dist/esm/components/src/components/Molecules/QuantityPicker/QuantityPicker.d.ts +43 -0
  143. package/dist/esm/components/src/components/Molecules/QuantityPicker/QuantityPicker.d.ts.map +1 -0
  144. package/dist/esm/components/src/components/Molecules/QuantityPicker/QuantityPicker.js +130 -0
  145. package/dist/esm/components/src/components/Molecules/QuantityPicker/index.d.ts +2 -0
  146. package/dist/esm/components/src/components/Molecules/QuantityPicker/index.d.ts.map +1 -0
  147. package/dist/esm/components/src/components/Molecules/QuantityPicker/index.js +1 -0
  148. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.d.ts.map +1 -1
  149. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.js +10 -14
  150. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +6 -7
  151. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  152. package/dist/esm/components/src/components/Molecules/Result/Result.js +28 -36
  153. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +0 -3
  154. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  155. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  156. package/dist/esm/components/src/components/Molecules/Select/Select.d.ts.map +1 -1
  157. package/dist/esm/components/src/components/Molecules/Select/Select.js +10 -14
  158. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  159. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +34 -27
  160. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts +1 -0
  161. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  162. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +37 -8
  163. package/dist/esm/components/src/components/Molecules/Swatches/Swatches.js +1 -1
  164. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.d.ts +32 -0
  165. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.d.ts.map +1 -0
  166. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.js +102 -0
  167. package/dist/esm/components/src/components/Molecules/TabSelection/index.d.ts +2 -0
  168. package/dist/esm/components/src/components/Molecules/TabSelection/index.d.ts.map +1 -0
  169. package/dist/esm/components/src/components/Molecules/TabSelection/index.js +1 -0
  170. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
  171. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +1 -1
  172. package/dist/esm/components/src/components/Molecules/VariantSelection/VariantSelection.d.ts.map +1 -1
  173. package/dist/esm/components/src/components/Molecules/VariantSelection/VariantSelection.js +7 -1
  174. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts +3 -1
  175. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
  176. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +25 -10
  177. package/dist/esm/components/src/components/Organisms/Layout/Layout.d.ts +3 -1
  178. package/dist/esm/components/src/components/Organisms/Layout/Layout.d.ts.map +1 -1
  179. package/dist/esm/components/src/components/Organisms/Layout/Layout.js +15 -1
  180. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts +53 -0
  181. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts.map +1 -0
  182. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +605 -0
  183. package/dist/esm/components/src/components/Organisms/QuickviewLayout/index.d.ts +2 -0
  184. package/dist/esm/components/src/components/Organisms/QuickviewLayout/index.d.ts.map +1 -0
  185. package/dist/esm/components/src/components/Organisms/QuickviewLayout/index.js +1 -0
  186. package/dist/esm/components/src/components/Organisms/Results/Results.d.ts.map +1 -1
  187. package/dist/esm/components/src/components/Organisms/Results/Results.js +4 -4
  188. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts +3 -1
  189. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts.map +1 -1
  190. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.js +2 -1
  191. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +2 -0
  192. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  193. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +13 -11
  194. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +2 -0
  195. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  196. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +13 -11
  197. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +2 -0
  198. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  199. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +12 -10
  200. package/dist/esm/components/src/components/Templates/QuickviewModal/QuickviewModal.d.ts +12 -0
  201. package/dist/esm/components/src/components/Templates/QuickviewModal/QuickviewModal.d.ts.map +1 -0
  202. package/dist/esm/components/src/components/Templates/QuickviewModal/QuickviewModal.js +147 -0
  203. package/dist/esm/components/src/components/Templates/QuickviewModal/index.d.ts +2 -0
  204. package/dist/esm/components/src/components/Templates/QuickviewModal/index.d.ts.map +1 -0
  205. package/dist/esm/components/src/components/Templates/QuickviewModal/index.js +1 -0
  206. package/dist/esm/components/src/components/Templates/QuickviewSlideout/QuickviewSlideout.d.ts +16 -0
  207. package/dist/esm/components/src/components/Templates/QuickviewSlideout/QuickviewSlideout.d.ts.map +1 -0
  208. package/dist/esm/components/src/components/Templates/QuickviewSlideout/QuickviewSlideout.js +118 -0
  209. package/dist/esm/components/src/components/Templates/QuickviewSlideout/index.d.ts +2 -0
  210. package/dist/esm/components/src/components/Templates/QuickviewSlideout/index.d.ts.map +1 -0
  211. package/dist/esm/components/src/components/Templates/QuickviewSlideout/index.js +1 -0
  212. package/dist/esm/components/src/components/Templates/Recommendation/Recommendation.d.ts.map +1 -1
  213. package/dist/esm/components/src/components/Templates/Recommendation/Recommendation.js +3 -2
  214. package/dist/esm/components/src/components/Templates/RecommendationBundle/RecommendationBundle.d.ts.map +1 -1
  215. package/dist/esm/components/src/components/Templates/RecommendationBundle/RecommendationBundle.js +3 -2
  216. package/dist/esm/components/src/components/Templates/RecommendationGrid/RecommendationGrid.d.ts.map +1 -1
  217. package/dist/esm/components/src/components/Templates/RecommendationGrid/RecommendationGrid.js +3 -2
  218. package/dist/esm/components/src/components/Templates/Search/Search.d.ts +2 -0
  219. package/dist/esm/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  220. package/dist/esm/components/src/components/Templates/Search/Search.js +10 -3
  221. package/dist/esm/components/src/hooks/useA11y.d.ts.map +1 -1
  222. package/dist/esm/components/src/hooks/useA11y.js +3 -1
  223. package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts +2 -2
  224. package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts.map +1 -1
  225. package/dist/esm/components/src/hooks/useAcRenderedInput.js +15 -4
  226. package/dist/esm/components/src/hooks/useClickOutside.d.ts +1 -1
  227. package/dist/esm/components/src/hooks/useClickOutside.d.ts.map +1 -1
  228. package/dist/esm/components/src/hooks/useClickOutside.js +6 -3
  229. package/dist/esm/components/src/hooks/useCreateController.d.ts.map +1 -1
  230. package/dist/esm/components/src/hooks/useCreateController.js +24 -3
  231. package/dist/esm/components/src/hooks/useTracking.d.ts +9 -3
  232. package/dist/esm/components/src/hooks/useTracking.d.ts.map +1 -1
  233. package/dist/esm/components/src/hooks/useTracking.js +14 -8
  234. package/dist/esm/components/src/index.d.ts +7 -14
  235. package/dist/esm/components/src/index.d.ts.map +1 -1
  236. package/dist/esm/components/src/index.js +7 -14
  237. package/dist/esm/components/src/providers/langComponents.d.ts +8 -20
  238. package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
  239. package/dist/esm/components/src/providers/themeComponents.d.ts +135 -256
  240. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  241. package/dist/esm/components/src/providers/themeComponents.js +5 -20
  242. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  243. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  244. package/dist/esm/components/src/setupTests.js +6 -10
  245. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  246. package/dist/esm/components/src/themes/base/components/templates/index.js +0 -10
  247. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  248. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +0 -10
  249. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  250. package/dist/esm/components/src/themes/pike/components/templates/index.js +0 -10
  251. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  252. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +0 -10
  253. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  254. package/dist/esm/components/src/themes/snappy/components/templates/index.js +0 -10
  255. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +0 -15
  256. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  257. package/dist/esm/components/src/utilities/Colour/Colour.js +0 -41
  258. package/dist/esm/components/src/utilities/createImpressionObserver.js +1 -1
  259. package/dist/esm/components/src/utilities/index.d.ts +2 -0
  260. package/dist/esm/components/src/utilities/index.d.ts.map +1 -1
  261. package/dist/esm/components/src/utilities/index.js +2 -0
  262. package/dist/esm/components/src/utilities/lazyRenderMinSize.d.ts +5 -0
  263. package/dist/esm/components/src/utilities/lazyRenderMinSize.d.ts.map +1 -0
  264. package/dist/esm/components/src/utilities/lazyRenderMinSize.js +7 -0
  265. package/dist/esm/components/src/utilities/selectionKey.d.ts +3 -0
  266. package/dist/esm/components/src/utilities/selectionKey.d.ts.map +1 -0
  267. package/dist/esm/components/src/utilities/selectionKey.js +9 -0
  268. package/dist/esm/components/src/utilities/snapify.d.ts +2 -3
  269. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  270. package/dist/esm/components/src/utilities/snapify.js +2 -29
  271. package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts +4 -2
  272. package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
  273. package/dist/esm/src/Instantiators/RecommendationInstantiator.js +2 -1
  274. package/dist/esm/src/Snap.d.ts +8 -2
  275. package/dist/esm/src/Snap.d.ts.map +1 -1
  276. package/dist/esm/src/Snap.js +44 -73
  277. package/dist/esm/src/Templates/SnapTemplates.d.ts +32 -5
  278. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  279. package/dist/esm/src/Templates/SnapTemplates.js +190 -81
  280. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +24 -45
  281. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  282. package/dist/esm/src/Templates/Stores/LibraryStore.js +79 -59
  283. package/dist/esm/src/Templates/Stores/TabManagerStore.d.ts +29 -0
  284. package/dist/esm/src/Templates/Stores/TabManagerStore.d.ts.map +1 -0
  285. package/dist/esm/src/Templates/Stores/TabManagerStore.js +146 -0
  286. package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.d.ts.map +1 -1
  287. package/dist/esm/src/Templates/Stores/TemplateEditor/TemplateEditorStore.js +6 -1
  288. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.d.ts.map +1 -1
  289. package/dist/esm/src/Templates/Stores/TemplateEditor/uiAbstractions/configUI.js +2 -5
  290. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +39 -25
  291. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  292. package/dist/esm/src/Templates/Stores/TemplateStore.js +49 -12
  293. package/dist/esm/src/Templates/Stores/library/components/QuickviewModal.d.ts +2 -0
  294. package/dist/esm/src/Templates/Stores/library/components/QuickviewModal.d.ts.map +1 -0
  295. package/dist/esm/src/Templates/Stores/library/components/QuickviewModal.js +1 -0
  296. package/dist/esm/src/Templates/Stores/library/components/QuickviewSlideout.d.ts +2 -0
  297. package/dist/esm/src/Templates/Stores/library/components/QuickviewSlideout.d.ts.map +1 -0
  298. package/dist/esm/src/Templates/Stores/library/components/QuickviewSlideout.js +1 -0
  299. package/dist/esm/src/Templates/Stores/library/currencies/currencies.d.ts +1270 -0
  300. package/dist/esm/src/Templates/Stores/library/currencies/currencies.d.ts.map +1 -0
  301. package/dist/esm/src/Templates/Stores/library/currencies/currencies.js +1430 -0
  302. package/dist/esm/src/Templates/Stores/library/languages/ar.d.ts +3 -0
  303. package/dist/esm/src/Templates/Stores/library/languages/ar.d.ts.map +1 -0
  304. package/dist/esm/src/Templates/Stores/library/languages/ar.js +484 -0
  305. package/dist/esm/src/Templates/Stores/library/languages/de.d.ts +3 -0
  306. package/dist/esm/src/Templates/Stores/library/languages/de.d.ts.map +1 -0
  307. package/dist/esm/src/Templates/Stores/library/languages/de.js +484 -0
  308. package/dist/esm/src/Templates/Stores/library/languages/en.d.ts.map +1 -1
  309. package/dist/esm/src/Templates/Stores/library/languages/en.js +1 -0
  310. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  311. package/dist/esm/src/Templates/Stores/library/languages/es.js +102 -526
  312. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  313. package/dist/esm/src/Templates/Stores/library/languages/fr.js +105 -527
  314. package/dist/esm/src/Templates/Stores/library/languages/hi.d.ts +3 -0
  315. package/dist/esm/src/Templates/Stores/library/languages/hi.d.ts.map +1 -0
  316. package/dist/esm/src/Templates/Stores/library/languages/hi.js +484 -0
  317. package/dist/esm/src/Templates/Stores/library/languages/it.d.ts +3 -0
  318. package/dist/esm/src/Templates/Stores/library/languages/it.d.ts.map +1 -0
  319. package/dist/esm/src/Templates/Stores/library/languages/it.js +484 -0
  320. package/dist/esm/src/Templates/Stores/library/languages/ja.d.ts +3 -0
  321. package/dist/esm/src/Templates/Stores/library/languages/ja.d.ts.map +1 -0
  322. package/dist/esm/src/Templates/Stores/library/languages/ja.js +484 -0
  323. package/dist/esm/src/Templates/Stores/library/languages/ko.d.ts +3 -0
  324. package/dist/esm/src/Templates/Stores/library/languages/ko.d.ts.map +1 -0
  325. package/dist/esm/src/Templates/Stores/library/languages/ko.js +484 -0
  326. package/dist/esm/src/Templates/Stores/library/languages/nl.d.ts +3 -0
  327. package/dist/esm/src/Templates/Stores/library/languages/nl.d.ts.map +1 -0
  328. package/dist/esm/src/Templates/Stores/library/languages/nl.js +484 -0
  329. package/dist/esm/src/Templates/Stores/library/languages/pt.d.ts +3 -0
  330. package/dist/esm/src/Templates/Stores/library/languages/pt.d.ts.map +1 -0
  331. package/dist/esm/src/Templates/Stores/library/languages/pt.js +484 -0
  332. package/dist/esm/src/Templates/Stores/library/languages/ru.d.ts +3 -0
  333. package/dist/esm/src/Templates/Stores/library/languages/ru.d.ts.map +1 -0
  334. package/dist/esm/src/Templates/Stores/library/languages/ru.js +484 -0
  335. package/dist/esm/src/Templates/Stores/library/languages/tr.d.ts +3 -0
  336. package/dist/esm/src/Templates/Stores/library/languages/tr.d.ts.map +1 -0
  337. package/dist/esm/src/Templates/Stores/library/languages/tr.js +484 -0
  338. package/dist/esm/src/Templates/Stores/library/languages/vi.d.ts +3 -0
  339. package/dist/esm/src/Templates/Stores/library/languages/vi.d.ts.map +1 -0
  340. package/dist/esm/src/Templates/Stores/library/languages/vi.js +484 -0
  341. package/dist/esm/src/Templates/Stores/library/languages/zh.d.ts +3 -0
  342. package/dist/esm/src/Templates/Stores/library/languages/zh.d.ts.map +1 -0
  343. package/dist/esm/src/Templates/Stores/library/languages/zh.js +484 -0
  344. package/dist/esm/src/Templates/index.d.ts +1 -1
  345. package/dist/esm/src/Templates/index.d.ts.map +1 -1
  346. package/dist/esm/src/Templates/index.js +1 -1
  347. package/dist/esm/src/create/createAutocompleteController.js +7 -1
  348. package/dist/esm/src/create/createRecommendationController.js +1 -0
  349. package/dist/esm/src/create/createSearchController.js +1 -0
  350. package/dist/esm/src/create/index.d.ts +0 -1
  351. package/dist/esm/src/create/index.d.ts.map +1 -1
  352. package/dist/esm/src/create/index.js +0 -1
  353. package/dist/esm/src/index.d.ts +1 -1
  354. package/dist/esm/src/index.d.ts.map +1 -1
  355. package/dist/esm/src/index.js +1 -1
  356. package/dist/esm/src/setupEvents.d.ts +0 -13
  357. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  358. package/dist/esm/src/setupEvents.js +0 -44
  359. package/dist/esm/src/types.d.ts +10 -14
  360. package/dist/esm/src/types.d.ts.map +1 -1
  361. package/dist/esm/src/utils/index.d.ts +0 -1
  362. package/dist/esm/src/utils/index.d.ts.map +1 -1
  363. package/dist/esm/src/utils/index.js +0 -1
  364. package/eslint/src/index.cjs +5 -0
  365. package/eslint/src/validate-config.cjs +473 -0
  366. package/package.json +16 -16
  367. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -99
  368. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -17
  369. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -221
  370. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -17
  371. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -209
  372. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -17
  373. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -258
  374. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -282
  375. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -173
  376. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -17
  377. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -577
  378. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -17
  379. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +0 -252
  380. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -113
  381. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -107
  382. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -17
  383. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +0 -621
  384. package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +0 -105
  385. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -104
  386. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -161
  387. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -166
  388. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -369
  389. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -130
  390. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -218
  391. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -123
  392. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -173
  393. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -149
  394. package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -60
  395. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -66
  396. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -96
  397. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -113
  398. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -135
  399. package/dist/cjs/components/src/components/Organisms/Chat/index.js +0 -18
  400. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +0 -94
  401. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -11
  402. package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +0 -18
  403. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +0 -47
  404. package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +0 -47
  405. package/dist/cjs/components/src/themes/base/components/templates/chat.js +0 -6
  406. package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +0 -6
  407. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +0 -6
  408. package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +0 -6
  409. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +0 -6
  410. package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +0 -6
  411. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +0 -6
  412. package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +0 -6
  413. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +0 -6
  414. package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +0 -6
  415. package/dist/cjs/components/src/themes/themeComponents/chat.js +0 -14
  416. package/dist/cjs/components/src/themes/themeComponents/chatButton.js +0 -9
  417. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +0 -5
  418. package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +0 -5
  419. package/dist/cjs/src/Templates/Stores/library/currencies/aud.js +0 -10
  420. package/dist/cjs/src/Templates/Stores/library/currencies/eur.js +0 -10
  421. package/dist/cjs/src/Templates/Stores/library/currencies/usd.js +0 -10
  422. package/dist/cjs/src/create/createChatController.js +0 -30
  423. package/dist/cjs/src/utils/applyChatTargetInject.js +0 -25
  424. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +0 -17
  425. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +0 -1
  426. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -92
  427. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +0 -2
  428. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +0 -1
  429. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -1
  430. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +0 -30
  431. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +0 -1
  432. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -215
  433. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +0 -2
  434. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +0 -1
  435. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -1
  436. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +0 -19
  437. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +0 -1
  438. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -203
  439. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +0 -2
  440. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +0 -1
  441. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -1
  442. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +0 -36
  443. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +0 -1
  444. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -252
  445. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +0 -2
  446. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +0 -1
  447. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +0 -1
  448. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +0 -38
  449. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +0 -1
  450. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -276
  451. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +0 -2
  452. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +0 -1
  453. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +0 -1
  454. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +0 -19
  455. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +0 -1
  456. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -167
  457. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +0 -2
  458. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +0 -1
  459. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -1
  460. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +0 -38
  461. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +0 -1
  462. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -571
  463. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +0 -2
  464. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +0 -1
  465. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -1
  466. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +0 -35
  467. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +0 -1
  468. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +0 -246
  469. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +0 -2
  470. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +0 -1
  471. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +0 -1
  472. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +0 -24
  473. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +0 -1
  474. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -107
  475. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +0 -2
  476. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +0 -1
  477. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -1
  478. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +0 -16
  479. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +0 -1
  480. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -101
  481. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +0 -2
  482. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +0 -1
  483. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -1
  484. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +0 -41
  485. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +0 -1
  486. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +0 -615
  487. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +0 -76
  488. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +0 -1
  489. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +0 -100
  490. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +0 -26
  491. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +0 -1
  492. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -98
  493. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +0 -13
  494. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +0 -1
  495. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -155
  496. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +0 -19
  497. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +0 -1
  498. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -160
  499. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +0 -18
  500. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +0 -1
  501. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -363
  502. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +0 -11
  503. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +0 -1
  504. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -124
  505. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +0 -30
  506. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +0 -1
  507. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -212
  508. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +0 -13
  509. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +0 -1
  510. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -117
  511. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +0 -19
  512. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +0 -1
  513. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -167
  514. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +0 -14
  515. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +0 -1
  516. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -143
  517. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +0 -15
  518. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +0 -1
  519. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -56
  520. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +0 -32
  521. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +0 -1
  522. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -62
  523. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +0 -40
  524. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +0 -1
  525. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -92
  526. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +0 -43
  527. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +0 -1
  528. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -109
  529. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +0 -26
  530. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +0 -1
  531. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -131
  532. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +0 -3
  533. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +0 -1
  534. package/dist/esm/components/src/components/Organisms/Chat/index.js +0 -2
  535. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +0 -18
  536. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +0 -1
  537. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +0 -88
  538. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +0 -7
  539. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +0 -1
  540. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -8
  541. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +0 -3
  542. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +0 -1
  543. package/dist/esm/components/src/components/Organisms/ChatButton/index.js +0 -2
  544. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +0 -12
  545. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +0 -1
  546. package/dist/esm/components/src/components/Templates/Chat/Chat.js +0 -41
  547. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +0 -2
  548. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +0 -1
  549. package/dist/esm/components/src/components/Templates/Chat/index.js +0 -1
  550. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +0 -13
  551. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +0 -1
  552. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +0 -41
  553. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +0 -2
  554. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +0 -1
  555. package/dist/esm/components/src/components/Templates/ChatButton/index.js +0 -1
  556. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +0 -4
  557. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +0 -1
  558. package/dist/esm/components/src/themes/base/components/templates/chat.js +0 -3
  559. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +0 -4
  560. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +0 -1
  561. package/dist/esm/components/src/themes/base/components/templates/chatButton.js +0 -3
  562. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +0 -4
  563. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +0 -1
  564. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +0 -3
  565. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +0 -4
  566. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +0 -1
  567. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +0 -3
  568. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +0 -4
  569. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +0 -1
  570. package/dist/esm/components/src/themes/pike/components/templates/chat.js +0 -3
  571. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +0 -4
  572. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +0 -1
  573. package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +0 -3
  574. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +0 -4
  575. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +0 -1
  576. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +0 -3
  577. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +0 -4
  578. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +0 -1
  579. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +0 -3
  580. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +0 -4
  581. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +0 -1
  582. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +0 -3
  583. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +0 -4
  584. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +0 -1
  585. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +0 -3
  586. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +0 -4
  587. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +0 -1
  588. package/dist/esm/components/src/themes/themeComponents/chat.js +0 -11
  589. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +0 -4
  590. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +0 -1
  591. package/dist/esm/components/src/themes/themeComponents/chatButton.js +0 -6
  592. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +0 -2
  593. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +0 -1
  594. package/dist/esm/src/Templates/Stores/library/components/Chat.js +0 -1
  595. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +0 -2
  596. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +0 -1
  597. package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +0 -1
  598. package/dist/esm/src/Templates/Stores/library/currencies/aud.d.ts +0 -8
  599. package/dist/esm/src/Templates/Stores/library/currencies/aud.d.ts.map +0 -1
  600. package/dist/esm/src/Templates/Stores/library/currencies/aud.js +0 -7
  601. package/dist/esm/src/Templates/Stores/library/currencies/eur.d.ts +0 -8
  602. package/dist/esm/src/Templates/Stores/library/currencies/eur.d.ts.map +0 -1
  603. package/dist/esm/src/Templates/Stores/library/currencies/eur.js +0 -7
  604. package/dist/esm/src/Templates/Stores/library/currencies/usd.d.ts +0 -8
  605. package/dist/esm/src/Templates/Stores/library/currencies/usd.d.ts.map +0 -1
  606. package/dist/esm/src/Templates/Stores/library/currencies/usd.js +0 -7
  607. package/dist/esm/src/create/createChatController.d.ts +0 -5
  608. package/dist/esm/src/create/createChatController.d.ts.map +0 -1
  609. package/dist/esm/src/create/createChatController.js +0 -28
  610. package/dist/esm/src/utils/applyChatTargetInject.d.ts +0 -3
  611. package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +0 -1
  612. package/dist/esm/src/utils/applyChatTargetInject.js +0 -22
@@ -45,20 +45,6 @@ class Snapify {
45
45
  cntrlr.init();
46
46
  return cntrlr;
47
47
  }
48
- static chat(config) {
49
- const id = config.id;
50
- if (controllers[id]) {
51
- return controllers[id];
52
- }
53
- const cntrlr = (controllers[id] = createChatController({ client, controller: config }));
54
- cntrlr.on('afterStore', async ({ controller }, next) => {
55
- controller.log.debug('controller', controller);
56
- controller.log.debug('store', controller.store.toJSON());
57
- await next();
58
- });
59
- cntrlr.init();
60
- return cntrlr;
61
- }
62
48
  static search(config) {
63
49
  const id = config.id;
64
50
  if (controllers[id]) {
@@ -101,19 +87,6 @@ function createRecommendationController(config) {
101
87
  });
102
88
  return cntrlr;
103
89
  }
104
- function createChatController(config) {
105
- const urlManager = new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(), snap_url_manager_1.reactLinker).detach(true);
106
- const cntrlr = new snap_controller_1.ChatController(config.controller, {
107
- client: new snap_client_1.Client(config.client.globals, config.client.config),
108
- store: new snap_store_mobx_1.ChatStore({ ...config.controller, siteId: config.client.globals.siteId }, { urlManager }),
109
- urlManager,
110
- eventManager: new snap_event_manager_1.EventManager(),
111
- profiler: new snap_profiler_1.Profiler(),
112
- logger: new snap_logger_1.Logger(),
113
- tracker: new snap_tracker_1.Tracker(config.client.globals),
114
- });
115
- return cntrlr;
116
- }
117
90
  function createAutocompleteController(config) {
118
91
  const urlManager = new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(), snap_url_manager_1.reactLinker).detach();
119
92
  const cntrlr = new snap_controller_1.AutocompleteController(config.controller, {
@@ -47,6 +47,7 @@ class RecommendationInstantiator {
47
47
  this.client = services?.client || new snap_client_1.Client(this.config.client.globals, this.config.client.config);
48
48
  this.tracker = services?.tracker || new snap_tracker_1.Tracker(this.config.client.globals);
49
49
  this.logger = services?.logger || new snap_logger_1.Logger({ prefix: 'RecommendationInstantiator ', mode: this.mode });
50
+ this.quickviewManager = services?.quickviewManager;
50
51
  const profileCount = {};
51
52
  // script block targeter for "grouped" and "legacy" blocks
52
53
  this.targeter = new snap_toolbox_1.DomTargeter([
@@ -255,7 +256,7 @@ async function readyTheController(instance, services, targetElem, context, profi
255
256
  controller: controllerConfig,
256
257
  context,
257
258
  mode: instance.config.mode,
258
- }, { client: instance.client, tracker: instance.tracker });
259
+ }, { client: instance.client, tracker: instance.tracker, quickviewManager: instance.quickviewManager });
259
260
  // mark element with controller id so cleanupStaleControllers knows it's active
260
261
  if (targetElem) {
261
262
  targetElem.setAttribute('ss-controller-id', controller.id);
@@ -101,9 +101,6 @@ class Snap {
101
101
  case snap_controller_1.ControllerTypes.recommendation:
102
102
  importPromise = import('./create/createRecommendationController');
103
103
  break;
104
- case snap_controller_1.ControllerTypes.chat:
105
- importPromise = import('./create/createChatController');
106
- break;
107
104
  case snap_controller_1.ControllerTypes.search:
108
105
  default:
109
106
  importPromise = import('./create/createSearchController');
@@ -126,6 +123,7 @@ class Snap {
126
123
  profiler: services?.profiler,
127
124
  logger: services?.logger,
128
125
  tracker: services?.tracker || this.tracker,
126
+ quickviewManager: services?.quickviewManager || this.quickviewManager,
129
127
  });
130
128
  }
131
129
  if (callback) {
@@ -457,6 +455,44 @@ class Snap {
457
455
  id: this.context.shopper.id,
458
456
  });
459
457
  }
458
+ // Create the quickview manager. Synchronous and ahead of controller creation below, so it can
459
+ // be passed to every controller as the 'quickview' service. The quickview *components* are
460
+ // still loaded on demand by the targeters.
461
+ if (this.config.quickview) {
462
+ try {
463
+ const { config: quickviewConfig, services: quickviewServices, targeters } = this.config.quickview;
464
+ this.quickviewManager = new snap_controller_1.QuickviewManager({
465
+ store: quickviewServices?.store,
466
+ }, quickviewConfig);
467
+ targeters?.forEach((target, index) => {
468
+ if (!target.selector) {
469
+ throw new Error(`Quickview target at index ${index} missing selector value (string).`);
470
+ }
471
+ if (!target.component) {
472
+ throw new Error(`Quickview target at index ${index} missing component value (Component).`);
473
+ }
474
+ new snap_toolbox_1.DomTargeter([{ ...target }], async (target, elem, originalElem) => {
475
+ const onTarget = target.onTarget;
476
+ onTarget && (await onTarget(target, elem, originalElem));
477
+ try {
478
+ // defer the component chunk until the first open
479
+ await (0, mobx_1.when)(() => Boolean(this.quickviewManager?.store.isOpen));
480
+ const Component = await target.component();
481
+ setTimeout(() => {
482
+ (0, preact_1.render)((0, jsx_runtime_1.jsx)(Component, { quickviewManager: this.quickviewManager, snap: this, ...target.props }), elem);
483
+ });
484
+ }
485
+ catch (err) {
486
+ this.logger.error(err);
487
+ this.logger.error(COMPONENT_ERROR, target);
488
+ }
489
+ });
490
+ });
491
+ }
492
+ catch (err) {
493
+ this.logger.error(`Failed to create the Quickview Manager.`, err);
494
+ }
495
+ }
460
496
  // create controllers
461
497
  Object.keys(this.config?.controllers || {}).forEach((type) => {
462
498
  switch (type) {
@@ -480,6 +516,7 @@ class Snap {
480
516
  profiler: controller.services?.profiler,
481
517
  logger: controller.services?.logger,
482
518
  tracker: controller.services?.tracker || this.tracker,
519
+ quickviewManager: controller.services?.quickviewManager || this.quickviewManager,
483
520
  });
484
521
  window.athos.controller = window.athos.controller || {};
485
522
  window.athos.controller[cntrlr.config.id] = this.controllers[cntrlr.config.id] = cntrlr;
@@ -547,73 +584,6 @@ class Snap {
547
584
  });
548
585
  break;
549
586
  }
550
- case 'chat': {
551
- this.config.controllers[type].forEach((controller, index) => {
552
- if (typeof this._controllerPromises[controller.config.id] != 'undefined') {
553
- this.logger.error(`Controller with id '${controller.config.id}' is already defined`);
554
- return;
555
- }
556
- this._controllerPromises[controller.config.id] = new Promise(async (resolve) => {
557
- try {
558
- // `_initialized` is only set after the awaited init fires, so two chat
559
- // targeters would otherwise both re-run the init middleware
560
- let initialized = false;
561
- const targetFunction = async (target, elem, originalElem) => {
562
- const onTarget = target.onTarget;
563
- onTarget && (await onTarget(target, elem, originalElem));
564
- try {
565
- const importPromises = [];
566
- // dynamically import the component
567
- importPromises.push(target.component());
568
- const importResolutions = await Promise.all(importPromises);
569
- const Component = importResolutions[0];
570
- setTimeout(() => {
571
- (0, preact_1.render)((0, jsx_runtime_1.jsx)(Component, { controller: this.controllers[controller.config.id], snap: this, ...target.props }), elem);
572
- });
573
- }
574
- catch (err) {
575
- this.logger.error(err);
576
- this.logger.error(COMPONENT_ERROR, target);
577
- }
578
- };
579
- if (!controller?.targeters || controller?.targeters.length === 0) {
580
- const cntrlr = await this._createController(snap_controller_1.ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
581
- if (cntrlr)
582
- resolve(cntrlr);
583
- });
584
- if (!cntrlr.initialized)
585
- cntrlr.init();
586
- }
587
- controller?.targeters?.forEach((target, target_index) => {
588
- if (!target.selector) {
589
- throw new Error(`Targets at index ${target_index} missing selector value (string).`);
590
- }
591
- if (!target.component) {
592
- throw new Error(`Targets at index ${target_index} missing component value (Component).`);
593
- }
594
- target = (0, utils_1.applyChatTargetInject)(target);
595
- const targeter = new snap_toolbox_1.DomTargeter([{ ...target }], async (target, elem, originalElem) => {
596
- const cntrlr = await this._createController(snap_controller_1.ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
597
- if (cntrlr)
598
- resolve(cntrlr);
599
- });
600
- if (!initialized) {
601
- initialized = true;
602
- if (!cntrlr.initialized)
603
- cntrlr.init();
604
- }
605
- targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
606
- cntrlr.addTargeter(targeter);
607
- });
608
- });
609
- }
610
- catch (err) {
611
- this.logger.error(`Failed to instantiate ${type} controller at index ${index}.`, err);
612
- }
613
- });
614
- });
615
- break;
616
- }
617
587
  case 'autocomplete': {
618
588
  this.config.controllers[type].forEach((controller, index) => {
619
589
  if (typeof this._controllerPromises[controller.config.id] != 'undefined') {
@@ -828,6 +798,7 @@ class Snap {
828
798
  tracker: this.tracker,
829
799
  logger: this.logger,
830
800
  snap: this,
801
+ quickviewManager: this.quickviewManager,
831
802
  }, this.context);
832
803
  });
833
804
  }
@@ -3,12 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createChatTargeters = exports.createSearchTargeters = exports.SnapTemplates = exports.applyAutomaticThemeOverrides = exports.DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = exports.DEFAULT_FEATURES = exports.TEMPLATE_EDITOR_UI_PARAM = exports.TEMPLATE_EDITOR_COOKIE = void 0;
6
+ exports.createSearchTargeters = exports.SnapTemplates = exports.applyAutomaticThemeOverrides = exports.TAB_PREFIXED_PARAMS = exports.DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = exports.DEFAULT_FEATURES = exports.TEMPLATE_EDITOR_UI_PARAM = exports.TEMPLATE_EDITOR_COOKIE = void 0;
7
+ exports.validateTemplatesConfig = validateTemplatesConfig;
8
+ exports.validateTemplatesConfigUnlocked = validateTemplatesConfigUnlocked;
7
9
  exports.mapBreakpoints = mapBreakpoints;
8
10
  exports.createAutocompleteTargeters = createAutocompleteTargeters;
11
+ exports.createQuickviewTargeters = createQuickviewTargeters;
9
12
  exports.createRecommendationComponentMapping = createRecommendationComponentMapping;
10
13
  exports.createSnapConfig = createSnapConfig;
11
14
  exports.createPlugins = createPlugins;
15
+ exports.createTabPlugins = createTabPlugins;
12
16
  const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
13
17
  const preact_1 = require("preact");
14
18
  const deepmerge_1 = __importDefault(require("deepmerge"));
@@ -16,16 +20,28 @@ const Snap_1 = require("../Snap");
16
20
  const TemplateSelect_1 = require("../../components/src/components/Atoms/TemplateSelect");
17
21
  const snap_toolbox_1 = require("@athoscommerce/snap-toolbox");
18
22
  const TemplateStore_1 = require("./Stores/TemplateStore");
23
+ const TargetStore_1 = require("./Stores/TargetStore");
24
+ const TabManagerStore_1 = require("./Stores/TabManagerStore");
25
+ const snap_client_1 = require("@athoscommerce/snap-client");
26
+ const snap_tracker_1 = require("@athoscommerce/snap-tracker");
19
27
  const shopify_1 = require("@athoscommerce/snap-platforms/shopify");
20
28
  const utils_1 = require("../utils");
21
29
  exports.TEMPLATE_EDITOR_COOKIE = 'athosEditor';
22
30
  exports.TEMPLATE_EDITOR_UI_PARAM = 'athos-editor';
31
+ function validateTemplatesConfig(config) {
32
+ return config;
33
+ }
34
+ function validateTemplatesConfigUnlocked(config) {
35
+ return config;
36
+ }
23
37
  exports.DEFAULT_FEATURES = {};
24
38
  exports.DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = {
25
39
  trending: {
26
40
  limit: 5,
27
41
  },
28
42
  };
43
+ // tabs namespace their catalog specific url state - the query is shared so a single search spans every tab
44
+ exports.TAB_PREFIXED_PARAMS = ['filter', 'sort', 'pageSize', 'rq', 'page'];
29
45
  const hasShopifyMarketsPluginConfig = (templateConfig) => {
30
46
  const pluginConfigs = [
31
47
  templateConfig.plugins?.shopify?.markets,
@@ -105,8 +121,8 @@ class SnapTemplates extends Snap_1.Snap {
105
121
  // attach to the window object
106
122
  window.athos = window.athos || {};
107
123
  window.athos.editor = templateEditorStore;
108
- const searchController = this.controllers['search'];
109
- const autocompleteController = this.controllers['autocomplete'];
124
+ const searchController = this.getTemplateController('search');
125
+ const autocompleteController = this.getTemplateController('autocomplete');
110
126
  if (searchController) {
111
127
  templateEditorStore.registerController(searchController);
112
128
  }
@@ -152,6 +168,16 @@ class SnapTemplates extends Snap_1.Snap {
152
168
  }
153
169
  });
154
170
  }
171
+ // when tabs are configured there is no controller using the `search` / `autocomplete` id -
172
+ // the default tab controller is used instead
173
+ getTemplateController(type) {
174
+ const tabs = this.templates.config[type]?.tabs;
175
+ if (tabs?.length) {
176
+ const defaultTab = tabs.filter((tab) => tab.default)[0] || tabs[0];
177
+ return this.controllers[defaultTab.id];
178
+ }
179
+ return this.controllers[type];
180
+ }
155
181
  }
156
182
  exports.SnapTemplates = SnapTemplates;
157
183
  function mapBreakpoints(breakpointsKeys, breakpointSettings) {
@@ -194,36 +220,6 @@ const createSearchTargeters = (templateConfig, templatesStore) => {
194
220
  });
195
221
  };
196
222
  exports.createSearchTargeters = createSearchTargeters;
197
- const createChatTargeters = (templateConfig, templatesStore) => {
198
- // initial target configs
199
- const targetConfigs = templateConfig.chat?.targets || [];
200
- let mergedConfigs;
201
- if (templatesStore.settings.editMode) {
202
- const overrideConfigs = (templatesStore.storage.get('overrides.targets.chat') || []);
203
- mergedConfigs = (0, deepmerge_1.default)(targetConfigs, overrideConfigs, { arrayMerge: utils_1.combineMerge });
204
- }
205
- else {
206
- mergedConfigs = targetConfigs;
207
- }
208
- return mergedConfigs.map((targetConfig) => {
209
- const target = templatesStore.addTarget({ ...targetConfig, type: 'chat' });
210
- const targeter = {
211
- selector: targetConfig.selector,
212
- // inline selectors (e.g. a nav slot) may render after DOMContentLoaded;
213
- // re-injection at already-targeted elements is prevented by DomTargeter
214
- autoRetarget: true,
215
- component: async () => {
216
- const componentImportPromises = [];
217
- componentImportPromises.push(templatesStore.library.import.component.chat[targetConfig.component]());
218
- await Promise.all(componentImportPromises);
219
- return TemplateSelect_1.TemplateSelect;
220
- },
221
- props: { target, templatesStore },
222
- };
223
- return (0, utils_1.applyChatTargetInject)(targeter);
224
- });
225
- };
226
- exports.createChatTargeters = createChatTargeters;
227
223
  function createAutocompleteTargeters(templateConfig, templatesStore) {
228
224
  // initial target configs
229
225
  const targetConfigs = templateConfig.autocomplete?.targets || [];
@@ -259,6 +255,36 @@ function createAutocompleteTargeters(templateConfig, templatesStore) {
259
255
  return targeter;
260
256
  });
261
257
  }
258
+ function createQuickviewTargeters(templateConfig, templatesStore) {
259
+ return (templateConfig.quickview?.targets?.map((targetConfig, index) => {
260
+ // Quickview isn't part of the editable targets registry (it's appended to <body> and driven by the
261
+ // QuickviewManager), so build a TargetStore directly rather than via addTarget. This lets the
262
+ // component render through TemplateSelect — the same wrapper used by search/autocomplete — which
263
+ // provides the global templates ThemeProvider. Without it the quickview renders outside the
264
+ // templates theme, falling back to production-mode prop merging where theme overrides (e.g.
265
+ // `quickviewLayout`) are silently dropped.
266
+ const target = new TargetStore_1.TargetStore({
267
+ target: { type: 'quickview', selector: targetConfig.selector || 'body', component: targetConfig.component, index },
268
+ });
269
+ const targeter = {
270
+ selector: targetConfig.selector || 'body',
271
+ inject: {
272
+ action: 'append',
273
+ element: () => {
274
+ const el = document.createElement('div');
275
+ el.id = index === 0 ? 'athos-quickview' : `athos-quickview-${index}`;
276
+ return el;
277
+ },
278
+ },
279
+ component: async () => {
280
+ await templatesStore.library.import.component.quickview[targetConfig.component]();
281
+ return TemplateSelect_1.TemplateSelect;
282
+ },
283
+ props: { target, templatesStore },
284
+ };
285
+ return targeter;
286
+ }) || []);
287
+ }
262
288
  function createRecommendationComponentMapping(templateConfig, templatesStore) {
263
289
  // TODO: throw a warning if keys match inside each recommendation type
264
290
  return Object.keys(templateConfig.recommendation || {})
@@ -307,10 +333,19 @@ function createRecommendationComponentMapping(templateConfig, templatesStore) {
307
333
  return mapping;
308
334
  }, {});
309
335
  }
336
+ function createTabServices(snapConfig, siteId) {
337
+ const tabGlobals = {
338
+ ...snapConfig.client?.globals,
339
+ siteId,
340
+ };
341
+ return {
342
+ client: new snap_client_1.Client(tabGlobals, snapConfig.client?.config),
343
+ tracker: new snap_tracker_1.Tracker(tabGlobals, snapConfig.tracker?.config),
344
+ };
345
+ }
310
346
  function createSnapConfig(templateConfig, templatesStore) {
311
347
  const initiatorPrefix = window?.athos?.managed ? `managed/` : '';
312
348
  const snapConfig = {
313
- mode: templateConfig.config?.mode,
314
349
  features: templateConfig.features || exports.DEFAULT_FEATURES,
315
350
  client: {
316
351
  globals: {},
@@ -338,37 +373,63 @@ function createSnapConfig(templateConfig, templatesStore) {
338
373
  }
339
374
  /* SEARCH CONTROLLER */
340
375
  if (templateConfig.search && snapConfig.controllers) {
341
- const searchControllerConfig = {
342
- config: {
343
- id: 'search',
344
- plugins: createPlugins(templateConfig, templatesStore, 'search'),
345
- globals: templateConfig.search.globals || {},
346
- settings: templateConfig.search.settings || {},
347
- },
348
- targeters: (0, exports.createSearchTargeters)(templateConfig, templatesStore),
349
- };
350
- // merge the responsive settings if there are any
351
- // if (templateConfig.config.theme.variables?.breakpoints && templateConfig.search.breakpointSettings) {
352
- // const mappedBreakpoints = mapBreakpoints(templateConfig.config.theme.variables.breakpoints, templateConfig.search.breakpointSettings || []);
353
- // const breakpointSettings = getDisplaySettings(mappedBreakpoints) as SearchStoreConfigSettings;
354
- // searchControllerConfig.config.settings = deepmerge(searchControllerConfig.config.settings, breakpointSettings);
355
- // }
356
- snapConfig.controllers.search = [searchControllerConfig];
376
+ const searchTabs = templateConfig.search.tabs || [];
377
+ const searchTargeters = (0, exports.createSearchTargeters)(templateConfig, templatesStore);
378
+ const searchSettings = templateConfig.search.settings || {};
379
+ const searchGlobals = templateConfig.search.globals || {};
380
+ snapConfig.controllers.search = [];
381
+ if (!searchTabs.length) {
382
+ snapConfig.controllers.search.push({
383
+ config: {
384
+ id: 'search',
385
+ plugins: createPlugins(templateConfig, templatesStore, 'search'),
386
+ globals: searchGlobals,
387
+ settings: searchSettings,
388
+ },
389
+ targeters: searchTargeters,
390
+ });
391
+ }
392
+ else {
393
+ // when tabs are configured, the tab controllers do all of the searching - an additional
394
+ // non-tab controller would only produce a redundant API request, so the targeters are
395
+ // attached to the active tab controller instead. targeting kicks off a search before the
396
+ // TabManagerStore exists to gate redirects, so this must be the tab the shopper is viewing
397
+ const targetedTab = (0, TabManagerStore_1.getActiveTabConfig)(searchTabs) || searchTabs[0];
398
+ searchTabs.forEach((tab) => {
399
+ const tabParam = tab.param;
400
+ snapConfig.controllers.search.push({
401
+ url: {
402
+ settings: {
403
+ // the query is shared across tabs - only per-catalog state is namespaced
404
+ ...(tabParam ? { corePrefix: tabParam, corePrefixParams: exports.TAB_PREFIXED_PARAMS } : {}),
405
+ },
406
+ parameters: {
407
+ custom: {
408
+ [TabManagerStore_1.TAB_ID_DEFAULT_PARAM]: { type: 'query' },
409
+ },
410
+ },
411
+ },
412
+ config: {
413
+ id: tab.id,
414
+ plugins: tab.plugins ? createTabPlugins(tab.plugins, templatesStore) : createPlugins(templateConfig, templatesStore, 'search'),
415
+ settings: {
416
+ ...(0, deepmerge_1.default)(searchSettings, tab.settings || {}),
417
+ },
418
+ globals: (0, deepmerge_1.default)(searchGlobals, tab.globals || {}),
419
+ },
420
+ services: createTabServices(snapConfig, tab.siteId),
421
+ ...(tab === targetedTab ? { targeters: searchTargeters } : {}),
422
+ });
423
+ });
424
+ }
357
425
  }
358
426
  /* AUTOCOMPLETE CONTROLLER */
359
427
  if (templateConfig.autocomplete && snapConfig.controllers) {
360
428
  const autocompleteControllerSettings = (0, deepmerge_1.default)(exports.DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS, templateConfig.autocomplete.settings || {});
361
- const autocompleteControllerConfig = {
362
- config: {
363
- id: 'autocomplete',
364
- plugins: createPlugins(templateConfig, templatesStore, 'autocomplete'),
365
- selector: templateConfig.autocomplete.targets.map((target) => target.inputSelector).join(', '),
366
- action: templateConfig.autocomplete.action || '',
367
- globals: templateConfig.autocomplete.globals || {},
368
- settings: autocompleteControllerSettings,
369
- },
370
- targeters: createAutocompleteTargeters(templateConfig, templatesStore),
371
- };
429
+ const autocompleteSelector = templateConfig.autocomplete.targets.map((target) => target.inputSelector).join(', ');
430
+ const autocompleteTabs = templateConfig.autocomplete.tabs || [];
431
+ const autocompleteGlobals = templateConfig.autocomplete.globals || {};
432
+ const autocompleteTargeters = createAutocompleteTargeters(templateConfig, templatesStore);
372
433
  // merge the responsive settings if there are any
373
434
  // if (templateConfig.config.theme.variables?.breakpoints && templateConfig.autocomplete.breakpointSettings) {
374
435
  // const mappedBreakpoints = mapBreakpoints(
@@ -376,9 +437,61 @@ function createSnapConfig(templateConfig, templatesStore) {
376
437
  // templateConfig.autocomplete.breakpointSettings || []
377
438
  // );
378
439
  // const breakpointSettings = getDisplaySettings(mappedBreakpoints) as AutocompleteStoreConfigSettings;
379
- // autocompleteControllerConfig.config.settings = deepmerge(autocompleteControllerConfig.config.settings, breakpointSettings);
440
+ // autocompleteControllerSettings = deepmerge(autocompleteControllerSettings, breakpointSettings);
380
441
  // }
381
- snapConfig.controllers.autocomplete = [autocompleteControllerConfig];
442
+ snapConfig.controllers.autocomplete = [];
443
+ if (!autocompleteTabs.length) {
444
+ snapConfig.controllers.autocomplete.push({
445
+ config: {
446
+ id: 'autocomplete',
447
+ plugins: createPlugins(templateConfig, templatesStore, 'autocomplete'),
448
+ selector: autocompleteSelector,
449
+ action: templateConfig.autocomplete.action || '',
450
+ globals: autocompleteGlobals,
451
+ settings: autocompleteControllerSettings,
452
+ },
453
+ targeters: autocompleteTargeters,
454
+ });
455
+ }
456
+ else {
457
+ // when tabs are configured, every tab controller binds to the same input - an additional
458
+ // non-tab controller would only produce redundant API requests, so the targeters are
459
+ // attached to the default tab controller instead
460
+ const defaultTab = autocompleteTabs.filter((tab) => tab.default)[0] || autocompleteTabs[0];
461
+ autocompleteTabs.forEach((tab) => {
462
+ const tabParam = tab.param;
463
+ snapConfig.controllers.autocomplete.push({
464
+ url: {
465
+ settings: {
466
+ // the query is shared across tabs - only per-catalog state is namespaced
467
+ ...(tabParam ? { corePrefix: tabParam, corePrefixParams: exports.TAB_PREFIXED_PARAMS } : {}),
468
+ },
469
+ parameters: {
470
+ custom: {
471
+ [TabManagerStore_1.TAB_ID_DEFAULT_PARAM]: { type: 'query' },
472
+ },
473
+ },
474
+ // every url the autocomplete builds must carry the tab it belongs to
475
+ globals: [
476
+ {
477
+ param: TabManagerStore_1.TAB_ID_DEFAULT_PARAM,
478
+ value: tab.param,
479
+ },
480
+ ],
481
+ },
482
+ config: {
483
+ id: tab.id,
484
+ plugins: tab.plugins ? createTabPlugins(tab.plugins, templatesStore) : createPlugins(templateConfig, templatesStore, 'autocomplete'),
485
+ selector: autocompleteSelector,
486
+ action: templateConfig.autocomplete.action || '',
487
+ settings: (0, deepmerge_1.default)(autocompleteControllerSettings, tab.settings || {}),
488
+ globals: (0, deepmerge_1.default)(autocompleteGlobals, tab.globals || {}),
489
+ },
490
+ services: createTabServices(snapConfig, tab.siteId),
491
+ ...(tab === defaultTab ? { targeters: autocompleteTargeters } : {}),
492
+ });
493
+ });
494
+ }
382
495
  }
383
496
  /* RECOMMENDATION INSTANTIATOR */
384
497
  const originalRecsConfig = templateConfig.recommendation || {};
@@ -433,20 +546,16 @@ function createSnapConfig(templateConfig, templatesStore) {
433
546
  // }
434
547
  snapConfig.instantiators.recommendation = recommendationInstantiatorConfig;
435
548
  }
436
- /* CHAT CONTROLLER */
437
- if (templateConfig.chat && snapConfig.controllers) {
438
- const chatControllerConfig = {
549
+ /* QUICKVIEW MANAGER — injects quickview component(s) into <body> when enabled */
550
+ if (templateConfig.quickview) {
551
+ const quickviewSettings = templateConfig.quickview?.settings;
552
+ snapConfig.quickview = {
439
553
  config: {
440
- id: 'chat',
441
- plugins: createPlugins(templateConfig, templatesStore, 'chat'),
442
- settings: {
443
- languageCode: templatesStore.language,
444
- ...(templateConfig.chat.settings || {}),
445
- },
554
+ id: 'quickview',
555
+ ...(quickviewSettings ? { settings: quickviewSettings } : {}),
446
556
  },
447
- targeters: (0, exports.createChatTargeters)(templateConfig, templatesStore),
557
+ targeters: createQuickviewTargeters(templateConfig, templatesStore),
448
558
  };
449
- snapConfig.controllers.chat = [chatControllerConfig];
450
559
  }
451
560
  return snapConfig;
452
561
  }
@@ -456,14 +565,10 @@ function createPlugins(templateConfig, templatesStore, controllerType) {
456
565
  if (controllerType) {
457
566
  controllerConfig = templateConfig[controllerType] || {};
458
567
  }
459
- // backgroundFilters writes `config.globals.filters`, which the chat endpoint has no
460
- // field for — chat carries background filters via `settings.bgFilters` instead
461
- if (controllerType !== 'chat') {
462
- plugins.push([
463
- templatesStore.library.import.plugins.common.backgroundFilters,
464
- (0, deepmerge_1.default)(templateConfig.plugins?.common?.backgroundFilters || {}, controllerConfig?.plugins?.common?.backgroundFilters || {}),
465
- ]);
466
- }
568
+ plugins.push([
569
+ templatesStore.library.import.plugins.common.backgroundFilters,
570
+ (0, deepmerge_1.default)(templateConfig.plugins?.common?.backgroundFilters || {}, controllerConfig?.plugins?.common?.backgroundFilters || {}),
571
+ ]);
467
572
  plugins.push([
468
573
  templatesStore.library.import.plugins.common.scrollToTop,
469
574
  (0, deepmerge_1.default)(templateConfig.plugins?.common?.scrollToTop || {}, controllerConfig?.plugins?.common?.scrollToTop || {}),
@@ -538,3 +643,10 @@ function createPlugins(templateConfig, templatesStore, controllerType) {
538
643
  });
539
644
  return plugins;
540
645
  }
646
+ // tab level plugins do not inherit global or controller level plugins - only the plugins configured on the tab are used
647
+ function createTabPlugins(tabPlugins, templatesStore) {
648
+ const plugins = createPlugins({ plugins: tabPlugins }, templatesStore);
649
+ const customPluginFunctions = Object.values(tabPlugins.custom || {}).map((customPlugin) => customPlugin.function);
650
+ // built-in plugins are always created - keep only the ones that were given configuration on the tab
651
+ return plugins.filter((plugin) => customPluginFunctions.includes(plugin[0]) || Object.keys(plugin[1] || {}).length > 0);
652
+ }