@shopgate/engage 7.32.0-beta.1 → 7.32.0-beta.10

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 (529) hide show
  1. package/README.md +0 -1
  2. package/account/components/Profile/Profile.provider.d.ts +1 -1
  3. package/account/components/Profile/ProfileAddressBook.d.ts.map +1 -1
  4. package/account/components/Profile/ProfileAddressBook.js +13 -22
  5. package/account/components/Profile/ProfileAddressCard.d.ts.map +1 -1
  6. package/account/components/Profile/ProfileAddressCard.js +9 -18
  7. package/account/components/Profile/ProfileForm.d.ts.map +1 -1
  8. package/account/components/Profile/ProfileForm.js +15 -42
  9. package/account/components/ProfileContact/ProfileContact.js +13 -21
  10. package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts +2 -1
  11. package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts.map +1 -1
  12. package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.js +61 -5
  13. package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts +7 -1
  14. package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts.map +1 -1
  15. package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.js +14 -2
  16. package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts +15 -2
  17. package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts.map +1 -1
  18. package/admin-preview/constants/index.d.ts +0 -12
  19. package/admin-preview/constants/index.d.ts.map +1 -1
  20. package/admin-preview/constants/index.js +0 -16
  21. package/admin-preview/helpers/_internal/detection.d.ts +53 -0
  22. package/admin-preview/helpers/_internal/detection.d.ts.map +1 -0
  23. package/admin-preview/helpers/_internal/detection.js +93 -0
  24. package/admin-preview/helpers/index.d.ts +7 -0
  25. package/admin-preview/helpers/index.d.ts.map +1 -1
  26. package/admin-preview/helpers/index.js +12 -4
  27. package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts +32 -0
  28. package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts.map +1 -0
  29. package/admin-preview/initialization/_internal/initialFrontendSettings.js +43 -0
  30. package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts +22 -0
  31. package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts.map +1 -0
  32. package/admin-preview/initialization/awaitInitialFrontendSettings.js +84 -0
  33. package/back-in-stock/components/BackInStockButton/index.js +5 -5
  34. package/back-in-stock/components/Subscriptions/components/Subscription/index.js +2 -5
  35. package/cart/components/CartItem/CartItemProductLayout.js +2 -1
  36. package/cart/components/CartItem/CartItemProductLayoutWide.js +2 -2
  37. package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +7 -14
  38. package/cart/components/CartItem/CartItemProductProvider.connector.js +0 -2
  39. package/cart/components/CartItem/CartItemProductProvider.js +3 -30
  40. package/cart/components/CartItem/CartItemProductProvider.types.js +0 -1
  41. package/cart/components/CartItem/CartItemQuantityPicker.js +1 -0
  42. package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +6 -24
  43. package/cart/components/CartItems/CartItems.js +8 -10
  44. package/cart/components/CartItems/CartItemsSubstitution.js +3 -2
  45. package/cart/components/CartSummaryWide/CartSummaryWide.js +2 -2
  46. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +9 -23
  47. package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +8 -30
  48. package/cart/components/PaymentBar/PaymentBarContent.js +1 -1
  49. package/cart/components/PaymentBar/testUtils/mockFactories.js +4 -11
  50. package/category/components/CategoryImage/index.js +24 -17
  51. package/checkout/components/AddressBook/AddressList.js +14 -23
  52. package/checkout/components/Checkout/CheckoutActions.js +4 -3
  53. package/checkout/components/Checkout/CheckoutAddress.js +8 -0
  54. package/checkout/components/Checkout/CheckoutSection.js +6 -2
  55. package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +6 -7
  56. package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +7 -17
  57. package/components/Badge/Badge.d.ts +30 -0
  58. package/components/Badge/Badge.d.ts.map +1 -0
  59. package/components/Badge/Badge.js +48 -0
  60. package/components/Badge/index.d.ts +3 -0
  61. package/components/Badge/index.d.ts.map +1 -0
  62. package/components/Badge/index.js +1 -0
  63. package/components/Card/Card.d.ts +27 -0
  64. package/components/Card/Card.d.ts.map +1 -0
  65. package/components/Card/Card.js +57 -0
  66. package/components/Card/index.d.ts +4 -0
  67. package/components/Card/index.d.ts.map +1 -0
  68. package/components/Card/index.js +2 -0
  69. package/components/Card/useCardAppearance.d.ts +11 -0
  70. package/components/Card/useCardAppearance.d.ts.map +1 -0
  71. package/components/Card/useCardAppearance.js +22 -0
  72. package/components/ChipLayout/index.js +2 -4
  73. package/components/Logo/index.d.ts.map +1 -1
  74. package/components/Logo/index.js +3 -6
  75. package/components/NavigationHandler/connector.js +1 -1
  76. package/components/NavigationHandler/index.d.ts +2 -2
  77. package/components/Paper/Paper.d.ts +48 -0
  78. package/components/Paper/Paper.d.ts.map +1 -0
  79. package/components/Paper/Paper.js +64 -0
  80. package/components/Paper/index.d.ts +3 -0
  81. package/components/Paper/index.d.ts.map +1 -0
  82. package/components/Paper/index.js +1 -0
  83. package/components/PickerUtilize/index.d.ts +2 -1
  84. package/components/PickerUtilize/index.d.ts.map +1 -1
  85. package/components/RadioCard/RadioCard.d.ts.map +1 -1
  86. package/components/RadioCard/RadioCard.js +2 -1
  87. package/components/SheetList/components/Item/index.js +8 -8
  88. package/components/Tabs/components/Tab.d.ts.map +1 -1
  89. package/components/Tabs/components/Tab.js +14 -16
  90. package/components/Typography/Typography.d.ts +1 -1
  91. package/components/View/components/Above/index.d.ts.map +1 -1
  92. package/components/View/components/Above/index.js +3 -1
  93. package/components/View/components/Below/index.d.ts.map +1 -1
  94. package/components/View/components/Below/index.js +3 -1
  95. package/components/View/components/Content/index.d.ts +2 -1
  96. package/components/View/components/Content/index.d.ts.map +1 -1
  97. package/components/View/components/Content/index.js +4 -1
  98. package/components/constants.d.ts +6 -0
  99. package/components/constants.d.ts.map +1 -0
  100. package/components/index.d.ts +5 -1
  101. package/components/index.d.ts.map +1 -1
  102. package/components/index.js +4 -2
  103. package/components/v2/Button/Button.d.ts +24 -13
  104. package/components/v2/Button/Button.d.ts.map +1 -1
  105. package/components/v2/Button/Button.js +139 -41
  106. package/components/v2/ButtonBase/ButtonBase.d.ts +50 -10
  107. package/components/v2/ButtonBase/ButtonBase.d.ts.map +1 -1
  108. package/components/v2/ButtonBase/ButtonBase.js +192 -17
  109. package/components/v2/ButtonBase/Ripple.d.ts +2 -1
  110. package/components/v2/ButtonBase/Ripple.d.ts.map +1 -1
  111. package/components/v2/ButtonBase/hooks.d.ts +0 -1
  112. package/components/v2/ButtonBase/hooks.d.ts.map +1 -1
  113. package/components/v2/ButtonBase/hooks.js +36 -12
  114. package/components/v2/ButtonGroup/ButtonGroup.d.ts +11 -5
  115. package/components/v2/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  116. package/components/v2/ButtonGroup/ButtonGroup.js +49 -26
  117. package/components/v2/CircularProgress/CircularProgress.d.ts.map +1 -1
  118. package/components/v2/CircularProgress/CircularProgress.js +10 -5
  119. package/core/helpers/getFullImageSource.d.ts +5 -1
  120. package/core/helpers/getFullImageSource.d.ts.map +1 -1
  121. package/core/helpers/getFullImageSource.js +30 -14
  122. package/core/helpers/i18n.d.ts +4 -0
  123. package/core/helpers/i18n.d.ts.map +1 -1
  124. package/core/helpers/i18n.js +3 -0
  125. package/core/hooks/html/useLoadImage.d.ts +3 -3
  126. package/core/hooks/html/useLoadImage.d.ts.map +1 -1
  127. package/core/hooks/html/useLoadImage.js +2 -2
  128. package/core/hooks/useLocalStorage.d.ts +8 -0
  129. package/core/hooks/useLocalStorage.d.ts.map +1 -1
  130. package/core/hooks/useLocalStorage.js +22 -15
  131. package/core/hooks/useNavigation.d.ts +10 -2
  132. package/core/hooks/useNavigation.d.ts.map +1 -1
  133. package/core/hooks/useNavigation.js +1 -2
  134. package/core/initialization/fetchSettings.d.ts +12 -0
  135. package/core/initialization/fetchSettings.d.ts.map +1 -0
  136. package/core/initialization/fetchSettings.js +134 -0
  137. package/core/initialization/index.d.ts +33 -2
  138. package/core/initialization/index.d.ts.map +1 -1
  139. package/core/initialization/index.js +44 -103
  140. package/core/router/conductor.d.ts +9 -0
  141. package/core/router/helpers.d.ts +28 -15
  142. package/core/router/helpers.d.ts.map +1 -1
  143. package/core/router/helpers.js +8 -8
  144. package/development/components/DevelopmentSettings/DevelopmentSettings.js +3 -3
  145. package/development/components/SimulatedInsets/SimulatedInsetBottom.js +3 -3
  146. package/development/components/SimulatedInsets/SimulatedInsetTop.js +2 -2
  147. package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +7 -17
  148. package/favorites/components/Item/Item.d.ts +1 -1
  149. package/favorites/components/Item/Item.d.ts.map +1 -1
  150. package/favorites/components/Item/Item.js +7 -7
  151. package/favorites/components/List/List.d.ts +1 -1
  152. package/favorites/components/List/List.d.ts.map +1 -1
  153. package/favorites/components/List/List.js +0 -1
  154. package/favorites/components/List/ListContent.js +4 -5
  155. package/favorites/components/Lists/Lists.js +17 -6
  156. package/filter/components/FilterPageContent/components/ApplyButton/index.js +8 -10
  157. package/filter/components/FilterPageContent/components/ResetButton/index.js +8 -6
  158. package/filter/components/PriceSlider/index.js +6 -1
  159. package/locations/components/ChangeLocationButton/ChangeLocationButton.js +10 -14
  160. package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +4 -8
  161. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +4 -8
  162. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +1 -1
  163. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +9 -18
  164. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +10 -10
  165. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +9 -19
  166. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +9 -10
  167. package/locations/components/ReserveForm/ReserveForm.js +6 -7
  168. package/locations/components/StoreDetails/components/GetDirectionsButton.js +2 -4
  169. package/locations/components/StoreDetails/components/StoreDetails.js +5 -10
  170. package/locations/components/StoreDetails/components/StoresNearbyListItem.js +13 -21
  171. package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -11
  172. package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +5 -11
  173. package/locations/components/StoreList/StoreListProduct.js +2 -3
  174. package/locations/components/StoreList/StoreListSearch.js +1 -0
  175. package/locations/components/StoreList/StoreSelectLocationButton.js +5 -11
  176. package/login/components/ForgotPassword/ForgotPassword.js +11 -23
  177. package/mocks/date.js +31 -0
  178. package/mocks/index.js +3 -0
  179. package/mocks/pipelineRequest.js +1 -0
  180. package/mocks/subscriptions.js +1 -0
  181. package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +5 -7
  182. package/orders/components/OrderHistory/OrderHistoryList.d.ts.map +1 -1
  183. package/orders/components/OrderHistory/OrderHistoryList.js +8 -9
  184. package/orders/components/OrderHistory/OrderHistoryTable.d.ts.map +1 -1
  185. package/orders/components/OrderHistory/OrderHistoryTable.js +4 -0
  186. package/package.json +12 -12
  187. package/page/components/NotFound.d.ts +7 -0
  188. package/page/components/NotFound.d.ts.map +1 -0
  189. package/page/components/NotFound.js +8 -8
  190. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts +52 -0
  191. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts.map +1 -0
  192. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.js +4 -4
  193. package/page/components/ResponsiveWidgetImage/index.d.ts +2 -0
  194. package/page/components/ResponsiveWidgetImage/index.d.ts.map +1 -0
  195. package/page/components/WidgetRichText/WidgetRichText.d.ts +25 -0
  196. package/page/components/WidgetRichText/WidgetRichText.d.ts.map +1 -0
  197. package/page/components/WidgetRichText/index.d.ts +2 -0
  198. package/page/components/WidgetRichText/index.d.ts.map +1 -0
  199. package/page/components/WidgetVideo/WidgetVideo.d.ts +43 -0
  200. package/page/components/WidgetVideo/WidgetVideo.d.ts.map +1 -0
  201. package/page/components/WidgetVideo/WidgetVideo.js +33 -39
  202. package/page/components/WidgetVideo/index.d.ts +2 -0
  203. package/page/components/WidgetVideo/index.d.ts.map +1 -0
  204. package/page/components/Widgets/Overlay.d.ts +17 -0
  205. package/page/components/Widgets/Overlay.d.ts.map +1 -0
  206. package/page/components/Widgets/Overlay.js +24 -38
  207. package/page/components/Widgets/Tooltip.d.ts +20 -0
  208. package/page/components/Widgets/Tooltip.d.ts.map +1 -0
  209. package/page/components/Widgets/Tooltip.js +6 -10
  210. package/page/components/Widgets/Widget.d.ts +32 -0
  211. package/page/components/Widgets/Widget.d.ts.map +1 -0
  212. package/page/components/Widgets/Widget.js +7 -18
  213. package/page/components/Widgets/WidgetContext.d.ts +32 -38
  214. package/page/components/Widgets/WidgetContext.d.ts.map +1 -0
  215. package/page/components/Widgets/WidgetContext.js +2 -8
  216. package/page/components/Widgets/WidgetProvider.d.ts +25 -0
  217. package/page/components/Widgets/WidgetProvider.d.ts.map +1 -0
  218. package/page/components/Widgets/WidgetProvider.js +5 -12
  219. package/page/components/Widgets/Widgets.d.ts +16 -0
  220. package/page/components/Widgets/Widgets.d.ts.map +1 -0
  221. package/page/components/Widgets/Widgets.js +5 -12
  222. package/page/components/Widgets/WidgetsPreviewContext.d.ts +21 -0
  223. package/page/components/Widgets/WidgetsPreviewContext.d.ts.map +1 -0
  224. package/page/components/Widgets/WidgetsPreviewContext.js +5 -7
  225. package/page/components/Widgets/WidgetsPreviewProvider.d.ts +18 -0
  226. package/page/components/Widgets/WidgetsPreviewProvider.d.ts.map +1 -0
  227. package/page/components/Widgets/WidgetsPreviewProvider.js +5 -6
  228. package/page/components/Widgets/constants.d.ts +5 -0
  229. package/page/components/Widgets/constants.d.ts.map +1 -0
  230. package/page/components/Widgets/constants.js +3 -1
  231. package/page/components/Widgets/events.d.ts +38 -0
  232. package/page/components/Widgets/events.d.ts.map +1 -0
  233. package/page/components/Widgets/events.js +8 -12
  234. package/page/components/Widgets/helpers.d.ts +50 -0
  235. package/page/components/Widgets/helpers.d.ts.map +1 -0
  236. package/page/components/Widgets/helpers.js +8 -13
  237. package/page/components/Widgets/hooks.d.ts +13 -0
  238. package/page/components/Widgets/hooks.d.ts.map +1 -0
  239. package/page/components/Widgets/hooks.js +13 -11
  240. package/page/components/Widgets/index.d.ts +3 -0
  241. package/page/components/Widgets/index.d.ts.map +1 -0
  242. package/page/components/Widgets/types.d.ts +111 -113
  243. package/page/components/Widgets/types.d.ts.map +1 -0
  244. package/page/components/Widgets/types.js +1 -0
  245. package/page/components/index.d.ts +5 -0
  246. package/page/components/index.d.ts.map +1 -0
  247. package/page/constants/actionTypes.d.ts +4 -0
  248. package/page/constants/actionTypes.d.ts.map +1 -0
  249. package/page/constants/index.d.ts +25 -0
  250. package/page/constants/index.d.ts.map +1 -0
  251. package/page/constants/index.js +5 -3
  252. package/page/helpers/index.d.ts +70 -62
  253. package/page/helpers/index.d.ts.map +1 -0
  254. package/page/helpers/index.js +31 -29
  255. package/page/hooks/index.d.ts +54 -53
  256. package/page/hooks/index.d.ts.map +1 -0
  257. package/page/hooks/index.js +20 -15
  258. package/page/selectors/index.d.ts +32 -0
  259. package/page/selectors/index.d.ts.map +1 -0
  260. package/page/widgets/Button/Button.js +2 -3
  261. package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +8 -8
  262. package/page/widgets/ProductList/ProductList.js +18 -14
  263. package/page/widgets/ProductSlider/ProductSlider.js +1 -15
  264. package/page/widgets/Video/Video.d.ts +6 -0
  265. package/page/widgets/Video/Video.d.ts.map +1 -0
  266. package/page/widgets/Video/Video.js +0 -2
  267. package/page/widgets/Video/hooks.d.ts +53 -0
  268. package/page/widgets/Video/hooks.d.ts.map +1 -0
  269. package/page/widgets/Video/hooks.js +4 -12
  270. package/page/widgets/Video/index.d.ts +2 -0
  271. package/page/widgets/Video/index.d.ts.map +1 -0
  272. package/product/components/Description/index.js +0 -2
  273. package/product/components/FilterBar/components/Content/components/FilterButton/index.js +2 -6
  274. package/product/components/FilterBar/components/Content/components/Sort/index.js +1 -5
  275. package/product/components/Media/FeaturedMedia.js +7 -1
  276. package/product/components/Media/MediaImage.js +24 -23
  277. package/product/components/Media/MediaPlaceholder.js +4 -7
  278. package/product/components/MediaSlider/components/MediaImage/index.js +6 -2
  279. package/product/components/MediaSlider/constants.js +1 -12
  280. package/product/components/OrderQuantityHint/index.js +16 -1
  281. package/product/components/ProductCard/index.js +36 -23
  282. package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +12 -4
  283. package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +3 -6
  284. package/product/components/ProductGrid/components/Item/components/ItemName/index.js +6 -1
  285. package/product/components/ProductGrid/components/Item/index.js +10 -2
  286. package/product/components/ProductGrid/components/Layout/index.js +19 -4
  287. package/product/components/ProductGrid/constants.d.ts +2 -0
  288. package/product/components/ProductGrid/constants.d.ts.map +1 -0
  289. package/product/components/ProductGrid/constants.js +1 -0
  290. package/product/components/ProductGrid/hooks.d.ts +11 -0
  291. package/product/components/ProductGrid/hooks.d.ts.map +1 -0
  292. package/product/components/ProductGrid/hooks.js +48 -0
  293. package/product/components/ProductGrid/index.js +3 -6
  294. package/product/components/ProductGridPrice/index.js +0 -1
  295. package/product/components/ProductImage/ProductImage.d.ts +42 -0
  296. package/product/components/ProductImage/ProductImage.d.ts.map +1 -0
  297. package/product/components/ProductImage/ProductImage.js +158 -0
  298. package/product/components/ProductImage/ProductImagePlaceholder.d.ts +23 -0
  299. package/product/components/ProductImage/ProductImagePlaceholder.d.ts.map +1 -0
  300. package/product/components/ProductImage/ProductImagePlaceholder.js +12 -17
  301. package/product/components/ProductImage/constants.d.ts +7 -0
  302. package/product/components/ProductImage/constants.d.ts.map +1 -0
  303. package/product/components/ProductImage/constants.js +6 -0
  304. package/product/components/ProductImage/hooks.d.ts +8 -0
  305. package/product/components/ProductImage/hooks.d.ts.map +1 -0
  306. package/product/components/ProductImage/hooks.js +32 -0
  307. package/product/components/ProductImage/index.d.ts +3 -0
  308. package/product/components/ProductImage/index.d.ts.map +1 -0
  309. package/product/components/ProductImage/index.js +1 -201
  310. package/product/components/ProductList/components/Item/index.js +5 -3
  311. package/product/components/ProductList/components/Layout/index.js +8 -20
  312. package/product/components/ProductName/ProductName.d.ts +1 -1
  313. package/product/components/ProductName/ProductName.d.ts.map +1 -1
  314. package/product/components/ProductName/ProductNameContent.d.ts +2 -1
  315. package/product/components/ProductName/ProductNameContent.d.ts.map +1 -1
  316. package/product/components/ProductRatingStars/ProductRatingStars.d.ts +1 -1
  317. package/product/components/ProductRatingStars/ProductRatingStars.js +2 -4
  318. package/product/components/ProductSlider/constants.d.ts +3 -0
  319. package/product/components/ProductSlider/constants.d.ts.map +1 -0
  320. package/product/components/ProductSlider/constants.js +2 -0
  321. package/product/components/ProductSlider/hooks.d.ts +7 -0
  322. package/product/components/ProductSlider/hooks.d.ts.map +1 -0
  323. package/product/components/ProductSlider/hooks.js +40 -0
  324. package/product/components/ProductSlider/index.js +8 -8
  325. package/product/components/Rating/index.js +2 -4
  326. package/product/components/RelationsSlider/RelationsSheet.js +1 -5
  327. package/product/components/RelationsSlider/RelationsSliderContent.js +3 -2
  328. package/product/components/RelationsSlider/constants.d.ts +3 -0
  329. package/product/components/RelationsSlider/constants.d.ts.map +1 -0
  330. package/product/components/RelationsSlider/constants.js +2 -1
  331. package/product/components/RelationsSlider/hooks.d.ts +6 -0
  332. package/product/components/RelationsSlider/hooks.d.ts.map +1 -0
  333. package/product/components/RelationsSlider/hooks.js +34 -0
  334. package/product/components/UnitQuantityPicker/UnitQuantityPicker.d.ts.map +1 -1
  335. package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +16 -34
  336. package/product/helpers/index.js +29 -11
  337. package/product/hooks/index.js +3 -1
  338. package/product/hooks/useLoadProductImage.js +4 -2
  339. package/product/hooks/useShowEmptyRatingStars.d.ts +7 -0
  340. package/product/hooks/useShowEmptyRatingStars.d.ts.map +1 -0
  341. package/product/hooks/useShowEmptyRatingStars.js +21 -0
  342. package/product/index.js +0 -1
  343. package/product/selectors/mocks/productProperties.mock.js +49 -0
  344. package/push-opt-in/components/PushOptInModal/index.js +4 -4
  345. package/registration/components/Registration/RegistrationFormActions.js +4 -4
  346. package/reviews/components/Reviews/components/AllReviewsLink/index.js +6 -6
  347. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +4 -3
  348. package/settings/action-creators/appSettings.d.ts +3 -3
  349. package/settings/action-creators/appSettings.d.ts.map +1 -1
  350. package/settings/constants/appSettings.d.ts +3 -0
  351. package/settings/constants/appSettings.d.ts.map +1 -1
  352. package/settings/constants/appSettings.js +6 -1
  353. package/settings/constants/imageSettings.d.ts +52 -0
  354. package/settings/constants/imageSettings.d.ts.map +1 -0
  355. package/settings/constants/imageSettings.js +69 -0
  356. package/settings/helpers/index.d.ts +3 -0
  357. package/settings/helpers/index.d.ts.map +1 -0
  358. package/settings/helpers/index.js +1 -0
  359. package/settings/helpers/resolveImageSettings.d.ts +70 -0
  360. package/settings/helpers/resolveImageSettings.d.ts.map +1 -0
  361. package/settings/helpers/resolveImageSettings.js +171 -0
  362. package/settings/helpers/toImageQuality.d.ts +7 -0
  363. package/settings/helpers/toImageQuality.d.ts.map +1 -0
  364. package/settings/helpers/toImageQuality.js +44 -0
  365. package/settings/helpers/toThumborColor.d.ts +15 -0
  366. package/settings/helpers/toThumborColor.d.ts.map +1 -0
  367. package/settings/helpers/toThumborColor.js +51 -0
  368. package/settings/hooks/index.d.ts +2 -0
  369. package/settings/hooks/index.d.ts.map +1 -0
  370. package/settings/hooks/index.js +1 -0
  371. package/settings/hooks/useImageSettings.d.ts +28 -0
  372. package/settings/hooks/useImageSettings.d.ts.map +1 -0
  373. package/settings/hooks/useImageSettings.js +39 -0
  374. package/settings/reducers/appSettings.d.ts.map +1 -1
  375. package/settings/reducers/appSettings.js +100 -8
  376. package/settings/reducers/index.d.ts +3 -3
  377. package/settings/selectors/appSettings.d.ts +114 -1
  378. package/settings/selectors/appSettings.d.ts.map +1 -1
  379. package/settings/selectors/appSettings.js +75 -1
  380. package/settings/types/appSettings.d.ts +244 -0
  381. package/settings/types/appSettings.d.ts.map +1 -1
  382. package/settings/types/appSettings.js +124 -1
  383. package/styles/helpers/index.d.ts +2 -0
  384. package/styles/helpers/index.js +2 -0
  385. package/styles/helpers/loadFontCss.d.ts +22 -0
  386. package/styles/helpers/loadFontCss.d.ts.map +1 -0
  387. package/styles/helpers/loadFontCss.js +138 -0
  388. package/styles/helpers/loadThemeCss.d.ts +14 -0
  389. package/styles/helpers/loadThemeCss.d.ts.map +1 -0
  390. package/styles/helpers/loadThemeCss.js +123 -0
  391. package/styles/index.d.ts +1 -1
  392. package/styles/index.d.ts.map +1 -1
  393. package/styles/index.js +1 -1
  394. package/styles/reset/root.js +23 -4
  395. package/styles/reset/typographyCustomProps.d.ts +12 -0
  396. package/styles/reset/typographyCustomProps.d.ts.map +1 -0
  397. package/styles/reset/typographyCustomProps.js +11 -0
  398. package/styles/theme/createDefaultThemeOptions/index.d.ts.map +1 -1
  399. package/styles/theme/createDefaultThemeOptions/index.js +107 -4
  400. package/styles/theme/createTheme/createComponents.d.ts +2 -2
  401. package/styles/theme/createTheme/createComponents.d.ts.map +1 -1
  402. package/styles/theme/createTheme/createComponents.js +0 -1
  403. package/styles/theme/createTheme/createComponents.types.d.ts +117 -0
  404. package/styles/theme/createTheme/createComponents.types.d.ts.map +1 -1
  405. package/styles/theme/createTheme/createComponents.types.js +119 -2
  406. package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.d.ts.map +1 -1
  407. package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.js +13 -3
  408. package/styles/theme/createTheme/createPalette.types.d.ts +5 -0
  409. package/styles/theme/createTheme/createPalette.types.d.ts.map +1 -1
  410. package/styles/theme/createTheme/createPalette.types.js +7 -2
  411. package/styles/theme/createTheme/createShape.d.ts +3 -0
  412. package/styles/theme/createTheme/createShape.d.ts.map +1 -1
  413. package/styles/theme/createTheme/createSpacing.js +4 -1
  414. package/styles/theme/createTheme/createThemeFromColorScheme.d.ts +4 -2
  415. package/styles/theme/createTheme/createThemeFromColorScheme.d.ts.map +1 -1
  416. package/styles/theme/createTheme/createThemeFromColorScheme.js +6 -3
  417. package/styles/theme/createTheme/createTypography.d.ts +2 -1
  418. package/styles/theme/createTheme/createTypography.js +59 -18
  419. package/styles/theme/createTheme/helpers/cssVarsParser.d.ts.map +1 -1
  420. package/styles/theme/createTheme/helpers/cssVarsParser.js +10 -3
  421. package/styles/theme/createTheme/index.d.ts +2 -1
  422. package/styles/theme/createTheme/index.d.ts.map +1 -1
  423. package/styles/theme/createTheme/index.js +5 -2
  424. package/styles/theme/createTheme/layout.d.ts +23 -0
  425. package/styles/theme/createTheme/layout.d.ts.map +1 -0
  426. package/styles/theme/createTheme/layout.js +20 -0
  427. package/styles/theme/createTheme/shadows.d.ts +11 -1
  428. package/styles/theme/createTheme/shadows.d.ts.map +1 -1
  429. package/styles/theme/createTheme/shadows.js +41 -7
  430. package/styles/theme/createTheme/transitions.d.ts +4 -0
  431. package/styles/theme/createTheme/transitions.js +3 -1
  432. package/styles/theme/createTheme/types.d.ts +41 -9
  433. package/styles/theme/createTheme/types.d.ts.map +1 -1
  434. package/styles/theme/createTheme/types.js +16 -4
  435. package/styles/theme/hocs/index.d.ts +2 -0
  436. package/styles/theme/hocs/index.d.ts.map +1 -0
  437. package/styles/theme/hocs/index.js +1 -0
  438. package/styles/theme/hocs/withTheme.d.ts +21 -0
  439. package/styles/theme/hocs/withTheme.d.ts.map +1 -0
  440. package/styles/theme/hocs/withTheme.js +33 -0
  441. package/styles/theme/hooks/useColorScheme.d.ts +4 -3
  442. package/styles/theme/hooks/useColorScheme.d.ts.map +1 -1
  443. package/styles/theme/hooks/useColorScheme.js +4 -3
  444. package/styles/theme/hooks/useMediaQuery.d.ts +7 -0
  445. package/styles/theme/hooks/useMediaQuery.d.ts.map +1 -1
  446. package/styles/theme/hooks/useMediaQuery.js +5 -5
  447. package/styles/theme/hooks/useTheme.js +1 -1
  448. package/styles/theme/index.d.ts +5 -1
  449. package/styles/theme/index.d.ts.map +1 -1
  450. package/styles/theme/index.js +2 -1
  451. package/styles/theme/providers/ActiveBreakpointProvider.d.ts +1 -1
  452. package/styles/theme/providers/ColorSchemeContext.d.ts +40 -0
  453. package/styles/theme/providers/ColorSchemeContext.d.ts.map +1 -0
  454. package/styles/theme/providers/ColorSchemeContext.js +14 -0
  455. package/styles/theme/providers/ThemeContext.d.ts +3 -0
  456. package/styles/theme/providers/ThemeContext.d.ts.map +1 -0
  457. package/styles/theme/providers/ThemeContext.js +2 -0
  458. package/styles/theme/providers/ThemeProvider.d.ts +4 -14
  459. package/styles/theme/providers/ThemeProvider.d.ts.map +1 -1
  460. package/styles/theme/providers/ThemeProvider.js +88 -26
  461. package/styles/theme/utils/color.d.ts +12 -12
  462. package/styles/theme/utils/color.d.ts.map +1 -1
  463. package/tracking/components/CookieConsentModal/index.js +3 -4
  464. package/tracking/components/PrivacySettings/index.js +3 -3
  465. package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +0 -6
  466. package/cart/components/PaymentBar/PaymentBarReserveButton.js +0 -71
  467. package/components/ChipLayout/spec.js +0 -41
  468. package/components/Logo/spec.js +0 -12
  469. package/components/NavigationHandler/spec.js +0 -84
  470. package/components/Picker/spec.js +0 -94
  471. package/components/PickerUtilize/spec.js +0 -35
  472. package/components/RangeSlider/spec.js +0 -190
  473. package/components/SheetList/components/Item/spec.js +0 -101
  474. package/components/SheetList/spec.js +0 -43
  475. package/components/TimeBoundary/spec.js +0 -83
  476. package/filter/components/FilterItem/spec.js +0 -14
  477. package/filter/components/FilterPageContent/components/ApplyButton/spec.js +0 -46
  478. package/filter/components/FilterPageContent/components/ResetButton/spec.js +0 -29
  479. package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +0 -26
  480. package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +0 -34
  481. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +0 -32
  482. package/filter/components/FilterPageContent/components/Selector/spec.js +0 -33
  483. package/filter/components/PriceSlider/components/Label/spec.js +0 -26
  484. package/filter/components/PriceSlider/spec.js +0 -30
  485. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +0 -16
  486. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +0 -52
  487. package/product/collections/index.js +0 -1
  488. package/product/components/EffectivityDates/constants.d.ts +0 -3
  489. package/product/components/EffectivityDates/constants.d.ts.map +0 -1
  490. package/product/components/EffectivityDates/helpers.d.ts +0 -6
  491. package/product/components/EffectivityDates/helpers.d.ts.map +0 -1
  492. package/product/components/FilterBar/components/Content/spec.js +0 -136
  493. package/product/components/Header/Shipping/spec.js +0 -36
  494. package/product/components/Header/Tiers/components/Tier/spec.js +0 -48
  495. package/product/components/Header/Tiers/spec.js +0 -64
  496. package/product/components/Media/helpers.d.ts +0 -2
  497. package/product/components/Media/helpers.d.ts.map +0 -1
  498. package/product/components/Options/components/Content/spec.js +0 -73
  499. package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +0 -72
  500. package/product/components/ProductDiscountBadge/spec.js +0 -58
  501. package/product/components/ProductGrid/components/Item/components/ItemDetails/spec.js +0 -73
  502. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +0 -33
  503. package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +0 -16
  504. package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +0 -21
  505. package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +0 -37
  506. package/product/components/ProductGrid/spec.js +0 -52
  507. package/product/components/ProductImage/connector.js +0 -12
  508. package/product/components/ProductImage/spec.js +0 -87
  509. package/product/components/ProductSlider/spec.js +0 -37
  510. package/product/components/Rating/spec.js +0 -58
  511. package/product/helpers/index.d.ts +0 -13
  512. package/product/helpers/index.d.ts.map +0 -1
  513. package/product/helpers/redirects.d.ts +0 -2
  514. package/product/helpers/redirects.d.ts.map +0 -1
  515. package/product/selectors/helpers/filterProperties.d.ts +0 -8
  516. package/product/selectors/helpers/filterProperties.d.ts.map +0 -1
  517. package/product/selectors/helpers/index.d.ts +0 -3
  518. package/product/selectors/helpers/index.d.ts.map +0 -1
  519. package/product/selectors/helpers/wrapMemoizedSelector.d.ts +0 -2
  520. package/product/selectors/helpers/wrapMemoizedSelector.d.ts.map +0 -1
  521. package/product/selectors/product.d.ts +0 -112
  522. package/product/selectors/product.d.ts.map +0 -1
  523. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +0 -52
  524. package/reviews/components/Reviews/components/Header/spec.js +0 -78
  525. package/reviews/components/Reviews/components/List/spec.js +0 -108
  526. package/reviews/components/Reviews/components/RatingCount/spec.js +0 -38
  527. package/reviews/components/Reviews/spec.js +0 -101
  528. package/tsconfig.build.json +0 -26
  529. package/tsconfig.json +0 -19
package/README.md CHANGED
@@ -8,7 +8,6 @@
8
8
 
9
9
  <div align="center">
10
10
 
11
- [![Build Status](https://travis-ci.org/shopgate/pwa.svg?branch=v6.X)](https://travis-ci.org/shopgate/pwa)
12
11
  [![Coverage Status](https://coveralls.io/repos/github/shopgate/pwa/badge.svg?branch=v6.X)](https://coveralls.io/github/shopgate/pwa?branch=v6.X)
13
12
  [![GitHub (pre-)release](https://img.shields.io/github/release/shopgate/pwa/all.svg)](https://github.com/shopgate/pwa/releases)
14
13
  [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/)
@@ -37,8 +37,8 @@ declare const _default: import("react-redux").ConnectedComponent<{
37
37
  formContainerRef: null;
38
38
  };
39
39
  }, {
40
- children: NonNullable<PropTypes.ReactNodeLike>;
41
40
  push: (...args: any[]) => any;
41
+ children: NonNullable<PropTypes.ReactNodeLike>;
42
42
  userLocation: NonNullable<PropTypes.InferProps<PropTypes.ValidationMap<any>>>;
43
43
  fetchContacts: (...args: any[]) => any;
44
44
  deleteContact: (...args: any[]) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileAddressBook.d.ts","sourceRoot":"","sources":["../../../../account/components/Profile/ProfileAddressBook.jsx"],"names":[],"mappings":";;;QAsDa,GAAG;;;;;;;;;;sBApDM,YAAY"}
1
+ {"version":3,"file":"ProfileAddressBook.d.ts","sourceRoot":"","sources":["../../../../account/components/Profile/ProfileAddressBook.jsx"],"names":[],"mappings":";;;QA8Ca,GAAG;;;;;;;;;;sBA5CM,YAAY"}
@@ -3,7 +3,8 @@ import { connect } from 'react-redux';
3
3
  import PropTypes from 'prop-types';
4
4
  import { i18n, historyPush } from '@shopgate/engage/core';
5
5
  import { makeStyles, responsiveMediaQuery } from '@shopgate/engage/styles';
6
- import { RippleButton, Typography } from '@shopgate/engage/components';
6
+ import { Typography } from '@shopgate/engage/components';
7
+ import { Button } from '@shopgate/engage/components/v2';
7
8
  import AddressCard from "./ProfileAddressCard";
8
9
  import { useProfileContext } from "./Profile.provider";
9
10
  import { PROFILE_ADDRESS_PATH } from "../../constants/routes";
@@ -16,7 +17,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
17
  const mapDispatchToProps = dispatch => ({
17
18
  push: props => dispatch(historyPush(props))
18
19
  });
19
- const useStyles = makeStyles()(theme => ({
20
+ const useStyles = makeStyles()(() => ({
20
21
  container: {
21
22
  display: 'flex',
22
23
  flexDirection: 'row',
@@ -24,25 +25,16 @@ const useStyles = makeStyles()(theme => ({
24
25
  margin: -4
25
26
  },
26
27
  button: {
27
- '&&': {
28
- marginTop: 8,
29
- marginRight: 16,
30
- backgroundColor: theme.palette.primary.main,
31
- borderRadius: 5,
32
- fontSize: theme.typography.body2.fontSize,
33
- textTransform: 'none',
34
- padding: 0,
35
- [responsiveMediaQuery('<md', {
36
- webOnly: false
37
- })]: {
38
- width: '100%',
39
- marginRight: 0
40
- }
28
+ marginTop: 8,
29
+ textTransform: 'none',
30
+ marginRight: 16,
31
+ [responsiveMediaQuery('<md', {
32
+ webOnly: false
33
+ })]: {
34
+ width: '100%',
35
+ marginRight: 0
41
36
  }
42
37
  },
43
- ripple: {
44
- padding: '8px 16px'
45
- },
46
38
  actions: {
47
39
  display: 'flex',
48
40
  justifyContent: 'flex-end',
@@ -86,10 +78,9 @@ const ProfileAddressBook = ({
86
78
  }, contact.id))
87
79
  }), /*#__PURE__*/_jsx("div", {
88
80
  className: classes.actions,
89
- children: /*#__PURE__*/_jsx(RippleButton, {
81
+ children: /*#__PURE__*/_jsx(Button, {
82
+ color: "primary",
90
83
  className: classes.button,
91
- rippleClassName: classes.ripple,
92
- type: "primary",
93
84
  onClick: () => push({
94
85
  pathname: PROFILE_ADDRESS_PATH
95
86
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileAddressCard.d.ts","sourceRoot":"","sources":["../../../../account/components/Profile/ProfileAddressCard.jsx"],"names":[],"mappings":";AAwEA;;GAEG;AACH;;;;;;IAFa,GAAG,CAkGf;;;;;;;;;;;;;;;;sBA1KqB,YAAY"}
1
+ {"version":3,"file":"ProfileAddressCard.d.ts","sourceRoot":"","sources":["../../../../account/components/Profile/ProfileAddressCard.jsx"],"names":[],"mappings":";AA+DA;;GAEG;AACH;;;;;;IAFa,GAAG,CAkGf;;;;;;;;;;;;;;;;sBAjKqB,YAAY"}
@@ -3,11 +3,13 @@ import PropTypes from 'prop-types';
3
3
  import { i18n } from '@shopgate/engage/core/helpers';
4
4
  import { makeStyles, responsiveMediaQuery } from '@shopgate/engage/styles';
5
5
  import { useAddressBook, ADDRESS_TYPE_BILLING, ADDRESS_TYPE_SHIPPING } from '@shopgate/engage/checkout';
6
- import { RippleButton, Card, ContextMenu, Typography } from '@shopgate/engage/components';
6
+ import { Card, ContextMenu, Typography } from '@shopgate/engage/components';
7
+ import { Button } from '@shopgate/engage/components/v2';
7
8
  import iso3166 from "../../../components/Form/Builder/helpers/iso-3166-2";
8
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
- const useStyles = makeStyles()(theme => ({
10
+ const useStyles = makeStyles()(() => ({
10
11
  root: {
12
+ margin: '5px 5px 10px',
11
13
  padding: 16,
12
14
  display: 'flex',
13
15
  flexDirection: 'column',
@@ -54,19 +56,8 @@ const useStyles = makeStyles()(theme => ({
54
56
  flex: 1
55
57
  },
56
58
  button: {
57
- '&&:disabled': {
58
- padding: '8px 0'
59
- },
60
- '&&': {
61
- marginTop: 8,
62
- borderRadius: 5,
63
- fontSize: theme.typography.body2.fontSize,
64
- padding: 0,
65
- textTransform: 'none'
66
- }
67
- },
68
- ripple: {
69
- padding: '8px 16px'
59
+ marginTop: 8,
60
+ textTransform: 'none'
70
61
  }
71
62
  }));
72
63
 
@@ -160,10 +151,10 @@ const ProfileAddressCard = ({
160
151
  }) : null]
161
152
  }), /*#__PURE__*/_jsx("div", {
162
153
  className: cx(classes.column, classes.selectButtonColumn),
163
- children: isCheckout ? /*#__PURE__*/_jsx(RippleButton, {
154
+ children: isCheckout ? /*#__PURE__*/_jsx(Button, {
155
+ color: "primary",
156
+ size: "small",
164
157
  className: classes.button,
165
- rippleClassName: classes.ripple,
166
- type: "secondary",
167
158
  disabled: selected,
168
159
  onClick: selectContact,
169
160
  children: i18n.text(`account.profile.address_book.${selected ? 'selected' : 'select'}`)
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileForm.d.ts","sourceRoot":"","sources":["../../../../account/components/Profile/ProfileForm.jsx"],"names":[],"mappings":";AAmEA;;GAEG;AACH,qFAgEG;kBAtIqD,OAAO"}
1
+ {"version":3,"file":"ProfileForm.d.ts","sourceRoot":"","sources":["../../../../account/components/Profile/ProfileForm.jsx"],"names":[],"mappings":";AA2CA;;GAEG;AACH,qFA+DG;kBA7GqD,OAAO"}
@@ -1,7 +1,8 @@
1
1
  import React, { useMemo, useCallback, forwardRef } from 'react';
2
2
  import { i18n } from '@shopgate/engage/core/helpers';
3
3
  import { makeStyles, responsiveMediaQuery } from '@shopgate/engage/styles';
4
- import { FormBuilder, RippleButton } from '@shopgate/engage/components';
4
+ import { FormBuilder } from '@shopgate/engage/components';
5
+ import { Button } from '@shopgate/engage/components/v2';
5
6
  import { StylePresets } from '@shopgate/engage/components/Form';
6
7
  import { useProfileContext } from "./Profile.provider";
7
8
  import generateFormConfig from "./Profile.config";
@@ -24,42 +25,15 @@ const useStyles = makeStyles()(theme => ({
24
25
  }
25
26
  },
26
27
  button: {
27
- '&&': {
28
- marginTop: 8,
29
- marginRight: 16,
30
- backgroundColor: theme.palette.primary.main,
31
- borderRadius: 5,
32
- fontSize: theme.typography.body2.fontSize,
33
- textTransform: 'none',
34
- padding: 0,
35
- [responsiveMediaQuery('<md', {
36
- webOnly: false
37
- })]: {
38
- marginRight: 0
39
- }
40
- }
41
- },
42
- buttonDelete: {
43
- '&&': {
44
- marginTop: 8,
45
- marginRight: 16,
46
- border: `1px solid ${theme.palette.error.main}`,
47
- backgroundColor: theme.palette.common.white,
48
- color: theme.palette.error.main,
49
- borderRadius: 5,
50
- fontSize: theme.typography.body2.fontSize,
51
- textTransform: 'none',
52
- padding: 0,
53
- [responsiveMediaQuery('<md', {
54
- webOnly: false
55
- })]: {
56
- marginRight: 0
57
- }
28
+ marginTop: 8,
29
+ textTransform: 'none',
30
+ marginRight: 16,
31
+ [responsiveMediaQuery('<md', {
32
+ webOnly: false
33
+ })]: {
34
+ marginRight: 0
58
35
  }
59
36
  },
60
- ripple: {
61
- padding: '8px 16px'
62
- },
63
37
  actions: {
64
38
  display: 'flex',
65
39
  justifyContent: 'flex-end',
@@ -119,16 +93,15 @@ const ProfileForm = /*#__PURE__*/forwardRef((_, ref) => {
119
93
  handleUpdate: handleUpdate
120
94
  }), /*#__PURE__*/_jsxs("div", {
121
95
  className: classes.actions,
122
- children: [/*#__PURE__*/_jsx(RippleButton, {
123
- className: classes.buttonDelete,
124
- rippleClassName: classes.ripple,
125
- type: "primary",
96
+ children: [/*#__PURE__*/_jsx(Button, {
97
+ variant: "outlined",
98
+ color: "error",
99
+ className: classes.button,
126
100
  onClick: deleteCustomer,
127
101
  children: i18n.text('account.profile.delete')
128
- }), /*#__PURE__*/_jsx(RippleButton, {
102
+ }), /*#__PURE__*/_jsx(Button, {
103
+ color: "primary",
129
104
  className: classes.button,
130
- rippleClassName: classes.ripple,
131
- type: "primary",
132
105
  onClick: saveForm,
133
106
  children: i18n.text('account.profile.form.save')
134
107
  })]
@@ -9,7 +9,8 @@ import { convertValidationErrors, useFormState } from '@shopgate/engage/core/hoo
9
9
  import { makeStyles, responsiveMediaQuery } from '@shopgate/engage/styles';
10
10
  import { getShopSettings } from '@shopgate/engage/core/config';
11
11
  import { getPreferredLocationAddress } from '@shopgate/engage/locations/selectors';
12
- import { FormBuilder, RippleButton } from '@shopgate/engage/components';
12
+ import { FormBuilder } from '@shopgate/engage/components';
13
+ import { Button } from '@shopgate/engage/components/v2';
13
14
  import { StylePresets } from '@shopgate/engage/components/Form';
14
15
  import { LoadingProvider } from '@shopgate/pwa-common/providers';
15
16
  import { useAddressBook } from '@shopgate/engage/checkout';
@@ -61,25 +62,16 @@ const useStyles = makeStyles()(theme => ({
61
62
  }
62
63
  },
63
64
  button: {
64
- '&&': {
65
- marginTop: 8,
66
- marginRight: 16,
67
- backgroundColor: theme.palette.primary.main,
68
- borderRadius: 5,
69
- fontSize: theme.typography.body2.fontSize,
70
- textTransform: 'none',
71
- padding: 0,
72
- [responsiveMediaQuery('<md', {
73
- webOnly: false
74
- })]: {
75
- width: '100%',
76
- marginRight: 0
77
- }
65
+ marginTop: 8,
66
+ textTransform: 'none',
67
+ marginRight: 16,
68
+ [responsiveMediaQuery('<md', {
69
+ webOnly: false
70
+ })]: {
71
+ width: '100%',
72
+ marginRight: 0
78
73
  }
79
74
  },
80
- ripple: {
81
- padding: '8px 16px'
82
- },
83
75
  actions: {
84
76
  display: 'flex',
85
77
  justifyContent: 'flex-end',
@@ -191,10 +183,10 @@ const ProfileContact = ({
191
183
  handleUpdate: handleUpdate
192
184
  }), /*#__PURE__*/_jsx("div", {
193
185
  className: classes.actions,
194
- children: /*#__PURE__*/_jsx(RippleButton, {
186
+ children: /*#__PURE__*/_jsx(Button, {
187
+ color: "primary",
188
+ size: "small",
195
189
  className: classes.button,
196
- rippleClassName: classes.ripple,
197
- type: "primary",
198
190
  onClick: formState.handleSubmit,
199
191
  children: i18n.text('account.profile.form.save')
200
192
  })
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Headless bridge that connects the app to the admin frontend settings preview. It listens for
3
- * messages from the parent window and applies the received styling while in preview mode.
3
+ * messages from the parent window and applies the received styling, app settings and color scheme
4
+ * while in preview mode.
4
5
  */
5
6
  declare const FrontendSettingsPreviewBridge: () => null;
6
7
  export default FrontendSettingsPreviewBridge;
@@ -1 +1 @@
1
- {"version":3,"file":"FrontendSettingsPreviewBridge.d.ts","sourceRoot":"","sources":["../../../../admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.tsx"],"names":[],"mappings":"AAeA;;;GAGG;AACH,QAAA,MAAM,6BAA6B,YAgClC,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
1
+ {"version":3,"file":"FrontendSettingsPreviewBridge.d.ts","sourceRoot":"","sources":["../../../../admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.tsx"],"names":[],"mappings":"AAyBA;;;;GAIG;AACH,QAAA,MAAM,6BAA6B,YAgFlC,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
@@ -1,25 +1,58 @@
1
- import { useEffect, useState } from 'react';
2
- import { useDispatch } from 'react-redux';
1
+ import "core-js/modules/es.array.includes.js";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { useDispatch, useSelector } from 'react-redux';
3
4
  import { useIframeMessenger } from '@shopgate/engage/admin-preview/hooks';
4
5
  import { ALLOWED_ADMIN_PREVIEW_ORIGINS } from '@shopgate/engage/admin-preview/constants';
5
6
  import { receiveAppSettings } from '@shopgate/engage/settings/action-creators/appSettings';
7
+ import { getTypographyFontCssUrls } from '@shopgate/engage/settings/selectors/appSettings';
8
+ import { logger } from '@shopgate/engage/core/helpers';
9
+ // Imported via their module paths, since the "styles" barrel pulls in the ThemeProvider which
10
+ // renders this component, and would therefore create a circular import.
11
+ import useColorScheme from '@shopgate/engage/styles/theme/hooks/useColorScheme';
12
+ import { loadFontCss } from '@shopgate/engage/styles/helpers/loadFontCss';
13
+ import { getInitialFrontendSettingsStyling, hasInitialFrontendSettings } from "../../initialization/_internal/initialFrontendSettings";
6
14
  import { getOrCreateStyleTag, removeStyleTag, serializeStyling } from "./helpers";
7
15
 
8
16
  /**
9
17
  * Headless bridge that connects the app to the admin frontend settings preview. It listens for
10
- * messages from the parent window and applies the received styling while in preview mode.
18
+ * messages from the parent window and applies the received styling, app settings and color scheme
19
+ * while in preview mode.
11
20
  */
12
21
  const FrontendSettingsPreviewBridge = () => {
13
- const [styling, setStyling] = useState(null);
22
+ const [styling, setStyling] = useState(getInitialFrontendSettingsStyling);
23
+ const [applied, setApplied] = useState(hasInitialFrontendSettings);
24
+ const announcedRef = useRef(false);
25
+ const fontCssSyncRef = useRef(Promise.resolve());
14
26
  const dispatch = useDispatch();
27
+ const {
28
+ setMode,
29
+ modes
30
+ } = useColorScheme();
31
+ const fontCssUrls = useSelector(getTypographyFontCssUrls);
15
32
  const {
16
33
  sendToParent
17
34
  } = useIframeMessenger(data => {
18
35
  if (data.type === 'receiveFrontendSettings') {
19
- setStyling(data.payload?.styling ?? null);
36
+ // Dispatched before the local state, because the font css urls are derived from it. A message
37
+ // listener runs outside React's batching, so setting `applied` first would announce the
38
+ // preview against the previous urls.
20
39
  if (data.payload?.appSettings) {
21
40
  dispatch(receiveAppSettings(data.payload.appSettings));
22
41
  }
42
+ setStyling(data.payload?.styling ?? null);
43
+ setApplied(true);
44
+ }
45
+ if (data.type === 'setColorScheme') {
46
+ const colorScheme = data.payload?.colorScheme;
47
+
48
+ // setMode rejects unsupported schemes as well, but this message arrives from another origin,
49
+ // so it is worth naming the admin as the source of the bad value. The `colorScheme` guard also
50
+ // narrows away the defensive `undefined`, so the check and `setMode` typecheck strictly.
51
+ if (!colorScheme || !modes.includes(colorScheme)) {
52
+ logger.warn(`FrontendSettingsPreviewBridge: received unsupported color scheme "${colorScheme}"`);
53
+ return;
54
+ }
55
+ setMode(colorScheme);
23
56
  }
24
57
  }, ALLOWED_ADMIN_PREVIEW_ORIGINS);
25
58
  useEffect(() => {
@@ -27,6 +60,12 @@ const FrontendSettingsPreviewBridge = () => {
27
60
  type: 'frontendSettingsPreviewReady'
28
61
  });
29
62
  }, [sendToParent]);
63
+
64
+ // App start already loaded the configured files. This keeps them in sync while the merchant
65
+ // edits, since loadFontCss adds, keeps and removes link tags to match the urls it is given.
66
+ useEffect(() => {
67
+ fontCssSyncRef.current = loadFontCss(fontCssUrls);
68
+ }, [fontCssUrls]);
30
69
  useEffect(() => {
31
70
  if (!styling) {
32
71
  removeStyleTag();
@@ -34,6 +73,23 @@ const FrontendSettingsPreviewBridge = () => {
34
73
  }
35
74
  getOrCreateStyleTag().textContent = serializeStyling(styling);
36
75
  }, [styling]);
76
+
77
+ // Declared after the styling and font effects so both have run for the applied payload before the
78
+ // admin is told it can drop its overlay - effects run in declaration order, and React defers them
79
+ // until after the browser painted. The font sync is awaited on top: app start already waited for
80
+ // the configured files, but when it timed out the first payload can introduce one here, and
81
+ // announcing before it loaded would expose the fallback font repaint the overlay exists to hide.
82
+ useEffect(() => {
83
+ if (!applied || announcedRef.current) {
84
+ return;
85
+ }
86
+ announcedRef.current = true;
87
+ fontCssSyncRef.current.then(() => {
88
+ sendToParent({
89
+ type: 'frontendSettingsPreviewApplied'
90
+ });
91
+ });
92
+ }, [applied, sendToParent]);
37
93
  useEffect(() => () => {
38
94
  removeStyleTag();
39
95
  }, []);
@@ -8,7 +8,13 @@ export declare const PREVIEW_STYLE_TAG_ID = "frontend-settings-preview-overrides
8
8
  */
9
9
  export declare const serializeStyling: (styling: FrontendSettingsStyling) => string;
10
10
  /**
11
- * Returns the existing preview style tag or creates it in the document head.
11
+ * Returns the existing preview style tag or creates it at the preview css insertion point, which
12
+ * the html template declares directly below the theme css one. The preview has to override both
13
+ * the defaults that theme initialization generates and the theme css file, and since all three
14
+ * have the same specificity, only document order decides.
15
+ *
16
+ * Falls back to appending when the meta is absent, which is where the tag used to live before the
17
+ * insertion points existed.
12
18
  *
13
19
  * @returns The style element used for frontend settings preview overrides.
14
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../admin-preview/components/FrontendSettingsPreviewBridge/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE5E,eAAO,MAAM,oBAAoB,wCAAwC,CAAC;AAuB1E;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,uBAAuB,WAiBpD,CAAC;AAEd;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,wBAW/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,YAG1B,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../admin-preview/components/FrontendSettingsPreviewBridge/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE5E,eAAO,MAAM,oBAAoB,wCAAwC,CAAC;AAyB1E;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,uBAAuB,WAiBpD,CAAC;AAEd;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,wBAkB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,YAG1B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import "core-js/modules/es.string.replace.js";
2
2
  export const PREVIEW_STYLE_TAG_ID = 'frontend-settings-preview-overrides';
3
+ const INSERTION_POINT_SELECTOR = 'meta[name="preview-css-insertion-point"]';
3
4
  const UNITLESS_PROPERTIES = new Set(['font-weight', 'line-height', 'opacity', 'z-index', 'flex', 'flex-grow', 'flex-shrink', 'order']);
4
5
  const toKebabCase = property => property.replace(/[A-Z]/g, character => `-${character.toLowerCase()}`);
5
6
  const stringifyValue = (property, value) => {
@@ -25,7 +26,13 @@ export const serializeStyling = styling => Object.entries(styling).map(([selecto
25
26
  }).filter(Boolean).join('\n');
26
27
 
27
28
  /**
28
- * Returns the existing preview style tag or creates it in the document head.
29
+ * Returns the existing preview style tag or creates it at the preview css insertion point, which
30
+ * the html template declares directly below the theme css one. The preview has to override both
31
+ * the defaults that theme initialization generates and the theme css file, and since all three
32
+ * have the same specificity, only document order decides.
33
+ *
34
+ * Falls back to appending when the meta is absent, which is where the tag used to live before the
35
+ * insertion points existed.
29
36
  *
30
37
  * @returns The style element used for frontend settings preview overrides.
31
38
  */
@@ -35,7 +42,12 @@ export const getOrCreateStyleTag = () => {
35
42
  styleTag = document.createElement('style');
36
43
  styleTag.setAttribute('id', PREVIEW_STYLE_TAG_ID);
37
44
  styleTag.setAttribute('type', 'text/css');
38
- document.head.appendChild(styleTag);
45
+ const insertionPoint = document.querySelector(INSERTION_POINT_SELECTOR);
46
+ if (insertionPoint) {
47
+ insertionPoint.parentNode?.insertBefore(styleTag, insertionPoint.nextSibling);
48
+ } else {
49
+ document.head.appendChild(styleTag);
50
+ }
39
51
  }
40
52
  return styleTag;
41
53
  };
@@ -1,14 +1,27 @@
1
- import type { AppSettings } from '@shopgate/engage/settings/types/appSettings';
1
+ import type { AppSettingsPayload } from '@shopgate/engage/settings/types/appSettings';
2
+ import type { ColorSchemeName } from '@shopgate/engage/styles/theme/createTheme';
2
3
  export type CSSDeclarationValue = string | number;
3
4
  export type FrontendSettingsStyling = Record<string, Record<string, CSSDeclarationValue>>;
4
5
  export type FrontendSettingsPreviewBridgeMessage = {
5
6
  type: 'receiveFrontendSettings';
6
7
  payload?: {
7
8
  styling?: FrontendSettingsStyling;
8
- appSettings?: AppSettings;
9
+ appSettings?: AppSettingsPayload;
10
+ };
11
+ } | {
12
+ type: 'setColorScheme';
13
+ payload: {
14
+ colorScheme: ColorSchemeName;
9
15
  };
10
16
  } | {
11
17
  type: 'frontendSettingsPreviewReady';
12
18
  payload?: never;
19
+ } | {
20
+ /**
21
+ * Outbound. Announces that the first settings payload has been applied and the app rendered
22
+ * with it, so the admin can drop the loading overlay it shows while the preview boots.
23
+ */
24
+ type: 'frontendSettingsPreviewApplied';
25
+ payload?: never;
13
26
  };
14
27
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../admin-preview/components/FrontendSettingsPreviewBridge/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAE/E,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,CAAC;AAClD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAE1F,MAAM,MAAM,oCAAoC,GAC5C;IACA,IAAI,EAAE,yBAAyB,CAAC;IAChC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,uBAAuB,CAAC;QAClC,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,CAAC;CACH,GACC;IACA,IAAI,EAAE,8BAA8B,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../admin-preview/components/FrontendSettingsPreviewBridge/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,CAAC;AAClD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAE1F,MAAM,MAAM,oCAAoC,GAC5C;IACA,IAAI,EAAE,yBAAyB,CAAC;IAChC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,uBAAuB,CAAC;QAClC,WAAW,CAAC,EAAE,kBAAkB,CAAC;KAClC,CAAC;CACH,GACC;IACA,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE;QACP,WAAW,EAAE,eAAe,CAAC;KAC9B,CAAC;CACH,GACC;IACA,IAAI,EAAE,8BAA8B,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,GACC;IACA;;;OAGG;IACH,IAAI,EAAE,gCAAgC,CAAC;IACvC,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC"}
@@ -1,16 +1,4 @@
1
1
  export declare const PAGE_PREVIEW_PATTERN = "/shopgate-internal-page-preview";
2
- /**
3
- * Whether the app is currently in page admin preview mode.
4
- */
5
- export declare const IS_PAGE_ADMIN_PREVIEW_ACTIVE: boolean;
6
- /**
7
- * Whether the app is currently in frontend settings admin preview mode.
8
- */
9
- export declare const IS_FRONTEND_SETTINGS_ADMIN_PREVIEW_ACTIVE: boolean;
10
- /**
11
- * Whether the app is currently in admin preview mode (pages or frontend settings).
12
- */
13
- export declare const IS_ADMIN_PREVIEW_ACTIVE: boolean;
14
2
  /**
15
3
  * List of allowed origins for cms page preview iFrame communication.
16
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../admin-preview/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,oCAAoC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,4BAA4B,SAGN,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,yCAAyC,SAGX,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,uBAAuB,SACU,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,6BAA6B,UAMzC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../admin-preview/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,oCAAoC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,6BAA6B,UAMzC,CAAC"}
@@ -1,21 +1,5 @@
1
- import "core-js/modules/es.array.includes.js";
2
1
  export const PAGE_PREVIEW_PATTERN = '/shopgate-internal-page-preview';
3
2
 
4
- /**
5
- * Whether the app is currently in page admin preview mode.
6
- */
7
- export const IS_PAGE_ADMIN_PREVIEW_ACTIVE = window.location.pathname.startsWith(PAGE_PREVIEW_PATTERN);
8
-
9
- /**
10
- * Whether the app is currently in frontend settings admin preview mode.
11
- */
12
- export const IS_FRONTEND_SETTINGS_ADMIN_PREVIEW_ACTIVE = window.location.search.includes('frontendSettingsPreview=true');
13
-
14
- /**
15
- * Whether the app is currently in admin preview mode (pages or frontend settings).
16
- */
17
- export const IS_ADMIN_PREVIEW_ACTIVE = IS_PAGE_ADMIN_PREVIEW_ACTIVE || IS_FRONTEND_SETTINGS_ADMIN_PREVIEW_ACTIVE;
18
-
19
3
  /**
20
4
  * List of allowed origins for cms page preview iFrame communication.
21
5
  */
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Internal to the admin-preview package - do not import this module from anywhere else. Consume
3
+ * the isAdminPreviewActive / isPageAdminPreviewActive / isFrontendSettingsAdminPreviewActive
4
+ * helpers from @shopgate/engage/admin-preview/helpers instead.
5
+ */
6
+ export declare const FRONTEND_SETTINGS_PREVIEW_PARAM = "frontendSettingsPreview=true";
7
+ /**
8
+ * Detects whether the app is in page admin preview mode. Once detected, the result is latched for
9
+ * the lifetime of the document, because the url is not guaranteed to keep the preview marker.
10
+ * @returns True if the app is in page admin preview mode, false otherwise.
11
+ */
12
+ export declare const detectPageAdminPreview: () => boolean;
13
+ /**
14
+ * Detects whether the app is in frontend settings admin preview mode. Once detected, the result is
15
+ * latched for the lifetime of the document, because the app keeps navigating while the preview is
16
+ * open and the query param only exists on the url it started on.
17
+ * @returns True if the app is in frontend settings admin preview mode, false otherwise.
18
+ */
19
+ export declare const detectFrontendSettingsAdminPreview: () => boolean;
20
+ /**
21
+ * Detects whether the app is in admin preview mode (pages or frontend settings).
22
+ * @returns True if the app is in admin preview mode, false otherwise.
23
+ */
24
+ export declare const detectAdminPreview: () => boolean;
25
+ /**
26
+ * Returns the current detection state. Exposed on window as SGAdminPreviewDebug so the values can
27
+ * be inspected on a deployed build, from the console of the preview iframe:
28
+ *
29
+ * window.SGAdminPreviewDebug()
30
+ *
31
+ * Compare initialHref with currentHref to see whether the url changed since the app booted, and
32
+ * check latched to see whether a result came from the latch rather than the current url.
33
+ * @returns A snapshot of everything detection depends on.
34
+ */
35
+ export declare const getAdminPreviewDebugInfo: () => {
36
+ initialHref: string;
37
+ currentHref: string;
38
+ pathname: string;
39
+ search: string;
40
+ urlChangedSinceBoot: boolean;
41
+ isInIframe: boolean;
42
+ referrer: string;
43
+ latched: {
44
+ page: boolean;
45
+ frontendSettings: boolean;
46
+ };
47
+ detected: {
48
+ page: boolean;
49
+ frontendSettings: boolean;
50
+ any: boolean;
51
+ };
52
+ };
53
+ //# sourceMappingURL=detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../../../admin-preview/helpers/_internal/detection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,eAAO,MAAM,+BAA+B,iCAAiC,CAAC;AAsB9E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAO,OAQzC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,QAAO,OAWrD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,OAC4B,CAAC;AAEnE;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;CAiBnC,CAAC"}