@envive-ai/react-hooks 0.2.5 → 0.2.6-alpha-2

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 (646) hide show
  1. package/dist/AmplitudeOperations-C3i2q2Bn.js +34 -0
  2. package/dist/AmplitudeOperations-DcuLn1Zk.cjs +41 -0
  3. package/dist/{NewOrgConfig-B98Y9tMb.js → NewOrgConfig-BtvujFC8.js} +2 -2
  4. package/dist/{NewOrgConfig-ZbBKiByQ.cjs → NewOrgConfig-CHt7Xg4t.cjs} +2 -2
  5. package/dist/TrackComponentVisibleEvent-Be7wfXXY.js +53 -0
  6. package/dist/TrackComponentVisibleEvent-KUihr_y4.cjs +60 -0
  7. package/dist/amplitudeContext-CRFxGj_x.d.ts +52 -0
  8. package/dist/amplitudeContext-ZkerrMUa.d.cts +52 -0
  9. package/dist/api-D4HaU2Gf.js +166 -0
  10. package/dist/api-D4Xoibs9.cjs +239 -0
  11. package/dist/application/models/graphql/index.cjs +3 -3
  12. package/dist/application/models/graphql/index.d.cts +2 -2
  13. package/dist/application/models/graphql/index.d.ts +2 -2
  14. package/dist/application/models/graphql/index.js +2 -3
  15. package/dist/application/models/guards/api/index.cjs +3 -3
  16. package/dist/application/models/guards/api/index.d.cts +2 -2
  17. package/dist/application/models/guards/api/index.d.ts +2 -2
  18. package/dist/application/models/guards/api/index.js +3 -3
  19. package/dist/application/models/guards/utils.cjs +1 -1
  20. package/dist/application/models/guards/utils.d.ts +1 -1
  21. package/dist/application/models/guards/utils.js +1 -1
  22. package/dist/application/models/index.cjs +7 -23
  23. package/dist/application/models/index.d.cts +167 -11
  24. package/dist/application/models/index.d.ts +168 -12
  25. package/dist/application/models/index.js +7 -11
  26. package/dist/application/utils/index.cjs +19 -19
  27. package/dist/application/utils/index.d.cts +14 -63
  28. package/dist/application/utils/index.d.ts +14 -63
  29. package/dist/application/utils/index.js +19 -19
  30. package/dist/{atomStore-DXTVqiKc.js → atomStore-BuopbV9k.js} +1 -1
  31. package/dist/{atomStore-DNji91Im.cjs → atomStore-CZKe3itM.cjs} +1 -1
  32. package/dist/atoms/app/index.cjs +19 -19
  33. package/dist/atoms/app/index.d.cts +9 -20
  34. package/dist/atoms/app/index.d.ts +2 -13
  35. package/dist/atoms/app/index.js +19 -19
  36. package/dist/atoms/atomStore/index.cjs +1 -1
  37. package/dist/atoms/atomStore/index.js +1 -1
  38. package/dist/atoms/chat/index.cjs +21 -21
  39. package/dist/atoms/chat/index.d.cts +37 -45
  40. package/dist/atoms/chat/index.d.ts +35 -43
  41. package/dist/atoms/chat/index.js +21 -21
  42. package/dist/atoms/globalSearch/index.cjs +1 -1
  43. package/dist/atoms/globalSearch/index.d.cts +6 -6
  44. package/dist/atoms/globalSearch/index.d.ts +6 -6
  45. package/dist/atoms/globalSearch/index.js +1 -1
  46. package/dist/atoms/org/index.cjs +10 -11
  47. package/dist/atoms/org/index.d.cts +19 -31
  48. package/dist/atoms/org/index.d.ts +19 -31
  49. package/dist/atoms/org/index.js +2 -3
  50. package/dist/atoms/search/index.cjs +7 -47
  51. package/dist/atoms/search/index.d.cts +76 -14
  52. package/dist/atoms/search/index.d.ts +76 -14
  53. package/dist/atoms/search/index.js +7 -29
  54. package/dist/atoms/search/utils.cjs +1 -1
  55. package/dist/atoms/search/utils.d.cts +1 -1
  56. package/dist/atoms/search/utils.d.ts +1 -1
  57. package/dist/atoms/search/utils.js +1 -1
  58. package/dist/cdnContext-B2-NiEiW.js +38 -0
  59. package/dist/cdnContext-CdhppNeT.cjs +53 -0
  60. package/dist/chat-C9KdnT5V.js +230 -0
  61. package/dist/chat-bImNRcnQ.cjs +330 -0
  62. package/dist/chatState-DqWSgmjC.cjs +120 -0
  63. package/dist/chatState-DxG0t4fK.js +34 -0
  64. package/dist/config/index.d.cts +4 -4
  65. package/dist/config/index.d.ts +4 -4
  66. package/dist/config/locators/components/chat/index.d.cts +1 -1
  67. package/dist/config/locators/components/chat/index.d.ts +1 -1
  68. package/dist/config/locators/components/chat/variants/index.d.cts +1 -1
  69. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  70. package/dist/config/locators/components/common/index.d.cts +1 -1
  71. package/dist/config/locators/components/common/index.d.ts +1 -1
  72. package/dist/config/locators/components/index.d.cts +1 -1
  73. package/dist/config/locators/components/index.d.ts +1 -1
  74. package/dist/config/locators/components/search/index.d.cts +1 -1
  75. package/dist/config/locators/components/search/index.d.ts +1 -1
  76. package/dist/config/locators/index.d.cts +4 -4
  77. package/dist/config/locators/index.d.ts +4 -4
  78. package/dist/contexts/amplitudeContext/index.cjs +19 -19
  79. package/dist/contexts/amplitudeContext/index.d.cts +1 -1
  80. package/dist/contexts/amplitudeContext/index.d.ts +1 -1
  81. package/dist/contexts/amplitudeContext/index.js +19 -19
  82. package/dist/contexts/cdnContext/index.cjs +4 -4
  83. package/dist/contexts/cdnContext/index.d.cts +2 -6
  84. package/dist/contexts/cdnContext/index.d.ts +2 -6
  85. package/dist/contexts/cdnContext/index.js +4 -4
  86. package/dist/contexts/enviveConfigContext/index.cjs +4 -4
  87. package/dist/contexts/enviveConfigContext/index.d.cts +3 -24
  88. package/dist/contexts/enviveConfigContext/index.d.ts +3 -24
  89. package/dist/contexts/enviveConfigContext/index.js +4 -4
  90. package/dist/contexts/enviveCssContext/index.cjs +15 -19
  91. package/dist/contexts/enviveCssContext/index.d.cts +3 -5
  92. package/dist/contexts/enviveCssContext/index.d.ts +3 -5
  93. package/dist/contexts/enviveCssContext/index.js +15 -19
  94. package/dist/contexts/featureFlagContext/index.cjs +9 -10
  95. package/dist/contexts/featureFlagContext/index.d.cts +3 -11
  96. package/dist/contexts/featureFlagContext/index.d.ts +3 -11
  97. package/dist/contexts/featureFlagContext/index.js +6 -7
  98. package/dist/contexts/featureFlagServiceContext/index.cjs +4 -3
  99. package/dist/contexts/featureFlagServiceContext/index.d.cts +1 -4
  100. package/dist/contexts/featureFlagServiceContext/index.d.ts +1 -4
  101. package/dist/contexts/featureFlagServiceContext/index.js +4 -3
  102. package/dist/contexts/graphqlContext/index.cjs +8 -13
  103. package/dist/contexts/graphqlContext/index.d.cts +11 -14
  104. package/dist/contexts/graphqlContext/index.d.ts +11 -14
  105. package/dist/contexts/graphqlContext/index.js +8 -13
  106. package/dist/contexts/localStorageContext/index.cjs +3 -3
  107. package/dist/contexts/localStorageContext/index.d.cts +3 -22
  108. package/dist/contexts/localStorageContext/index.d.ts +3 -22
  109. package/dist/contexts/localStorageContext/index.js +4 -3
  110. package/dist/contexts/newOrgConfigContext/index.cjs +13 -17
  111. package/dist/contexts/newOrgConfigContext/index.d.cts +12 -15
  112. package/dist/contexts/newOrgConfigContext/index.d.ts +12 -15
  113. package/dist/contexts/newOrgConfigContext/index.js +13 -17
  114. package/dist/contexts/searchContext/index.cjs +24 -24
  115. package/dist/contexts/searchContext/index.d.cts +2 -7
  116. package/dist/contexts/searchContext/index.d.ts +2 -7
  117. package/dist/contexts/searchContext/index.js +24 -24
  118. package/dist/contexts/sessionStorageContext/index.cjs +2 -2
  119. package/dist/contexts/sessionStorageContext/index.d.cts +2 -6
  120. package/dist/contexts/sessionStorageContext/index.d.ts +2 -6
  121. package/dist/contexts/sessionStorageContext/index.js +2 -2
  122. package/dist/contexts/shopifyUrlContext/index.cjs +2 -2
  123. package/dist/contexts/shopifyUrlContext/index.d.cts +2 -11
  124. package/dist/contexts/shopifyUrlContext/index.d.ts +2 -11
  125. package/dist/contexts/shopifyUrlContext/index.js +2 -2
  126. package/dist/contexts/systemSettingsContext/index.cjs +4 -4
  127. package/dist/contexts/systemSettingsContext/index.d.cts +6 -16
  128. package/dist/contexts/systemSettingsContext/index.d.ts +4 -14
  129. package/dist/contexts/systemSettingsContext/index.js +4 -4
  130. package/dist/contexts/userIdentityContext/index.cjs +19 -19
  131. package/dist/contexts/userIdentityContext/index.d.cts +11 -2
  132. package/dist/contexts/userIdentityContext/index.d.ts +11 -2
  133. package/dist/contexts/userIdentityContext/index.js +19 -19
  134. package/dist/dist-B7BErEyV.cjs +6019 -0
  135. package/dist/dist-CtkINi1R.js +5923 -0
  136. package/dist/domObserver-B19-69gW.js +285 -0
  137. package/dist/{domObserver-v9ODTyfT.js → domObserver-CwieVNgj.cjs} +23 -4
  138. package/dist/enviveConfig-Be2kZE7j.js +62 -0
  139. package/dist/enviveConfig-u50Rpz-G.cjs +130 -0
  140. package/dist/enviveConfigContext-1oiQuocd.js +45 -0
  141. package/dist/enviveConfigContext-kQfHEGdJ.cjs +60 -0
  142. package/dist/events/index.cjs +2 -3
  143. package/dist/events/index.d.cts +2 -15
  144. package/dist/events/index.d.ts +2 -15
  145. package/dist/events/index.js +2 -2
  146. package/dist/events-CgFGtanE.cjs +69 -0
  147. package/dist/events-WOOrnUAx.js +63 -0
  148. package/dist/exceptions/index.cjs +4 -0
  149. package/dist/exceptions/index.d.cts +12 -0
  150. package/dist/exceptions/index.d.ts +12 -0
  151. package/dist/exceptions/index.js +3 -0
  152. package/dist/exceptions-BjDgLzGi.cjs +32 -0
  153. package/dist/exceptions-CUGY31Ua.js +20 -0
  154. package/dist/featureFlagServiceContext-B7je7VZV.d.cts +24 -0
  155. package/dist/featureFlagServiceContext-CPsygiHO.js +46 -0
  156. package/dist/featureFlagServiceContext-ahy3jou0.d.ts +24 -0
  157. package/dist/featureFlagServiceContext-pPneufeB.cjs +66 -0
  158. package/dist/{globalSearch-Ccxq8hNF.js → globalSearch-B_v9qfCT.js} +1 -1
  159. package/dist/{globalSearch-FBk2epe8.cjs → globalSearch-OiF96VLG.cjs} +1 -1
  160. package/dist/graphql-CvAHWmel.js +46 -0
  161. package/dist/graphql-JaGqsToc.cjs +70 -0
  162. package/dist/graphqlContext-BuXJ5DiW.js +96 -0
  163. package/dist/graphqlContext-CU7NIJo7.cjs +111 -0
  164. package/dist/hooks/AmplitudeOperations/index.cjs +21 -22
  165. package/dist/hooks/AmplitudeOperations/index.d.cts +2 -2
  166. package/dist/hooks/AmplitudeOperations/index.d.ts +2 -2
  167. package/dist/hooks/AmplitudeOperations/index.js +20 -21
  168. package/dist/hooks/AppDetails/index.cjs +22 -22
  169. package/dist/hooks/AppDetails/index.d.cts +3 -23
  170. package/dist/hooks/AppDetails/index.d.ts +3 -23
  171. package/dist/hooks/AppDetails/index.js +22 -22
  172. package/dist/hooks/CdnOperations/index.cjs +4 -4
  173. package/dist/hooks/CdnOperations/index.d.cts +1 -1
  174. package/dist/hooks/CdnOperations/index.js +4 -4
  175. package/dist/hooks/ChatToggle/index.cjs +24 -24
  176. package/dist/hooks/ChatToggle/index.d.cts +2 -2
  177. package/dist/hooks/ChatToggle/index.d.ts +2 -2
  178. package/dist/hooks/ChatToggle/index.js +22 -22
  179. package/dist/hooks/ChatToggleAnalytics/index.cjs +23 -24
  180. package/dist/hooks/ChatToggleAnalytics/index.d.cts +2 -2
  181. package/dist/hooks/ChatToggleAnalytics/index.d.ts +2 -2
  182. package/dist/hooks/ChatToggleAnalytics/index.js +22 -23
  183. package/dist/hooks/CustomerSupportHandoff/index.cjs +2 -2
  184. package/dist/hooks/CustomerSupportHandoff/index.js +2 -2
  185. package/dist/hooks/Debounce/index.cjs +20 -2
  186. package/dist/hooks/Debounce/index.js +18 -2
  187. package/dist/hooks/ElementObserver/index.cjs +4 -6
  188. package/dist/hooks/ElementObserver/index.d.cts +4 -25
  189. package/dist/hooks/ElementObserver/index.d.ts +4 -25
  190. package/dist/hooks/ElementObserver/index.js +4 -6
  191. package/dist/hooks/GrabAndScroll/index.cjs +1 -1
  192. package/dist/hooks/GrabAndScroll/index.d.cts +2 -2
  193. package/dist/hooks/GrabAndScroll/index.js +1 -1
  194. package/dist/hooks/GraphQLConfig/index.cjs +9 -14
  195. package/dist/hooks/GraphQLConfig/index.d.cts +2 -13
  196. package/dist/hooks/GraphQLConfig/index.d.ts +2 -13
  197. package/dist/hooks/GraphQLConfig/index.js +9 -14
  198. package/dist/hooks/IdentifyUser/index.cjs +19 -19
  199. package/dist/hooks/IdentifyUser/index.js +19 -19
  200. package/dist/hooks/ImageResolver/index.cjs +20 -29
  201. package/dist/hooks/ImageResolver/index.js +20 -29
  202. package/dist/hooks/Intersection/index.cjs +1 -1
  203. package/dist/hooks/Intersection/index.js +1 -1
  204. package/dist/hooks/LocalStorageOperations/index.cjs +8 -7
  205. package/dist/hooks/LocalStorageOperations/index.js +4 -3
  206. package/dist/hooks/MessageFilter/index.cjs +3 -12
  207. package/dist/hooks/MessageFilter/index.d.cts +2 -17
  208. package/dist/hooks/MessageFilter/index.d.ts +2 -17
  209. package/dist/hooks/MessageFilter/index.js +2 -11
  210. package/dist/hooks/NewOrgConfig/index.cjs +14 -18
  211. package/dist/hooks/NewOrgConfig/index.d.cts +3 -16
  212. package/dist/hooks/NewOrgConfig/index.d.ts +3 -16
  213. package/dist/hooks/NewOrgConfig/index.js +14 -18
  214. package/dist/hooks/Search/index.cjs +332 -167
  215. package/dist/hooks/Search/index.d.cts +3 -57
  216. package/dist/hooks/Search/index.d.ts +3 -57
  217. package/dist/hooks/Search/index.js +320 -156
  218. package/dist/hooks/SearchOperations/index.cjs +25 -25
  219. package/dist/hooks/SearchOperations/index.d.cts +2 -3
  220. package/dist/hooks/SearchOperations/index.d.ts +2 -3
  221. package/dist/hooks/SearchOperations/index.js +25 -25
  222. package/dist/hooks/SessionStorageOperations/index.cjs +2 -2
  223. package/dist/hooks/SessionStorageOperations/index.js +2 -2
  224. package/dist/hooks/ShopifyUrlOperations/index.cjs +3 -3
  225. package/dist/hooks/ShopifyUrlOperations/index.d.cts +2 -4
  226. package/dist/hooks/ShopifyUrlOperations/index.d.ts +2 -4
  227. package/dist/hooks/ShopifyUrlOperations/index.js +3 -3
  228. package/dist/hooks/SnapCalculator/index.cjs +1 -1
  229. package/dist/hooks/SnapCalculator/index.d.cts +4 -3
  230. package/dist/hooks/SnapCalculator/index.d.ts +4 -3
  231. package/dist/hooks/SnapCalculator/index.js +1 -1
  232. package/dist/hooks/SystemSettingsContext/index.cjs +17 -6
  233. package/dist/hooks/SystemSettingsContext/index.d.cts +5 -15
  234. package/dist/hooks/SystemSettingsContext/index.d.ts +5 -15
  235. package/dist/hooks/SystemSettingsContext/index.js +15 -6
  236. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +21 -21
  237. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +2 -3
  238. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +2 -3
  239. package/dist/hooks/TrackComponentVisibleEvent/index.js +21 -21
  240. package/dist/hooks/UpdateAnalyticsProps/index.cjs +21 -21
  241. package/dist/hooks/UpdateAnalyticsProps/index.js +20 -20
  242. package/dist/hooks/utils.d.cts +20 -13
  243. package/dist/hooks/utils.d.ts +20 -13
  244. package/dist/{index-LTdMHOxj.d.ts → index-B4cSHxVN.d.ts} +1 -1
  245. package/dist/{index-DzbkQtaK.d.cts → index-BQpWG3Jm.d.cts} +1 -1
  246. package/dist/index-BVZbvpx_.d.cts +11 -0
  247. package/dist/index-CEmUfoZa.d.ts +42 -0
  248. package/dist/index-CMZcE7pk.d.cts +224 -0
  249. package/dist/{index-DBqgBV9N.d.ts → index-CYGpI6hE.d.ts} +1 -1
  250. package/dist/{index-9NE86em3.d.cts → index-ClVBVK15.d.cts} +1 -1
  251. package/dist/{index-nDWHlouq.d.ts → index-Clf4wYaJ.d.ts} +1 -1
  252. package/dist/index-DeQte6mb.d.ts +11 -0
  253. package/dist/index-Dzv6WwSZ.d.ts +224 -0
  254. package/dist/{index-FQjyuD3D.d.cts → index-ca7Qn8o0.d.cts} +1 -1
  255. package/dist/{index-DHgVW8ey.d.ts → index-dngXrfnT.d.ts} +1 -1
  256. package/dist/index-qOBU4GEh.d.cts +42 -0
  257. package/dist/{index-Da1s8h5C.d.cts → index-w64il54a.d.cts} +1 -1
  258. package/dist/interceptors/index.cjs +28 -3
  259. package/dist/interceptors/index.d.cts +4 -15
  260. package/dist/interceptors/index.d.ts +4 -15
  261. package/dist/interceptors/index.js +25 -3
  262. package/dist/localStorageContext-Bb2b_3ue.cjs +104 -0
  263. package/dist/localStorageContext-D2uXKahw.js +90 -0
  264. package/dist/{logger-W3lqg-4b.js → logger-BMVdhQOV.js} +1 -1
  265. package/dist/{logger-TBIl4uIH.cjs → logger-BqHq67zN.cjs} +1 -1
  266. package/dist/models-DmsMlaHT.js +1118 -0
  267. package/dist/models-wh2gh_Qz.cjs +1305 -0
  268. package/dist/newOrgConfigAtom-Dsk0fJNR.js +8 -0
  269. package/dist/{newOrgConfigAtom-A4BEeHMf.cjs → newOrgConfigAtom-hs5A1pbZ.cjs} +1 -1
  270. package/dist/newOrgConfigContext-DPUxIF2G.js +53 -0
  271. package/dist/newOrgConfigContext-lw85mMS-.cjs +68 -0
  272. package/dist/nodeSelector-CbWcUbuc.d.ts +28 -0
  273. package/dist/nodeSelector-Cj-Xl1LP.d.cts +28 -0
  274. package/dist/org-C2kLSSe9.cjs +111 -0
  275. package/dist/org-CIczyLRP.js +32 -0
  276. package/dist/search-BzXoTgRx.js +233 -0
  277. package/dist/search-D1cU29CV.cjs +312 -0
  278. package/dist/searchContext-C8DpjnqD.js +129 -0
  279. package/dist/searchContext-R_XuFzYe.cjs +145 -0
  280. package/dist/searchServiceAdapter-CKc7UXKi.js +16 -0
  281. package/dist/searchServiceAdapter-pROGm3Rf.cjs +34 -0
  282. package/dist/sessionStorageContext-ByaTsDUC.cjs +66 -0
  283. package/dist/sessionStorageContext-DKE97oMv.js +52 -0
  284. package/dist/shopifyUrlContext-G9eqIcsL.cjs +75 -0
  285. package/dist/shopifyUrlContext-WAm0pnPh.js +61 -0
  286. package/dist/systemSettingsContext-B-FZ8UAg.js +39 -0
  287. package/dist/systemSettingsContext-J1sny8W8.cjs +60 -0
  288. package/dist/types/index.cjs +3 -33
  289. package/dist/types/index.d.cts +2 -3
  290. package/dist/types/index.d.ts +2 -3
  291. package/dist/types/index.js +2 -30
  292. package/dist/types-1iJ_FnQQ.cjs +39 -0
  293. package/dist/types-D5du68Vp.js +27 -0
  294. package/dist/urlsParser-C-Vzs--G.cjs +78 -0
  295. package/dist/urlsParser-G7Ocwg0M.js +42 -0
  296. package/dist/useAppDetails-BtK9ZZJs.js +30 -0
  297. package/dist/useAppDetails-Bw2jJ39H.cjs +38 -0
  298. package/dist/useGraphQLConfig-Dc8h2yyN.cjs +76 -0
  299. package/dist/useGraphQLConfig-DuLB3tdv.js +63 -0
  300. package/dist/{useIntersection-BJRFGG0f.js → useIntersection-BWiHkpKL.js} +1 -1
  301. package/dist/{useIntersection-CYRvxtRN.cjs → useIntersection-DZHz44BY.cjs} +1 -1
  302. package/dist/{utils-DIvMgPe8.js → utils-B1LVzQYK.js} +1 -1
  303. package/dist/{utils-Buo4KU5l.cjs → utils-BivlGkeU.cjs} +1 -1
  304. package/dist/{utils-BRNaQkCK.js → utils-CExht7Uj.js} +1 -1
  305. package/dist/{utils-CDw74BCO.cjs → utils-CiJLDPjY.cjs} +1 -1
  306. package/dist/utils-D_kATUj6.js +1 -1
  307. package/dist/utils-DqNhRm2b.cjs +1546 -0
  308. package/dist/utils-IogJwDB9.js +1364 -0
  309. package/dist/utils-hYTjy7hJ.cjs +1 -1
  310. package/dist/{utils-DyTiotQz.d.ts → utils-wWki3L1d.d.ts} +1 -1
  311. package/package.json +7 -25
  312. package/src/application/commerce-api.ts +38 -37
  313. package/src/application/models/graphql/index.ts +1 -0
  314. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -23
  315. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -89
  316. package/src/application/models/guards/api/isApiFormResponse.ts +4 -4
  317. package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +2 -2
  318. package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +2 -20
  319. package/src/application/models/guards/api/isApiOrgConfigResults.ts +3 -9
  320. package/src/application/models/guards/api/isApiOrganizationConfig.ts +8 -32
  321. package/src/application/models/guards/api/isApiPDPEventAttributes.ts +8 -5
  322. package/src/application/models/guards/api/isApiPLPEventAttributes.ts +14 -10
  323. package/src/application/models/guards/api/isApiPageResponseAttributes.ts +1 -1
  324. package/src/application/models/guards/api/isApiProductResponseAttributes.ts +2 -4
  325. package/src/application/models/guards/api/isApiProductSearchAttributes.ts +9 -6
  326. package/src/application/models/guards/api/isApiProductSearchFilterAttributes.ts +7 -4
  327. package/src/application/models/guards/api/isApiQueryTypedEventAttributes.ts +8 -3
  328. package/src/application/models/guards/api/isApiResponse.ts +22 -15
  329. package/src/application/models/guards/api/isApiReviewResponseAttributes.ts +1 -1
  330. package/src/application/models/guards/api/isApiReviewRichInformation.ts +1 -1
  331. package/src/application/models/guards/api/isApiTextResponseAttributes.ts +1 -1
  332. package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +1 -1
  333. package/src/application/models/guards/isBaseEcommerceEvent.ts +1 -2
  334. package/src/application/models/guards/isGA4EcommerceEvent.ts +1 -1
  335. package/src/application/models/guards/isLegacyUAEcommerceEvent.ts +1 -1
  336. package/src/application/models/guards/isMobilePLPChatPlacementParameter.ts +1 -3
  337. package/src/application/models/guards/isSpanxTakeAQuizCtaParameter.ts +5 -3
  338. package/src/application/models/guards/isVariantInfo.ts +6 -1
  339. package/src/application/models/index.ts +30 -95
  340. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  341. package/src/application/models/validators/validateGraphQLColorsConfig.ts +6 -2
  342. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +6 -6
  343. package/src/application/models/validators/validateMobilePLPChatPlacementParameter.ts +5 -3
  344. package/src/application/models/validators/validateOrgConfigResults.ts +6 -5
  345. package/src/application/models/validators/validateOrganizationConfig.ts +11 -8
  346. package/src/application/models/validators/validateResponse.ts +66 -44
  347. package/src/application/models/validators/validateSuggestion.ts +1 -1
  348. package/src/application/models/validators/validateUserEvent.ts +23 -12
  349. package/src/application/utils/analyticsUtils.ts +16 -38
  350. package/src/application/utils/coreContextToApiContext.ts +3 -1
  351. package/src/application/utils/coreUserEventToApiUserEvent.ts +2 -2
  352. package/src/application/utils/elementObserver.ts +1 -1
  353. package/src/application/utils/imageFilter.ts +5 -2
  354. package/src/application/utils/index.ts +20 -21
  355. package/src/application/utils/messageFromFormSubmittedEvent.ts +1 -1
  356. package/src/application/utils/messageFromQueryEvent.ts +1 -1
  357. package/src/application/utils/messageFromResponse.ts +14 -10
  358. package/src/application/utils/messageFromSuggestionEvent.ts +6 -4
  359. package/src/application/utils/mouseEventTypes.ts +1 -1
  360. package/src/application/utils/nextMessageRequestToApiRequest.ts +1 -1
  361. package/src/application/utils/overrides.ts +1 -49
  362. package/src/application/utils/supportedEventRequestToApiRequest.ts +3 -1
  363. package/src/application/utils/urlsParser.ts +1 -7
  364. package/src/atoms/app/index.ts +15 -25
  365. package/src/atoms/app/variant.ts +1 -1
  366. package/src/atoms/chat/chatState.ts +9 -14
  367. package/src/atoms/chat/form.ts +1 -1
  368. package/src/atoms/chat/messageQueue.ts +25 -50
  369. package/src/atoms/chat/replies.ts +40 -43
  370. package/src/atoms/chat/suggestions.ts +34 -29
  371. package/src/atoms/envive/enviveConfig.ts +14 -20
  372. package/src/atoms/org/customerService.ts +4 -8
  373. package/src/atoms/org/graphqlConfig.ts +7 -15
  374. package/src/atoms/org/index.ts +4 -6
  375. package/src/atoms/org/newOrgConfigAtom.ts +2 -2
  376. package/src/atoms/org/orgAnalyticsConfig.ts +1 -1
  377. package/src/atoms/search/index.ts +0 -1
  378. package/src/atoms/search/productFilters.ts +72 -52
  379. package/src/atoms/search/productRetrievalAPI.ts +72 -0
  380. package/src/atoms/search/productRetrievalAdapter.ts +28 -0
  381. package/src/atoms/search/productSorter.ts +2 -2
  382. package/src/atoms/search/searchAPI.ts +42 -60
  383. package/src/atoms/search/searchServiceAdapter.ts +1 -1
  384. package/src/contexts/amplitudeContext/amplitudeContext.tsx +104 -143
  385. package/src/contexts/cdnContext/cdnContext.tsx +9 -16
  386. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +6 -27
  387. package/src/contexts/enviveCssContext/enviveCssContext.tsx +5 -12
  388. package/src/contexts/featureFlagContext/featureFlagContext.tsx +27 -48
  389. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -3
  390. package/src/contexts/graphqlContext/graphqlContext.tsx +40 -95
  391. package/src/contexts/localStorageContext/localStorageContext.tsx +26 -60
  392. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +10 -22
  393. package/src/contexts/searchContext/searchContext.tsx +29 -49
  394. package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +12 -33
  395. package/src/contexts/shopifyUrlContext/shopifyUrlContext.tsx +20 -37
  396. package/src/contexts/systemSettingsContext/systemSettingsContext.tsx +8 -21
  397. package/src/contexts/userIdentityContext/userIdentityContext.tsx +33 -77
  398. package/src/events/index.ts +8 -5
  399. package/src/events/registerAnalyticsListeners.ts +10 -13
  400. package/src/exceptions/index.ts +2 -0
  401. package/src/{types/exceptions → exceptions}/unsupportedProductExceptions.ts +2 -2
  402. package/src/global.d.ts +8 -0
  403. package/src/hooks/AmplitudeOperations/useAmplitudeOperations.ts +6 -11
  404. package/src/hooks/AppDetails/useAppDetails.ts +10 -24
  405. package/src/hooks/ChatToggle/useChatToggle.ts +7 -19
  406. package/src/hooks/ChatToggleAnalytics/useChatToggleAnalytics.ts +4 -4
  407. package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +1 -1
  408. package/src/hooks/ElementObserver/useElementObserver.ts +14 -32
  409. package/src/hooks/GrabAndScroll/useGrabAndScroll.ts +125 -124
  410. package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +5 -7
  411. package/src/hooks/ImageResolver/useImageResolver.ts +24 -31
  412. package/src/hooks/LocalStorageOperations/useLocalStorageOperations.ts +12 -19
  413. package/src/hooks/MessageFilter/useMessageFilter.ts +1 -7
  414. package/src/hooks/Search/useRecommendedProducts.ts +50 -0
  415. package/src/hooks/Search/useSearch.tsx +80 -210
  416. package/src/hooks/Search/useSearchInput.ts +227 -0
  417. package/src/hooks/SearchOperations/useSearchOperations.ts +8 -12
  418. package/src/hooks/ShopifyUrlOperations/useShopifyUrlOperations.ts +8 -14
  419. package/src/hooks/SnapCalculator/useSnapCalculator.ts +1 -2
  420. package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +8 -11
  421. package/src/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.ts +11 -25
  422. package/src/hooks/utils.ts +19 -29
  423. package/src/interceptors/index.ts +1 -2
  424. package/src/interceptors/useMessageInterceptor.ts +10 -6
  425. package/src/{application/models/api/response.ts → types/ApiResponse.ts} +35 -29
  426. package/src/types/FilterAttribute.ts +35 -0
  427. package/src/{application/models/message.ts → types/Message.ts} +38 -34
  428. package/src/types/Suggestion.ts +6 -0
  429. package/src/types/index.ts +4 -4
  430. package/src/util/colorVar.ts +4 -0
  431. package/src/util/configVersion.ts +4 -0
  432. package/src/util/domInsertion.ts +17 -0
  433. package/dist/SystemSettingsContext-CO5c1L62.cjs +0 -20
  434. package/dist/SystemSettingsContext-CXmUlH8i.js +0 -13
  435. package/dist/TrackComponentVisibleEvent-B0WO3ArV.js +0 -52
  436. package/dist/TrackComponentVisibleEvent-LRE9MYzL.cjs +0 -59
  437. package/dist/amplitudeContext-B73xamNe.d.cts +0 -52
  438. package/dist/amplitudeContext-DXnJi0V1.d.ts +0 -52
  439. package/dist/api-BWSsazAG.js +0 -166
  440. package/dist/api-DeW6rHj3.cjs +0 -239
  441. package/dist/application/models/utilityTypes/index.cjs +0 -1
  442. package/dist/application/models/utilityTypes/index.d.cts +0 -2
  443. package/dist/application/models/utilityTypes/index.d.ts +0 -2
  444. package/dist/application/models/utilityTypes/index.js +0 -3
  445. package/dist/application/models/variantInfo/index.cjs +0 -3
  446. package/dist/application/models/variantInfo/index.d.cts +0 -2
  447. package/dist/application/models/variantInfo/index.d.ts +0 -2
  448. package/dist/application/models/variantInfo/index.js +0 -3
  449. package/dist/atoms/search/types.cjs +0 -5
  450. package/dist/atoms/search/types.d.cts +0 -2
  451. package/dist/atoms/search/types.d.ts +0 -2
  452. package/dist/atoms/search/types.js +0 -3
  453. package/dist/cdnContext-CH_-ssYa.js +0 -38
  454. package/dist/cdnContext-D7kHxOzE.cjs +0 -53
  455. package/dist/chat-CqPuT9_V.cjs +0 -393
  456. package/dist/chat-DH70QqJp.js +0 -257
  457. package/dist/chatElementDisplayLocation-BoE6DEdv.d.ts +0 -25
  458. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +0 -25
  459. package/dist/chatSearch-BQCZI8MJ.cjs +0 -418
  460. package/dist/chatSearch-D8xCWU8m.js +0 -295
  461. package/dist/chatState-CcFtSqJT.cjs +0 -120
  462. package/dist/chatState-DKnNHmwe.js +0 -34
  463. package/dist/contexts/chatContext/index.cjs +0 -326
  464. package/dist/contexts/chatContext/index.d.cts +0 -15
  465. package/dist/contexts/chatContext/index.d.ts +0 -15
  466. package/dist/contexts/chatContext/index.js +0 -319
  467. package/dist/contexts/types.cjs +0 -7
  468. package/dist/contexts/types.d.cts +0 -4
  469. package/dist/contexts/types.d.ts +0 -4
  470. package/dist/contexts/types.js +0 -3
  471. package/dist/domObserver-Bqf3ooj8.cjs +0 -304
  472. package/dist/enviveConfig-DZBohDpc.js +0 -62
  473. package/dist/enviveConfig-Dv9-esGV.cjs +0 -130
  474. package/dist/enviveConfigContext-D2OELZDR.cjs +0 -60
  475. package/dist/enviveConfigContext-DrDjCems.js +0 -45
  476. package/dist/events-DYY4l817.cjs +0 -90
  477. package/dist/events-DyUix-Bn.js +0 -78
  478. package/dist/featureFlagServiceContext-CJyYItqu.cjs +0 -62
  479. package/dist/featureFlagServiceContext-C_2m4wPL.d.ts +0 -23
  480. package/dist/featureFlagServiceContext-CiKWV306.d.cts +0 -23
  481. package/dist/featureFlagServiceContext-FBM6DdMJ.js +0 -42
  482. package/dist/featureGates-KEwAL8p_.js +0 -26
  483. package/dist/featureGates-qU_ulhpC.cjs +0 -32
  484. package/dist/frontendConfig-CymUbclV.d.ts +0 -856
  485. package/dist/frontendConfig-tVg0hsWZ.d.cts +0 -856
  486. package/dist/graphql-3PxNRFOc.js +0 -36
  487. package/dist/graphql-DGYfelZp.cjs +0 -53
  488. package/dist/graphqlConfig-GHZ1UgCw.cjs +0 -73
  489. package/dist/graphqlConfig-mDg6J44N.js +0 -24
  490. package/dist/graphqlContext-BZPEAFSR.cjs +0 -111
  491. package/dist/graphqlContext-Bf3E-V2T.d.cts +0 -28
  492. package/dist/graphqlContext-CQikpV_I.d.ts +0 -28
  493. package/dist/graphqlContext-eaZPxgRE.js +0 -96
  494. package/dist/index-BVf069X-.d.ts +0 -184
  495. package/dist/index-B_KJB5L_.d.cts +0 -186
  496. package/dist/index-BkLv_fCu.d.ts +0 -186
  497. package/dist/index-Bmub8e38.d.cts +0 -98
  498. package/dist/index-C0eAp5f5.d.ts +0 -98
  499. package/dist/index-CESxqFso.d.cts +0 -228
  500. package/dist/index-CG3P8xE1.d.cts +0 -676
  501. package/dist/index-CJc7_j_v.d.ts +0 -44
  502. package/dist/index-CiWEYzXl.d.cts +0 -184
  503. package/dist/index-Cyq5HiC0.d.cts +0 -44
  504. package/dist/index-DL2ODEnw.d.ts +0 -1
  505. package/dist/index-DgjDuQl4.d.ts +0 -676
  506. package/dist/index-RcVcRKH7.d.cts +0 -1
  507. package/dist/index-vP8BKdxl.d.ts +0 -228
  508. package/dist/interceptors/types.cjs +0 -1
  509. package/dist/interceptors/types.d.cts +0 -13
  510. package/dist/interceptors/types.d.ts +0 -13
  511. package/dist/interceptors/types.js +0 -3
  512. package/dist/localStorageContext-BPZ82q-G.js +0 -95
  513. package/dist/localStorageContext-NRP-CdmF.cjs +0 -115
  514. package/dist/models-D-4db7XW.cjs +0 -1537
  515. package/dist/models-c86hYW-F.js +0 -1296
  516. package/dist/newOrgConfigAtom-OzAyrPS8.js +0 -8
  517. package/dist/newOrgConfigContext-DOdUxlOE.d.cts +0 -16
  518. package/dist/newOrgConfigContext-DX9iqIIK.cjs +0 -68
  519. package/dist/newOrgConfigContext-aqN8Tu79.js +0 -53
  520. package/dist/newOrgConfigContext-jphS5d4K.d.ts +0 -16
  521. package/dist/nodeSelector-B3bPtEjX.d.cts +0 -31
  522. package/dist/nodeSelector-Dcn3_NrZ.d.ts +0 -31
  523. package/dist/org-Bq2KsJSp.cjs +0 -43
  524. package/dist/org-gtWmGw4K.js +0 -12
  525. package/dist/search-BQPMtze5.cjs +0 -205
  526. package/dist/search-CIrqYYMI.d.ts +0 -20
  527. package/dist/search-PXzaYtZj.js +0 -126
  528. package/dist/search-filter-types-BhK20ts3.d.ts +0 -102
  529. package/dist/search-filter-types-BxaNSLs_.d.cts +0 -102
  530. package/dist/search-y-ioX5Mz.d.cts +0 -20
  531. package/dist/searchContext-CmsLR6Ka.cjs +0 -145
  532. package/dist/searchContext-NPfqMf6b.js +0 -129
  533. package/dist/searchServiceAdapter-BczodJGV.cjs +0 -34
  534. package/dist/searchServiceAdapter-BuEHFG5t.js +0 -16
  535. package/dist/sessionStorageContext-C1u04nAK.js +0 -52
  536. package/dist/sessionStorageContext-Cy8xc9-3.cjs +0 -66
  537. package/dist/shopifyUrlContext-CUyq3f27.cjs +0 -75
  538. package/dist/shopifyUrlContext-DTLlqlMj.js +0 -61
  539. package/dist/spiffyWidgets-BnkP5kXf.d.ts +0 -20
  540. package/dist/spiffyWidgets-BuS00VaQ.d.cts +0 -20
  541. package/dist/systemSettingsContext-Ba-wi2NZ.cjs +0 -60
  542. package/dist/systemSettingsContext-DumUaV0m.js +0 -39
  543. package/dist/test-types-DbrKQIqB.d.ts +0 -40
  544. package/dist/test-types-ThQiO_cc.d.cts +0 -40
  545. package/dist/types-BWzwd0Qc.js +0 -30
  546. package/dist/types-CEx2uKKS.d.ts +0 -51
  547. package/dist/types-CKMMb_gX.d.cts +0 -51
  548. package/dist/types-CKPddlfS.cjs +0 -0
  549. package/dist/types-CtUb63bt.js +0 -76
  550. package/dist/types-Cz8CaPUQ.cjs +0 -48
  551. package/dist/types-Dc6hx6ei.js +0 -1
  552. package/dist/types-Mwm0bS2l.d.ts +0 -10
  553. package/dist/types-UUvB6h05.cjs +0 -106
  554. package/dist/types-zQGBI-Yo.d.cts +0 -10
  555. package/dist/types.cjs +0 -0
  556. package/dist/types.d.cts +0 -15
  557. package/dist/types.d.ts +0 -15
  558. package/dist/types.js +0 -1
  559. package/dist/urlsParser-COzMdJaX.cjs +0 -78
  560. package/dist/urlsParser-DxjoLj98.js +0 -42
  561. package/dist/useAmplitudeOperations-Cv0fi3uj.cjs +0 -41
  562. package/dist/useAmplitudeOperations-Ti6phPPq.js +0 -34
  563. package/dist/useAppDetails-BgqbPlfR.cjs +0 -38
  564. package/dist/useAppDetails-DnKGYtCd.js +0 -30
  565. package/dist/useDebounce-BV7B-Jz3.js +0 -19
  566. package/dist/useDebounce-vU5iW5sa.cjs +0 -26
  567. package/dist/useGraphQLConfig-BizpCw23.cjs +0 -76
  568. package/dist/useGraphQLConfig-DFWl9Z89.js +0 -63
  569. package/dist/useMessageInterceptor-BjGP_uXm.js +0 -25
  570. package/dist/useMessageInterceptor-arAqUq1Q.cjs +0 -33
  571. package/dist/userIdentityContext-BvsEnQVX.d.ts +0 -20
  572. package/dist/userIdentityContext-D2oFVFzo.d.cts +0 -20
  573. package/dist/utilityTypes-B2KuRn37.js +0 -1
  574. package/dist/utilityTypes-BGbL2WTP.cjs +0 -0
  575. package/dist/utils-B7PAzB_M.d.cts +0 -22
  576. package/dist/utils-CLGXsOwE.cjs +0 -1591
  577. package/dist/utils-CrQ0h9tc.d.ts +0 -22
  578. package/dist/utils-jYtD3hmA.js +0 -1385
  579. package/dist/variantInfo-BfKlkaWU.js +0 -11
  580. package/dist/variantInfo-DpLn4nHz.cjs +0 -17
  581. package/src/application/models/api/context.ts +0 -4
  582. package/src/application/models/api/generationParams.ts +0 -4
  583. package/src/application/models/api/nextMessageRequest.ts +0 -11
  584. package/src/application/models/api/orgAnalyticsConfig.ts +0 -19
  585. package/src/application/models/api/orgConfigResults.ts +0 -44
  586. package/src/application/models/api/organizationConfig.ts +0 -12
  587. package/src/application/models/api/responseGenerics.ts +0 -67
  588. package/src/application/models/api/search.ts +0 -26
  589. package/src/application/models/api/suggestion.ts +0 -4
  590. package/src/application/models/api/supportedEventRequest.ts +0 -8
  591. package/src/application/models/api/userEvent.ts +0 -101
  592. package/src/application/models/cachedValue.ts +0 -8
  593. package/src/application/models/chatElementDisplayLocation.ts +0 -22
  594. package/src/application/models/clientDetails.ts +0 -18
  595. package/src/application/models/colorsConfig.ts +0 -28
  596. package/src/application/models/conversationalSearchIds.ts +0 -5
  597. package/src/application/models/dataLayer.ts +0 -45
  598. package/src/application/models/events.ts +0 -5
  599. package/src/application/models/featureGates.ts +0 -21
  600. package/src/application/models/frontendConfig.ts +0 -14
  601. package/src/application/models/googleAnalyticsEvents.ts +0 -8
  602. package/src/application/models/localStorageEventListener.ts +0 -4
  603. package/src/application/models/mobilePLPChatPlacementParameter.ts +0 -3
  604. package/src/application/models/orgsEnum.ts +0 -36
  605. package/src/application/models/productExperiment.ts +0 -5
  606. package/src/application/models/spanxTakeAQuizCtaParameter.ts +0 -4
  607. package/src/application/models/spiffyWidgets.ts +0 -16
  608. package/src/application/models/utilityTypes/camelCase.ts +0 -87
  609. package/src/application/models/utilityTypes/camelCasedPropertiesDeep.ts +0 -80
  610. package/src/application/models/utilityTypes/delimiterCase.ts +0 -121
  611. package/src/application/models/utilityTypes/delimiterCasedPropertiesDeep.ts +0 -98
  612. package/src/application/models/utilityTypes/index.ts +0 -1
  613. package/src/application/models/utilityTypes/internal.ts +0 -93
  614. package/src/application/models/utilityTypes/primitive.ts +0 -8
  615. package/src/application/models/utilityTypes/snakeCasedPropertiesDeep.ts +0 -49
  616. package/src/application/models/utilityTypes/splitWords.ts +0 -76
  617. package/src/application/models/utilityTypes/trim.ts +0 -28
  618. package/src/application/models/utilityTypes/unknownArray.ts +0 -25
  619. package/src/application/models/variantInfo/index.ts +0 -1
  620. package/src/application/models/variantInfo/pageVisitInfo.ts +0 -6
  621. package/src/application/models/variantInfo/plpInfo.ts +0 -3
  622. package/src/application/models/variantInfo/productInfo.ts +0 -5
  623. package/src/application/models/variantInfo/variantInfo.ts +0 -29
  624. package/src/application/utils/__tests__/divideArrays.test.ts +0 -14
  625. package/src/application/utils/cdnUtils.ts +0 -11
  626. package/src/atoms/search/chatSearch.ts +0 -317
  627. package/src/atoms/search/types.ts +0 -55
  628. package/src/config/divIds.ts +0 -27
  629. package/src/config/socialProofClasses.ts +0 -17
  630. package/src/contexts/chatContext/chatContext.tsx +0 -509
  631. package/src/contexts/chatContext/index.ts +0 -1
  632. package/src/contexts/types.ts +0 -1066
  633. package/src/events/event-types.ts +0 -11
  634. package/src/interceptors/types.ts +0 -6
  635. package/src/merchants/domInsertion.ts +0 -30
  636. package/src/merchants/gridInsertion.ts +0 -19
  637. package/src/types/config-versions.ts +0 -6
  638. package/src/types/customerService.ts +0 -31
  639. package/src/types/custservice-types.ts +0 -28
  640. package/src/types/search-filter-types.ts +0 -111
  641. package/src/types/suggestionBarV2-types.ts +0 -4
  642. package/src/types/test-types.ts +0 -3
  643. package/src/types.ts +0 -11
  644. /package/dist/{AmplitudeOperations-CWI4yjZ4.js → featureFlagServiceContext-CbUOAw5l.js} +0 -0
  645. /package/dist/{AmplitudeOperations-BEGeYKG5.cjs → featureFlagServiceContext-DSo2brno.cjs} +0 -0
  646. /package/src/{types/exceptions → exceptions}/sessionExceptions.ts +0 -0
@@ -1,1066 +0,0 @@
1
- import { ChatElementDisplayLocation } from "src/application/models/chatElementDisplayLocation";
2
- import {
3
- ColorMapping,
4
- ColorNames,
5
- colorVar,
6
- } from "src/application/models/colorsConfig";
7
- import { FeatureGates } from "src/application/models/featureGates";
8
- import {
9
- CustomerServiceIntegrationMode,
10
- CustomerServiceType,
11
- } from "src/types/customerService";
12
- import { GridInsertionType } from "src/merchants/gridInsertion";
13
- import { DOMInsertionType } from "src/merchants/domInsertion";
14
-
15
- import type {
16
- PageVisitCategory,
17
- SupportedEventProductCategory,
18
- } from "@spiffy-ai/commerce-api-client";
19
- import { ChatState } from "src/types/custservice-types";
20
- import { SuggestionBarLocationForMetrics } from "src/types/suggestionBarV2-types";
21
- import { TestProps } from "src/types/test-types";
22
- import { OrgConfigFeatureGate } from "src/application/models/api/orgConfigResults";
23
-
24
- type ShowFloatingButtonOptions =
25
- | "always"
26
- | "after-interaction-on-mobile-always-desktop"
27
- | "after-interaction-anywhere"
28
- | "never";
29
-
30
- type FloatingEntryPointConfig = {
31
- position: "bottom-left" | "middle-left" | "middle-right" | "bottom-right";
32
- expansionText?: {
33
- pdp: string;
34
- plp: string;
35
- };
36
- minimizedColor: string;
37
- expandedColor: string;
38
- textColor?: string;
39
- showOption: ShowFloatingButtonOptions;
40
- iconSVGSrc?: string;
41
- iconSize?: number;
42
- iconStrokeColor?: string;
43
- iconFillColor?: string;
44
- height?: number;
45
- fontSize?: number;
46
- };
47
-
48
- type WelcomeSectionVariant = "standard" | "outlined";
49
-
50
- type WelcomeSectionColorVariant = "standard" | "accent" | "brand" | "light";
51
-
52
- type WelcomeSectionConfig = {
53
- variant: WelcomeSectionVariant;
54
- colorVariant?: WelcomeSectionColorVariant;
55
- title?: string;
56
- subtitle?: string;
57
- // icon?: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
58
- /* Serializable icon name that maps to a React component. Preferred over icon for database storage. */
59
- iconName?: string;
60
- imageSrc?: string;
61
- };
62
-
63
- type ChatPreviewConfig = {
64
- variant: "flat" | "filled" | "outlined";
65
- largeProductComparison?: boolean;
66
- filledBackgroundColor: string;
67
- iconFillColor: string;
68
- buttonTextColor?: string;
69
- buttonTextSecondaryColor?: string;
70
- buttonTextHoverColor?: string;
71
- buttonBackgroundColor: string;
72
- buttonBackgroundHoverColor: string;
73
- buttonBorderColor?: string;
74
- buttonBorderHoverColor?: string;
75
- copies: { pdp: string[]; plp: string[] };
76
- staticSuggestionCopies?: { pdp: string[]; plp: string[] };
77
- staticPLPImages?: string[];
78
- footerConfig?: ChatPreviewFooterConfig;
79
- headerConfig?: ChatPreviewHeaderConfig;
80
- topMargin?: number;
81
- };
82
-
83
- type ChatPreviewHeaderConfig = {
84
- title?: string;
85
- imageSrc?: string;
86
- imageHeight?: number;
87
- sparklesColor?: string; // used by: spanx, uniqueVintage, dreamlandBaby
88
- fontSize?: string;
89
- iconWidth?: string;
90
- iconHeight?: string;
91
- };
92
-
93
- interface ChatPreviewFooterConfig {
94
- hasFade?: boolean; // used by: spanx, uniqueVintage
95
- suggestionButtonVariant?: "dark" | "light" | "outlined";
96
- suggestionsBackground?: string; // used by: carbahn
97
- replyButtonIcon?:
98
- | "send"
99
- | "magnifyingGlass"
100
- | "thinMagnifyingGlass"
101
- | "searchIcon";
102
- replyButtonText?: string;
103
- replyInputHasShadow?: boolean; // used by: spanx
104
- replyInputHasBorder?: boolean; // used by: spanx
105
- backgroundColor?: string; // used by spanx, tushbaby, will need custom CSS when switching over
106
- }
107
-
108
- type ProductReviewStyleVariant = "standard" | "bordered";
109
-
110
- type ProductReviewColorVariant = "neutral" | "brand" | "premium";
111
-
112
- interface ProductReviewConfig {
113
- styleVariant: ProductReviewStyleVariant;
114
- colorVariant: ProductReviewColorVariant;
115
- verifiedBuyerTitle: string;
116
- incentivizedReviewFlag?: boolean;
117
- }
118
-
119
- type PageCardVariant = "filled" | "outlined" | "minimal";
120
-
121
- type PageCardHoverVariant = "none" | "shadow" | "lift";
122
-
123
- type PageCardIconVariant = "primary" | "accent" | "background" | "none";
124
-
125
- type PageCardConfig = {
126
- variant: PageCardVariant;
127
- hoverVariant: PageCardHoverVariant;
128
- iconVariant: PageCardIconVariant;
129
- };
130
-
131
- type ProductCardVariant =
132
- | "filled"
133
- | "bordered"
134
- | "minimal"
135
- | "transparentBordered";
136
-
137
- type ProductCardHoverVariant = "backgroundDark" | "none";
138
-
139
- type ProductCardLayoutVariant = "normal" | "tall" | "square";
140
-
141
- interface ProductCardConfig {
142
- variant: ProductCardVariant;
143
- hoverVariant: ProductCardHoverVariant;
144
- layoutVariant: ProductCardLayoutVariant;
145
- pricePrefix?: string;
146
- }
147
-
148
- type CSSwitchConfig = {
149
- variant: "attached" | "detached";
150
- backgroundColor: string;
151
- borderColor: string;
152
- selectedTextColor: string;
153
- selectedBackgroundColor?: string;
154
- unselectedTextColor: string;
155
- unselectedBackgroundColor?: string;
156
- supportTitle?: string;
157
- spiffyTitle?: string;
158
- spiffyTitleHasLogo?: boolean;
159
- };
160
-
161
- type ChatHeaderConfig = {
162
- collapsedColor: string;
163
- expandedColor: string;
164
- chevronColor: string;
165
- imageSrc?: string;
166
- icon?: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
167
- closeIcon?: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
168
- borderBottom?: string;
169
- headerBarHeightPartialView: number;
170
- headerBarHeightFullView: number;
171
- customerSupportSwitchConfig?: CSSwitchConfig;
172
- };
173
-
174
- type SimpleCustomerServiceIntegration = {
175
- integrationMode: CustomerServiceIntegrationMode;
176
- provider: CustomerServiceType;
177
- useUnifiedButton?: boolean;
178
- maxfileUploadSize?: number;
179
- };
180
-
181
- type FullCustomerServiceIntegration = {
182
- integrationMode: CustomerServiceIntegrationMode;
183
- provider: CustomerServiceType;
184
- useUnifiedButton?: boolean;
185
- chatEnabledDuringBusinessHours?: boolean;
186
- showNameInput?: boolean;
187
- formAiName?: string;
188
- welcomeTitle: string;
189
- welcomeDescription: string;
190
- showWelcomeOnForm?: boolean;
191
- contactSubjectOptions?: string[];
192
- getCustomWaitingMessage?: (name?: string) => string;
193
- withinBusinessHoursMessage?: string;
194
- withinBusinessHoursWaitingMessage?: string;
195
- outsideBusinessHoursMessage?: string;
196
- outsideBusinessHoursWaitingMessage?: string;
197
- withinBusinessHoursFormMessage?: string;
198
- outsideBusinessHoursFormMessage?: string;
199
- suggestedAIQuestions?: string[];
200
- businessHoursPolling?: number;
201
- maxfileUploadSize?: number;
202
-
203
- /**
204
- * @deprecated This is handled by the BE.
205
- */
206
- businessHoursStartUTC?: string;
207
- /**
208
- * @deprecated This is handled by the BE.
209
- */
210
- businessHoursEndUTC?: string;
211
- /**
212
- * @deprecated This is handled by the BE.
213
- */
214
- businessHoursTimezone?: string;
215
-
216
- showAISuggestionsWithinBusinessHours?: boolean;
217
- waitingMessagePosition?: "BEFORE_MESSAGES" | "AFTER_MESSAGES";
218
- legalMessage?: string;
219
- withinBusinessHoursInitialState?: ChatState;
220
- outsideBusinessHoursInitialState?: ChatState;
221
- withinBusinessHoursButtontext?: string;
222
- outsideBusinessHoursButtontext?: string;
223
- reopenChatMessage: string;
224
- };
225
-
226
- type CustomerServiceIntegration =
227
- | SimpleCustomerServiceIntegration
228
- | FullCustomerServiceIntegration;
229
-
230
- type ConversationalSeach = {
231
- enabled?: boolean;
232
- replyInput?: ReplyInputConfig;
233
- suggestions?: string[];
234
- entrypointBgColor?: string;
235
- entrypointTextColor?: string;
236
- entrypointBtnColor?: string;
237
- entrypointBtnTextColor?: string;
238
- entrypointBtnBorderColor?: string;
239
- entrypointContainer?: string;
240
- entrypointTrigger?: string;
241
- productGridContainer?: string;
242
- generalSearchBtn?: string;
243
- pageContent?: string;
244
- searchContent?: string;
245
- sortingTitle?: string;
246
- selectionTitle?: string;
247
- sortingFont?: string;
248
- optionsFont?: string;
249
- sortingButtonText?: string;
250
- };
251
-
252
- type ChatMessageVariant = "standard" | "premium" | "accent";
253
-
254
- interface ChatMessageConfig {
255
- assistantChatTitle: string;
256
- variant: ChatMessageVariant;
257
- productLink: {
258
- variant: ProductLinkVariant;
259
- hoverVariant: ProductLinkHoverVariant;
260
- iconVariant: ProductLinkIconVariant;
261
- };
262
- }
263
-
264
- interface ReplyInputConfig {
265
- // TODO consider making this a number
266
- size?: "md" | "lg";
267
- sendIcon: "arrowUp" | "send" | "search";
268
- placeholder?: string;
269
- }
270
-
271
- interface PartialViewConfig {
272
- // maximum height of the partial view as a percentage of the screen height
273
- maxHeight: number;
274
- borderRadius?: string;
275
- }
276
-
277
- type ProductLinkIconVariant =
278
- | "accentPrimary"
279
- | "backgroundPrimary"
280
- | "backgroundPrimaryDark"
281
- | "borderLight"
282
- | "backgroundSaturated";
283
-
284
- type ProductLinkVariant = "textLink";
285
-
286
- type ProductLinkHoverVariant = "backgroundDark";
287
-
288
- type SearchCardVariant =
289
- | "backgroundPrimary"
290
- | "backgroundSecondary"
291
- | "backgroundSecondaryDark"
292
- | "backgroundLight"
293
- | "backgroundSaturated";
294
-
295
- type SuggestionButtonVariant =
296
- | "outlined"
297
- | "outlinedLight"
298
- | "primary"
299
- | "secondary"
300
- | "tertiary"
301
- | "dark"
302
- | "darkAccent"
303
- | "darkPrimary"
304
- | "secondaryDark"
305
- | "secondaryAccent"
306
- | "transparent"
307
- | "transparentDark"
308
- | "lightDark";
309
-
310
- interface SuggestionButtonConfig {
311
- variant?: SuggestionButtonVariant;
312
- hoverVariant?: SuggestionButtonVariant;
313
- answerVariant?: SuggestionButtonVariant;
314
- borderRadius?: "sm" | "md" | "lg";
315
- }
316
-
317
- type NumRows = "default" | "alwaysOneRow" | "alwaysTwoRows" | "twoRowsOnMobile";
318
-
319
- interface AlphabeticFilterSorting {
320
- type: "alphabetic";
321
- }
322
- interface ProductCountFilterSorting {
323
- type: "productCount";
324
- }
325
- interface CustomFilterSorting {
326
- type: "custom";
327
- map: Record<string, number>;
328
- }
329
-
330
- type FilterSorting =
331
- | AlphabeticFilterSorting
332
- | ProductCountFilterSorting
333
- | CustomFilterSorting;
334
-
335
- interface BaseFilterConfig {
336
- filterId: string;
337
- displayName: string;
338
- }
339
- interface DynamicFilterConfig extends BaseFilterConfig {
340
- type: "dynamic";
341
- attribute: string;
342
- sorting: FilterSorting;
343
- }
344
-
345
- interface PriceFilterConfig extends BaseFilterConfig {
346
- type: "price";
347
- bucketSize: number;
348
- }
349
-
350
- export type FilterAttribute = DynamicFilterConfig | PriceFilterConfig;
351
-
352
- export type SearchZeroStateVariant =
353
- | "backgroundTertiary"
354
- | "backgroundDark"
355
- | "backgroundPrimary";
356
- export type SearchZeroStateLayout = "input" | "icon";
357
-
358
- export type SearchInputVariant = "standard";
359
-
360
- export type SearchIconVariant = "thin" | "bold";
361
-
362
- export type SearchFilterSidebarVariant = "darkButton" | "lightButton";
363
-
364
- export type ProductGridVariant = "standard" | "square";
365
-
366
- type UserQueryButtonIcon =
367
- | "magnifyingGlass"
368
- | "send"
369
- | "magnifyingGlassThin"
370
- | "sendArrow"
371
- | "searchIcon";
372
-
373
- interface UserQueryButtonConfig {
374
- variant?: "box" | "underlineLight" | "underlineDark";
375
- placeholderText?: string;
376
- icon: UserQueryButtonIcon;
377
- }
378
-
379
- // TODO: this should be included in the top-level widget config
380
- interface TermsAndConditionsConfig {
381
- copy: string;
382
- link: string;
383
- linkText: string;
384
- }
385
-
386
- interface MerchantVariantSettings {
387
- dynamicVariants: {
388
- enabled: boolean; // This feature will enable dynamic variants for the merchant. Useful for SPA's
389
- refreshInterval?: number; // The interval in milliseconds to check for changes in the URL
390
- };
391
- }
392
-
393
- interface FloatingChatConfig {
394
- enableWatermark: boolean;
395
- userQueryInputEnabled: boolean;
396
- ignoreFirstModelResponse?: boolean;
397
- neverShowSingleProductCards?: boolean;
398
- termsAndConditionsConfig?: TermsAndConditionsConfig;
399
-
400
- // Footer config
401
- suggestionButtonConfig?: SuggestionButtonConfig;
402
- replyInputConfig: ReplyInputConfig;
403
- }
404
-
405
- interface SearchConfig {
406
- enableGlobalSearch: boolean;
407
- searchFilterConfig: FilterAttribute[];
408
- redirectSearchResultsUrl?: string;
409
- additiveDynamicFilters?: boolean;
410
- }
411
-
412
- type OrgUIConfig = {
413
- shortName: string;
414
- id?: string;
415
- floatingEntrypointConfig?: FloatingEntryPointConfig;
416
- // Deprecated - remove with ChatPreview rewrite
417
- chatPreviewConfig?: ChatPreviewConfig;
418
-
419
- customerServiceIntegration: CustomerServiceIntegration;
420
- // Deprecated - remove when Global Search is fully launched
421
- conversationalSearch?: ConversationalSeach;
422
-
423
- merchantOverrideCss?: string;
424
-
425
- // Deprecated TODO: Remove this deprecated value when Groove CX has proper unified button support
426
- // selectors for elements that should be hidden when the chat is open
427
- // e.g. CS widgets with max z-index ("div[id*='cs-container']")
428
- hiddenElementSelectors?: string[];
429
-
430
- merchantVariantSettings?: MerchantVariantSettings;
431
- // TODO: Migrate all floating chat config into this top-level key
432
- //
433
- floatingChatConfig: FloatingChatConfig;
434
-
435
- // Contain all search config here
436
- searchConfig: SearchConfig;
437
- // TODO: Move these into FloatingChatConfig
438
- // Chat Header related values
439
- chatHeader: ChatHeaderConfig;
440
- stickyAgentSwitchSuggestion?: boolean;
441
- partialViewConfig: PartialViewConfig;
442
- welcomeSectionConfig?: WelcomeSectionConfig;
443
- // Different response values
444
- productCardConfig?: ProductCardConfig;
445
- productReviewConfig?: ProductReviewConfig;
446
- pageCardConfig?: PageCardConfig;
447
- chatMessageConfig: ChatMessageConfig;
448
- };
449
-
450
- type InsertionPoint = {
451
- selector: string;
452
- // this is the index of the target element, 0 if missing
453
- selectionIndex?: number;
454
- insertionType: DOMInsertionType;
455
- };
456
-
457
- type URLTest = "shopify" | "null";
458
-
459
- type IdExtractor =
460
- | "shopify-product-id"
461
- | "shopify-collection-id"
462
- | "shopify-product-variant-id"
463
- | "url-resolver-product-id"
464
- | "url-resolver-plp-id"
465
- | "null";
466
-
467
- // This contains a map between PageVisitCategory and a list of URL's that are classified as the value
468
- enum CategoryExtractorType {
469
- VisitCategoryMap = "VisitCategoryMap",
470
- VisitCategoryDefault = "VisitCategoryDefault",
471
- }
472
-
473
- interface BaseCategoryExtractor<T extends CategoryExtractorType> {
474
- type: T;
475
- }
476
-
477
- // This map betweens a category and a list of url patterns
478
- interface VisitCategoryMap
479
- extends BaseCategoryExtractor<CategoryExtractorType.VisitCategoryMap> {
480
- map: {
481
- [key in PageVisitCategory]?: string[];
482
- };
483
- }
484
-
485
- // This will return a hard-coded default PageVisitCategory. It is intended to be used by fallback page types
486
- interface VisitCategoryDefault
487
- extends BaseCategoryExtractor<CategoryExtractorType.VisitCategoryDefault> {
488
- value: PageVisitCategory;
489
- }
490
-
491
- type CategoryExtractor = VisitCategoryMap | VisitCategoryDefault;
492
-
493
- type WrappingElement = {
494
- className: string;
495
- element: string;
496
- insertionType: DOMInsertionType;
497
- };
498
-
499
- enum PageVariantTestType {
500
- ShopifyPLP = "ShopifyPLP",
501
- ShopifyPDP = "ShopifyPDP",
502
- PageCategory = "PageCategory",
503
- CatalogCategory = "CatalogCategory",
504
- TopCatalogCategory = "TopCatalogCategory",
505
- HasReviews = "HasReviews",
506
- InCollection = "InCollection",
507
- HasMerchantTag = "HasMerchantTag",
508
- FeatureGate = "FeatureGate",
509
- PlpId = "PlpId",
510
- QueryParam = "QueryParam",
511
- ProductId = "ProductId",
512
- UserHasInteracted = "UserHasInteracted",
513
- UserHasNotInteracted = "UserHasNotInteracted",
514
- isLoading = "isLoading",
515
- isProductComparison = "isProductComparison",
516
- Fallback = "Fallback",
517
- UrlResolver = "UrlResolver",
518
- Null = "null",
519
- }
520
-
521
- interface BasePageVariantTest<T extends PageVariantTestType> {
522
- testType: T;
523
- }
524
-
525
- interface TopCatalogCategory
526
- extends BasePageVariantTest<PageVariantTestType.TopCatalogCategory> {
527
- topCategory: string[];
528
- }
529
-
530
- interface CatalogCategoryTest
531
- extends BasePageVariantTest<PageVariantTestType.CatalogCategory> {
532
- category: SupportedEventProductCategory;
533
- }
534
-
535
- interface HasReviewsTest
536
- extends BasePageVariantTest<PageVariantTestType.HasReviews> {
537
- reviewMinimum?: number;
538
- }
539
-
540
- // This will return true if the product is in any of the listed collections
541
- interface InCollectionTest
542
- extends BasePageVariantTest<PageVariantTestType.InCollection> {
543
- collections: string[];
544
- }
545
-
546
- // This will return true if the product has any of the listed merchant tags
547
- interface HasMerchantTagTest
548
- extends BasePageVariantTest<PageVariantTestType.HasMerchantTag> {
549
- merchantTags: string[];
550
- }
551
-
552
- interface ShopifyPLPURLTest
553
- extends BasePageVariantTest<PageVariantTestType.ShopifyPLP> {}
554
-
555
- interface ShopifyPDPURLTest
556
- extends BasePageVariantTest<PageVariantTestType.ShopifyPDP> {}
557
-
558
- interface PageCategoryTest
559
- extends BasePageVariantTest<PageVariantTestType.PageCategory> {
560
- extractor: CategoryExtractor;
561
- }
562
-
563
- interface FeatureGateTest
564
- extends BasePageVariantTest<PageVariantTestType.FeatureGate> {
565
- featureGate: FeatureGates;
566
- }
567
-
568
- interface ProductIdTest
569
- extends BasePageVariantTest<PageVariantTestType.ProductId> {
570
- productIdExtractor: IdExtractor;
571
- productIds: string[];
572
- }
573
-
574
- interface PlpIdTest extends BasePageVariantTest<PageVariantTestType.PlpId> {
575
- plpIdExtractor: IdExtractor;
576
- plpIds: string[];
577
- }
578
-
579
- interface QueryParamTest
580
- extends BasePageVariantTest<PageVariantTestType.QueryParam> {
581
- queryParam: string;
582
- }
583
-
584
- interface UserHasInteractedTest
585
- extends BasePageVariantTest<PageVariantTestType.UserHasInteracted> {}
586
-
587
- interface UserHasNotInteractedTest
588
- extends BasePageVariantTest<PageVariantTestType.UserHasNotInteracted> {}
589
-
590
- interface IsLoadingTest
591
- extends BasePageVariantTest<PageVariantTestType.isLoading> {}
592
-
593
- interface IsProductComparison
594
- extends BasePageVariantTest<PageVariantTestType.isProductComparison> {}
595
-
596
- interface PageFallbackTest
597
- extends BasePageVariantTest<PageVariantTestType.Fallback> {}
598
-
599
- interface UrlResolverTest
600
- extends BasePageVariantTest<PageVariantTestType.UrlResolver> {}
601
-
602
- export type PageVariantTest =
603
- | PageCategoryTest
604
- | ShopifyPLPURLTest
605
- | ShopifyPDPURLTest
606
- | CatalogCategoryTest
607
- | TopCatalogCategory
608
- | HasReviewsTest
609
- | InCollectionTest
610
- | HasMerchantTagTest
611
- | FeatureGateTest
612
- | ProductIdTest
613
- | PlpIdTest
614
- | QueryParamTest
615
- | UserHasInteractedTest
616
- | UserHasNotInteractedTest
617
- | IsLoadingTest
618
- | IsProductComparison
619
- | PageFallbackTest
620
- | UrlResolverTest;
621
-
622
- /**
623
- * Configuration for the social proof embedded widget
624
- *
625
- * @param headerTitle - The title text to display in the widget header
626
- * @param staticSuggestions - A list of strings to display as suggestions in the widget
627
- * @param suggestionButtonVariantDefault - The variant of the suggestion button to display in the widget footer
628
- * @param suggestionButtonVariantAccent - The variant of the suggestion button to display in the widget body
629
- * @param staticImageIndex - Index of the imageUrl to use from the product response
630
- */
631
- interface SocialProofConfig {
632
- customerQuery: string;
633
- headerTitle: string;
634
- staticPLPImagesLayout?: "grid" | "horizontal";
635
- headerFontFamily?: string;
636
- staticPLPImageNames?: string[];
637
- staticImageIndex?: number;
638
- suggestionButtonStrings: string[];
639
- suggestionButtonVariantDefault: SuggestionButtonVariant;
640
- suggestionButtonVariantAccent?: SuggestionButtonVariant;
641
- suggestionButtonDataAttributes?: Record<string, string>;
642
- userQueryButtonConfig?: UserQueryButtonConfig;
643
- logoName?: string;
644
- }
645
-
646
- /**
647
- * Configuration for creating the mount point for a widget
648
- *
649
- * @param className - Optional class name to apply to the mount point. Tailwind classes are supported
650
- * and encouraged. Use this parameter to style the mounting container for the widget.
651
- */
652
- export type WidgetMountingConfig = {
653
- mountingConfigId: string;
654
- containerId: string;
655
- testId: string;
656
- parentInsertionPoint?: InsertionPoint;
657
- insertionPoint: InsertionPoint;
658
- gridInsertionType?: GridInsertionType;
659
- wrappingElement?: WrappingElement;
660
- divCheckSelector?: string;
661
- suppressionSelector?: string;
662
- style?: Partial<CSSStyleDeclaration>;
663
- className?: string;
664
- dataAttributes?: Record<string, string>;
665
- };
666
-
667
- type StaticWidgetMounting = {
668
- mountingConfigId: string;
669
- widgetConfigId: string;
670
- };
671
- type DynamicWidgetMounting = {
672
- mountingConfigId: string;
673
- mountingPointWidgets: WidgetDisplayTests[];
674
- };
675
-
676
- type WidgetDisplayTests = {
677
- tests: PageVariantTest[];
678
- widgetConfigId: string;
679
- };
680
-
681
- type WidgetMounting = StaticWidgetMounting | DynamicWidgetMounting;
682
-
683
- enum WidgetType {
684
- ChatPreview = "ChatPreview",
685
- SocialProofV2 = "SocialProofV2",
686
- ChatPreviewV2 = "ChatPreviewV2",
687
- ChatPreviewIsLoading = "ChatPreviewIsLoading",
688
- ChatPreviewPostInteraction = "ChatPreviewPostInteraction",
689
- ChatPreviewProductComparison = "ChatPreviewProductComparison",
690
- SuggestionBar = "SuggestionBar",
691
- SuggestionBarV2 = "SuggestionBarV2",
692
- ImagePromptCard = "ImagePromptCard",
693
- ImageBanner = "ImageBanner",
694
- SingleImagePrompt = "SingleImagePrompt",
695
- SearchPrompt = "SearchPrompt",
696
- SearchZeroStateEntryPoint = "SearchZeroStateEntryPoint",
697
- SearchResultsEntryPoint = "SearchResultsEntryPoint",
698
- SearchOverlayHost = "SearchOverlayHost",
699
- NoOp = "NoOp",
700
- }
701
-
702
- type WidgetConfig =
703
- | ChatPreviewWidgetConfig
704
- | SocialProofV2WidgetConfig
705
- | ChatPreviewV2WidgetConfig
706
- | ChatPreviewPostInteractionWidgetConfig
707
- | ChatPreviewIsLoadingWidgetConfig
708
- | ChatPreviewProductComparisonWidgetConfig
709
- | SuggestionBarWidgetV2Config
710
- | ImagePromptWidgetConfig
711
- | ImageBannerWidgetConfig
712
- | SingleImagePromptWidgetConfig
713
- | SearchPromptWidgetConfig
714
- | SearchEntryPointWidgetConfig
715
- | SearchResultsEntryPointWidgetConfig
716
- | SearchOverlayHostWidgetConfig
717
- | NoOpWidgetConfig;
718
-
719
- interface BaseWidgetConfig<T extends WidgetType> {
720
- widgetConfigId: string;
721
- type: T;
722
- contentId?: string;
723
- }
724
-
725
- interface ImageBannerWidgetConfig
726
- extends BaseWidgetConfig<WidgetType.ImageBanner> {
727
- imageSrc: string;
728
- title: string;
729
- subtitle: string;
730
- assistantMessage: string;
731
- }
732
-
733
- interface ChatPreviewWidgetConfig
734
- extends BaseWidgetConfig<WidgetType.ChatPreview> {
735
- variant: "filled" | "flat" | "outlined";
736
- addSeparators?: boolean;
737
- socialProofConfig?: SocialProofConfig;
738
- footerConfig?: ChatPreviewFooterConfig;
739
- }
740
-
741
- interface ChatPreviewHeaderV2Config {
742
- title?: string; // Default: 'Shopping Assistant'
743
- imageSrc?: string;
744
- imageHeight?: number;
745
- }
746
-
747
- type SingleImageConfig = {
748
- layout: "single";
749
- imageIndex: number;
750
- };
751
- type MultiImageConfig = {
752
- layout: "grid" | "horizontal";
753
- imageNames: string[];
754
- };
755
- type SocialProofImageConfig = SingleImageConfig | MultiImageConfig;
756
-
757
- type ChatPreviewSuggestionButtonConfig = {
758
- buttonStrings: string[];
759
- accentButtonVariants?: {
760
- button: SuggestionButtonVariant;
761
- hover: SuggestionButtonVariant;
762
- };
763
- buttonVariants: {
764
- button: SuggestionButtonVariant;
765
- hover: SuggestionButtonVariant;
766
- };
767
- numRows?: NumRows;
768
- };
769
-
770
- type ChatPreviewAnimatedTextConfig = {
771
- leadingText: string;
772
- animatedStrings: string[];
773
- };
774
-
775
- type ChatPreviewVariant =
776
- | { variant: "flat" }
777
- | { variant: "filled"; backgroundFillColor: string }
778
- | { variant: "outlined" };
779
-
780
- // Base interface for common chat preview properties
781
- interface BaseChatPreviewConfig {
782
- headerConfig: ChatPreviewHeaderV2Config;
783
- suggestionButtonsConfig: ChatPreviewSuggestionButtonConfig;
784
- userQueryButtonConfig: UserQueryButtonConfig;
785
- chatPreviewVariant: ChatPreviewVariant;
786
- addSeparators?: boolean;
787
- }
788
-
789
- // Specific chat preview widget configurations
790
- interface ChatPreviewPostInteractionWidgetConfig
791
- extends BaseWidgetConfig<WidgetType.ChatPreviewPostInteraction>,
792
- BaseChatPreviewConfig {
793
- chatPreviewVariant: ChatPreviewVariant;
794
- addSeparators?: boolean;
795
- }
796
-
797
- interface ChatPreviewIsLoadingWidgetConfig
798
- extends BaseWidgetConfig<WidgetType.ChatPreviewIsLoading>,
799
- BaseChatPreviewConfig {}
800
-
801
- interface ChatPreviewProductComparisonWidgetConfig
802
- extends BaseWidgetConfig<WidgetType.ChatPreviewProductComparison>,
803
- BaseChatPreviewConfig {
804
- useLargeProductComparison?: boolean;
805
- }
806
-
807
- interface ChatPreviewV2WidgetConfig
808
- extends BaseWidgetConfig<WidgetType.ChatPreviewV2>,
809
- BaseChatPreviewConfig {
810
- animatedTextConfig: ChatPreviewAnimatedTextConfig;
811
- }
812
-
813
- interface SocialProofV2WidgetConfig
814
- extends BaseWidgetConfig<WidgetType.SocialProofV2>,
815
- BaseChatPreviewConfig {
816
- customerQuery?: string; // Default: 'asked which products are the best'
817
- imageConfig: SocialProofImageConfig;
818
- }
819
-
820
- interface SuggestionBarWidgetV2Config
821
- extends BaseWidgetConfig<WidgetType.SuggestionBarV2> {
822
- metricDisplayLocation: ChatElementDisplayLocation;
823
- location: SuggestionBarLocationForMetrics;
824
- variant: SuggestionButtonVariant;
825
- hoverVariant: SuggestionButtonVariant;
826
- buttonTexts: {
827
- default: string[];
828
- productSpecific?: { [productId: string]: string[] };
829
- };
830
- boldFirstButton?: boolean;
831
- twoRowsOnMobile?: boolean;
832
- animationSpeed?: "standard" | "slow" | "none";
833
- buttonBorderRadius?: "sm" | "md" | "lg";
834
- }
835
-
836
- interface ImagePromptWidgetConfig
837
- extends BaseWidgetConfig<WidgetType.ImagePromptCard> {
838
- url: string;
839
- lightText?: boolean;
840
- title: string;
841
- subtitle: string[];
842
- staticSuggestionCopies: string[];
843
- userQueryButtonConfig: UserQueryButtonConfig;
844
- fallbackBackgroundColor?: string;
845
- }
846
-
847
- interface SingleImagePromptWidgetConfig
848
- extends BaseWidgetConfig<WidgetType.SingleImagePrompt> {
849
- title: string;
850
- staticSuggestionCopies: string[];
851
- userQueryButtonConfig: UserQueryButtonConfig;
852
- }
853
-
854
- interface SearchEntryPointWidgetConfig
855
- extends BaseWidgetConfig<WidgetType.SearchZeroStateEntryPoint> {
856
- searchZeroStateVariant: SearchZeroStateVariant;
857
- searchInputVariant: SearchInputVariant;
858
- searchIconVariant?: SearchIconVariant;
859
- searchIconSize?: number;
860
- suggestionButtonConfig: SuggestionButtonConfig;
861
- layout: SearchZeroStateLayout;
862
- searchBoxPlaceholder: string;
863
- animationSpeed?: "standard" | "slow" | "none";
864
- compactLabel?: string;
865
- initialSuggestions?: string[];
866
- usingPortal?: boolean;
867
- }
868
-
869
- interface NoOpWidgetConfig extends BaseWidgetConfig<WidgetType.NoOp> {}
870
- interface SearchOverlayHostWidgetConfig
871
- extends BaseWidgetConfig<WidgetType.SearchOverlayHost> {}
872
-
873
- interface SearchResultsEntryPointWidgetConfig
874
- extends BaseWidgetConfig<WidgetType.SearchResultsEntryPoint> {
875
- searchInputVariant: SearchInputVariant;
876
- searchFilterSidebarVariant: SearchFilterSidebarVariant;
877
- productGridVariant: ProductGridVariant;
878
- searchBoxPlaceholder: string;
879
- noResultsFoundText?: string;
880
- }
881
-
882
- export interface WidgetHeaderProps extends TestProps {
883
- title?: string;
884
- logo?: string;
885
- logoHeight?: number;
886
- orgShortName: string;
887
- variant?: SearchPromptVariant;
888
- }
889
-
890
- export interface UserQueryOptions {
891
- footerVariant?: "standard";
892
- replyButtonText?: string;
893
- replyButtonIcon?:
894
- | "magnifyingGlass"
895
- | "send"
896
- | "thinMagnifyingGlass"
897
- | "ai-search";
898
- }
899
-
900
- type SearchPromptVariant = "primary";
901
- interface SearchPromptWidgetConfig
902
- extends BaseWidgetConfig<WidgetType.SearchPrompt> {
903
- variant: SearchPromptVariant;
904
- title: string;
905
- headerConfig: WidgetHeaderProps;
906
- suggestionButtons: {
907
- variant: SuggestionButtonVariant;
908
- hoverVariant: SuggestionButtonVariant;
909
- buttonTexts: string[];
910
- };
911
- footerConfig?: UserQueryOptions;
912
- }
913
-
914
- type PageVariantBase = {
915
- // Unique identifier for each entry within the pageVariants.
916
- // Useful to differentiate which variant is loaded when there are multiples of a single type.
917
- variantId: string;
918
- widgetMounting: WidgetMounting[];
919
- variantTests: PageVariantTest[];
920
- };
921
-
922
- type PLPPageVariant = PageVariantBase & {
923
- variantType: "plp";
924
- plpIdExtractor: IdExtractor;
925
- };
926
-
927
- type PDPPageVariant = PageVariantBase & {
928
- variantType: "pdp";
929
- parentProductIdExtractor?: IdExtractor;
930
- productIdExtractor: IdExtractor;
931
- };
932
-
933
- type VisitPageVariant = PageVariantBase & {
934
- variantType: "page_visit";
935
- };
936
-
937
- type OtherPageVariant = PageVariantBase & {
938
- variantType: "other";
939
- };
940
-
941
- type HomePageVariant = PageVariantBase & {
942
- variantType: "homepage";
943
- };
944
-
945
- type SearchPageVariant = PageVariantBase & {
946
- variantType: "search";
947
- };
948
-
949
- export type PageVariantConfig =
950
- | PLPPageVariant
951
- | PDPPageVariant
952
- | VisitPageVariant
953
- | OtherPageVariant
954
- | HomePageVariant
955
- | SearchPageVariant;
956
-
957
- export type OrgPageConfig = {
958
- // pageVariants is a list of page variants that we support.
959
- pageVariants: PageVariantConfig[];
960
- // widgetConfigs is a named set of widget configs
961
- widgetConfigs: Record<string, WidgetConfig>;
962
- mountingConfigs: Record<string, WidgetMountingConfig>;
963
- };
964
-
965
- export type OrgConfig = OrgUIConfig;
966
-
967
- export {
968
- CategoryExtractorType,
969
- ColorNames,
970
- colorVar,
971
- PageVariantTestType,
972
- WidgetType,
973
- };
974
-
975
- export interface EnviveConfig {
976
- amplitudeApiKey?: string;
977
- dataResidency?: string;
978
- env?: string;
979
- baseUrl?: string;
980
- reactAppName?: string;
981
- cdnUrl?: string;
982
- contextSource?: string;
983
- orgLevelApiKey?: string;
984
- orgShortName?: string;
985
- identifyingPrefix?: string;
986
- featureOverrides?: Record<string, boolean>;
987
- variantUrlOverride?: string;
988
- variantInfoOverride?: any;
989
- show?: boolean;
990
- publicKey?: string;
991
- featureGates?: OrgConfigFeatureGate[];
992
- }
993
-
994
- export type {
995
- CategoryExtractor,
996
- ChatMessageVariant,
997
- ChatMessageConfig,
998
- ChatPreviewConfig,
999
- ChatPreviewIsLoadingWidgetConfig,
1000
- ChatPreviewPostInteractionWidgetConfig,
1001
- ChatPreviewProductComparisonWidgetConfig,
1002
- ChatPreviewSuggestionButtonConfig,
1003
- SocialProofV2WidgetConfig,
1004
- ChatPreviewHeaderV2Config,
1005
- ChatPreviewV2WidgetConfig,
1006
- ChatPreviewFooterConfig,
1007
- ChatPreviewHeaderConfig,
1008
- ChatPreviewWidgetConfig,
1009
- ChatPreviewVariant,
1010
- ColorMapping,
1011
- CustomerServiceIntegration,
1012
- FloatingEntryPointConfig,
1013
- FullCustomerServiceIntegration,
1014
- IdExtractor,
1015
- ImageBannerWidgetConfig,
1016
- ImagePromptWidgetConfig,
1017
- InsertionPoint,
1018
- MultiImageConfig,
1019
- OrgUIConfig,
1020
- PageCardConfig,
1021
- PageCardVariant,
1022
- PageCardHoverVariant,
1023
- PageCardIconVariant,
1024
- ProductCardConfig,
1025
- ProductCardVariant,
1026
- ProductCardLayoutVariant,
1027
- ProductCardHoverVariant,
1028
- ProductLinkHoverVariant,
1029
- ProductLinkIconVariant,
1030
- ProductLinkVariant,
1031
- ProductReviewConfig,
1032
- ProductReviewStyleVariant,
1033
- ProductReviewColorVariant,
1034
- SearchPromptVariant,
1035
- SearchPromptWidgetConfig,
1036
- SearchResultsEntryPointWidgetConfig,
1037
- ShowFloatingButtonOptions,
1038
- SingleImagePromptWidgetConfig,
1039
- SearchEntryPointWidgetConfig,
1040
- SearchOverlayHostWidgetConfig,
1041
- SocialProofConfig,
1042
- SuggestionBarWidgetV2Config,
1043
- SuggestionButtonConfig,
1044
- SuggestionButtonVariant,
1045
- URLTest,
1046
- UserQueryButtonConfig,
1047
- UserQueryButtonIcon,
1048
- WelcomeSectionConfig,
1049
- WelcomeSectionVariant,
1050
- WelcomeSectionColorVariant,
1051
- WidgetConfig,
1052
- WrappingElement,
1053
- SearchCardVariant,
1054
- WidgetDisplayTests,
1055
- NoOpWidgetConfig,
1056
- WidgetMounting,
1057
- StaticWidgetMounting,
1058
- DynamicWidgetMounting,
1059
- PDPPageVariant,
1060
- PLPPageVariant,
1061
- VisitPageVariant,
1062
- OtherPageVariant,
1063
- HomePageVariant,
1064
- SearchPageVariant,
1065
- NumRows,
1066
- };