@envive-ai/react-hooks 0.1.3 → 0.1.5

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 (439) hide show
  1. package/dist/adapters/amplitude/index.cjs +13 -13
  2. package/dist/adapters/amplitude/index.d.cts +5 -3
  3. package/dist/adapters/amplitude/index.d.ts +5 -3
  4. package/dist/adapters/amplitude/index.js +10 -10
  5. package/dist/api-B2euFL-5.cjs +269 -0
  6. package/dist/api-XRr_lAG6.js +190 -0
  7. package/dist/application/config/index.cjs +14 -5
  8. package/dist/application/config/index.d.cts +2 -1
  9. package/dist/application/config/index.d.ts +2 -1
  10. package/dist/application/config/index.js +14 -5
  11. package/dist/application/models/graphql/index.cjs +12 -12
  12. package/dist/application/models/graphql/index.d.cts +1 -1
  13. package/dist/application/models/graphql/index.d.ts +1 -1
  14. package/dist/application/models/graphql/index.js +10 -10
  15. package/dist/application/models/guards/api/index.cjs +2 -2
  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 +2 -2
  19. package/dist/application/models/index.cjs +54 -54
  20. package/dist/application/models/index.d.cts +8 -9
  21. package/dist/application/models/index.d.ts +8 -9
  22. package/dist/application/models/index.js +10 -10
  23. package/dist/application/models/utilityTypes/index.cjs +1 -1
  24. package/dist/application/models/utilityTypes/index.d.cts +1 -1
  25. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  26. package/dist/application/models/utilityTypes/index.js +1 -1
  27. package/dist/application/models/variantInfo/index.cjs +1 -1
  28. package/dist/application/models/variantInfo/index.d.cts +1 -1
  29. package/dist/application/models/variantInfo/index.d.ts +1 -1
  30. package/dist/application/models/variantInfo/index.js +1 -1
  31. package/dist/application/service/customerService/index.cjs +2 -2
  32. package/dist/application/service/customerService/index.d.cts +2 -2
  33. package/dist/application/service/customerService/index.d.ts +2 -2
  34. package/dist/application/service/customerService/index.js +2 -2
  35. package/dist/application/service/index.cjs +38 -757
  36. package/dist/application/service/index.d.cts +26 -20
  37. package/dist/application/service/index.d.ts +26 -20
  38. package/dist/application/service/index.js +12 -727
  39. package/dist/application/utils/index.cjs +37 -37
  40. package/dist/application/utils/index.d.cts +12 -12
  41. package/dist/application/utils/index.d.ts +14 -14
  42. package/dist/application/utils/index.js +10 -10
  43. package/dist/atomStore-B1cgmbP0.js +32 -0
  44. package/dist/atomStore-JwGb7pcy.cjs +58 -0
  45. package/dist/atomStore-ONYy0XuA.d.cts +24 -0
  46. package/dist/atomStore-kOKiEcNl.d.ts +24 -0
  47. package/dist/atoms/app/index.cjs +16 -16
  48. package/dist/atoms/app/index.d.cts +11 -11
  49. package/dist/atoms/app/index.d.ts +12 -12
  50. package/dist/atoms/app/index.js +10 -10
  51. package/dist/atoms/atomStore/index.cjs +1 -2
  52. package/dist/atoms/atomStore/index.d.cts +1 -22
  53. package/dist/atoms/atomStore/index.d.ts +1 -22
  54. package/dist/atoms/atomStore/index.js +1 -2
  55. package/dist/atoms/chat/index.cjs +40 -40
  56. package/dist/atoms/chat/index.d.cts +37 -37
  57. package/dist/atoms/chat/index.d.ts +38 -38
  58. package/dist/atoms/chat/index.js +10 -10
  59. package/dist/atoms/globalSearch/index.cjs +1 -1
  60. package/dist/atoms/globalSearch/index.d.cts +7 -6
  61. package/dist/atoms/globalSearch/index.d.ts +2 -1
  62. package/dist/atoms/globalSearch/index.js +1 -1
  63. package/dist/atoms/org/index.cjs +38 -40
  64. package/dist/atoms/org/index.d.cts +35 -53
  65. package/dist/atoms/org/index.d.ts +34 -52
  66. package/dist/atoms/org/index.js +11 -12
  67. package/dist/atoms/search/index.cjs +41 -43
  68. package/dist/atoms/search/index.d.cts +9 -10
  69. package/dist/atoms/search/index.d.ts +9 -10
  70. package/dist/atoms/search/index.js +10 -12
  71. package/dist/bandolier-Da4wt6sm.cjs +1230 -0
  72. package/dist/bandolier-DzEmYWcz.js +1230 -0
  73. package/dist/carpe-AXipz0Xl.cjs +608 -0
  74. package/dist/carpe-CaUKwcEa.js +606 -0
  75. package/dist/chat-CHmD79E1.js +26 -0
  76. package/dist/{chat-CCgyDehy.cjs → chat-_NzpO_Hn.cjs} +2 -1
  77. package/dist/{components-CScS7Ii-.cjs → components-D0XDRcaN.cjs} +2 -1
  78. package/dist/components-Dl-TMD9k.js +11 -0
  79. package/dist/config/locators/components/chat/index.cjs +1 -1
  80. package/dist/config/locators/components/chat/index.d.ts +1 -1
  81. package/dist/config/locators/components/chat/index.js +1 -1
  82. package/dist/config/locators/components/chat/variants/index.cjs +2 -1
  83. package/dist/config/locators/components/chat/variants/index.d.cts +2 -1
  84. package/dist/config/locators/components/chat/variants/index.d.ts +2 -1
  85. package/dist/config/locators/components/chat/variants/index.js +2 -1
  86. package/dist/config/locators/components/index.cjs +1 -1
  87. package/dist/config/locators/components/index.d.ts +1 -1
  88. package/dist/config/locators/components/index.js +1 -1
  89. package/dist/config/locators/components/search/index.cjs +2 -1
  90. package/dist/config/locators/components/search/index.d.cts +2 -1
  91. package/dist/config/locators/components/search/index.d.ts +2 -1
  92. package/dist/config/locators/components/search/index.js +2 -1
  93. package/dist/config/locators/index.cjs +4 -4
  94. package/dist/config/locators/index.d.cts +2 -1
  95. package/dist/config/locators/index.d.ts +4 -3
  96. package/dist/config/locators/index.js +4 -4
  97. package/dist/contexts/index.cjs +20 -23
  98. package/dist/contexts/index.d.cts +10 -59
  99. package/dist/contexts/index.d.ts +10 -59
  100. package/dist/contexts/index.js +11 -17
  101. package/dist/contexts-CtRlNXaS.js +7674 -0
  102. package/dist/contexts-CtgmnYNn.cjs +9088 -0
  103. package/dist/coterie--MGvWeVh.cjs +240 -0
  104. package/dist/coterie-oKHAT0lx.js +240 -0
  105. package/dist/customerService-BG1uNZZ1.cjs +36 -0
  106. package/dist/customerService-BHQRnLhC.js +23 -0
  107. package/dist/custservice-types-C8-9vKWb.cjs +35 -0
  108. package/dist/custservice-types-CamCiXjq.js +23 -0
  109. package/dist/default-B4fINY5_.cjs +4 -0
  110. package/dist/default-BrTQxA0c.js +4 -0
  111. package/dist/default-C3LrcbZB.cjs +199 -0
  112. package/dist/default-CXkYrLEr.js +176 -0
  113. package/dist/divIds-0Vj9g-fM.js +23 -0
  114. package/dist/{divIds-CFyAjjp3.cjs → divIds-CjceLRD9.cjs} +2 -1
  115. package/dist/dreamlandBaby-BEqt0eKF.js +347 -0
  116. package/dist/dreamlandBaby-DBDjEJCc.cjs +347 -0
  117. package/dist/{embedded-BlXJUbik.cjs → embedded-B5Wi9g0T.cjs} +2 -1
  118. package/dist/embedded-_cLpd6FK.js +23 -0
  119. package/dist/entrypoints-CNUvSgnk.js +7 -0
  120. package/dist/entrypoints-DM9Sm18O.cjs +19 -0
  121. package/dist/events/index.cjs +1 -1
  122. package/dist/events/index.d.cts +2 -1
  123. package/dist/events/index.d.ts +2 -1
  124. package/dist/events/index.js +1 -1
  125. package/dist/events-ClCDFK7t.js +78 -0
  126. package/dist/events-Da7gpmGv.cjs +90 -0
  127. package/dist/featureFlagService-5wdmW02z.d.ts +18 -0
  128. package/dist/featureFlagService-DaelrXEk.d.cts +18 -0
  129. package/dist/fiveCbd-CdqNt16h.cjs +614 -0
  130. package/dist/fiveCbd-D6B-sgnX.js +614 -0
  131. package/dist/forLoveAndLemons-C7GsJG7f.cjs +668 -0
  132. package/dist/forLoveAndLemons-gNDlMtPR.js +666 -0
  133. package/dist/{globalSearch-hxbXekus.cjs → globalSearch-BTeZxvk1.cjs} +2 -1
  134. package/dist/globalSearch-b0wC7ZEO.js +14 -0
  135. package/dist/greenpan-B5AaW4M_.js +398 -0
  136. package/dist/greenpan-DrORpYms.cjs +398 -0
  137. package/dist/grooveLife-BJqsfH2H.cjs +343 -0
  138. package/dist/grooveLife-xIUmDM8s.js +343 -0
  139. package/dist/homegrownCannabis-8TZ21u6L.cjs +411 -0
  140. package/dist/homegrownCannabis-BtMuEvbZ.js +411 -0
  141. package/dist/hooks/index.cjs +36 -38
  142. package/dist/hooks/index.d.cts +36 -82
  143. package/dist/hooks/index.d.ts +38 -84
  144. package/dist/hooks/index.js +11 -17
  145. package/dist/index-BTK5uzs6.d.cts +98 -0
  146. package/dist/index-BdNKc2ix.d.cts +2 -1
  147. package/dist/index-BrXuc_Ck.d.cts +2 -1
  148. package/dist/index-BzgkfbNO.d.cts +228 -0
  149. package/dist/index-CKKkTsms.d.ts +39 -0
  150. package/dist/index-CKUpnyJQ.d.ts +72 -0
  151. package/dist/index-CSIOQD-A.d.ts +25 -0
  152. package/dist/index-CbJZOEU4.d.ts +203 -0
  153. package/dist/index-ClJ0nMsR.d.cts +184 -0
  154. package/dist/index-Cr2y08f1.d.ts +9 -0
  155. package/dist/index-Cx9e-fRi.d.ts +184 -0
  156. package/dist/index-D2VaMPA3.d.ts +98 -0
  157. package/dist/index-D46Rd0io.d.cts +39 -0
  158. package/dist/index-DFL1dIT_.d.ts +7 -0
  159. package/dist/index-DXpgMVpp.d.ts +749 -0
  160. package/dist/index-Dxpscrvz.d.ts +228 -0
  161. package/dist/index-K2kNsOTw.d.cts +203 -0
  162. package/dist/index-MFbPQ8Ji.d.ts +95 -0
  163. package/dist/index-VHFMGkO-.d.cts +72 -0
  164. package/dist/index-VSFakgAI.d.cts +95 -0
  165. package/dist/index-aNW5V9fh.d.cts +749 -0
  166. package/dist/index-zZjcds15.d.cts +7 -0
  167. package/dist/interceptors/index.cjs +12 -13
  168. package/dist/interceptors/index.d.cts +10 -10
  169. package/dist/interceptors/index.d.ts +10 -10
  170. package/dist/interceptors/index.js +10 -11
  171. package/dist/jackArcher-WtkbLBZj.cjs +728 -0
  172. package/dist/jackArcher-sO9EbgrZ.js +728 -0
  173. package/dist/jordanCraig-471FcgqF.cjs +1787 -0
  174. package/dist/jordanCraig-DNOncplU.js +1787 -0
  175. package/dist/kindredBravely-BlLyHGMX.cjs +491 -0
  176. package/dist/kindredBravely-cqZ4OvXp.js +491 -0
  177. package/dist/kutFromTheKloth-3mOIryvt.cjs +370 -0
  178. package/dist/kutFromTheKloth-DtVNCMKa.js +370 -0
  179. package/dist/larryAndSerges-88Bvq-Us.cjs +262 -0
  180. package/dist/larryAndSerges-cvak6May.js +262 -0
  181. package/dist/leapsAndRebounds-Dmf8eUPq.js +361 -0
  182. package/dist/leapsAndRebounds-iWKc923H.cjs +361 -0
  183. package/dist/logger-Dln20ans.cjs +26 -0
  184. package/dist/logger-pdEEY8T2.js +20 -0
  185. package/dist/longevityrx-BTMI9vn-.js +321 -0
  186. package/dist/longevityrx-CobPyigd.cjs +321 -0
  187. package/dist/lookOptic-C4H_c0JZ.cjs +283 -0
  188. package/dist/lookOptic-Jwf7EAU8.js +283 -0
  189. package/dist/mantraBrand-CySGqbn6.cjs +751 -0
  190. package/dist/mantraBrand-DoaVj837.js +751 -0
  191. package/dist/medterra-BnZ5p27n.cjs +584 -0
  192. package/dist/medterra-DaICcPPp.js +584 -0
  193. package/dist/modells-CZ1L6dD_.js +485 -0
  194. package/dist/modells-DF0SndHr.cjs +485 -0
  195. package/dist/nodeSelector-DybpVr-i.d.ts +31 -0
  196. package/dist/nodeSelector-vKB44CDB.d.cts +2 -1
  197. package/dist/orgConfigResults--dAwtw3W.d.ts +881 -0
  198. package/dist/orgConfigResults-BL0XBA6x.d.cts +881 -0
  199. package/dist/pressedFloral-B3t2cYzs.cjs +662 -0
  200. package/dist/pressedFloral-Dsws2Kfb.js +662 -0
  201. package/dist/search-filter-types-9rTb3jMj.d.cts +102 -0
  202. package/dist/search-filter-types-C-zZSpGo.d.ts +102 -0
  203. package/dist/skinPerfection-CILQM2bR.cjs +335 -0
  204. package/dist/skinPerfection-DmQCntRf.js +335 -0
  205. package/dist/snapSupplements--X_v0KRM.js +286 -0
  206. package/dist/snapSupplements-Djuzl0Ed.cjs +286 -0
  207. package/dist/socialProofClasses-DdzG1tZy.js +10 -0
  208. package/dist/socialProofClasses-ky69yppk.cjs +40 -0
  209. package/dist/spanx-Bo81yXSF.cjs +664 -0
  210. package/dist/spanx-DauxB8KE.js +662 -0
  211. package/dist/spanxStaging-BucYQvR1.cjs +849 -0
  212. package/dist/spanxStaging-CfXUukdP.js +846 -0
  213. package/dist/{suggestionBarV2-types-DG3Ekk44.cjs → suggestionBarV2-types-B3lwrENK.cjs} +2 -1
  214. package/dist/suggestionBarV2-types-Penx3Y67.js +10 -0
  215. package/dist/supergoop-8qa_NV3F.cjs +338 -0
  216. package/dist/supergoop-DOaui-A6.js +336 -0
  217. package/dist/test-types-CXVJxTeu.d.ts +40 -0
  218. package/dist/test-types-CuOq25VT.d.cts +40 -0
  219. package/dist/types/index.cjs +2 -2
  220. package/dist/types/index.d.cts +2 -2
  221. package/dist/types/index.d.ts +2 -2
  222. package/dist/types/index.js +2 -2
  223. package/dist/types-CD4LFta-.d.cts +33 -0
  224. package/dist/types-CGC6Oozp.cjs +231 -0
  225. package/dist/types-CnTCkyvK.js +177 -0
  226. package/dist/types-DBdI0j89.d.ts +33 -0
  227. package/dist/uniqueVintage-BWkDgt1z.js +1212 -0
  228. package/dist/uniqueVintage-DAne8XcL.cjs +1214 -0
  229. package/dist/variant-CC1nrywd.d.ts +13 -0
  230. package/dist/variant-CQTuQQSq.d.cts +13 -0
  231. package/dist/venaCbd-B1HO_Pkr.cjs +366 -0
  232. package/dist/venaCbd-CnByO-5R.js +366 -0
  233. package/dist/westonJonBoucher-BAGXegsX.js +423 -0
  234. package/dist/westonJonBoucher-BRfHWMbs.cjs +423 -0
  235. package/dist/wineEnthusiast-DW8JVwV8.cjs +941 -0
  236. package/dist/wineEnthusiast-EJbhMeKQ.js +941 -0
  237. package/dist/wolfMattress-B6INZNRJ.cjs +373 -0
  238. package/dist/wolfMattress-D9P7ErH_.js +373 -0
  239. package/dist/wolfTactical-C5Pupi3J.js +350 -0
  240. package/dist/wolfTactical-TMthZM93.cjs +350 -0
  241. package/package.json +2 -1
  242. package/src/adapters/amplitude/amplitudeAdapter.ts +32 -9
  243. package/src/adapters/spiffy/commerce/api.ts +17 -8
  244. package/src/adapters/spiffy/commerce/graphql.ts +16 -5
  245. package/src/application/config/generalStaticConfig.ts +5 -2
  246. package/src/application/models/api/orgConfigResults.ts +6 -2
  247. package/src/application/models/supportedOrgs.ts +1 -1
  248. package/src/application/models/validators/validateGraphQLColorsConfig.ts +23 -21
  249. package/src/application/service/cdnService.ts +4 -2
  250. package/src/application/service/graphqlConfigService.ts +59 -0
  251. package/src/application/service/index.ts +1 -1
  252. package/src/application/service/pageVariantService.ts +5 -5
  253. package/src/application/service/searchService.ts +9 -2
  254. package/src/application/service/windowChatToggleService.ts +28 -19
  255. package/src/application/service/windowFrontendConfigService.ts +7 -4
  256. package/src/atoms/app/index.ts +26 -17
  257. package/src/atoms/app/variant.ts +1 -0
  258. package/src/atoms/chat/messageQueue.ts +1 -1
  259. package/src/atoms/envive/enviveConfig.ts +81 -0
  260. package/src/atoms/org/graphqlConfig.ts +40 -11
  261. package/src/atoms/org/index.ts +7 -7
  262. package/src/atoms/org/merchantCss.ts +119 -2
  263. package/src/atoms/org/org.ts +67 -70
  264. package/src/atoms/org/orgPageConfig.ts +9 -6
  265. package/src/atoms/org/orgUIConfig.ts +22 -9
  266. package/src/atoms/search/chatSearch.ts +85 -67
  267. package/src/atoms/search/searchAPI.ts +52 -42
  268. package/src/contexts/chatContext.tsx +4 -1
  269. package/src/contexts/enviveConfigContext.tsx +37 -26
  270. package/src/contexts/enviveCssContext.tsx +20 -0
  271. package/src/contexts/index.ts +2 -0
  272. package/src/contexts/orgConfigContext.tsx +106 -0
  273. package/src/contexts/systemSettingsContext.tsx +2 -2
  274. package/src/contexts/types.ts +12 -9
  275. package/src/hooks/index.ts +2 -3
  276. package/src/hooks/useDynamicVariants.ts +48 -32
  277. package/src/hooks/useFileUpload.ts +1 -1
  278. package/src/hooks/useHideElements.ts +21 -18
  279. package/src/hooks/useImageResolver.ts +16 -8
  280. package/src/hooks/useNewOrgConfig.ts +80 -0
  281. package/src/hooks/useSearch.tsx +10 -6
  282. package/src/hooks/utils.ts +1 -1
  283. package/src/interceptors/useFormEscalation.ts +26 -9
  284. package/src/types.ts +0 -2
  285. package/dist/api-BtzLHcfU.cjs +0 -268
  286. package/dist/api-kpPTZhV9.js +0 -189
  287. package/dist/atomStore-BNQyGmU_.cjs +0 -57
  288. package/dist/atomStore-TnLPtYns.js +0 -31
  289. package/dist/bandolier-CQrxBHsk.cjs +0 -1230
  290. package/dist/bandolier-Di9DpZ8e.js +0 -1230
  291. package/dist/carpe-3NJOR-Rj.cjs +0 -608
  292. package/dist/carpe-DmWKaIQq.js +0 -606
  293. package/dist/cdnService-BNreZjqy.js +0 -18
  294. package/dist/cdnService-vLxePdrU.cjs +0 -23
  295. package/dist/chat-CCQMmhc1.cjs +0 -5057
  296. package/dist/chat-Dk6KPb1K.js +0 -25
  297. package/dist/chat-H6YcCS4I.js +0 -4113
  298. package/dist/components-DAQxVIn9.js +0 -10
  299. package/dist/coterie-D0UFsFC5.cjs +0 -240
  300. package/dist/coterie-JblRmIZL.js +0 -240
  301. package/dist/customerService-C4wc0glQ.js +0 -22
  302. package/dist/customerService-zsDlp7g2.cjs +0 -35
  303. package/dist/custservice-types-D8Npo-5Z.js +0 -22
  304. package/dist/custservice-types-E9_OSaZ7.cjs +0 -34
  305. package/dist/default-C5ZTV8HA.cjs +0 -4
  306. package/dist/default-DPv8m-eQ.js +0 -175
  307. package/dist/default-DRKBosow.cjs +0 -198
  308. package/dist/default-ao0vRl0W.js +0 -4
  309. package/dist/divIds-BWvq-i6I.js +0 -22
  310. package/dist/dreamlandBaby-CyS8oW8X.js +0 -347
  311. package/dist/dreamlandBaby-y7kSvwH2.cjs +0 -347
  312. package/dist/embedded-C1jvFj3v.js +0 -22
  313. package/dist/entrypoints-CmmOszXO.js +0 -6
  314. package/dist/entrypoints-fowCLUT2.cjs +0 -18
  315. package/dist/enviveConfigContext-Bs8kepnO.cjs +0 -48
  316. package/dist/enviveConfigContext-CWVdVWKW.js +0 -34
  317. package/dist/events-DgFzlVJR.js +0 -77
  318. package/dist/events-bH-24eRW.cjs +0 -89
  319. package/dist/featureFlagService-CroFRxvD.d.cts +0 -17
  320. package/dist/featureFlagService-NkJ2fuEj.d.ts +0 -17
  321. package/dist/featureGates-BMWXU0dS.d.ts +0 -90
  322. package/dist/featureGates-N_gyHCTn.d.cts +0 -90
  323. package/dist/fiveCbd-CXVuIBiZ.cjs +0 -614
  324. package/dist/fiveCbd-Cyc3-Ab9.js +0 -614
  325. package/dist/forLoveAndLemons-CxQS0USq.cjs +0 -668
  326. package/dist/forLoveAndLemons-D8mcgmdk.js +0 -666
  327. package/dist/frontendConfig-KeNqU1wa.d.cts +0 -790
  328. package/dist/frontendConfig-cPvCTWm6.d.ts +0 -790
  329. package/dist/globalSearch-BC0rOX3E.js +0 -13
  330. package/dist/greenpan-JM6SHcqO.js +0 -398
  331. package/dist/greenpan-eIzyxVsn.cjs +0 -398
  332. package/dist/grooveLife-BmsUc2cD.js +0 -343
  333. package/dist/grooveLife-KdTizVUn.cjs +0 -343
  334. package/dist/homegrownCannabis-C0GDai4r.cjs +0 -411
  335. package/dist/homegrownCannabis-a9udocBT.js +0 -411
  336. package/dist/hooks-DjOa7ihH.cjs +0 -7331
  337. package/dist/hooks-fneW8SWw.js +0 -7152
  338. package/dist/index-BQErGgfM.d.cts +0 -202
  339. package/dist/index-C4zjAR1c.d.cts +0 -227
  340. package/dist/index-CGB6CAmr.d.ts +0 -6
  341. package/dist/index-CIco0cCQ.d.ts +0 -183
  342. package/dist/index-COG1kOZG.d.ts +0 -749
  343. package/dist/index-CVxe7FpL.d.cts +0 -6
  344. package/dist/index-Cn1SeI5y.d.cts +0 -183
  345. package/dist/index-CnqHN_jz.d.ts +0 -202
  346. package/dist/index-Cqg6ltII.d.ts +0 -38
  347. package/dist/index-DE_7Q8qK.d.ts +0 -94
  348. package/dist/index-Da0UzyI9.d.ts +0 -24
  349. package/dist/index-DbWWcYax.d.cts +0 -749
  350. package/dist/index-DtoVXd6O.d.cts +0 -97
  351. package/dist/index-JClBRnSX.d.cts +0 -94
  352. package/dist/index-ghzD_356.d.ts +0 -8
  353. package/dist/index-hdbCEjYy.d.cts +0 -38
  354. package/dist/index-luJrHgPN.d.ts +0 -97
  355. package/dist/index-tfRj22E1.d.ts +0 -227
  356. package/dist/jackArcher-B6OJ0N3a.cjs +0 -728
  357. package/dist/jackArcher-B9fe4Hv8.js +0 -728
  358. package/dist/jordanCraig-0CB_m_ts.cjs +0 -1787
  359. package/dist/jordanCraig-DNm1iw1L.js +0 -1787
  360. package/dist/kindredBravely-CZgt7DJA.js +0 -491
  361. package/dist/kindredBravely-KvYPbckZ.cjs +0 -491
  362. package/dist/kutFromTheKloth-BxgtWZs9.cjs +0 -370
  363. package/dist/kutFromTheKloth-SmteSZjk.js +0 -370
  364. package/dist/larryAndSerges-6O_u3L90.cjs +0 -261
  365. package/dist/larryAndSerges-DO-zG8ES.js +0 -261
  366. package/dist/leapsAndRebounds-BK62AmXw.js +0 -361
  367. package/dist/leapsAndRebounds-gPsWVUmQ.cjs +0 -361
  368. package/dist/logger-Be0NyKaY.cjs +0 -25
  369. package/dist/logger-BexDfK3W.js +0 -19
  370. package/dist/longevityrx-DjKbwJo3.cjs +0 -321
  371. package/dist/longevityrx-eq5TeUcy.js +0 -321
  372. package/dist/lookOptic-BPPqms_j.cjs +0 -283
  373. package/dist/lookOptic-jRpBXQCN.js +0 -283
  374. package/dist/mantraBrand-BZOZfkUK.js +0 -751
  375. package/dist/mantraBrand-Cp8zptkj.cjs +0 -751
  376. package/dist/medterra-BHYCBgvQ.cjs +0 -584
  377. package/dist/medterra-CShe6CLY.js +0 -584
  378. package/dist/modells-DE7-gmjK.cjs +0 -485
  379. package/dist/modells-DFyJxNwT.js +0 -485
  380. package/dist/nodeSelector-DpKXszfU.d.ts +0 -30
  381. package/dist/org-Bkn6fl6I.cjs +0 -106
  382. package/dist/org-CX8HFbc9.js +0 -63
  383. package/dist/pressedFloral-BMkCVs8c.cjs +0 -662
  384. package/dist/pressedFloral-aK9br-LF.js +0 -662
  385. package/dist/search-DtIFZeMA.cjs +0 -743
  386. package/dist/search-eWwg8pNn.js +0 -542
  387. package/dist/search-filter-types-ByJnFPc4.d.cts +0 -101
  388. package/dist/search-filter-types-DPgeG8FS.d.ts +0 -101
  389. package/dist/skinPerfection-B9G6yLM2.js +0 -335
  390. package/dist/skinPerfection-BBC1q65Z.cjs +0 -335
  391. package/dist/snapSupplements-D7hx6Kgj.cjs +0 -286
  392. package/dist/snapSupplements-DKvJl__T.js +0 -286
  393. package/dist/socialProofClasses-BYLiEXpU.cjs +0 -39
  394. package/dist/socialProofClasses-CkJufEGb.js +0 -9
  395. package/dist/spanx-D-ZKkxjM.cjs +0 -664
  396. package/dist/spanx-yl7YfVrf.js +0 -662
  397. package/dist/spanxStaging-CXeIg6zI.cjs +0 -849
  398. package/dist/spanxStaging-DzGXL9wD.js +0 -846
  399. package/dist/suggestionBarV2-types-B0RbMStE.js +0 -9
  400. package/dist/supergoop-CSpDPOpl.cjs +0 -337
  401. package/dist/supergoop-D0UkuRiA.js +0 -335
  402. package/dist/test-types-C9b_OdfO.d.ts +0 -39
  403. package/dist/test-types-CpKCxk8U.d.cts +0 -39
  404. package/dist/types-BE4faOO_.d.cts +0 -32
  405. package/dist/types-C3S1H4hl.js +0 -176
  406. package/dist/types-TD8g7LnH.d.ts +0 -32
  407. package/dist/types-lcjuhDBt.cjs +0 -230
  408. package/dist/uniqueVintage-DygVpCqU.cjs +0 -1214
  409. package/dist/uniqueVintage-_n0FZFVj.js +0 -1212
  410. package/dist/useMessageInterceptor-BP6gzo8a.js +0 -57
  411. package/dist/useMessageInterceptor-BnUG2Pzt.cjs +0 -72
  412. package/dist/variant-DH4zusMi.d.cts +0 -12
  413. package/dist/variant-DTEqSBHd.d.ts +0 -12
  414. package/dist/variantInfo-BTvC6CQh.js +0 -1
  415. package/dist/variantInfo-Cz2YXraO.cjs +0 -0
  416. package/dist/venaCbd-BS0dvdBm.js +0 -366
  417. package/dist/venaCbd-Pqg0bj-P.cjs +0 -366
  418. package/dist/westonJonBoucher-CLw8Hy6u.js +0 -423
  419. package/dist/westonJonBoucher-CeA0jwxe.cjs +0 -423
  420. package/dist/wineEnthusiast-M9P18d1w.js +0 -941
  421. package/dist/wineEnthusiast-gHBaQMbe.cjs +0 -941
  422. package/dist/wolfMattress-BQHjoQYu.js +0 -373
  423. package/dist/wolfMattress-CdmN-Evm.cjs +0 -373
  424. package/dist/wolfTactical-Cc2ZLBRh.js +0 -350
  425. package/dist/wolfTactical-dObnPgAG.cjs +0 -350
  426. package/src/application/service/environmentService.ts +0 -51
  427. package/src/extension.ts +0 -63
  428. package/src/hooks/useHorizontalScrollAnimation.ts +0 -115
  429. package/src/hooks/useReducedMotionWithOverride.ts +0 -15
  430. package/src/hooks/useSnapControl.ts +0 -155
  431. package/src/initialize.ts +0 -163
  432. package/src/main.tsx +0 -108
  433. package/src/merchants/uniqueVintage/views/useUniqueVintageChatSearch.ts +0 -147
  434. /package/dist/{atomStore-B3tsg6mF.cjs → locators-CugndTUM.cjs} +0 -0
  435. /package/dist/{atomStore-FSZd_20F.js → locators-DnKpajbY.js} +0 -0
  436. /package/dist/{locators-C2DX_nX6.js → utilityTypes-BVikejDo.js} +0 -0
  437. /package/dist/{locators-CUpyd9Wt.cjs → utilityTypes-C4h2wgAK.cjs} +0 -0
  438. /package/dist/{utilityTypes-DMdsI0DG.cjs → variantInfo-CNRTY0gH.cjs} +0 -0
  439. /package/dist/{utilityTypes-UWdNHElu.js → variantInfo-CzhR5W6h.js} +0 -0
@@ -1,55 +1,63 @@
1
- import { UserEventCategory } from '@spiffy-ai/commerce-api-client';
2
- import { v4 as uuid } from 'uuid';
3
- import { atom } from 'jotai';
1
+ import { UserEventCategory } from "@spiffy-ai/commerce-api-client";
2
+ import { v4 as uuid } from "uuid";
3
+ import { atom } from "jotai";
4
4
  import {
5
5
  Message,
6
6
  MessageRole,
7
7
  MessageType,
8
8
  ProductResponseAttributes,
9
- } from 'src/application/models';
9
+ } from "src/application/models";
10
10
  import {
11
11
  messagesAtom,
12
12
  replyEventCategoryAtom,
13
13
  userHasRepliedAtom,
14
14
  userQueryAtom,
15
- } from 'src/atoms/chat';
16
- import { queueUserEventAtom } from '../chat/messageQueue';
17
- import { orgUIConfigAtom } from '../org';
18
- import { ProductFilters } from './productFilters';
19
- import { ProductSorter } from './productSorter';
20
- import { ChatSearchStateType, ProductSorting } from './types';
15
+ } from "src/atoms/chat";
16
+ import { queueUserEventAtom } from "../chat/messageQueue";
17
+ import { orgUIConfigAtom } from "../org";
18
+ import { ProductFilters } from "./productFilters";
19
+ import { ProductSorter } from "./productSorter";
20
+ import { ChatSearchStateType, ProductSorting } from "./types";
21
21
 
22
22
  // NOTE:
23
23
  // This is a legacy version of search that needs to be decoupled and removed.
24
24
  // the new search.ts file in this directory is likely what you're looking for.
25
25
 
26
- export const chatSearchStateAtom = atom<ChatSearchStateType>('entrypoint');
26
+ export const chatSearchStateAtom = atom<ChatSearchStateType>("entrypoint");
27
27
  export const chatSearchHasProductsAtom = atom<boolean>(false);
28
- export const chatSearchProductSortingAtom = atom<ProductSorting>(ProductSorting.FEATURED);
28
+ export const chatSearchProductSortingAtom = atom<ProductSorting>(
29
+ ProductSorting.FEATURED
30
+ );
29
31
 
30
32
  const filterProductList = (message: Message) =>
31
33
  message.type === MessageType.Product && message.metadata.isForGrid === true;
32
- const filterFilterList = (message: Message) => message.type === MessageType.ProductSearchFilter;
34
+ const filterFilterList = (message: Message) =>
35
+ message.type === MessageType.ProductSearchFilter;
33
36
 
34
37
  export type ChatSearchTurn = {
35
38
  id: string;
36
39
  generatedQuery?: string;
37
40
  productCount: number;
38
- productList: ProductResponseAttributes['attributes'][];
41
+ productList: ProductResponseAttributes["attributes"][];
39
42
  filterList: string[];
40
43
  messages: Message[];
41
44
  };
42
45
 
43
46
  export const chatSearchIsLoadingAtom = atom(false);
44
47
 
45
- const buildChatSearchTurn = (messages: Message[]): [string, ChatSearchTurn] | null => {
46
- const queryMessage = messages.find((message) => message.type === MessageType.ProductSearch);
48
+ const buildChatSearchTurn = (
49
+ messages: Message[]
50
+ ): [string, ChatSearchTurn] | null => {
51
+ const queryMessage = messages.find(
52
+ (message) => message.type === MessageType.ProductSearch
53
+ );
47
54
  if (!queryMessage) {
48
55
  return null;
49
56
  }
50
57
  const { generatedQuery, productCount } = queryMessage.metadata ?? {};
51
- // @ts-expect-error: product has metadata
52
- const productList = messages.filter(filterProductList).map((message) => message.metadata);
58
+ const productList = messages
59
+ .filter(filterProductList)
60
+ .map((message) => (message as any).metadata);
53
61
  const filterList = messages
54
62
  .filter(filterFilterList)
55
63
  .map((message) => message.metadata.filterName);
@@ -67,13 +75,15 @@ const buildChatSearchTurn = (messages: Message[]): [string, ChatSearchTurn] | nu
67
75
  };
68
76
 
69
77
  const chatSearchFilterConfigAtom = atom((get) => {
70
- const { searchConfig } = get(orgUIConfigAtom);
71
- return searchConfig.searchFilterConfig;
78
+ const orgUIConfig = get(orgUIConfigAtom);
79
+ return orgUIConfig?.searchConfig?.searchFilterConfig || [];
72
80
  });
73
81
 
74
82
  const searchMapAtom = atom((get) => {
75
83
  const messages = get(messagesAtom);
76
- return Object.fromEntries(messages.map(buildChatSearchTurn).filter((v) => v !== null));
84
+ return Object.fromEntries(
85
+ messages.map(buildChatSearchTurn).filter((v) => v !== null)
86
+ );
77
87
  });
78
88
 
79
89
  const internalChatSearchParamsAtom = atom<{
@@ -92,17 +102,19 @@ export type SelectedChatSearchFilterOption = {
92
102
  filterItemId: string; // Filter value
93
103
  };
94
104
 
95
- export const selectedFilterOptionsAtom = atom<SelectedChatSearchFilterOption[]>([]);
105
+ export const selectedFilterOptionsAtom = atom<SelectedChatSearchFilterOption[]>(
106
+ []
107
+ );
96
108
 
97
109
  export const additiveDynamicFiltersAtom = atom((get) => {
98
- const { searchConfig } = get(orgUIConfigAtom);
99
- return searchConfig.additiveDynamicFilters ?? false;
110
+ const orgUIConfig = get(orgUIConfigAtom);
111
+ return orgUIConfig?.searchConfig?.additiveDynamicFilters ?? false;
100
112
  });
101
113
 
102
114
  export const createChatSearchFilterOption = (
103
115
  filterId: string,
104
116
  filterItemId: string,
105
- displayName: string,
117
+ displayName: string
106
118
  ): SelectedChatSearchFilterOption => ({
107
119
  id: `${filterId}:${filterItemId}`,
108
120
  displayName,
@@ -138,7 +150,7 @@ export const chatSearchParamsAtom = atom(
138
150
  (get) => get(internalChatSearchParamsAtom),
139
151
  (_, set, value: { id: string | null; query: string | null }) => {
140
152
  set(internalChatSearchParamsAtom, value);
141
- },
153
+ }
142
154
  );
143
155
 
144
156
  export const chatSearchQueryAtom = atom(
@@ -146,7 +158,7 @@ export const chatSearchQueryAtom = atom(
146
158
  (get, set, value: string | null) => {
147
159
  const searchParams = get(chatSearchParamsAtom);
148
160
  set(chatSearchParamsAtom, { id: searchParams.id, query: value });
149
- },
161
+ }
150
162
  );
151
163
 
152
164
  export const chatSearchIdAtom = atom(
@@ -154,7 +166,7 @@ export const chatSearchIdAtom = atom(
154
166
  (get, set, value: string | null) => {
155
167
  const searchParams = get(chatSearchParamsAtom);
156
168
  set(chatSearchParamsAtom, { id: value, query: searchParams.query });
157
- },
169
+ }
158
170
  );
159
171
 
160
172
  export const ChatSearchTurnAtom = atom((get) => {
@@ -175,10 +187,13 @@ export const ChatSearchTurnAtom = atom((get) => {
175
187
  ChatSearchTurn.productList,
176
188
  searchFilterConfig,
177
189
  selectedFilterOptions,
178
- additiveDynamicFilters,
190
+ additiveDynamicFilters
179
191
  );
180
192
 
181
- const filteredAndSortedProducts = ProductSorter.sort(filteredProducts, productSorting);
193
+ const filteredAndSortedProducts = ProductSorter.sort(
194
+ filteredProducts,
195
+ productSorting
196
+ );
182
197
 
183
198
  return {
184
199
  ...searchMap[chatSearchId],
@@ -204,7 +219,7 @@ export const chatSearchFiltersAtom = atom((get) => {
204
219
  return ProductFilters.getFiltersForProducts(
205
220
  products,
206
221
  searchFilterConfig,
207
- selectedFilterOptions,
222
+ selectedFilterOptions
208
223
  );
209
224
  }
210
225
  return [];
@@ -217,16 +232,16 @@ export const chatSearchFiltersAtom = atom((get) => {
217
232
 
218
233
  export const setSearchParams = (query: string) => {
219
234
  const url = new URL(window.location.href);
220
- url.searchParams.set('es', 'true');
221
- url.searchParams.set('esq', query);
222
- window.history.pushState({}, '', url);
235
+ url.searchParams.set("es", "true");
236
+ url.searchParams.set("esq", query);
237
+ window.history.pushState({}, "", url);
223
238
  };
224
239
 
225
240
  export const getSearchParamsAtom = atom(() => {
226
241
  const params = new URLSearchParams(window.location.search);
227
242
  return {
228
- es: params.get('es'),
229
- esq: params.get('esq'),
243
+ es: params.get("es"),
244
+ esq: params.get("esq"),
230
245
  };
231
246
  });
232
247
 
@@ -234,13 +249,13 @@ export const initiateChatSearchAtom = atom(null, (_, set, query: string) => {
234
249
  set(chatSearchIsLoadingAtom, true);
235
250
  // Update URL and manually trigger state change (since pushState doesn't trigger popstate)
236
251
  const url = new URL(window.location.href);
237
- url.searchParams.set('es', 'true');
238
- url.searchParams.set('esq', query);
239
- window.history.pushState({}, '', url);
252
+ url.searchParams.set("es", "true");
253
+ url.searchParams.set("esq", query);
254
+ window.history.pushState({}, "", url);
240
255
 
241
256
  // Manually trigger page variant re-evaluation by dispatching a popstate event
242
257
  // This ensures the page variant system detects the URL change and mounts search results
243
- window.dispatchEvent(new PopStateEvent('popstate', { state: {} }));
258
+ window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
244
259
 
245
260
  set(chatSearchParamsAtom, { id: null, query });
246
261
  set(handleSearchAtom, {
@@ -256,38 +271,41 @@ export const initiateChatSearchAtom = atom(null, (_, set, query: string) => {
256
271
  });
257
272
  });
258
273
 
259
- export const handleSearchResultsAtom = atom(null, (get, set, message: Message | undefined) => {
260
- if (!message || message.type !== MessageType.ProductSearch) {
261
- return;
262
- }
274
+ export const handleSearchResultsAtom = atom(
275
+ null,
276
+ (get, set, message: Message | undefined) => {
277
+ if (!message || message.type !== MessageType.ProductSearch) {
278
+ return;
279
+ }
263
280
 
264
- const { productCount, generatedQuery } = message.metadata;
265
- if (productCount !== 0) {
266
- // Clear the filter options when we get new products
267
- set(selectedFilterOptionsAtom, []);
268
- // TODO: Should we still do any of these things?
269
- set(chatSearchStateAtom, 'product-page');
270
- const currentSearchParams = get(chatSearchParamsAtom);
271
- const url = new URL(window.location.href);
272
- url.searchParams.set('es', 'true');
273
- url.searchParams.set('esq', generatedQuery);
274
- url.searchParams.set('esi', message.id);
275
- window.history.pushState({}, '', url);
276
- if (currentSearchParams.id === null) {
277
- // If the id is null, we need to replace the state
278
- window.history.replaceState(null, '', url);
279
- } else {
280
- // If the query is different, we need to push a new state
281
- window.history.pushState(null, '', url);
281
+ const { productCount, generatedQuery } = message.metadata;
282
+ if (productCount !== 0) {
283
+ // Clear the filter options when we get new products
284
+ set(selectedFilterOptionsAtom, []);
285
+ // TODO: Should we still do any of these things?
286
+ set(chatSearchStateAtom, "product-page");
287
+ const currentSearchParams = get(chatSearchParamsAtom);
288
+ const url = new URL(window.location.href);
289
+ url.searchParams.set("es", "true");
290
+ url.searchParams.set("esq", generatedQuery);
291
+ url.searchParams.set("esi", message.id);
292
+ window.history.pushState({}, "", url);
293
+ if (currentSearchParams.id === null) {
294
+ // If the id is null, we need to replace the state
295
+ window.history.replaceState(null, "", url);
296
+ } else {
297
+ // If the query is different, we need to push a new state
298
+ window.history.pushState(null, "", url);
299
+ }
300
+ set(chatSearchParamsAtom, { id: message.id, query: generatedQuery });
282
301
  }
283
- set(chatSearchParamsAtom, { id: message.id, query: generatedQuery });
284
302
  }
285
- });
303
+ );
286
304
 
287
305
  export const setChatSearchParamsAtom = atom(null, (_, set, query: string) => {
288
306
  const url = new URL(window.location.href);
289
- url.searchParams.set('es', 'true');
290
- url.searchParams.set('esq', query);
291
- window.history.pushState({}, '', url);
307
+ url.searchParams.set("es", "true");
308
+ url.searchParams.set("esq", query);
309
+ window.history.pushState({}, "", url);
292
310
  set(chatSearchParamsAtom, { id: null, query });
293
311
  });
@@ -1,10 +1,10 @@
1
- import { atom } from 'jotai';
2
- import { SearchResult, SearchParams } from 'src/application/models/api/search';
3
- import SearchService from 'src/application/service/searchService';
4
- import { ProductSorting } from './types';
5
- import { ProductFilters } from './productFilters';
6
- import { ProductSorter } from './productSorter';
7
- import { orgUIConfigAtom } from '../org';
1
+ import { atom } from "jotai";
2
+ import { SearchResult, SearchParams } from "src/application/models/api/search";
3
+ import SearchService from "src/application/service/searchService";
4
+ import { ProductSorting } from "./types";
5
+ import { ProductFilters } from "./productFilters";
6
+ import { ProductSorter } from "./productSorter";
7
+ import { orgUIConfigAtom } from "../org";
8
8
 
9
9
  export type SelectedFilterOption = {
10
10
  id: string; // "filterId:filterItemId" - maintains backward compatibility for comparisons
@@ -27,13 +27,15 @@ export const searchAtom = atom<SearchState>({
27
27
  lastQuery: null,
28
28
  });
29
29
 
30
- export const searchProductSortingAtom = atom<ProductSorting>(ProductSorting.FEATURED);
30
+ export const searchProductSortingAtom = atom<ProductSorting>(
31
+ ProductSorting.FEATURED
32
+ );
31
33
  export const searchSelectedFiltersAtom = atom<SelectedFilterOption[]>([]);
32
34
 
33
35
  export const createFilterOption = (
34
36
  filterId: string,
35
37
  filterItemId: string,
36
- displayName: string,
38
+ displayName: string
37
39
  ): SelectedFilterOption => ({
38
40
  id: `${filterId}:${filterItemId}`,
39
41
  displayName,
@@ -53,7 +55,7 @@ export const searchParamsAtom = atom(
53
55
  (get) => get(internalSearchParamsAtom),
54
56
  (_, set, value: { id: string | null; query: string | null }) => {
55
57
  set(internalSearchParamsAtom, value);
56
- },
58
+ }
57
59
  );
58
60
  export const internalSearchSystemStateAtom = atom<boolean>(false);
59
61
 
@@ -65,9 +67,9 @@ export const searchSystemAtom = atom(
65
67
  }
66
68
  const stateChangeHandler = () => {
67
69
  const params = new URLSearchParams(window.location.search);
68
- if (params.get('es') === 'true') {
69
- const id = params.get('esi');
70
- const query = params.get('esq');
70
+ if (params.get("es") === "true") {
71
+ const id = params.get("esi");
72
+ const query = params.get("esq");
71
73
  set(searchParamsAtom, { id, query });
72
74
  } else {
73
75
  set(searchParamsAtom, { id: null, query: null });
@@ -75,14 +77,14 @@ export const searchSystemAtom = atom(
75
77
  };
76
78
  if (value) {
77
79
  set(internalSearchSystemStateAtom, true);
78
- window.addEventListener('popstate', stateChangeHandler);
80
+ window.addEventListener("popstate", stateChangeHandler);
79
81
  // Also trigger the hash change handler to set the initial state
80
82
  stateChangeHandler();
81
83
  } else {
82
84
  set(internalSearchSystemStateAtom, false);
83
- window.removeEventListener('popstate', stateChangeHandler);
85
+ window.removeEventListener("popstate", stateChangeHandler);
84
86
  }
85
- },
87
+ }
86
88
  );
87
89
 
88
90
  export const filteredSearchProductsAtom = atom((get) => {
@@ -91,13 +93,13 @@ export const filteredSearchProductsAtom = atom((get) => {
91
93
  const selectedFilters = get(searchSelectedFiltersAtom);
92
94
  const orgConfig = get(orgUIConfigAtom);
93
95
 
94
- if (!searchData?.products) return [];
96
+ if (!searchData?.products || !orgConfig?.searchConfig) return [];
95
97
 
96
98
  const filteredProducts = ProductFilters.filterProducts(
97
99
  searchData.products,
98
100
  orgConfig.searchConfig.searchFilterConfig,
99
101
  selectedFilters,
100
- orgConfig.searchConfig.additiveDynamicFilters,
102
+ orgConfig.searchConfig.additiveDynamicFilters
101
103
  );
102
104
 
103
105
  return ProductSorter.sort(filteredProducts, sorting);
@@ -108,29 +110,35 @@ export const searchFiltersAtom = atom((get) => {
108
110
  const selectedFilters = get(searchSelectedFiltersAtom);
109
111
  const orgConfig = get(orgUIConfigAtom);
110
112
 
111
- if (!searchData?.products) return [];
113
+ if (!searchData?.products || !orgConfig?.searchConfig) return [];
112
114
 
113
115
  return ProductFilters.getFiltersForProducts(
114
116
  searchData.products,
115
117
  orgConfig.searchConfig.searchFilterConfig,
116
- selectedFilters,
118
+ selectedFilters
117
119
  );
118
120
  });
119
121
 
120
- export const addSearchFilterAtom = atom(null, (get, set, filter: SelectedFilterOption) => {
121
- const current = get(searchSelectedFiltersAtom);
122
- if (!current.some((f) => f.id === filter.id)) {
123
- set(searchSelectedFiltersAtom, [...current, filter]);
122
+ export const addSearchFilterAtom = atom(
123
+ null,
124
+ (get, set, filter: SelectedFilterOption) => {
125
+ const current = get(searchSelectedFiltersAtom);
126
+ if (!current.some((f) => f.id === filter.id)) {
127
+ set(searchSelectedFiltersAtom, [...current, filter]);
128
+ }
124
129
  }
125
- });
130
+ );
126
131
 
127
- export const removeSearchFilterAtom = atom(null, (get, set, filterId: string) => {
128
- const current = get(searchSelectedFiltersAtom);
129
- set(
130
- searchSelectedFiltersAtom,
131
- current.filter((f) => f.id !== filterId),
132
- );
133
- });
132
+ export const removeSearchFilterAtom = atom(
133
+ null,
134
+ (get, set, filterId: string) => {
135
+ const current = get(searchSelectedFiltersAtom);
136
+ set(
137
+ searchSelectedFiltersAtom,
138
+ current.filter((f) => f.id !== filterId)
139
+ );
140
+ }
141
+ );
134
142
 
135
143
  export const clearSearchFiltersAtom = atom(null, (_, set) => {
136
144
  set(searchSelectedFiltersAtom, []);
@@ -141,28 +149,29 @@ export const performSearchAtom = atom(
141
149
  async (get, set, params: SearchParams, allowRedirect = false) => {
142
150
  const currentState = get(searchAtom);
143
151
  const orgUIConfig = get(orgUIConfigAtom);
144
- const redirectSearchResultsUrl = orgUIConfig.searchConfig?.redirectSearchResultsUrl;
152
+ const redirectSearchResultsUrl =
153
+ orgUIConfig?.searchConfig?.redirectSearchResultsUrl;
145
154
 
146
155
  if (allowRedirect && redirectSearchResultsUrl) {
147
156
  const redirectUrl = new URL(redirectSearchResultsUrl);
148
- redirectUrl.searchParams.set('es', 'true');
149
- redirectUrl.searchParams.set('esq', params.query);
157
+ redirectUrl.searchParams.set("es", "true");
158
+ redirectUrl.searchParams.set("esq", params.query);
150
159
  window.location.href = redirectUrl.toString();
151
160
  } else {
152
161
  // Update URL and manually trigger state change (since pushState doesn't trigger popstate)
153
162
  const url = new URL(window.location.href);
154
- url.searchParams.set('es', 'true');
155
- url.searchParams.set('esq', params.query);
156
- window.history.pushState({}, '', url);
163
+ url.searchParams.set("es", "true");
164
+ url.searchParams.set("esq", params.query);
165
+ window.history.pushState({}, "", url);
157
166
 
158
167
  // Manually trigger page variant re-evaluation by dispatching a popstate event
159
168
  // This ensures the page variant system detects the URL change and mounts search results
160
- window.dispatchEvent(new PopStateEvent('popstate', { state: {} }));
169
+ window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
161
170
  }
162
171
 
163
172
  // Manually trigger page variant re-evaluation by dispatching a popstate event
164
173
  // This ensures the page variant system detects the URL change and mounts search results
165
- window.dispatchEvent(new PopStateEvent('popstate', { state: {} }));
174
+ window.dispatchEvent(new PopStateEvent("popstate", { state: {} }));
166
175
  if (currentState.loading) {
167
176
  return; // Prevent concurrent searches
168
177
  }
@@ -182,7 +191,8 @@ export const performSearchAtom = atom(
182
191
  lastQuery: params.query,
183
192
  });
184
193
  } catch (error: unknown) {
185
- const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
194
+ const errorMessage =
195
+ error instanceof Error ? error.message : "An unknown error occurred";
186
196
  set(searchAtom, {
187
197
  data: null,
188
198
  loading: false,
@@ -190,5 +200,5 @@ export const performSearchAtom = atom(
190
200
  lastQuery: params.query,
191
201
  });
192
202
  }
193
- },
203
+ }
194
204
  );
@@ -421,6 +421,9 @@ const ChatContextProvider = ({ children }: { children: ReactNode }) => {
421
421
  `[spiffy-ai] initializeWidget is_currently_streaming=${responseStreaming} is_initialized=${widgetInitialized}`
422
422
  );
423
423
  // on mount, try to get the responses from an active session if one exists
424
+ if (!orgId) {
425
+ throw new Error("orgId is not available");
426
+ }
424
427
  const { messages: existingMessages, userEvents } =
425
428
  await CommerceApiClient.getResponses(orgId, chatId, userId);
426
429
  setMessages([...existingMessages]);
@@ -455,7 +458,7 @@ const ChatContextProvider = ({ children }: { children: ReactNode }) => {
455
458
 
456
459
  const onFocus = useCallback(async () => {
457
460
  try {
458
- if (!responseStreaming && !suggestionsLoading) {
461
+ if (!responseStreaming && !suggestionsLoading && orgId) {
459
462
  const { messages: existingMessages } =
460
463
  await CommerceApiClient.getResponses(orgId, chatId, userId);
461
464
 
@@ -1,19 +1,23 @@
1
- import React, { createContext, useContext, ReactNode } from "react";
1
+ import React, { createContext, useContext, ReactNode, useEffect } from "react";
2
+ import { useSetAtom, useAtomValue } from "jotai";
2
3
  import type { EnviveConfig } from "./types";
4
+ import { enviveConfigAtom } from "src/atoms/envive/enviveConfig";
5
+ import Logger from "src/application/logging/logger";
3
6
 
4
7
  const EnviveConfigContext = createContext<EnviveConfig | undefined>(undefined);
5
8
 
6
9
  interface EnviveConfigProviderProps {
7
10
  children: ReactNode;
8
- amplitudeApiKey: string;
9
- dataResidency: string;
10
- env: string;
11
- baseUrl: string;
12
- reactAppName: string;
13
- cdnUrl: string;
14
- contextSource: string;
15
- orgLevelApiKey: string;
16
- orgShortName: string;
11
+ amplitudeApiKey?: string;
12
+ dataResidency?: string;
13
+ env?: string;
14
+ baseUrl?: string;
15
+ reactAppName?: string;
16
+ cdnUrl?: string;
17
+ contextSource?: string;
18
+ orgLevelApiKey?: string;
19
+ orgShortName?: string;
20
+ identifyingPrefix: string;
17
21
  }
18
22
 
19
23
  export const EnviveConfigProvider: React.FC<EnviveConfigProviderProps> = ({
@@ -27,7 +31,9 @@ export const EnviveConfigProvider: React.FC<EnviveConfigProviderProps> = ({
27
31
  contextSource,
28
32
  orgLevelApiKey,
29
33
  orgShortName,
34
+ identifyingPrefix,
30
35
  }) => {
36
+ const setEnviveConfig = useSetAtom(enviveConfigAtom);
31
37
  const config: EnviveConfig = {
32
38
  amplitudeApiKey,
33
39
  dataResidency,
@@ -38,19 +44,13 @@ export const EnviveConfigProvider: React.FC<EnviveConfigProviderProps> = ({
38
44
  contextSource,
39
45
  orgLevelApiKey,
40
46
  orgShortName,
47
+ identifyingPrefix,
41
48
  };
42
49
 
43
- // Validate config values
44
- for (const key in config) {
45
- if (config.hasOwnProperty(key)) {
46
- const value = config[key as keyof EnviveConfig];
47
- if (value === undefined || value === null || value === "") {
48
- throw new Error(
49
- `EnviveConfigProvider: Missing required configuration value for '${key}'`
50
- );
51
- }
52
- }
53
- }
50
+ useEffect(() => {
51
+ setEnviveConfig(config);
52
+ Logger.logDebug("EnviveConfigProvider: Setting EnviveConfig", config);
53
+ }, [setEnviveConfig, config]);
54
54
 
55
55
  return (
56
56
  <EnviveConfigContext.Provider value={config}>
@@ -60,11 +60,22 @@ export const EnviveConfigProvider: React.FC<EnviveConfigProviderProps> = ({
60
60
  };
61
61
 
62
62
  export const useEnviveConfig = (): EnviveConfig => {
63
- const context = useContext(EnviveConfigContext);
64
- if (context === undefined) {
65
- throw new Error(
66
- "useEnviveConfig must be used within an EnviveConfigProvider"
63
+ const config = useAtomValue(enviveConfigAtom);
64
+ Logger.logDebug("useEnviveConfig: Accessing EnviveConfig", config);
65
+
66
+ // During initial render, the atom might not be set yet, so we need to be more patient
67
+ // The EnviveConfigProvider will set it in its useEffect
68
+ if (!config) {
69
+ // Instead of throwing immediately, let's return a default/empty config
70
+ // This prevents the error during initial render
71
+ Logger.logWarn(
72
+ "EnviveConfig not yet available, returning default config",
73
+ undefined
67
74
  );
75
+ return {
76
+ identifyingPrefix: "spiffy", // This is required, so provide a default
77
+ } as EnviveConfig;
68
78
  }
69
- return context;
79
+
80
+ return config;
70
81
  };
@@ -0,0 +1,20 @@
1
+ import React, { ReactNode } from "react";
2
+ import { useAtomValue } from "jotai";
3
+ import { orgMerchantCssAtom } from "src/atoms/org/merchantCss";
4
+
5
+ interface EnviveCssProviderProps {
6
+ children: ReactNode;
7
+ }
8
+
9
+ export const EnviveCssProvider: React.FC<EnviveCssProviderProps> = ({
10
+ children,
11
+ }) => {
12
+ const enviveCss = useAtomValue(orgMerchantCssAtom);
13
+
14
+ return (
15
+ <>
16
+ {enviveCss && <style id="merchant-css-styles">{enviveCss}</style>}
17
+ {children}
18
+ </>
19
+ );
20
+ };
@@ -2,3 +2,5 @@ export * from "./chatContext";
2
2
  export * from "./systemSettingsContext";
3
3
  export * from "./enviveConfigContext";
4
4
  export * from "./types";
5
+ export * from "./orgConfigContext";
6
+ export * from "./enviveCssContext";