@athoscommerce/snap-preact 1.10.1-beta.150 → 1.11.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 (420) hide show
  1. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +11 -56
  2. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +0 -13
  3. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +5 -1
  4. package/dist/cjs/components/src/components/Molecules/Grid/Grid.js +9 -13
  5. package/dist/cjs/components/src/components/Molecules/List/List.js +9 -13
  6. package/dist/cjs/components/src/components/Molecules/RadioList/RadioList.js +9 -13
  7. package/dist/cjs/components/src/components/Molecules/Result/Result.js +6 -53
  8. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  9. package/dist/cjs/components/src/components/Molecules/Select/Select.js +9 -13
  10. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +28 -24
  11. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +1 -5
  12. package/dist/cjs/components/src/components/Molecules/TabSelection/TabSelection.js +108 -0
  13. package/dist/cjs/components/src/components/{Templates/ChatButton → Molecules/TabSelection}/index.js +1 -1
  14. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +1 -1
  15. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +17 -2
  16. package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +5 -1
  17. package/dist/cjs/components/src/components/Organisms/Layout/Layout.js +15 -1
  18. package/dist/cjs/components/src/components/Organisms/Results/Results.js +4 -4
  19. package/dist/cjs/components/src/components/Organisms/Toolbar/Toolbar.js +2 -1
  20. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +10 -8
  21. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +10 -8
  22. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +10 -8
  23. package/dist/cjs/components/src/components/Templates/Search/Search.js +10 -3
  24. package/dist/cjs/components/src/hooks/useAcRenderedInput.js +14 -3
  25. package/dist/cjs/components/src/hooks/useCreateController.js +24 -3
  26. package/dist/cjs/components/src/index.js +2 -17
  27. package/dist/cjs/components/src/providers/themeComponents.js +1 -20
  28. package/dist/cjs/components/src/setupTests.js +0 -14
  29. package/dist/cjs/components/src/themes/base/components/templates/index.js +0 -10
  30. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +0 -10
  31. package/dist/cjs/components/src/themes/pike/components/templates/index.js +0 -10
  32. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +0 -10
  33. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +0 -10
  34. package/dist/cjs/components/src/utilities/Colour/Colour.js +0 -41
  35. package/dist/cjs/components/src/utilities/index.js +1 -0
  36. package/dist/cjs/components/src/utilities/selectionKey.js +12 -0
  37. package/dist/cjs/components/src/utilities/snapify.js +0 -27
  38. package/dist/cjs/src/Snap.js +0 -70
  39. package/dist/cjs/src/Templates/SnapTemplates.js +147 -86
  40. package/dist/cjs/src/Templates/Stores/LibraryStore.js +3 -51
  41. package/dist/cjs/src/Templates/Stores/TabManagerStore.js +151 -0
  42. package/dist/cjs/src/Templates/Stores/TemplateStore.js +23 -2
  43. package/dist/cjs/src/Templates/Stores/library/languages/es.js +20 -487
  44. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +20 -487
  45. package/dist/cjs/src/create/createAutocompleteController.js +6 -1
  46. package/dist/cjs/src/create/index.js +1 -3
  47. package/dist/cjs/src/setupEvents.js +0 -44
  48. package/dist/cjs/src/utils/index.js +1 -3
  49. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -3
  50. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  51. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -6
  52. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  53. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +12 -57
  54. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +0 -13
  55. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  56. package/dist/esm/components/src/components/Atoms/Icon/paths.js +0 -13
  57. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
  58. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +5 -1
  59. package/dist/esm/components/src/components/Molecules/Grid/Grid.d.ts.map +1 -1
  60. package/dist/esm/components/src/components/Molecules/Grid/Grid.js +10 -14
  61. package/dist/esm/components/src/components/Molecules/List/List.d.ts.map +1 -1
  62. package/dist/esm/components/src/components/Molecules/List/List.js +10 -14
  63. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  64. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  65. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.d.ts.map +1 -1
  66. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.js +10 -14
  67. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +3 -7
  68. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  69. package/dist/esm/components/src/components/Molecules/Result/Result.js +6 -53
  70. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +0 -3
  71. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  72. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  73. package/dist/esm/components/src/components/Molecules/Select/Select.d.ts.map +1 -1
  74. package/dist/esm/components/src/components/Molecules/Select/Select.js +10 -14
  75. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  76. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +29 -25
  77. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  78. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +1 -5
  79. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.d.ts +32 -0
  80. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.d.ts.map +1 -0
  81. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.js +102 -0
  82. package/dist/esm/components/src/components/Molecules/TabSelection/index.d.ts +2 -0
  83. package/dist/esm/components/src/components/Molecules/TabSelection/index.d.ts.map +1 -0
  84. package/dist/esm/components/src/components/Molecules/TabSelection/index.js +1 -0
  85. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
  86. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +1 -1
  87. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts +3 -1
  88. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
  89. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +17 -2
  90. package/dist/esm/components/src/components/Organisms/Facet/Facet.d.ts.map +1 -1
  91. package/dist/esm/components/src/components/Organisms/Facet/Facet.js +5 -1
  92. package/dist/esm/components/src/components/Organisms/Layout/Layout.d.ts +3 -1
  93. package/dist/esm/components/src/components/Organisms/Layout/Layout.d.ts.map +1 -1
  94. package/dist/esm/components/src/components/Organisms/Layout/Layout.js +15 -1
  95. package/dist/esm/components/src/components/Organisms/Results/Results.d.ts.map +1 -1
  96. package/dist/esm/components/src/components/Organisms/Results/Results.js +4 -4
  97. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts +3 -1
  98. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts.map +1 -1
  99. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.js +2 -1
  100. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +2 -0
  101. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  102. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +10 -8
  103. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +2 -0
  104. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  105. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +10 -8
  106. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +2 -0
  107. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  108. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +10 -8
  109. package/dist/esm/components/src/components/Templates/Search/Search.d.ts +2 -0
  110. package/dist/esm/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  111. package/dist/esm/components/src/components/Templates/Search/Search.js +10 -3
  112. package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts +2 -2
  113. package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts.map +1 -1
  114. package/dist/esm/components/src/hooks/useAcRenderedInput.js +15 -4
  115. package/dist/esm/components/src/hooks/useCreateController.d.ts.map +1 -1
  116. package/dist/esm/components/src/hooks/useCreateController.js +24 -3
  117. package/dist/esm/components/src/index.d.ts +1 -14
  118. package/dist/esm/components/src/index.d.ts.map +1 -1
  119. package/dist/esm/components/src/index.js +1 -14
  120. package/dist/esm/components/src/providers/langComponents.d.ts +2 -20
  121. package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
  122. package/dist/esm/components/src/providers/themeComponents.d.ts +41 -209
  123. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  124. package/dist/esm/components/src/providers/themeComponents.js +1 -20
  125. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  126. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  127. package/dist/esm/components/src/setupTests.js +0 -14
  128. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  129. package/dist/esm/components/src/themes/base/components/templates/index.js +0 -10
  130. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  131. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +0 -10
  132. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  133. package/dist/esm/components/src/themes/pike/components/templates/index.js +0 -10
  134. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  135. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +0 -10
  136. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  137. package/dist/esm/components/src/themes/snappy/components/templates/index.js +0 -10
  138. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +0 -15
  139. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  140. package/dist/esm/components/src/utilities/Colour/Colour.js +0 -41
  141. package/dist/esm/components/src/utilities/index.d.ts +1 -0
  142. package/dist/esm/components/src/utilities/index.d.ts.map +1 -1
  143. package/dist/esm/components/src/utilities/index.js +1 -0
  144. package/dist/esm/components/src/utilities/selectionKey.d.ts +3 -0
  145. package/dist/esm/components/src/utilities/selectionKey.d.ts.map +1 -0
  146. package/dist/esm/components/src/utilities/selectionKey.js +9 -0
  147. package/dist/esm/components/src/utilities/snapify.d.ts +2 -3
  148. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  149. package/dist/esm/components/src/utilities/snapify.js +2 -29
  150. package/dist/esm/src/Snap.d.ts +1 -2
  151. package/dist/esm/src/Snap.d.ts.map +1 -1
  152. package/dist/esm/src/Snap.js +1 -71
  153. package/dist/esm/src/Templates/SnapTemplates.d.ts +7 -5
  154. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  155. package/dist/esm/src/Templates/SnapTemplates.js +146 -85
  156. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +2 -43
  157. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  158. package/dist/esm/src/Templates/Stores/LibraryStore.js +3 -51
  159. package/dist/esm/src/Templates/Stores/TabManagerStore.d.ts +29 -0
  160. package/dist/esm/src/Templates/Stores/TabManagerStore.d.ts.map +1 -0
  161. package/dist/esm/src/Templates/Stores/TabManagerStore.js +146 -0
  162. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +28 -22
  163. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  164. package/dist/esm/src/Templates/Stores/TemplateStore.js +23 -2
  165. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  166. package/dist/esm/src/Templates/Stores/library/languages/es.js +20 -487
  167. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  168. package/dist/esm/src/Templates/Stores/library/languages/fr.js +20 -487
  169. package/dist/esm/src/create/createAutocompleteController.js +6 -1
  170. package/dist/esm/src/create/index.d.ts +0 -1
  171. package/dist/esm/src/create/index.d.ts.map +1 -1
  172. package/dist/esm/src/create/index.js +0 -1
  173. package/dist/esm/src/setupEvents.d.ts +0 -13
  174. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  175. package/dist/esm/src/setupEvents.js +0 -44
  176. package/dist/esm/src/types.d.ts +9 -14
  177. package/dist/esm/src/types.d.ts.map +1 -1
  178. package/dist/esm/src/utils/index.d.ts +0 -1
  179. package/dist/esm/src/utils/index.d.ts.map +1 -1
  180. package/dist/esm/src/utils/index.js +0 -1
  181. package/package.json +12 -14
  182. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -99
  183. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -17
  184. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -221
  185. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -17
  186. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -209
  187. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -17
  188. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -258
  189. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +0 -17
  190. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -282
  191. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +0 -17
  192. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -173
  193. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -17
  194. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -577
  195. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -17
  196. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +0 -252
  197. package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +0 -17
  198. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -113
  199. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -17
  200. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -107
  201. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -17
  202. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +0 -621
  203. package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +0 -105
  204. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -104
  205. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -161
  206. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -166
  207. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -369
  208. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -130
  209. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -218
  210. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -123
  211. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -173
  212. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -149
  213. package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -60
  214. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -66
  215. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -96
  216. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -113
  217. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -135
  218. package/dist/cjs/components/src/components/Organisms/Chat/index.js +0 -18
  219. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +0 -94
  220. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -11
  221. package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +0 -18
  222. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +0 -47
  223. package/dist/cjs/components/src/components/Templates/Chat/index.js +0 -17
  224. package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +0 -47
  225. package/dist/cjs/components/src/themes/base/components/templates/chat.js +0 -6
  226. package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +0 -6
  227. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +0 -6
  228. package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +0 -6
  229. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +0 -6
  230. package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +0 -6
  231. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +0 -6
  232. package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +0 -6
  233. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +0 -6
  234. package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +0 -6
  235. package/dist/cjs/components/src/themes/themeComponents/chat.js +0 -14
  236. package/dist/cjs/components/src/themes/themeComponents/chatButton.js +0 -9
  237. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +0 -5
  238. package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +0 -5
  239. package/dist/cjs/src/create/createChatController.js +0 -30
  240. package/dist/cjs/src/utils/applyChatTargetInject.js +0 -25
  241. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +0 -17
  242. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +0 -1
  243. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -92
  244. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +0 -2
  245. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +0 -1
  246. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -1
  247. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +0 -30
  248. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +0 -1
  249. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -215
  250. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +0 -2
  251. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +0 -1
  252. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -1
  253. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +0 -19
  254. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +0 -1
  255. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -203
  256. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +0 -2
  257. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +0 -1
  258. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -1
  259. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +0 -36
  260. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +0 -1
  261. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -252
  262. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +0 -2
  263. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +0 -1
  264. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +0 -1
  265. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +0 -38
  266. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +0 -1
  267. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -276
  268. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +0 -2
  269. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +0 -1
  270. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +0 -1
  271. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +0 -19
  272. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +0 -1
  273. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -167
  274. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +0 -2
  275. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +0 -1
  276. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -1
  277. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +0 -38
  278. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +0 -1
  279. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -571
  280. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +0 -2
  281. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +0 -1
  282. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -1
  283. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +0 -35
  284. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +0 -1
  285. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +0 -246
  286. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +0 -2
  287. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +0 -1
  288. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +0 -1
  289. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +0 -24
  290. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +0 -1
  291. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -107
  292. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +0 -2
  293. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +0 -1
  294. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -1
  295. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +0 -16
  296. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +0 -1
  297. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -101
  298. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +0 -2
  299. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +0 -1
  300. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -1
  301. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +0 -41
  302. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +0 -1
  303. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +0 -615
  304. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +0 -76
  305. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +0 -1
  306. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +0 -100
  307. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +0 -26
  308. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +0 -1
  309. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -98
  310. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +0 -13
  311. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +0 -1
  312. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -155
  313. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +0 -19
  314. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +0 -1
  315. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -160
  316. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +0 -18
  317. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +0 -1
  318. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -363
  319. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +0 -11
  320. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +0 -1
  321. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -124
  322. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +0 -30
  323. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +0 -1
  324. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -212
  325. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +0 -13
  326. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +0 -1
  327. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -117
  328. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +0 -19
  329. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +0 -1
  330. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -167
  331. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +0 -14
  332. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +0 -1
  333. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -143
  334. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +0 -15
  335. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +0 -1
  336. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -56
  337. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +0 -32
  338. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +0 -1
  339. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -62
  340. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +0 -40
  341. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +0 -1
  342. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -92
  343. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +0 -43
  344. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +0 -1
  345. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -109
  346. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +0 -26
  347. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +0 -1
  348. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -131
  349. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +0 -3
  350. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +0 -1
  351. package/dist/esm/components/src/components/Organisms/Chat/index.js +0 -2
  352. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +0 -18
  353. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +0 -1
  354. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +0 -88
  355. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +0 -7
  356. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +0 -1
  357. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -8
  358. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +0 -3
  359. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +0 -1
  360. package/dist/esm/components/src/components/Organisms/ChatButton/index.js +0 -2
  361. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +0 -12
  362. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +0 -1
  363. package/dist/esm/components/src/components/Templates/Chat/Chat.js +0 -41
  364. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +0 -2
  365. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +0 -1
  366. package/dist/esm/components/src/components/Templates/Chat/index.js +0 -1
  367. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +0 -13
  368. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +0 -1
  369. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +0 -41
  370. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +0 -2
  371. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +0 -1
  372. package/dist/esm/components/src/components/Templates/ChatButton/index.js +0 -1
  373. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +0 -4
  374. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +0 -1
  375. package/dist/esm/components/src/themes/base/components/templates/chat.js +0 -3
  376. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +0 -4
  377. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +0 -1
  378. package/dist/esm/components/src/themes/base/components/templates/chatButton.js +0 -3
  379. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +0 -4
  380. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +0 -1
  381. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +0 -3
  382. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +0 -4
  383. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +0 -1
  384. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +0 -3
  385. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +0 -4
  386. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +0 -1
  387. package/dist/esm/components/src/themes/pike/components/templates/chat.js +0 -3
  388. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +0 -4
  389. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +0 -1
  390. package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +0 -3
  391. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +0 -4
  392. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +0 -1
  393. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +0 -3
  394. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +0 -4
  395. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +0 -1
  396. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +0 -3
  397. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +0 -4
  398. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +0 -1
  399. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +0 -3
  400. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +0 -4
  401. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +0 -1
  402. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +0 -3
  403. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +0 -4
  404. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +0 -1
  405. package/dist/esm/components/src/themes/themeComponents/chat.js +0 -11
  406. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +0 -4
  407. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +0 -1
  408. package/dist/esm/components/src/themes/themeComponents/chatButton.js +0 -6
  409. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +0 -2
  410. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +0 -1
  411. package/dist/esm/src/Templates/Stores/library/components/Chat.js +0 -1
  412. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +0 -2
  413. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +0 -1
  414. package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +0 -1
  415. package/dist/esm/src/create/createChatController.d.ts +0 -5
  416. package/dist/esm/src/create/createChatController.d.ts.map +0 -1
  417. package/dist/esm/src/create/createChatController.js +0 -28
  418. package/dist/esm/src/utils/applyChatTargetInject.d.ts +0 -3
  419. package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +0 -1
  420. package/dist/esm/src/utils/applyChatTargetInject.js +0 -22
@@ -582,7 +582,7 @@ exports.Slideshow = (0, mobx_react_lite_1.observer)((properties) => {
582
582
  }), style: { transform: `translateX(${translateX}${translateUnit})` }, role: "group", "aria-label": `Slide group ${currentIndex} of ${totalDots}`,
583
583
  // Touch events
584
584
  // @ts-ignore - touch events
585
- onTouchStart: touchDragging ? (event) => handleDragStart(event.touches[0].clientX) : undefined,
585
+ onTouchStart: touchDragging ? (event) => handleDragStart(event.touches[0]) : undefined,
586
586
  // @ts-ignore - touch events
587
587
  onTouchMove: touchDragging
588
588
  ? (event) => {
@@ -597,10 +597,6 @@ exports.Slideshow = (0, mobx_react_lite_1.observer)((properties) => {
597
597
  // @ts-ignore - mouse events
598
598
  onMouseDown: touchDragging
599
599
  ? (event) => {
600
- // Only initiate dragging with the primary (left) mouse button.
601
- // Right/middle clicks should not start a drag (e.g. opening the context menu).
602
- if (event.button !== 0)
603
- return;
604
600
  event.preventDefault();
605
601
  handleDragStart(event.clientX);
606
602
  }
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TabSelection = void 0;
7
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
8
+ const react_1 = require("@emotion/react");
9
+ const classnames_1 = __importDefault(require("classnames"));
10
+ const mobx_react_lite_1 = require("mobx-react-lite");
11
+ const deepmerge_1 = __importDefault(require("deepmerge"));
12
+ const providers_1 = require("../../../providers");
13
+ const utilities_1 = require("../../../utilities");
14
+ const hooks_1 = require("../../../hooks");
15
+ const Button_1 = require("../../Atoms/Button");
16
+ const defaultStyles = () => {
17
+ return (0, react_1.css)({
18
+ '.ss__tab-selection__title': {
19
+ textAlign: 'center',
20
+ },
21
+ '.ss__tab-selection__tabs': {
22
+ display: 'flex',
23
+ gap: '10px',
24
+ textAlign: 'center',
25
+ alignItems: 'center',
26
+ alignContent: 'center',
27
+ justifyContent: 'center',
28
+ },
29
+ '.ss__tab-selection__button--active': {
30
+ fontWeight: 'bold',
31
+ },
32
+ '.ss__tab-selection__button__count': {
33
+ marginLeft: '5px',
34
+ },
35
+ });
36
+ };
37
+ exports.TabSelection = (0, mobx_react_lite_1.observer)((properties) => {
38
+ const globalTheme = (0, providers_1.useTheme)();
39
+ const globalTreePath = (0, providers_1.useTreePath)();
40
+ const defaultProps = {
41
+ treePath: globalTreePath,
42
+ showResultCount: true,
43
+ enableEmptyTabs: false,
44
+ };
45
+ const props = (0, utilities_1.mergeProps)('tabSelection', globalTheme, defaultProps, properties);
46
+ const { tabManager, titleText, showResultCount, enableEmptyTabs, onTabClick, disableStyles, className, internalClassName, treePath } = props;
47
+ const { overrideElement, shouldRenderDefault } = (0, hooks_1.useCustomComponentOverride)('tabSelection', props);
48
+ if (!shouldRenderDefault) {
49
+ return overrideElement;
50
+ }
51
+ if (!tabManager || !tabManager.tabs?.length) {
52
+ return null;
53
+ }
54
+ const subProps = {
55
+ button: {
56
+ // inherited props
57
+ ...(0, utilities_1.defined)({
58
+ disableStyles,
59
+ }),
60
+ theme: props.theme,
61
+ treePath,
62
+ },
63
+ };
64
+ function getResultCount(controller) {
65
+ const store = controller.store;
66
+ return store?.loaded ? store.pagination?.totalResults : undefined;
67
+ }
68
+ const styling = (0, utilities_1.mergeStyles)(props, defaultStyles);
69
+ //initialize lang
70
+ const defaultLang = {
71
+ title: {
72
+ value: titleText,
73
+ },
74
+ tabList: {
75
+ attributes: {
76
+ 'aria-label': 'Result tabs',
77
+ },
78
+ },
79
+ };
80
+ //deep merge with props.lang - scoped per key, each is resolved against different data
81
+ const langs = (0, deepmerge_1.default)(defaultLang, { title: props.lang?.title || {}, tabList: props.lang?.tabList || {} });
82
+ const mergedLang = (0, hooks_1.useLang)(langs, { tabManager }, { activeBreakpoint: globalTheme?.activeBreakpoint });
83
+ return ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsxs)("div", { ...styling, className: (0, classnames_1.default)('ss__tab-selection', className, internalClassName), children: [titleText || props.lang?.title?.value ? (0, jsx_runtime_1.jsx)("h4", { className: "ss__tab-selection__title", ...mergedLang.title?.all }) : null, (0, jsx_runtime_1.jsx)("div", { className: "ss__tab-selection__tabs", role: "tablist", ...mergedLang.tabList?.attributes, children: tabManager.tabs.map((tab) => {
84
+ const active = tabManager.active?.id === tab.id;
85
+ const resultCount = getResultCount(tab.controller);
86
+ const disabled = !enableEmptyTabs && !active && resultCount === 0;
87
+ const label = tab.label || tab.id;
88
+ const displayedCount = showResultCount ? resultCount : undefined;
89
+ const defaultTabLang = {
90
+ tabButton: {
91
+ value: label,
92
+ attributes: {
93
+ 'aria-label': typeof displayedCount == 'number' ? `${label}, ${displayedCount} results` : label,
94
+ },
95
+ },
96
+ };
97
+ const tabLangs = (0, deepmerge_1.default)(defaultTabLang, { tabButton: props.lang?.tabButton || {} });
98
+ const tabLang = (0, hooks_1.useLang)(tabLangs, { tab, resultCount, active }, { activeBreakpoint: globalTheme?.activeBreakpoint });
99
+ return ((0, jsx_runtime_1.jsxs)(Button_1.Button, { ...subProps.button, internalClassName: (0, classnames_1.default)('ss__tab-selection__button', `ss__tab-selection__button--${tab.id}`, {
100
+ 'ss__tab-selection__button--active': active,
101
+ }), disabled: disabled,
102
+ // @ts-ignore - role and aria-selected are valid props for Button, but not defined in ButtonProps
103
+ role: "tab", "aria-selected": active, ...tabLang.tabButton?.attributes, onClick: (e) => {
104
+ onTabClick && onTabClick(e, tab);
105
+ tabManager.setActive(tab.id);
106
+ }, children: [(0, jsx_runtime_1.jsx)("span", { className: "ss__tab-selection__button__label", ...tabLang.tabButton?.value }), typeof displayedCount == 'number' ? (0, jsx_runtime_1.jsxs)("span", { className: "ss__tab-selection__button__count", children: ["(", displayedCount, ")"] }) : null] }, tab.id));
107
+ }) })] }) }));
108
+ });
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./ChatButton"), exports);
17
+ __exportStar(require("./TabSelection"), exports);
@@ -325,5 +325,5 @@ exports.TemplatesEditor = (0, mobx_react_lite_1.observer)((properties) => {
325
325
  return ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('tab', { active: editorStore.storedState.activeTab === tab }), onClick: () => {
326
326
  editorStore.switchTabs(tab);
327
327
  }, children: tab }, i));
328
- }) }), (0, jsx_runtime_1.jsxs)("div", { className: "tab-view", children: [(0, jsx_runtime_1.jsx)("div", { className: "tab-view-shadow" }), (0, jsx_runtime_1.jsxs)("div", { className: "tab-view-content", children: [editorStore.storedState.activeTab === 'templates' ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h1", { children: "Search" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { editorStore: editorStore, data: 0, feature: "targets/search" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { editorStore: editorStore, data: snap.controllers.search, feature: "controllers/search" }), (0, jsx_runtime_1.jsx)("h1", { children: "Autocomplete" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { editorStore: editorStore, data: 0, feature: "targets/autocomplete" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { editorStore: editorStore, data: snap.controllers.autocomplete, feature: "controllers/autocomplete" })] })) : (''), editorStore.storedState.activeTab === 'configuration' ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { title: "Project Configuration", editorStore: editorStore, feature: "templates/config" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { title: "Theme Configuration", editorStore: editorStore, feature: "templates/theme" })] })) : ('')] }), (0, jsx_runtime_1.jsx)("div", { className: "tab-view-shadow bottom" })] })] }), (0, jsx_runtime_1.jsx)("footer", {})] }) }));
328
+ }) }), (0, jsx_runtime_1.jsxs)("div", { className: "tab-view", children: [(0, jsx_runtime_1.jsx)("div", { className: "tab-view-shadow" }), (0, jsx_runtime_1.jsxs)("div", { className: "tab-view-content", children: [editorStore.storedState.activeTab === 'templates' ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h1", { children: "Search" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { editorStore: editorStore, data: 0, feature: "targets/search" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { editorStore: editorStore, data: snap.getTemplateController('search'), feature: "controllers/search" }), (0, jsx_runtime_1.jsx)("h1", { children: "Autocomplete" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { editorStore: editorStore, data: 0, feature: "targets/autocomplete" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { editorStore: editorStore, data: snap.getTemplateController('autocomplete'), feature: "controllers/autocomplete" })] })) : (''), editorStore.storedState.activeTab === 'configuration' ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { title: "Project Configuration", editorStore: editorStore, feature: "templates/config" }), (0, jsx_runtime_1.jsx)(AbstractedControls_1.AbstractedControls, { title: "Theme Configuration", editorStore: editorStore, feature: "templates/theme" })] })) : ('')] }), (0, jsx_runtime_1.jsx)("div", { className: "tab-view-shadow bottom" })] })] }), (0, jsx_runtime_1.jsx)("footer", {})] }) }));
329
329
  });
@@ -24,6 +24,7 @@ const TermsList_1 = require("../TermsList");
24
24
  const Terms_1 = require("../../Molecules/Terms");
25
25
  const FacetsHorizontal_1 = require("../FacetsHorizontal");
26
26
  const Button_1 = require("../../Atoms/Button");
27
+ const TabSelection_1 = require("../../Molecules/TabSelection");
27
28
  const createRecommendationTemplate_1 = require("../../../hooks/createRecommendationTemplate");
28
29
  const defaultStyles = ({ controller, input, viewportMaxHeight, width, theme, column1, column2, column3, column4, }) => {
29
30
  let inputViewportOffsetBottom = 0;
@@ -186,7 +187,7 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
186
187
  width: '150px',
187
188
  },
188
189
  column3: {
189
- layout: [['content'], ['_', 'button.see-more']],
190
+ layout: [['tabSelection'], ['content'], ['_', 'button.see-more']],
190
191
  width: 'auto',
191
192
  alignContent: 'space-between',
192
193
  },
@@ -280,7 +281,7 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
280
281
  input = document.querySelector(input);
281
282
  }
282
283
  }
283
- const { facetsTitle, contentTitle, column1, column2, column3, column4, onReset, excludeBanners, resultComponent, templates, disableStyles, className, internalClassName, controller, } = props;
284
+ const { facetsTitle, contentTitle, column1, column2, column3, column4, onReset, excludeBanners, resultComponent, templates, disableStyles, className, internalClassName, controller, tabManager, } = props;
284
285
  let layout = props.layout;
285
286
  const subProps = {
286
287
  button: {
@@ -382,6 +383,17 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
382
383
  theme: props.theme,
383
384
  treePath: properties.treePath,
384
385
  },
386
+ tabSelection: {
387
+ // default props
388
+ tabManager,
389
+ // inherited props
390
+ ...(0, utilities_1.defined)({
391
+ disableStyles,
392
+ }),
393
+ // component theme overrides
394
+ theme: props.theme,
395
+ treePath: properties.treePath,
396
+ },
385
397
  };
386
398
  const { search, terms, trending, results, merchandising, pagination, filters, facets, state, loading, loaded } = controller.store;
387
399
  const history = controller.store.history || [];
@@ -520,6 +532,9 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
520
532
  if (module == 'no-results' && showResults) {
521
533
  return ((0, jsx_runtime_1.jsx)("div", { className: "ss__autocomplete__content", children: results.length == 0 && !loading ? ((0, jsx_runtime_1.jsxs)("div", { className: "ss__autocomplete__content__no-results", children: [(0, jsx_runtime_1.jsx)("div", { className: "ss__autocomplete__content__no-results__text", ...mergedLang.noResultsText?.all }), RecommendationTemplateComponent && recsController?.store?.loaded ? ((0, jsx_runtime_1.jsx)("div", { className: "ss__autocomplete__content__no-results__recommendations", children: (0, jsx_runtime_1.jsx)(RecommendationTemplateComponent, { controller: recsController, title: recsController.store?.profile?.display?.templateParameters?.title, resultComponent: RecommendationTemplateResultComponent, name: 'noResultsRecommendations', treePath: properties.treePath }) })) : null] })) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {})) }));
522
534
  }
535
+ if (module == 'tabSelection') {
536
+ return tabManager ? (0, jsx_runtime_1.jsx)(TabSelection_1.TabSelection, { ...subProps.tabSelection, tabManager: tabManager }) : null;
537
+ }
523
538
  if (module == '_') {
524
539
  return (0, jsx_runtime_1.jsx)("div", { className: "ss__autocomplete__separator" });
525
540
  }
@@ -478,7 +478,11 @@ const FacetContent = (props) => {
478
478
  // used by the submit button, the Enter key, and (optionally) blur, so it works even when the
479
479
  // submit button isn't rendered (e.g. when rangeInputsSubmitButtonText is an empty string).
480
480
  const submitRange = () => {
481
- if (facet?.services?.urlManager && typeof low === 'number' && Number.isFinite(low) && typeof high === 'number' && Number.isFinite(high)) {
481
+ if (facet?.services?.urlManager &&
482
+ typeof low === 'number' &&
483
+ Number.isFinite(low) &&
484
+ typeof high === 'number' &&
485
+ Number.isFinite(high)) {
482
486
  let currentLow = low;
483
487
  let currentHigh = high;
484
488
  //adjust ranges if high and low have swapped.
@@ -24,6 +24,7 @@ const snap_store_mobx_1 = require("@athoscommerce/snap-store-mobx");
24
24
  const Facets_1 = require("../Facets");
25
25
  const FacetsHorizontal_1 = require("../FacetsHorizontal");
26
26
  const Breadcrumbs_1 = require("../../Atoms/Breadcrumbs");
27
+ const TabSelection_1 = require("../../Molecules/TabSelection");
27
28
  const defaultStyles = ({}) => {
28
29
  return (0, react_1.css)({
29
30
  display: 'flex',
@@ -56,7 +57,7 @@ exports.Layout = (0, mobx_react_lite_1.observer)((properties) => {
56
57
  treePath: globalTreePath,
57
58
  };
58
59
  const props = (0, utilities_1.mergeProps)('layout', globalTheme, defaultProps, properties);
59
- const { controller, toggleSideBarButton, disableStyles, className, internalClassName, layout } = props;
60
+ const { controller, toggleSideBarButton, disableStyles, className, internalClassName, layout, tabManager } = props;
60
61
  delete props.treePath;
61
62
  const styling = (0, utilities_1.mergeStyles)(props, defaultStyles);
62
63
  const subProps = {
@@ -206,6 +207,17 @@ exports.Layout = (0, mobx_react_lite_1.observer)((properties) => {
206
207
  theme: props?.theme,
207
208
  treePath: properties.treePath,
208
209
  },
210
+ TabSelection: {
211
+ // default props
212
+ tabManager,
213
+ // inherited props
214
+ ...(0, utilities_1.defined)({
215
+ disableStyles,
216
+ }),
217
+ // component theme overrides
218
+ theme: props?.theme,
219
+ treePath: properties.treePath,
220
+ },
209
221
  };
210
222
  const ToggleSideBarButton = toggleSideBarButton;
211
223
  const hasResults = controller.store.pagination.totalResults > 0;
@@ -213,6 +225,8 @@ exports.Layout = (0, mobx_react_lite_1.observer)((properties) => {
213
225
  switch (module) {
214
226
  case 'searchHeader':
215
227
  return (0, jsx_runtime_1.jsx)(SearchHeader_1.SearchHeader, { ...subProps.SearchHeader });
228
+ case 'tabSelection':
229
+ return tabManager ? (0, jsx_runtime_1.jsx)(TabSelection_1.TabSelection, { ...subProps.TabSelection, tabManager: tabManager }) : null;
216
230
  case 'filterSummary':
217
231
  if (hasResults) {
218
232
  return (0, jsx_runtime_1.jsx)(FilterSummary_1.FilterSummary, { ...subProps.FilterSummary });
@@ -25,7 +25,7 @@ const defaultStyles = ({ gapSize, columns }) => {
25
25
  flexFlow: 'row wrap',
26
26
  gap: gapSize,
27
27
  gridTemplateRows: 'auto',
28
- gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))`,
28
+ gridTemplateColumns: `repeat(${columns}, 1fr)`,
29
29
  '& .ss__result, & .ss__result-layout': {
30
30
  boxSizing: 'border-box',
31
31
  flex: '0 1 auto',
@@ -141,14 +141,14 @@ exports.Results = (0, mobx_react_lite_1.observer)((properties) => {
141
141
  return results?.length ? ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsx)("div", { ...styling, className: (0, classnames_1.default)('ss__results', `ss__results-${props.layout}`, className, internalClassName), children: results.map((result) => (() => {
142
142
  switch (result.type) {
143
143
  case snap_store_mobx_1.ContentType.BANNER:
144
- return (0, react_1.createElement)(InlineBanner_1.InlineBanner, { ...subProps.inlineBanner, key: result.id, banner: result, layout: props.layout });
144
+ return ((0, react_1.createElement)(InlineBanner_1.InlineBanner, { ...subProps.inlineBanner, key: `${controller?.id ? `${controller?.id}-` : ''}${result.id}`, banner: result, layout: props.layout }));
145
145
  default:
146
146
  if (shouldWaitForNamedResultComponent) {
147
147
  return null;
148
148
  }
149
149
  if (resolvedResultComponent && controller) {
150
150
  return ((0, jsx_runtime_1.jsx)(ResultTracker_1.ResultTracker, { result: result, controller: controller, children: (0, utilities_1.cloneWithProps)(resolvedResultComponent, {
151
- key: result.id,
151
+ key: `${controller?.id ? `${controller?.id}-` : ''}${result.id}`,
152
152
  controller,
153
153
  result: result,
154
154
  theme: mergedResultComponentTheme,
@@ -156,7 +156,7 @@ exports.Results = (0, mobx_react_lite_1.observer)((properties) => {
156
156
  }) }));
157
157
  }
158
158
  else {
159
- return ((0, jsx_runtime_1.jsx)(TrackedResultComponent, { ...subProps.result, result: result, layout: props.layout, controller: controller }, result.id));
159
+ return ((0, jsx_runtime_1.jsx)(TrackedResultComponent, { ...subProps.result, result: result, layout: props.layout, controller: controller }, `${controller?.id ? `${controller?.id}-` : ''}${result.id}`));
160
160
  }
161
161
  }
162
162
  })()) }) })) : null;
@@ -23,7 +23,7 @@ exports.Toolbar = (0, mobx_react_lite_1.observer)((properties) => {
23
23
  layout: ['button.sidebar-toggle', 'filterSummary', 'paginationInfo', 'sortBy', 'perPage', 'pagination'],
24
24
  };
25
25
  const props = (0, utilities_1.mergeProps)('toolbar', globalTheme, defaultProps, properties);
26
- const { controller, toggleSideBarButton, disableStyles, className, internalClassName, treePath, layout } = props;
26
+ const { controller, toggleSideBarButton, disableStyles, className, internalClassName, treePath, layout, tabManager } = props;
27
27
  const { overrideElement, shouldRenderDefault } = (0, hooks_1.useCustomComponentOverride)('toolbar', props);
28
28
  if (!shouldRenderDefault) {
29
29
  return overrideElement;
@@ -33,6 +33,7 @@ exports.Toolbar = (0, mobx_react_lite_1.observer)((properties) => {
33
33
  Layout: {
34
34
  // default props
35
35
  internalClassName: 'ss__toolbar__layout',
36
+ tabManager: tabManager,
36
37
  // inherited props
37
38
  ...(0, utilities_1.defined)({
38
39
  toggleSideBarButton,
@@ -77,7 +77,13 @@ exports.AutocompleteFixed = (0, mobx_react_lite_1.observer)((properties) => {
77
77
  if (!buttonSelector && input) {
78
78
  buttonSelector = input;
79
79
  }
80
- const { layout, disableStyles, controller, renderInput, overlayColor, className, internalClassName, offset, treePath } = props;
80
+ const { layout, disableStyles, renderInput, overlayColor, className, internalClassName, offset, treePath, tabManager } = props;
81
+ let controller = props.controller;
82
+ let controllers = [controller];
83
+ if (tabManager && tabManager.active) {
84
+ controller = tabManager.active?.controller;
85
+ controllers = tabManager.tabs.map((tab) => tab.controller);
86
+ }
81
87
  const renderedInputRef = (0, hooks_1.useRef)(null);
82
88
  // Sync active state with controller's focusedInput.
83
89
  // When the controller unfocuses (e.g. document click), close the autocomplete
@@ -93,7 +99,7 @@ exports.AutocompleteFixed = (0, mobx_react_lite_1.observer)((properties) => {
93
99
  return () => {
94
100
  controller.eventManager.events['focusChange']?.remove(onFocusChange);
95
101
  };
96
- }, []);
102
+ }, [controller]);
97
103
  const reset = () => {
98
104
  controller.setFocused();
99
105
  setActive(false);
@@ -103,6 +109,7 @@ exports.AutocompleteFixed = (0, mobx_react_lite_1.observer)((properties) => {
103
109
  // default props
104
110
  layout: layout,
105
111
  onReset: () => reset(),
112
+ tabManager,
106
113
  // inherited props
107
114
  ...(0, utilities_1.defined)({
108
115
  disableStyles,
@@ -144,11 +151,6 @@ exports.AutocompleteFixed = (0, mobx_react_lite_1.observer)((properties) => {
144
151
  closeSearchButton: {
145
152
  onClick: () => reset(),
146
153
  },
147
- // wiring only — no default `icon`, so the button stays hidden until a site
148
- // opts in by supplying one via theme or props (see SearchInput.hideChatButton)
149
- chatButton: {
150
- onClick: () => controller.openChat(),
151
- },
152
154
  inputName: inputName,
153
155
  // inherited props
154
156
  ...(0, utilities_1.defined)({
@@ -206,7 +208,7 @@ exports.AutocompleteFixed = (0, mobx_react_lite_1.observer)((properties) => {
206
208
  if (input) {
207
209
  _input = (0, useAcRenderedInput_1.useAcRenderedInput)({
208
210
  input: input,
209
- controller,
211
+ controllers,
210
212
  renderedInputRef,
211
213
  renderInput: Boolean(renderInput),
212
214
  buttonSelector,
@@ -89,7 +89,13 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
89
89
  if (!buttonSelector && input) {
90
90
  buttonSelector = input;
91
91
  }
92
- const { layout, disableStyles, overlayColor, controller, renderInput, className, internalClassName, treePath } = props;
92
+ const { layout, disableStyles, overlayColor, renderInput, className, internalClassName, treePath, tabManager } = props;
93
+ let controller = props.controller;
94
+ let controllers = [controller];
95
+ if (tabManager && tabManager.active) {
96
+ controller = tabManager.active?.controller;
97
+ controllers = tabManager.tabs.map((tab) => tab.controller);
98
+ }
93
99
  const renderedInputRef = (0, hooks_1.useRef)(null);
94
100
  // Sync active state with controller's focusedInput.
95
101
  // When the controller unfocuses (e.g. document click), close the autocomplete
@@ -105,7 +111,7 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
105
111
  return () => {
106
112
  controller.eventManager.events['focusChange']?.remove(onFocusChange);
107
113
  };
108
- }, []);
114
+ }, [controller]);
109
115
  const reset = () => {
110
116
  controller.setFocused();
111
117
  setActive(false);
@@ -115,6 +121,7 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
115
121
  // default props
116
122
  layout: layout,
117
123
  onReset: () => reset(),
124
+ tabManager,
118
125
  // inherited props
119
126
  ...(0, utilities_1.defined)({
120
127
  disableStyles,
@@ -155,11 +162,6 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
155
162
  onClick: () => reset(),
156
163
  icon: 'angle-left',
157
164
  },
158
- // wiring only — no default `icon`, so the button stays hidden until a site
159
- // opts in by supplying one via theme or props (see SearchInput.hideChatButton)
160
- chatButton: {
161
- onClick: () => controller.openChat(),
162
- },
163
165
  inputName: inputName,
164
166
  // inherited props
165
167
  ...(0, utilities_1.defined)({
@@ -175,7 +177,7 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
175
177
  if (input) {
176
178
  _input = (0, useAcRenderedInput_1.useAcRenderedInput)({
177
179
  input: input,
178
- controller,
180
+ controllers,
179
181
  renderedInputRef,
180
182
  renderInput: Boolean(renderInput),
181
183
  buttonSelector,
@@ -35,7 +35,7 @@ exports.AutocompleteSlideout = (0, mobx_react_lite_1.observer)((properties) => {
35
35
  const defaultProps = {
36
36
  slideDirection: 'left',
37
37
  overlayColor: 'rgba(0,0,0,0.8)',
38
- layout: [['button.see-more'], ['termsList'], ['content']],
38
+ layout: [['button.see-more'], ['termsList'], ['tabSelection'], ['content']],
39
39
  width: '500px',
40
40
  renderInput: true,
41
41
  };
@@ -54,7 +54,13 @@ exports.AutocompleteSlideout = (0, mobx_react_lite_1.observer)((properties) => {
54
54
  if (!buttonSelector && input) {
55
55
  buttonSelector = input;
56
56
  }
57
- const { layout, disableStyles, slideDirection, controller, overlayColor, renderInput, className, internalClassName, treePath, width } = props;
57
+ const { layout, disableStyles, slideDirection, overlayColor, renderInput, className, internalClassName, treePath, width, tabManager } = props;
58
+ let controller = props.controller;
59
+ let controllers = [controller];
60
+ if (tabManager && tabManager.active) {
61
+ controller = tabManager.active?.controller;
62
+ controllers = tabManager.tabs.map((tab) => tab.controller);
63
+ }
58
64
  const renderedInputRef = (0, hooks_1.useRef)(null);
59
65
  const reset = () => {
60
66
  setActive(false);
@@ -65,6 +71,7 @@ exports.AutocompleteSlideout = (0, mobx_react_lite_1.observer)((properties) => {
65
71
  // default props
66
72
  onReset: () => reset(),
67
73
  layout: layout,
74
+ tabManager,
68
75
  // inherited props
69
76
  ...(0, utilities_1.defined)({
70
77
  disableStyles,
@@ -106,11 +113,6 @@ exports.AutocompleteSlideout = (0, mobx_react_lite_1.observer)((properties) => {
106
113
  onClick: () => reset(),
107
114
  icon: 'angle-left',
108
115
  },
109
- // wiring only — no default `icon`, so the button stays hidden until a site
110
- // opts in by supplying one via theme or props (see SearchInput.hideChatButton)
111
- chatButton: {
112
- onClick: () => controller.openChat(),
113
- },
114
116
  // inherited props
115
117
  ...(0, utilities_1.defined)({
116
118
  disableStyles,
@@ -129,7 +131,7 @@ exports.AutocompleteSlideout = (0, mobx_react_lite_1.observer)((properties) => {
129
131
  });
130
132
  _input = (0, useAcRenderedInput_1.useAcRenderedInput)({
131
133
  input: input,
132
- controller,
134
+ controllers,
133
135
  renderedInputRef,
134
136
  renderInput: Boolean(renderInput),
135
137
  buttonSelector,
@@ -69,13 +69,17 @@ exports.Search = (0, mobx_react_lite_1.observer)((properties) => {
69
69
  treePath: globalTreePath,
70
70
  };
71
71
  const props = (0, utilities_1.mergeProps)(properties.alias || 'search', globalTheme, defaultProps, properties);
72
- const { disableStyles, className, internalClassName, controller, hideSidebar, toggleSidebarButtonText, hideTopToolbar, hideMiddleToolbar, hideBottomToolbar, resultComponent, hideToggleSidebarButton, mobileDisplayAt, toggleSidebarStartClosed, treePath, alias, } = props;
72
+ const { disableStyles, className, internalClassName, hideSidebar, toggleSidebarButtonText, hideTopToolbar, tabManager, hideMiddleToolbar, hideBottomToolbar, resultComponent, hideToggleSidebarButton, mobileDisplayAt, toggleSidebarStartClosed, treePath, alias, } = props;
73
+ let controller = props.controller;
73
74
  let classNamePrefix = 'ss__search';
74
75
  if (props.alias) {
75
76
  classNamePrefix = `ss__${(0, componentNameToClassName_1.componentNameToClassName)(props.alias)}`;
76
77
  }
77
78
  // handle selected layoutOptions - must always call to preserve hook order
78
79
  (0, useLayoutOptions_1.useLayoutOptions)(props, globalTheme);
80
+ if (tabManager && tabManager.active) {
81
+ controller = tabManager.active?.controller;
82
+ }
79
83
  const store = controller.store;
80
84
  const isMobile = (0, hooks_2.useMediaQuery)(mobileDisplayAt ? (typeof mobileDisplayAt == 'boolean' ? `(min-width: 0px)` : `(max-width: ${mobileDisplayAt})`) : `(max-width: 0px)`);
81
85
  const [sidebarOpenState, setSidebarOpenState] = (0, hooks_1.useState)(Boolean(alias !== 'searchHorizontal' && !toggleSidebarStartClosed && !isMobile));
@@ -136,6 +140,7 @@ exports.Search = (0, mobx_react_lite_1.observer)((properties) => {
136
140
  internalClassName: `${classNamePrefix}__header-section__toolbar--top-toolbar`,
137
141
  layout: [['banner.header'], ['searchHeader', '_']],
138
142
  toggleSideBarButton: { ...toggleSidebarButtonProps },
143
+ tabManager: tabManager,
139
144
  ...(0, utilities_1.defined)({
140
145
  disableStyles,
141
146
  }),
@@ -147,9 +152,10 @@ exports.Search = (0, mobx_react_lite_1.observer)((properties) => {
147
152
  name: 'middle',
148
153
  internalClassName: `${classNamePrefix}__content__toolbar--middle-toolbar`,
149
154
  layout: isMobile
150
- ? [['paginationInfo', '_'], ['button.sidebar-toggle', '_', 'sortBy'], ['banner.banner']]
151
- : [['sortBy', 'perPage', '_', 'paginationInfo'], ['banner.banner']],
155
+ ? [['tabSelection'], ['paginationInfo', '_'], ['button.sidebar-toggle', '_', 'sortBy'], ['banner.banner']]
156
+ : [['tabSelection'], ['sortBy', 'perPage', '_', 'paginationInfo'], ['banner.banner']],
152
157
  toggleSideBarButton: { ...toggleSidebarButtonProps },
158
+ tabManager: tabManager,
153
159
  // inherited props
154
160
  ...(0, utilities_1.defined)({
155
161
  disableStyles,
@@ -163,6 +169,7 @@ exports.Search = (0, mobx_react_lite_1.observer)((properties) => {
163
169
  internalClassName: `${classNamePrefix}__content__toolbar--bottom-toolbar`,
164
170
  layout: [['banner.footer'], ['_', 'pagination', '_']],
165
171
  toggleSideBarButton: { ...toggleSidebarButtonProps },
172
+ tabManager: tabManager,
166
173
  // inherited props
167
174
  ...(0, utilities_1.defined)({
168
175
  disableStyles,
@@ -2,9 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useAcRenderedInput = useAcRenderedInput;
4
4
  const hooks_1 = require("preact/hooks");
5
- function useAcRenderedInput({ input, controller, renderInput, buttonSelector, renderedInputRef, setActive, }) {
5
+ const RENDERED_INPUT_SELECTOR = '.autocomplete__search-input input';
6
+ function useAcRenderedInput({ input, controllers, renderInput, buttonSelector, renderedInputRef, setActive, }) {
6
7
  const [_input, setInput] = (0, hooks_1.useState)(input);
7
8
  const [renderedInputInitialized, setRenderedInputInitialized] = (0, hooks_1.useState)(false);
9
+ const boundController = (0, hooks_1.useRef)(null);
10
+ // adds the rendered input to the controller's selector (once) and binds it
11
+ const bindRenderedInput = async (cntrlrs) => {
12
+ for (const cntrlr of cntrlrs) {
13
+ if (!cntrlr.config.selector.includes(RENDERED_INPUT_SELECTOR)) {
14
+ cntrlr.config.selector = `${cntrlr.config.selector}, ${RENDERED_INPUT_SELECTOR}`;
15
+ }
16
+ boundController.current = cntrlr;
17
+ await cntrlr.bind();
18
+ }
19
+ };
8
20
  const onClick = () => {
9
21
  if (setActive) {
10
22
  setActive(true);
@@ -13,8 +25,7 @@ function useAcRenderedInput({ input, controller, renderInput, buttonSelector, re
13
25
  setTimeout(async () => {
14
26
  if (!renderedInputInitialized) {
15
27
  setInput(renderedInputRef.current);
16
- controller.config.selector = `${controller.config.selector}, .autocomplete__search-input input`;
17
- await controller.bind();
28
+ await bindRenderedInput(controllers);
18
29
  renderedInputRef?.current?.focus();
19
30
  }
20
31
  setRenderedInputInitialized(true);
@@ -11,10 +11,31 @@ const useCreateController = (snap, type, config) => {
11
11
  .then((controller) => {
12
12
  setController(controller);
13
13
  })
14
- .catch(() => {
15
- snap.createController(type, config).then((controller) => {
14
+ .catch(async () => {
15
+ let configToCreate = config;
16
+ // dynamically created recommendation controllers (ex. no-results recommendations) don't go through
17
+ // the RecommendationInstantiator, so inherit its plugins/middleware from the original config to keep behavior consistent
18
+ if (type === 'recommendation' && !config.plugins && !config.middleware) {
19
+ try {
20
+ const instantiator = await snap.getInstantiator('recommendation');
21
+ configToCreate = {
22
+ ...config,
23
+ plugins: instantiator.config.config.plugins,
24
+ middleware: instantiator.config.config.middleware,
25
+ };
26
+ }
27
+ catch {
28
+ // no recommendation instantiator configured - proceed without inherited attachments
29
+ }
30
+ }
31
+ try {
32
+ const controller = await snap.createController(type, configToCreate);
16
33
  setController(controller);
17
- });
34
+ }
35
+ catch (err) {
36
+ // eslint-disable-next-line no-console
37
+ console.error(`useCreateController: failed to create controller "${config.id}"`, err);
38
+ }
18
39
  });
19
40
  }, []);
20
41
  return controller;