@envive-ai/react-hooks 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/LICENSE +2 -0
  2. package/README.md +2 -0
  3. package/dist/GridInsertionService-CEYo9pGj.js +22 -0
  4. package/dist/GridInsertionService-CS_bnPh0.cjs +28 -0
  5. package/dist/bandolier-Ble8jEa8.js +1221 -0
  6. package/dist/bandolier-Bm2xAt_j.cjs +1221 -0
  7. package/dist/carpe-Da7b-LCW.cjs +599 -0
  8. package/dist/carpe-W13mhRRP.js +597 -0
  9. package/dist/cdnService-CZ-aXcY6.cjs +23 -0
  10. package/dist/cdnService-zQfKk3Eb.js +18 -0
  11. package/dist/chatElementDisplayLocation-CX8fuNao.d.cts +239 -0
  12. package/dist/chatElementDisplayLocation-CwptS9tx.d.ts +239 -0
  13. package/dist/chunk-CUT6urMc.cjs +30 -0
  14. package/dist/contexts/index.cjs +13 -0
  15. package/dist/contexts/index.d.cts +65 -0
  16. package/dist/contexts/index.d.ts +66 -0
  17. package/dist/contexts/index.js +7 -0
  18. package/dist/contexts-BRjfVq_k.js +5064 -0
  19. package/dist/contexts-BYArqZtK.cjs +5164 -0
  20. package/dist/coterie-3y0D9ko4.cjs +229 -0
  21. package/dist/coterie-DOWcJAYv.js +229 -0
  22. package/dist/custservice-types-CFIFwZ-r.js +10 -0
  23. package/dist/custservice-types-CkfxZiHY.cjs +16 -0
  24. package/dist/default-C2fEZKXk.js +175 -0
  25. package/dist/default-CBUq6Q6G.cjs +4 -0
  26. package/dist/default-CGIFZK6m.js +4 -0
  27. package/dist/default-D_KPZdPJ.cjs +198 -0
  28. package/dist/divIds-Bss-btao.js +49 -0
  29. package/dist/divIds-DnZNd7rA.cjs +223 -0
  30. package/dist/dreamlandBaby-DCIsuU9R.cjs +338 -0
  31. package/dist/dreamlandBaby-DvSaZGrz.js +338 -0
  32. package/dist/entrypoints-D_JUvkgy.cjs +18 -0
  33. package/dist/entrypoints-YLQsbBRD.js +6 -0
  34. package/dist/enviveConfigContext-CUGLpPGU.js +34 -0
  35. package/dist/enviveConfigContext-Dfr2VH6u.cjs +48 -0
  36. package/dist/fiveCbd-B1SESMCO.js +605 -0
  37. package/dist/fiveCbd-CkOlVby_.cjs +605 -0
  38. package/dist/forLoveAndLemons-CfYPMnKS.cjs +660 -0
  39. package/dist/forLoveAndLemons-DmwYZIk0.js +658 -0
  40. package/dist/greenpan-Bsl3ir59.cjs +389 -0
  41. package/dist/greenpan-BtOi45lf.js +389 -0
  42. package/dist/grooveLife-6_dtYsRk.js +334 -0
  43. package/dist/grooveLife-Cmm1PSCL.cjs +334 -0
  44. package/dist/homegrownCannabis-C-kw-74X.js +400 -0
  45. package/dist/homegrownCannabis-CO0uY_mp.cjs +400 -0
  46. package/dist/hooks/index.cjs +16 -0
  47. package/dist/hooks/index.d.cts +357 -0
  48. package/dist/hooks/index.d.ts +357 -0
  49. package/dist/hooks/index.js +7 -0
  50. package/dist/jackArcher-CLVmwwpI.js +719 -0
  51. package/dist/jackArcher-DdYTIzAV.cjs +719 -0
  52. package/dist/jordanCraig-Am-Oor-O.js +1778 -0
  53. package/dist/jordanCraig-_u3-w4Hp.cjs +1778 -0
  54. package/dist/kindredBravely-CWovIDSc.cjs +482 -0
  55. package/dist/kindredBravely-eWp-ud_E.js +482 -0
  56. package/dist/kutFromTheKloth-BMV4BuGQ.js +361 -0
  57. package/dist/kutFromTheKloth-Q589bAOC.cjs +361 -0
  58. package/dist/larryAndSerges-BMUlTgI-.js +252 -0
  59. package/dist/larryAndSerges-CEau764j.cjs +252 -0
  60. package/dist/leapsAndRebounds-DGMzPO7T.js +352 -0
  61. package/dist/leapsAndRebounds-DHAtRTJD.cjs +352 -0
  62. package/dist/logger-Dln20ans.cjs +25 -0
  63. package/dist/logger-pdEEY8T2.js +19 -0
  64. package/dist/longevityrx-CZW8Hxzi.cjs +312 -0
  65. package/dist/longevityrx-jH2JLhNH.js +312 -0
  66. package/dist/lookOptic-BGXP5P_V.js +274 -0
  67. package/dist/lookOptic-CA6RwLbG.cjs +274 -0
  68. package/dist/mantraBrand-Cm9_PBCT.js +742 -0
  69. package/dist/mantraBrand-DByNqpnL.cjs +742 -0
  70. package/dist/medterra-B0wxj_PV.js +575 -0
  71. package/dist/medterra-DnPN2ksU.cjs +575 -0
  72. package/dist/modells-Bmz8Ag5M.js +476 -0
  73. package/dist/modells-CoYgkLSp.cjs +476 -0
  74. package/dist/models-DHdb7QWn.js +51 -0
  75. package/dist/models-ixxUsGL_.cjs +69 -0
  76. package/dist/pressedFloral-DSKs_oVG.js +653 -0
  77. package/dist/pressedFloral-DjBiSoUl.cjs +653 -0
  78. package/dist/skinPerfection-B_3xzVNS.cjs +326 -0
  79. package/dist/skinPerfection-IDrBuAPt.js +326 -0
  80. package/dist/snapSupplements-BJk5T5ba.js +277 -0
  81. package/dist/snapSupplements-BStTsdOZ.cjs +277 -0
  82. package/dist/socialProofClasses-Bhv2Vulz.js +9 -0
  83. package/dist/socialProofClasses-CrQBWdSA.cjs +39 -0
  84. package/dist/spanx-BYg0LE7R.js +653 -0
  85. package/dist/spanx-LwU1zSzq.cjs +655 -0
  86. package/dist/spanxStaging-CfSmuKYB.js +837 -0
  87. package/dist/spanxStaging-OZLV9qix.cjs +840 -0
  88. package/dist/suggestionBarV2-types-BllzwsBD.js +34 -0
  89. package/dist/suggestionBarV2-types-CaovchMP.cjs +46 -0
  90. package/dist/supergoop-BqPXDnKk.cjs +327 -0
  91. package/dist/supergoop-CIlrHND_.js +325 -0
  92. package/dist/types-C4T5UOIW.cjs +230 -0
  93. package/dist/types-CYNvLeSA.js +176 -0
  94. package/dist/uniqueVintage-B30mOqbH.cjs +1205 -0
  95. package/dist/uniqueVintage-CFueJOhO.js +1203 -0
  96. package/dist/venaCbd-DHGZy49P.cjs +357 -0
  97. package/dist/venaCbd-T0CqVD4k.js +357 -0
  98. package/dist/westonJonBoucher-BdMzs_Yg.cjs +414 -0
  99. package/dist/westonJonBoucher-b4TCQ4ev.js +414 -0
  100. package/dist/wineEnthusiast-BLGlOjgr.cjs +932 -0
  101. package/dist/wineEnthusiast-BqR0i_54.js +932 -0
  102. package/dist/wolfMattress-CyyO-LoC.js +362 -0
  103. package/dist/wolfMattress-DNGZOivg.cjs +362 -0
  104. package/dist/wolfTactical-3Mm2fvVF.js +341 -0
  105. package/dist/wolfTactical-BmXYlFjr.cjs +341 -0
  106. package/package.json +66 -0
  107. package/src/adapters/amplitude/amplitudeAdapter.ts +454 -0
  108. package/src/adapters/amplitude/index.ts +2 -0
  109. package/src/adapters/amplitude/stubAmplitudeAdapter.ts +34 -0
  110. package/src/adapters/spiffy/commerce/api.ts +596 -0
  111. package/src/adapters/spiffy/commerce/exceptions/sessionExceptions.ts +6 -0
  112. package/src/adapters/spiffy/commerce/exceptions/unsupportedProductExceptions.ts +6 -0
  113. package/src/adapters/spiffy/commerce/graphql.ts +184 -0
  114. package/src/application/config/generalStaticConfig.ts +37 -0
  115. package/src/application/logging/logger.ts +29 -0
  116. package/src/application/models/api/context.ts +4 -0
  117. package/src/application/models/api/generationParams.ts +4 -0
  118. package/src/application/models/api/nextMessageRequest.ts +11 -0
  119. package/src/application/models/api/orgAnalyticsConfig.ts +19 -0
  120. package/src/application/models/api/orgConfigResults.ts +40 -0
  121. package/src/application/models/api/organizationConfig.ts +12 -0
  122. package/src/application/models/api/response.ts +132 -0
  123. package/src/application/models/api/responseGenerics.ts +67 -0
  124. package/src/application/models/api/search.ts +26 -0
  125. package/src/application/models/api/suggestion.ts +4 -0
  126. package/src/application/models/api/supportedEventRequest.ts +8 -0
  127. package/src/application/models/api/userEvent.ts +101 -0
  128. package/src/application/models/cachedValue.ts +8 -0
  129. package/src/application/models/chatElementDisplayLocation.ts +22 -0
  130. package/src/application/models/clientDetails.ts +18 -0
  131. package/src/application/models/colorsConfig.ts +28 -0
  132. package/src/application/models/conversationalSearchIds.ts +5 -0
  133. package/src/application/models/dataLayer.ts +45 -0
  134. package/src/application/models/domMutationContinuation.ts +7 -0
  135. package/src/application/models/domObservationStrategy.ts +9 -0
  136. package/src/application/models/events.ts +5 -0
  137. package/src/application/models/featureGates.ts +23 -0
  138. package/src/application/models/frontendConfig.ts +14 -0
  139. package/src/application/models/googleAnalyticsEvents.ts +8 -0
  140. package/src/application/models/graphql/index.ts +2 -0
  141. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +37 -0
  142. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +103 -0
  143. package/src/application/models/graphql/queries/getMerchantOrgIdQuery.ts +11 -0
  144. package/src/application/models/guards/api/index.ts +12 -0
  145. package/src/application/models/guards/api/isApiFormResponse.ts +90 -0
  146. package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +37 -0
  147. package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +155 -0
  148. package/src/application/models/guards/api/isApiOrgConfigResults.ts +277 -0
  149. package/src/application/models/guards/api/isApiOrganizationConfig.ts +207 -0
  150. package/src/application/models/guards/api/isApiPDPEventAttributes.ts +21 -0
  151. package/src/application/models/guards/api/isApiPLPEventAttributes.ts +41 -0
  152. package/src/application/models/guards/api/isApiPageResponseAttributes.ts +21 -0
  153. package/src/application/models/guards/api/isApiProductResponseAttributes.ts +85 -0
  154. package/src/application/models/guards/api/isApiProductSearchAttributes.ts +23 -0
  155. package/src/application/models/guards/api/isApiProductSearchFilterAttributes.ts +15 -0
  156. package/src/application/models/guards/api/isApiQueryTypedEventAttributes.ts +4 -0
  157. package/src/application/models/guards/api/isApiResponse.ts +39 -0
  158. package/src/application/models/guards/api/isApiReviewResponseAttributes.ts +30 -0
  159. package/src/application/models/guards/api/isApiReviewRichInformation.ts +37 -0
  160. package/src/application/models/guards/api/isApiSearchEventAttributes.ts +28 -0
  161. package/src/application/models/guards/api/isApiSuggestion.ts +36 -0
  162. package/src/application/models/guards/api/isApiSuggestionClickedEventAttributes.ts +9 -0
  163. package/src/application/models/guards/api/isApiTextResponseAttributes.ts +9 -0
  164. package/src/application/models/guards/api/isApiUserEvent.ts +25 -0
  165. package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +50 -0
  166. package/src/application/models/guards/isBaseEcommerceEvent.ts +17 -0
  167. package/src/application/models/guards/isGA4EcommerceEvent.ts +17 -0
  168. package/src/application/models/guards/isLegacyUAEcommerceEvent.ts +17 -0
  169. package/src/application/models/guards/isMobilePLPChatPlacementParameter.ts +11 -0
  170. package/src/application/models/guards/isSpanxTakeAQuizCtaParameter.ts +4 -0
  171. package/src/application/models/guards/isVariantInfo.ts +37 -0
  172. package/src/application/models/guards/utils.ts +43 -0
  173. package/src/application/models/index.ts +20 -0
  174. package/src/application/models/localStorageEventListener.ts +4 -0
  175. package/src/application/models/message.ts +146 -0
  176. package/src/application/models/mobilePLPChatPlacementParameter.ts +3 -0
  177. package/src/application/models/orgsEnum.ts +36 -0
  178. package/src/application/models/productExperiment.ts +5 -0
  179. package/src/application/models/spanxTakeAQuizCtaParameter.ts +4 -0
  180. package/src/application/models/spiffyWidgets.ts +16 -0
  181. package/src/application/models/supportedOrgs.ts +137 -0
  182. package/src/application/models/utilityTypes/camelCase.ts +87 -0
  183. package/src/application/models/utilityTypes/camelCasedPropertiesDeep.ts +80 -0
  184. package/src/application/models/utilityTypes/delimiterCase.ts +121 -0
  185. package/src/application/models/utilityTypes/delimiterCasedPropertiesDeep.ts +98 -0
  186. package/src/application/models/utilityTypes/index.ts +1 -0
  187. package/src/application/models/utilityTypes/internal.ts +93 -0
  188. package/src/application/models/utilityTypes/primitive.ts +8 -0
  189. package/src/application/models/utilityTypes/snakeCasedPropertiesDeep.ts +49 -0
  190. package/src/application/models/utilityTypes/splitWords.ts +76 -0
  191. package/src/application/models/utilityTypes/trim.ts +28 -0
  192. package/src/application/models/utilityTypes/unknownArray.ts +25 -0
  193. package/src/application/models/utils/snakeToCamelTransformer.ts +90 -0
  194. package/src/application/models/utils/stringToFulfillmentDisplayStatusEnumValue.ts +68 -0
  195. package/src/application/models/validators/validateGraphQLColorsConfig.ts +29 -0
  196. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +594 -0
  197. package/src/application/models/validators/validateGraphQLOrgId.ts +7 -0
  198. package/src/application/models/validators/validateMobilePLPChatPlacementParameter.ts +14 -0
  199. package/src/application/models/validators/validateOrgConfigResults.ts +47 -0
  200. package/src/application/models/validators/validateOrganizationConfig.ts +37 -0
  201. package/src/application/models/validators/validateResponse.ts +187 -0
  202. package/src/application/models/validators/validateSuggestion.ts +16 -0
  203. package/src/application/models/validators/validateUserEvent.ts +110 -0
  204. package/src/application/models/variantInfo/index.ts +1 -0
  205. package/src/application/models/variantInfo/pageVisitInfo.ts +6 -0
  206. package/src/application/models/variantInfo/plpInfo.ts +3 -0
  207. package/src/application/models/variantInfo/productInfo.ts +5 -0
  208. package/src/application/models/variantInfo/variantInfo.ts +23 -0
  209. package/src/application/service/cachingService.ts +84 -0
  210. package/src/application/service/cdnService.ts +18 -0
  211. package/src/application/service/customerService/index.ts +8 -0
  212. package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +15 -0
  213. package/src/application/service/customerService/types.ts +31 -0
  214. package/src/application/service/domMutationObserver.ts +320 -0
  215. package/src/application/service/domMutations/GridInsertionService.ts +123 -0
  216. package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +99 -0
  217. package/src/application/service/domMutations/domInsertionService.ts +90 -0
  218. package/src/application/service/domMutations/domMutationListener.ts +15 -0
  219. package/src/application/service/domMutations/domMutationListenerState.ts +52 -0
  220. package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +41 -0
  221. package/src/application/service/domMutations/gladly/gladlyListener.ts +61 -0
  222. package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +41 -0
  223. package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +119 -0
  224. package/src/application/service/environmentService.ts +51 -0
  225. package/src/application/service/featureFlagService.ts +130 -0
  226. package/src/application/service/kustomerIntegrationService.ts +111 -0
  227. package/src/application/service/localStorageService.ts +77 -0
  228. package/src/application/service/pageVariantService.ts +779 -0
  229. package/src/application/service/searchService.ts +140 -0
  230. package/src/application/service/sessionStorageService.ts +27 -0
  231. package/src/application/service/shopifyUrlService.ts +63 -0
  232. package/src/application/service/userIdentityService.ts +114 -0
  233. package/src/application/service/windowChatToggleService.ts +71 -0
  234. package/src/application/service/windowDataLayerService.ts +181 -0
  235. package/src/application/service/windowFrontendConfigService.ts +104 -0
  236. package/src/application/utils/__tests__/divideArrays.test.ts +14 -0
  237. package/src/application/utils/analyticsUtils.ts +110 -0
  238. package/src/application/utils/coreContextToApiContext.ts +11 -0
  239. package/src/application/utils/coreUserEventToApiUserEvent.ts +106 -0
  240. package/src/application/utils/divideArray.ts +7 -0
  241. package/src/application/utils/domObserver.ts +96 -0
  242. package/src/application/utils/elementObserver.ts +246 -0
  243. package/src/application/utils/imageFilter.ts +12 -0
  244. package/src/application/utils/index.ts +3 -0
  245. package/src/application/utils/merchantUtils.ts +16 -0
  246. package/src/application/utils/messageFromFormSubmittedEvent.ts +31 -0
  247. package/src/application/utils/messageFromQueryEvent.ts +38 -0
  248. package/src/application/utils/messageFromResponse.ts +133 -0
  249. package/src/application/utils/messageFromSuggestionEvent.ts +32 -0
  250. package/src/application/utils/mouseEventTypes.ts +1 -0
  251. package/src/application/utils/mutationHelper.ts +51 -0
  252. package/src/application/utils/nextMessageRequestToApiRequest.ts +31 -0
  253. package/src/application/utils/nodeSelector.ts +133 -0
  254. package/src/application/utils/overrides.ts +196 -0
  255. package/src/application/utils/stringUtils.ts +55 -0
  256. package/src/application/utils/supportedEventRequestToApiRequest.ts +12 -0
  257. package/src/application/utils/urlsParser.ts +53 -0
  258. package/src/application/utils/validation.ts +5 -0
  259. package/src/atoms/app/index.ts +57 -0
  260. package/src/atoms/app/variant.ts +261 -0
  261. package/src/atoms/atomStore.ts +34 -0
  262. package/src/atoms/chat/chatState.ts +44 -0
  263. package/src/atoms/chat/form.ts +19 -0
  264. package/src/atoms/chat/index.ts +38 -0
  265. package/src/atoms/chat/lastMessage.ts +11 -0
  266. package/src/atoms/chat/messageQueue.ts +65 -0
  267. package/src/atoms/chat/performanceMetrics.ts +84 -0
  268. package/src/atoms/chat/renderedWidgetRefs.ts +28 -0
  269. package/src/atoms/chat/replies.ts +51 -0
  270. package/src/atoms/chat/suggestions.ts +36 -0
  271. package/src/atoms/globalSearch.ts +12 -0
  272. package/src/atoms/index.ts +5 -0
  273. package/src/atoms/org/customerService.ts +13 -0
  274. package/src/atoms/org/graphqlConfig.ts +27 -0
  275. package/src/atoms/org/index.ts +7 -0
  276. package/src/atoms/org/merchantCss.ts +44 -0
  277. package/src/atoms/org/org.ts +256 -0
  278. package/src/atoms/org/orgAnalyticsConfig.ts +28 -0
  279. package/src/atoms/org/orgPageConfig.ts +38 -0
  280. package/src/atoms/org/orgUIConfig.ts +122 -0
  281. package/src/atoms/search/chatSearch.ts +293 -0
  282. package/src/atoms/search/index.ts +2 -0
  283. package/src/atoms/search/productFilters.ts +207 -0
  284. package/src/atoms/search/productSorter.ts +23 -0
  285. package/src/atoms/search/searchAPI.ts +194 -0
  286. package/src/atoms/search/types.ts +55 -0
  287. package/src/atoms/search/utils.ts +18 -0
  288. package/src/config/divIds.ts +27 -0
  289. package/src/config/locators/components/chat/entrypoints.ts +13 -0
  290. package/src/config/locators/components/chat/index.ts +23 -0
  291. package/src/config/locators/components/chat/preview.ts +13 -0
  292. package/src/config/locators/components/chat/variants/index.ts +16 -0
  293. package/src/config/locators/components/common/buttons.ts +6 -0
  294. package/src/config/locators/components/common/cards.ts +18 -0
  295. package/src/config/locators/components/common/links.ts +1 -0
  296. package/src/config/locators/components/common/tables.ts +2 -0
  297. package/src/config/locators/components/floating-button.ts +2 -0
  298. package/src/config/locators/components/index.ts +3 -0
  299. package/src/config/locators/components/report-issue.ts +21 -0
  300. package/src/config/locators/components/search/index.ts +5 -0
  301. package/src/config/locators/components/shadow-dom.ts +1 -0
  302. package/src/config/locators/embedded.ts +21 -0
  303. package/src/config/locators/index.ts +3 -0
  304. package/src/config/socialProofClasses.ts +17 -0
  305. package/src/contexts/chatContext.tsx +451 -0
  306. package/src/contexts/enviveConfigContext.tsx +70 -0
  307. package/src/contexts/index.ts +4 -0
  308. package/src/contexts/systemSettingsContext.tsx +61 -0
  309. package/src/contexts/types.ts +1059 -0
  310. package/src/enabled-features.ts +83 -0
  311. package/src/events/event-types.ts +11 -0
  312. package/src/events/index.ts +52 -0
  313. package/src/events/registerAnalyticsListeners.ts +49 -0
  314. package/src/extension.ts +63 -0
  315. package/src/hooks/index.ts +22 -0
  316. package/src/hooks/useBlockBackButton.ts +29 -0
  317. package/src/hooks/useChatToggle.ts +66 -0
  318. package/src/hooks/useCustomerSupportHandoff.ts +39 -0
  319. package/src/hooks/useDebounce.ts +17 -0
  320. package/src/hooks/useDynamicVariants.ts +210 -0
  321. package/src/hooks/useElementObserver.ts +245 -0
  322. package/src/hooks/useFileUpload.ts +61 -0
  323. package/src/hooks/useGrabAndScroll.ts +133 -0
  324. package/src/hooks/useHideElements.ts +82 -0
  325. package/src/hooks/useHorizontalScrollAnimation.ts +115 -0
  326. package/src/hooks/useImageResolver.ts +51 -0
  327. package/src/hooks/useIntersection.ts +28 -0
  328. package/src/hooks/useIsSmallScreen.ts +23 -0
  329. package/src/hooks/useMessageFilter.ts +49 -0
  330. package/src/hooks/useMessageScrollObserver.ts +47 -0
  331. package/src/hooks/useReducedMotionWithOverride.ts +15 -0
  332. package/src/hooks/useSearch.tsx +433 -0
  333. package/src/hooks/useSnapCalculator.ts +38 -0
  334. package/src/hooks/useSnapControl.ts +155 -0
  335. package/src/hooks/useSystemSettingsContext.ts +12 -0
  336. package/src/hooks/useTrackComponentVisibleEvent.ts +52 -0
  337. package/src/hooks/useUpdateAnalyticsProps.ts +56 -0
  338. package/src/hooks/utils.ts +153 -0
  339. package/src/index.ts +31 -0
  340. package/src/initialize.ts +163 -0
  341. package/src/interceptors/types.ts +6 -0
  342. package/src/interceptors/useFormEscalation.ts +40 -0
  343. package/src/interceptors/useMessageInterceptor.ts +32 -0
  344. package/src/main.ts +85 -0
  345. package/src/main.tsx +123 -0
  346. package/src/merchants/bandolier/bandolier.ts +1389 -0
  347. package/src/merchants/carpe/carpe.ts +656 -0
  348. package/src/merchants/coterie/coterie.ts +280 -0
  349. package/src/merchants/default.ts +193 -0
  350. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +375 -0
  351. package/src/merchants/fiveCbd/fiveCbd.ts +697 -0
  352. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +721 -0
  353. package/src/merchants/greenpan/greenpan.ts +440 -0
  354. package/src/merchants/grooveLife/grooveLife.ts +386 -0
  355. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +468 -0
  356. package/src/merchants/init-merchant.sh +53 -0
  357. package/src/merchants/jackArcher/jackArcher.ts +974 -0
  358. package/src/merchants/jordanCraig/jordanCraig.ts +1927 -0
  359. package/src/merchants/kindredBravely/kindredBravely.ts +529 -0
  360. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +418 -0
  361. package/src/merchants/larryAndSerges/larryAndSerges.ts +314 -0
  362. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +424 -0
  363. package/src/merchants/longevityrx/longevityrx.ts +368 -0
  364. package/src/merchants/lookOptic/lookOptic.ts +323 -0
  365. package/src/merchants/mantraBrand/mantraBrand.ts +838 -0
  366. package/src/merchants/medterra/medterra.ts +670 -0
  367. package/src/merchants/modells/modells.ts +546 -0
  368. package/src/merchants/pressedFloral/pressedFloral.ts +734 -0
  369. package/src/merchants/skinPerfection/skinPerfection.ts +379 -0
  370. package/src/merchants/snapSupplements/snapSupplements.ts +325 -0
  371. package/src/merchants/spanx/spanx.ts +810 -0
  372. package/src/merchants/spanx/spanxStaging.ts +942 -0
  373. package/src/merchants/supergoop/supergoop.ts +376 -0
  374. package/src/merchants/uniqueVintage/uniqueVintage.ts +1314 -0
  375. package/src/merchants/uniqueVintage/views/useUniqueVintageChatSearch.ts +147 -0
  376. package/src/merchants/venaCbd/venaCbd.ts +410 -0
  377. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +473 -0
  378. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +990 -0
  379. package/src/merchants/wolfMattress/wolfMattress.ts +411 -0
  380. package/src/merchants/wolfTactical/wolfTactical.ts +389 -0
  381. package/src/types/custservice-types.ts +28 -0
  382. package/src/types/search-filter-types.ts +111 -0
  383. package/src/types/suggestionBarV2-types.ts +4 -0
  384. package/src/types/test-types.ts +3 -0
  385. package/src/types.ts +66 -0
@@ -0,0 +1,1221 @@
1
+ import "./logger-pdEEY8T2.js";
2
+ import { FeatureGates } from "./models-DHdb7QWn.js";
3
+ import { ColorNames, CustomerServiceIntegrationMode, CustomerServiceType, OrgShortName, PageVariantTestType, WidgetType, colorVar } from "./types-CYNvLeSA.js";
4
+ import "./enviveConfigContext-CUGLpPGU.js";
5
+ import { BOTTOM_REVIEWS_BAR_ID, BOTTOM_SUGGESTION_BAR_TESTID, CHAT_PREVIEW_CONTAINER_ID, CHAT_PREVIEW_TESTID, DOMInsertionType, GLOBAL_SEARCH_ENTRYPOINT_ID, GLOBAL_SEARCH_ENTRYPOINT_TESTID, HOMEPAGE_DESKTOP_GLOBAL_SEARCH_ENTRYPOINT_ID, HOMEPAGE_MOBILE_GLOBAL_SEARCH_ENTRYPOINT_ID, HOMEPAGE_TABLET_GLOBAL_SEARCH_ENTRYPOINT_ID, MOBILE_GLOBAL_SEARCH_ENTRYPOINT_ID, MOBILE_ICON_ONLY_GLOBAL_SEARCH_ENTRYPOINT_ID, PROMPT_CARD_ID, PROMPT_CARD_TESTID, SEARCH_OVERLAY_ENTRYPOINT_ID, SEARCH_OVERLAY_HOST_TESTID, SEARCH_RESULTS_ENTRYPOINT_ID, SEARCH_RESULTS_ENTRYPOINT_TESTID, TABLET_GLOBAL_SEARCH_ENTYPOINT_ID, TOP_SUGGESTION_BAR_PDP_ID, TOP_SUGGESTION_BAR_TESTID } from "./divIds-Bss-btao.js";
6
+ import { GridInsertionType } from "./GridInsertionService-CEYo9pGj.js";
7
+ import { ChatElementDisplayLocation, SuggestionBarLocationForMetrics } from "./suggestionBarV2-types-BllzwsBD.js";
8
+ import { CdnService } from "./cdnService-zQfKk3Eb.js";
9
+ import { defaultOrgUIConfig } from "./default-C2fEZKXk.js";
10
+
11
+ //#region src/merchants/bandolier/bandolier.ts
12
+ const bandolierColors = {
13
+ [ColorNames.TextPrimary]: "#000000",
14
+ [ColorNames.TextSecondary]: "#6C6C6C",
15
+ [ColorNames.TextAccent]: "#AF986E",
16
+ [ColorNames.TextLink]: "#000000",
17
+ [ColorNames.TextLight]: "#FFFFFF",
18
+ [ColorNames.BackgroundPrimary]: "#000000",
19
+ [ColorNames.BackgroundSecondary]: "#ECECEC",
20
+ [ColorNames.BackgroundSecondaryDark]: "#E2E2E2",
21
+ [ColorNames.BackgroundTertiary]: "#ECECEC",
22
+ [ColorNames.BackgroundDark]: "#000000",
23
+ [ColorNames.BackgroundLight]: "#FFFFFF",
24
+ [ColorNames.BackgroundSaturated]: "#CCCCCC",
25
+ [ColorNames.BorderLight]: "#ECECEC",
26
+ [ColorNames.BorderMedium]: "#EAEAEA",
27
+ [ColorNames.BorderDark]: "#6C6C6C",
28
+ [ColorNames.BorderOutline]: "#000000",
29
+ [ColorNames.AccentPrimary]: "#AF986E",
30
+ [ColorNames.AccentSecondary]: "#DCB4AE"
31
+ };
32
+ const bandolierOrgUIConfig = () => {
33
+ const defaultBandolierOrgConfig = defaultOrgUIConfig(OrgShortName.Bandolier);
34
+ return {
35
+ ...defaultBandolierOrgConfig,
36
+ merchantVariantSettings: { dynamicVariants: {
37
+ enabled: false,
38
+ refreshInterval: 400
39
+ } },
40
+ chatMessageConfig: {
41
+ ...defaultBandolierOrgConfig.chatMessageConfig,
42
+ assistantChatTitle: "Ask Maggie",
43
+ variant: "accent"
44
+ },
45
+ chatHeader: {
46
+ ...defaultBandolierOrgConfig.chatHeader,
47
+ imageSrc: CdnService.getAssetURL("bandolier-logo.svg", OrgShortName.Bandolier)
48
+ },
49
+ chatPreviewConfig: {
50
+ ...defaultBandolierOrgConfig.chatPreviewConfig,
51
+ buttonTextColor: colorVar(ColorNames.TextLink),
52
+ buttonBackgroundColor: colorVar(ColorNames.BackgroundSecondary),
53
+ buttonBackgroundHoverColor: colorVar(ColorNames.BackgroundSecondaryDark),
54
+ buttonTextHoverColor: colorVar(ColorNames.TextLink),
55
+ iconFillColor: colorVar(ColorNames.TextAccent),
56
+ copies: {
57
+ pdp: [
58
+ "does this fit my device model?",
59
+ "is this adjustable?",
60
+ "why choose this over a bulky bag?",
61
+ "what do reviewers love most?",
62
+ "can I use this every day?"
63
+ ],
64
+ plp: []
65
+ },
66
+ headerConfig: { ...defaultBandolierOrgConfig.chatPreviewConfig.headerConfig },
67
+ footerConfig: { ...defaultBandolierOrgConfig.chatPreviewConfig.footerConfig }
68
+ },
69
+ floatingEntrypointConfig: {
70
+ ...defaultBandolierOrgConfig.floatingEntrypointConfig,
71
+ showOption: "always",
72
+ expandedColor: colorVar(ColorNames.BackgroundDark),
73
+ expansionText: {
74
+ pdp: "Could this be your perfect everyday essential?",
75
+ plp: "What can we help you find today?"
76
+ }
77
+ },
78
+ productCardConfig: { ...defaultBandolierOrgConfig.productCardConfig },
79
+ pageCardConfig: {
80
+ ...defaultBandolierOrgConfig.pageCardConfig,
81
+ variant: "filled",
82
+ hoverVariant: "lift",
83
+ iconVariant: "primary"
84
+ },
85
+ productReviewConfig: { ...defaultBandolierOrgConfig.productReviewConfig },
86
+ welcomeSectionConfig: {
87
+ ...defaultBandolierOrgConfig.welcomeSectionConfig,
88
+ title: "Welcome to Bandolier AI!",
89
+ colorVariant: "accent",
90
+ subtitle: "Hey there. I’m Maggie, your Bandolier shopping assistant. I’m here to help you find your perfect Bandolier—effortlessly stylish, hands-free, and ready for wherever life takes you."
91
+ },
92
+ customerServiceIntegration: {
93
+ integrationMode: CustomerServiceIntegrationMode.simple,
94
+ provider: CustomerServiceType.gorgias,
95
+ useUnifiedButton: true
96
+ },
97
+ searchConfig: {
98
+ enableGlobalSearch: true,
99
+ redirectSearchResultsUrl: "https://www.bandolierstyle.com/pages/search-page",
100
+ searchFilterConfig: [
101
+ {
102
+ filterId: "price",
103
+ displayName: "Price",
104
+ type: "price",
105
+ bucketSize: 100
106
+ },
107
+ {
108
+ filterId: "material",
109
+ displayName: "Materials",
110
+ attribute: "materials",
111
+ type: "dynamic",
112
+ sorting: { type: "productCount" }
113
+ },
114
+ {
115
+ filterId: "devices",
116
+ displayName: "Phone size",
117
+ type: "dynamic",
118
+ attribute: "devices",
119
+ sorting: { type: "productCount" }
120
+ },
121
+ {
122
+ filterId: "colors",
123
+ displayName: "Color",
124
+ type: "dynamic",
125
+ attribute: "colors",
126
+ sorting: { type: "productCount" }
127
+ },
128
+ {
129
+ filterId: "dynamic",
130
+ displayName: "",
131
+ type: "dynamic",
132
+ attribute: "dynamic",
133
+ sorting: { type: "productCount" }
134
+ }
135
+ ]
136
+ },
137
+ merchantOverrideCss: `
138
+ .spiffy-headline {
139
+ font-family: 'DM Sans', 'Poppins', sans-serif;
140
+ }
141
+ .spiffy-headline-placeholder::placeholder {
142
+ font-family: 'DM Sans', 'Poppins', sans-serif;
143
+ font-style: italic;
144
+ }
145
+ .spiffy-star-rating-container {
146
+ background: var(--spiffy-colors-background-light) !important;
147
+ }
148
+ .spiffy-star-rating-star {
149
+ fill: var(--spiffy-colors-accent-primary) !important;
150
+ }
151
+ .spiffy-product-card-text-color {
152
+ color: var(--spiffy-colors-text-secondary);
153
+ }
154
+ .spiffy-view-source-icon-wrapper {
155
+ background: var(--spiffy-colors-accent-primary) !important;
156
+ }
157
+ .spiffy-view-source-icon-wrapper svg {
158
+ fill: var(--spiffy-colors-background-light);
159
+ }
160
+ .spiffy-floating-button-position {
161
+ top: 150px !important;
162
+
163
+ @media (max-width: 760px) {
164
+ top: 100px !important;
165
+ }
166
+ }
167
+ [data-testid="floating-chat-shadow-dom-container"] {
168
+ z-index: 2147483647 !important;
169
+ }
170
+ .spiffy-chat-header-close-button {
171
+ color: var(--spiffy-colors-background-primary);
172
+ }
173
+ .spiffy-modal-sheet-footer .spiffy-suggestion-button-question-class svg {
174
+ fill: var(--spiffy-colors-text-link) !important;
175
+ stroke: var(--spiffy-colors-text-link) !important;
176
+ }
177
+ .spiffy-chat-header-container img {
178
+ max-width: 150px;
179
+ }
180
+ .spiffy-image-prompt-card-container .spiffy-suggestion-bar-row button {
181
+ background-color: var(--spiffy-colors-background-secondary) !important;
182
+ color: var(--spiffy-colors-text-link) !important;
183
+ border: none;
184
+ }
185
+ .spiffy-image-prompt-card-container .spiffy-suggestion-bar-row button svg {
186
+ fill: var(--spiffy-colors-accent-primary) !important;
187
+ stroke: var(--spiffy-colors-accent-primary) !important;
188
+ }
189
+ .spiffy-image-prompt-card-container .spiffy-suggestion-bar-row button:hover {
190
+ background-color: var(--spiffy-colors-background-secondary-dark) !important;
191
+ }
192
+ .spiffy-chat-preview-footer-container button {
193
+ background-color: var(--spiffy-colors-background-secondary);
194
+ border-radius: 0 !important;
195
+ }
196
+ .spiffy-chat-preview-footer-container button span {
197
+ color: var(--spiffy-colors-text-link) !important;
198
+ }
199
+ .spiffy-chat-preview-footer-container button:hover span {
200
+ color: var(--spiffy-colors-text-link) !important;
201
+ }
202
+ .spiffy-chat-preview-footer-container button svg {
203
+ fill: var(--spiffy-colors-accent-primary);
204
+ stroke: var(--spiffy-colors-accent-primary);
205
+ }
206
+ .spiffy-chat-preview-footer-container button:hover {
207
+ background-color: var(--spiffy-colors-background-secondary-dark);
208
+ }
209
+ .spiffy-chat-preview-footer-container button:hover svg {
210
+ fill: var(--spiffy-colors-accent-primary) !important;
211
+ stroke: var(--spiffy-colors-accent-primary) !important;
212
+ }
213
+ .spiffy-back-to-results-button {
214
+ color: var(--spiffy-colors-text-light);
215
+ }
216
+ .spiffy-back-to-results-button svg {
217
+ fill: var(--spiffy-colors-accent-primary) !important;
218
+ stroke: var(--spiffy-colors-accent-primary) !important;
219
+ }
220
+ @media (max-width: 479px) {
221
+ #spiffy-ai-prompt-card {
222
+ grid-area: 2 / 1 / 2 / -1 !important;
223
+ min-height: 350px !important;
224
+ }
225
+ .spiffy-image-prompt-card-container {
226
+ background-position-y: 0%, 100% !important;
227
+ }
228
+ }
229
+
230
+ /* ==========================================================================
231
+ Search Layout & Visibility Rules
232
+ ========================================================================== */
233
+
234
+ .search-results-entry-point ~ .section-padding.text-section.text-dark {
235
+ color: red;
236
+ }
237
+
238
+ /* -- Rules to hide original site elements -- */
239
+ .global-entry-desktop + .js-search-trigger.search,
240
+ .global-entry-small-desktop + .js-search-trigger.search,
241
+ .global-entry-desktop + .search-popdown,
242
+ .global-entry-small-desktop + .search-popdown,
243
+ #spiffy-ai-global-search-entrypoint-mobile-icon-only + .search-popdown,
244
+ #spiffy-ai-global-search-entrypoint-mobile-homepage + .search-popdown,
245
+ .global-entry-desktop + .main-content,
246
+ .global-entry-small-desktop + .main-content,
247
+ .search-results-entry-point + .shopify-section {
248
+ display: none !important;
249
+ }
250
+
251
+ // .search-results-no-op ~ * {
252
+ // z-index: 0;
253
+ // }
254
+
255
+ #spiffy-ai-global-search-entrypoint-mobile.global-entry-mobile {
256
+ display: block;
257
+ }
258
+
259
+ @media (min-width: 640px) {
260
+ #spiffy-ai-global-search-entrypoint-mobile.global-entry-mobile {
261
+ display: none;
262
+ }
263
+
264
+ #spiffy-ai-global-search-entrypoint-mobile-icon-only {
265
+ display: block;
266
+ }
267
+ }
268
+
269
+ @media (min-width: 1200px) {
270
+ #spiffy-ai-global-search-entrypoint.global-entry-desktop {
271
+ display: block;
272
+ }
273
+ #spiffy-ai-global-search-entrypoint-tablet.global-entry-small-desktop {
274
+ display: none;
275
+ }
276
+ #spiffy-ai-global-search-entrypoint-mobile.global-entry-mobile {
277
+ display: none;
278
+ }
279
+ }
280
+ `
281
+ };
282
+ };
283
+ const bandolierPageConfig = () => ({
284
+ pageVariants: [
285
+ {
286
+ variantId: "search-results",
287
+ variantType: "search",
288
+ variantTests: [
289
+ { testType: PageVariantTestType.UrlResolver },
290
+ {
291
+ testType: PageVariantTestType.FeatureGate,
292
+ featureGate: FeatureGates.IsGlobalSearchEnabled
293
+ },
294
+ {
295
+ testType: PageVariantTestType.QueryParam,
296
+ queryParam: "esq"
297
+ }
298
+ ],
299
+ widgetMounting: [
300
+ {
301
+ mountingConfigId: "globalSearchEntryPointDesktop",
302
+ widgetConfigId: "globalSearchEntryPointDesktop"
303
+ },
304
+ {
305
+ mountingConfigId: "globalSearchEntryPointSmallDesktop",
306
+ widgetConfigId: "globalSearchEntryPointDesktop"
307
+ },
308
+ {
309
+ mountingConfigId: "chatPreviewPLP",
310
+ widgetConfigId: "chatPreviewPLP"
311
+ },
312
+ {
313
+ mountingConfigId: "searchResultsEntryPointPLP",
314
+ widgetConfigId: "searchResultsEntryPoint"
315
+ },
316
+ {
317
+ mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
318
+ widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
319
+ },
320
+ {
321
+ mountingConfigId: "searchOverlayHost",
322
+ widgetConfigId: "searchOverlayHost"
323
+ }
324
+ ]
325
+ },
326
+ {
327
+ variantId: "plp-with-search",
328
+ variantType: "plp",
329
+ variantTests: [{ testType: PageVariantTestType.UrlResolver }, {
330
+ testType: PageVariantTestType.FeatureGate,
331
+ featureGate: FeatureGates.IsGlobalSearchEnabled
332
+ }],
333
+ plpIdExtractor: "url-resolver-plp-id",
334
+ widgetMounting: [
335
+ {
336
+ mountingConfigId: "globalSearchEntryPointDesktop",
337
+ widgetConfigId: "globalSearchEntryPointDesktop"
338
+ },
339
+ {
340
+ mountingConfigId: "globalSearchEntryPointSmallDesktop",
341
+ widgetConfigId: "globalSearchEntryPointDesktop"
342
+ },
343
+ {
344
+ mountingConfigId: "globalSearchEntryPointMobile",
345
+ widgetConfigId: "globalSearchEntryPointMobile"
346
+ },
347
+ {
348
+ mountingConfigId: "globalSearchEntryPointMobileSearchIcon",
349
+ widgetConfigId: "globalSearchEntryPointMobileSearchIcon"
350
+ },
351
+ {
352
+ mountingConfigId: "chatPreviewPLP",
353
+ widgetConfigId: "chatPreviewPLP"
354
+ },
355
+ {
356
+ mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
357
+ widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
358
+ },
359
+ {
360
+ mountingConfigId: "searchOverlayHost",
361
+ widgetConfigId: "searchOverlayHost"
362
+ }
363
+ ]
364
+ },
365
+ {
366
+ variantId: "pdp-with-search-bags",
367
+ variantType: "pdp",
368
+ variantTests: [
369
+ { testType: PageVariantTestType.UrlResolver },
370
+ {
371
+ testType: PageVariantTestType.FeatureGate,
372
+ featureGate: FeatureGates.IsGlobalSearchEnabled
373
+ },
374
+ {
375
+ testType: PageVariantTestType.InCollection,
376
+ collections: ["bags"]
377
+ }
378
+ ],
379
+ productIdExtractor: "url-resolver-product-id",
380
+ widgetMounting: [
381
+ {
382
+ mountingConfigId: "globalSearchEntryPointDesktop",
383
+ widgetConfigId: "globalSearchEntryPointDesktop"
384
+ },
385
+ {
386
+ mountingConfigId: "globalSearchEntryPointSmallDesktop",
387
+ widgetConfigId: "globalSearchEntryPointDesktop"
388
+ },
389
+ {
390
+ mountingConfigId: "globalSearchEntryPointMobile",
391
+ widgetConfigId: "globalSearchEntryPointMobile"
392
+ },
393
+ {
394
+ mountingConfigId: "globalSearchEntryPointMobileSearchIcon",
395
+ widgetConfigId: "globalSearchEntryPointMobileSearchIcon"
396
+ },
397
+ {
398
+ mountingConfigId: "topSuggestionBarPDP",
399
+ widgetConfigId: "topSuggestionsBarBags"
400
+ },
401
+ {
402
+ mountingConfigId: "bottomSuggestionBarPDP",
403
+ widgetConfigId: "bottomSuggestionsBar"
404
+ },
405
+ {
406
+ mountingConfigId: "chatPreviewPDP",
407
+ widgetConfigId: "chatPreviewPDP"
408
+ },
409
+ {
410
+ mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
411
+ widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
412
+ },
413
+ {
414
+ mountingConfigId: "searchOverlayHost",
415
+ widgetConfigId: "searchOverlayHost"
416
+ }
417
+ ]
418
+ },
419
+ {
420
+ variantId: "pdp-with-search",
421
+ variantType: "pdp",
422
+ variantTests: [{ testType: PageVariantTestType.UrlResolver }, {
423
+ testType: PageVariantTestType.FeatureGate,
424
+ featureGate: FeatureGates.IsGlobalSearchEnabled
425
+ }],
426
+ productIdExtractor: "url-resolver-product-id",
427
+ widgetMounting: [
428
+ {
429
+ mountingConfigId: "globalSearchEntryPointDesktop",
430
+ widgetConfigId: "globalSearchEntryPointDesktop"
431
+ },
432
+ {
433
+ mountingConfigId: "globalSearchEntryPointSmallDesktop",
434
+ widgetConfigId: "globalSearchEntryPointDesktop"
435
+ },
436
+ {
437
+ mountingConfigId: "globalSearchEntryPointMobile",
438
+ widgetConfigId: "globalSearchEntryPointMobile"
439
+ },
440
+ {
441
+ mountingConfigId: "globalSearchEntryPointMobileSearchIcon",
442
+ widgetConfigId: "globalSearchEntryPointMobileSearchIcon"
443
+ },
444
+ {
445
+ mountingConfigId: "topSuggestionBarPDP",
446
+ widgetConfigId: "topSuggestionsBar"
447
+ },
448
+ {
449
+ mountingConfigId: "bottomSuggestionBarPDP",
450
+ widgetConfigId: "bottomSuggestionsBar"
451
+ },
452
+ {
453
+ mountingConfigId: "chatPreviewPDP",
454
+ widgetConfigId: "chatPreviewPDP"
455
+ },
456
+ {
457
+ mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
458
+ widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
459
+ },
460
+ {
461
+ mountingConfigId: "searchOverlayHost",
462
+ widgetConfigId: "searchOverlayHost"
463
+ }
464
+ ]
465
+ },
466
+ {
467
+ variantId: "home-with-search",
468
+ variantType: "homepage",
469
+ variantTests: [{ testType: PageVariantTestType.UrlResolver }, {
470
+ testType: PageVariantTestType.FeatureGate,
471
+ featureGate: FeatureGates.IsGlobalSearchEnabled
472
+ }],
473
+ widgetMounting: [
474
+ {
475
+ mountingConfigId: "globalSearchEntryPointDesktopHomepage",
476
+ widgetConfigId: "globalSearchEntryPointDesktopHomepage"
477
+ },
478
+ {
479
+ mountingConfigId: "globalSearchEntryPointSmallDesktopHomepage",
480
+ widgetConfigId: "globalSearchEntryPointDesktopHomepage"
481
+ },
482
+ {
483
+ mountingConfigId: "globalSearchEntryPointMobileHomepage",
484
+ widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
485
+ },
486
+ {
487
+ mountingConfigId: "searchOverlayHost",
488
+ widgetConfigId: "searchOverlayHost"
489
+ }
490
+ ]
491
+ },
492
+ {
493
+ variantId: "other-with-search",
494
+ variantType: "other",
495
+ variantTests: [{
496
+ testType: PageVariantTestType.FeatureGate,
497
+ featureGate: FeatureGates.IsGlobalSearchEnabled
498
+ }, { testType: PageVariantTestType.UrlResolver }],
499
+ widgetMounting: [
500
+ {
501
+ mountingConfigId: "globalSearchEntryPointDesktop",
502
+ widgetConfigId: "globalSearchEntryPointDesktop"
503
+ },
504
+ {
505
+ mountingConfigId: "globalSearchEntryPointSmallDesktop",
506
+ widgetConfigId: "globalSearchEntryPointDesktop"
507
+ },
508
+ {
509
+ mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
510
+ widgetConfigId: "globalSearchEntryPointOnlyIconMobile"
511
+ },
512
+ {
513
+ mountingConfigId: "searchOverlayHost",
514
+ widgetConfigId: "searchOverlayHost"
515
+ }
516
+ ]
517
+ },
518
+ {
519
+ variantId: "plpPhoneCases",
520
+ variantType: "plp",
521
+ variantTests: [{ testType: PageVariantTestType.ShopifyPLP }, {
522
+ testType: PageVariantTestType.PlpId,
523
+ plpIds: [
524
+ "bandolier-crossbody",
525
+ "wristlet-phone-cases",
526
+ "case-only"
527
+ ],
528
+ plpIdExtractor: "shopify-collection-id"
529
+ }],
530
+ plpIdExtractor: "shopify-collection-id",
531
+ widgetMounting: [{
532
+ mountingConfigId: "imagePromptCardPLP",
533
+ widgetConfigId: "imagePromptCardPLPPhoneCases"
534
+ }]
535
+ },
536
+ {
537
+ variantId: "plpAccessories",
538
+ variantType: "plp",
539
+ variantTests: [{ testType: PageVariantTestType.ShopifyPLP }, {
540
+ testType: PageVariantTestType.PlpId,
541
+ plpIds: ["shop-all-accessories"],
542
+ plpIdExtractor: "shopify-collection-id"
543
+ }],
544
+ plpIdExtractor: "shopify-collection-id",
545
+ widgetMounting: [{
546
+ mountingConfigId: "imagePromptCardPLP",
547
+ widgetConfigId: "imagePromptCardPLPAccessories"
548
+ }]
549
+ },
550
+ {
551
+ variantId: "plpBags",
552
+ variantType: "plp",
553
+ variantTests: [{ testType: PageVariantTestType.ShopifyPLP }, {
554
+ testType: PageVariantTestType.PlpId,
555
+ plpIds: ["bags"],
556
+ plpIdExtractor: "shopify-collection-id"
557
+ }],
558
+ plpIdExtractor: "shopify-collection-id",
559
+ widgetMounting: [{
560
+ mountingConfigId: "imagePromptCardPLP",
561
+ widgetConfigId: "imagePromptCardPLPBags"
562
+ }]
563
+ },
564
+ {
565
+ variantId: "pdpPouches",
566
+ variantType: "pdp",
567
+ variantTests: [{ testType: PageVariantTestType.ShopifyPDP }, {
568
+ testType: PageVariantTestType.InCollection,
569
+ collections: ["shop-all-bags-pouches"]
570
+ }],
571
+ productIdExtractor: "shopify-product-variant-id",
572
+ widgetMounting: [
573
+ {
574
+ mountingConfigId: "topSuggestionBarPDP",
575
+ widgetConfigId: "topSuggestionsBarPouches"
576
+ },
577
+ {
578
+ mountingConfigId: "chatPreviewPDP",
579
+ widgetConfigId: "chatPreviewPDP"
580
+ },
581
+ {
582
+ mountingConfigId: "bottomSuggestionBarPDP",
583
+ widgetConfigId: "bottomSuggestionsBar"
584
+ }
585
+ ]
586
+ },
587
+ {
588
+ variantId: "pdpBags",
589
+ variantType: "pdp",
590
+ variantTests: [{ testType: PageVariantTestType.ShopifyPDP }, {
591
+ testType: PageVariantTestType.InCollection,
592
+ collections: ["bags"]
593
+ }],
594
+ productIdExtractor: "shopify-product-variant-id",
595
+ widgetMounting: [
596
+ {
597
+ mountingConfigId: "topSuggestionBarPDP",
598
+ widgetConfigId: "topSuggestionsBarBags"
599
+ },
600
+ {
601
+ mountingConfigId: "chatPreviewPDP",
602
+ widgetConfigId: "chatPreviewPDP"
603
+ },
604
+ {
605
+ mountingConfigId: "bottomSuggestionBarPDP",
606
+ widgetConfigId: "bottomSuggestionsBar"
607
+ }
608
+ ]
609
+ },
610
+ {
611
+ variantId: "plpShopAll",
612
+ variantType: "plp",
613
+ variantTests: [{ testType: PageVariantTestType.ShopifyPLP }, {
614
+ testType: PageVariantTestType.PlpId,
615
+ plpIds: ["all"],
616
+ plpIdExtractor: "shopify-collection-id"
617
+ }],
618
+ plpIdExtractor: "shopify-collection-id",
619
+ widgetMounting: [{
620
+ mountingConfigId: "imagePromptCardPLP",
621
+ widgetConfigId: "imagePromptCardPLPShopAll"
622
+ }]
623
+ },
624
+ {
625
+ variantId: "plp",
626
+ variantType: "plp",
627
+ variantTests: [{ testType: PageVariantTestType.ShopifyPLP }],
628
+ plpIdExtractor: "shopify-collection-id",
629
+ widgetMounting: [{
630
+ mountingConfigId: "imagePromptCardPLP",
631
+ widgetConfigId: "imagePromptCardPLP"
632
+ }]
633
+ },
634
+ {
635
+ variantId: "pdp",
636
+ variantType: "pdp",
637
+ variantTests: [{ testType: PageVariantTestType.ShopifyPDP }],
638
+ productIdExtractor: "shopify-product-variant-id",
639
+ widgetMounting: [
640
+ {
641
+ mountingConfigId: "topSuggestionBarPDP",
642
+ widgetConfigId: "topSuggestionsBar"
643
+ },
644
+ {
645
+ mountingConfigId: "chatPreviewPDP",
646
+ widgetConfigId: "chatPreviewPDP"
647
+ },
648
+ {
649
+ mountingConfigId: "bottomSuggestionBarPDP",
650
+ widgetConfigId: "bottomSuggestionsBar"
651
+ }
652
+ ]
653
+ }
654
+ ],
655
+ mountingConfigs: {
656
+ imagePromptCardPLP: {
657
+ mountingConfigId: "imagePromptCardPLP",
658
+ containerId: PROMPT_CARD_ID,
659
+ testId: PROMPT_CARD_TESTID,
660
+ insertionPoint: {
661
+ selector: "#AjaxinateLoop",
662
+ insertionType: DOMInsertionType.AFTER
663
+ },
664
+ gridInsertionType: GridInsertionType.FIXED_1,
665
+ divCheckSelector: "test",
666
+ style: {
667
+ gridRow: "2 / 2",
668
+ gridColumn: "1 / 1"
669
+ }
670
+ },
671
+ chatPreviewPDP: {
672
+ mountingConfigId: "chatPreviewPDP",
673
+ containerId: CHAT_PREVIEW_CONTAINER_ID,
674
+ testId: CHAT_PREVIEW_TESTID,
675
+ insertionPoint: {
676
+ selector: ".product-single div",
677
+ insertionType: DOMInsertionType.APPEND_CHILD
678
+ }
679
+ },
680
+ topSuggestionBarPDP: {
681
+ mountingConfigId: "topSuggestionBarPDP",
682
+ containerId: TOP_SUGGESTION_BAR_PDP_ID,
683
+ testId: TOP_SUGGESTION_BAR_TESTID,
684
+ insertionPoint: {
685
+ selector: ".product__price-and-rating",
686
+ insertionType: DOMInsertionType.AFTER
687
+ },
688
+ style: { marginBottom: "16px" }
689
+ },
690
+ bottomSuggestionBarPDP: {
691
+ mountingConfigId: "bottomSuggestionBarPDP",
692
+ containerId: BOTTOM_REVIEWS_BAR_ID,
693
+ testId: BOTTOM_SUGGESTION_BAR_TESTID,
694
+ insertionPoint: {
695
+ selector: ".yotpo-smart-topics-panel",
696
+ insertionType: DOMInsertionType.AFTER
697
+ },
698
+ style: { width: "100%" }
699
+ },
700
+ searchOverlayHost: {
701
+ mountingConfigId: "searchOverlayHost",
702
+ containerId: SEARCH_OVERLAY_ENTRYPOINT_ID,
703
+ testId: SEARCH_OVERLAY_HOST_TESTID,
704
+ insertionPoint: {
705
+ selector: "body",
706
+ insertionType: DOMInsertionType.APPEND_CHILD
707
+ },
708
+ className: "spiffy-overlay-host"
709
+ },
710
+ searchResultsEntryPointPLP: {
711
+ mountingConfigId: "searchResultsEntryPointPLP",
712
+ containerId: SEARCH_RESULTS_ENTRYPOINT_ID,
713
+ testId: SEARCH_RESULTS_ENTRYPOINT_TESTID,
714
+ insertionPoint: {
715
+ selector: ".main-content",
716
+ insertionType: DOMInsertionType.BEFORE
717
+ },
718
+ suppressionSelector: "#MainContent",
719
+ className: "search-results-entry-point",
720
+ style: { marginBottom: "60px" }
721
+ },
722
+ searchResultsEntryPointPDP: {
723
+ mountingConfigId: "searchResultsEntryPointPDP",
724
+ containerId: SEARCH_RESULTS_ENTRYPOINT_ID,
725
+ testId: SEARCH_RESULTS_ENTRYPOINT_TESTID,
726
+ insertionPoint: {
727
+ selector: ".main-content",
728
+ insertionType: DOMInsertionType.BEFORE
729
+ },
730
+ suppressionSelector: "#MainContent",
731
+ className: "search-results-entry-point",
732
+ style: { marginBottom: "60px" }
733
+ },
734
+ globalSearchEntryPointDesktopHomepage: {
735
+ mountingConfigId: "globalSearchEntryPointDesktopHomepage",
736
+ containerId: HOMEPAGE_DESKTOP_GLOBAL_SEARCH_ENTRYPOINT_ID,
737
+ testId: GLOBAL_SEARCH_ENTRYPOINT_TESTID,
738
+ insertionPoint: {
739
+ selector: ".menu__item.menu__item--icons .search-popdown.menu__item.menu__item--icon",
740
+ insertionType: DOMInsertionType.BEFORE
741
+ },
742
+ suppressionSelector: ".menu__item.menu__item--icons .search-popdown",
743
+ className: "global-entry-desktop-homepage",
744
+ style: { margin: "0 5px 0 7px" }
745
+ },
746
+ globalSearchEntryPointSmallDesktopHomepage: {
747
+ mountingConfigId: "globalSearchEntryPointSmallDesktopHomepage",
748
+ containerId: HOMEPAGE_TABLET_GLOBAL_SEARCH_ENTRYPOINT_ID,
749
+ testId: GLOBAL_SEARCH_ENTRYPOINT_TESTID,
750
+ insertionPoint: {
751
+ selector: "#NavStandard .menu__item.menu__item--icon.menu__item-wishlist",
752
+ insertionType: DOMInsertionType.ADJACENT_AFTER_END
753
+ },
754
+ suppressionSelector: ".search-popdown",
755
+ className: "global-entry-small-desktop-homepage",
756
+ style: { margin: "0 5px 0 7px" }
757
+ },
758
+ globalSearchEntryPointMobileHomepage: {
759
+ mountingConfigId: "globalSearchEntryPointMobileHomepage",
760
+ containerId: HOMEPAGE_MOBILE_GLOBAL_SEARCH_ENTRYPOINT_ID,
761
+ testId: GLOBAL_SEARCH_ENTRYPOINT_TESTID,
762
+ insertionPoint: {
763
+ selector: ".search-popdown.mobile-menu__button",
764
+ insertionType: DOMInsertionType.BEFORE
765
+ },
766
+ className: "global-entry-mobile-homepage",
767
+ style: { margin: "6px" }
768
+ },
769
+ globalSearchEntryPointDesktop: {
770
+ mountingConfigId: "globalSearchEntryPointDesktop",
771
+ containerId: GLOBAL_SEARCH_ENTRYPOINT_ID,
772
+ testId: GLOBAL_SEARCH_ENTRYPOINT_TESTID,
773
+ insertionPoint: {
774
+ selector: ".menu__item.menu__item--icons .search-popdown.menu__item.menu__item--icon",
775
+ insertionType: DOMInsertionType.BEFORE
776
+ },
777
+ className: "global-entry-desktop",
778
+ style: { margin: "0 5px 0 7px" }
779
+ },
780
+ globalSearchEntryPointSmallDesktop: {
781
+ mountingConfigId: "globalSearchEntryPointSmallDesktop",
782
+ containerId: TABLET_GLOBAL_SEARCH_ENTYPOINT_ID,
783
+ testId: GLOBAL_SEARCH_ENTRYPOINT_TESTID,
784
+ insertionPoint: {
785
+ selector: "#NavStandard .menu__item.menu__item--icon.menu__item-wishlist",
786
+ insertionType: DOMInsertionType.ADJACENT_AFTER_END
787
+ },
788
+ className: "global-entry-small-desktop",
789
+ style: { margin: "0 5px 0 7px" }
790
+ },
791
+ globalSearchEntryPointMobile: {
792
+ mountingConfigId: "globalSearchEntryPointMobile",
793
+ containerId: MOBILE_GLOBAL_SEARCH_ENTRYPOINT_ID,
794
+ testId: GLOBAL_SEARCH_ENTRYPOINT_TESTID,
795
+ insertionPoint: {
796
+ selector: ".main-content",
797
+ insertionType: DOMInsertionType.BEFORE
798
+ },
799
+ className: "global-entry-mobile",
800
+ style: { margin: "8px" }
801
+ },
802
+ globalSearchEntryPointOnlyIconMobile: {
803
+ mountingConfigId: "globalSearchEntryPointOnlyIconMobile",
804
+ containerId: MOBILE_ICON_ONLY_GLOBAL_SEARCH_ENTRYPOINT_ID,
805
+ testId: GLOBAL_SEARCH_ENTRYPOINT_TESTID,
806
+ insertionPoint: {
807
+ selector: ".search-popdown.mobile-menu__button",
808
+ insertionType: DOMInsertionType.ADJACENT_BEFORE_BEGIN
809
+ },
810
+ className: "global-entry-mobile-menu-icon",
811
+ style: { margin: "6px" }
812
+ }
813
+ },
814
+ widgetConfigs: {
815
+ imagePromptCardPLPPhoneCases: {
816
+ widgetConfigId: "imagePromptCard",
817
+ type: WidgetType.ImagePromptCard,
818
+ url: CdnService.getAssetURL("image-prompt-card-2.png", OrgShortName.Bandolier),
819
+ lightText: true,
820
+ title: "What can we help you find today?",
821
+ subtitle: [
822
+ "Crossbody vs. wristlet—what’s the difference?",
823
+ "Can I mix and match straps and wristlets?",
824
+ "Does it fit cards or essentials?",
825
+ "How protected will my phone be?",
826
+ "Do you offer bundles or sets?",
827
+ "Can I use this case without a strap?"
828
+ ],
829
+ staticSuggestionCopies: [
830
+ "Will this fit my phone?",
831
+ "Crossbody vs. wristlet—what’s the difference?",
832
+ "Can I mix and match straps and wristlets?",
833
+ "Does it fit cards or essentials?",
834
+ "How protected will my phone be?",
835
+ "Do you offer bundles or sets?",
836
+ "Can I use this case without a strap?"
837
+ ],
838
+ userQueryButtonConfig: {
839
+ variant: "underlineLight",
840
+ placeholderText: "Need something special?",
841
+ icon: "sendArrow"
842
+ }
843
+ },
844
+ imagePromptCardPLPAccessories: {
845
+ widgetConfigId: "imagePromptCard",
846
+ type: WidgetType.ImagePromptCard,
847
+ url: CdnService.getAssetURL("image-prompt-card-2.png", OrgShortName.Bandolier),
848
+ lightText: true,
849
+ title: "What can we help you find today?",
850
+ subtitle: [
851
+ "Can I mix and match colors or styles?",
852
+ "How do these attach to cases and bags?",
853
+ "Are accessories customizable?",
854
+ "Can I customize my Bandolier?"
855
+ ],
856
+ staticSuggestionCopies: [
857
+ "Can I mix and match colors or styles?",
858
+ "How do these attach to cases and bags?",
859
+ "Are accessories customizable?",
860
+ "Can I customize my Bandolier?"
861
+ ],
862
+ userQueryButtonConfig: {
863
+ variant: "underlineLight",
864
+ placeholderText: "Need something special?",
865
+ icon: "sendArrow"
866
+ }
867
+ },
868
+ imagePromptCardPLPBags: {
869
+ widgetConfigId: "imagePromptCard",
870
+ type: WidgetType.ImagePromptCard,
871
+ url: CdnService.getAssetURL("image-prompt-card-2.png", OrgShortName.Bandolier),
872
+ lightText: true,
873
+ title: "What can we help you find today?",
874
+ subtitle: [
875
+ "Are the bags designed to hold phones?",
876
+ "Can I attach a Bandolier strap to this bag?",
877
+ "Does it have interior pockets?",
878
+ "Is it made of real leather?",
879
+ "Can the strap be removed?"
880
+ ],
881
+ staticSuggestionCopies: [
882
+ "Are the bags designed to hold phones?",
883
+ "Can I attach a Bandolier strap to this bag?",
884
+ "Does it have interior pockets?",
885
+ "Is it made of real leather?",
886
+ "Can the strap be removed?"
887
+ ],
888
+ userQueryButtonConfig: {
889
+ variant: "underlineLight",
890
+ placeholderText: "Need something special?",
891
+ icon: "sendArrow"
892
+ }
893
+ },
894
+ imagePromptCardPLPShopAll: {
895
+ widgetConfigId: "imagePromptCard",
896
+ type: WidgetType.ImagePromptCard,
897
+ url: CdnService.getAssetURL("image-prompt-card-2.png", OrgShortName.Bandolier),
898
+ lightText: true,
899
+ title: "What can we help you find today?",
900
+ subtitle: [
901
+ "Will this fit my phone?",
902
+ "How is Bandolier different from other phone cases?",
903
+ "What’s your most popular style?",
904
+ "What's trending right now?"
905
+ ],
906
+ staticSuggestionCopies: [
907
+ "Will this fit my phone?",
908
+ "How is Bandolier different from other phone cases?",
909
+ "What’s your most popular style?",
910
+ "What's trending right now?"
911
+ ],
912
+ userQueryButtonConfig: {
913
+ variant: "underlineLight",
914
+ placeholderText: "Need something special?",
915
+ icon: "sendArrow"
916
+ }
917
+ },
918
+ imagePromptCardPLP: {
919
+ widgetConfigId: "imagePromptCard",
920
+ type: WidgetType.ImagePromptCard,
921
+ url: CdnService.getAssetURL("image-prompt-card-2.png", OrgShortName.Bandolier),
922
+ lightText: true,
923
+ title: "What can we help you find today?",
924
+ subtitle: [
925
+ "Which phone case fits your style?",
926
+ "Need a bag for nights out?",
927
+ "What’s a chic gift idea?",
928
+ "Looking for a travel-ready set?"
929
+ ],
930
+ staticSuggestionCopies: [
931
+ "Which phone case fits your style?",
932
+ "Need a bag for nights out?",
933
+ "What’s a chic gift idea?",
934
+ "Looking for a travel-ready set?"
935
+ ],
936
+ userQueryButtonConfig: {
937
+ variant: "underlineLight",
938
+ placeholderText: "Need something special?",
939
+ icon: "sendArrow"
940
+ }
941
+ },
942
+ topSuggestionsBar: {
943
+ widgetConfigId: "topSuggestionsBar",
944
+ contentId: "spiffy-top-suggestion-bar-contents",
945
+ metricDisplayLocation: ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
946
+ location: SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
947
+ type: WidgetType.SuggestionBarV2,
948
+ variant: "secondary",
949
+ hoverVariant: "secondaryAccent",
950
+ buttonBorderRadius: "sm",
951
+ animationSpeed: "standard",
952
+ buttonTexts: {
953
+ default: [
954
+ "Can I use this case without a strap? ",
955
+ "How many cards fit in the wallet?",
956
+ "Summarize Reviews",
957
+ "What makes this so versatile?",
958
+ "Why are shoppers obsessed with this?"
959
+ ],
960
+ productSpecific: {
961
+ "hailey-side-slot-leather-crossbody-bandolier-black-gold": [
962
+ "Summarize the reviews",
963
+ "Why is this your best seller?",
964
+ "Can you use this case without a strap?",
965
+ "How many cards fit in the wallet?",
966
+ "What makes this so versatile?"
967
+ ],
968
+ "mila-magsafe-charging-crossbody-bandolier-black-gold": [
969
+ "Summarize the reviews",
970
+ "Is this MagSafe Compatible?",
971
+ "Does the wallet come off?",
972
+ "Why is this your best seller?",
973
+ "Can you use this case without a strap?",
974
+ "How many cards fit in the wallet?"
975
+ ],
976
+ "remi-magnet-wallet-crossbody-phone-case-black-gold": [
977
+ "Summarize the reviews",
978
+ "Is this MagSafe Compatible?",
979
+ "Is the wallet removable?",
980
+ "Why is this your best seller?",
981
+ "Can you use this case without a strap?",
982
+ "How many cards fit in the wallet?"
983
+ ],
984
+ "lily-set-bandolier-black-gold": [
985
+ "Summarize the reviews",
986
+ "Why is this your best seller?",
987
+ "Can you use this case without a strap?",
988
+ "How many cards fit in the wallet?"
989
+ ]
990
+ }
991
+ }
992
+ },
993
+ topSuggestionsBarPouches: {
994
+ widgetConfigId: "topSuggestionsBarPouches",
995
+ contentId: "spiffy-top-suggestion-bar-contents",
996
+ metricDisplayLocation: ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
997
+ location: SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
998
+ type: WidgetType.SuggestionBarV2,
999
+ variant: "secondary",
1000
+ hoverVariant: "secondaryAccent",
1001
+ buttonBorderRadius: "sm",
1002
+ animationSpeed: "standard",
1003
+ buttonTexts: { default: [
1004
+ "How will this work with my bandolier case?",
1005
+ "Can I attach a Bandolier strap to this pouch?",
1006
+ "Does it have interior pockets?",
1007
+ "Is it made of real leather?"
1008
+ ] }
1009
+ },
1010
+ topSuggestionsBarBags: {
1011
+ widgetConfigId: "topSuggestionsBarBags",
1012
+ contentId: "spiffy-top-suggestion-bar-contents",
1013
+ metricDisplayLocation: ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1014
+ location: SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1015
+ type: WidgetType.SuggestionBarV2,
1016
+ variant: "secondary",
1017
+ hoverVariant: "secondaryAccent",
1018
+ buttonBorderRadius: "sm",
1019
+ animationSpeed: "standard",
1020
+ buttonTexts: { default: [
1021
+ "Are the bags designed to hold phones?",
1022
+ "Can I attach a Bandolier strap to this bag?",
1023
+ "Does it have interior pockets?",
1024
+ "Is it made of real leather?",
1025
+ "Can the strap be removed?"
1026
+ ] }
1027
+ },
1028
+ chatPreviewPDP: {
1029
+ widgetConfigId: "chatPreviewPDP",
1030
+ type: WidgetType.ChatPreview,
1031
+ variant: "filled",
1032
+ addSeparators: false
1033
+ },
1034
+ bottomSuggestionsBar: {
1035
+ widgetConfigId: "bottomSuggestionsBar",
1036
+ contentId: "spiffy-bottom-suggestion-bar-contents",
1037
+ metricDisplayLocation: ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1038
+ location: SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1039
+ type: WidgetType.SuggestionBarV2,
1040
+ variant: "darkAccent",
1041
+ hoverVariant: "secondaryAccent",
1042
+ buttonBorderRadius: "sm",
1043
+ animationSpeed: "none",
1044
+ twoRowsOnMobile: true,
1045
+ buttonTexts: { default: [
1046
+ "Does this fit my device model?",
1047
+ "Is this adjustable?",
1048
+ "Why choose this over a bulky bag?",
1049
+ "What do reviewers love most?",
1050
+ "Can I use this every day?"
1051
+ ] }
1052
+ },
1053
+ globalSearchEntryPointMobile: {
1054
+ widgetConfigId: "globalSearchEntryPointMobile",
1055
+ type: WidgetType.SearchZeroStateEntryPoint,
1056
+ searchZeroStateVariant: "backgroundTertiary",
1057
+ searchInputVariant: "standard",
1058
+ suggestionButtonConfig: {
1059
+ variant: "darkAccent",
1060
+ hoverVariant: "secondaryAccent",
1061
+ borderRadius: "sm"
1062
+ },
1063
+ layout: "input",
1064
+ searchBoxPlaceholder: "What can I help you find?",
1065
+ initialSuggestions: [
1066
+ "MagSafe compatible cases",
1067
+ "Most popular styles",
1068
+ "Remi removable wallet",
1069
+ "Mix and match straps and wristlets",
1070
+ "Add-on pouches",
1071
+ "Best phone cases for travel"
1072
+ ],
1073
+ usingPortal: true
1074
+ },
1075
+ globalSearchEntryPointMobileSearchIcon: {
1076
+ widgetConfigId: "globalSearchEntryPointMobileSearchIcon",
1077
+ type: WidgetType.SearchZeroStateEntryPoint,
1078
+ searchZeroStateVariant: "backgroundTertiary",
1079
+ searchInputVariant: "standard",
1080
+ suggestionButtonConfig: {
1081
+ variant: "darkAccent",
1082
+ hoverVariant: "secondaryAccent",
1083
+ borderRadius: "sm"
1084
+ },
1085
+ layout: "icon",
1086
+ searchIconVariant: "thin",
1087
+ searchIconSize: 24,
1088
+ searchBoxPlaceholder: "What can I help you find?",
1089
+ initialSuggestions: [
1090
+ "MagSafe compatible cases",
1091
+ "Most popular styles",
1092
+ "Remi removable wallet",
1093
+ "Mix and match straps and wristlets",
1094
+ "Add-on pouches",
1095
+ "Best phone cases for travel"
1096
+ ],
1097
+ usingPortal: true
1098
+ },
1099
+ globalSearchEntryPointDesktop: {
1100
+ widgetConfigId: "globalSearchEntryPointDesktop",
1101
+ type: WidgetType.SearchZeroStateEntryPoint,
1102
+ searchZeroStateVariant: "backgroundTertiary",
1103
+ searchInputVariant: "standard",
1104
+ suggestionButtonConfig: {
1105
+ variant: "darkAccent",
1106
+ hoverVariant: "secondaryAccent",
1107
+ borderRadius: "sm"
1108
+ },
1109
+ layout: "icon",
1110
+ searchIconVariant: "thin",
1111
+ searchIconSize: 22,
1112
+ searchBoxPlaceholder: "What can I help you find?",
1113
+ initialSuggestions: [
1114
+ "MagSafe compatible cases",
1115
+ "Most popular styles",
1116
+ "Remi removable wallet",
1117
+ "Mix and match straps and wristlets",
1118
+ "Add-on pouches",
1119
+ "Best phone cases for travel"
1120
+ ],
1121
+ usingPortal: true
1122
+ },
1123
+ globalSearchEntryPointDesktopHomepage: {
1124
+ widgetConfigId: "globalSearchEntryPointDesktopHomepage",
1125
+ type: WidgetType.SearchZeroStateEntryPoint,
1126
+ searchZeroStateVariant: "backgroundTertiary",
1127
+ searchInputVariant: "standard",
1128
+ suggestionButtonConfig: {
1129
+ variant: "darkAccent",
1130
+ hoverVariant: "secondaryAccent",
1131
+ borderRadius: "sm"
1132
+ },
1133
+ layout: "icon",
1134
+ searchIconVariant: "thin",
1135
+ searchIconSize: 22,
1136
+ searchBoxPlaceholder: "What can I help you find?",
1137
+ initialSuggestions: [
1138
+ "MagSafe compatible cases",
1139
+ "Most popular styles",
1140
+ "Remi removable wallet",
1141
+ "Mix and match straps and wristlets",
1142
+ "Add-on pouches",
1143
+ "Best phone cases for travel"
1144
+ ],
1145
+ usingPortal: true
1146
+ },
1147
+ globalSearchEntryPointSmallDesktopHomepage: {
1148
+ widgetConfigId: "globalSearchEntryPointSmallDesktopHomepage",
1149
+ type: WidgetType.SearchZeroStateEntryPoint,
1150
+ searchZeroStateVariant: "backgroundTertiary",
1151
+ searchInputVariant: "standard",
1152
+ suggestionButtonConfig: {
1153
+ variant: "darkAccent",
1154
+ hoverVariant: "secondaryAccent",
1155
+ borderRadius: "sm"
1156
+ },
1157
+ layout: "icon",
1158
+ searchIconVariant: "thin",
1159
+ searchIconSize: 22,
1160
+ searchBoxPlaceholder: "What can I help you find?",
1161
+ initialSuggestions: [
1162
+ "MagSafe compatible cases",
1163
+ "Most popular styles",
1164
+ "Remi removable wallet",
1165
+ "Mix and match straps and wristlets",
1166
+ "Add-on pouches",
1167
+ "Best phone cases for travel"
1168
+ ],
1169
+ usingPortal: true
1170
+ },
1171
+ globalSearchEntryPointOnlyIconMobile: {
1172
+ widgetConfigId: "globalSearchEntryPointOnlyIconMobile",
1173
+ type: WidgetType.SearchZeroStateEntryPoint,
1174
+ searchZeroStateVariant: "backgroundTertiary",
1175
+ searchInputVariant: "standard",
1176
+ suggestionButtonConfig: {
1177
+ variant: "darkAccent",
1178
+ hoverVariant: "secondaryAccent",
1179
+ borderRadius: "sm"
1180
+ },
1181
+ layout: "icon",
1182
+ searchIconVariant: "thin",
1183
+ searchIconSize: 26,
1184
+ searchBoxPlaceholder: "What can I help you find?",
1185
+ initialSuggestions: [
1186
+ "MagSafe compatible cases",
1187
+ "Most popular styles",
1188
+ "Remi removable wallet",
1189
+ "Mix and match straps and wristlets",
1190
+ "Add-on pouches",
1191
+ "Best phone cases for travel"
1192
+ ],
1193
+ usingPortal: true
1194
+ },
1195
+ searchResultsEntryPoint: {
1196
+ widgetConfigId: "searchResultsEntryPoint",
1197
+ type: WidgetType.SearchResultsEntryPoint,
1198
+ searchBoxPlaceholder: "What can I help you find?",
1199
+ searchInputVariant: "standard",
1200
+ searchFilterSidebarVariant: "darkButton",
1201
+ productGridVariant: "square"
1202
+ },
1203
+ searchOverlayHost: {
1204
+ widgetConfigId: "searchOverlayHost",
1205
+ type: WidgetType.SearchOverlayHost
1206
+ }
1207
+ }
1208
+ });
1209
+ const bandolierOrgInfo = {
1210
+ shortName: OrgShortName.Bandolier,
1211
+ name: "Bandolier",
1212
+ domain: "bandolierstyle.com",
1213
+ defaultProductId: "lily-side-slot-leather-crossbody-bandolier-ceci-ivory-floral-gold",
1214
+ alwaysEnabledMerchants: true,
1215
+ orgUIConfig: bandolierOrgUIConfig,
1216
+ orgColors: () => bandolierColors,
1217
+ orgPageConfig: bandolierPageConfig
1218
+ };
1219
+
1220
+ //#endregion
1221
+ export { bandolierOrgInfo };