@athoscommerce/snap-preact 1.13.3-beta.191 → 1.14.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 (430) 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/Molecules/Filter/Filter.js +1 -1
  4. package/dist/cjs/components/src/components/Molecules/Result/Result.js +4 -51
  5. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  6. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +28 -24
  7. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +20 -50
  8. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +44 -21
  9. package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +64 -6
  10. package/dist/cjs/components/src/components/Organisms/FilterSummary/FilterSummary.js +19 -8
  11. package/dist/cjs/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +11 -44
  12. package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
  13. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +12 -11
  14. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +6 -8
  15. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +6 -8
  16. package/dist/cjs/components/src/components/Templates/Search/Search.js +1 -1
  17. package/dist/cjs/components/src/index.js +1 -17
  18. package/dist/cjs/components/src/providers/themeComponents.js +0 -20
  19. package/dist/cjs/components/src/themes/base/components/templates/index.js +0 -10
  20. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +0 -10
  21. package/dist/cjs/components/src/themes/pike/components/templates/autocompleteFixed.js +1 -1
  22. package/dist/cjs/components/src/themes/pike/components/templates/autocompleteModal.js +1 -1
  23. package/dist/cjs/components/src/themes/pike/components/templates/autocompleteSlideout.js +3 -2
  24. package/dist/cjs/components/src/themes/pike/components/templates/index.js +0 -10
  25. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +0 -10
  26. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +0 -10
  27. package/dist/cjs/components/src/utilities/Colour/Colour.js +0 -41
  28. package/dist/cjs/components/src/utilities/componentArgs.js +1 -1
  29. package/dist/cjs/components/src/utilities/index.js +0 -1
  30. package/dist/cjs/components/src/utilities/snapify.js +0 -27
  31. package/dist/cjs/src/Snap.js +6 -85
  32. package/dist/cjs/src/Templates/SnapTemplates.js +5 -55
  33. package/dist/cjs/src/Templates/Stores/LibraryStore.js +1 -51
  34. package/dist/cjs/src/Templates/Stores/TemplateStore.js +3 -3
  35. package/dist/cjs/src/Templates/Stores/library/languages/ar.js +6 -485
  36. package/dist/cjs/src/Templates/Stores/library/languages/de.js +6 -485
  37. package/dist/cjs/src/Templates/Stores/library/languages/es.js +6 -490
  38. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +6 -490
  39. package/dist/cjs/src/Templates/Stores/library/languages/hi.js +6 -485
  40. package/dist/cjs/src/Templates/Stores/library/languages/it.js +6 -485
  41. package/dist/cjs/src/Templates/Stores/library/languages/ja.js +6 -485
  42. package/dist/cjs/src/Templates/Stores/library/languages/ko.js +6 -485
  43. package/dist/cjs/src/Templates/Stores/library/languages/nl.js +6 -485
  44. package/dist/cjs/src/Templates/Stores/library/languages/pt.js +6 -485
  45. package/dist/cjs/src/Templates/Stores/library/languages/ru.js +6 -485
  46. package/dist/cjs/src/Templates/Stores/library/languages/tr.js +6 -485
  47. package/dist/cjs/src/Templates/Stores/library/languages/vi.js +6 -485
  48. package/dist/cjs/src/Templates/Stores/library/languages/zh.js +6 -485
  49. package/dist/cjs/src/create/index.js +1 -3
  50. package/dist/cjs/src/setupEvents.js +0 -44
  51. package/dist/cjs/src/utils/index.js +1 -3
  52. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -3
  53. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  54. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -6
  55. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  56. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +12 -57
  57. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +0 -13
  58. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  59. package/dist/esm/components/src/components/Atoms/Icon/paths.js +0 -13
  60. package/dist/esm/components/src/components/Molecules/Filter/Filter.d.ts.map +1 -1
  61. package/dist/esm/components/src/components/Molecules/Filter/Filter.js +1 -1
  62. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  63. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  64. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +3 -7
  65. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  66. package/dist/esm/components/src/components/Molecules/Result/Result.js +4 -51
  67. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +0 -3
  68. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  69. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  70. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  71. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +29 -25
  72. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  73. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +20 -50
  74. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts +3 -1
  75. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
  76. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +43 -21
  77. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.d.ts +1 -0
  78. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.d.ts.map +1 -1
  79. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +65 -7
  80. package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts +5 -0
  81. package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts.map +1 -1
  82. package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.js +19 -8
  83. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts +1 -5
  84. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts.map +1 -1
  85. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +11 -44
  86. package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
  87. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +4 -0
  88. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  89. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +13 -12
  90. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +3 -0
  91. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  92. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +7 -9
  93. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +3 -0
  94. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  95. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +7 -9
  96. package/dist/esm/components/src/components/Templates/Search/Search.js +2 -2
  97. package/dist/esm/components/src/hooks/index.d.ts +2 -1
  98. package/dist/esm/components/src/hooks/index.d.ts.map +1 -1
  99. package/dist/esm/components/src/index.d.ts +4 -16
  100. package/dist/esm/components/src/index.d.ts.map +1 -1
  101. package/dist/esm/components/src/index.js +1 -15
  102. package/dist/esm/components/src/providers/langComponents.d.ts +0 -20
  103. package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
  104. package/dist/esm/components/src/providers/themeComponents.d.ts +1 -203
  105. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  106. package/dist/esm/components/src/providers/themeComponents.js +0 -20
  107. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  108. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  109. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  110. package/dist/esm/components/src/themes/base/components/templates/index.js +0 -10
  111. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  112. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +0 -10
  113. package/dist/esm/components/src/themes/pike/components/templates/autocompleteFixed.js +1 -1
  114. package/dist/esm/components/src/themes/pike/components/templates/autocompleteModal.js +1 -1
  115. package/dist/esm/components/src/themes/pike/components/templates/autocompleteSlideout.d.ts.map +1 -1
  116. package/dist/esm/components/src/themes/pike/components/templates/autocompleteSlideout.js +3 -2
  117. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  118. package/dist/esm/components/src/themes/pike/components/templates/index.js +0 -10
  119. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  120. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +0 -10
  121. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  122. package/dist/esm/components/src/themes/snappy/components/templates/index.js +0 -10
  123. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +0 -15
  124. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  125. package/dist/esm/components/src/utilities/Colour/Colour.js +0 -41
  126. package/dist/esm/components/src/utilities/componentArgs.d.ts +1 -3
  127. package/dist/esm/components/src/utilities/componentArgs.d.ts.map +1 -1
  128. package/dist/esm/components/src/utilities/componentArgs.js +1 -1
  129. package/dist/esm/components/src/utilities/index.d.ts +0 -1
  130. package/dist/esm/components/src/utilities/index.d.ts.map +1 -1
  131. package/dist/esm/components/src/utilities/index.js +0 -1
  132. package/dist/esm/components/src/utilities/snapify.d.ts +2 -3
  133. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  134. package/dist/esm/components/src/utilities/snapify.js +2 -29
  135. package/dist/esm/src/Snap.d.ts +1 -3
  136. package/dist/esm/src/Snap.d.ts.map +1 -1
  137. package/dist/esm/src/Snap.js +7 -86
  138. package/dist/esm/src/Templates/SnapTemplates.d.ts +1 -2
  139. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  140. package/dist/esm/src/Templates/SnapTemplates.js +5 -54
  141. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +0 -43
  142. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  143. package/dist/esm/src/Templates/Stores/LibraryStore.js +1 -51
  144. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +5 -19
  145. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  146. package/dist/esm/src/Templates/Stores/TemplateStore.js +3 -3
  147. package/dist/esm/src/Templates/Stores/library/languages/ar.d.ts.map +1 -1
  148. package/dist/esm/src/Templates/Stores/library/languages/ar.js +6 -485
  149. package/dist/esm/src/Templates/Stores/library/languages/de.d.ts.map +1 -1
  150. package/dist/esm/src/Templates/Stores/library/languages/de.js +6 -485
  151. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  152. package/dist/esm/src/Templates/Stores/library/languages/es.js +6 -490
  153. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  154. package/dist/esm/src/Templates/Stores/library/languages/fr.js +6 -490
  155. package/dist/esm/src/Templates/Stores/library/languages/hi.d.ts.map +1 -1
  156. package/dist/esm/src/Templates/Stores/library/languages/hi.js +6 -485
  157. package/dist/esm/src/Templates/Stores/library/languages/it.d.ts.map +1 -1
  158. package/dist/esm/src/Templates/Stores/library/languages/it.js +6 -485
  159. package/dist/esm/src/Templates/Stores/library/languages/ja.d.ts.map +1 -1
  160. package/dist/esm/src/Templates/Stores/library/languages/ja.js +6 -485
  161. package/dist/esm/src/Templates/Stores/library/languages/ko.d.ts.map +1 -1
  162. package/dist/esm/src/Templates/Stores/library/languages/ko.js +6 -485
  163. package/dist/esm/src/Templates/Stores/library/languages/nl.d.ts.map +1 -1
  164. package/dist/esm/src/Templates/Stores/library/languages/nl.js +6 -485
  165. package/dist/esm/src/Templates/Stores/library/languages/pt.d.ts.map +1 -1
  166. package/dist/esm/src/Templates/Stores/library/languages/pt.js +6 -485
  167. package/dist/esm/src/Templates/Stores/library/languages/ru.d.ts.map +1 -1
  168. package/dist/esm/src/Templates/Stores/library/languages/ru.js +6 -485
  169. package/dist/esm/src/Templates/Stores/library/languages/tr.d.ts.map +1 -1
  170. package/dist/esm/src/Templates/Stores/library/languages/tr.js +6 -485
  171. package/dist/esm/src/Templates/Stores/library/languages/vi.d.ts.map +1 -1
  172. package/dist/esm/src/Templates/Stores/library/languages/vi.js +6 -485
  173. package/dist/esm/src/Templates/Stores/library/languages/zh.d.ts.map +1 -1
  174. package/dist/esm/src/Templates/Stores/library/languages/zh.js +6 -485
  175. package/dist/esm/src/create/index.d.ts +0 -1
  176. package/dist/esm/src/create/index.d.ts.map +1 -1
  177. package/dist/esm/src/create/index.js +0 -1
  178. package/dist/esm/src/setupEvents.d.ts +0 -13
  179. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  180. package/dist/esm/src/setupEvents.js +0 -44
  181. package/dist/esm/src/types.d.ts +3 -13
  182. package/dist/esm/src/types.d.ts.map +1 -1
  183. package/dist/esm/src/utils/index.d.ts +0 -1
  184. package/dist/esm/src/utils/index.d.ts.map +1 -1
  185. package/dist/esm/src/utils/index.js +0 -1
  186. package/package.json +20 -29
  187. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -99
  188. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -17
  189. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -221
  190. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -17
  191. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -211
  192. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -17
  193. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -259
  194. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +0 -17
  195. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -286
  196. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +0 -17
  197. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -174
  198. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -17
  199. package/dist/cjs/components/src/components/Molecules/ChatQuickview/ChatQuickview.js +0 -514
  200. package/dist/cjs/components/src/components/Molecules/ChatQuickview/index.js +0 -17
  201. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +0 -252
  202. package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +0 -17
  203. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -113
  204. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -17
  205. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -107
  206. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -17
  207. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +0 -628
  208. package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +0 -110
  209. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -105
  210. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -161
  211. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -166
  212. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -369
  213. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -130
  214. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -218
  215. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -123
  216. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -173
  217. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -149
  218. package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -62
  219. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -66
  220. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -96
  221. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -113
  222. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -135
  223. package/dist/cjs/components/src/components/Organisms/Chat/index.js +0 -18
  224. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +0 -94
  225. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -11
  226. package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +0 -18
  227. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +0 -47
  228. package/dist/cjs/components/src/components/Templates/Chat/index.js +0 -17
  229. package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +0 -47
  230. package/dist/cjs/components/src/components/Templates/ChatButton/index.js +0 -17
  231. package/dist/cjs/components/src/themes/base/components/templates/chat.js +0 -6
  232. package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +0 -6
  233. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +0 -6
  234. package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +0 -6
  235. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +0 -6
  236. package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +0 -6
  237. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +0 -6
  238. package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +0 -6
  239. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +0 -6
  240. package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +0 -6
  241. package/dist/cjs/components/src/themes/themeComponents/chat.js +0 -14
  242. package/dist/cjs/components/src/themes/themeComponents/chatButton.js +0 -9
  243. package/dist/cjs/components/src/utilities/storybook.js +0 -17
  244. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +0 -5
  245. package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +0 -5
  246. package/dist/cjs/src/create/createChatController.js +0 -31
  247. package/dist/cjs/src/utils/applyChatTargetInject.js +0 -25
  248. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +0 -17
  249. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +0 -1
  250. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -92
  251. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +0 -2
  252. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +0 -1
  253. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -1
  254. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +0 -37
  255. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +0 -1
  256. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -215
  257. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +0 -2
  258. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +0 -1
  259. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -1
  260. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +0 -30
  261. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +0 -1
  262. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -205
  263. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +0 -2
  264. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +0 -1
  265. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -1
  266. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +0 -36
  267. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +0 -1
  268. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -253
  269. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +0 -2
  270. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +0 -1
  271. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +0 -1
  272. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +0 -52
  273. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +0 -1
  274. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -280
  275. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +0 -2
  276. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +0 -1
  277. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +0 -1
  278. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +0 -25
  279. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +0 -1
  280. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -168
  281. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +0 -2
  282. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +0 -1
  283. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -1
  284. package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.d.ts +0 -30
  285. package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.d.ts.map +0 -1
  286. package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.js +0 -508
  287. package/dist/esm/components/src/components/Molecules/ChatQuickview/index.d.ts +0 -2
  288. package/dist/esm/components/src/components/Molecules/ChatQuickview/index.d.ts.map +0 -1
  289. package/dist/esm/components/src/components/Molecules/ChatQuickview/index.js +0 -1
  290. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +0 -35
  291. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +0 -1
  292. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +0 -246
  293. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +0 -2
  294. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +0 -1
  295. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +0 -1
  296. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +0 -24
  297. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +0 -1
  298. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -107
  299. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +0 -2
  300. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +0 -1
  301. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -1
  302. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +0 -16
  303. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +0 -1
  304. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -101
  305. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +0 -2
  306. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +0 -1
  307. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -1
  308. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +0 -41
  309. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +0 -1
  310. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +0 -622
  311. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +0 -79
  312. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +0 -1
  313. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +0 -105
  314. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +0 -26
  315. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +0 -1
  316. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -99
  317. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +0 -13
  318. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +0 -1
  319. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -155
  320. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +0 -19
  321. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +0 -1
  322. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -160
  323. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +0 -18
  324. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +0 -1
  325. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -363
  326. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +0 -11
  327. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +0 -1
  328. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -124
  329. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +0 -30
  330. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +0 -1
  331. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -212
  332. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +0 -13
  333. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +0 -1
  334. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -117
  335. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +0 -19
  336. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +0 -1
  337. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -167
  338. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +0 -14
  339. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +0 -1
  340. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -143
  341. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +0 -15
  342. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +0 -1
  343. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -58
  344. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +0 -32
  345. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +0 -1
  346. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -62
  347. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +0 -40
  348. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +0 -1
  349. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -92
  350. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +0 -43
  351. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +0 -1
  352. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -109
  353. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +0 -26
  354. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +0 -1
  355. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -131
  356. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +0 -3
  357. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +0 -1
  358. package/dist/esm/components/src/components/Organisms/Chat/index.js +0 -2
  359. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +0 -18
  360. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +0 -1
  361. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +0 -88
  362. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +0 -7
  363. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +0 -1
  364. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -8
  365. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +0 -3
  366. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +0 -1
  367. package/dist/esm/components/src/components/Organisms/ChatButton/index.js +0 -2
  368. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +0 -12
  369. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +0 -1
  370. package/dist/esm/components/src/components/Templates/Chat/Chat.js +0 -41
  371. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +0 -2
  372. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +0 -1
  373. package/dist/esm/components/src/components/Templates/Chat/index.js +0 -1
  374. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +0 -13
  375. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +0 -1
  376. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +0 -41
  377. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +0 -2
  378. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +0 -1
  379. package/dist/esm/components/src/components/Templates/ChatButton/index.js +0 -1
  380. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +0 -4
  381. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +0 -1
  382. package/dist/esm/components/src/themes/base/components/templates/chat.js +0 -3
  383. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +0 -4
  384. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +0 -1
  385. package/dist/esm/components/src/themes/base/components/templates/chatButton.js +0 -3
  386. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +0 -4
  387. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +0 -1
  388. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +0 -3
  389. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +0 -4
  390. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +0 -1
  391. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +0 -3
  392. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +0 -4
  393. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +0 -1
  394. package/dist/esm/components/src/themes/pike/components/templates/chat.js +0 -3
  395. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +0 -4
  396. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +0 -1
  397. package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +0 -3
  398. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +0 -4
  399. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +0 -1
  400. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +0 -3
  401. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +0 -4
  402. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +0 -1
  403. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +0 -3
  404. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +0 -4
  405. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +0 -1
  406. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +0 -3
  407. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +0 -4
  408. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +0 -1
  409. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +0 -3
  410. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +0 -4
  411. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +0 -1
  412. package/dist/esm/components/src/themes/themeComponents/chat.js +0 -11
  413. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +0 -4
  414. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +0 -1
  415. package/dist/esm/components/src/themes/themeComponents/chatButton.js +0 -6
  416. package/dist/esm/components/src/utilities/storybook.d.ts +0 -5
  417. package/dist/esm/components/src/utilities/storybook.d.ts.map +0 -1
  418. package/dist/esm/components/src/utilities/storybook.js +0 -13
  419. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +0 -2
  420. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +0 -1
  421. package/dist/esm/src/Templates/Stores/library/components/Chat.js +0 -1
  422. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +0 -2
  423. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +0 -1
  424. package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +0 -1
  425. package/dist/esm/src/create/createChatController.d.ts +0 -5
  426. package/dist/esm/src/create/createChatController.d.ts.map +0 -1
  427. package/dist/esm/src/create/createChatController.js +0 -29
  428. package/dist/esm/src/utils/applyChatTargetInject.d.ts +0 -3
  429. package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +0 -1
  430. package/dist/esm/src/utils/applyChatTargetInject.js +0 -22
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
- import { useState, useEffect, useRef, useLayoutEffect } from 'preact/hooks';
2
+ import { useState, useEffect, useLayoutEffect } from 'preact/hooks';
3
3
  import { observer } from 'mobx-react-lite';
4
4
  import { css } from '@emotion/react';
5
5
  import classnames from 'classnames';
@@ -69,21 +69,22 @@ export const Slideout = observer((properties) => {
69
69
  // state
70
70
  const [isActive, setActive] = useState(Boolean(active));
71
71
  const [renderContent, setRenderContent] = useState(Boolean(active));
72
- const isActiveRef = useRef(isActive);
73
- isActiveRef.current = isActive;
74
- const toggleActive = (force) => {
75
- const next = typeof force === 'boolean' ? force : !isActiveRef.current;
76
- setActive(next);
77
- if (next) {
78
- setRenderContent(true);
72
+ const toggleActive = () => {
73
+ const newActive = !isActive;
74
+ if (isActive) {
75
+ setActive(false);
76
+ if (rerender) {
77
+ setTimeout(() => {
78
+ setRenderContent(false);
79
+ }, 250);
80
+ }
79
81
  }
80
- else if (rerender) {
81
- setTimeout(() => {
82
- setRenderContent(false);
83
- }, 250);
82
+ else {
83
+ setActive(true);
84
+ setRenderContent(true);
84
85
  }
85
- document.body.style.overflow = next ? 'hidden' : '';
86
- onChange && onChange(next);
86
+ document.body.style.overflow = newActive ? 'hidden' : '';
87
+ onChange && onChange(newActive);
87
88
  };
88
89
  // Sync internal state when the active prop changes from the parent component. This is a
89
90
  // layout effect so the content commit is scheduled before consumers' passive effects run —
@@ -99,16 +100,19 @@ export const Slideout = observer((properties) => {
99
100
  document.body.style.overflow = isVisible && isActive ? 'hidden' : '';
100
101
  const styling = mergeStyles(props, defaultStyles);
101
102
  useEffect(() => {
102
- if (!buttonSelector)
103
- return;
104
- // string selectors bind to every matching element
105
- const targets = typeof buttonSelector == 'string' ? Array.from(document.querySelectorAll(buttonSelector)) : [buttonSelector];
106
- const handler = () => toggleActive();
107
- targets.forEach((target) => target.addEventListener('click', handler));
108
- return () => {
109
- targets.forEach((target) => target.removeEventListener('click', handler));
110
- };
111
- }, [buttonSelector]);
103
+ if (buttonSelector) {
104
+ let button;
105
+ if (typeof buttonSelector == 'string') {
106
+ button = document.querySelector(buttonSelector);
107
+ }
108
+ else {
109
+ button = buttonSelector;
110
+ }
111
+ if (button) {
112
+ button.addEventListener('click', () => toggleActive());
113
+ }
114
+ }
115
+ }, []);
112
116
  return isVisible || !rerender ? (_jsxs(CacheProvider, { children: [buttonContent &&
113
- (noButtonWrapper ? (cloneWithProps(buttonContent, { toggleActive, active: isActive, treePath })) : (_jsx("div", { className: "ss__slideout__button", onClick: () => toggleActive(), children: cloneWithProps(buttonContent, { active: isActive, treePath }) }))), _jsx("div", { className: classnames('ss__slideout', className, internalClassName, { 'ss__slideout--active': isActive }), style: { visibility: !rerender ? (isVisible ? 'visible' : 'hidden') : 'visible' }, ...styling, children: renderContent && cloneWithProps(children, { toggleActive, active: isActive, treePath }) }), _jsx(Overlay, { ...subProps.overlay, active: isActive, onClick: () => toggleActive(false) })] })) : null;
117
+ (noButtonWrapper ? (cloneWithProps(buttonContent, { toggleActive, active: isActive, treePath })) : (_jsx("div", { className: "ss__slideout__button", onClick: () => toggleActive(), children: cloneWithProps(buttonContent, { active: isActive, treePath }) }))), _jsx("div", { className: classnames('ss__slideout', className, internalClassName, { 'ss__slideout--active': isActive }), style: { visibility: !rerender ? (isVisible ? 'visible' : 'hidden') : 'visible' }, ...styling, children: renderContent && cloneWithProps(children, { toggleActive, active: isActive, treePath }) }), _jsx(Overlay, { ...subProps.overlay, active: isActive, onClick: toggleActive })] })) : null;
114
118
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Slideshow.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Molecules/Slideshow/Slideshow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAM3B,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAI7D,OAAO,EAAE,IAAI,EAAuC,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA6JxD,eAAO,MAAM,SAAS,gBAAyB,cAAc;;CA2wB3D,CAAC;AAEH,MAAM,WAAW,aAAa;IAC7B,WAAW,EAAE,IAAI,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,gBAAgB,EAAE,cAAc,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,UAAU,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,UAAU,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,KAAK,EAAE,cAAc,CAAC;QACrB,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,cAAc,EAAE,IAAI,CAAC;QACpB,aAAa,EAAE,OAAO,CAAC;KACvB,CAAC,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9B,GAAG,4BAA4B,GAC/B,cAAc,CAAC,cAAc,CAAC,CAAC;AAEhC,MAAM,MAAM,4BAA4B,GAAG;IAC1C,MAAM,EAAE,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"Slideshow.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Molecules/Slideshow/Slideshow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAM3B,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAI7D,OAAO,EAAE,IAAI,EAAuC,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAyJxD,eAAO,MAAM,SAAS,gBAAyB,cAAc;;CA8uB3D,CAAC;AAEH,MAAM,WAAW,aAAa;IAC7B,WAAW,EAAE,IAAI,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,gBAAgB,EAAE,cAAc,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,UAAU,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,UAAU,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,KAAK,EAAE,cAAc,CAAC;QACrB,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,cAAc,EAAE,IAAI,CAAC;QACpB,aAAa,EAAE,OAAO,CAAC;KACvB,CAAC,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9B,GAAG,4BAA4B,GAC/B,cAAc,CAAC,cAAc,CAAC,CAAC;AAEhC,MAAM,MAAM,4BAA4B,GAAG;IAC1C,MAAM,EAAE,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC"}
@@ -24,10 +24,6 @@ const defaultStyles = ({ theme, slidesToShow = 1, slideWidth, gap = 16, overlayN
24
24
  display: 'flex',
25
25
  width: `100%`,
26
26
  transition: 'transform 0.3s ease-in-out',
27
- // keep the track on its own compositor layer at all times; otherwise Chrome promotes it
28
- // when a transform transition starts and demotes it when it ends, re-rasterizing the
29
- // (scaled) slide content each time, which reads as every image flickering
30
- willChange: 'transform',
31
27
  // Disable transition during dragging
32
28
  '&.ss__slideshow__track--dragging': {
33
29
  transition: 'none',
@@ -269,8 +265,6 @@ export const Slideshow = observer((properties) => {
269
265
  return () => observer.disconnect();
270
266
  }, []);
271
267
  // Touch/Drag state
272
- // drag positions live in refs so the document-level mousemove/mouseup listeners
273
- // (registered once per drag) always read current values instead of stale state
274
268
  const [isDragging, setIsDragging] = useState(false);
275
269
  // mirrors `isDragging` state - the state drives renders (the dragging class, the transform,
276
270
  // the autoplay effect), but the drag handlers below run through refs and can fire before
@@ -430,17 +424,8 @@ export const Slideshow = observer((properties) => {
430
424
  return;
431
425
  const diff = currentXRef.current - startXRef.current;
432
426
  const threshold = getNavigationThreshold();
433
- const slideWidthPx = (trackRef.current?.parentElement?.offsetWidth || 0) / visibleSlides;
434
427
  if (Math.abs(diff) > threshold) {
435
- const slidesDragged = slideWidthPx > 0 ? Math.round(Math.abs(diff) / slideWidthPx) : 0;
436
- if (slidesDragged > slidesToMove) {
437
- // long drags land on the slide group they were dragged to instead of snapping back
438
- setCurrentIndex((prevIndex) => {
439
- const newIndex = diff > 0 ? prevIndex - slidesDragged : prevIndex + slidesDragged;
440
- return Math.max(0, Math.min(maxIndex, newIndex));
441
- });
442
- }
443
- else if (diff > 0 && (loop || currentIndex > 0)) {
428
+ if (diff > 0 && (loop || currentIndex > 0)) {
444
429
  // Dragged right - go to previous
445
430
  goToPrevious();
446
431
  }
@@ -478,9 +463,6 @@ export const Slideshow = observer((properties) => {
478
463
  dragEndRef.current = handleDragEnd;
479
464
  const removeMouseListenersRef = useRef(null);
480
465
  const handleMouseDown = (event) => {
481
- // only the primary (left) button starts a drag; right/middle clicks keep their default behaviour
482
- if (event.button !== 0)
483
- return;
484
466
  event.preventDefault();
485
467
  handleDragStart(event.clientX);
486
468
  // bound here rather than in an effect - a tap's synthetic mouseup fires before effects run
@@ -525,16 +507,6 @@ export const Slideshow = observer((properties) => {
525
507
  }, autoPlayInterval);
526
508
  }
527
509
  };
528
- // The browser fires a click after a drag's mouseup/touchend. Catch it in the capture phase on
529
- // the container so it never reaches slide content that carries its own onClick (e.g. product
530
- // cards that open a quickview) — those handlers can't know a drag just happened.
531
- const handleContainerClickCapture = (event) => {
532
- if (!hasDraggedRef.current)
533
- return;
534
- hasDraggedRef.current = false;
535
- event.stopPropagation();
536
- event.preventDefault();
537
- };
538
510
  // Handle image click
539
511
  const handleSlideClick = (slide, index) => {
540
512
  if (slide.onClick && !isDragging && !hasDraggedRef.current) {
@@ -681,29 +653,27 @@ export const Slideshow = observer((properties) => {
681
653
  }, { activeBreakpoint: globalTheme?.activeBreakpoint });
682
654
  return (_jsx(CacheProvider, { children: _jsxs("div", { ...styling, className: classnames('ss__slideshow', className), ref: slideshowRef, role: "region", "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-roledescription": "slideshow", onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave,
683
655
  // @ts-ignore - ignore
684
- onKeyDown: handleKeyDown, tabIndex: 0, children: [_jsx("div", { className: "ss__slideshow__sr-only", ...mergedLang.srInstructions.all }), _jsx("div", { className: "ss__slideshow__container",
685
- // @ts-ignore - capture-phase click
686
- onClickCapture: touchDragging ? handleContainerClickCapture : undefined,
687
- // Touch events
688
- // @ts-ignore - touch events
689
- onTouchStart: touchDragging ? (event) => handleDragStart(event.touches[0].clientX) : undefined,
690
- // @ts-ignore - touch events
691
- onTouchMove: touchDragging
692
- ? (event) => {
693
- if (isDraggingRef.current) {
694
- event.preventDefault(); // Prevent scrolling while dragging
695
- }
696
- const touch = event.touches[0];
697
- handleDragMove(touch.clientX);
698
- }
699
- : undefined, onTouchEnd: touchDragging ? handleDragEnd : undefined,
700
- // mouse events for desktop dragging
701
- // move/up are bound on document in handleMouseDown so the drag keeps tracking outside the container
702
- // @ts-ignore - mouse events
703
- onMouseDown: touchDragging ? handleMouseDown : undefined, children: _jsx("div", { ref: trackRef, className: classnames('ss__slideshow__track', {
656
+ onKeyDown: handleKeyDown, tabIndex: 0, children: [_jsx("div", { className: "ss__slideshow__sr-only", ...mergedLang.srInstructions.all }), _jsx("div", { className: "ss__slideshow__container", children: _jsx("div", { ref: trackRef, className: classnames('ss__slideshow__track', {
704
657
  'ss__slideshow__track--dragging': isDragging,
705
658
  'ss__slideshow__track--centered': centerInsufficientSlides && totalSlides <= computedSlidesToShow,
706
- }), style: { transform: `translateX(${translateX}${translateUnit})` }, role: "group", "aria-label": `Slide group ${currentIndex} of ${totalDots}`, children: normalizedSlides.map((slide, index) => {
659
+ }), style: { transform: `translateX(${translateX}${translateUnit})` }, role: "group", "aria-label": `Slide group ${currentIndex} of ${totalDots}`,
660
+ // Touch events
661
+ // @ts-ignore - touch events
662
+ onTouchStart: touchDragging ? (event) => handleDragStart(event.touches[0].clientX) : undefined,
663
+ // @ts-ignore - touch events
664
+ onTouchMove: touchDragging
665
+ ? (event) => {
666
+ if (isDraggingRef.current) {
667
+ event.preventDefault(); // Prevent scrolling while dragging
668
+ }
669
+ const touch = event.touches[0];
670
+ handleDragMove(touch.clientX);
671
+ }
672
+ : undefined, onTouchEnd: touchDragging ? handleDragEnd : undefined,
673
+ // mouse events for desktop dragging
674
+ // move/up are bound on document in handleMouseDown so the drag keeps tracking outside the track
675
+ // @ts-ignore - mouse events
676
+ onMouseDown: touchDragging ? handleMouseDown : undefined, children: normalizedSlides.map((slide, index) => {
707
677
  const isVisible = index >= currentIndex && index < currentIndex + computedSlidesToShow;
708
678
  const hasClickHandler = !!slide.onClick;
709
679
  const hasContent = !!slide.content;
@@ -5,7 +5,7 @@ import type { TabManagerStore } from '../../../../../src/Templates/Stores/TabMan
5
5
  export declare const AutocompleteLayout: ((properties: AutocompleteLayoutProps) => import("@emotion/react/jsx-runtime").JSX.Element | null) & {
6
6
  displayName: string;
7
7
  };
8
- export type ModuleNames = 'termsList' | 'terms.history' | 'terms.trending' | 'terms.suggestions' | 'facets' | 'facetsHorizontal' | 'button.see-more' | 'content' | 'no-results' | 'tabSelection' | '_' | 'banner.left' | 'banner.banner' | 'banner.footer' | 'banner.header';
8
+ export type ModuleNames = 'termsList' | 'terms.history' | 'terms.trending' | 'terms.suggestions' | 'facets' | 'facetsHorizontal' | 'button.see-more' | 'content' | 'no-results' | 'tabSelection' | 'searchInput' | '_' | 'banner.left' | 'banner.banner' | 'banner.footer' | 'banner.header';
9
9
  type ColumnsNames = 'c1' | 'c2' | 'c3' | 'c4';
10
10
  type PrebuiltLayouts = 'terms' | 'mobile' | 'desktop' | 'tablet';
11
11
  type ModuleNamesWithColumns = ModuleNames | ColumnsNames | ModuleNames[] | ColumnsNames[];
@@ -14,12 +14,14 @@ type Column = {
14
14
  width: string | 'auto';
15
15
  alignContent?: 'center' | 'flex-start' | 'flex-end' | 'space-between';
16
16
  };
17
+ export declare function layoutHasModule({ layout, column1, column2, column3, column4, }: Pick<AutocompleteLayoutTemplatesLegalProps, 'layout' | 'column1' | 'column2' | 'column3' | 'column4'>, moduleToFind: ModuleNames): boolean;
17
18
  export type AutocompleteLayoutProps = {
18
19
  input: Element | string;
19
20
  resultComponent?: JSXComponent | JSX.Element;
20
21
  controller: AutocompleteController;
21
22
  lang?: Partial<AutocompleteLayoutLang>;
22
23
  tabManager?: TabManagerStore;
24
+ searchInputSlot?: JSX.Element;
23
25
  } & Omit<AutocompleteLayoutTemplatesLegalProps, 'resultComponent'> & ComponentProps<AutocompleteLayoutProps>;
24
26
  export type AutocompleteLayoutTemplatesLegalProps = {
25
27
  resultComponent?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteLayout.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutocompleteLayout.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.tsx"],"names":[],"mappings":"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"}
@@ -126,6 +126,9 @@ const defaultStyles = ({ controller, input, viewportMaxHeight, width, theme, col
126
126
  '.ss__autocomplete__facets-wrapper': {
127
127
  width: '100%',
128
128
  },
129
+ '.ss__autocomplete__search-input-wrapper': {
130
+ width: '100%',
131
+ },
129
132
  '.ss__autocomplete__content': {
130
133
  display: 'flex',
131
134
  flex: `1 1 0%`,
@@ -275,7 +278,7 @@ export const AutocompleteLayout = observer((properties) => {
275
278
  input = document.querySelector(input);
276
279
  }
277
280
  }
278
- const { facetsTitle, contentTitle, column1, column2, column3, column4, onReset, excludeBanners, resultComponent, templates, disableStyles, className, internalClassName, controller, tabManager, } = props;
281
+ const { facetsTitle, contentTitle, column1, column2, column3, column4, onReset, excludeBanners, resultComponent, templates, disableStyles, className, internalClassName, controller, tabManager, searchInputSlot, } = props;
279
282
  let layout = props.layout;
280
283
  const subProps = {
281
284
  button: {
@@ -331,6 +334,7 @@ export const AutocompleteLayout = observer((properties) => {
331
334
  facetsHorizontal: {
332
335
  name: 'autocomplete',
333
336
  // default props
337
+ controller,
334
338
  // inherited props
335
339
  ...defined({
336
340
  disableStyles,
@@ -400,8 +404,10 @@ export const AutocompleteLayout = observer((properties) => {
400
404
  controller.bind();
401
405
  }, []);
402
406
  }
403
- const visible = Boolean(input === state.focusedInput) &&
404
- (terms.length > 0 || trending?.length > 0 || history?.length > 0 || (state.input && controller.store.loaded));
407
+ // content modules require a focused input and something to show (terms, or a loaded query)
408
+ const contentVisible = Boolean(input === state.focusedInput) &&
409
+ Boolean(terms.length > 0 || trending?.length > 0 || history?.length > 0 || (state.input && controller.store.loaded));
410
+ const visible = contentVisible || Boolean(searchInputSlot);
405
411
  const showResultsBool = () => Boolean(results.length > 0 || Object.keys(merchandising.content).length > 0 || search?.query?.string || loading);
406
412
  const [showResults, setShowResults] = useState(showResultsBool());
407
413
  const checkAndSetShowResults = () => {
@@ -458,6 +464,8 @@ export const AutocompleteLayout = observer((properties) => {
458
464
  RecommendationTemplateResultComponent = recs.RecommendationTemplateResultComponent;
459
465
  recsController = recs.recsController;
460
466
  }
467
+ // the slot element can only be rendered once - the first 'searchInput' module claims it
468
+ let searchInputRendered = false;
461
469
  const findModule = (module, rowCounter) => {
462
470
  //new row
463
471
  if (typeof module !== 'string') {
@@ -499,6 +507,15 @@ export const AutocompleteLayout = observer((properties) => {
499
507
  return null;
500
508
  return _jsx("div", { className: "ss__autocomplete__column ss__autocomplete__column--c4", children: children });
501
509
  }
510
+ if (module == 'searchInput') {
511
+ if (!searchInputSlot || searchInputRendered)
512
+ return null;
513
+ searchInputRendered = true;
514
+ return _jsx("div", { className: "ss__autocomplete__search-input-wrapper", children: searchInputSlot });
515
+ }
516
+ // separators render whenever the layout does; every other module needs a focused input with content
517
+ if (module !== '_' && !contentVisible)
518
+ return null;
502
519
  if (module == 'termsList') {
503
520
  if (!terms?.length && !history?.length && !trending?.length)
504
521
  return null;
@@ -552,23 +569,11 @@ export const AutocompleteLayout = observer((properties) => {
552
569
  if (module == 'button.see-more' && showResults && search?.query?.string && results.length > 0) {
553
570
  return (_jsxs(Button, { ...subProps.button, ...mergedLang.seeMoreButton.attributes, children: [_jsx("span", { ...mergedLang.seeMoreButton.value }), _jsx(Icon, { ...subProps.icon })] }));
554
571
  }
572
+ return null;
555
573
  };
556
- if (typeof props.layout === 'string') {
557
- if (props.layout === 'terms') {
558
- layout = [['termsList'], ['no-results'], ['_', 'button.see-more']];
559
- }
560
- if (props.layout === 'mobile') {
561
- layout = [['termsList'], ['content'], ['_', 'button.see-more']];
562
- }
563
- if (props.layout === 'tablet') {
564
- layout = [['c1', 'c3']];
565
- }
566
- if (props.layout === 'desktop') {
567
- layout = [['c1', 'c2', 'c3']];
568
- }
569
- }
574
+ layout = typeof props.layout === 'string' ? PREBUILT_LAYOUTS[props.layout] : props.layout;
570
575
  //fallback for unsupported layout values
571
- if (typeof layout === 'string') {
576
+ if (typeof props.layout === 'string' && !layout) {
572
577
  controller.log.warn(`unsupported layout found. ${props.layout}`);
573
578
  layout = [];
574
579
  }
@@ -580,7 +585,24 @@ export const AutocompleteLayout = observer((properties) => {
580
585
  role: 'tabpanel',
581
586
  'aria-labelledby': `ss__tab--${tabControllerId}`,
582
587
  }
583
- : {}), children: [_jsx("span", { role: 'link', ref: (e) => useA11y(e), onClick: () => props.onReset && props.onReset(), className: "ss__autocomplete__close-button", style: { position: 'absolute', top: '-10000000px', left: '-1000000px' }, ...mergedLang.closeButton?.all }), layout?.map((module) => {
584
- return findModule(module, topRowCounter);
585
- })] }) })) : null;
588
+ : {}), children: [_jsx("span", { role: 'link', ref: (e) => useA11y(e), onClick: () => props.onReset && props.onReset(), className: "ss__autocomplete__close-button", style: { position: 'absolute', top: '-10000000px', left: '-1000000px' }, ...mergedLang.closeButton?.all }), layout.map((module) => findModule(module, topRowCounter))] }) })) : null;
586
589
  });
590
+ const PREBUILT_LAYOUTS = {
591
+ terms: [['termsList'], ['no-results'], ['_', 'button.see-more']],
592
+ mobile: [['termsList'], ['content'], ['_', 'button.see-more']],
593
+ tablet: [['c1', 'c3']],
594
+ desktop: [['c1', 'c2', 'c3']],
595
+ };
596
+ // checks a layout (and the column layouts it references) for a module
597
+ export function layoutHasModule({ layout, column1, column2, column3, column4, }, moduleToFind) {
598
+ //recast names back to c1 style
599
+ const columns = {
600
+ c1: column1,
601
+ c2: column2,
602
+ c3: column3,
603
+ c4: column4,
604
+ };
605
+ const modulesList = (typeof layout === 'string' ? PREBUILT_LAYOUTS[layout] : layout)?.flat() || [];
606
+ // a module is either listed directly or inside a referenced column's layout
607
+ return modulesList.some((entry) => entry === moduleToFind || Boolean(columns[entry]?.layout.flat().includes(moduleToFind)));
608
+ }
@@ -21,6 +21,7 @@ export type FacetsHorizontalTemplatesLegalProps = {
21
21
  limit?: number;
22
22
  alwaysShowToggleSidebarButton?: boolean;
23
23
  hideToggleSidebarButton?: boolean;
24
+ openFacetsInSidebar?: boolean;
24
25
  iconCollapse?: IconType | Partial<IconProps>;
25
26
  iconExpand?: IconType | Partial<IconProps>;
26
27
  toggleSidebarButtonText?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"FacetsHorizontal.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAU3B,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAwD,MAAM,gBAAgB,CAAC;AAE5F,OAAO,EAAQ,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAiF7D,eAAO,MAAM,gBAAgB,gBAAyB,qBAAqB;;CA2TzE,CAAC;AAYH,MAAM,MAAM,qBAAqB,GAAG;IACnC,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,CAAC;CACvD,GAAG,mCAAmC,GACtC,cAAc,CAAC,qBAAqB,CAAC,CAAC;AAEvC,MAAM,MAAM,mCAAmC,GAAG;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CACxE,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACpC,cAAc,EAAE,IAAI,CAAC;QACpB,aAAa,EAAE,mBAAmB,CAAC;QACnC,KAAK,EAAE,mBAAmB,CAAC;KAC3B,CAAC,CAAC;IACH,uBAAuB,CAAC,EAAE,IAAI,CAAC;QAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC7F"}
1
+ {"version":3,"file":"FacetsHorizontal.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAU3B,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAwD,MAAM,gBAAgB,CAAC;AAE5F,OAAO,EAAQ,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAkF7D,eAAO,MAAM,gBAAgB,gBAAyB,qBAAqB;;CAwYzE,CAAC;AAYH,MAAM,MAAM,qBAAqB,GAAG;IACnC,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,CAAC;CACvD,GAAG,mCAAmC,GACtC,cAAc,CAAC,qBAAqB,CAAC,CAAC;AAEvC,MAAM,MAAM,mCAAmC,GAAG;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CACxE,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACpC,cAAc,EAAE,IAAI,CAAC;QACpB,aAAa,EAAE,mBAAmB,CAAC;QACnC,KAAK,EAAE,mBAAmB,CAAC;KAC3B,CAAC,CAAC;IACH,uBAAuB,CAAC,EAAE,IAAI,CAAC;QAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC7F"}
@@ -1,5 +1,5 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
- import { useState } from 'preact/hooks';
2
+ import { useState, useEffect, useRef } from 'preact/hooks';
3
3
  import { css } from '@emotion/react';
4
4
  import classnames from 'classnames';
5
5
  import { observer } from 'mobx-react-lite';
@@ -13,6 +13,7 @@ import { Icon } from '../../Atoms/Icon';
13
13
  import { Button } from '../../Atoms/Button';
14
14
  import { Slideout } from '../../Molecules/Slideout';
15
15
  import { Sidebar } from '../Sidebar';
16
+ import { useA11y } from '../../../hooks/useA11y';
16
17
  const defaultStyles = ({ theme }) => {
17
18
  return css({
18
19
  margin: '10px 0px',
@@ -95,6 +96,8 @@ export const FacetsHorizontal = observer((properties) => {
95
96
  };
96
97
  let props = mergeProps('facetsHorizontal', globalTheme, defaultProps, properties);
97
98
  const { facets, limit, alwaysShowToggleSidebarButton, hideToggleSidebarButton, onFacetOptionClick, showSelectedCount, hideSelectedCountParenthesis, clearAllIcon, showClearAllText, iconExpand, clearAllText, iconCollapse, toggleSidebarButtonText, disableStyles, className, internalClassName, controller, treePath, } = props;
99
+ //we just dont allow this prop to be used outside of the search controller.
100
+ const openFacetsInSidebar = controller?.type !== 'search' ? false : props.openFacetsInSidebar;
98
101
  const { overrideElement, shouldRenderDefault } = useCustomComponentOverride('facetsHorizontal', props);
99
102
  if (!shouldRenderDefault) {
100
103
  return overrideElement;
@@ -136,6 +139,7 @@ export const FacetsHorizontal = observer((properties) => {
136
139
  }
137
140
  }
138
141
  const [sidebarOpenState, setSidebarOpenState] = useState(false);
142
+ const renderToggleSidebarButton = Boolean(!hideToggleSidebarButton && (isOverflowing || alwaysShowToggleSidebarButton));
139
143
  const subProps = {
140
144
  dropdown: {
141
145
  // default props
@@ -176,7 +180,7 @@ export const FacetsHorizontal = observer((properties) => {
176
180
  internalClassName: `ss__facets-horizontal__content__facet`,
177
181
  justContent: true,
178
182
  // this should be turned on if there is ever a filters button rendering.
179
- statefulOverflow: !hideToggleSidebarButton && (isOverflowing || alwaysShowToggleSidebarButton) ? true : undefined,
183
+ statefulOverflow: renderToggleSidebarButton ? true : undefined,
180
184
  // inherited props
181
185
  ...defined({
182
186
  disableStyles,
@@ -200,6 +204,7 @@ export const FacetsHorizontal = observer((properties) => {
200
204
  sidebar: {
201
205
  // default props
202
206
  internalClassName: 'ss__facets-horizontal__sidebar',
207
+ onToggleSidebar: () => setSidebarOpenState(false),
203
208
  // inherited props
204
209
  ...defined({
205
210
  disableStyles,
@@ -223,6 +228,54 @@ export const FacetsHorizontal = observer((properties) => {
223
228
  const innerRef = useClickOutside(() => {
224
229
  selectedFacet && setSelectedFacet(undefined);
225
230
  });
231
+ // facet field to scroll into view once the slideout renders
232
+ const [sidebarFacetField, setSidebarFacetField] = useState(undefined);
233
+ // facet expanded by a header click; collapsed again when the sidebar closes
234
+ const autoOpenedFacet = useRef(undefined);
235
+ // field of the header that opened the sidebar; focus returns to it when the sidebar closes
236
+ const openerField = useRef(undefined);
237
+ const openFacetsInSidebarFunc = (facet) => {
238
+ // expand the facet so it renders open in the sidebar
239
+ if (facet.collapsed) {
240
+ facet.toggleCollapse();
241
+ autoOpenedFacet.current = facet;
242
+ }
243
+ openerField.current = facet.field;
244
+ setSidebarFacetField(facet.field);
245
+ setSidebarOpenState(true);
246
+ };
247
+ useEffect(() => {
248
+ if (!sidebarFacetField || !sidebarOpenState)
249
+ return;
250
+ // slideout content is already mounted; match by class so field names need no CSS escaping
251
+ const slideoutElem = innerRef.current?.querySelector('.ss__facets-horizontal__slideout');
252
+ const facetElem = Array.from(slideoutElem?.querySelectorAll('.ss__facet') || []).find((elem) => elem.classList.contains(`ss__facet--${sidebarFacetField}`));
253
+ if (facetElem) {
254
+ if (typeof facetElem.scrollIntoView == 'function') {
255
+ facetElem.scrollIntoView({ block: 'start' });
256
+ }
257
+ // move focus into the sidebar so keyboard navigation continues from the opened facet
258
+ facetElem.querySelector('.ss__facet__header')?.focus({ preventScroll: true });
259
+ }
260
+ setSidebarFacetField(undefined);
261
+ }, [sidebarFacetField, sidebarOpenState]);
262
+ useEffect(() => {
263
+ if (sidebarOpenState)
264
+ return;
265
+ // re-collapse the auto-opened facet (slideout content is already unmounted, so nothing flickers)
266
+ const facet = autoOpenedFacet.current;
267
+ autoOpenedFacet.current = undefined;
268
+ if (facet && !facet.collapsed && typeof facet.toggleCollapse == 'function') {
269
+ facet.toggleCollapse();
270
+ }
271
+ // return focus to the header that opened the sidebar
272
+ const field = openerField.current;
273
+ openerField.current = undefined;
274
+ if (field) {
275
+ const headerDropdown = Array.from(innerRef.current?.querySelectorAll('.ss__facets-horizontal__header__dropdown') || []).find((elem) => elem.classList.contains(`ss__facets-horizontal__header__dropdown--${field}`));
276
+ headerDropdown?.querySelector('.ss__dropdown__button')?.focus();
277
+ }
278
+ }, [sidebarOpenState]);
226
279
  //initialize lang
227
280
  const defaultLang = {
228
281
  toggleSidebarButtonText: {
@@ -235,7 +288,8 @@ export const FacetsHorizontal = observer((properties) => {
235
288
  const ToggleSidebarButton = ({ sidebarOpenState, setSidebarOpenState, subProps }) => {
236
289
  return (_jsx(Button, { ...subProps.toggleSidebarButton, internalClassName: "ss__facets-horizontal__header__toggle-sidebar", onClick: () => setSidebarOpenState(!sidebarOpenState), children: _jsx("span", { ...mergedLang.toggleSidebarButtonText.all }) }));
237
290
  };
238
- const renderSidebar = Boolean(!hideToggleSidebarButton && (isOverflowing || alwaysShowToggleSidebarButton));
291
+ // the slideout is also needed when facet headers open the sidebar
292
+ const renderSlideout = renderToggleSidebarButton || Boolean(openFacetsInSidebar);
239
293
  //todo investigate keyboard navigation here when overlay prop is true/false
240
294
  return (facetsToShow && facetsToShow?.length > 0) || isOverflowing ? (_jsx(CacheProvider, { children: _jsxs("div", { className: classnames('ss__facets-horizontal', className, internalClassName), ref: innerRef, ...styling, children: [_jsxs("div", { className: "ss__facets-horizontal__header", children: [facetsToShow?.map((facet) => {
241
295
  const selectedCount = facet?.values?.filter((value) => value?.filtered).length ||
@@ -258,8 +312,12 @@ export const FacetsHorizontal = observer((properties) => {
258
312
  selectedFacet,
259
313
  facet,
260
314
  }, { activeBreakpoint: globalTheme?.activeBreakpoint });
261
- return (_jsx(Dropdown, { ...subProps.dropdown, internalClassName: classnames(subProps.dropdown.internalClassName, `ss__facets-horizontal__header__dropdown--${facet.display}`, `ss__facets-horizontal__header__dropdown--${facet.field}`), open: selectedFacet?.field === facet.field, onClick: (e) => {
262
- // @ts-ignore - this is a workaround for the fact that selectedFacet is not defined when the onclick is triggered by the escape key.
315
+ return (_jsx(Dropdown, { ...subProps.dropdown, internalClassName: classnames(subProps.dropdown.internalClassName, `ss__facets-horizontal__header__dropdown--${facet.display}`, `ss__facets-horizontal__header__dropdown--${facet.field}`), open: openFacetsInSidebar ? false : selectedFacet?.field === facet.field, onClick: (e) => {
316
+ if (openFacetsInSidebar) {
317
+ openFacetsInSidebarFunc(facet);
318
+ return;
319
+ }
320
+ // @ts-ignore - escape key closes the dropdown
263
321
  if (selectedFacet !== facet && e.code !== 'Escape') {
264
322
  setSelectedFacet(facet);
265
323
  }
@@ -271,6 +329,6 @@ export const FacetsHorizontal = observer((properties) => {
271
329
  facet?.clear.url.link.onClick();
272
330
  }, icon: clearAllIcon ? clearAllIcon : undefined, children: mergedLang.clearAllText.value && showClearAllText ? _jsx("label", { ...mergedLang.clearAllText.all }) : null })) : (_jsx(_Fragment, {}))] }), _jsx(Icon, { ...subProps.icon, ...(selectedFacet?.field === facet.field
273
331
  ? { ...(typeof iconExpand == 'string' ? { icon: iconExpand } : iconExpand) }
274
- : { ...(typeof iconCollapse == 'string' ? { icon: iconCollapse } : iconCollapse) }) })] }), disableOverlay: false, children: _jsx(Facet, { ...subProps.facet, facet: facet }) }));
275
- }), renderSidebar && _jsx(ToggleSidebarButton, { sidebarOpenState: sidebarOpenState, setSidebarOpenState: setSidebarOpenState, subProps: subProps })] }), renderSidebar && (_jsx(Slideout, { ...subProps.slideout, active: sidebarOpenState, children: _jsx(Sidebar, { ...subProps.sidebar, controller: controller }) }))] }) })) : null;
332
+ : { ...(typeof iconCollapse == 'string' ? { icon: iconCollapse } : iconCollapse) }) })] }), disableOverlay: false, children: !openFacetsInSidebar && _jsx(Facet, { ...subProps.facet, facet: facet }) }));
333
+ }), renderToggleSidebarButton && (_jsx(ToggleSidebarButton, { sidebarOpenState: sidebarOpenState, setSidebarOpenState: setSidebarOpenState, subProps: subProps }))] }), renderSlideout && (_jsx(Slideout, { ...subProps.slideout, active: sidebarOpenState, children: _jsx("div", { className: 'ss__facets-horizontal__slideout__sidebar-wrapper', ref: (e) => useA11y(e, 0, true, () => setSidebarOpenState((prev) => !prev)), children: _jsx(Sidebar, { ...subProps.sidebar, controller: controller }) }) }))] }) })) : null;
276
334
  });
@@ -22,6 +22,8 @@ export type FilterSummaryTemplatesLegalProps = {
22
22
  hideFacetLabel?: boolean;
23
23
  clearAllLabel?: string;
24
24
  hideClearAll?: boolean;
25
+ noFiltersText?: string;
26
+ hideNoFiltersText?: boolean;
25
27
  onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>, filterFilter: FilterType) => void;
26
28
  onClearAllClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;
27
29
  };
@@ -33,5 +35,8 @@ export interface FilterSummaryLang {
33
35
  label?: string;
34
36
  value?: string;
35
37
  }>;
38
+ noFiltersText: Lang<{
39
+ controller?: SearchController | AutocompleteController;
40
+ }>;
36
41
  }
37
42
  //# sourceMappingURL=FilterSummary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSummary.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/FilterSummary/FilterSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAS3B,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC/F,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAuC,MAAM,gBAAgB,CAAC;AA0D3E,eAAO,MAAM,aAAa,gBAAyB,kBAAkB;;CA0HnE,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,CAAC;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAClC,GAAG,gCAAgC,GACnC,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAEpC,MAAM,MAAM,gCAAgC,GAAG;IAC9C,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IACnD,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE,UAAU,KAAK,IAAI,CAAC;IACjG,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CAC/E,CAAC;AAEF,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,IAAI,CAAC;QACX,OAAO,EAAE,UAAU,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,aAAa,EAAE,IAAI,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACH"}
1
+ {"version":3,"file":"FilterSummary.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/FilterSummary/FilterSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAS3B,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC/F,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAuC,MAAM,gBAAgB,CAAC;AA6D3E,eAAO,MAAM,aAAa,gBAAyB,kBAAkB;;CAsInE,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,CAAC;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAClC,GAAG,gCAAgC,GACnC,cAAc,CAAC,kBAAkB,CAAC,CAAC;AAEpC,MAAM,MAAM,gCAAgC,GAAG;IAC9C,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IACnD,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE,UAAU,KAAK,IAAI,CAAC;IACjG,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CAC/E,CAAC;AAEF,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,IAAI,CAAC;QACX,OAAO,EAAE,UAAU,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,aAAa,EAAE,IAAI,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,aAAa,EAAE,IAAI,CAAC;QACnB,UAAU,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,CAAC;KACvD,CAAC,CAAC;CACH"}
@@ -20,6 +20,9 @@ const defaultStyles = (props) => {
20
20
  gap: '10px',
21
21
  flexWrap: 'wrap',
22
22
  },
23
+ '.ss__filter-summary__no-filters': {
24
+ margin: '5px 0',
25
+ },
23
26
  '&.ss__filter-summary--list': {
24
27
  '& .ss__filter-summary__clear-all .ss__filter__value': {
25
28
  marginLeft: '5px',
@@ -64,6 +67,8 @@ export const FilterSummary = observer((properties) => {
64
67
  title: 'Current Filters',
65
68
  type: 'inline',
66
69
  clearAllLabel: 'Clear All',
70
+ noFiltersText: 'No filters applied',
71
+ hideNoFiltersText: true,
67
72
  clearAllIcon: 'close-thin',
68
73
  filterIcon: 'close-thin',
69
74
  filters: properties.controller?.store?.filters,
@@ -71,7 +76,7 @@ export const FilterSummary = observer((properties) => {
71
76
  treePath: globalTreePath,
72
77
  };
73
78
  const props = mergeProps('filterSummary', globalTheme, defaultProps, properties);
74
- const { filters, title, type, filterIcon, clearAllIcon, separator, hideFacetLabel, hideTitle, clearAllLabel, hideClearAll, onClick, onClearAllClick, disableStyles, className, internalClassName, treePath, } = props;
79
+ const { filters, title, type, filterIcon, clearAllIcon, separator, hideFacetLabel, hideTitle, clearAllLabel, hideClearAll, noFiltersText, hideNoFiltersText, onClick, onClearAllClick, disableStyles, className, internalClassName, treePath, } = props;
75
80
  const { overrideElement, shouldRenderDefault } = useCustomComponentOverride('filterSummary', props);
76
81
  if (!shouldRenderDefault) {
77
82
  return overrideElement;
@@ -102,16 +107,22 @@ export const FilterSummary = observer((properties) => {
102
107
  clearAllLabel: {
103
108
  value: clearAllLabel,
104
109
  },
110
+ noFiltersText: {
111
+ value: noFiltersText,
112
+ },
105
113
  };
106
114
  //deep merge with props.lang
107
115
  const lang = deepmerge(defaultLang, props.lang || {});
108
- const mergedLang = useLang(lang, {
109
- filters,
110
- }, { activeBreakpoint: globalTheme?.activeBreakpoint });
111
- return filters?.length ? (_jsx(CacheProvider, { children: _jsxs("div", { ...styling, className: classnames('ss__filter-summary', { 'ss__filter-summary--list': type === 'list' }, { 'ss__filter-summary--inline': type === 'inline' }, className, internalClassName), children: [!hideTitle && _jsx("div", { className: "ss__filter-summary__title", ...mergedLang.title?.all }), _jsxs("div", { className: "ss__filter-summary__filters", children: [filters.map((filter) => (_jsx(Filter, { ...subProps.filter, filter: filter, onClick: (e) => onClick && onClick(e, filter) }))), !hideClearAll && (_jsx(Filter, { ...subProps.filter, name: 'clear-all', icon: clearAllIcon, internalClassName: `${subProps?.filter?.internalClassName} ss__filter-summary__clear-all`, hideFacetLabel: true, valueLabel: clearAllLabel, onClick: (e) => {
116
+ const langOptions = { activeBreakpoint: globalTheme?.activeBreakpoint };
117
+ const mergedLang = {
118
+ ...useLang({ title: lang.title }, { filters }, langOptions),
119
+ ...useLang({ noFiltersText: lang.noFiltersText }, { controller: properties.controller }, langOptions),
120
+ };
121
+ if (!filters?.length && hideNoFiltersText) {
122
+ return null;
123
+ }
124
+ return (_jsx(CacheProvider, { children: _jsxs("div", { ...styling, className: classnames('ss__filter-summary', { 'ss__filter-summary--list': type === 'list' }, { 'ss__filter-summary--inline': type === 'inline' }, { 'ss__filter-summary--no-filters': !filters?.length }, className, internalClassName), children: [!hideTitle && _jsx("div", { className: "ss__filter-summary__title", ...mergedLang.title?.all }), filters?.length ? (_jsxs("div", { className: "ss__filter-summary__filters", children: [filters.map((filter) => (_jsx(Filter, { ...subProps.filter, filter: filter, onClick: (e) => onClick && onClick(e, filter) }))), !hideClearAll && (_jsx(Filter, { ...subProps.filter, name: 'clear-all', icon: clearAllIcon, internalClassName: `${subProps?.filter?.internalClassName} ss__filter-summary__clear-all`, hideFacetLabel: true, valueLabel: clearAllLabel, onClick: (e) => {
112
125
  onClearAllClick && onClearAllClick(e);
113
126
  properties.controller?.urlManager.remove('filter').remove('page').go();
114
- }, lang: {
115
- filter: { attributes: { 'aria-label': clearAllLabel } },
116
- } }))] })] }) })) : null;
127
+ }, lang: { filter: lang.clearAllLabel } }))] })) : (_jsx("div", { className: "ss__filter-summary__no-filters", ...mergedLang.noFiltersText?.all }))] }) }));
117
128
  });