@athoscommerce/snap-preact 1.6.0 → 1.7.1-beta.121

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 (819) hide show
  1. package/dist/cjs/components/src/components/Atoms/BadgeImage/BadgeImage.d.ts +2 -1
  2. package/dist/cjs/components/src/components/Atoms/BadgeImage/BadgeImage.d.ts.map +1 -1
  3. package/dist/cjs/components/src/components/Atoms/BadgeImage/BadgeImage.js +4 -8
  4. package/dist/cjs/components/src/components/Atoms/BadgePill/BadgePill.d.ts +2 -1
  5. package/dist/cjs/components/src/components/Atoms/BadgePill/BadgePill.d.ts.map +1 -1
  6. package/dist/cjs/components/src/components/Atoms/BadgePill/BadgePill.js +4 -8
  7. package/dist/cjs/components/src/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts +2 -1
  8. package/dist/cjs/components/src/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts.map +1 -1
  9. package/dist/cjs/components/src/components/Atoms/BadgeRectangle/BadgeRectangle.js +4 -8
  10. package/dist/cjs/components/src/components/Atoms/BadgeText/BadgeText.d.ts +2 -1
  11. package/dist/cjs/components/src/components/Atoms/BadgeText/BadgeText.d.ts.map +1 -1
  12. package/dist/cjs/components/src/components/Atoms/BadgeText/BadgeText.js +4 -8
  13. package/dist/cjs/components/src/components/Atoms/Banner/Banner.d.ts.map +1 -1
  14. package/dist/cjs/components/src/components/Atoms/Banner/Banner.js +6 -9
  15. package/dist/cjs/components/src/components/Atoms/Breadcrumbs/Breadcrumbs.d.ts +2 -1
  16. package/dist/cjs/components/src/components/Atoms/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  17. package/dist/cjs/components/src/components/Atoms/Breadcrumbs/Breadcrumbs.js +4 -8
  18. package/dist/cjs/components/src/components/Atoms/Button/Button.d.ts +4 -4
  19. package/dist/cjs/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  20. package/dist/cjs/components/src/components/Atoms/Button/Button.js +8 -9
  21. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
  22. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  23. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +85 -0
  24. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  25. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  26. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +17 -0
  27. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts +6 -2
  28. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  29. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +54 -21
  30. package/dist/cjs/components/src/components/Atoms/FormattedNumber/FormattedNumber.d.ts +2 -1
  31. package/dist/cjs/components/src/components/Atoms/FormattedNumber/FormattedNumber.d.ts.map +1 -1
  32. package/dist/cjs/components/src/components/Atoms/FormattedNumber/FormattedNumber.js +4 -8
  33. package/dist/cjs/components/src/components/Atoms/Icon/Icon.d.ts +3 -2
  34. package/dist/cjs/components/src/components/Atoms/Icon/Icon.d.ts.map +1 -1
  35. package/dist/cjs/components/src/components/Atoms/Icon/Icon.js +17 -9
  36. package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts +21 -0
  37. package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  38. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +21 -0
  39. package/dist/cjs/components/src/components/Atoms/Image/Image.d.ts +2 -1
  40. package/dist/cjs/components/src/components/Atoms/Image/Image.d.ts.map +1 -1
  41. package/dist/cjs/components/src/components/Atoms/Image/Image.js +4 -8
  42. package/dist/cjs/components/src/components/Atoms/InlineBanner/InlineBanner.d.ts.map +1 -1
  43. package/dist/cjs/components/src/components/Atoms/InlineBanner/InlineBanner.js +4 -8
  44. package/dist/cjs/components/src/components/Atoms/LoadingBar/LoadingBar.d.ts +2 -1
  45. package/dist/cjs/components/src/components/Atoms/LoadingBar/LoadingBar.d.ts.map +1 -1
  46. package/dist/cjs/components/src/components/Atoms/LoadingBar/LoadingBar.js +4 -8
  47. package/dist/cjs/components/src/components/Atoms/Overlay/Overlay.d.ts +2 -1
  48. package/dist/cjs/components/src/components/Atoms/Overlay/Overlay.d.ts.map +1 -1
  49. package/dist/cjs/components/src/components/Atoms/Overlay/Overlay.js +4 -8
  50. package/dist/cjs/components/src/components/Atoms/PaginationInfo/PaginationInfo.d.ts +2 -1
  51. package/dist/cjs/components/src/components/Atoms/PaginationInfo/PaginationInfo.d.ts.map +1 -1
  52. package/dist/cjs/components/src/components/Atoms/PaginationInfo/PaginationInfo.js +8 -11
  53. package/dist/cjs/components/src/components/Atoms/Price/Price.d.ts +2 -1
  54. package/dist/cjs/components/src/components/Atoms/Price/Price.d.ts.map +1 -1
  55. package/dist/cjs/components/src/components/Atoms/Price/Price.js +4 -8
  56. package/dist/cjs/components/src/components/Atoms/SearchHeader/SearchHeader.d.ts +2 -1
  57. package/dist/cjs/components/src/components/Atoms/SearchHeader/SearchHeader.d.ts.map +1 -1
  58. package/dist/cjs/components/src/components/Atoms/SearchHeader/SearchHeader.js +6 -9
  59. package/dist/cjs/components/src/components/Atoms/Skeleton/Skeleton.d.ts +2 -1
  60. package/dist/cjs/components/src/components/Atoms/Skeleton/Skeleton.d.ts.map +1 -1
  61. package/dist/cjs/components/src/components/Atoms/Skeleton/Skeleton.js +4 -8
  62. package/dist/cjs/components/src/components/Molecules/CalloutBadge/CalloutBadge.d.ts +2 -1
  63. package/dist/cjs/components/src/components/Molecules/CalloutBadge/CalloutBadge.d.ts.map +1 -1
  64. package/dist/cjs/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +15 -15
  65. package/dist/cjs/components/src/components/Molecules/Carousel/Carousel.d.ts +2 -2
  66. package/dist/cjs/components/src/components/Molecules/Carousel/Carousel.d.ts.map +1 -1
  67. package/dist/cjs/components/src/components/Molecules/Carousel/Carousel.js +42 -38
  68. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +20 -0
  69. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
  70. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +187 -0
  71. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
  72. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
  73. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +17 -0
  74. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  75. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  76. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +154 -0
  77. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  78. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  79. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +17 -0
  80. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +21 -0
  81. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
  82. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +211 -0
  83. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
  84. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
  85. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +17 -0
  86. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +16 -0
  87. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
  88. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +255 -0
  89. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
  90. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
  91. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +17 -0
  92. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  93. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  94. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +143 -0
  95. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  96. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  97. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +17 -0
  98. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +25 -0
  99. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  100. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +487 -0
  101. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  102. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  103. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +17 -0
  104. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.d.ts +11 -0
  105. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
  106. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +200 -0
  107. package/dist/cjs/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
  108. package/dist/cjs/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
  109. package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +17 -0
  110. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +12 -0
  111. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
  112. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +123 -0
  113. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
  114. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
  115. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +17 -0
  116. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +15 -0
  117. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
  118. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +99 -0
  119. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
  120. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
  121. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +17 -0
  122. package/dist/cjs/components/src/components/Molecules/Checkbox/Checkbox.d.ts +2 -1
  123. package/dist/cjs/components/src/components/Molecules/Checkbox/Checkbox.d.ts.map +1 -1
  124. package/dist/cjs/components/src/components/Molecules/Checkbox/Checkbox.js +6 -9
  125. package/dist/cjs/components/src/components/Molecules/ErrorHandler/ErrorHandler.d.ts +2 -1
  126. package/dist/cjs/components/src/components/Molecules/ErrorHandler/ErrorHandler.d.ts.map +1 -1
  127. package/dist/cjs/components/src/components/Molecules/ErrorHandler/ErrorHandler.js +6 -9
  128. package/dist/cjs/components/src/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts +2 -1
  129. package/dist/cjs/components/src/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts.map +1 -1
  130. package/dist/cjs/components/src/components/Molecules/FacetGridOptions/FacetGridOptions.js +4 -8
  131. package/dist/cjs/components/src/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts +2 -1
  132. package/dist/cjs/components/src/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts.map +1 -1
  133. package/dist/cjs/components/src/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.js +4 -8
  134. package/dist/cjs/components/src/components/Molecules/FacetListOptions/FacetListOptions.d.ts +2 -1
  135. package/dist/cjs/components/src/components/Molecules/FacetListOptions/FacetListOptions.d.ts.map +1 -1
  136. package/dist/cjs/components/src/components/Molecules/FacetListOptions/FacetListOptions.js +4 -8
  137. package/dist/cjs/components/src/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts +2 -1
  138. package/dist/cjs/components/src/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts.map +1 -1
  139. package/dist/cjs/components/src/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.js +4 -8
  140. package/dist/cjs/components/src/components/Molecules/FacetSlider/FacetSlider.d.ts +2 -1
  141. package/dist/cjs/components/src/components/Molecules/FacetSlider/FacetSlider.d.ts.map +1 -1
  142. package/dist/cjs/components/src/components/Molecules/FacetSlider/FacetSlider.js +13 -16
  143. package/dist/cjs/components/src/components/Molecules/Filter/Filter.d.ts +2 -1
  144. package/dist/cjs/components/src/components/Molecules/Filter/Filter.d.ts.map +1 -1
  145. package/dist/cjs/components/src/components/Molecules/Filter/Filter.js +7 -10
  146. package/dist/cjs/components/src/components/Molecules/Grid/Grid.d.ts +2 -1
  147. package/dist/cjs/components/src/components/Molecules/Grid/Grid.d.ts.map +1 -1
  148. package/dist/cjs/components/src/components/Molecules/Grid/Grid.js +4 -8
  149. package/dist/cjs/components/src/components/Molecules/LayoutSelector/LayoutSelector.d.ts +2 -1
  150. package/dist/cjs/components/src/components/Molecules/LayoutSelector/LayoutSelector.d.ts.map +1 -1
  151. package/dist/cjs/components/src/components/Molecules/LayoutSelector/LayoutSelector.js +4 -8
  152. package/dist/cjs/components/src/components/Molecules/List/List.d.ts +2 -1
  153. package/dist/cjs/components/src/components/Molecules/List/List.d.ts.map +1 -1
  154. package/dist/cjs/components/src/components/Molecules/List/List.js +6 -9
  155. package/dist/cjs/components/src/components/Molecules/LoadMore/LoadMore.d.ts +2 -1
  156. package/dist/cjs/components/src/components/Molecules/LoadMore/LoadMore.d.ts.map +1 -1
  157. package/dist/cjs/components/src/components/Molecules/LoadMore/LoadMore.js +8 -11
  158. package/dist/cjs/components/src/components/Molecules/Modal/Modal.d.ts +2 -2
  159. package/dist/cjs/components/src/components/Molecules/Modal/Modal.d.ts.map +1 -1
  160. package/dist/cjs/components/src/components/Molecules/Modal/Modal.js +4 -8
  161. package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  162. package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  163. package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +21 -21
  164. package/dist/cjs/components/src/components/Molecules/OverlayResult/OverlayResult.d.ts +48 -0
  165. package/dist/cjs/components/src/components/Molecules/OverlayResult/OverlayResult.d.ts.map +1 -0
  166. package/dist/cjs/components/src/components/Molecules/OverlayResult/OverlayResult.js +241 -0
  167. package/dist/cjs/components/src/components/Molecules/OverlayResult/index.d.ts +2 -0
  168. package/dist/cjs/components/src/components/Molecules/OverlayResult/index.d.ts.map +1 -0
  169. package/dist/cjs/components/src/components/Molecules/OverlayResult/index.js +17 -0
  170. package/dist/cjs/components/src/components/Molecules/Pagination/Pagination.d.ts +2 -1
  171. package/dist/cjs/components/src/components/Molecules/Pagination/Pagination.d.ts.map +1 -1
  172. package/dist/cjs/components/src/components/Molecules/Pagination/Pagination.js +8 -11
  173. package/dist/cjs/components/src/components/Molecules/PerPage/PerPage.d.ts +2 -1
  174. package/dist/cjs/components/src/components/Molecules/PerPage/PerPage.d.ts.map +1 -1
  175. package/dist/cjs/components/src/components/Molecules/PerPage/PerPage.js +8 -11
  176. package/dist/cjs/components/src/components/Molecules/Radio/Radio.d.ts +2 -1
  177. package/dist/cjs/components/src/components/Molecules/Radio/Radio.d.ts.map +1 -1
  178. package/dist/cjs/components/src/components/Molecules/Radio/Radio.js +6 -9
  179. package/dist/cjs/components/src/components/Molecules/RadioList/RadioList.d.ts +2 -1
  180. package/dist/cjs/components/src/components/Molecules/RadioList/RadioList.d.ts.map +1 -1
  181. package/dist/cjs/components/src/components/Molecules/RadioList/RadioList.js +6 -9
  182. package/dist/cjs/components/src/components/Molecules/Rating/Rating.d.ts +2 -1
  183. package/dist/cjs/components/src/components/Molecules/Rating/Rating.d.ts.map +1 -1
  184. package/dist/cjs/components/src/components/Molecules/Rating/Rating.js +4 -8
  185. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts +7 -5
  186. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  187. package/dist/cjs/components/src/components/Molecules/Result/Result.js +18 -15
  188. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts +4 -1
  189. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  190. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +22 -9
  191. package/dist/cjs/components/src/components/Molecules/Select/Select.d.ts +2 -1
  192. package/dist/cjs/components/src/components/Molecules/Select/Select.d.ts.map +1 -1
  193. package/dist/cjs/components/src/components/Molecules/Select/Select.js +6 -9
  194. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.d.ts +2 -2
  195. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  196. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +25 -34
  197. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.d.ts +2 -1
  198. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  199. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +11 -10
  200. package/dist/cjs/components/src/components/Molecules/SortBy/SortBy.d.ts +2 -1
  201. package/dist/cjs/components/src/components/Molecules/SortBy/SortBy.d.ts.map +1 -1
  202. package/dist/cjs/components/src/components/Molecules/SortBy/SortBy.js +7 -10
  203. package/dist/cjs/components/src/components/Molecules/Swatches/Swatches.d.ts +2 -1
  204. package/dist/cjs/components/src/components/Molecules/Swatches/Swatches.d.ts.map +1 -1
  205. package/dist/cjs/components/src/components/Molecules/Swatches/Swatches.js +4 -8
  206. package/dist/cjs/components/src/components/Molecules/Terms/Terms.d.ts +2 -1
  207. package/dist/cjs/components/src/components/Molecules/Terms/Terms.d.ts.map +1 -1
  208. package/dist/cjs/components/src/components/Molecules/Terms/Terms.js +5 -8
  209. package/dist/cjs/components/src/components/Molecules/VariantSelection/VariantSelection.d.ts +2 -1
  210. package/dist/cjs/components/src/components/Molecules/VariantSelection/VariantSelection.d.ts.map +1 -1
  211. package/dist/cjs/components/src/components/Molecules/VariantSelection/VariantSelection.js +4 -8
  212. package/dist/cjs/components/src/components/Organisms/Autocomplete/Autocomplete.d.ts +2 -1
  213. package/dist/cjs/components/src/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
  214. package/dist/cjs/components/src/components/Organisms/Autocomplete/Autocomplete.js +20 -25
  215. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts +3 -2
  216. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
  217. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +14 -6
  218. package/dist/cjs/components/src/components/Organisms/BranchOverride/BranchOverride.d.ts +2 -1
  219. package/dist/cjs/components/src/components/Organisms/BranchOverride/BranchOverride.d.ts.map +1 -1
  220. package/dist/cjs/components/src/components/Organisms/BranchOverride/BranchOverride.js +4 -8
  221. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts +30 -0
  222. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  223. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +1030 -0
  224. package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.d.ts +16 -0
  225. package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.d.ts.map +1 -0
  226. package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.js +1186 -0
  227. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
  228. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
  229. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +104 -0
  230. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
  231. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
  232. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +98 -0
  233. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +44 -0
  234. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
  235. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +116 -0
  236. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts +2 -0
  237. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  238. package/dist/cjs/components/src/components/Organisms/Chat/index.js +17 -0
  239. package/dist/cjs/components/src/components/Organisms/Facet/Facet.d.ts +2 -1
  240. package/dist/cjs/components/src/components/Organisms/Facet/Facet.d.ts.map +1 -1
  241. package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +16 -18
  242. package/dist/cjs/components/src/components/Organisms/Facets/Facets.d.ts +2 -1
  243. package/dist/cjs/components/src/components/Organisms/Facets/Facets.d.ts.map +1 -1
  244. package/dist/cjs/components/src/components/Organisms/Facets/Facets.js +5 -8
  245. package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.d.ts +2 -1
  246. package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.d.ts.map +1 -1
  247. package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +7 -9
  248. package/dist/cjs/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts +2 -1
  249. package/dist/cjs/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts.map +1 -1
  250. package/dist/cjs/components/src/components/Organisms/FilterSummary/FilterSummary.js +6 -9
  251. package/dist/cjs/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts +2 -1
  252. package/dist/cjs/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts.map +1 -1
  253. package/dist/cjs/components/src/components/Organisms/MobileSidebar/MobileSidebar.js +4 -8
  254. package/dist/cjs/components/src/components/Organisms/NoResults/NoResults.d.ts +2 -1
  255. package/dist/cjs/components/src/components/Organisms/NoResults/NoResults.d.ts.map +1 -1
  256. package/dist/cjs/components/src/components/Organisms/NoResults/NoResults.js +25 -26
  257. package/dist/cjs/components/src/components/Organisms/Results/Results.d.ts +4 -2
  258. package/dist/cjs/components/src/components/Organisms/Results/Results.d.ts.map +1 -1
  259. package/dist/cjs/components/src/components/Organisms/Results/Results.js +19 -12
  260. package/dist/cjs/components/src/components/Organisms/Sidebar/Sidebar.d.ts +2 -1
  261. package/dist/cjs/components/src/components/Organisms/Sidebar/Sidebar.d.ts.map +1 -1
  262. package/dist/cjs/components/src/components/Organisms/Sidebar/Sidebar.js +6 -9
  263. package/dist/cjs/components/src/components/Organisms/TermsList/TermsList.d.ts +2 -1
  264. package/dist/cjs/components/src/components/Organisms/TermsList/TermsList.d.ts.map +1 -1
  265. package/dist/cjs/components/src/components/Organisms/TermsList/TermsList.js +4 -8
  266. package/dist/cjs/components/src/components/Organisms/Toolbar/Toolbar.d.ts +2 -1
  267. package/dist/cjs/components/src/components/Organisms/Toolbar/Toolbar.d.ts.map +1 -1
  268. package/dist/cjs/components/src/components/Organisms/Toolbar/Toolbar.js +4 -8
  269. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +5 -4
  270. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  271. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +3 -1
  272. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +5 -4
  273. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  274. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +3 -1
  275. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +5 -4
  276. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  277. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +3 -1
  278. package/dist/cjs/components/src/components/Templates/Chat/Chat.d.ts +12 -0
  279. package/dist/cjs/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
  280. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +55 -0
  281. package/dist/cjs/components/src/components/Templates/Chat/index.d.ts +2 -0
  282. package/dist/cjs/components/src/components/Templates/Chat/index.d.ts.map +1 -0
  283. package/dist/cjs/components/src/components/Templates/Chat/index.js +17 -0
  284. package/dist/cjs/components/src/components/Templates/Recommendation/Recommendation.d.ts +2 -1
  285. package/dist/cjs/components/src/components/Templates/Recommendation/Recommendation.d.ts.map +1 -1
  286. package/dist/cjs/components/src/components/Templates/Recommendation/Recommendation.js +17 -7
  287. package/dist/cjs/components/src/components/Templates/RecommendationBundle/RecommendationBundle.d.ts +2 -1
  288. package/dist/cjs/components/src/components/Templates/RecommendationBundle/RecommendationBundle.d.ts.map +1 -1
  289. package/dist/cjs/components/src/components/Templates/RecommendationBundle/RecommendationBundle.js +32 -14
  290. package/dist/cjs/components/src/components/Templates/RecommendationBundleEasyAdd/RecommendationBundleEasyAdd.d.ts +1 -1
  291. package/dist/cjs/components/src/components/Templates/RecommendationBundleEasyAdd/RecommendationBundleEasyAdd.d.ts.map +1 -1
  292. package/dist/cjs/components/src/components/Templates/RecommendationBundleList/RecommendationBundleList.d.ts +1 -1
  293. package/dist/cjs/components/src/components/Templates/RecommendationBundleList/RecommendationBundleList.d.ts.map +1 -1
  294. package/dist/cjs/components/src/components/Templates/RecommendationBundleVertical/RecommendationBundleVertical.d.ts +1 -1
  295. package/dist/cjs/components/src/components/Templates/RecommendationBundleVertical/RecommendationBundleVertical.d.ts.map +1 -1
  296. package/dist/cjs/components/src/components/Templates/RecommendationEmail/RecommendationEmail.d.ts +2 -1
  297. package/dist/cjs/components/src/components/Templates/RecommendationEmail/RecommendationEmail.d.ts.map +1 -1
  298. package/dist/cjs/components/src/components/Templates/RecommendationEmail/RecommendationEmail.js +16 -5
  299. package/dist/cjs/components/src/components/Templates/RecommendationGrid/RecommendationGrid.d.ts +2 -1
  300. package/dist/cjs/components/src/components/Templates/RecommendationGrid/RecommendationGrid.d.ts.map +1 -1
  301. package/dist/cjs/components/src/components/Templates/RecommendationGrid/RecommendationGrid.js +15 -5
  302. package/dist/cjs/components/src/components/Templates/Search/Search.d.ts +2 -1
  303. package/dist/cjs/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  304. package/dist/cjs/components/src/components/Templates/Search/Search.js +2 -4
  305. package/dist/cjs/components/src/components/Templates/SearchCollapsible/SearchCollapsible.d.ts +1 -1
  306. package/dist/cjs/components/src/components/Templates/SearchCollapsible/SearchCollapsible.d.ts.map +1 -1
  307. package/dist/cjs/components/src/components/Templates/SearchHorizontal/SearchHorizontal.d.ts +1 -1
  308. package/dist/cjs/components/src/components/Templates/SearchHorizontal/SearchHorizontal.d.ts.map +1 -1
  309. package/dist/cjs/components/src/hooks/createRecommendationTemplate.d.ts.map +1 -1
  310. package/dist/cjs/components/src/hooks/createRecommendationTemplate.js +17 -13
  311. package/dist/cjs/components/src/hooks/index.d.ts +1 -0
  312. package/dist/cjs/components/src/hooks/index.d.ts.map +1 -1
  313. package/dist/cjs/components/src/hooks/index.js +1 -0
  314. package/dist/cjs/components/src/hooks/useComponent.d.ts +5 -1
  315. package/dist/cjs/components/src/hooks/useComponent.d.ts.map +1 -1
  316. package/dist/cjs/components/src/hooks/useComponent.js +42 -4
  317. package/dist/cjs/components/src/hooks/useCustomComponentOverride.d.ts +12 -0
  318. package/dist/cjs/components/src/hooks/useCustomComponentOverride.d.ts.map +1 -0
  319. package/dist/cjs/components/src/hooks/useCustomComponentOverride.js +31 -0
  320. package/dist/cjs/components/src/hooks/useLayoutOptions.d.ts.map +1 -1
  321. package/dist/cjs/components/src/hooks/useLayoutOptions.js +5 -0
  322. package/dist/cjs/components/src/index.d.ts +23 -1
  323. package/dist/cjs/components/src/index.d.ts.map +1 -1
  324. package/dist/cjs/components/src/index.js +26 -2
  325. package/dist/cjs/components/src/providers/theme.d.ts +1 -1
  326. package/dist/cjs/components/src/providers/theme.d.ts.map +1 -1
  327. package/dist/cjs/components/src/providers/themeComponents.d.ts +78 -2
  328. package/dist/cjs/components/src/providers/themeComponents.d.ts.map +1 -1
  329. package/dist/cjs/components/src/providers/themeComponents.js +75 -0
  330. package/dist/cjs/components/src/providers/withTracking.d.ts +2 -2
  331. package/dist/cjs/components/src/providers/withTracking.d.ts.map +1 -1
  332. package/dist/cjs/components/src/setupTests.js +17 -0
  333. package/dist/cjs/components/src/themes/base/components/templates/chat.d.ts +4 -0
  334. package/dist/cjs/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
  335. package/dist/cjs/components/src/themes/base/components/templates/chat.js +6 -0
  336. package/dist/cjs/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  337. package/dist/cjs/components/src/themes/base/components/templates/index.js +5 -4
  338. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
  339. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
  340. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +6 -0
  341. package/dist/cjs/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  342. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +5 -4
  343. package/dist/cjs/components/src/themes/pike/components/templates/autocompleteFixed.js +4 -4
  344. package/dist/cjs/components/src/themes/pike/components/templates/autocompleteModal.js +4 -4
  345. package/dist/cjs/components/src/themes/pike/components/templates/autocompleteShared.js +3 -3
  346. package/dist/cjs/components/src/themes/pike/components/templates/autocompleteSlideout.js +4 -4
  347. package/dist/cjs/components/src/themes/pike/components/templates/chat.d.ts +4 -0
  348. package/dist/cjs/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
  349. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +6 -0
  350. package/dist/cjs/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  351. package/dist/cjs/components/src/themes/pike/components/templates/index.js +5 -4
  352. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
  353. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
  354. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +6 -0
  355. package/dist/cjs/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  356. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +5 -4
  357. package/dist/cjs/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
  358. package/dist/cjs/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
  359. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +6 -0
  360. package/dist/cjs/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  361. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +5 -4
  362. package/dist/cjs/components/src/themes/themeComponents/autocompleteFixed.js +1 -1
  363. package/dist/cjs/components/src/themes/themeComponents/autocompleteModal.js +1 -1
  364. package/dist/cjs/components/src/themes/themeComponents/autocompleteSlideout.js +1 -1
  365. package/dist/cjs/components/src/themes/themeComponents/chat.d.ts +4 -0
  366. package/dist/cjs/components/src/themes/themeComponents/chat.d.ts.map +1 -0
  367. package/dist/cjs/components/src/themes/themeComponents/chat.js +14 -0
  368. package/dist/cjs/components/src/utilities/Colour/Colour.d.ts +11 -0
  369. package/dist/cjs/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  370. package/dist/cjs/components/src/utilities/Colour/Colour.js +32 -0
  371. package/dist/cjs/components/src/utilities/mergeProps.d.ts.map +1 -1
  372. package/dist/cjs/components/src/utilities/mergeProps.js +2 -2
  373. package/dist/cjs/components/src/utilities/snapify.d.ts +3 -2
  374. package/dist/cjs/components/src/utilities/snapify.d.ts.map +1 -1
  375. package/dist/cjs/components/src/utilities/snapify.js +48 -0
  376. package/dist/cjs/src/Snap.d.ts +2 -1
  377. package/dist/cjs/src/Snap.d.ts.map +1 -1
  378. package/dist/cjs/src/Snap.js +134 -24
  379. package/dist/cjs/src/Templates/SnapTemplates.d.ts +2 -1
  380. package/dist/cjs/src/Templates/SnapTemplates.d.ts.map +1 -1
  381. package/dist/cjs/src/Templates/SnapTemplates.js +67 -5
  382. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts +7 -4
  383. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  384. package/dist/cjs/src/Templates/Stores/LibraryStore.js +48 -67
  385. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts +21 -70
  386. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  387. package/dist/cjs/src/Templates/Stores/TemplateStore.js +2 -1
  388. package/dist/cjs/src/Templates/Stores/ThemeStore.d.ts +1 -1
  389. package/dist/cjs/src/Templates/Stores/ThemeStore.d.ts.map +1 -1
  390. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  391. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  392. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +5 -0
  393. package/dist/cjs/src/Templates/Stores/library/components/OverlayResult.d.ts +2 -0
  394. package/dist/cjs/src/Templates/Stores/library/components/OverlayResult.d.ts.map +1 -0
  395. package/dist/cjs/src/Templates/Stores/library/components/OverlayResult.js +5 -0
  396. package/dist/cjs/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  397. package/dist/cjs/src/Templates/Stores/library/languages/es.js +5 -0
  398. package/dist/cjs/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  399. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +5 -0
  400. package/dist/cjs/src/Templates/index.d.ts +1 -1
  401. package/dist/cjs/src/Templates/index.d.ts.map +1 -1
  402. package/dist/cjs/src/create/createChatController.d.ts +5 -0
  403. package/dist/cjs/src/create/createChatController.d.ts.map +1 -0
  404. package/dist/cjs/src/create/createChatController.js +43 -0
  405. package/dist/cjs/src/setupEvents.d.ts +13 -0
  406. package/dist/cjs/src/setupEvents.d.ts.map +1 -1
  407. package/dist/cjs/src/setupEvents.js +87 -0
  408. package/dist/cjs/src/types.d.ts +15 -3
  409. package/dist/cjs/src/types.d.ts.map +1 -1
  410. package/dist/esm/components/src/components/Atoms/BadgeImage/BadgeImage.d.ts +2 -1
  411. package/dist/esm/components/src/components/Atoms/BadgeImage/BadgeImage.d.ts.map +1 -1
  412. package/dist/esm/components/src/components/Atoms/BadgeImage/BadgeImage.js +6 -9
  413. package/dist/esm/components/src/components/Atoms/BadgePill/BadgePill.d.ts +2 -1
  414. package/dist/esm/components/src/components/Atoms/BadgePill/BadgePill.d.ts.map +1 -1
  415. package/dist/esm/components/src/components/Atoms/BadgePill/BadgePill.js +6 -9
  416. package/dist/esm/components/src/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts +2 -1
  417. package/dist/esm/components/src/components/Atoms/BadgeRectangle/BadgeRectangle.d.ts.map +1 -1
  418. package/dist/esm/components/src/components/Atoms/BadgeRectangle/BadgeRectangle.js +6 -9
  419. package/dist/esm/components/src/components/Atoms/BadgeText/BadgeText.d.ts +2 -1
  420. package/dist/esm/components/src/components/Atoms/BadgeText/BadgeText.d.ts.map +1 -1
  421. package/dist/esm/components/src/components/Atoms/BadgeText/BadgeText.js +6 -9
  422. package/dist/esm/components/src/components/Atoms/Banner/Banner.d.ts.map +1 -1
  423. package/dist/esm/components/src/components/Atoms/Banner/Banner.js +6 -9
  424. package/dist/esm/components/src/components/Atoms/Breadcrumbs/Breadcrumbs.d.ts +2 -1
  425. package/dist/esm/components/src/components/Atoms/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  426. package/dist/esm/components/src/components/Atoms/Breadcrumbs/Breadcrumbs.js +6 -9
  427. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +4 -4
  428. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  429. package/dist/esm/components/src/components/Atoms/Button/Button.js +10 -11
  430. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
  431. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  432. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +67 -0
  433. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  434. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  435. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +1 -0
  436. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +6 -2
  437. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  438. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +59 -20
  439. package/dist/esm/components/src/components/Atoms/FormattedNumber/FormattedNumber.d.ts +2 -1
  440. package/dist/esm/components/src/components/Atoms/FormattedNumber/FormattedNumber.d.ts.map +1 -1
  441. package/dist/esm/components/src/components/Atoms/FormattedNumber/FormattedNumber.js +7 -10
  442. package/dist/esm/components/src/components/Atoms/Icon/Icon.d.ts +3 -2
  443. package/dist/esm/components/src/components/Atoms/Icon/Icon.d.ts.map +1 -1
  444. package/dist/esm/components/src/components/Atoms/Icon/Icon.js +23 -11
  445. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +21 -0
  446. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  447. package/dist/esm/components/src/components/Atoms/Icon/paths.js +21 -0
  448. package/dist/esm/components/src/components/Atoms/Image/Image.d.ts +2 -1
  449. package/dist/esm/components/src/components/Atoms/Image/Image.d.ts.map +1 -1
  450. package/dist/esm/components/src/components/Atoms/Image/Image.js +6 -9
  451. package/dist/esm/components/src/components/Atoms/InlineBanner/InlineBanner.d.ts.map +1 -1
  452. package/dist/esm/components/src/components/Atoms/InlineBanner/InlineBanner.js +6 -9
  453. package/dist/esm/components/src/components/Atoms/LoadingBar/LoadingBar.d.ts +2 -1
  454. package/dist/esm/components/src/components/Atoms/LoadingBar/LoadingBar.d.ts.map +1 -1
  455. package/dist/esm/components/src/components/Atoms/LoadingBar/LoadingBar.js +6 -9
  456. package/dist/esm/components/src/components/Atoms/Overlay/Overlay.d.ts +2 -1
  457. package/dist/esm/components/src/components/Atoms/Overlay/Overlay.d.ts.map +1 -1
  458. package/dist/esm/components/src/components/Atoms/Overlay/Overlay.js +6 -9
  459. package/dist/esm/components/src/components/Atoms/PaginationInfo/PaginationInfo.d.ts +2 -1
  460. package/dist/esm/components/src/components/Atoms/PaginationInfo/PaginationInfo.d.ts.map +1 -1
  461. package/dist/esm/components/src/components/Atoms/PaginationInfo/PaginationInfo.js +6 -9
  462. package/dist/esm/components/src/components/Atoms/Price/Price.d.ts +2 -1
  463. package/dist/esm/components/src/components/Atoms/Price/Price.d.ts.map +1 -1
  464. package/dist/esm/components/src/components/Atoms/Price/Price.js +7 -10
  465. package/dist/esm/components/src/components/Atoms/SearchHeader/SearchHeader.d.ts +2 -1
  466. package/dist/esm/components/src/components/Atoms/SearchHeader/SearchHeader.d.ts.map +1 -1
  467. package/dist/esm/components/src/components/Atoms/SearchHeader/SearchHeader.js +6 -9
  468. package/dist/esm/components/src/components/Atoms/Skeleton/Skeleton.d.ts +2 -1
  469. package/dist/esm/components/src/components/Atoms/Skeleton/Skeleton.d.ts.map +1 -1
  470. package/dist/esm/components/src/components/Atoms/Skeleton/Skeleton.js +6 -9
  471. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.d.ts +2 -1
  472. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.d.ts.map +1 -1
  473. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +14 -15
  474. package/dist/esm/components/src/components/Molecules/Carousel/Carousel.d.ts +2 -2
  475. package/dist/esm/components/src/components/Molecules/Carousel/Carousel.d.ts.map +1 -1
  476. package/dist/esm/components/src/components/Molecules/Carousel/Carousel.js +47 -43
  477. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +20 -0
  478. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
  479. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +169 -0
  480. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
  481. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
  482. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +1 -0
  483. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  484. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  485. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +145 -0
  486. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  487. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  488. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +1 -0
  489. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +21 -0
  490. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
  491. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +192 -0
  492. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
  493. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
  494. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +1 -0
  495. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +16 -0
  496. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
  497. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +223 -0
  498. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
  499. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
  500. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +1 -0
  501. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  502. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  503. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +121 -0
  504. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  505. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  506. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +1 -0
  507. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +25 -0
  508. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  509. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +460 -0
  510. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  511. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  512. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +1 -0
  513. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +11 -0
  514. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
  515. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +184 -0
  516. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
  517. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
  518. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +1 -0
  519. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +12 -0
  520. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
  521. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +102 -0
  522. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
  523. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
  524. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +1 -0
  525. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +15 -0
  526. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
  527. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +80 -0
  528. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
  529. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
  530. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +1 -0
  531. package/dist/esm/components/src/components/Molecules/Checkbox/Checkbox.d.ts +2 -1
  532. package/dist/esm/components/src/components/Molecules/Checkbox/Checkbox.d.ts.map +1 -1
  533. package/dist/esm/components/src/components/Molecules/Checkbox/Checkbox.js +6 -9
  534. package/dist/esm/components/src/components/Molecules/ErrorHandler/ErrorHandler.d.ts +2 -1
  535. package/dist/esm/components/src/components/Molecules/ErrorHandler/ErrorHandler.d.ts.map +1 -1
  536. package/dist/esm/components/src/components/Molecules/ErrorHandler/ErrorHandler.js +6 -9
  537. package/dist/esm/components/src/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts +2 -1
  538. package/dist/esm/components/src/components/Molecules/FacetGridOptions/FacetGridOptions.d.ts.map +1 -1
  539. package/dist/esm/components/src/components/Molecules/FacetGridOptions/FacetGridOptions.js +6 -9
  540. package/dist/esm/components/src/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts +2 -1
  541. package/dist/esm/components/src/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.d.ts.map +1 -1
  542. package/dist/esm/components/src/components/Molecules/FacetHierarchyOptions/FacetHierarchyOptions.js +6 -9
  543. package/dist/esm/components/src/components/Molecules/FacetListOptions/FacetListOptions.d.ts +2 -1
  544. package/dist/esm/components/src/components/Molecules/FacetListOptions/FacetListOptions.d.ts.map +1 -1
  545. package/dist/esm/components/src/components/Molecules/FacetListOptions/FacetListOptions.js +6 -9
  546. package/dist/esm/components/src/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts +2 -1
  547. package/dist/esm/components/src/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.d.ts.map +1 -1
  548. package/dist/esm/components/src/components/Molecules/FacetPaletteOptions/FacetPaletteOptions.js +6 -9
  549. package/dist/esm/components/src/components/Molecules/FacetSlider/FacetSlider.d.ts +2 -1
  550. package/dist/esm/components/src/components/Molecules/FacetSlider/FacetSlider.d.ts.map +1 -1
  551. package/dist/esm/components/src/components/Molecules/FacetSlider/FacetSlider.js +6 -9
  552. package/dist/esm/components/src/components/Molecules/Filter/Filter.d.ts +2 -1
  553. package/dist/esm/components/src/components/Molecules/Filter/Filter.d.ts.map +1 -1
  554. package/dist/esm/components/src/components/Molecules/Filter/Filter.js +6 -9
  555. package/dist/esm/components/src/components/Molecules/Grid/Grid.d.ts +2 -1
  556. package/dist/esm/components/src/components/Molecules/Grid/Grid.d.ts.map +1 -1
  557. package/dist/esm/components/src/components/Molecules/Grid/Grid.js +6 -9
  558. package/dist/esm/components/src/components/Molecules/LayoutSelector/LayoutSelector.d.ts +2 -1
  559. package/dist/esm/components/src/components/Molecules/LayoutSelector/LayoutSelector.d.ts.map +1 -1
  560. package/dist/esm/components/src/components/Molecules/LayoutSelector/LayoutSelector.js +6 -9
  561. package/dist/esm/components/src/components/Molecules/List/List.d.ts +2 -1
  562. package/dist/esm/components/src/components/Molecules/List/List.d.ts.map +1 -1
  563. package/dist/esm/components/src/components/Molecules/List/List.js +6 -9
  564. package/dist/esm/components/src/components/Molecules/LoadMore/LoadMore.d.ts +2 -1
  565. package/dist/esm/components/src/components/Molecules/LoadMore/LoadMore.d.ts.map +1 -1
  566. package/dist/esm/components/src/components/Molecules/LoadMore/LoadMore.js +6 -9
  567. package/dist/esm/components/src/components/Molecules/Modal/Modal.d.ts +2 -2
  568. package/dist/esm/components/src/components/Molecules/Modal/Modal.d.ts.map +1 -1
  569. package/dist/esm/components/src/components/Molecules/Modal/Modal.js +6 -9
  570. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  571. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  572. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +14 -15
  573. package/dist/esm/components/src/components/Molecules/OverlayResult/OverlayResult.d.ts +48 -0
  574. package/dist/esm/components/src/components/Molecules/OverlayResult/OverlayResult.d.ts.map +1 -0
  575. package/dist/esm/components/src/components/Molecules/OverlayResult/OverlayResult.js +260 -0
  576. package/dist/esm/components/src/components/Molecules/OverlayResult/index.d.ts +2 -0
  577. package/dist/esm/components/src/components/Molecules/OverlayResult/index.d.ts.map +1 -0
  578. package/dist/esm/components/src/components/Molecules/OverlayResult/index.js +1 -0
  579. package/dist/esm/components/src/components/Molecules/Pagination/Pagination.d.ts +2 -1
  580. package/dist/esm/components/src/components/Molecules/Pagination/Pagination.d.ts.map +1 -1
  581. package/dist/esm/components/src/components/Molecules/Pagination/Pagination.js +6 -9
  582. package/dist/esm/components/src/components/Molecules/PerPage/PerPage.d.ts +2 -1
  583. package/dist/esm/components/src/components/Molecules/PerPage/PerPage.d.ts.map +1 -1
  584. package/dist/esm/components/src/components/Molecules/PerPage/PerPage.js +6 -9
  585. package/dist/esm/components/src/components/Molecules/Radio/Radio.d.ts +2 -1
  586. package/dist/esm/components/src/components/Molecules/Radio/Radio.d.ts.map +1 -1
  587. package/dist/esm/components/src/components/Molecules/Radio/Radio.js +6 -9
  588. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.d.ts +2 -1
  589. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.d.ts.map +1 -1
  590. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.js +6 -9
  591. package/dist/esm/components/src/components/Molecules/Rating/Rating.d.ts +2 -1
  592. package/dist/esm/components/src/components/Molecules/Rating/Rating.d.ts.map +1 -1
  593. package/dist/esm/components/src/components/Molecules/Rating/Rating.js +6 -9
  594. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +7 -5
  595. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  596. package/dist/esm/components/src/components/Molecules/Result/Result.js +21 -16
  597. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +4 -1
  598. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  599. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +40 -10
  600. package/dist/esm/components/src/components/Molecules/Select/Select.d.ts +2 -1
  601. package/dist/esm/components/src/components/Molecules/Select/Select.d.ts.map +1 -1
  602. package/dist/esm/components/src/components/Molecules/Select/Select.js +6 -9
  603. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts +2 -2
  604. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  605. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +28 -36
  606. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts +2 -1
  607. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  608. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +12 -11
  609. package/dist/esm/components/src/components/Molecules/SortBy/SortBy.d.ts +2 -1
  610. package/dist/esm/components/src/components/Molecules/SortBy/SortBy.d.ts.map +1 -1
  611. package/dist/esm/components/src/components/Molecules/SortBy/SortBy.js +6 -9
  612. package/dist/esm/components/src/components/Molecules/Swatches/Swatches.d.ts +2 -1
  613. package/dist/esm/components/src/components/Molecules/Swatches/Swatches.d.ts.map +1 -1
  614. package/dist/esm/components/src/components/Molecules/Swatches/Swatches.js +6 -9
  615. package/dist/esm/components/src/components/Molecules/Terms/Terms.d.ts +2 -1
  616. package/dist/esm/components/src/components/Molecules/Terms/Terms.d.ts.map +1 -1
  617. package/dist/esm/components/src/components/Molecules/Terms/Terms.js +6 -9
  618. package/dist/esm/components/src/components/Molecules/VariantSelection/VariantSelection.d.ts +2 -1
  619. package/dist/esm/components/src/components/Molecules/VariantSelection/VariantSelection.d.ts.map +1 -1
  620. package/dist/esm/components/src/components/Molecules/VariantSelection/VariantSelection.js +6 -9
  621. package/dist/esm/components/src/components/Organisms/Autocomplete/Autocomplete.d.ts +2 -1
  622. package/dist/esm/components/src/components/Organisms/Autocomplete/Autocomplete.d.ts.map +1 -1
  623. package/dist/esm/components/src/components/Organisms/Autocomplete/Autocomplete.js +5 -10
  624. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts +3 -2
  625. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
  626. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +14 -5
  627. package/dist/esm/components/src/components/Organisms/BranchOverride/BranchOverride.d.ts +2 -1
  628. package/dist/esm/components/src/components/Organisms/BranchOverride/BranchOverride.d.ts.map +1 -1
  629. package/dist/esm/components/src/components/Organisms/BranchOverride/BranchOverride.js +6 -9
  630. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +30 -0
  631. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  632. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +939 -0
  633. package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.d.ts +16 -0
  634. package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.d.ts.map +1 -0
  635. package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.js +1227 -0
  636. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
  637. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
  638. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +54 -0
  639. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
  640. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
  641. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +92 -0
  642. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +44 -0
  643. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
  644. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +110 -0
  645. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +2 -0
  646. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  647. package/dist/esm/components/src/components/Organisms/Chat/index.js +1 -0
  648. package/dist/esm/components/src/components/Organisms/Facet/Facet.d.ts +2 -1
  649. package/dist/esm/components/src/components/Organisms/Facet/Facet.d.ts.map +1 -1
  650. package/dist/esm/components/src/components/Organisms/Facet/Facet.js +7 -10
  651. package/dist/esm/components/src/components/Organisms/Facets/Facets.d.ts +2 -1
  652. package/dist/esm/components/src/components/Organisms/Facets/Facets.d.ts.map +1 -1
  653. package/dist/esm/components/src/components/Organisms/Facets/Facets.js +6 -9
  654. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.d.ts +2 -1
  655. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.d.ts.map +1 -1
  656. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +7 -10
  657. package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts +2 -1
  658. package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts.map +1 -1
  659. package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.js +6 -9
  660. package/dist/esm/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts +2 -1
  661. package/dist/esm/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts.map +1 -1
  662. package/dist/esm/components/src/components/Organisms/MobileSidebar/MobileSidebar.js +6 -9
  663. package/dist/esm/components/src/components/Organisms/NoResults/NoResults.d.ts +2 -1
  664. package/dist/esm/components/src/components/Organisms/NoResults/NoResults.d.ts.map +1 -1
  665. package/dist/esm/components/src/components/Organisms/NoResults/NoResults.js +22 -23
  666. package/dist/esm/components/src/components/Organisms/Results/Results.d.ts +4 -2
  667. package/dist/esm/components/src/components/Organisms/Results/Results.d.ts.map +1 -1
  668. package/dist/esm/components/src/components/Organisms/Results/Results.js +20 -13
  669. package/dist/esm/components/src/components/Organisms/Sidebar/Sidebar.d.ts +2 -1
  670. package/dist/esm/components/src/components/Organisms/Sidebar/Sidebar.d.ts.map +1 -1
  671. package/dist/esm/components/src/components/Organisms/Sidebar/Sidebar.js +6 -9
  672. package/dist/esm/components/src/components/Organisms/TermsList/TermsList.d.ts +2 -1
  673. package/dist/esm/components/src/components/Organisms/TermsList/TermsList.d.ts.map +1 -1
  674. package/dist/esm/components/src/components/Organisms/TermsList/TermsList.js +6 -9
  675. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts +2 -1
  676. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts.map +1 -1
  677. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.js +6 -9
  678. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +5 -4
  679. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  680. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +4 -1
  681. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +5 -4
  682. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  683. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +4 -1
  684. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +5 -4
  685. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  686. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +4 -1
  687. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +12 -0
  688. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
  689. package/dist/esm/components/src/components/Templates/Chat/Chat.js +42 -0
  690. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +2 -0
  691. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +1 -0
  692. package/dist/esm/components/src/components/Templates/Chat/index.js +1 -0
  693. package/dist/esm/components/src/components/Templates/Recommendation/Recommendation.d.ts +2 -1
  694. package/dist/esm/components/src/components/Templates/Recommendation/Recommendation.d.ts.map +1 -1
  695. package/dist/esm/components/src/components/Templates/Recommendation/Recommendation.js +15 -5
  696. package/dist/esm/components/src/components/Templates/RecommendationBundle/RecommendationBundle.d.ts +2 -1
  697. package/dist/esm/components/src/components/Templates/RecommendationBundle/RecommendationBundle.d.ts.map +1 -1
  698. package/dist/esm/components/src/components/Templates/RecommendationBundle/RecommendationBundle.js +25 -7
  699. package/dist/esm/components/src/components/Templates/RecommendationBundleEasyAdd/RecommendationBundleEasyAdd.d.ts +1 -1
  700. package/dist/esm/components/src/components/Templates/RecommendationBundleEasyAdd/RecommendationBundleEasyAdd.d.ts.map +1 -1
  701. package/dist/esm/components/src/components/Templates/RecommendationBundleList/RecommendationBundleList.d.ts +1 -1
  702. package/dist/esm/components/src/components/Templates/RecommendationBundleList/RecommendationBundleList.d.ts.map +1 -1
  703. package/dist/esm/components/src/components/Templates/RecommendationBundleVertical/RecommendationBundleVertical.d.ts +1 -1
  704. package/dist/esm/components/src/components/Templates/RecommendationBundleVertical/RecommendationBundleVertical.d.ts.map +1 -1
  705. package/dist/esm/components/src/components/Templates/RecommendationEmail/RecommendationEmail.d.ts +2 -1
  706. package/dist/esm/components/src/components/Templates/RecommendationEmail/RecommendationEmail.d.ts.map +1 -1
  707. package/dist/esm/components/src/components/Templates/RecommendationEmail/RecommendationEmail.js +15 -4
  708. package/dist/esm/components/src/components/Templates/RecommendationGrid/RecommendationGrid.d.ts +2 -1
  709. package/dist/esm/components/src/components/Templates/RecommendationGrid/RecommendationGrid.d.ts.map +1 -1
  710. package/dist/esm/components/src/components/Templates/RecommendationGrid/RecommendationGrid.js +15 -5
  711. package/dist/esm/components/src/components/Templates/Search/Search.d.ts +2 -1
  712. package/dist/esm/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  713. package/dist/esm/components/src/components/Templates/Search/Search.js +2 -4
  714. package/dist/esm/components/src/components/Templates/SearchCollapsible/SearchCollapsible.d.ts +1 -1
  715. package/dist/esm/components/src/components/Templates/SearchCollapsible/SearchCollapsible.d.ts.map +1 -1
  716. package/dist/esm/components/src/components/Templates/SearchHorizontal/SearchHorizontal.d.ts +1 -1
  717. package/dist/esm/components/src/components/Templates/SearchHorizontal/SearchHorizontal.d.ts.map +1 -1
  718. package/dist/esm/components/src/hooks/createRecommendationTemplate.d.ts.map +1 -1
  719. package/dist/esm/components/src/hooks/createRecommendationTemplate.js +15 -11
  720. package/dist/esm/components/src/hooks/index.d.ts +1 -0
  721. package/dist/esm/components/src/hooks/index.d.ts.map +1 -1
  722. package/dist/esm/components/src/hooks/index.js +1 -0
  723. package/dist/esm/components/src/hooks/useComponent.d.ts +5 -1
  724. package/dist/esm/components/src/hooks/useComponent.d.ts.map +1 -1
  725. package/dist/esm/components/src/hooks/useComponent.js +42 -4
  726. package/dist/esm/components/src/hooks/useCustomComponentOverride.d.ts +12 -0
  727. package/dist/esm/components/src/hooks/useCustomComponentOverride.d.ts.map +1 -0
  728. package/dist/esm/components/src/hooks/useCustomComponentOverride.js +15 -0
  729. package/dist/esm/components/src/hooks/useLayoutOptions.d.ts.map +1 -1
  730. package/dist/esm/components/src/hooks/useLayoutOptions.js +5 -0
  731. package/dist/esm/components/src/index.d.ts +23 -1
  732. package/dist/esm/components/src/index.d.ts.map +1 -1
  733. package/dist/esm/components/src/index.js +23 -1
  734. package/dist/esm/components/src/providers/theme.d.ts +1 -1
  735. package/dist/esm/components/src/providers/theme.d.ts.map +1 -1
  736. package/dist/esm/components/src/providers/themeComponents.d.ts +78 -2
  737. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  738. package/dist/esm/components/src/providers/themeComponents.js +66 -1
  739. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  740. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  741. package/dist/esm/components/src/setupTests.js +14 -0
  742. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +4 -0
  743. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
  744. package/dist/esm/components/src/themes/base/components/templates/chat.js +3 -0
  745. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  746. package/dist/esm/components/src/themes/base/components/templates/index.js +5 -0
  747. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
  748. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
  749. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +3 -0
  750. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  751. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +5 -0
  752. package/dist/esm/components/src/themes/pike/components/templates/autocompleteFixed.js +4 -4
  753. package/dist/esm/components/src/themes/pike/components/templates/autocompleteModal.js +4 -4
  754. package/dist/esm/components/src/themes/pike/components/templates/autocompleteShared.js +3 -3
  755. package/dist/esm/components/src/themes/pike/components/templates/autocompleteSlideout.js +4 -4
  756. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +4 -0
  757. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
  758. package/dist/esm/components/src/themes/pike/components/templates/chat.js +3 -0
  759. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  760. package/dist/esm/components/src/themes/pike/components/templates/index.js +5 -0
  761. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
  762. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
  763. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +3 -0
  764. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  765. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +5 -0
  766. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
  767. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
  768. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +3 -0
  769. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  770. package/dist/esm/components/src/themes/snappy/components/templates/index.js +5 -0
  771. package/dist/esm/components/src/themes/themeComponents/autocompleteFixed.js +1 -1
  772. package/dist/esm/components/src/themes/themeComponents/autocompleteModal.js +1 -1
  773. package/dist/esm/components/src/themes/themeComponents/autocompleteSlideout.js +1 -1
  774. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +4 -0
  775. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +1 -0
  776. package/dist/esm/components/src/themes/themeComponents/chat.js +11 -0
  777. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +11 -0
  778. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  779. package/dist/esm/components/src/utilities/Colour/Colour.js +30 -0
  780. package/dist/esm/components/src/utilities/mergeProps.d.ts.map +1 -1
  781. package/dist/esm/components/src/utilities/mergeProps.js +2 -1
  782. package/dist/esm/components/src/utilities/snapify.d.ts +3 -2
  783. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  784. package/dist/esm/components/src/utilities/snapify.js +29 -2
  785. package/dist/esm/src/Snap.d.ts +2 -1
  786. package/dist/esm/src/Snap.d.ts.map +1 -1
  787. package/dist/esm/src/Snap.js +72 -0
  788. package/dist/esm/src/Templates/SnapTemplates.d.ts +2 -1
  789. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  790. package/dist/esm/src/Templates/SnapTemplates.js +55 -0
  791. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +7 -4
  792. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  793. package/dist/esm/src/Templates/Stores/LibraryStore.js +14 -67
  794. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +21 -70
  795. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  796. package/dist/esm/src/Templates/Stores/TemplateStore.js +2 -1
  797. package/dist/esm/src/Templates/Stores/ThemeStore.d.ts +1 -1
  798. package/dist/esm/src/Templates/Stores/ThemeStore.d.ts.map +1 -1
  799. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  800. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  801. package/dist/esm/src/Templates/Stores/library/components/Chat.js +1 -0
  802. package/dist/esm/src/Templates/Stores/library/components/OverlayResult.d.ts +2 -0
  803. package/dist/esm/src/Templates/Stores/library/components/OverlayResult.d.ts.map +1 -0
  804. package/dist/esm/src/Templates/Stores/library/components/OverlayResult.js +1 -0
  805. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  806. package/dist/esm/src/Templates/Stores/library/languages/es.js +5 -0
  807. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  808. package/dist/esm/src/Templates/Stores/library/languages/fr.js +5 -0
  809. package/dist/esm/src/Templates/index.d.ts +1 -1
  810. package/dist/esm/src/Templates/index.d.ts.map +1 -1
  811. package/dist/esm/src/create/createChatController.d.ts +5 -0
  812. package/dist/esm/src/create/createChatController.d.ts.map +1 -0
  813. package/dist/esm/src/create/createChatController.js +29 -0
  814. package/dist/esm/src/setupEvents.d.ts +13 -0
  815. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  816. package/dist/esm/src/setupEvents.js +40 -0
  817. package/dist/esm/src/types.d.ts +15 -3
  818. package/dist/esm/src/types.d.ts.map +1 -1
  819. package/package.json +14 -12
@@ -0,0 +1,939 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
2
+ import classnames from 'classnames';
3
+ import deepmerge from 'deepmerge';
4
+ import { observer } from 'mobx-react-lite';
5
+ import { useTheme, CacheProvider, useTreePath } from '../../../providers';
6
+ import { Colour, mergeProps, mergeStyles } from '../../../utilities';
7
+ import { chatDefaultStyles } from './Chat.styles';
8
+ import { useChatGestures } from './hooks/useChatGestures';
9
+ import { useChatOverflow } from './hooks/useChatOverflow';
10
+ import { useChatFileUpload } from './hooks/useChatFileUpload';
11
+ import { Button } from '../../Atoms/Button';
12
+ import { useRef, useEffect, useMemo, useState } from 'preact/hooks';
13
+ import { ChatMessageUser } from '../../Molecules/ChatMessageUser';
14
+ import { ChatMessageText } from '../../Molecules/ChatMessageText';
15
+ import { ChatSuggestedQuestions } from '../../Molecules/ChatSuggestedQuestions';
16
+ import { ChatAttachmentContext } from '../../Molecules/ChatAttachmentContext';
17
+ import { Image } from '../../Atoms/Image';
18
+ import { ChatLoadingIndicator } from '../../Atoms/ChatLoadingIndicator';
19
+ import { Dropdown, FacetSlider, Icon, Overlay, useMediaQuery } from '../../..';
20
+ import { ChatInspirationResultMessage } from '../../Molecules/ChatInspirationResultMessage';
21
+ import { ChatProductComparisonMessage, } from '../../Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage';
22
+ import { ChatProductQueryMessage, } from '../../Molecules/ChatProductQueryMessage/ChatProductQueryMessage';
23
+ export const ChatOrganism = observer((properties) => {
24
+ const globalTheme = useTheme();
25
+ const globalTreePath = useTreePath();
26
+ const isMobile = useMediaQuery('(max-width: 767px)');
27
+ const defaultProps = {
28
+ treePath: globalTreePath,
29
+ logo: 'https://cdn.athoscommerce.net/snap/images/Athos%20Commerce_Icon_white.svg',
30
+ title: 'Athos Conversational Assistant',
31
+ subtitle: 'Your Guided Discovery Expert',
32
+ multiselectFacets: false,
33
+ disableBubbleSuggestedQuestions: isMobile ? true : false,
34
+ primaryColorBg: '#253B80',
35
+ primaryColorFg: '#fff',
36
+ primaryAccentColorBg: '#feeeae',
37
+ primaryAccentColorFg: '#000000',
38
+ secondaryAccentColorBg: '#000000',
39
+ secondaryAccentColorFg: '#ffffff',
40
+ position: 'right',
41
+ hideMessageTypeIndicatorText: false,
42
+ buttonBelowMessage: false,
43
+ };
44
+ let props = mergeProps('chat', globalTheme, defaultProps, properties);
45
+ const { className, internalClassName, controller, logo, title, subtitle, avatar, offset, multiselectFacets, disableBubbleSuggestedQuestions, primaryColorBg, primaryColorFg, primaryAccentColorBg, primaryAccentColorFg, secondaryAccentColorBg, secondaryAccentColorFg, position, hideMessageTypeIndicatorText, buttonBelowMessage, disableStyles, treePath, } = props;
46
+ const colorPrimary = primaryColorBg;
47
+ const colorPrimaryText = primaryColorFg;
48
+ const colorPrimaryAccent = primaryAccentColorBg;
49
+ const colorPrimaryAccentText = primaryAccentColorFg;
50
+ const colorSecondaryAccent = secondaryAccentColorBg;
51
+ const colorSecondaryAccentText = secondaryAccentColorFg;
52
+ const chatPosition = position === 'right' ? 'right' : 'left';
53
+ const isValidImageUrl = (value) => {
54
+ try {
55
+ const { protocol } = new URL(value);
56
+ return protocol === 'http:' || protocol === 'https:' || protocol === 'data:';
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ };
62
+ // A single-character avatar renders as a capitalized letter; a longer value renders
63
+ // as an image when it's a valid image URL. Anything else renders no avatar.
64
+ const avatarCharacter = avatar && avatar.length === 1 ? avatar.toUpperCase() : undefined;
65
+ const avatarImage = avatar && avatar.length > 1 && isValidImageUrl(avatar) ? avatar : undefined;
66
+ const { store } = controller;
67
+ const themeDefaults = {
68
+ components: {},
69
+ };
70
+ // merge deeply the themeDefaults with the theme props and the displaySettings theme props (do not merge arrays, but replace them)
71
+ const theme = deepmerge(themeDefaults, props?.theme || {}, { arrayMerge: (destinationArray, sourceArray) => sourceArray });
72
+ props = {
73
+ ...props,
74
+ theme,
75
+ };
76
+ const subProps = {
77
+ messageUser: {
78
+ disableStyles,
79
+ theme: props.theme,
80
+ treePath,
81
+ primaryColor: colorPrimary,
82
+ primaryColorText: colorPrimaryText,
83
+ hideMessageTypeIndicatorText,
84
+ },
85
+ messageText: {
86
+ disableStyles,
87
+ theme: props.theme,
88
+ treePath,
89
+ primaryColor: colorPrimary,
90
+ primaryColorText: colorPrimaryText,
91
+ primaryAccentColor: colorPrimaryAccent,
92
+ primaryAccentColorText: colorPrimaryAccentText,
93
+ buttonBelowMessage,
94
+ },
95
+ suggestedQuestions: {
96
+ disableStyles,
97
+ theme: props.theme,
98
+ treePath,
99
+ primaryColor: colorPrimary,
100
+ },
101
+ attachmentContext: {
102
+ disableStyles,
103
+ theme: props.theme,
104
+ treePath,
105
+ },
106
+ loadingIndicator: {
107
+ disableStyles,
108
+ theme: props.theme,
109
+ treePath,
110
+ },
111
+ inspirationResultMessage: {
112
+ disableStyles,
113
+ theme: props.theme,
114
+ treePath,
115
+ },
116
+ productComparisonMessage: {
117
+ disableStyles,
118
+ theme: props.theme,
119
+ treePath,
120
+ },
121
+ productQueryMessage: {
122
+ disableStyles,
123
+ theme: props.theme,
124
+ treePath,
125
+ primaryColor: colorPrimary,
126
+ primaryColorText: colorPrimaryText,
127
+ },
128
+ };
129
+ const messagesEndRef = useRef(null);
130
+ const messagesContainerRef = useRef(null);
131
+ const headerRef = useRef(null);
132
+ const footerRef = useRef(null);
133
+ const chatRef = useRef(null);
134
+ // Ref for the mobile secondary panel — needed for swipe-to-dismiss measurements
135
+ const secondaryRef = useRef(null);
136
+ const [mobileProductInfoOpen, setMobileProductInfoOpen] = useState(false);
137
+ const [footerHeight, setFooterHeight] = useState(0);
138
+ const dropEnabled = store.features.imageSearch.enabled && !store.loading && !store.blocked && !store.currentChat?.sessionLimitReached;
139
+ const { fileInputRef, isDraggingFile, dragHandlers } = useChatFileUpload({
140
+ enabled: !!dropEnabled,
141
+ onUpload: (files) => controller.upload(files),
142
+ });
143
+ // productQuery messages are filtered out of the main chat render (they only drive the side-chat panel),
144
+ // so don't auto-scroll when one is added — otherwise clicking a product in the side chat scrolls the main thread.
145
+ const visibleChat = (store.currentChat?.chat || []).filter((m) => m.messageType !== 'productQuery');
146
+ const visibleChatLength = visibleChat.length;
147
+ const lastVisibleMessage = visibleChat[visibleChat.length - 1];
148
+ const { showNewMessages, setShowNewMessages, messagesOverflow, scrollToBottom, scrollToBottomIfNear } = useChatOverflow({
149
+ messagesContainerRef,
150
+ headerRef,
151
+ open: store.open,
152
+ loading: store.loading,
153
+ visibleChatLength,
154
+ lastVisibleMessage,
155
+ });
156
+ // Re-focus the chat input on desktop after a search completes.
157
+ // The input is disabled while loading, which causes the browser to drop focus.
158
+ // On mobile we intentionally skip this so the virtual keyboard dismisses.
159
+ // Only fire on the loading true → false transition — running on mount steals
160
+ // focus away from the Storybook controls whenever the story re-renders.
161
+ const prevLoadingRef = useRef(store.loading);
162
+ useEffect(() => {
163
+ if (prevLoadingRef.current && !store.loading && !isMobile && store.open) {
164
+ controller.focusInput();
165
+ }
166
+ prevLoadingRef.current = store.loading;
167
+ }, [store.loading]);
168
+ // const subProps: ChatSubProps = {};
169
+ const activeMessage = store.currentChat?.activeMessage;
170
+ // On mobile, only auto-open the secondary panel for the first productComparison
171
+ // message in the chat session. Subsequent comparison results show a "Show Details"
172
+ // button instead (handled in MessageText via sideChatLabel toggle).
173
+ const isFirstMobileComparison = (() => {
174
+ if (!isMobile || activeMessage?.messageType !== 'productComparison')
175
+ return true;
176
+ // If the user explicitly activated a comparison (via "Show Details" or the
177
+ // view-side-chat button), always allow it regardless of position in the chat
178
+ if (store.currentChat?.activeMessageId)
179
+ return true;
180
+ const comparisonMessages = (store.currentChat?.chat || []).filter((m) => m.messageType === 'productComparison');
181
+ return comparisonMessages.length <= 1;
182
+ })();
183
+ const sideChatTypes = isMobile
184
+ ? ['inspirationResult', ...(isFirstMobileComparison ? ['productComparison'] : []), ...(mobileProductInfoOpen ? ['productQuery'] : [])]
185
+ : ['inspirationResult', 'productComparison', 'productQuery'];
186
+ const shouldShowSideChat = activeMessage && sideChatTypes.includes(activeMessage?.messageType) && store.currentChat?.dismissedSideChatMessageId !== activeMessage.id;
187
+ const hasSideChat = !!shouldShowSideChat;
188
+ const styling = useMemo(() => mergeStyles({
189
+ mobile: isMobile,
190
+ offset,
191
+ hasSideChat,
192
+ footerHeight,
193
+ primaryColorBg: colorPrimary,
194
+ primaryColorFg: colorPrimaryText,
195
+ primaryAccentColorBg: colorPrimaryAccent,
196
+ primaryAccentColorFg: colorPrimaryAccentText,
197
+ secondaryAccentColorBg: colorSecondaryAccent,
198
+ secondaryAccentColorFg: colorSecondaryAccentText,
199
+ position: chatPosition,
200
+ }, chatDefaultStyles), [
201
+ isMobile,
202
+ offset,
203
+ hasSideChat,
204
+ footerHeight,
205
+ colorPrimary,
206
+ colorPrimaryText,
207
+ colorPrimaryAccent,
208
+ colorPrimaryAccentText,
209
+ colorSecondaryAccent,
210
+ colorSecondaryAccentText,
211
+ chatPosition,
212
+ ]);
213
+ // Lock body scroll while chat is open so touch/wheel scrolls don't leak to the page behind
214
+ useEffect(() => {
215
+ if (!store.open)
216
+ return;
217
+ const body = document.body;
218
+ const previousOverflow = body.style.overflow;
219
+ const previousOverscroll = body.style.overscrollBehavior;
220
+ body.style.overflow = 'hidden';
221
+ body.style.overscrollBehavior = 'contain';
222
+ return () => {
223
+ body.style.overflow = previousOverflow;
224
+ body.style.overscrollBehavior = previousOverscroll;
225
+ };
226
+ }, [store.open]);
227
+ // Close chat on Escape key (or dismiss side chat first when it's open)
228
+ useEffect(() => {
229
+ if (!store.open)
230
+ return;
231
+ const onKeyDown = (e) => {
232
+ if (e.key !== 'Escape')
233
+ return;
234
+ if (store.currentChat?.activeMessage && shouldShowSideChat) {
235
+ store.currentChat?.dismissSideChat();
236
+ }
237
+ else {
238
+ controller.handlers.button.click();
239
+ }
240
+ };
241
+ document.addEventListener('keydown', onKeyDown);
242
+ return () => document.removeEventListener('keydown', onKeyDown);
243
+ }, [store.open, shouldShowSideChat]);
244
+ // Track the primary footer height so the mobile secondary panel can sit above it
245
+ useEffect(() => {
246
+ const el = footerRef.current;
247
+ if (!el)
248
+ return;
249
+ const observer = new ResizeObserver((entries) => {
250
+ for (const entry of entries) {
251
+ setFooterHeight(entry.borderBoxSize?.[0]?.blockSize ?? entry.target.getBoundingClientRect().height);
252
+ }
253
+ });
254
+ observer.observe(el);
255
+ return () => observer.disconnect();
256
+ }, [store.open, store.currentChat?.isExpired]);
257
+ // Prevent the background page from scrolling while the chat is open on touch
258
+ // devices. iOS Safari (real iPad/iPhone) rubber-band-scrolls the body when a
259
+ // touchmove inside `.ss__chat__messages` reaches the top/bottom — and
260
+ // `overscroll-behavior: contain` is ignored there.
261
+ //
262
+ // We don't touch body styles (locking via `position: fixed` on `<body>` leaves
263
+ // iPad Safari in a stuck viewport state where the page can't scroll after the
264
+ // lock is released). Instead we install a `touchmove` handler that:
265
+ // - allows the touchmove if it's inside a scrollable region of the chat
266
+ // and that region isn't at its scroll edge in the swipe direction;
267
+ // - calls `preventDefault()` otherwise — which is what blocks both
268
+ // background scrolling and iOS rubber-band overscroll.
269
+ // Cleanup just removes the listeners, so nothing can leak into the page.
270
+ useEffect(() => {
271
+ if (!store.open)
272
+ return;
273
+ if (typeof document === 'undefined')
274
+ return;
275
+ let startX = 0;
276
+ let startY = 0;
277
+ let scrollEl = null;
278
+ // Walk up from the touch target to find the first ancestor inside the chat
279
+ // that is actually scrollable in either axis. Stop at the chat root so we
280
+ // never consider elements outside the chat.
281
+ const findScrollableInChat = (start) => {
282
+ const chatRoot = chatRef.current;
283
+ if (!chatRoot)
284
+ return null;
285
+ let el = start;
286
+ while (el && chatRoot.contains(el)) {
287
+ const style = getComputedStyle(el);
288
+ const scrollableY = (style.overflowY === 'auto' || style.overflowY === 'scroll') && el.scrollHeight > el.clientHeight;
289
+ const scrollableX = (style.overflowX === 'auto' || style.overflowX === 'scroll') && el.scrollWidth > el.clientWidth;
290
+ if (scrollableY || scrollableX) {
291
+ return el;
292
+ }
293
+ if (el === chatRoot)
294
+ break;
295
+ el = el.parentElement;
296
+ }
297
+ return null;
298
+ };
299
+ const onTouchStart = (e) => {
300
+ if (!e.touches[0])
301
+ return;
302
+ startX = e.touches[0].clientX;
303
+ startY = e.touches[0].clientY;
304
+ scrollEl = findScrollableInChat(e.target);
305
+ };
306
+ const onTouchMove = (e) => {
307
+ const target = e.target;
308
+ const chatRoot = chatRef.current;
309
+ const inChat = !!(chatRoot && target && chatRoot.contains(target));
310
+ // Touches outside the chat shouldn't scroll the background.
311
+ if (!inChat) {
312
+ if (e.cancelable)
313
+ e.preventDefault();
314
+ return;
315
+ }
316
+ // Inside the chat but no scrollable container — block to prevent body scroll.
317
+ if (!scrollEl) {
318
+ if (e.cancelable)
319
+ e.preventDefault();
320
+ return;
321
+ }
322
+ // Inside a scrollable container — only block when at the edge in the
323
+ // swipe direction, so internal scrolling continues to work. Detect the
324
+ // dominant axis so horizontally-scrollable rows (e.g. the facets row)
325
+ // also get to handle their own touch gestures.
326
+ const currentX = e.touches[0]?.clientX ?? startX;
327
+ const currentY = e.touches[0]?.clientY ?? startY;
328
+ const deltaX = currentX - startX;
329
+ const deltaY = currentY - startY;
330
+ const horizontal = Math.abs(deltaX) > Math.abs(deltaY);
331
+ if (horizontal) {
332
+ const scrollsX = scrollEl.scrollWidth > scrollEl.clientWidth;
333
+ if (!scrollsX) {
334
+ if (e.cancelable)
335
+ e.preventDefault();
336
+ return;
337
+ }
338
+ const atLeft = scrollEl.scrollLeft <= 0;
339
+ const atRight = scrollEl.scrollLeft + scrollEl.clientWidth >= scrollEl.scrollWidth - 1;
340
+ if ((atLeft && deltaX > 0) || (atRight && deltaX < 0)) {
341
+ if (e.cancelable)
342
+ e.preventDefault();
343
+ }
344
+ }
345
+ else {
346
+ const scrollsY = scrollEl.scrollHeight > scrollEl.clientHeight;
347
+ if (!scrollsY) {
348
+ if (e.cancelable)
349
+ e.preventDefault();
350
+ return;
351
+ }
352
+ const atTop = scrollEl.scrollTop <= 0;
353
+ const atBottom = scrollEl.scrollTop + scrollEl.clientHeight >= scrollEl.scrollHeight - 1;
354
+ if ((atTop && deltaY > 0) || (atBottom && deltaY < 0)) {
355
+ if (e.cancelable)
356
+ e.preventDefault();
357
+ }
358
+ }
359
+ };
360
+ document.addEventListener('touchstart', onTouchStart, { passive: true });
361
+ document.addEventListener('touchmove', onTouchMove, { passive: false });
362
+ return () => {
363
+ document.removeEventListener('touchstart', onTouchStart);
364
+ document.removeEventListener('touchmove', onTouchMove);
365
+ };
366
+ }, [store.open]);
367
+ const HistoryButton = (props) => (_jsx(Button, { className: "ss__chat__header__button--history", disabled: props.disabled, icon: {
368
+ icon: 'history',
369
+ title: 'Chat History',
370
+ } }));
371
+ const HistoryPopup = (props) => (_jsxs("div", { className: "ss__chat__history", children: [_jsxs("div", { className: "ss__chat__history__header", children: [_jsx("h4", { children: "History" }), _jsx("div", { className: "ss__chat__history__header__buttons", children: _jsx(Button, { content: "clear", disabled: store.loading || store.blocked, onClick: () => {
372
+ controller.store.clearHistory();
373
+ props.toggleOpen && props.toggleOpen();
374
+ } }) })] }), store.chats.length > 0 ? (_jsx("div", { className: "ss__chat__history__chats", children: store.chats
375
+ .slice()
376
+ .reverse()
377
+ .map((chat) => (_jsx("div", { className: "ss__chat__history__chats__chat", children: _jsxs(Button, { className: "ss__chat__history__chat__button", onClick: () => {
378
+ controller.store.switchChat(chat.id);
379
+ }, disabled: chat.id === store.currentChatId || store.loading || store.blocked, children: [_jsx("div", { className: "ss__chat__history__chat__button__text", children: (() => {
380
+ const lastUserMessage = [...chat.chat].reverse().find((message) => message.messageType === 'user');
381
+ if (!lastUserMessage)
382
+ return 'New Chat';
383
+ const text = lastUserMessage.text;
384
+ return text.length > 50 ? `${text.slice(0, 50)}...` : text;
385
+ })() }), _jsx("div", { className: "ss__chat__history__chat__button__date", children: chat.createdAt.toLocaleString() })] }) }, chat.id))) })) : null] }));
386
+ const FacetButton = (props) => _jsx(Button, { icon: props.open ? 'angle-down' : 'angle-up', children: props.label });
387
+ const getFacetButtonLabel = (facet) => {
388
+ const base = facet.label || facet.field;
389
+ // Slider facets show the active low-high range in the button when narrowed.
390
+ if (facet.type === 'range') {
391
+ const rangeFacet = facet;
392
+ const active = rangeFacet.active;
393
+ const range = rangeFacet.range;
394
+ if (active && range && (active.low !== range.low || active.high !== range.high)) {
395
+ return `${base} (${active.low ?? '*'}-${active.high ?? '*'})`;
396
+ }
397
+ return base;
398
+ }
399
+ // Count current selections from the urlManager (source of truth for live state).
400
+ // `value.filtered` reflects the server's snapshot at response time and goes stale
401
+ // once the user deselects locally.
402
+ const applied = (facet.values || []).filter((value) => {
403
+ if (!value)
404
+ return false;
405
+ const optionValue = 'low' in value && 'high' in value
406
+ ? `${value.low ?? '*'}:${value.high ?? '*'}`
407
+ : value.value || value.label;
408
+ return controller.store.isFacetSelected(facet.field, optionValue);
409
+ }).length;
410
+ return applied > 0 ? `${base} (${applied})` : base;
411
+ };
412
+ // Slider dropdown grows to fill the remaining chat width from its anchor,
413
+ // so the price range slider isn't cramped inside a 150px-wide dropdown.
414
+ const SliderFacetDropdown = (props) => {
415
+ const anchorRef = useRef(null);
416
+ const [width, setWidth] = useState(null);
417
+ useEffect(() => {
418
+ const compute = () => {
419
+ if (!anchorRef.current || !chatRef.current)
420
+ return;
421
+ const anchor = anchorRef.current.getBoundingClientRect();
422
+ const chat = chatRef.current.getBoundingClientRect();
423
+ const remaining = chat.right - anchor.left - 16;
424
+ setWidth(Math.max(220, remaining));
425
+ };
426
+ compute();
427
+ const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(compute) : null;
428
+ if (ro && chatRef.current)
429
+ ro.observe(chatRef.current);
430
+ window.addEventListener('resize', compute);
431
+ return () => {
432
+ if (ro)
433
+ ro.disconnect();
434
+ window.removeEventListener('resize', compute);
435
+ };
436
+ }, []);
437
+ return (_jsx("div", { ref: anchorRef, className: "ss__chat__actions__facet ss__chat__actions__facet--range", children: _jsx(Dropdown, { usePortal: true, dropUp: true, button: _jsx(FacetButton, { label: props.label }), style: {
438
+ '.ss__dropdown__content': {
439
+ width: width ? `${width}px` : 'auto',
440
+ background: 'white',
441
+ boxShadow: '0px 3px 6px 0px rgba(0, 0, 0, 0.2)',
442
+ borderRadius: '6px',
443
+ },
444
+ }, children: _jsx("div", { className: "ss__chat__actions__facet__options", children: _jsx("div", { className: "ss__chat__actions__facet__slider", style: { padding: '12px 16px' }, children: _jsx(FacetSlider, { facet: props.facet, onChange: () => {
445
+ if (!multiselectFacets) {
446
+ // FacetSlider fires onChange before its urlManager update; defer
447
+ // so controller.search() reads the updated filter state. Force
448
+ // productSearch with the current filters so a slider tweak doesn't
449
+ // fall through to `general` when hasPendingFacetChanges happens to
450
+ // be false (e.g. the slider returned to the seeded range).
451
+ queueMicrotask(() => controller.search({
452
+ data: { requestType: 'productSearch', searchFilters: controller.store.searchFilters },
453
+ }));
454
+ }
455
+ } }) }) }) }) }));
456
+ };
457
+ // TODO: if starting a new chat and it's expired, this button would then disappear
458
+ if (!controller.store.chatEnabled) {
459
+ return _jsx(_Fragment, {});
460
+ }
461
+ // Dismiss the secondary panel and clear any product attachments tied to the side-chat
462
+ // (discuss product flow), while preserving productSimilar/productComparison attachments.
463
+ const dismissSideChat = () => {
464
+ const productAttachmentsToRemove = (store.currentChat?.attachments.attached || []).filter((item) => item.type === 'product' && item.requestType !== 'productSimilar' && item.requestType !== 'productComparison');
465
+ productAttachmentsToRemove.forEach((item) => store.currentChat?.attachments.remove(item.id));
466
+ setMobileProductInfoOpen(false);
467
+ store.currentChat?.dismissSideChat();
468
+ };
469
+ const { swipeOffset, swipeAnimating, swipeHandlers } = useChatGestures({
470
+ panelRef: secondaryRef,
471
+ shouldShowSideChat: !!shouldShowSideChat,
472
+ activeMessageId: activeMessage?.id,
473
+ onDismiss: dismissSideChat,
474
+ });
475
+ const requestType = store.currentChat?.requestType;
476
+ const loadingVerbs = useMemo(() => {
477
+ switch (requestType) {
478
+ case 'productQuery':
479
+ return ['Thinking', 'Searching', 'Analyzing', 'Gathering details'];
480
+ case 'productSearch':
481
+ return ['Searching', 'Browsing catalog', 'Finding products', 'Curating results'];
482
+ case 'productComparison':
483
+ return ['Comparing', 'Analyzing', 'Evaluating', 'Weighing options'];
484
+ case 'imageSearch':
485
+ return ['Analyzing image', 'Identifying', 'Searching', 'Matching'];
486
+ case 'productSimilar':
487
+ return ['Finding similar items', 'Searching', 'Matching', 'Curating'];
488
+ case 'inspirationRequest':
489
+ return ['Brainstorming', 'Imagining', 'Curating', 'Inspiring'];
490
+ case 'general':
491
+ default:
492
+ return undefined;
493
+ }
494
+ }, [requestType]);
495
+ const isWelcomeState = (!store.currentChat?.chat || store.currentChat.chat.length === 0) && !!store.welcomeMessage && !store.currentChat?.isExpired;
496
+ return (_jsx(CacheProvider, { children: _jsxs(_Fragment, { children: [_jsxs("div", { ref: chatRef, className: classnames('ss__chat', {
497
+ 'ss__chat--open': store.open,
498
+ 'ss__chat--minimized': !store.open,
499
+ 'ss__chat--mobile': isMobile,
500
+ 'ss__chat--welcome': isWelcomeState,
501
+ }, className, internalClassName), ...styling, children: [!disableBubbleSuggestedQuestions && !store.open && !store.currentChat && store.suggestedQuestions?.length > 0 && (_jsx("div", { className: "ss__chat__suggested-questions", children: store.suggestedQuestions.map((question) => (_jsx("div", { className: "ss__chat__suggested-questions__item", onClick: () => {
502
+ controller.openChat(question);
503
+ }, children: question }, question))) })), _jsx("button", { type: "button", className: 'ss__chat__bubble', "aria-label": store.open ? 'Close chat' : 'Open chat', "aria-expanded": store.open, onClick: () => controller.handlers.button.click(), children: _jsx(Icon, { icon: "chat", title: "Open Chat" }) }), store.open && shouldShowSideChat && activeMessage ? (_jsxs("div", { ref: secondaryRef, className: classnames('ss__chat__secondary'), role: "region", "aria-label": "Conversation details", style: isMobile
504
+ ? {
505
+ // Touch swipe animations need to be inline to prevent visual jumps
506
+ transform: swipeOffset > 0 ? `translateY(${swipeOffset}px)` : undefined,
507
+ transition: swipeAnimating ? 'transform 0.3s ease-out' : 'none',
508
+ }
509
+ : undefined, children: [isMobile && (_jsx("div", { className: "ss__chat__secondary__drag-handle", ...swipeHandlers, children: _jsx("div", { className: "ss__chat__secondary__drag-handle__indicator" }) })), _jsxs("div", { className: 'ss__chat__header', onTouchStart: isMobile ? swipeHandlers.onTouchStart : undefined, onTouchMove: isMobile ? swipeHandlers.onTouchMove : undefined, onTouchEnd: isMobile ? swipeHandlers.onTouchEnd : undefined, children: [_jsxs("div", { className: "ss__chat__header__title", children: [_jsx("div", { className: "ss__chat__header__title__primary", children: {
510
+ inspirationResult: 'Inspiration Scenarios',
511
+ productComparison: 'Product Comparison',
512
+ productQuery: '',
513
+ }[activeMessage.messageType] || null }), _jsx("div", { className: "ss__chat__header__title__secondary", children: {
514
+ inspirationResult: 'Choose a style direction to explore',
515
+ productComparison: `Comparing ${activeMessage?.searchResults?.length || ''} products`,
516
+ productQuery: '',
517
+ }[activeMessage.messageType] || null })] }), _jsx("div", { className: "ss__chat__header__buttons", children: _jsx(Button, { className: "ss__chat__header__button--close", "aria-label": "Close chat", icon: { icon: 'close2', title: 'Close Chat' }, onClick: () => dismissSideChat() }) })] }), _jsx("div", { className: "ss__chat__content", children: _jsx("div", { className: 'ss__chat__messages', children: {
518
+ inspirationResult: (_jsx(ChatInspirationResultMessage, { ...subProps.inspirationResultMessage, chatItem: activeMessage, controller: controller, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined })),
519
+ productComparison: (_jsx(ChatProductComparisonMessage, { ...subProps.productComparisonMessage, chatItem: activeMessage, controller: controller })),
520
+ productQuery: (_jsx(ChatProductQueryMessage, { ...subProps.productQueryMessage, chatItem: activeMessage, controller: controller, displayFields: controller.config.settings?.quickview?.displayFields, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
521
+ }[activeMessage.messageType] || null }) })] })) : null, store.open ? (_jsxs("div", { className: 'ss__chat__primary',
522
+ // On mobile, interacting with the primary chat (header or anywhere within)
523
+ // dismisses the secondary panel. Capture phase so it fires even when an
524
+ // inner control stops propagation.
525
+ onClickCapture: isMobile && shouldShowSideChat ? () => dismissSideChat() : undefined, children: [_jsxs("div", { className: 'ss__chat__header', children: [_jsxs("div", { className: "ss__chat__header__title", children: [logo ? _jsx(Image, { className: "ss__chat__header__title__logo", src: logo, alt: title || 'Chat logo' }) : null, _jsxs("div", { className: "ss__chat__header__title__text", children: [title ? _jsx("div", { className: "ss__chat__header__title__text__primary", children: title }) : null, subtitle ? _jsx("div", { className: "ss__chat__header__title__text__secondary", children: subtitle }) : null] })] }), _jsxs("div", { className: "ss__chat__header__buttons", children: [_jsx(Button
526
+ // disabled={store.currentChat?.chat && store.currentChat.chat.length <= 1}
527
+ , {
528
+ // disabled={store.currentChat?.chat && store.currentChat.chat.length <= 1}
529
+ className: "ss__chat__header__button--new", "aria-label": "New chat", icon: { icon: controller.store.initChatLoading ? 'spinner' : 'plus2', title: 'New Chat' }, onClick: () => controller.store.createChat() }), store.chats.length > 1 && (_jsx(Dropdown, { disabled: store.loading || store.blocked, className: "ss__chat__header__dropdown-history", button: _jsx(HistoryButton, {}), children: _jsx(HistoryPopup, {}) })), _jsx(Button, { className: "ss__chat__header__button--close", "aria-label": "Close chat", icon: { icon: 'close2', title: 'Close Chat' }, onClick: () => controller.handlers.button.click() })] })] }), _jsxs("div", { className: "ss__chat__content", children: [(() => {
530
+ const feedbackAfterMessages = controller.config.settings?.feedbackAfterMessages;
531
+ const systemMessages = (store.currentChat?.chat || []).filter((msg) => msg.messageType !== 'user' && msg.messageType !== 'productQuery');
532
+ const currentRating = store.currentChat?.feedback.rating;
533
+ const hasRated = !!currentRating;
534
+ const shouldShowFeedback = feedbackAfterMessages &&
535
+ systemMessages.length >= feedbackAfterMessages &&
536
+ !store.currentChat?.feedback.dismissed &&
537
+ (!hasRated || store.currentChat?.feedback.justGiven);
538
+ return shouldShowFeedback ? (_jsxs("div", { className: "ss__chat__session-feedback", children: [_jsx("div", { className: "ss__chat__session-feedback__icon", children: _jsx(Icon, { icon: "chat", size: "16px" }) }), _jsx("span", { className: "ss__chat__session-feedback__label", children: hasRated ? 'Thank you for your feedback' : "How's your experience so far?" }), _jsxs("div", { className: `ss__chat__session-feedback__actions${hasRated ? ' ss__chat__session-feedback__actions--rated' : ''}`, children: [(!hasRated || currentRating === 'UP') && (_jsx("span", { onClick: () => !hasRated && controller.handleFeedback('UP'), children: _jsx(Icon, { icon: 'thumbs-up', size: "16px", title: 'Thumbs Up' }) })), (!hasRated || currentRating === 'DOWN') && (_jsx("span", { onClick: () => !hasRated && controller.handleFeedback('DOWN'), children: _jsx(Icon, { icon: 'thumbs-down', size: "16px", title: 'Thumbs Down' }) }))] }), !hasRated && (_jsx("span", { className: "ss__chat__session-feedback__close", onClick: () => {
539
+ if (store.currentChat) {
540
+ store.currentChat.feedback.dismissed = true;
541
+ store.currentChat.save();
542
+ }
543
+ }, children: _jsx(Icon, { icon: "close-thin", size: "14px" }) }))] })) : null;
544
+ })(), _jsx("div", { ref: headerRef, className: classnames('ss__chat__content__header', {
545
+ 'ss__chat__content__header--overlay': messagesOverflow,
546
+ }), children: store.currentChat?.comparisons.compared && store.currentChat.comparisons.compared.length > 0 && (_jsxs("div", { className: 'ss__chat__content__header__comparisons', children: [_jsxs("div", { className: 'ss__chat__content__header__comparisons__header', children: [_jsxs("div", { className: 'ss__chat__content__header__comparisons__header__title', children: [_jsx(Icon, { className: 'ss__chat__content__header__comparisons__header__title__icon', icon: 'clipboard' }), _jsxs("span", { className: 'ss__chat__content__header__comparisons__header__title__text', children: ["Compare Products (", store.currentChat?.comparisons.compared.length, "/", store.currentChat?.comparisons.maxItems, ")"] })] }), _jsx("div", { className: 'ss__chat__content__header__comparisons__header__actions', children: _jsx(Button, { onClick: () => store.currentChat?.comparisons.reset(), children: "clear" }) })] }), _jsxs("div", { className: 'ss__chat__content__header__comparisons__content', children: [_jsx("div", { className: 'ss__chat__content__header__comparisons__content__items', children: Array.from({ length: store.currentChat?.comparisons.maxItems }).map((_, index) => {
547
+ const comparisonItem = store.currentChat?.comparisons.compared[index];
548
+ return (_jsx("div", { className: classnames('ss__chat__content__header__comparisons__content__comparison', {
549
+ 'ss__chat__content__header__comparisons__content__comparison--placeholder': !comparisonItem,
550
+ }), children: comparisonItem ? (_jsxs(_Fragment, { children: [_jsx(Image
551
+ // onClick={() => {
552
+ // controller?.productQuickView(product as any);
553
+ // }}
554
+ , {
555
+ // onClick={() => {
556
+ // controller?.productQuickView(product as any);
557
+ // }}
558
+ alt: (comparisonItem?.result?.display || comparisonItem?.result)?.mappings?.core?.name || '', src: (comparisonItem?.result?.display || comparisonItem?.result)?.mappings?.core?.imageUrl ||
559
+ (comparisonItem?.result?.display || comparisonItem?.result)?.mappings?.core?.parentImageUrl ||
560
+ '' }), _jsx("div", { className: "ss__chat__content__header__comparisons__content__comparison__remove", onClick: () => {
561
+ store.currentChat?.comparisons.remove(comparisonItem.result.id);
562
+ }, children: _jsx(Icon, { icon: 'close-thin', size: '12px' }) })] })) : (_jsxs(_Fragment, { children: [_jsx(Icon, { icon: 'plus-thin' }), _jsx("div", { className: 'ss__chat__content__header__comparisons__content__comparison--placeholder__text', children: "Add" })] })) }, index));
563
+ }) }), _jsx("div", { className: classnames('ss__chat__content__header__comparisons__action', {
564
+ 'ss__chat__content__header__comparisons__action--hidden': (store.currentChat?.comparisons.compared.length || 0) < 2,
565
+ }), children: _jsx(Button, { onClick: () => controller.search(), icon: { icon: 'compare', title: 'Compare' }, children: "Compare" }) })] })] })) }), _jsxs("div", { className: 'ss__chat__messages', ref: messagesContainerRef, role: "log", "aria-live": "polite", "aria-relevant": "additions", "aria-label": "Chat messages", style: visibleChatLength ? { scrollbarGutter: 'stable' } : undefined, children: [(!store.currentChat?.chat || store.currentChat.chat.length === 0) && store.welcomeMessage && !store.currentChat?.isExpired && (_jsxs("div", { className: "ss__chat__welcome", children: [_jsx("div", { className: "ss__chat__welcome__message", children: store.welcomeMessage }), _jsx(ChatSuggestedQuestions, { ...subProps.suggestedQuestions, questions: store.suggestedQuestions, controller: controller })] })), store.currentChat?.chat
566
+ .filter((chatItem) => chatItem.messageType !== 'productQuery')
567
+ .map((chatItem) => {
568
+ const showAvatar = !!(avatarCharacter || avatarImage) && chatItem.messageType !== 'user';
569
+ const messageContent = {
570
+ user: (_jsx(ChatMessageUser, { ...subProps.messageUser, chatItem: chatItem, controller: controller, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
571
+ text: (_jsx(ChatMessageText, { ...subProps.messageText, chatItem: chatItem, controller: controller, scrollToBottom: scrollToBottomIfNear, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined, sideChatOpen: !!shouldShowSideChat, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
572
+ content: (_jsx(ChatMessageText, { ...subProps.messageText, chatItem: chatItem, controller: controller, scrollToBottom: scrollToBottomIfNear, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined, sideChatOpen: !!shouldShowSideChat, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
573
+ productSearchResult: (_jsx(ChatMessageText, { ...subProps.messageText, chatItem: chatItem, controller: controller, scrollToBottom: scrollToBottomIfNear, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined, sideChatOpen: !!shouldShowSideChat, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
574
+ inspirationResult: (_jsx(ChatMessageText, { ...subProps.messageText, chatItem: chatItem, controller: controller, scrollToBottom: scrollToBottomIfNear, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined, sideChatOpen: !!shouldShowSideChat, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
575
+ productAnswer: (_jsx(ChatMessageText, { ...subProps.messageText, chatItem: chatItem, controller: controller, scrollToBottom: scrollToBottomIfNear, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined, sideChatOpen: !!shouldShowSideChat, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
576
+ productComparison: (() => {
577
+ // On mobile, only the first productComparison in the session
578
+ // auto-opens the secondary panel. Subsequent ones get a
579
+ // prominent "Show Details" button instead.
580
+ const comparisonMessages = (store.currentChat?.chat || []).filter((m) => m.messageType === 'productComparison');
581
+ const isFirst = comparisonMessages.length > 0 && comparisonMessages[0].id === chatItem.id;
582
+ return (_jsx(ChatMessageText, { ...subProps.messageText, chatItem: chatItem, controller: controller, scrollToBottom: scrollToBottomIfNear, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined, showDetailsButton: isMobile && !isFirst, sideChatOpen: !!shouldShowSideChat, primaryColor: colorPrimary, primaryColorText: colorPrimaryText }));
583
+ })(),
584
+ productRecommendation: (_jsx(ChatMessageText, { ...subProps.messageText, chatItem: chatItem, controller: controller, scrollToBottom: scrollToBottomIfNear, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined, sideChatOpen: !!shouldShowSideChat, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
585
+ actions: (_jsx(ChatSuggestedQuestions, { actions: chatItem.actions, controller: controller })),
586
+ errorResponse: (_jsx(ChatMessageText, { ...subProps.messageText, chatItem: chatItem, controller: controller, scrollToBottom: scrollToBottomIfNear, sideChatOpen: !!shouldShowSideChat, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
587
+ topicDrift: (_jsx(ChatMessageText, { ...subProps.messageText, chatItem: chatItem, controller: controller, scrollToBottom: scrollToBottomIfNear, sideChatOpen: !!shouldShowSideChat, primaryColor: colorPrimary, primaryColorText: colorPrimaryText })),
588
+ productQuery: null,
589
+ }[chatItem.messageType] || null;
590
+ return (_jsxs("div", { className: classnames(`ss__chat__message`, `ss__chat__message--${chatItem.messageType}`, {
591
+ 'ss__chat__message--with-avatar': showAvatar,
592
+ }), children: [showAvatar && (_jsx("div", { className: classnames('ss__chat__message__avatar', {
593
+ 'ss__chat__message__avatar--image': !!avatarImage,
594
+ }), "aria-hidden": "true", children: avatarImage ? _jsx(Image, { src: avatarImage, alt: "" }) : avatarCharacter })), showAvatar ? _jsx("div", { className: "ss__chat__message__content", children: messageContent }) : messageContent] }, chatItem.id));
595
+ }), _jsx("div", { className: "ss__chat__messages__end", ref: messagesEndRef }), showNewMessages && messagesOverflow && (_jsxs("div", { className: "ss__chat__new-messages", onClick: () => {
596
+ scrollToBottom();
597
+ setShowNewMessages(false);
598
+ }, children: [_jsx(Icon, { icon: "angle-down", size: "12px" }), _jsx("span", { children: "New messages" })] }))] }), _jsx(ChatLoadingIndicator, { ...subProps.loadingIndicator, loading: store.loading, verbs: loadingVerbs }), !store.currentChat?.isExpired ? (_jsxs("div", { className: "ss__chat__content__footer", ref: footerRef, ...dragHandlers, children: [store.error && _jsx("div", { className: "ss__chat__error", children: store.error.message }), store.currentChat?.sessionLimitReached && (_jsxs("div", { className: 'ss__chat__topic-drift', children: [_jsx(Icon, { icon: "info", size: "18px", className: 'ss__chat__topic-drift__icon--info' }), _jsxs("div", { className: 'ss__chat__topic-drift__text', children: [_jsx("span", { children: "Session limit reached" }), _jsx("span", { children: "This chat has reached its maximum number of interactions. Start a new session to continue." })] }), _jsx(Button, { className: 'ss__chat__topic-drift__button', onClick: () => {
599
+ controller.store.createChat();
600
+ }, children: "New Session" })] })), store.facets && store.facets.length > 0 && (_jsx("div", { className: 'ss__chat__actions', children: _jsxs("div", { className: "ss__chat__actions__wrap", children: [_jsxs("div", { className: "ss__chat__actions__facets-header", children: [_jsx("div", { className: "ss__chat__actions--title", children: "Filter by:" }), multiselectFacets && store.hasPendingFacetChanges && (_jsx("div", { className: 'ss__chat__actions__facets-apply ss__chat__actions__facets-apply--active', children: _jsx(Button, { onClick: () => {
601
+ controller.search();
602
+ }, children: store.pendingFacetCount > 0 ? `Apply (${store.pendingFacetCount})` : 'Clear facets' }) }))] }), _jsx("div", { className: "ss__chat__actions--facets", children: store.facets.slice(0, 10).map((facet, idx) => {
603
+ // range/slider facets render via FacetSlider; everything else needs at least one value to be useful
604
+ if (facet.type !== 'range' && !facet.values?.length)
605
+ return null;
606
+ if (facet.type === 'range') {
607
+ return _jsx(SliderFacetDropdown, { facet: facet, label: getFacetButtonLabel(facet) }, idx);
608
+ }
609
+ return (_jsx("div", { className: `ss__chat__actions__facet ss__chat__actions__facet--${facet.type}`, children: _jsx(Dropdown, { usePortal: true, dropUp: true, boundaryRef: chatRef, button: _jsx(FacetButton, { label: getFacetButtonLabel(facet) }), style: {
610
+ '.ss__dropdown__content': {
611
+ width: '150px',
612
+ maxHeight: '200px',
613
+ overflowY: 'auto',
614
+ background: 'white',
615
+ boxShadow: '0px 3px 6px 0px rgba(0, 0, 0, 0.2)',
616
+ borderRadius: '6px',
617
+ ...(multiselectFacets
618
+ ? {
619
+ '.ss__chat__actions__facet__option--checkbox': {
620
+ display: 'flex',
621
+ alignItems: 'center',
622
+ gap: '8px',
623
+ padding: '6px 10px',
624
+ cursor: 'pointer',
625
+ width: '100%',
626
+ boxSizing: 'border-box',
627
+ background: '#fff',
628
+ border: 'none',
629
+ borderBottom: '1px solid #f0f0f0',
630
+ '&:hover': {
631
+ background: new Colour(colorPrimary).lightenHex(0.95),
632
+ },
633
+ '&:last-child': {
634
+ borderBottom: 'none',
635
+ },
636
+ '.ss__chat__actions__facet__option__checkbox': {
637
+ width: '16px',
638
+ height: '16px',
639
+ borderRadius: '3px',
640
+ border: '2px solid #ccc',
641
+ display: 'flex',
642
+ alignItems: 'center',
643
+ justifyContent: 'center',
644
+ flexShrink: 0,
645
+ '&.ss__chat__actions__facet__option__checkbox--checked': {
646
+ background: colorPrimary,
647
+ borderColor: colorPrimary,
648
+ color: colorPrimaryText,
649
+ svg: {
650
+ fill: colorPrimaryText,
651
+ stroke: colorPrimaryText,
652
+ },
653
+ },
654
+ },
655
+ '.ss__chat__actions__facet__option__label': {
656
+ fontSize: '14px',
657
+ color: '#333',
658
+ flex: '1 1 auto',
659
+ textAlign: 'left',
660
+ },
661
+ },
662
+ }
663
+ : {
664
+ '.ss__button': {
665
+ width: '100%',
666
+ border: 'none',
667
+ borderRadius: 0,
668
+ boxSizing: 'border-box',
669
+ background: '#fff',
670
+ '&:hover': {
671
+ background: new Colour(colorPrimary).lightenHex(0.95),
672
+ },
673
+ '&.ss__chat__actions__facet__option--selected': {
674
+ fontWeight: 'bold',
675
+ },
676
+ },
677
+ }),
678
+ },
679
+ }, children: _jsx("div", { className: "ss__chat__actions__facet__options", children: facet.type === 'range-buckets'
680
+ ? facet.values.map((option) => {
681
+ const rangeOption = option;
682
+ const optionValue = `${rangeOption.low ?? '*'}:${rangeOption.high ?? '*'}`;
683
+ if (multiselectFacets) {
684
+ const isSelected = controller.store.isFacetSelected(facet.field, optionValue);
685
+ return (_jsxs("div", { className: "ss__chat__actions__facet__option--checkbox", onClick: () => {
686
+ if (isSelected) {
687
+ controller.store.removeFacet(facet.field, optionValue);
688
+ }
689
+ else {
690
+ controller.store.addFacet({
691
+ key: facet.field,
692
+ value: optionValue,
693
+ });
694
+ }
695
+ }, children: [_jsx("div", { className: classnames('ss__chat__actions__facet__option__checkbox', {
696
+ 'ss__chat__actions__facet__option__checkbox--checked': isSelected,
697
+ }), children: isSelected && _jsx(Icon, { icon: "check-thin", size: "10px" }) }), _jsx("span", { className: "ss__chat__actions__facet__option__label", children: rangeOption.label })] }, optionValue));
698
+ }
699
+ return (_jsx(Button, { className: classnames({
700
+ 'ss__chat__actions__facet__option--selected': controller.store.isFacetSelected(facet.field, optionValue),
701
+ }), onClick: () => {
702
+ // Non-multiselect: clicking an already-selected value toggles it off.
703
+ // `addFacet` is idempotent against an existing urlManager value, so without
704
+ // the toggle the state wouldn't change, `hasPendingFacetChanges` would stay
705
+ // false, and the params getter would fall through to `general`.
706
+ if (controller.store.isFacetSelected(facet.field, optionValue)) {
707
+ controller.store.removeFacet(facet.field, optionValue);
708
+ }
709
+ else {
710
+ controller.store.addFacet({
711
+ key: facet.field,
712
+ value: optionValue,
713
+ });
714
+ }
715
+ // Force productSearch with the current filter state rather than relying
716
+ // on the params getter's hasPendingFacetChanges promotion — a facet click
717
+ // in the chat is unambiguously a search intent.
718
+ controller.search({
719
+ data: { requestType: 'productSearch', searchFilters: controller.store.searchFilters },
720
+ });
721
+ }, children: rangeOption.label }, optionValue));
722
+ })
723
+ : facet.values.map((option) => {
724
+ const valueOption = option;
725
+ const optionValue = valueOption.value || valueOption.label;
726
+ if (multiselectFacets) {
727
+ const isSelected = controller.store.isFacetSelected(facet.field, optionValue);
728
+ return (_jsxs("div", { className: "ss__chat__actions__facet__option--checkbox", onClick: () => {
729
+ if (isSelected) {
730
+ controller.store.removeFacet(facet.field, optionValue);
731
+ }
732
+ else {
733
+ controller.store.addFacet({
734
+ key: facet.field,
735
+ value: optionValue,
736
+ });
737
+ }
738
+ }, children: [_jsx("div", { className: classnames('ss__chat__actions__facet__option__checkbox', {
739
+ 'ss__chat__actions__facet__option__checkbox--checked': isSelected,
740
+ }), children: isSelected && _jsx(Icon, { icon: "check-thin", size: "10px" }) }), _jsx("span", { className: "ss__chat__actions__facet__option__label", children: valueOption.label })] }, optionValue));
741
+ }
742
+ return (_jsx(Button, { className: classnames({
743
+ 'ss__chat__actions__facet__option--selected': controller.store.isFacetSelected(facet.field, optionValue),
744
+ }), onClick: () => {
745
+ // Non-multiselect: clicking an already-selected value toggles it off.
746
+ // `addFacet` is idempotent against an existing urlManager value, so without
747
+ // the toggle the state wouldn't change, `hasPendingFacetChanges` would stay
748
+ // false, and the params getter would fall through to `general`.
749
+ if (controller.store.isFacetSelected(facet.field, optionValue)) {
750
+ controller.store.removeFacet(facet.field, optionValue);
751
+ }
752
+ else {
753
+ controller.store.addFacet({
754
+ key: facet.field,
755
+ value: optionValue,
756
+ });
757
+ }
758
+ // Force productSearch with the current filter state rather than relying
759
+ // on the params getter's hasPendingFacetChanges promotion — a facet click
760
+ // in the chat is unambiguously a search intent.
761
+ controller.search({
762
+ data: { requestType: 'productSearch', searchFilters: controller.store.searchFilters },
763
+ });
764
+ }, children: valueOption.label }, optionValue));
765
+ }) }) }, facet.field) }, idx));
766
+ }) })] }) })), (() => {
767
+ const activeComparisonSearchResults = shouldShowSideChat && activeMessage?.messageType === 'productComparison'
768
+ ? activeMessage.searchResults || []
769
+ : null;
770
+ const showCommittedComparisons = !activeComparisonSearchResults &&
771
+ store.currentChat?.comparisons.committed &&
772
+ store.currentChat.comparisons.committed.length > 0 &&
773
+ (activeMessage?.messageType === 'user' ||
774
+ activeMessage?.messageType === 'productComparison' ||
775
+ activeMessage?.messageType === 'productQuery');
776
+ const visibleAttachments = store.currentChat?.attachments.attached.filter((item) => item.state === 'attached' || item.state === 'active' || item.state === 'loading' || item.state === 'error') || [];
777
+ const productAttachments = visibleAttachments.filter((item) => item.type === 'product' &&
778
+ item.requestType !== 'productSimilar' &&
779
+ item.requestType !== 'productComparison');
780
+ const imageAttachments = visibleAttachments.filter((item) => item.type === 'image');
781
+ const comparisonItems = activeComparisonSearchResults
782
+ ? activeComparisonSearchResults.map((result) => {
783
+ const d = result?.display || result;
784
+ return {
785
+ id: result?.id,
786
+ name: d?.mappings?.core?.name || '',
787
+ imageUrl: d?.mappings?.core?.thumbnailImageUrl || d?.mappings?.core?.imageUrl || d?.mappings?.core?.parentImageUrl || '',
788
+ onClick: () => {
789
+ controller.productQuickView(result);
790
+ if (isMobile)
791
+ setMobileProductInfoOpen(true);
792
+ },
793
+ };
794
+ })
795
+ : showCommittedComparisons
796
+ ? (store.currentChat?.comparisons.committed || []).map((comparisonItem) => {
797
+ const d = comparisonItem?.result?.display || comparisonItem?.result;
798
+ return {
799
+ id: comparisonItem.result?.id,
800
+ name: d?.mappings?.core?.name || '',
801
+ imageUrl: d?.mappings?.core?.thumbnailImageUrl || d?.mappings?.core?.imageUrl || d?.mappings?.core?.parentImageUrl || '',
802
+ onClick: () => {
803
+ controller.productQuickView(comparisonItem.result);
804
+ if (isMobile)
805
+ setMobileProductInfoOpen(true);
806
+ },
807
+ };
808
+ })
809
+ : [];
810
+ const productItems = productAttachments.map((item) => {
811
+ const remove = () => {
812
+ store.currentChat?.attachments.remove(item.id);
813
+ setMobileProductInfoOpen(false);
814
+ store.currentChat?.dismissSideChat();
815
+ };
816
+ return {
817
+ id: item.id,
818
+ name: item.name || '',
819
+ imageUrl: item.thumbnailUrl || '',
820
+ onClick: remove,
821
+ onRemove: remove,
822
+ };
823
+ });
824
+ const imageItems = imageAttachments.map((item) => ({
825
+ id: item.id,
826
+ name: item.fileName || 'Image',
827
+ imageUrl: item.base64 || item.thumbnailUrl || '',
828
+ isLoading: item.state === 'loading',
829
+ hasError: !!item.error,
830
+ errorMessage: item.error?.message,
831
+ onRemove: () => store.currentChat?.attachments.remove(item.id),
832
+ }));
833
+ const productTitle = productItems.length > 1 ? 'Compare these products' : 'Ask about this product';
834
+ const hasImageError = imageItems.some((item) => item.hasError);
835
+ const imageTitle = imageItems.length > 0 && !hasImageError ? 'Find products similar to this image:' : '';
836
+ return (_jsxs(_Fragment, { children: [comparisonItems.length > 0 && (_jsx(ChatAttachmentContext, { ...subProps.attachmentContext, title: 'Compare these products', items: comparisonItems, onClose: () => {
837
+ store.currentChat?.comparisons.resetCommitted();
838
+ store.currentChat?.dismissSideChat();
839
+ } })), productItems.length > 0 && (_jsx(ChatAttachmentContext, { ...subProps.attachmentContext, title: productTitle, items: productItems, onClose: () => {
840
+ productAttachments.forEach((item) => store.currentChat?.attachments.remove(item.id));
841
+ setMobileProductInfoOpen(false);
842
+ store.currentChat?.dismissSideChat();
843
+ } })), imageItems.length > 0 && _jsx(ChatAttachmentContext, { ...subProps.attachmentContext, title: imageTitle, items: imageItems })] }));
844
+ })(), (() => {
845
+ const drift = store.currentChat?.topicDrift;
846
+ if (!drift)
847
+ return null;
848
+ // recommendedAction is the prescription; driftType is the diagnosis.
849
+ // Hide the banner when the backend says to keep flowing, or when no drift was detected.
850
+ if (drift.recommendedAction === 'CONTINUE' || drift.driftType === 'NO_DRIFT')
851
+ return null;
852
+ const isScopeRedirect = drift.recommendedAction === 'SCOPE_REDIRECT';
853
+ const primaryText = isScopeRedirect ? "I'm here to help with shopping" : 'Looking for something new?';
854
+ const secondaryText = isScopeRedirect
855
+ ? 'Try asking about products, comparisons, or recommendations'
856
+ : 'Start a fresh session for better assistance, or keep going in this one?';
857
+ const buttonText = isScopeRedirect ? '' : 'New Session';
858
+ return (_jsxs("div", { className: 'ss__chat__topic-drift', children: [_jsx(Icon, { icon: "info", size: "18px", className: 'ss__chat__topic-drift__icon--info' }), _jsxs("div", { className: 'ss__chat__topic-drift__text', children: [_jsx("span", { children: primaryText }), _jsx("span", { children: secondaryText })] }), buttonText && (_jsx(Button, { className: 'ss__chat__topic-drift__button', onClick: () => {
859
+ if (isScopeRedirect) {
860
+ store.currentChat?.dismissTopicDrift();
861
+ return;
862
+ }
863
+ // Capture image attachments from the current chat before handleTopicDrift /
864
+ // createChat tear down the conversation — an imageSearch that drifted needs
865
+ // the same image attached to the carried-over message in the new session,
866
+ // otherwise params would fall back to a `general` request without the image.
867
+ const previousImageAttachments = (store.currentChat?.attachments.attached || [])
868
+ .filter((item) => item.type === 'image' && item.state !== 'error')
869
+ .map((item) => {
870
+ const img = item;
871
+ return {
872
+ type: 'image',
873
+ base64: img.base64,
874
+ fileName: img.fileName,
875
+ imageId: img.imageId,
876
+ imageUrl: img.imageUrl,
877
+ thumbnailUrl: img.thumbnailUrl,
878
+ // Already uploaded — skip the 'loading' default state.
879
+ state: 'attached',
880
+ };
881
+ });
882
+ const messageText = store.currentChat?.handleTopicDrift();
883
+ if (messageText) {
884
+ controller.store.createChat();
885
+ previousImageAttachments.forEach((cfg) => {
886
+ controller.store.currentChat?.attachments.add(cfg);
887
+ });
888
+ controller.search({ data: { message: messageText } });
889
+ }
890
+ }, children: buttonText })), _jsx("span", { onClick: () => {
891
+ store.currentChat?.dismissTopicDrift();
892
+ }, children: _jsx(Icon, { icon: "close-thin", size: "14px", className: 'ss__chat__topic-drift__icon--close' }) })] }));
893
+ })(), _jsxs("div", { className: 'ss__chat__input', children: [_jsxs("div", { className: 'ss__chat__input__input', children: [_jsx("input", { type: "text", name: "ss-chat-input", disabled: store.loading || store.blocked || store.currentChat?.sessionLimitReached, placeholder: (() => {
894
+ const comparedCount = store.currentChat?.comparisons.compared.length || 0;
895
+ const committedCount = store.currentChat?.comparisons.committed.length || 0;
896
+ const attached = store.currentChat?.attachments.attached.filter((item) => item.state === 'attached' || item.state === 'active') || [];
897
+ const attachedProducts = attached.filter((item) => item.type === 'product');
898
+ const attachedImages = attached.filter((item) => item.type === 'image' && !item.error);
899
+ if (attachedProducts.length === 1) {
900
+ return 'Ask about this product...';
901
+ }
902
+ if (comparedCount > 1 || attachedProducts.length > 1) {
903
+ return 'What would you like to compare?';
904
+ }
905
+ if (committedCount > 0) {
906
+ return 'Ask about the compared products...';
907
+ }
908
+ if (attachedImages.length > 0) {
909
+ return 'Ask about this image...';
910
+ }
911
+ if (comparedCount === 1) {
912
+ return 'Add another product to compare...';
913
+ }
914
+ return 'Type your message...';
915
+ })(), onInput: (e) => controller.handlers.input.input(e), onKeyDown: (e) => {
916
+ controller.handlers.input.enterKey(e);
917
+ if (e.keyCode === 13 && isMobile && mobileProductInfoOpen) {
918
+ setMobileProductInfoOpen(false);
919
+ }
920
+ }, value: controller.store.inputValue }), store.features.imageSearch.enabled && (_jsxs(_Fragment, { children: [_jsx(Button, { className: 'ss__chat__upload-button', disabled: store.loading || store.blocked || store.currentChat?.sessionLimitReached, onClick: () => fileInputRef.current?.click(), icon: { icon: 'image', title: 'Upload Image' } }), _jsx("input", { ref: fileInputRef, onChange: async (e) => {
921
+ await controller.upload(e.target.files);
922
+ // reset value
923
+ e.target.value = '';
924
+ }, type: "file", accept: "image/*", className: "ss__chat__input__input__file" })] }))] }), _jsx("div", { className: 'ss__chat__input__actions', children: (() => {
925
+ const hasImageAttachment = (store.currentChat?.attachments.attached || []).some((item) => item.type === 'image' && !item.error);
926
+ const messageEmpty = !controller.store.inputValue.trim();
927
+ const sendDisabled = store.blocked || store.currentChat?.sessionLimitReached || (hasImageAttachment && messageEmpty) || messageEmpty;
928
+ return (_jsx(Button, { className: "ss__chat__send-button", icon: { icon: 'send', title: 'Send Message' }, disabled: sendDisabled, onClick: () => {
929
+ if (sendDisabled)
930
+ return;
931
+ controller.search();
932
+ if (isMobile && mobileProductInfoOpen) {
933
+ setMobileProductInfoOpen(false);
934
+ }
935
+ } }));
936
+ })() })] }), _jsx("div", { className: 'ss__chat__disclaimer', children: _jsxs("i", { children: ["Powered by Athos Commerce. AI-powered assistant. It sometimes make mistakes. Avoid sharing personal data.", ' ', _jsx("a", { href: "https://athoscommerce.com/legal/privacy-policy/", target: "_blank", rel: "noopener noreferrer", children: "Privacy Policy" })] }) }), isDraggingFile && (_jsxs("div", { className: "ss__chat__content__footer__drop-overlay", children: [_jsx(Icon, { icon: "image", size: "24px" }), _jsx("span", { children: "Drop image to upload" })] }))] })) : (_jsxs("div", { className: 'ss__chat__expired', children: [_jsx("div", { className: 'ss__chat__expired__message', children: "This chat is expired. Please start a new chat." }), _jsx(Button, { className: 'ss__chat__expired__button', onClick: () => {
937
+ controller.store.createChat();
938
+ }, children: "New Session" })] }))] })] })) : null] }), _jsx(Overlay, { style: { zIndex: 1001 }, color: "transparent", active: store.open, onClick: () => controller.handlers.button.click() })] }) }));
939
+ });