@shopgate/engage 7.30.0-alpha.9 → 7.30.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/a11y/components/FocusTrap/index.js +1 -1
  2. package/a11y/components/LiveMessage/index.js +8 -6
  3. package/a11y/components/LiveMessenger/index.js +12 -9
  4. package/a11y/components/Navigation/index.js +18 -14
  5. package/a11y/components/Section/index.js +19 -12
  6. package/account/components/Account/Account.js +49 -38
  7. package/account/components/Profile/Profile.js +10 -7
  8. package/account/components/Profile/Profile.provider.js +5 -3
  9. package/account/components/Profile/ProfileAddressBook.js +25 -19
  10. package/account/components/Profile/ProfileAddressCard.js +70 -50
  11. package/account/components/Profile/ProfileForm.js +27 -22
  12. package/account/components/Profile/ProfileHeader.js +10 -7
  13. package/account/components/ProfileContact/ProfileContact.js +21 -17
  14. package/account/helper/form.js +9 -9
  15. package/back-in-stock/components/BackInStockButton/index.js +28 -21
  16. package/back-in-stock/components/CharacteristicsButton/index.js +2 -1
  17. package/back-in-stock/components/ProductInfoBackInStockButton/index.js +11 -9
  18. package/back-in-stock/components/Subscriptions/components/List/index.js +30 -24
  19. package/back-in-stock/components/Subscriptions/components/Subscription/index.js +75 -64
  20. package/back-in-stock/components/Subscriptions/index.js +4 -1
  21. package/back-in-stock/providers/BackInStockSubscriptionsProvider.js +5 -3
  22. package/cart/cart.helpers.js +3 -3
  23. package/cart/components/CartHeaderWide/CartHeaderWide.js +5 -3
  24. package/cart/components/CartItem/CartItem.js +24 -20
  25. package/cart/components/CartItem/CartItemCoupon.js +59 -45
  26. package/cart/components/CartItem/CartItemCouponCode.js +5 -3
  27. package/cart/components/CartItem/CartItemCouponDelete.js +5 -3
  28. package/cart/components/CartItem/CartItemCouponFreeShipping.js +4 -1
  29. package/cart/components/CartItem/CartItemCouponIcon.js +7 -6
  30. package/cart/components/CartItem/CartItemCouponLayout.js +44 -35
  31. package/cart/components/CartItem/CartItemCouponPrice.js +6 -4
  32. package/cart/components/CartItem/CartItemCouponTitle.js +5 -3
  33. package/cart/components/CartItem/CartItemProduct.js +24 -17
  34. package/cart/components/CartItem/CartItemProductLayout.js +105 -85
  35. package/cart/components/CartItem/CartItemProductLayoutWide.js +100 -87
  36. package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.js +5 -3
  37. package/cart/components/CartItem/CartItemProductLayoutWideOrderDetails.js +18 -12
  38. package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +7 -5
  39. package/cart/components/CartItem/CartItemProductOrderDetails.js +54 -40
  40. package/cart/components/CartItem/CartItemProductPriceCaption.js +7 -5
  41. package/cart/components/CartItem/CartItemProductPriceList.js +30 -27
  42. package/cart/components/CartItem/CartItemProductPriceListPromotion.js +37 -32
  43. package/cart/components/CartItem/CartItemProductProvider.js +7 -3
  44. package/cart/components/CartItem/CartItemProductProviderLegacy.js +22 -14
  45. package/cart/components/CartItem/CartItemProductTitle.js +57 -45
  46. package/cart/components/CartItem/CartItemProvider.js +6 -4
  47. package/cart/components/CartItem/CartItemQuantityPicker.js +49 -55
  48. package/cart/components/CartItem/CartItemSubstitution.js +11 -8
  49. package/cart/components/CartItems/CartItemCard.js +10 -6
  50. package/cart/components/CartItems/CartItemCardReservation.js +28 -22
  51. package/cart/components/CartItems/CartItemCardReservationAccordion.js +20 -15
  52. package/cart/components/CartItems/CartItemCardReservationLabel.js +28 -20
  53. package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +7 -5
  54. package/cart/components/CartItems/CartItemGroup.js +7 -4
  55. package/cart/components/CartItems/CartItemGroupReservation.js +25 -19
  56. package/cart/components/CartItems/CartItemGroupReservationLabel.js +13 -7
  57. package/cart/components/CartItems/CartItemGroupShipping.js +15 -7
  58. package/cart/components/CartItems/CartItems.js +56 -45
  59. package/cart/components/CartItems/CartItemsHeaderWide.js +48 -37
  60. package/cart/components/CartItems/CartItemsSubstitution.js +18 -12
  61. package/cart/components/CartSummaryWide/CartSummaryWide.js +34 -30
  62. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +22 -17
  63. package/cart/components/CartSummaryWide/CartSummaryWideFooter.js +2 -1
  64. package/cart/components/PaymentBar/PaymentBar.js +2 -1
  65. package/cart/components/PaymentBar/PaymentBarAppliedPromotions.js +18 -17
  66. package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +19 -15
  67. package/cart/components/PaymentBar/PaymentBarContent.js +34 -27
  68. package/cart/components/PaymentBar/PaymentBarDiscounts.js +24 -22
  69. package/cart/components/PaymentBar/PaymentBarGrandTotal.js +18 -15
  70. package/cart/components/PaymentBar/PaymentBarPromotionCouponMessages.js +15 -11
  71. package/cart/components/PaymentBar/PaymentBarPromotionCoupons.js +40 -36
  72. package/cart/components/PaymentBar/PaymentBarPromotionalText.js +22 -17
  73. package/cart/components/PaymentBar/PaymentBarReserveButton.js +15 -12
  74. package/cart/components/PaymentBar/PaymentBarShippingCost.js +20 -17
  75. package/cart/components/PaymentBar/PaymentBarSubTotal.js +18 -15
  76. package/cart/components/PaymentBar/PaymentBarTax.js +20 -17
  77. package/cart/components/Substitution/index.js +21 -16
  78. package/cart/components/SupplementalContent/SupplementalContent.js +2 -1
  79. package/category/components/CategoryImage/index.js +4 -4
  80. package/category/components/CategoryList/index.js +60 -57
  81. package/checkout/components/AddressBook/AddressBook.js +6 -1
  82. package/checkout/components/AddressBook/AddressList.js +31 -24
  83. package/checkout/components/AddressBookContact/AddressBookContact.js +13 -6
  84. package/checkout/components/Checkout/Checkout.js +29 -21
  85. package/checkout/components/Checkout/CheckoutActions.js +17 -12
  86. package/checkout/components/Checkout/CheckoutAddress.js +40 -16
  87. package/checkout/components/Checkout/CheckoutHeader.js +17 -12
  88. package/checkout/components/Checkout/CheckoutPickupContactForm.js +19 -15
  89. package/checkout/components/Checkout/CheckoutSection.js +73 -52
  90. package/checkout/components/Checkout/CheckoutSectionInfo.js +6 -4
  91. package/checkout/components/Checkout/CheckoutSectionMessages.js +16 -14
  92. package/checkout/components/Checkout/CheckoutSummary.js +18 -13
  93. package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +95 -79
  94. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationBilledTo.js +6 -5
  95. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderContact.js +2 -1
  96. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderSummary.js +13 -9
  97. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickUpContact.js +2 -1
  98. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickupNotes.js +2 -1
  99. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationSection.js +59 -44
  100. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationShippedTo.js +4 -3
  101. package/checkout/components/GuestCheckout/GuestCheckout.js +29 -22
  102. package/checkout/components/GuestCheckout/GuestCheckoutOptIn.js +17 -13
  103. package/checkout/components/GuestCheckout/GuestCheckoutPickup.js +16 -7
  104. package/checkout/components/GuestCheckout/GuestCheckoutPickupNotes.js +16 -13
  105. package/checkout/components/PaymentMethodButton/PaymentMethodButton.js +5 -3
  106. package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +15 -12
  107. package/checkout/components/ShippingMethods/ShippingMethod.js +22 -15
  108. package/checkout/components/ShippingMethods/ShippingMethods.js +49 -41
  109. package/checkout/components/SupplementalContent/SupplementalContent.js +2 -1
  110. package/checkout/helpers/index.js +2 -2
  111. package/checkout/paymentMethods/index.js +33 -28
  112. package/checkout/paymentMethods/paypal/PaypalButton.js +7 -2
  113. package/checkout/paymentMethods/paypal/PaypalButtonApp.js +9 -5
  114. package/checkout/paymentMethods/paypal/PaypalButtonWeb.js +14 -11
  115. package/checkout/paymentMethods/paypal/PaypalPayButton.js +9 -5
  116. package/checkout/paymentMethods/stripe/StripeButton.js +33 -25
  117. package/checkout/paymentMethods/stripe/StripeCreditCard.js +70 -60
  118. package/checkout/paymentMethods/stripe/StripePayButton.js +5 -3
  119. package/checkout/paymentMethods/stripe/StripeProvider.js +11 -10
  120. package/checkout/providers/AddressBookProvider.js +5 -3
  121. package/checkout/providers/CheckoutProvider.js +14 -15
  122. package/checkout/selectors/guestCheckout.js +1 -1
  123. package/components/BrandingColorBanner/BrandingColorBanner.js +7 -5
  124. package/components/ChipLayout/index.js +64 -49
  125. package/components/ChipLayout/spec.js +16 -8
  126. package/components/ConnectedReactPortal/index.js +19 -21
  127. package/components/Footer/Footer.js +9 -6
  128. package/components/Form/Builder/Builder.js +85 -74
  129. package/components/Form/Builder/ElementCheckbox.js +19 -17
  130. package/components/Form/Builder/ElementMultiSelect.js +42 -38
  131. package/components/Form/Builder/ElementPhoneNumber.js +39 -36
  132. package/components/Form/Builder/ElementRadio.js +25 -23
  133. package/components/Form/Builder/ElementSelect.js +25 -23
  134. package/components/Form/Builder/ElementText.js +22 -20
  135. package/components/Form/Builder/FormHelper.js +18 -15
  136. package/components/Form/Builder/classes/ActionListener.js +400 -401
  137. package/components/Form/Form.js +23 -15
  138. package/components/IntersectionVisibility/index.js +23 -17
  139. package/components/Logo/index.js +9 -7
  140. package/components/Logo/spec.js +2 -1
  141. package/components/Menu/components/Item/index.js +12 -8
  142. package/components/Menu/components/Position/index.js +20 -12
  143. package/components/Menu/index.js +60 -60
  144. package/components/MessageBar/MessageBar.js +35 -31
  145. package/components/NavigationHandler/index.js +14 -8
  146. package/components/NavigationHandler/spec.js +9 -3
  147. package/components/Picker/components/Button/index.js +11 -7
  148. package/components/Picker/components/List/index.js +19 -16
  149. package/components/Picker/components/Modal/index.js +34 -25
  150. package/components/Picker/index.js +44 -33
  151. package/components/Picker/spec.js +4 -1
  152. package/components/PickerUtilize/components/Button/index.js +11 -7
  153. package/components/PickerUtilize/index.js +56 -43
  154. package/components/PickerUtilize/spec.js +2 -1
  155. package/components/QuantityInput/QuantityInput.js +5 -5
  156. package/components/QuantityLabel/QuantityLabel.js +5 -3
  157. package/components/Radio/Radio.js +28 -24
  158. package/components/RadioCard/RadioCard.js +26 -22
  159. package/components/RadioGroup/RadioGroup.js +16 -12
  160. package/components/RangeSlider/components/Handle/index.js +8 -6
  161. package/components/RangeSlider/index.js +108 -114
  162. package/components/RangeSlider/spec.js +9 -6
  163. package/components/ScrollHeader/index.js +5 -3
  164. package/components/SheetDrawer/index.js +4 -3
  165. package/components/SheetList/components/Item/index.js +67 -47
  166. package/components/SheetList/components/Item/spec.js +18 -13
  167. package/components/SheetList/index.js +40 -30
  168. package/components/SheetList/spec.js +20 -14
  169. package/components/SheetList/style.js +1 -1
  170. package/components/SideNavigation/SideNavigation.js +7 -5
  171. package/components/SideNavigation/SideNavigationCategories.js +14 -11
  172. package/components/SideNavigation/SideNavigationCategoriesItem.js +17 -13
  173. package/components/SideNavigation/SideNavigationCategoriesItemChildren.js +7 -5
  174. package/components/SideNavigation/SideNavigationContent.js +13 -8
  175. package/components/SideNavigation/SideNavigationItem.js +24 -19
  176. package/components/SideNavigation/SideNavigationLinks.js +36 -30
  177. package/components/SideNavigation/SideNavigationLinksLegal.js +4 -5
  178. package/components/SideNavigation/SideNavigationLinksQuicklinks.js +3 -3
  179. package/components/SideNavigation/SideNavigationNestedItem.js +11 -8
  180. package/components/SideNavigation/SideNavigationProvider.js +5 -3
  181. package/components/SnackBarContainer/index.js +9 -2
  182. package/components/Switch/index.js +20 -14
  183. package/components/Tabs/TabContext.js +5 -3
  184. package/components/Tabs/components/Tab.js +8 -5
  185. package/components/Tabs/components/TabIndicator.js +5 -4
  186. package/components/Tabs/components/TabPanel.js +5 -3
  187. package/components/Tabs/components/Tabs.js +15 -11
  188. package/components/Tabs/useEventCallback.js +1 -1
  189. package/components/TextLink/TextLink.js +4 -3
  190. package/components/TimeBoundary/index.js +31 -22
  191. package/components/TimeBoundary/spec.js +13 -9
  192. package/components/Toggle/index.js +21 -18
  193. package/components/Typography/Typography.js +5 -5
  194. package/components/VideoPlayer/index.js +45 -35
  195. package/components/View/components/Above/index.js +17 -14
  196. package/components/View/components/Below/index.js +17 -14
  197. package/components/View/components/Content/components/ParallaxProvider/index.js +8 -5
  198. package/components/View/components/Content/index.js +102 -83
  199. package/components/View/index.js +28 -19
  200. package/components/View/provider.js +61 -50
  201. package/core/classes/GeolocationRequest.js +9 -7
  202. package/core/classes/GeolocationRequestApp.js +7 -5
  203. package/core/classes/GeolocationRequestBrowser.js +7 -4
  204. package/core/collections/AppInitialization.js +11 -10
  205. package/core/config/ThemeConfigResolver.js +21 -19
  206. package/core/helpers/errorBehavior.js +4 -4
  207. package/core/hocs/withApp.js +7 -4
  208. package/core/hocs/withCurrentProduct.js +5 -2
  209. package/core/hocs/withForwardedRef.js +5 -2
  210. package/core/hocs/withNavigation.js +5 -2
  211. package/core/hocs/withRoute.js +7 -2
  212. package/core/hocs/withTheme.js +13 -8
  213. package/core/hocs/withThemeResources.js +10 -7
  214. package/core/hocs/withWidgetSettings.js +5 -4
  215. package/core/hocs/withWidgetStyles.js +5 -4
  216. package/core/hooks/events/appEvents.d.ts +83 -0
  217. package/core/hooks/events/appEvents.js +125 -0
  218. package/core/hooks/events/index.js +1 -0
  219. package/core/hooks/index.js +1 -0
  220. package/core/hooks/useLocalStorage.d.ts +8 -0
  221. package/core/hooks/useLocalStorage.js +38 -0
  222. package/core/providers/AppProvider.js +38 -27
  223. package/core/providers/ThemeResourcesProvider.js +8 -5
  224. package/development/components/ClientInformation/ClientInformation.js +18 -13
  225. package/development/components/DevelopmentSettings/DevelopmentSettings.js +18 -14
  226. package/development/components/DevelopmentTools/DevelopmentTools.js +6 -1
  227. package/development/components/SimulatedInsets/SimulatedInsetBottom.js +9 -8
  228. package/development/components/SimulatedInsets/SimulatedInsetTop.js +15 -12
  229. package/development/components/SimulatedInsets/SimulatedInsets.js +12 -8
  230. package/favorites/components/CommentDialog/CommentDialog.js +29 -27
  231. package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +5 -3
  232. package/favorites/components/Item/Item.js +120 -100
  233. package/favorites/components/Item/ItemCharacteristics.js +10 -7
  234. package/favorites/components/Item/ItemNotes.js +33 -22
  235. package/favorites/components/Item/ItemQuantity.js +14 -12
  236. package/favorites/components/ItemFulfillmentMethod/ItemFulfillmentMethod.js +16 -12
  237. package/favorites/components/List/List.js +32 -27
  238. package/favorites/components/List/ListAccordionHeader.js +14 -8
  239. package/favorites/components/List/ListAccordionLabel.js +5 -3
  240. package/favorites/components/List/ListContent.js +45 -40
  241. package/favorites/components/List/ListItemWrapper.js +22 -19
  242. package/favorites/components/ListChooser/ListChooser.js +17 -14
  243. package/favorites/components/ListChooser/ListChooserItem.js +13 -9
  244. package/favorites/components/Lists/Lists.js +39 -35
  245. package/favorites/components/Lists/ListsModal.js +29 -19
  246. package/favorites/components/RemoveButton/RemoveButton.js +8 -5
  247. package/filter/components/FilterItem/index.js +5 -3
  248. package/filter/components/FilterItem/spec.js +6 -1
  249. package/filter/components/FilterPageContent/components/ApplyButton/index.js +21 -17
  250. package/filter/components/FilterPageContent/components/ApplyButton/spec.js +8 -7
  251. package/filter/components/FilterPageContent/components/ResetButton/index.js +17 -13
  252. package/filter/components/FilterPageContent/components/ResetButton/spec.js +4 -3
  253. package/filter/components/FilterPageContent/components/Selector/components/Selected/index.js +25 -13
  254. package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +3 -2
  255. package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +38 -24
  256. package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +5 -4
  257. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +31 -19
  258. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +4 -3
  259. package/filter/components/FilterPageContent/components/Selector/index.js +58 -43
  260. package/filter/components/FilterPageContent/components/Selector/spec.js +2 -1
  261. package/filter/components/FilterPageContent/index.js +44 -42
  262. package/filter/components/FilterPageContentWithProvider/index.js +7 -5
  263. package/filter/components/PriceSlider/components/Label/index.js +80 -71
  264. package/filter/components/PriceSlider/components/Label/spec.js +2 -1
  265. package/filter/components/PriceSlider/index.js +39 -29
  266. package/filter/components/PriceSlider/spec.js +3 -2
  267. package/filter/hocs/withSort.js +7 -2
  268. package/filter/providers/FilterPageProvider.js +6 -4
  269. package/filter/providers/SortProvider.js +5 -3
  270. package/locations/components/Cart/CartChangeFulfillmentMethod.js +5 -4
  271. package/locations/components/Cart/CartContextMenuChangeFulfillment.js +5 -1
  272. package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.js +10 -8
  273. package/locations/components/Cart/CartContextMenuItemChangeFulfillment.js +7 -5
  274. package/locations/components/Cart/CartContextMenuItemChangeLocation.js +7 -5
  275. package/locations/components/Cart/CartItemProductChangeLocation.js +2 -1
  276. package/locations/components/ChangeLocationButton/ChangeLocationButton.js +15 -12
  277. package/locations/components/FulfillmentPath/FulfillmentPath.js +38 -34
  278. package/locations/components/FulfillmentPath/FulfillmentPathItem.js +10 -6
  279. package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.js +13 -9
  280. package/locations/components/FulfillmentSelector/FulfillmentSelector.js +33 -26
  281. package/locations/components/FulfillmentSelector/FulfillmentSelectorAlternativeLocation.js +44 -34
  282. package/locations/components/FulfillmentSelector/FulfillmentSelectorBOPIS.js +5 -3
  283. package/locations/components/FulfillmentSelector/FulfillmentSelectorDirectShip.js +25 -17
  284. package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.js +8 -3
  285. package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.js +2 -1
  286. package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.js +29 -20
  287. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.js +75 -57
  288. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocationMethodNotAvailable.js +2 -1
  289. package/locations/components/FulfillmentSelector/FulfillmentSelectorROPIS.js +5 -3
  290. package/locations/components/FulfillmentSheet/FulfillmentSheet.js +7 -3
  291. package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +8 -5
  292. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +53 -42
  293. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.js +2 -2
  294. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +12 -10
  295. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +23 -17
  296. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +22 -15
  297. package/locations/components/GlobalLocationSelector/GlobalLocationSelector.js +2 -1
  298. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.js +23 -20
  299. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +27 -20
  300. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +22 -15
  301. package/locations/components/ReservationResponses/ReservationError.js +11 -7
  302. package/locations/components/ReservationResponses/ReservationSuccess.js +17 -11
  303. package/locations/components/ReserveForm/ReserveForm.js +99 -89
  304. package/locations/components/ReserveForm/ReserveFormPhone.js +21 -19
  305. package/locations/components/StockInfo/StockInfo.js +15 -12
  306. package/locations/components/StockInfo/StockInfoInventory.js +2 -1
  307. package/locations/components/StockInfoLists/index.js +24 -19
  308. package/locations/components/StoreDetails/components/FindMoreStores.js +37 -29
  309. package/locations/components/StoreDetails/components/GetDirectionsButton.js +13 -9
  310. package/locations/components/StoreDetails/components/StoreDetails.js +106 -67
  311. package/locations/components/StoreDetails/components/StoreFinderMap.js +23 -21
  312. package/locations/components/StoreDetails/components/StoreLocationMap.js +11 -7
  313. package/locations/components/StoreDetails/components/StoresNearby.js +16 -8
  314. package/locations/components/StoreDetails/components/StoresNearbyListItem.js +63 -47
  315. package/locations/components/StoreDetails/index.js +7 -3
  316. package/locations/components/StoreFinder/StoreFinder.js +16 -11
  317. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +9 -6
  318. package/locations/components/StoreFinder/StoreFinderLocation.js +5 -3
  319. package/locations/components/StoreFinder/StoreFinderLocationDetails.js +11 -8
  320. package/locations/components/StoreFinder/StoreFinderLocationHeader.js +45 -32
  321. package/locations/components/StoreFinder/StoreFinderLocationHeaderPhoneNumber.js +12 -8
  322. package/locations/components/StoreFinder/StoreFinderLocations.js +14 -10
  323. package/locations/components/StoreFinder/StoreFinderSearch.js +7 -5
  324. package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +10 -7
  325. package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +10 -7
  326. package/locations/components/StoreList/StoreAddress.js +33 -21
  327. package/locations/components/StoreList/StoreAddressShort.js +31 -21
  328. package/locations/components/StoreList/StoreCard.js +4 -1
  329. package/locations/components/StoreList/StoreDetails.js +13 -11
  330. package/locations/components/StoreList/StoreDetailsLine.js +17 -13
  331. package/locations/components/StoreList/StoreDistance.js +5 -3
  332. package/locations/components/StoreList/StoreHeader.js +46 -33
  333. package/locations/components/StoreList/StoreHoursToday.js +7 -5
  334. package/locations/components/StoreList/StoreList.js +4 -1
  335. package/locations/components/StoreList/StoreListLocations.js +18 -13
  336. package/locations/components/StoreList/StoreListProduct.js +20 -14
  337. package/locations/components/StoreList/StoreListProductInfo.js +17 -13
  338. package/locations/components/StoreList/StoreListProductName.js +11 -7
  339. package/locations/components/StoreList/StoreListSearch.js +66 -55
  340. package/locations/components/StoreList/StoreListSearchRadius.js +19 -16
  341. package/locations/components/StoreList/StoreOpeningHours.js +19 -13
  342. package/locations/components/StoreList/StoreOpeningHoursLine.js +12 -8
  343. package/locations/components/StoreList/StorePhoneNumber.js +17 -13
  344. package/locations/components/StoreList/StoreSelectLocationButton.js +10 -7
  345. package/locations/providers/FulfillmentProvider.connector.js +6 -6
  346. package/locations/providers/FulfillmentProvider.js +24 -23
  347. package/locations/providers/StoreDetailsProvider.js +5 -3
  348. package/locations/providers/StoreFinderProvider.js +5 -3
  349. package/login/components/ForgotPassword/ForgotPassword.js +64 -50
  350. package/orders/components/OrderDetails/OrderDetails.js +9 -6
  351. package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +63 -47
  352. package/orders/components/OrderDetails/OrderDetailsContent.js +9 -5
  353. package/orders/components/OrderDetails/OrderDetailsOrder.js +44 -39
  354. package/orders/components/OrderDetails/OrderDetailsOrderHeader.js +39 -31
  355. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.js +2 -1
  356. package/orders/components/OrderHistory/OrderHistory.js +27 -22
  357. package/orders/components/OrderHistory/OrderHistoryList.js +47 -35
  358. package/orders/components/OrderHistory/OrderHistoryLoader.js +19 -16
  359. package/orders/components/OrderHistory/OrderHistoryTable.js +57 -34
  360. package/orders/providers/OrderDetailsPrivateProvider.js +5 -3
  361. package/orders/providers/OrderDetailsProvider.js +6 -4
  362. package/orders/providers/OrderHistoryProvider.js +5 -3
  363. package/orders/reducers/orders.js +1 -1
  364. package/package.json +10 -10
  365. package/page/components/NotFound.js +28 -23
  366. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.js +48 -27
  367. package/page/components/WidgetHeadline/WidgetHeadline.js +6 -4
  368. package/page/components/WidgetRichText/WidgetRichText.js +5 -3
  369. package/page/components/WidgetVideo/WidgetVideo.js +159 -0
  370. package/page/components/WidgetVideo/index.js +1 -0
  371. package/page/components/Widgets/Overlay.js +12 -12
  372. package/page/components/Widgets/Tooltip.js +13 -11
  373. package/page/components/Widgets/Widget.js +34 -25
  374. package/page/components/Widgets/WidgetProvider.js +5 -3
  375. package/page/components/Widgets/Widgets.js +22 -19
  376. package/page/components/Widgets/WidgetsPreviewProvider.js +5 -3
  377. package/page/hooks/index.js +7 -14
  378. package/page/selectors/index.js +7 -24
  379. package/page/widgets/Button/Button.js +13 -9
  380. package/page/widgets/CategoryList/CategoryList.js +11 -8
  381. package/page/widgets/CategoryList/hooks.js +1 -1
  382. package/page/widgets/HTML/HTML.js +5 -3
  383. package/page/widgets/Headline/Headline.js +2 -1
  384. package/page/widgets/HeroBanner/HeroBanner.js +51 -23
  385. package/page/widgets/HeroBanner/hooks.js +19 -4
  386. package/page/widgets/Image/Image.js +14 -11
  387. package/page/widgets/ImageRow/ImageRow.js +53 -28
  388. package/page/widgets/ImageRow/hooks.js +14 -2
  389. package/page/widgets/ImageSlider/ImageSlider.js +27 -22
  390. package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +164 -0
  391. package/page/widgets/NestedCategoryFilter/components/Picker/components/Sheet/index.js +59 -0
  392. package/page/widgets/NestedCategoryFilter/components/Picker/components/SheetItem/index.js +60 -0
  393. package/page/widgets/NestedCategoryFilter/components/Picker/index.js +124 -0
  394. package/page/widgets/NestedCategoryFilter/hooks.js +35 -0
  395. package/page/widgets/NestedCategoryFilter/index.js +1 -0
  396. package/page/widgets/Placeholder/Placeholder.js +16 -12
  397. package/page/widgets/ProductList/ProductList.js +34 -18
  398. package/page/widgets/ProductList/hooks.js +4 -2
  399. package/page/widgets/ProductSlider/ProductSlider.js +27 -23
  400. package/page/widgets/RichText/RichText.js +2 -1
  401. package/page/widgets/Video/Video.js +14 -55
  402. package/page/widgets/Video/hooks.js +6 -2
  403. package/page/widgets/index.js +2 -1
  404. package/page/widgets/widgets.json +3 -0
  405. package/product/components/Availability/Availability.js +14 -11
  406. package/product/components/Characteristics/Characteristic/components/Sheet/index.js +104 -84
  407. package/product/components/Characteristics/Characteristic/components/SheetItem/index.js +41 -27
  408. package/product/components/Characteristics/Characteristic/index.js +83 -64
  409. package/product/components/Characteristics/Swatch/index.js +54 -38
  410. package/product/components/Characteristics/index.js +36 -20
  411. package/product/components/Description/index.js +27 -20
  412. package/product/components/EffectivityDates/index.js +42 -37
  413. package/product/components/FilterBar/FilterBarProvider.js +5 -3
  414. package/product/components/FilterBar/components/Content/components/FilterButton/index.js +24 -17
  415. package/product/components/FilterBar/components/Content/components/FilterChips/index.js +24 -19
  416. package/product/components/FilterBar/components/Content/components/Sort/components/Item/index.js +5 -3
  417. package/product/components/FilterBar/components/Content/components/Sort/index.js +14 -12
  418. package/product/components/FilterBar/components/Content/index.js +15 -11
  419. package/product/components/FilterBar/components/Content/spec.js +7 -6
  420. package/product/components/FilterBar/components/FilterModal/FilterModal.js +21 -16
  421. package/product/components/FilterBar/components/FilterModal/FilterModalContent.js +12 -9
  422. package/product/components/FilterBar/components/FilterModal/FilterModalTitle.js +22 -16
  423. package/product/components/FilterBar/index.js +16 -10
  424. package/product/components/Header/PriceStriked/index.js +32 -23
  425. package/product/components/Header/Shipping/components/Label/index.js +14 -11
  426. package/product/components/Header/Shipping/index.js +19 -14
  427. package/product/components/Header/Shipping/spec.js +7 -5
  428. package/product/components/Header/Tiers/components/Tier/index.js +10 -9
  429. package/product/components/Header/Tiers/components/Tier/spec.js +3 -2
  430. package/product/components/Header/Tiers/index.js +17 -13
  431. package/product/components/Header/Tiers/spec.js +6 -5
  432. package/product/components/MapPriceHint/index.js +14 -11
  433. package/product/components/Media/FeaturedMedia.js +8 -6
  434. package/product/components/Media/MediaImage.js +19 -16
  435. package/product/components/Media/MediaPlaceholder.js +11 -8
  436. package/product/components/MediaSlider/components/MediaImage/index.js +9 -7
  437. package/product/components/MediaSlider/components/MediaVideo/index.js +24 -19
  438. package/product/components/MediaSlider/index.js +29 -23
  439. package/product/components/Options/components/Content/index.js +52 -44
  440. package/product/components/Options/components/Content/spec.js +3 -2
  441. package/product/components/Options/components/Option/index.js +23 -20
  442. package/product/components/Options/components/TextOption/components/OptionInfo/index.js +31 -24
  443. package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +4 -3
  444. package/product/components/Options/components/TextOption/index.js +84 -69
  445. package/product/components/Options/index.js +17 -13
  446. package/product/components/OrderQuantityHint/index.js +29 -24
  447. package/product/components/PriceDifference/index.js +2 -1
  448. package/product/components/PriceInfo/PriceInfo.js +13 -11
  449. package/product/components/ProductBadges/index.js +9 -6
  450. package/product/components/ProductCard/index.js +54 -47
  451. package/product/components/ProductCharacteristics/index.js +65 -57
  452. package/product/components/ProductDiscountBadge/index.js +18 -14
  453. package/product/components/ProductDiscountBadge/spec.js +7 -5
  454. package/product/components/ProductFilters/index.js +25 -21
  455. package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +29 -25
  456. package/product/components/ProductGrid/components/Item/components/ItemDetails/spec.js +10 -5
  457. package/product/components/ProductGrid/components/Item/components/ItemDiscount/index.js +11 -8
  458. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/index.js +14 -11
  459. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +14 -11
  460. package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +10 -8
  461. package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +2 -1
  462. package/product/components/ProductGrid/components/Item/components/ItemName/index.js +11 -8
  463. package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +4 -1
  464. package/product/components/ProductGrid/components/Item/components/ItemPrice/index.js +7 -5
  465. package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +7 -4
  466. package/product/components/ProductGrid/components/Item/index.js +36 -31
  467. package/product/components/ProductGrid/components/Iterator/index.js +15 -12
  468. package/product/components/ProductGrid/components/Layout/index.js +5 -3
  469. package/product/components/ProductGrid/index.js +34 -30
  470. package/product/components/ProductGrid/spec.js +3 -2
  471. package/product/components/ProductGridPrice/index.js +37 -24
  472. package/product/components/ProductImage/ProductImagePlaceholder.js +7 -5
  473. package/product/components/ProductImage/index.js +57 -45
  474. package/product/components/ProductImage/spec.js +9 -8
  475. package/product/components/ProductList/components/Item/index.js +172 -152
  476. package/product/components/ProductList/components/Iterator/index.js +27 -24
  477. package/product/components/ProductList/components/Layout/index.js +5 -3
  478. package/product/components/ProductList/index.js +33 -27
  479. package/product/components/ProductName/ProductName.js +19 -15
  480. package/product/components/ProductName/ProductNameContent.js +14 -9
  481. package/product/components/ProductProperties/Content.js +12 -8
  482. package/product/components/ProductProperties/Group.js +12 -8
  483. package/product/components/ProductProperties/GroupedProperties.js +18 -15
  484. package/product/components/ProductProperties/Lists.js +12 -9
  485. package/product/components/ProductProperties/ListsHTML.js +11 -9
  486. package/product/components/ProductProperties/ProductProperties.js +7 -5
  487. package/product/components/ProductProperties/Row.js +22 -18
  488. package/product/components/ProductProperties/RowHTML.js +14 -10
  489. package/product/components/ProductProperties/Rows.js +5 -6
  490. package/product/components/ProductProperties/Wrapper.js +9 -3
  491. package/product/components/ProductSlider/index.js +28 -23
  492. package/product/components/ProductSlider/spec.js +5 -2
  493. package/product/components/ProductVariants/VariantAvailability.js +9 -7
  494. package/product/components/QuantityPicker/index.js +11 -8
  495. package/product/components/Rating/index.js +16 -13
  496. package/product/components/Rating/spec.js +7 -5
  497. package/product/components/RelationsSlider/RelationsSheet.js +22 -16
  498. package/product/components/RelationsSlider/RelationsSlider.js +2 -1
  499. package/product/components/RelationsSlider/RelationsSliderContent.js +30 -25
  500. package/product/components/Swatch/Swatch.js +2 -1
  501. package/product/components/Swatch/SwatchContent.js +25 -23
  502. package/product/components/Swatch/VariantSwatch.js +2 -1
  503. package/product/components/Swatches/Swatches.js +10 -8
  504. package/product/components/UnitQuantityPicker/CartUnitQuantityPicker.js +2 -1
  505. package/product/components/UnitQuantityPicker/ProductUnitQuantityPicker.js +32 -24
  506. package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +70 -62
  507. package/product/components/UnitQuantityPicker/UnitQuantityPickerWithSection.js +17 -14
  508. package/product/hocs/withMapPricing.js +30 -18
  509. package/product/hocs/withPriceCalculation.js +7 -2
  510. package/product/hocs/withProductListEntry.js +7 -4
  511. package/product/hocs/withProductListEntryProduct.js +4 -1
  512. package/product/hocs/withProductListType.js +7 -4
  513. package/product/providers/ProductListEntry/index.js +5 -3
  514. package/product/providers/ProductListType/index.js +5 -3
  515. package/product/selectors/helpers/wrapMemoizedSelector.js +2 -2
  516. package/push-opt-in/components/PushOptInModal/index.js +52 -42
  517. package/registration/components/GuestRegistration/GuestRegistration.js +8 -5
  518. package/registration/components/GuestRegistration/GuestRegistrationContent.js +21 -17
  519. package/registration/components/GuestRegistration/GuestRegistrationFormPickup.js +17 -14
  520. package/registration/components/Registration/Registration.js +7 -5
  521. package/registration/components/Registration/RegistrationContent.js +14 -8
  522. package/registration/components/Registration/RegistrationFormActions.js +11 -8
  523. package/registration/components/Registration/RegistrationFormBase.js +12 -10
  524. package/registration/components/Registration/RegistrationFormBilling.js +12 -10
  525. package/registration/components/Registration/RegistrationFormExtra.js +12 -10
  526. package/registration/components/Registration/RegistrationFormShipping.js +12 -10
  527. package/registration/components/Registration/RegistrationFormToggle.js +15 -12
  528. package/registration/providers/GuestRegistrationProvider.actions.js +3 -3
  529. package/registration/providers/GuestRegistrationProvider.js +5 -3
  530. package/registration/providers/RegistrationProvider.actions.js +2 -2
  531. package/registration/providers/RegistrationProvider.js +7 -5
  532. package/reviews/components/Reviews/components/AllReviewsLink/index.js +11 -8
  533. package/reviews/components/Reviews/components/Header/components/AverageRating/index.js +10 -8
  534. package/reviews/components/Reviews/components/Header/components/NoReviews/index.js +16 -11
  535. package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/index.js +21 -17
  536. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +12 -9
  537. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +7 -5
  538. package/reviews/components/Reviews/components/Header/index.js +3 -2
  539. package/reviews/components/Reviews/components/Header/spec.js +7 -3
  540. package/reviews/components/Reviews/components/List/components/Info/components/Author/index.js +2 -1
  541. package/reviews/components/Reviews/components/List/components/Info/components/ReviewDate/index.js +2 -1
  542. package/reviews/components/Reviews/components/List/components/Info/index.js +9 -7
  543. package/reviews/components/Reviews/components/List/components/Rating/index.js +8 -6
  544. package/reviews/components/Reviews/components/List/components/Review/index.js +13 -11
  545. package/reviews/components/Reviews/components/List/components/Text/index.js +5 -3
  546. package/reviews/components/Reviews/components/List/components/Title/index.js +5 -3
  547. package/reviews/components/Reviews/components/List/index.js +34 -24
  548. package/reviews/components/Reviews/components/List/spec.js +2 -1
  549. package/reviews/components/Reviews/components/RatingCount/index.js +2 -1
  550. package/reviews/components/Reviews/components/RatingCount/spec.js +3 -2
  551. package/reviews/components/Reviews/components/ReviewsInfo/index.js +11 -6
  552. package/reviews/components/Reviews/index.js +16 -13
  553. package/reviews/components/Reviews/spec.js +8 -6
  554. package/styles/theme/createTheme/createBreakpoints.js +1 -1
  555. package/styles/theme/hooks/useResponsiveValue.js +1 -1
  556. package/styles/theme/providers/ActiveBreakpointProvider.js +6 -4
  557. package/styles/theme/providers/ThemeProvider.js +7 -3
  558. package/tracking/components/CookieConsentModal/index.js +83 -66
  559. package/tracking/components/PrivacySettings/index.js +104 -78
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import React from 'react';
3
2
  import { RouteContext } from '@shopgate/pwa-common/context';
4
3
 
@@ -8,6 +7,7 @@ import { RouteContext } from '@shopgate/pwa-common/context';
8
7
  * @param {string|null} prop The optional prop name.
9
8
  * @returns {Object}
10
9
  */
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  const getInjectedProps = (context, prop) => {
12
12
  if (!prop) {
13
13
  return context;
@@ -32,7 +32,12 @@ export function withRoute(WrappedComponent, options = {}) {
32
32
  * @param {Object} props The component props.
33
33
  * @returns {JSX}
34
34
  */
35
- const WithRoute = props => /*#__PURE__*/React.createElement(RouteContext.Consumer, null, routeContext => /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, getInjectedProps(routeContext, options.prop), props)));
35
+ const WithRoute = props => /*#__PURE__*/_jsx(RouteContext.Consumer, {
36
+ children: routeContext => /*#__PURE__*/_jsx(WrappedComponent, {
37
+ ...getInjectedProps(routeContext, options.prop),
38
+ ...props
39
+ })
40
+ });
36
41
  const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
37
42
  WithRoute.displayName = `WithRoute(${displayName})`;
38
43
  return WithRoute;
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import React from 'react';
3
2
  import { ThemeContext } from '@shopgate/pwa-common/context';
4
3
 
@@ -8,6 +7,7 @@ import { ThemeContext } from '@shopgate/pwa-common/context';
8
7
  * @param {string|null} prop The optional prop name.
9
8
  * @returns {Object}
10
9
  */
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  const getInjectedProps = (context, prop) => {
12
12
  if (!prop) {
13
13
  return context;
@@ -71,13 +71,18 @@ export function withTheme(WrappedComponent, options = {}) {
71
71
  * @param {Object} props The component props.
72
72
  * @returns {JSX.Element}
73
73
  */
74
- const WithTheme = props => /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, ({
75
- contexts,
76
- ...themeContext
77
- }) =>
78
- /*#__PURE__*/
79
- // The contexts are left out in favor of other HOCs.
80
- React.createElement(WrappedComponent, _extends({}, getInjectedProps(themeContext, options.prop), props)));
74
+ const WithTheme = props => /*#__PURE__*/_jsx(ThemeContext.Consumer, {
75
+ children: ({
76
+ contexts,
77
+ ...themeContext
78
+ }) =>
79
+ /*#__PURE__*/
80
+ // The contexts are left out in favor of other HOCs.
81
+ _jsx(WrappedComponent, {
82
+ ...getInjectedProps(themeContext, options.prop),
83
+ ...props
84
+ })
85
+ });
81
86
  const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
82
87
  WithTheme.displayName = `WithTheme(${displayName})`;
83
88
  return WithTheme;
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import React from 'react';
3
2
  import { useThemeResources, useThemeComponents, useThemeWidgets } from '@shopgate/engage/core/hooks';
4
3
 
@@ -8,11 +7,13 @@ import { useThemeResources, useThemeComponents, useThemeWidgets } from '@shopgat
8
7
  * @param {React.ComponentType<any>} WrappedComponent The wrapped component
9
8
  * @returns {React.FC<any>}
10
9
  */
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  export const withThemeResources = WrappedComponent => function ThemeResourcesWrapper(props) {
12
12
  const themeResources = useThemeResources();
13
- return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, props, {
13
+ return /*#__PURE__*/_jsx(WrappedComponent, {
14
+ ...props,
14
15
  themeResources: themeResources
15
- }));
16
+ });
16
17
  };
17
18
 
18
19
  /**
@@ -23,9 +24,10 @@ export const withThemeResources = WrappedComponent => function ThemeResourcesWra
23
24
  */
24
25
  export const withThemeComponents = WrappedComponent => function ThemeResourcesWrapper(props) {
25
26
  const themeComponents = useThemeComponents();
26
- return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, props, {
27
+ return /*#__PURE__*/_jsx(WrappedComponent, {
28
+ ...props,
27
29
  themeComponents: themeComponents
28
- }));
30
+ });
29
31
  };
30
32
 
31
33
  /**
@@ -42,7 +44,8 @@ export const withThemeWidgets = (WrappedComponent, options = {}) => function The
42
44
  version = 'v1'
43
45
  } = options;
44
46
  const themeWidgets = useThemeWidgets(version);
45
- return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, props, {
47
+ return /*#__PURE__*/_jsx(WrappedComponent, {
48
+ ...props,
46
49
  themeWidgets: themeWidgets
47
- }));
50
+ });
48
51
  };
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import React from 'react';
3
2
  import { useWidgetSettings } from "../hooks/useWidgetSettings";
4
3
 
@@ -11,6 +10,7 @@ import { useWidgetSettings } from "../hooks/useWidgetSettings";
11
10
  * @param {number|undefined} [index] The optional index of the widget.
12
11
  * @returns {JSX}
13
12
  */
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
14
  export function withWidgetSettings(WrappedComponent, widgetId, index) {
15
15
  /**
16
16
  * The actual HOC.
@@ -19,9 +19,10 @@ export function withWidgetSettings(WrappedComponent, widgetId, index) {
19
19
  */
20
20
  const WithWidgetSettings = props => {
21
21
  const settings = useWidgetSettings(widgetId, index);
22
- return /*#__PURE__*/React.createElement(WrappedComponent, _extends({
23
- widgetSettings: settings
24
- }, props));
22
+ return /*#__PURE__*/_jsx(WrappedComponent, {
23
+ widgetSettings: settings,
24
+ ...props
25
+ });
25
26
  };
26
27
  const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
27
28
  WithWidgetSettings.displayName = `WithWidgetSettings(${displayName})`;
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import React from 'react';
3
2
  import { useWidgetStyles } from "../hooks/useWidgetStyles";
4
3
 
@@ -9,6 +8,7 @@ import { useWidgetStyles } from "../hooks/useWidgetStyles";
9
8
  * @param {number|undefined} [index] The optional index of the widget.
10
9
  * @returns {Object}
11
10
  */
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
12
  export function withWidgetStyles(WrappedComponent, widgetId, index) {
13
13
  /**
14
14
  * The actual HOC.
@@ -17,9 +17,10 @@ export function withWidgetStyles(WrappedComponent, widgetId, index) {
17
17
  */
18
18
  const WithWidgetStyles = props => {
19
19
  const styles = useWidgetStyles(widgetId, index);
20
- return /*#__PURE__*/React.createElement(WrappedComponent, _extends({
21
- widgetStyles: styles
22
- }, props));
20
+ return /*#__PURE__*/_jsx(WrappedComponent, {
21
+ widgetStyles: styles,
22
+ ...props
23
+ });
23
24
  };
24
25
  const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
25
26
  WithWidgetStyles.displayName = `WithWidgetStyles(${displayName})`;
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Additional options for app event hooks.
3
+ */
4
+ export interface AppEventOptions {
5
+ /**
6
+ * When false, no listener is registered.
7
+ * @default true
8
+ */
9
+ enabled?: boolean;
10
+ /**
11
+ * When true, the callback is removed after first call.
12
+ * @default false
13
+ */
14
+ once?: boolean;
15
+ }
16
+
17
+ /**
18
+ * Extended options for return-from-background hook.
19
+ */
20
+ export interface ReturnFromBackgroundOptions extends AppEventOptions {
21
+ /**
22
+ * If true, requires a new background event to re-arm before firing again.
23
+ * If false, remains armed until disabled or unmounted.
24
+ * @default true
25
+ */
26
+ resetAfterFire?: boolean;
27
+ }
28
+
29
+ /**
30
+ * Registers a callback for a given event from the Shopgate app event bus.
31
+ *
32
+ * Automatically unsubscribes on unmount. Can optionally run only once.
33
+ *
34
+ * @param name The event name to subscribe to.
35
+ * @param callback The function to call when the event fires.
36
+ * @param options Additional options.
37
+ */
38
+ export declare function useAppEvent(
39
+ name: string,
40
+ callback: () => void,
41
+ options?: AppEventOptions
42
+ ): void;
43
+
44
+ /**
45
+ * Registers a callback that fires when the app will enter foreground.
46
+ *
47
+ * Automatically unsubscribes on unmount.
48
+ *
49
+ * @param callback The callback to run when entering foreground.
50
+ * @param options Additional options.
51
+ */
52
+ export declare function useAppEventOnEnterForeground(
53
+ callback: () => void,
54
+ options?: AppEventOptions
55
+ ): void;
56
+
57
+ /**
58
+ * Registers a callback that fires when the app did enter background.
59
+ *
60
+ * Automatically unsubscribes on unmount.
61
+ *
62
+ * @param callback The callback to run when entering background.
63
+ * @param options Additional options.
64
+ */
65
+ export declare function useAppEventOnDidEnterBackground(
66
+ callback: () => void,
67
+ options?: AppEventOptions
68
+ ): void;
69
+
70
+ /**
71
+ * Invokes a callback only after the app was first sent to background and then
72
+ * returns to the foreground — i.e. a complete background → foreground cycle.
73
+ *
74
+ * Common use case: user leaves the app to open system settings and returns, so you
75
+ * can re-check permissions or refresh data.
76
+ *
77
+ * @param callback The callback to run after returning from background.
78
+ * @param options Additional options.
79
+ */
80
+ export declare function useAppEventOnReturnFromBackground(
81
+ callback: () => void,
82
+ options?: ReturnFromBackgroundOptions
83
+ ): void;
@@ -0,0 +1,125 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import { APP_EVENT_APPLICATION_WILL_ENTER_FOREGROUND, APP_EVENT_APPLICATION_DID_ENTER_BACKGROUND } from '@shopgate/engage/core/constants';
3
+ import { event } from '@shopgate/engage/core/classes';
4
+
5
+ /**
6
+ * Returns a stable reference to the given callback, preserving the same function identity
7
+ * across renders, while still always calling the latest version of the callback.
8
+ *
9
+ * Useful when passing callbacks into event listeners or effects so they don't re-subscribe
10
+ * on every render but still access up-to-date props/state.
11
+ *
12
+ * @param {Function} fn The callback function whose latest version should be retained.
13
+ * @returns {Function} A stable function reference that always invokes the latest callback.
14
+ */
15
+ function useStableCallback(fn) {
16
+ const ref = useRef(fn);
17
+ ref.current = fn;
18
+ const stable = useRef((...args) => ref.current?.(...args));
19
+ return stable.current;
20
+ }
21
+ /**
22
+ * Registers a callback for a given event from the Shopgate app event bus.
23
+ *
24
+ * Automatically unsubscribes on unmount. Can optionally run only once.
25
+ *
26
+ * @param {string} name The event name to subscribe to.
27
+ * @param {Function} callback The function to call when the event fires.
28
+ * @param {Object} [options] Additional options.
29
+ * @param {boolean} [options.enabled=true] When false, no listener is registered.
30
+ * @param {boolean} [options.once=false] When true, the callback is removed after first call.
31
+ */
32
+ export function useAppEvent(name, callback, options = {}) {
33
+ const {
34
+ enabled = true,
35
+ once = false
36
+ } = options;
37
+ const latest = useStableCallback(callback);
38
+ useEffect(() => {
39
+ if (!enabled) return undefined;
40
+ // eslint-disable-next-line require-jsdoc
41
+ const handler = () => {
42
+ latest();
43
+ if (once) event.removeCallback(name, handler);
44
+ };
45
+ event.addCallback(name, handler);
46
+ return () => event.removeCallback(name, handler);
47
+ }, [name, enabled, once, latest]);
48
+ }
49
+
50
+ /**
51
+ * Registers a callback that fires when the app will enter foreground
52
+ * (`applicationWillEnterForeground`).
53
+ *
54
+ * Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
55
+ *
56
+ * @param {Function} callback The callback to run when entering foreground.
57
+ * @param {Object} [options] Additional options.
58
+ * @param {boolean} [options.enabled=true] When false, the listener is not registered.
59
+ * @param {boolean} [options.once=false] Remove after first call.
60
+ */
61
+ export function useAppEventOnEnterForeground(callback, options) {
62
+ useAppEvent(APP_EVENT_APPLICATION_WILL_ENTER_FOREGROUND, callback, options);
63
+ }
64
+
65
+ /**
66
+ * Registers a callback that fires when the app did enter background
67
+ * (`applicationDidEnterBackground`).
68
+ ** Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
69
+ *
70
+ * @param {Function} callback The callback to run when entering background.
71
+ * @param {Object} [options] Additional options.
72
+ * @param {boolean} [options.enabled=true] When false, the listener is not registered.
73
+ * @param {boolean} [options.once=false] Remove after first call.
74
+ */
75
+ export function useAppEventOnDidEnterBackground(callback, options) {
76
+ useAppEvent(APP_EVENT_APPLICATION_DID_ENTER_BACKGROUND, callback, options);
77
+ }
78
+
79
+ /**
80
+ * Invokes a callback only after the app was first sent to background and then
81
+ * returns to the foreground — i.e. a complete background → foreground cycle.
82
+ *
83
+ * Common use case: user leaves the app to open system settings and returns, so you
84
+ * can re-check permissions or refresh data.
85
+ *
86
+ * Internally, this subscribes to both background and foreground events:
87
+ * - Arms itself when entering background
88
+ * - Fires on next foreground if armed
89
+ *
90
+ * @param {Function} callback The callback to run after returning from background.
91
+ * @param {Object} [options] Additional options.
92
+ * @param {boolean} [options.enabled=true] When false, no listener behavior is active.
93
+ * @param {boolean} [options.once=false] When true, callback fires only for the first cycle.
94
+ * @param {boolean} [options.resetAfterFire=true]
95
+ * If true, requires a new background event to re-arm before firing again.
96
+ * If false, remains armed until disabled or unmounted.
97
+ */
98
+ export function useAppEventOnReturnFromBackground(callback, options = {}) {
99
+ const {
100
+ enabled = true,
101
+ once = false,
102
+ resetAfterFire = true
103
+ } = options;
104
+ const armedRef = useRef(false);
105
+ const firedOnceRef = useRef(false);
106
+ const latest = useStableCallback(callback);
107
+ useAppEventOnDidEnterBackground(() => {
108
+ if (!enabled) return;
109
+ if (once && firedOnceRef.current) return;
110
+ armedRef.current = true;
111
+ }, {
112
+ enabled
113
+ });
114
+ useAppEventOnEnterForeground(() => {
115
+ if (!enabled) return;
116
+ if (once && firedOnceRef.current) return;
117
+ if (armedRef.current) {
118
+ latest();
119
+ if (once) firedOnceRef.current = true;
120
+ if (resetAfterFire) armedRef.current = false;
121
+ }
122
+ }, {
123
+ enabled
124
+ });
125
+ }
@@ -1,3 +1,4 @@
1
+ export * from "./appEvents";
1
2
  export { default as usePressHandler } from "./usePressHandler";
2
3
  export { default as useLongPress } from "./useLongPress";
3
4
  export { default as useScrollDirectionChange } from "./useScrollDirectionChange";
@@ -14,4 +14,5 @@ export { useWidgetStyles } from "./useWidgetStyles";
14
14
  export { useThemeResources, useThemeComponents, useThemeWidgets } from "./useThemeResources";
15
15
  export * from "./html";
16
16
  export { usePrevious } from "./usePrevious";
17
+ export { default as useLocalStorage } from "./useLocalStorage";
17
18
  export { useResponsiveValue } from '@shopgate/engage/components/ResponsiveContainer/hooks';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Custom hook to manage and persist state in localStorage.
3
+ * @param key The key under which the value is stored in localStorage.
4
+ * @returns A tuple containing the stored value and a function to update it.
5
+ */
6
+ export default function useLocalStorage<T = any>(
7
+ key: string
8
+ ): [T | null, (value: T) => void];
@@ -0,0 +1,38 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ import { appConfig } from '@shopgate/engage';
3
+ const {
4
+ appId
5
+ } = appConfig;
6
+
7
+ /**
8
+ * Custom hook to manage and persist state in localStorage.
9
+ * @param {string} key The key under which the value is stored in localStorage.
10
+ * @returns {[any, Function]} A tuple containing the stored value and a function to update it.
11
+ */
12
+ export default function useLocalStorage(key) {
13
+ const readValue = useCallback(() => {
14
+ try {
15
+ return JSON.parse(window.localStorage.getItem(`${appId}_${key}`));
16
+ } catch (error) {
17
+ return null;
18
+ }
19
+ }, [key]);
20
+ const [storedValue, setStoredValue] = useState(readValue);
21
+
22
+ /**
23
+ * Sets a new value both in state and in localStorage.
24
+ * @param {any} value The new value to store.
25
+ */
26
+ const setValue = useCallback(value => {
27
+ try {
28
+ setStoredValue(value);
29
+ window.localStorage.setItem(`${appId}_${key}`, JSON.stringify(value));
30
+ } catch (error) {
31
+ //
32
+ }
33
+ }, [key]);
34
+ useEffect(() => {
35
+ setValue(readValue());
36
+ }, [readValue, setValue]);
37
+ return [storedValue, setValue];
38
+ }
@@ -1,3 +1,5 @@
1
+ import _createClass from "@babel/runtime/helpers/createClass";
2
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
1
3
  import React, { Component } from 'react';
2
4
  import PropTypes from 'prop-types';
3
5
  import appConfig from '@shopgate/pwa-common/helpers/config';
@@ -8,35 +10,40 @@ import AppContext from "../contexts/AppContext";
8
10
  /**
9
11
  * The AppProvider component.
10
12
  */
11
- class AppProvider extends Component {
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ let AppProvider = /*#__PURE__*/function (_Component) {
12
15
  /**
13
16
  * @param {Object} props The component props.
14
17
  */
15
- constructor(props) {
16
- super(props);
18
+ function AppProvider(props) {
19
+ var _this;
20
+ _this = _Component.call(this, props) || this;
17
21
  /**
18
22
  * Sets the isVisible state to TRUE.
19
23
  */
20
- this.setVisible = () => {
21
- this.setIsVisible(true);
24
+ _this.setVisible = () => {
25
+ _this.setIsVisible(true);
22
26
  };
23
27
  /**
24
28
  * Sets the isVisible state to TRUE.
25
29
  */
26
- this.setHidden = () => {
27
- this.setIsVisible(false);
30
+ _this.setHidden = () => {
31
+ _this.setIsVisible(false);
28
32
  };
29
- this.state = {
33
+ _this.state = {
30
34
  isVisible: true
31
35
  };
32
- event.addCallback(APP_EVENT_VIEW_WILL_APPEAR, this.setVisible);
33
- event.addCallback(APP_EVENT_VIEW_WILL_DISAPPEAR, this.setHidden);
36
+ event.addCallback(APP_EVENT_VIEW_WILL_APPEAR, _this.setVisible);
37
+ event.addCallback(APP_EVENT_VIEW_WILL_DISAPPEAR, _this.setHidden);
38
+ return _this;
34
39
  }
35
40
 
36
41
  /**
37
42
  * Removes the event listeners when the component unmounts.
38
43
  */
39
- componentWillUnmount() {
44
+ _inheritsLoose(AppProvider, _Component);
45
+ var _proto = AppProvider.prototype;
46
+ _proto.componentWillUnmount = function componentWillUnmount() {
40
47
  event.removeCallback(APP_EVENT_VIEW_WILL_APPEAR, this.setVisible);
41
48
  event.removeCallback(APP_EVENT_VIEW_WILL_DISAPPEAR, this.setHidden);
42
49
  }
@@ -44,20 +51,13 @@ class AppProvider extends Component {
44
51
  /**
45
52
  * Returns the context value to be passed to consumers.
46
53
  * @returns {Object}
47
- */
48
- get provided() {
49
- return {
50
- appConfig,
51
- isVisible: this.state.isVisible,
52
- setIsVisible: this.setIsVisible
53
- };
54
- }
54
+ */;
55
55
  /**
56
56
  * Sets the isVisible state. It indicates if Engage is visible,
57
57
  * or another WebView is presented to the user.
58
58
  * @param {boolean} value The new value
59
59
  */
60
- setIsVisible(value) {
60
+ _proto.setIsVisible = function setIsVisible(value) {
61
61
  this.setState({
62
62
  isVisible: value
63
63
  });
@@ -65,11 +65,22 @@ class AppProvider extends Component {
65
65
 
66
66
  /**
67
67
  * @returns {JSX}
68
- */
69
- render() {
70
- return /*#__PURE__*/React.createElement(AppContext.Provider, {
71
- value: this.provided
72
- }, this.props.children);
73
- }
74
- }
68
+ */;
69
+ _proto.render = function render() {
70
+ return /*#__PURE__*/_jsx(AppContext.Provider, {
71
+ value: this.provided,
72
+ children: this.props.children
73
+ });
74
+ };
75
+ return _createClass(AppProvider, [{
76
+ key: "provided",
77
+ get: function () {
78
+ return {
79
+ appConfig,
80
+ isVisible: this.state.isVisible,
81
+ setIsVisible: this.setIsVisible
82
+ };
83
+ }
84
+ }]);
85
+ }(Component);
75
86
  export default AppProvider;
@@ -26,6 +26,7 @@ import { ThemeResourcesContext } from "../contexts";
26
26
  * @param {React.ReactNode} props.children The component children.
27
27
  * @returns {JSX.Element}
28
28
  */
29
+ import { jsx as _jsx } from "react/jsx-runtime";
29
30
  const ThemeResourcesProvider = ({
30
31
  widgets,
31
32
  components,
@@ -36,11 +37,13 @@ const ThemeResourcesProvider = ({
36
37
  widgets,
37
38
  components
38
39
  }), [components, widgets]);
39
- return /*#__PURE__*/React.createElement(ThemeResourcesContext.Provider, {
40
- value: value
41
- }, legacyThemeAPI ? /*#__PURE__*/React.createElement(LegacyThemeContext.Provider, {
42
- value: legacyThemeAPI
43
- }, children) : children);
40
+ return /*#__PURE__*/_jsx(ThemeResourcesContext.Provider, {
41
+ value: value,
42
+ children: legacyThemeAPI ? /*#__PURE__*/_jsx(LegacyThemeContext.Provider, {
43
+ value: legacyThemeAPI,
44
+ children: children
45
+ }) : children
46
+ });
44
47
  };
45
48
  ThemeResourcesProvider.defaultProps = {
46
49
  legacyThemeAPI: null
@@ -1,10 +1,10 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
1
  import React, { useState } from 'react';
3
2
  import { useSelector } from 'react-redux';
4
3
  import { makeStyles } from '@shopgate/engage/styles';
5
4
  import { useLongPress } from '@shopgate/engage/core/hooks';
6
5
  import { getClientInformation } from '@shopgate/engage/core/selectors';
7
6
  import DevelopmentSettings from "../DevelopmentSettings";
7
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
8
  const useStyles = makeStyles()(theme => ({
9
9
  root: {
10
10
  position: 'relative',
@@ -56,17 +56,22 @@ const ClientInformation = () => {
56
56
  if (!codebaseVersion) {
57
57
  return null;
58
58
  }
59
- return /*#__PURE__*/React.createElement("div", _extends({
60
- className: cx('ui-shared__client-information', classes.root)
61
- }, longPressAttrs, {
62
- "aria-hidden": true
63
- }), /*#__PURE__*/React.createElement("p", {
64
- className: classes.unselectable
65
- }, `App Version: ${appVersion} (${codebaseVersion})`, /*#__PURE__*/React.createElement("br", null), `Lib Version: ${libVersion}`), deviceIdVisible && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("p", {
66
- className: classes.deviceId
67
- }, `Device ID: ${deviceId ?? ''}`), /*#__PURE__*/React.createElement(DevelopmentSettings, {
68
- isOpen: developmentSettingsVisible,
69
- onClose: () => setDevelopmentSettingsVisible(false)
70
- })));
59
+ return /*#__PURE__*/_jsxs("div", {
60
+ className: cx('ui-shared__client-information', classes.root),
61
+ ...longPressAttrs,
62
+ "aria-hidden": true,
63
+ children: [/*#__PURE__*/_jsxs("p", {
64
+ className: classes.unselectable,
65
+ children: [`App Version: ${appVersion} (${codebaseVersion})`, /*#__PURE__*/_jsx("br", {}), `Lib Version: ${libVersion}`]
66
+ }), deviceIdVisible && /*#__PURE__*/_jsxs(_Fragment, {
67
+ children: [/*#__PURE__*/_jsx("p", {
68
+ className: classes.deviceId,
69
+ children: `Device ID: ${deviceId ?? ''}`
70
+ }), /*#__PURE__*/_jsx(DevelopmentSettings, {
71
+ isOpen: developmentSettingsVisible,
72
+ onClose: () => setDevelopmentSettingsVisible(false)
73
+ })]
74
+ })]
75
+ });
71
76
  };
72
77
  export default ClientInformation;
@@ -6,6 +6,7 @@ import { makeStyles } from '@shopgate/engage/styles';
6
6
  import { getEnabledCMSVersion, getEnableCms2ForAllShoppers } from '@shopgate/engage/core/selectors';
7
7
  import { getIsCMS2PreviewEnabled } from "../../selectors";
8
8
  import { toggleCms2Preview } from "../../action-creators";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
9
10
  const useStyles = makeStyles()(theme => ({
10
11
  container: {
11
12
  padding: theme.spacing(2, 2, 4),
@@ -41,21 +42,24 @@ const DevelopmentSettings = ({
41
42
  if (enableCms2ForAllShoppers || enabledCMSVersion === 'v1') {
42
43
  return null;
43
44
  }
44
- return /*#__PURE__*/React.createElement(SheetDrawer, {
45
+ return /*#__PURE__*/_jsx(SheetDrawer, {
45
46
  title: " ",
46
47
  isOpen: isOpen,
47
- onClose: onClose
48
- }, /*#__PURE__*/React.createElement("div", {
49
- className: classes.container
50
- }, /*#__PURE__*/React.createElement(RippleButton, {
51
- className: classes.button,
52
- type: "simple",
53
- onClick: () => {
54
- onClose();
55
- setTimeout(() => {
56
- dispatch(toggleCms2Preview(!isCMS2PreviewEnabled));
57
- }, 300);
58
- }
59
- }, `${isCMS2PreviewEnabled ? 'Disable' : 'Enable'} CMS 2.0 Preview`)));
48
+ onClose: onClose,
49
+ children: /*#__PURE__*/_jsx("div", {
50
+ className: classes.container,
51
+ children: /*#__PURE__*/_jsx(RippleButton, {
52
+ className: classes.button,
53
+ type: "simple",
54
+ onClick: () => {
55
+ onClose();
56
+ setTimeout(() => {
57
+ dispatch(toggleCms2Preview(!isCMS2PreviewEnabled));
58
+ }, 300);
59
+ },
60
+ children: `${isCMS2PreviewEnabled ? 'Disable' : 'Enable'} CMS 2.0 Preview`
61
+ })
62
+ })
63
+ });
60
64
  };
61
65
  export default DevelopmentSettings;