@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
@@ -15,7 +15,7 @@ export type BasicOrgInfoType = {
15
15
  };
16
16
 
17
17
  export const getOrgInfo = async (
18
- orgShortName: string
18
+ orgShortName?: string
19
19
  ): Promise<BasicOrgInfoType> => {
20
20
  switch (orgShortName) {
21
21
  case OrgShortName.Bandolier:
@@ -1,29 +1,31 @@
1
- import { ColorMapping, ColorNames } from 'src/application/models/colorsConfig';
2
- import { isGraphQLColorsConfig } from 'src/application/models/guards/graphQL/isGraphQLColorsConfig';
1
+ import { ColorMapping, ColorNames } from "src/application/models/colorsConfig";
2
+ import { isGraphQLColorsConfig } from "src/application/models/guards/graphQL/isGraphQLColorsConfig";
3
3
 
4
- export const validateGraphQLColorsConfig = (data: unknown): ColorMapping | undefined => {
4
+ export const validateGraphQLColorsConfig = (
5
+ data: unknown
6
+ ): ColorMapping | undefined => {
5
7
  if (!isGraphQLColorsConfig(data)) {
6
8
  return undefined;
7
9
  }
8
10
 
9
11
  return {
10
- [ColorNames.TextPrimary]: data.text_primary,
11
- [ColorNames.TextSecondary]: data.text_secondary,
12
- [ColorNames.TextAccent]: data.text_accent,
13
- [ColorNames.TextLink]: data.text_link,
14
- [ColorNames.TextLight]: data.text_light,
15
- [ColorNames.BackgroundPrimary]: data.background_primary,
16
- [ColorNames.BackgroundSecondary]: data.background_secondary,
17
- [ColorNames.BackgroundSecondaryDark]: data.background_secondary_dark,
18
- [ColorNames.BackgroundTertiary]: data.background_tertiary,
19
- [ColorNames.BackgroundDark]: data.background_dark,
20
- [ColorNames.BorderLight]: data.border_light,
21
- [ColorNames.BorderMedium]: data.border_medium,
22
- [ColorNames.BorderDark]: data.border_dark,
23
- [ColorNames.BorderOutline]: data.border_outline,
24
- [ColorNames.AccentPrimary]: data.accent_primary,
25
- [ColorNames.AccentSecondary]: data.accent_secondary,
26
- [ColorNames.BackgroundLight]: data.background_light,
27
- [ColorNames.BackgroundSaturated]: data.background_saturated,
12
+ [ColorNames.TextPrimary]: "#000000",
13
+ [ColorNames.TextSecondary]: "#666666",
14
+ [ColorNames.TextAccent]: "#808080",
15
+ [ColorNames.TextLink]: "#4D4D4D",
16
+ [ColorNames.TextLight]: "#FFFFFF",
17
+ [ColorNames.BackgroundPrimary]: "#999999",
18
+ [ColorNames.BackgroundSecondary]: "#F2F2F2",
19
+ [ColorNames.BackgroundSecondaryDark]: "#E5E5E5",
20
+ [ColorNames.BackgroundTertiary]: "#E5E5E5",
21
+ [ColorNames.BackgroundDark]: "#000000",
22
+ [ColorNames.BackgroundLight]: "#FFFFFF",
23
+ [ColorNames.BackgroundSaturated]: "#CCCCCC",
24
+ [ColorNames.BorderLight]: "#E5E5E5",
25
+ [ColorNames.BorderMedium]: "#B2B2B2",
26
+ [ColorNames.BorderDark]: "#4D4D4D",
27
+ [ColorNames.BorderOutline]: "#4D4D4D",
28
+ [ColorNames.AccentPrimary]: "#999999",
29
+ [ColorNames.AccentSecondary]: "#B2B2B2",
28
30
  };
29
31
  };
@@ -1,8 +1,10 @@
1
- import { useEnviveConfig } from "src/contexts/enviveConfigContext";
1
+ import { getAtomStore } from "src/atoms/atomStore";
2
+ import { cdnUrlAtom } from "src/atoms/envive/enviveConfig";
2
3
 
3
4
  class CdnService {
4
5
  static get CDN_URL() {
5
- const { cdnUrl } = useEnviveConfig();
6
+ const atomStore = getAtomStore();
7
+ const cdnUrl = atomStore.get(cdnUrlAtom);
6
8
  return cdnUrl || "https://cdn.spiffy.ai/other";
7
9
  }
8
10
 
@@ -0,0 +1,59 @@
1
+ import Logger from "src/application/logging/logger";
2
+ import { GraphQLClient } from "src/adapters/spiffy/commerce/graphql";
3
+ import { AtomStore } from "src/atoms/atomStore/atomStore";
4
+ import {
5
+ internalGraphQLColorsConfigAtom,
6
+ frontendConfigAtom,
7
+ } from "src/atoms/org/graphqlConfig";
8
+ import { getOrgUIConfig } from "src/atoms/org/orgUIConfig";
9
+
10
+ /**
11
+ * Service for handling GraphQL configuration fetching and management
12
+ * This service is separated to avoid circular dependencies between atoms
13
+ */
14
+ export class GraphQLConfigService {
15
+ /**
16
+ * Fetches GraphQL configuration and updates the relevant atoms
17
+ * @param atomStore - The atom store instance to use for setting values
18
+ */
19
+ static async fetchAndSetGraphQLConfig(atomStore: AtomStore): Promise<void> {
20
+ try {
21
+ Logger.logDebug("GraphQLConfigService: Starting GraphQL client fetch");
22
+
23
+ const { colorsConfig, frontendConfig } =
24
+ (await GraphQLClient.getColorsAndFrontendConfig()) ?? {};
25
+
26
+ Logger.logDebug("GraphQLConfigService: GraphQL fetch completed", {
27
+ hasColorsConfig: !!colorsConfig,
28
+ hasFrontendConfig: !!frontendConfig,
29
+ frontendConfigKeys: frontendConfig ? Object.keys(frontendConfig) : [],
30
+ });
31
+
32
+ // Get the current frontend config from the atom store
33
+ const rawFrontendConfig = atomStore.get(frontendConfigAtom);
34
+
35
+ // Update the atoms with the fetched data
36
+ atomStore.set(internalGraphQLColorsConfigAtom, colorsConfig);
37
+
38
+ atomStore.set(frontendConfigAtom, {
39
+ ...rawFrontendConfig,
40
+ pageVariants: frontendConfig?.pageVariants,
41
+ mountingConfigs: frontendConfig?.mountingConfigs,
42
+ widgetConfigs: frontendConfig?.widgetConfigs,
43
+ });
44
+
45
+ Logger.logDebug("GraphQLConfigService: Starting UI config fetch");
46
+ await getOrgUIConfig(
47
+ frontendConfig?.uiConfigs,
48
+ frontendConfig?.merchantOverrideCss
49
+ );
50
+ Logger.logDebug("GraphQLConfigService: UI config fetch completed");
51
+ } catch (error) {
52
+ Logger.logError(
53
+ "GraphQLConfigService: Error during GraphQL config fetch",
54
+ error
55
+ );
56
+ throw error; // Re-throw to be caught by the caller
57
+ }
58
+ }
59
+ }
@@ -2,8 +2,8 @@
2
2
  export * from "./cachingService";
3
3
  export * from "./cdnService";
4
4
  export * from "./domMutationObserver";
5
- export * from "./environmentService";
6
5
  export * from "./featureFlagService";
6
+ export * from "./graphqlConfigService";
7
7
  export * from "./kustomerIntegrationService";
8
8
  export * from "./localStorageService";
9
9
  export * from "./pageVariantService";
@@ -34,7 +34,6 @@ import {
34
34
  UrlResolvingPDPConfig,
35
35
  UrlResolvingPLPConfig,
36
36
  } from "src/atoms/app/variant";
37
- import { tellExtensionAboutInjectionError } from "src/extension";
38
37
  import { chatAtom, lastAssistantMessageAtom } from "src/atoms/chat";
39
38
  import { StringUtils } from "../utils/stringUtils";
40
39
 
@@ -339,7 +338,7 @@ class PageVariantService {
339
338
  const atomStore = getAtomStore();
340
339
  const featureFlagService = atomStore.get(featureFlagServiceAtom);
341
340
 
342
- return featureFlagService.isFeatureGateEnabled(featureGate);
341
+ return featureFlagService?.isFeatureGateEnabled(featureGate) || false;
343
342
  }
344
343
 
345
344
  static getCategory(extractor: CategoryExtractor): PageVisitCategory | null {
@@ -654,9 +653,10 @@ class PageVariantService {
654
653
  undefined,
655
654
  orgPageConfig.pageVariants
656
655
  );
657
- await tellExtensionAboutInjectionError(
658
- new Error("No pagevariantConfig matched")
659
- );
656
+ // TODO: remove or enable if we decide to support injection in this repo.
657
+ // await tellExtensionAboutInjectionError(
658
+ // new Error("No pagevariantConfig matched")
659
+ // );
660
660
 
661
661
  return undefined;
662
662
  };
@@ -11,7 +11,7 @@ import Logger from "src/application/logging/logger";
11
11
  import { SessionRestartRequired } from "src/adapters/spiffy/commerce/exceptions/sessionExceptions";
12
12
  import { UnsupportedProductException } from "src/adapters/spiffy/commerce/exceptions/unsupportedProductExceptions";
13
13
  import { SearchResult, SearchParams } from "../models/api/search";
14
- import { useEnviveConfig } from "src/contexts/enviveConfigContext";
14
+ import { baseUrlAtom } from "src/atoms/envive/enviveConfig";
15
15
 
16
16
  const transformProductResponses = (products: SearchResult["products"]) =>
17
17
  products.map((data) => ({
@@ -80,13 +80,20 @@ class SearchService {
80
80
  if (!SearchService.instance) {
81
81
  const atomStore = getAtomStore();
82
82
  const apiKey = atomStore.get(apiKeyAtom);
83
+ if (!apiKey) {
84
+ throw new Error(
85
+ "[spiffy-ai] SearchService requires apiKey to be available"
86
+ );
87
+ }
83
88
  SearchService.instance = new SearchService(apiKey);
84
89
  }
85
90
  return SearchService.instance;
86
91
  };
87
92
 
88
93
  private constructor(apiKey: string, basePath?: string) {
89
- const { baseUrl } = useEnviveConfig();
94
+ const atomStore = getAtomStore();
95
+
96
+ const baseUrl = atomStore.get(baseUrlAtom);
90
97
  const path = basePath || baseUrl;
91
98
  const config: Configuration = new Configuration({
92
99
  accessToken: apiKey,
@@ -1,12 +1,13 @@
1
- import { useSetAtom } from 'jotai';
2
- import { useEffect, useRef } from 'react';
3
- import { Message, MessageRole, MessageType } from 'src/application/models';
4
- import { EnvironmentService } from 'src/application/service/environmentService';
5
- import { handleReplyAtom } from 'src/atoms/chat';
6
- import { useChatToggle } from 'src/hooks';
7
- import { v4 as uuid } from 'uuid';
8
- import Logger from '../logging/logger';
9
- import { ChatElementDisplayLocation } from '../models/chatElementDisplayLocation';
1
+ import { useSetAtom } from "jotai";
2
+ import { useEffect, useRef } from "react";
3
+ import { Message, MessageRole, MessageType } from "src/application/models";
4
+ import { handleReplyAtom } from "src/atoms/chat";
5
+ import { useChatToggle } from "src/hooks";
6
+ import { v4 as uuid } from "uuid";
7
+ import Logger from "../logging/logger";
8
+ import { ChatElementDisplayLocation } from "../models/chatElementDisplayLocation";
9
+ import { getAtomStore } from "src/atoms/atomStore";
10
+ import { identifyingPrefixAtom } from "src/atoms/envive/enviveConfig";
10
11
 
11
12
  let hasAttachedEnviveChatToggle = false;
12
13
 
@@ -20,13 +21,17 @@ export const WindowChatToggleBinder = () => {
20
21
  const closeChatRef = useRef<(triggerId?: string) => void>();
21
22
  const toggleChatRef = useRef<(triggerId?: string) => void>();
22
23
  const isOpenRef = useRef<boolean>(hook.isOpen);
23
- const openChatWithPromptRef = useRef<(prompt: string, triggerId?: string) => void>();
24
+ const openChatWithPromptRef =
25
+ useRef<(prompt: string, triggerId?: string) => void>();
24
26
 
25
27
  // Keep refs up to date with latest hook/state
26
28
  useEffect(() => {
27
- openChatRef.current = (triggerId?: string) => hook.openChat(triggerLocation, triggerId);
28
- closeChatRef.current = (triggerId?: string) => hook.closeChat(triggerLocation, triggerId);
29
- toggleChatRef.current = (triggerId?: string) => hook.toggle(triggerLocation, triggerId);
29
+ openChatRef.current = (triggerId?: string) =>
30
+ hook.openChat(triggerLocation, triggerId);
31
+ closeChatRef.current = (triggerId?: string) =>
32
+ hook.closeChat(triggerLocation, triggerId);
33
+ toggleChatRef.current = (triggerId?: string) =>
34
+ hook.toggle(triggerLocation, triggerId);
30
35
  isOpenRef.current = hook.isOpen;
31
36
  openChatWithPromptRef.current = (prompt: string, triggerId?: string) => {
32
37
  const message: Message = {
@@ -46,24 +51,28 @@ export const WindowChatToggleBinder = () => {
46
51
  // Attach once; wrapper functions call through to refs
47
52
  useEffect(() => {
48
53
  if (hasAttachedEnviveChatToggle) return;
49
- const identifyingPrefix = EnvironmentService.getIdentifyingPrefix();
54
+ const atomStore = getAtomStore();
55
+ const identifyingPrefix = atomStore.get(identifyingPrefixAtom);
50
56
  try {
51
57
  if (!window[identifyingPrefix]) {
52
58
  window[identifyingPrefix] = {} as Window[typeof identifyingPrefix];
53
59
  }
54
- window[identifyingPrefix].openChat = (triggerId?: string) => openChatRef.current?.(triggerId);
60
+ window[identifyingPrefix].openChat = (triggerId?: string) =>
61
+ openChatRef.current?.(triggerId);
55
62
  window[identifyingPrefix].closeChat = (triggerId?: string) =>
56
63
  closeChatRef.current?.(triggerId);
57
64
  window[identifyingPrefix].toggleChat = (triggerId?: string) =>
58
65
  toggleChatRef.current?.(triggerId);
59
66
  window[identifyingPrefix].getChatIsOpen = () => !!isOpenRef.current;
60
- window[identifyingPrefix].openChatWithPrompt = (prompt: string, triggerId?: string) =>
61
- openChatWithPromptRef.current?.(prompt, triggerId);
67
+ window[identifyingPrefix].openChatWithPrompt = (
68
+ prompt: string,
69
+ triggerId?: string
70
+ ) => openChatWithPromptRef.current?.(prompt, triggerId);
62
71
 
63
- Logger.logDebug('[spiffy-ai] Chat toggle functions attached');
72
+ Logger.logDebug("[spiffy-ai] Chat toggle functions attached");
64
73
  hasAttachedEnviveChatToggle = true;
65
74
  } catch (e) {
66
- Logger.logError('[spiffy-ai] Failed to attach Chat toggle functions', e);
75
+ Logger.logError("[spiffy-ai] Failed to attach Chat toggle functions", e);
67
76
  }
68
77
  }, []);
69
78
 
@@ -1,7 +1,7 @@
1
1
  import Logger from "src/application/logging/logger";
2
- import { EnvironmentService } from "src/application/service/environmentService";
3
2
  import { applyOverrides, Override } from "src/application/utils/overrides";
4
3
  import { getAtomStore } from "src/atoms/atomStore/atomStore";
4
+ import { identifyingPrefixAtom } from "src/atoms/envive/enviveConfig";
5
5
  import {
6
6
  colorsConfigAtom,
7
7
  frontendConfigAtom,
@@ -16,7 +16,7 @@ import {
16
16
  } from "src/contexts/types";
17
17
 
18
18
  type CustomizableFrontendConfig = {
19
- orgUIConfig: OrgUIConfig;
19
+ orgUIConfig: OrgUIConfig | undefined;
20
20
  colorsConfig: ColorMapping;
21
21
  mountingConfigs: Record<string, WidgetMountingConfig>;
22
22
  widgetConfigs: Record<string, WidgetConfig>;
@@ -40,7 +40,8 @@ class WindowFrontendConfigService {
40
40
  this.isInitialized = true;
41
41
 
42
42
  try {
43
- const identifyingPrefix = EnvironmentService.getIdentifyingPrefix();
43
+ const atomStore = getAtomStore();
44
+ const identifyingPrefix = atomStore.get(identifyingPrefixAtom);
44
45
  if (!window[identifyingPrefix]) {
45
46
  window[identifyingPrefix] = {} as Window[typeof identifyingPrefix];
46
47
  }
@@ -99,7 +100,9 @@ class WindowFrontendConfigService {
99
100
  }
100
101
 
101
102
  // Update the atoms with the new frontend config(s)
102
- atomStore.set(orgUIConfigAtom, currentConfig.orgUIConfig);
103
+ if (currentConfig.orgUIConfig) {
104
+ atomStore.set(orgUIConfigAtom, currentConfig.orgUIConfig);
105
+ }
103
106
  atomStore.set(colorsConfigAtom, currentConfig.colorsConfig);
104
107
  // Write to the frontendConfigAtom to update the mountingConfigs and widgetConfigs
105
108
  // This is the only way to update the mountingConfigs and widgetConfigs
@@ -1,11 +1,15 @@
1
- import { ContextEnvEnum, ContextSourceEnum } from '@spiffy-ai/commerce-api-client';
2
- import { atom } from 'jotai';
3
- import { atomWithStorage } from 'jotai/utils';
4
- import { VariantInfo } from 'src/application/models';
5
- import { UserIdentityService } from 'src/application/service/userIdentityService';
6
- import { variantInfoAtom } from 'src/atoms/app/variant';
7
- import { orgIdAtom, orgShortNameAtom, sourceAtom } from 'src/atoms/org/org';
8
- import { v4 as uuid } from 'uuid';
1
+ import {
2
+ ContextEnvEnum,
3
+ ContextSourceEnum,
4
+ } from "@spiffy-ai/commerce-api-client";
5
+ import { atom } from "jotai";
6
+ import { atomWithStorage } from "jotai/utils";
7
+ import { VariantInfo } from "src/application/models";
8
+ import { UserIdentityService } from "src/application/service/userIdentityService";
9
+ import { variantInfoAtom } from "src/atoms/app/variant";
10
+ import { orgIdAtom, orgShortNameAtom } from "src/atoms/org/org";
11
+ import { v4 as uuid } from "uuid";
12
+ import { contextSourceAtom } from "../envive/enviveConfig";
9
13
 
10
14
  export interface AppDetails {
11
15
  orgId: string;
@@ -17,7 +21,7 @@ export interface AppDetails {
17
21
  variantInfo: VariantInfo;
18
22
  }
19
23
 
20
- export { variantInfoAtom } from './variant';
24
+ export { variantInfoAtom } from "./variant";
21
25
 
22
26
  const internalUserIdAtom = atom<string | undefined>(undefined);
23
27
 
@@ -33,25 +37,30 @@ export const userIdAtom = atom(
33
37
  },
34
38
  (_, set, value: string | undefined) => {
35
39
  set(internalUserIdAtom, value);
36
- },
40
+ }
37
41
  );
38
42
  export const appSourceAtom = atom<ContextSourceEnum>(
39
- (get): ContextSourceEnum => get(sourceAtom) ?? ContextSourceEnum.App,
43
+ (get): ContextSourceEnum => get(contextSourceAtom) ?? ContextSourceEnum.App
40
44
  );
41
45
  export const envAtom = atom<ContextEnvEnum>(ContextEnvEnum.Dev);
42
- export const chatIdAtom = atomWithStorage<string>('v1-spiffy-chat-session-id', uuid(), undefined, {
43
- getOnInit: true,
44
- });
46
+ export const chatIdAtom = atomWithStorage<string>(
47
+ "v1-spiffy-chat-session-id",
48
+ uuid(),
49
+ undefined,
50
+ {
51
+ getOnInit: true,
52
+ }
53
+ );
45
54
 
46
55
  export const appDetailsAtom = atom(
47
56
  (get): AppDetails => ({
48
- orgId: get(orgIdAtom),
57
+ orgId: get(orgIdAtom) ?? "",
49
58
  // TODO: orgShortName should be available when this atom is created
50
- orgShortName: get(orgShortNameAtom) ?? 'spiffy-ai',
59
+ orgShortName: get(orgShortNameAtom) ?? "spiffy-ai",
51
60
  chatId: get(chatIdAtom),
52
61
  userId: get(userIdAtom),
53
62
  source: get(appSourceAtom),
54
63
  env: get(envAtom),
55
64
  variantInfo: get(variantInfoAtom),
56
- }),
65
+ })
57
66
  );
@@ -174,6 +174,7 @@ export const supportedEventAtom = atom(
174
174
 
175
175
  // TODO: clean up this logic & the feature gate when we've fully rolled out
176
176
  if (
177
+ featureFlagService &&
177
178
  !featureFlagService.isFeatureGateEnabled(
178
179
  FeatureGates.IsNonShapewearEnabled
179
180
  ) &&
@@ -71,7 +71,7 @@ export const createResponsePayload = ({
71
71
  const atomStore = getAtomStore();
72
72
  const context = atomStore.get(appDetailsAtom);
73
73
  const featureFlagService = atomStore.get(featureFlagServiceAtom);
74
- const featureFlags = featureFlagService.getFeatureFlags();
74
+ const featureFlags = featureFlagService?.getFeatureFlags() || {};
75
75
  return {
76
76
  id: uuid(),
77
77
  context,
@@ -0,0 +1,81 @@
1
+ import Logger from "src/application/logging/logger";
2
+ import { atom } from "jotai";
3
+ import { EnviveConfig } from "src/contexts/types";
4
+ import { ContextSourceEnum } from "@spiffy-ai/commerce-api-client";
5
+ import { LocalStorageService } from "src/application/service";
6
+
7
+ const internalEnviveConfigAtom = atom<EnviveConfig | undefined>(undefined);
8
+
9
+ export const enviveConfigAtom = atom(
10
+ (get) => {
11
+ const config = get(internalEnviveConfigAtom);
12
+ Logger.logDebug(
13
+ "enviveConfig.ts: Accessing internalEnviveConfigAtom",
14
+ config
15
+ );
16
+ return config; // Return undefined if not set instead of throwing
17
+ },
18
+ (_, set, value: EnviveConfig) => {
19
+ set(internalEnviveConfigAtom, value);
20
+ }
21
+ );
22
+
23
+ export const amplitudeApiKeyAtom = atom((get) => {
24
+ const config = get(enviveConfigAtom);
25
+ return config?.amplitudeApiKey;
26
+ });
27
+ export const dataResidencyAtom = atom((get) => {
28
+ const config = get(enviveConfigAtom);
29
+ return config?.dataResidency;
30
+ });
31
+ export const envAtom = atom((get) => {
32
+ const config = get(enviveConfigAtom);
33
+ return config?.env;
34
+ });
35
+ export const baseUrlAtom = atom((get) => {
36
+ const config = get(enviveConfigAtom);
37
+ return config?.baseUrl || "https://commerce-api.dev.spiffy.ai";
38
+ });
39
+ export const reactAppNameAtom = atom((get) => {
40
+ const config = get(enviveConfigAtom);
41
+ return config?.reactAppName;
42
+ });
43
+ export const cdnUrlAtom = atom((get) => {
44
+ const config = get(enviveConfigAtom);
45
+ return config?.cdnUrl;
46
+ });
47
+
48
+ export const contextSourceAtom = atom((get) => {
49
+ const config = get(enviveConfigAtom);
50
+
51
+ if (window.IS_STORYBOOK) {
52
+ return ContextSourceEnum.Test;
53
+ }
54
+
55
+ if (config?.contextSource) {
56
+ return config.contextSource as ContextSourceEnum;
57
+ }
58
+
59
+ const spiffyOnFeatureFlagSet = LocalStorageService.getSpiffyOnFeatureFlag();
60
+ if (spiffyOnFeatureFlagSet === "true") {
61
+ return ContextSourceEnum.Playground;
62
+ }
63
+
64
+ return ContextSourceEnum.App;
65
+ });
66
+
67
+ export const orgLevelApiKeyAtom = atom((get) => {
68
+ const config = get(enviveConfigAtom);
69
+ Logger.logDebug("enviveConfig.ts: Accessing orgLevelApiKey", config);
70
+ return config?.orgLevelApiKey;
71
+ });
72
+ export const orgShortNameAtom = atom((get) => {
73
+ const config = get(enviveConfigAtom);
74
+ Logger.logDebug("enviveConfig.ts: Accessing orgShortName", config);
75
+ return config?.orgShortName;
76
+ });
77
+ export const identifyingPrefixAtom = atom((get) => {
78
+ const config = get(enviveConfigAtom);
79
+ Logger.logDebug("enviveConfig.ts: Accessing identifyingPrefix", config);
80
+ return config?.identifyingPrefix || "spiffy";
81
+ });
@@ -1,27 +1,56 @@
1
- import { atom } from 'jotai';
2
- import { ColorMapping } from 'src/application/models/colorsConfig';
3
- import { FrontendConfig } from 'src/application/models/frontendConfig';
4
- import { getOrgInfo } from 'src/application/models/supportedOrgs';
5
- import { orgShortNameAtom } from 'src/atoms/org/org';
1
+ import { atom } from "jotai";
2
+ import { ColorMapping } from "src/application/models/colorsConfig";
3
+ import { FrontendConfig } from "src/application/models/frontendConfig";
4
+ import { getOrgInfo } from "src/application/models/supportedOrgs";
5
+ import { orgShortNameAtom } from "src/atoms/org/org";
6
6
 
7
- const internalGraphQLColorsConfigAtom = atom<ColorMapping | undefined>(undefined);
8
- const internalGraphQLFrontendConfigAtom = atom<FrontendConfig | undefined>(undefined);
7
+ export const internalGraphQLColorsConfigAtom = atom<ColorMapping | undefined>(
8
+ undefined
9
+ );
10
+ const internalGraphQLFrontendConfigAtom = atom<FrontendConfig | undefined>(
11
+ undefined
12
+ );
9
13
 
10
14
  export const colorsConfigAtom = atom(
11
15
  async (get) => {
12
16
  const colors = get(internalGraphQLColorsConfigAtom);
13
- const orgInfo = await getOrgInfo(get(orgShortNameAtom));
17
+ const orgShortName = get(orgShortNameAtom);
18
+ if (!orgShortName) {
19
+ return colors;
20
+ }
21
+ const orgInfo = await getOrgInfo(orgShortName);
14
22
  const orgUIConfigColors = orgInfo.orgColors();
15
- return { ...orgUIConfigColors, ...colors };
23
+
24
+ // If we have GraphQL colors, merge them with org colors (GraphQL takes priority)
25
+ if (
26
+ colors &&
27
+ orgUIConfigColors &&
28
+ Object.keys(orgUIConfigColors).length > 0
29
+ ) {
30
+ return { ...orgUIConfigColors, ...colors } as ColorMapping;
31
+ }
32
+
33
+ // If we have GraphQL colors but no org colors, return GraphQL colors
34
+ if (colors) {
35
+ return colors;
36
+ }
37
+
38
+ // If we have org colors but no GraphQL colors, return org colors
39
+ if (orgUIConfigColors && Object.keys(orgUIConfigColors).length > 0) {
40
+ return orgUIConfigColors as ColorMapping;
41
+ }
42
+
43
+ // Fallback to undefined if neither are available
44
+ return undefined;
16
45
  },
17
46
  (_, set, value: ColorMapping | undefined) => {
18
47
  set(internalGraphQLColorsConfigAtom, value);
19
- },
48
+ }
20
49
  );
21
50
 
22
51
  export const frontendConfigAtom = atom(
23
52
  (get) => get(internalGraphQLFrontendConfigAtom),
24
53
  (_, set, value: FrontendConfig | undefined) => {
25
54
  set(internalGraphQLFrontendConfigAtom, value);
26
- },
55
+ }
27
56
  );
@@ -1,7 +1,7 @@
1
- export * from './customerService';
2
- export * from './graphqlConfig';
3
- export * from './merchantCss';
4
- export * from './org';
5
- export * from './orgAnalyticsConfig';
6
- export * from './orgPageConfig';
7
- export * from './orgUIConfig';
1
+ export * from "./customerService";
2
+ export * from "./graphqlConfig";
3
+ export * from "./merchantCss";
4
+ export * from "./org";
5
+ export * from "./orgAnalyticsConfig";
6
+ export * from "./orgPageConfig";
7
+ export * from "./orgUIConfig";