@shopgate/engage 7.31.6 → 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.
- package/README.md +0 -1
- package/account/components/Account/Account.d.ts.map +1 -1
- package/account/components/Account/Account.js +4 -3
- package/account/components/Profile/Profile.provider.js +1 -1
- package/account/components/Profile/ProfileAddressBook.d.ts.map +1 -1
- package/account/components/Profile/ProfileAddressBook.js +19 -30
- package/account/components/Profile/ProfileAddressCard.d.ts.map +1 -1
- package/account/components/Profile/ProfileAddressCard.js +43 -49
- package/account/components/Profile/ProfileForm.d.ts.map +1 -1
- package/account/components/Profile/ProfileForm.js +15 -42
- package/account/components/Profile/ProfileHeader.d.ts.map +1 -1
- package/account/components/Profile/ProfileHeader.js +8 -9
- package/account/components/ProfileContact/ProfileContact.js +15 -22
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts +8 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts.map +1 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.js +98 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts +26 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts.map +1 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.js +61 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/index.d.ts +2 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/index.d.ts.map +1 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/index.js +1 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts +27 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts.map +1 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/types.js +1 -0
- package/admin-preview/components/index.d.ts +2 -0
- package/admin-preview/components/index.d.ts.map +1 -0
- package/admin-preview/components/index.js +1 -0
- package/admin-preview/constants/index.d.ts +6 -0
- package/admin-preview/constants/index.d.ts.map +1 -0
- package/admin-preview/constants/index.js +6 -0
- package/admin-preview/helpers/_internal/detection.d.ts +53 -0
- package/admin-preview/helpers/_internal/detection.d.ts.map +1 -0
- package/admin-preview/helpers/_internal/detection.js +93 -0
- package/admin-preview/helpers/index.d.ts +23 -0
- package/admin-preview/helpers/index.d.ts.map +1 -0
- package/admin-preview/helpers/index.js +27 -0
- package/admin-preview/hooks/index.d.ts +36 -0
- package/admin-preview/hooks/index.d.ts.map +1 -0
- package/admin-preview/hooks/index.js +74 -0
- package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts +32 -0
- package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts.map +1 -0
- package/admin-preview/initialization/_internal/initialFrontendSettings.js +43 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts +22 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts.map +1 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.js +84 -0
- package/back-in-stock/components/BackInStockButton/index.js +19 -22
- package/back-in-stock/components/Subscriptions/components/Subscription/index.js +22 -26
- package/cart/components/CartHeaderWide/CartHeaderWide.js +4 -3
- package/cart/components/CartItem/CartItemCoupon.js +2 -6
- package/cart/components/CartItem/CartItemCouponDelete.js +3 -3
- package/cart/components/CartItem/CartItemCouponLayout.js +1 -1
- package/cart/components/CartItem/CartItemCouponPrice.js +16 -19
- package/cart/components/CartItem/CartItemCouponTitle.js +4 -4
- package/cart/components/CartItem/CartItemProduct.js +2 -6
- package/cart/components/CartItem/CartItemProductLayout.js +6 -9
- package/cart/components/CartItem/CartItemProductLayoutWide.js +21 -16
- package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.js +5 -3
- package/cart/components/CartItem/CartItemProductLayoutWideOrderDetails.js +18 -12
- package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +7 -14
- package/cart/components/CartItem/CartItemProductOrderDetails.js +2 -2
- package/cart/components/CartItem/CartItemProductPriceCaption.js +5 -4
- package/cart/components/CartItem/CartItemProductPriceList.js +18 -12
- package/cart/components/CartItem/CartItemProductPriceListPromotion.js +7 -7
- package/cart/components/CartItem/CartItemProductProvider.connector.js +0 -2
- package/cart/components/CartItem/CartItemProductProvider.js +3 -30
- package/cart/components/CartItem/CartItemProductProvider.types.js +0 -1
- package/cart/components/CartItem/CartItemProductTitle.js +2 -3
- package/cart/components/CartItem/CartItemQuantityPicker.js +3 -7
- package/cart/components/CartItem/CartItemSubstitution.js +1 -2
- package/cart/components/CartItems/CartItemCard.js +3 -4
- package/cart/components/CartItems/CartItemCardReservationAccordion.js +9 -10
- package/cart/components/CartItems/CartItemCardReservationLabel.js +11 -11
- package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +6 -24
- package/cart/components/CartItems/CartItemGroupReservation.js +4 -3
- package/cart/components/CartItems/CartItemGroupReservationLabel.js +12 -10
- package/cart/components/CartItems/CartItemGroupShipping.js +7 -5
- package/cart/components/CartItems/CartItems.js +8 -12
- package/cart/components/CartItems/CartItemsHeaderWide.js +43 -18
- package/cart/components/CartItems/CartItemsSubstitution.js +3 -2
- package/cart/components/CartSummaryWide/CartSummaryWide.js +9 -16
- package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +9 -27
- package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +8 -34
- package/cart/components/PaymentBar/PaymentBarContent.js +4 -10
- package/cart/components/PaymentBar/PaymentBarPromotionCouponMessages.js +6 -2
- package/cart/components/PaymentBar/PaymentBarPromotionCoupons.js +5 -5
- package/cart/components/PaymentBar/PaymentBarPromotionalText.js +9 -10
- package/cart/components/PaymentBar/testUtils/mockFactories.js +57 -0
- package/cart/components/Substitution/connector.js +1 -1
- package/cart/components/SupplementalContent/SupplementalContent.connector.js +2 -1
- package/cart/components/SupplementalContent/SupplementalContent.js +6 -7
- package/category/components/CategoryImage/connector.js +1 -1
- package/category/components/CategoryImage/index.js +24 -17
- package/category/components/CategoryList/index.js +4 -8
- package/checkout/components/AddressBook/AddressList.js +19 -29
- package/checkout/components/AddressBookContact/AddressBookContact.js +6 -6
- package/checkout/components/Checkout/CheckoutActions.js +4 -3
- package/checkout/components/Checkout/CheckoutAddress.js +33 -15
- package/checkout/components/Checkout/CheckoutHeader.js +9 -11
- package/checkout/components/Checkout/CheckoutPickupContactForm.js +2 -2
- package/checkout/components/Checkout/CheckoutSection.js +26 -15
- package/checkout/components/Checkout/CheckoutSectionInfo.js +14 -17
- package/checkout/components/Checkout/CheckoutSectionMessages.js +5 -4
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +20 -20
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmationSection.js +44 -62
- package/checkout/components/GuestCheckout/GuestCheckoutPickup.js +7 -4
- package/checkout/components/PaymentMethodButton/PaymentMethodButton.js +3 -3
- package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +7 -17
- package/checkout/components/ShippingMethods/ShippingMethod.js +6 -5
- package/checkout/components/ShippingMethods/ShippingMethods.js +11 -8
- package/checkout/components/SupplementalContent/SupplementalContent.connector.js +2 -1
- package/checkout/components/SupplementalContent/SupplementalContent.js +6 -7
- package/checkout/paymentMethods/index.js +5 -4
- package/checkout/paymentMethods/paypal/PaypalPayButton.js +7 -6
- package/checkout/paymentMethods/stripe/StripeCreditCard.js +6 -9
- package/components/Badge/Badge.d.ts +30 -0
- package/components/Badge/Badge.d.ts.map +1 -0
- package/components/Badge/Badge.js +48 -0
- package/components/Badge/index.d.ts +3 -0
- package/components/Badge/index.d.ts.map +1 -0
- package/components/Badge/index.js +1 -0
- package/components/Card/Card.d.ts +27 -0
- package/components/Card/Card.d.ts.map +1 -0
- package/components/Card/Card.js +57 -0
- package/components/Card/index.d.ts +4 -0
- package/components/Card/index.d.ts.map +1 -0
- package/components/Card/index.js +2 -0
- package/components/Card/useCardAppearance.d.ts +11 -0
- package/components/Card/useCardAppearance.d.ts.map +1 -0
- package/components/Card/useCardAppearance.js +22 -0
- package/components/ChipLayout/index.js +6 -8
- package/components/Form/Builder/ElementPhoneNumber.d.ts.map +1 -1
- package/components/Form/Builder/ElementPhoneNumber.js +2 -6
- package/components/Form/Builder/stylePresets.d.ts.map +1 -1
- package/components/Form/Builder/stylePresets.js +12 -17
- package/components/Logo/connector.js +3 -1
- package/components/Logo/index.d.ts.map +1 -1
- package/components/Logo/index.js +3 -6
- package/components/Menu/components/Item/index.d.ts.map +1 -1
- package/components/Menu/components/Item/index.js +5 -17
- package/components/Menu/index.d.ts.map +1 -1
- package/components/Menu/index.js +2 -3
- package/components/MessageBar/MessageBar.d.ts.map +1 -1
- package/components/MessageBar/MessageBar.js +35 -42
- package/components/NavigationHandler/connector.js +1 -1
- package/components/Paper/Paper.d.ts +48 -0
- package/components/Paper/Paper.d.ts.map +1 -0
- package/components/Paper/Paper.js +64 -0
- package/components/Paper/index.d.ts +3 -0
- package/components/Paper/index.d.ts.map +1 -0
- package/components/Paper/index.js +1 -0
- package/components/Picker/components/Button/index.js +3 -3
- package/components/Picker/components/List/index.js +3 -3
- package/components/Picker/components/Modal/index.d.ts.map +1 -1
- package/components/Picker/components/Modal/index.js +2 -3
- package/components/PickerUtilize/components/Button/index.d.ts.map +1 -1
- package/components/PickerUtilize/components/Button/index.js +6 -10
- package/components/PickerUtilize/index.d.ts +2 -1
- package/components/PickerUtilize/index.d.ts.map +1 -1
- package/components/Radio/Radio.js +6 -5
- package/components/RadioCard/RadioCard.d.ts.map +1 -1
- package/components/RadioCard/RadioCard.js +2 -1
- package/components/ResponsiveContainer/breakpoints.js +2 -2
- package/components/ScrollHeader/index.js +3 -3
- package/components/SheetList/components/Item/index.js +18 -23
- package/components/SheetList/index.d.ts.map +1 -1
- package/components/SheetList/index.js +3 -7
- package/components/SideNavigation/SideNavigationCategories.js +2 -7
- package/components/SideNavigation/SideNavigationCategoriesItem.js +2 -2
- package/components/SideNavigation/SideNavigationContent.js +3 -3
- package/components/SideNavigation/SideNavigationItem.d.ts.map +1 -1
- package/components/SideNavigation/SideNavigationItem.js +3 -4
- package/components/SideNavigation/SideNavigationNestedItem.js +2 -2
- package/components/Switch/index.d.ts.map +1 -1
- package/components/Switch/index.js +6 -7
- package/components/Tabs/components/Tab.d.ts.map +1 -1
- package/components/Tabs/components/Tab.js +14 -16
- package/components/Tabs/components/TabIndicator.js +3 -3
- package/components/TextLink/TextLink.d.ts.map +1 -1
- package/components/TextLink/TextLink.js +8 -26
- package/components/Toggle/index.js +5 -5
- package/components/Typography/Typography.d.ts +87 -124
- package/components/Typography/Typography.d.ts.map +1 -0
- package/components/Typography/Typography.js +72 -57
- package/components/Typography/index.d.ts +2 -1
- package/components/Typography/index.d.ts.map +1 -0
- package/components/View/components/Above/index.d.ts.map +1 -1
- package/components/View/components/Above/index.js +3 -1
- package/components/View/components/Below/index.d.ts.map +1 -1
- package/components/View/components/Below/index.js +3 -1
- package/components/View/components/Content/index.d.ts +2 -1
- package/components/View/components/Content/index.d.ts.map +1 -1
- package/components/View/components/Content/index.js +6 -3
- package/components/View/index.d.ts.map +1 -1
- package/components/View/index.js +1 -5
- package/components/constants.d.ts +6 -0
- package/components/constants.d.ts.map +1 -0
- package/components/index.d.ts +5 -1
- package/components/index.d.ts.map +1 -1
- package/components/index.js +4 -2
- package/components/v2/Button/Button.d.ts +24 -13
- package/components/v2/Button/Button.d.ts.map +1 -1
- package/components/v2/Button/Button.js +139 -41
- package/components/v2/ButtonBase/ButtonBase.d.ts +50 -10
- package/components/v2/ButtonBase/ButtonBase.d.ts.map +1 -1
- package/components/v2/ButtonBase/ButtonBase.js +192 -17
- package/components/v2/ButtonBase/Ripple.d.ts +2 -1
- package/components/v2/ButtonBase/Ripple.d.ts.map +1 -1
- package/components/v2/ButtonBase/hooks.d.ts +0 -1
- package/components/v2/ButtonBase/hooks.d.ts.map +1 -1
- package/components/v2/ButtonBase/hooks.js +36 -12
- package/components/v2/ButtonGroup/ButtonGroup.d.ts +11 -5
- package/components/v2/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/components/v2/ButtonGroup/ButtonGroup.js +49 -26
- package/components/v2/CircularProgress/CircularProgress.d.ts.map +1 -1
- package/components/v2/CircularProgress/CircularProgress.js +10 -5
- package/core/action-creators/merchantSettings.d.ts +1 -1
- package/core/action-creators/merchantSettings.d.ts.map +1 -1
- package/core/action-creators/merchantSettings.js +3 -11
- package/core/action-creators/shopSettings.d.ts +1 -2
- package/core/action-creators/shopSettings.d.ts.map +1 -1
- package/core/action-creators/shopSettings.js +3 -21
- package/core/constants/merchantSettings.d.ts +1 -11
- package/core/constants/merchantSettings.d.ts.map +1 -1
- package/core/constants/merchantSettings.js +3 -11
- package/core/constants/shopSettings.d.ts +1 -27
- package/core/constants/shopSettings.d.ts.map +1 -1
- package/core/constants/shopSettings.js +3 -27
- package/core/helpers/getFullImageSource.d.ts +5 -1
- package/core/helpers/getFullImageSource.d.ts.map +1 -1
- package/core/helpers/getFullImageSource.js +30 -14
- package/core/helpers/scrollContainer.js +2 -2
- package/core/hooks/html/useLoadImage.d.ts +3 -3
- package/core/hooks/html/useLoadImage.d.ts.map +1 -1
- package/core/hooks/html/useLoadImage.js +2 -2
- package/core/hooks/useLocalStorage.d.ts +8 -0
- package/core/hooks/useLocalStorage.d.ts.map +1 -1
- package/core/hooks/useLocalStorage.js +22 -15
- package/core/hooks/useNavigation.d.ts +10 -2
- package/core/hooks/useNavigation.d.ts.map +1 -1
- package/core/hooks/useNavigation.js +1 -2
- package/core/initialization/fetchSettings.d.ts +12 -0
- package/core/initialization/fetchSettings.d.ts.map +1 -0
- package/core/initialization/fetchSettings.js +134 -0
- package/core/initialization/index.d.ts +33 -2
- package/core/initialization/index.d.ts.map +1 -1
- package/core/initialization/index.js +44 -102
- package/core/router/conductor.d.ts +9 -0
- package/core/router/helpers.d.ts +28 -15
- package/core/router/helpers.d.ts.map +1 -1
- package/core/router/helpers.js +8 -8
- package/core/selectors/merchantSettings.d.ts +1 -20
- package/core/selectors/merchantSettings.d.ts.map +1 -1
- package/core/selectors/merchantSettings.js +3 -33
- package/core/selectors/shopSettings.d.ts +1 -53
- package/core/selectors/shopSettings.d.ts.map +1 -1
- package/core/selectors/shopSettings.js +3 -80
- package/development/components/ClientInformation/ClientInformation.js +5 -3
- package/development/components/DevelopmentSettings/DevelopmentSettings.js +6 -5
- package/development/components/SimulatedInsets/SimulatedInsetBottom.js +3 -3
- package/development/components/SimulatedInsets/SimulatedInsetTop.js +6 -6
- package/favorites/components/CommentDialog/CommentDialog.js +17 -15
- package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +9 -20
- package/favorites/components/Item/Item.d.ts +1 -1
- package/favorites/components/Item/Item.d.ts.map +1 -1
- package/favorites/components/Item/Item.js +21 -22
- package/favorites/components/Item/ItemCharacteristics.d.ts.map +1 -1
- package/favorites/components/Item/ItemCharacteristics.js +6 -14
- package/favorites/components/Item/ItemNotes.js +23 -20
- package/favorites/components/Item/ItemQuantity.js +1 -1
- package/favorites/components/List/List.d.ts +1 -1
- package/favorites/components/List/List.d.ts.map +1 -1
- package/favorites/components/List/List.js +0 -5
- package/favorites/components/List/ListContent.js +4 -5
- package/favorites/components/ListChooser/ListChooserItem.js +1 -1
- package/favorites/components/Lists/Lists.js +19 -8
- package/favorites/components/Lists/ListsModal.d.ts.map +1 -1
- package/favorites/components/Lists/ListsModal.js +4 -11
- package/favorites/components/RemoveButton/RemoveButton.d.ts.map +1 -1
- package/favorites/components/RemoveButton/RemoveButton.js +1 -2
- package/filter/components/FilterItem/index.js +5 -8
- package/filter/components/FilterPageContent/components/ApplyButton/index.js +8 -10
- package/filter/components/FilterPageContent/components/ResetButton/index.js +8 -6
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +3 -3
- package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +4 -5
- package/filter/components/PriceSlider/components/Label/index.js +9 -13
- package/filter/components/PriceSlider/index.js +9 -9
- package/filter/selectors/index.js +2 -2
- package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.js +1 -1
- package/locations/components/ChangeLocationButton/ChangeLocationButton.js +10 -14
- package/locations/components/FulfillmentPath/FulfillmentPathItem.js +1 -7
- package/locations/components/FulfillmentSelector/FulfillmentSelector.connector.js +2 -2
- package/locations/components/FulfillmentSelector/FulfillmentSelectorAlternativeLocation.js +12 -10
- package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.js +1 -1
- package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.js +3 -3
- package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.js +4 -4
- package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.js +18 -15
- package/locations/components/FulfillmentSelector/FulfillmentSelectorLocationMethodNotAvailable.js +3 -3
- package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +4 -8
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +25 -28
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.connector.js +1 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.connector.js +1 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +5 -5
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +19 -28
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +20 -23
- package/locations/components/GlobalLocationSelector/GlobalLocationSelector.js +1 -1
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.connector.js +1 -1
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +18 -28
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +19 -20
- package/locations/components/ReservationResponses/ReservationError.js +9 -6
- package/locations/components/ReservationResponses/ReservationSuccess.js +14 -9
- package/locations/components/ReserveForm/ReserveForm.js +11 -11
- package/locations/components/ReserveForm/ReserveFormPhone.js +7 -9
- package/locations/components/StockInfo/StockInfo.js +4 -2
- package/locations/components/StockInfoLists/index.js +5 -7
- package/locations/components/StoreDetails/components/FindMoreStores.js +11 -12
- package/locations/components/StoreDetails/components/GetDirectionsButton.js +5 -9
- package/locations/components/StoreDetails/components/StoreDetails.js +27 -34
- package/locations/components/StoreDetails/components/StoreFinderMap.js +4 -4
- package/locations/components/StoreDetails/components/StoresNearby.js +5 -3
- package/locations/components/StoreDetails/components/StoresNearbyListItem.js +36 -30
- package/locations/components/StoreFinder/StoreFinder.js +1 -1
- package/locations/components/StoreFinder/StoreFinderLocationDetails.js +7 -6
- package/locations/components/StoreFinder/StoreFinderLocationHeader.js +17 -21
- package/locations/components/StoreFinder/StoreFinderLocations.js +2 -6
- package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -11
- package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +5 -11
- package/locations/components/StoreList/StoreAddress.js +3 -3
- package/locations/components/StoreList/StoreAddressShort.js +10 -12
- package/locations/components/StoreList/StoreDetails.js +1 -2
- package/locations/components/StoreList/StoreDetailsLine.js +3 -3
- package/locations/components/StoreList/StoreDistance.js +6 -17
- package/locations/components/StoreList/StoreHeader.js +7 -7
- package/locations/components/StoreList/StoreHoursToday.js +3 -3
- package/locations/components/StoreList/StoreListLocations.js +20 -18
- package/locations/components/StoreList/StoreListProduct.js +4 -6
- package/locations/components/StoreList/StoreListProductInfo.js +9 -6
- package/locations/components/StoreList/StoreListProductName.js +4 -3
- package/locations/components/StoreList/StoreListSearch.js +11 -11
- package/locations/components/StoreList/StoreListSearchRadius.js +4 -5
- package/locations/components/StoreList/StoreOpeningHours.js +10 -12
- package/locations/components/StoreList/StorePhoneNumber.js +10 -12
- package/locations/components/StoreList/StoreSelectLocationButton.js +5 -11
- package/locations/helpers/showInventoryInLists.js +1 -1
- package/locations/providers/FulfillmentProvider.connector.js +1 -1
- package/locations/reducers/index.js +1 -1
- package/locations/selectors/index.js +2 -1
- package/locations/subscriptions.js +2 -2
- package/login/components/ForgotPassword/ForgotPassword.js +24 -36
- package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +6 -8
- package/orders/components/OrderDetails/OrderDetailsContent.js +5 -4
- package/orders/components/OrderDetails/OrderDetailsOrderHeader.js +7 -8
- package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.js +2 -2
- package/orders/components/OrderHistory/OrderHistoryList.d.ts.map +1 -1
- package/orders/components/OrderHistory/OrderHistoryList.js +9 -14
- package/orders/components/OrderHistory/OrderHistoryTable.d.ts.map +1 -1
- package/orders/components/OrderHistory/OrderHistoryTable.js +5 -1
- package/package.json +11 -10
- package/page/components/NotFound.d.ts +7 -0
- package/page/components/NotFound.d.ts.map +1 -0
- package/page/components/NotFound.js +16 -15
- package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts +52 -0
- package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts.map +1 -0
- package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.js +4 -4
- package/page/components/ResponsiveWidgetImage/index.d.ts +2 -0
- package/page/components/ResponsiveWidgetImage/index.d.ts.map +1 -0
- package/page/components/WidgetHeadline/WidgetHeadline.js +4 -3
- package/page/components/WidgetRichText/WidgetRichText.d.ts +25 -0
- package/page/components/WidgetRichText/WidgetRichText.d.ts.map +1 -0
- package/page/components/WidgetRichText/WidgetRichText.js +1 -1
- package/page/components/WidgetRichText/index.d.ts +2 -0
- package/page/components/WidgetRichText/index.d.ts.map +1 -0
- package/page/components/WidgetVideo/WidgetVideo.d.ts +43 -0
- package/page/components/WidgetVideo/WidgetVideo.d.ts.map +1 -0
- package/page/components/WidgetVideo/WidgetVideo.js +33 -39
- package/page/components/WidgetVideo/index.d.ts +2 -0
- package/page/components/WidgetVideo/index.d.ts.map +1 -0
- package/page/components/Widgets/Overlay.d.ts +17 -0
- package/page/components/Widgets/Overlay.d.ts.map +1 -0
- package/page/components/Widgets/Overlay.js +24 -38
- package/page/components/Widgets/Tooltip.d.ts +20 -0
- package/page/components/Widgets/Tooltip.d.ts.map +1 -0
- package/page/components/Widgets/Tooltip.js +13 -18
- package/page/components/Widgets/Widget.d.ts +32 -0
- package/page/components/Widgets/Widget.d.ts.map +1 -0
- package/page/components/Widgets/Widget.js +11 -22
- package/page/components/Widgets/WidgetContext.d.ts +32 -38
- package/page/components/Widgets/WidgetContext.d.ts.map +1 -0
- package/page/components/Widgets/WidgetContext.js +2 -8
- package/page/components/Widgets/WidgetProvider.d.ts +25 -0
- package/page/components/Widgets/WidgetProvider.d.ts.map +1 -0
- package/page/components/Widgets/WidgetProvider.js +5 -12
- package/page/components/Widgets/Widgets.d.ts +16 -0
- package/page/components/Widgets/Widgets.d.ts.map +1 -0
- package/page/components/Widgets/Widgets.js +5 -12
- package/page/components/Widgets/WidgetsPreviewContext.d.ts +21 -0
- package/page/components/Widgets/WidgetsPreviewContext.d.ts.map +1 -0
- package/page/components/Widgets/WidgetsPreviewContext.js +5 -7
- package/page/components/Widgets/WidgetsPreviewProvider.d.ts +18 -0
- package/page/components/Widgets/WidgetsPreviewProvider.d.ts.map +1 -0
- package/page/components/Widgets/WidgetsPreviewProvider.js +5 -6
- package/page/components/Widgets/constants.d.ts +5 -0
- package/page/components/Widgets/constants.d.ts.map +1 -0
- package/page/components/Widgets/constants.js +1 -4
- package/page/components/Widgets/events.d.ts +38 -0
- package/page/components/Widgets/events.d.ts.map +1 -0
- package/page/components/Widgets/events.js +8 -12
- package/page/components/Widgets/helpers.d.ts +50 -0
- package/page/components/Widgets/helpers.d.ts.map +1 -0
- package/page/components/Widgets/helpers.js +8 -13
- package/page/components/Widgets/hooks.d.ts +13 -0
- package/page/components/Widgets/hooks.d.ts.map +1 -0
- package/page/components/Widgets/hooks.js +15 -104
- package/page/components/Widgets/index.d.ts +3 -0
- package/page/components/Widgets/index.d.ts.map +1 -0
- package/page/components/Widgets/types.d.ts +111 -113
- package/page/components/Widgets/types.d.ts.map +1 -0
- package/page/components/Widgets/types.js +1 -0
- package/page/components/index.d.ts +5 -0
- package/page/components/index.d.ts.map +1 -0
- package/page/constants/actionTypes.d.ts +4 -0
- package/page/constants/actionTypes.d.ts.map +1 -0
- package/page/constants/index.d.ts +25 -0
- package/page/constants/index.d.ts.map +1 -0
- package/page/constants/index.js +7 -2
- package/page/helpers/index.d.ts +70 -62
- package/page/helpers/index.d.ts.map +1 -0
- package/page/helpers/index.js +31 -29
- package/page/hooks/index.d.ts +54 -53
- package/page/hooks/index.d.ts.map +1 -0
- package/page/hooks/index.js +20 -15
- package/page/selectors/index.d.ts +32 -0
- package/page/selectors/index.d.ts.map +1 -0
- package/page/selectors/index.js +2 -1
- package/page/widgets/Button/Button.js +2 -3
- package/page/widgets/HTML/HTML.js +5 -9
- package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +8 -13
- package/page/widgets/NestedCategoryFilter/components/Picker/components/SheetItem/index.js +2 -2
- package/page/widgets/NestedCategoryFilter/components/Picker/index.js +7 -9
- package/page/widgets/Placeholder/Placeholder.js +7 -8
- package/page/widgets/ProductList/ProductList.js +18 -14
- package/page/widgets/ProductSlider/ProductSlider.js +1 -15
- package/page/widgets/Video/Video.d.ts +6 -0
- package/page/widgets/Video/Video.d.ts.map +1 -0
- package/page/widgets/Video/Video.js +0 -2
- package/page/widgets/Video/hooks.d.ts +53 -0
- package/page/widgets/Video/hooks.d.ts.map +1 -0
- package/page/widgets/Video/hooks.js +4 -12
- package/page/widgets/Video/index.d.ts +2 -0
- package/page/widgets/Video/index.d.ts.map +1 -0
- package/product/components/Availability/Availability.js +0 -4
- package/product/components/Characteristics/Characteristic/components/SheetItem/index.js +4 -8
- package/product/components/Characteristics/Characteristic/index.js +9 -12
- package/product/components/Characteristics/Swatch/index.js +3 -7
- package/product/components/Characteristics/transition.js +4 -4
- package/product/components/Description/index.js +5 -8
- package/product/components/EffectivityDates/index.js +23 -17
- package/product/components/FilterBar/components/Content/components/FilterButton/index.js +7 -13
- package/product/components/FilterBar/components/Content/components/Sort/index.js +7 -13
- package/product/components/FilterBar/components/FilterModal/FilterModalContent.js +3 -7
- package/product/components/FilterBar/components/FilterModal/FilterModalTitle.js +13 -12
- package/product/components/FilterBar/index.js +4 -8
- package/product/components/Header/PriceStriked/index.js +4 -8
- package/product/components/Header/Shipping/index.js +3 -3
- package/product/components/Header/Tiers/components/Tier/index.js +3 -3
- package/product/components/Header/Tiers/index.js +5 -3
- package/product/components/MapPriceHint/index.js +8 -7
- package/product/components/Media/FeaturedMedia.js +7 -1
- package/product/components/Media/MediaImage.js +25 -24
- package/product/components/Media/MediaPlaceholder.js +7 -11
- package/product/components/MediaSlider/components/MediaImage/index.js +6 -2
- package/product/components/MediaSlider/constants.js +1 -12
- package/product/components/Options/components/TextOption/components/OptionInfo/index.js +18 -18
- package/product/components/Options/components/TextOption/index.js +8 -11
- package/product/components/OrderQuantityHint/index.js +17 -8
- package/product/components/PriceDifference/index.js +4 -8
- package/product/components/PriceInfo/PriceInfo.connector.js +2 -2
- package/product/components/PriceInfo/PriceInfo.js +3 -4
- package/product/components/ProductCard/index.js +39 -27
- package/product/components/ProductDiscountBadge/index.js +3 -3
- package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +12 -4
- package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/index.js +1 -1
- package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +3 -6
- package/product/components/ProductGrid/components/Item/components/ItemName/index.js +9 -5
- package/product/components/ProductGrid/components/Item/index.js +10 -6
- package/product/components/ProductGrid/components/Layout/index.js +19 -4
- package/product/components/ProductGrid/constants.d.ts +2 -0
- package/product/components/ProductGrid/constants.d.ts.map +1 -0
- package/product/components/ProductGrid/constants.js +1 -0
- package/product/components/ProductGrid/hooks.d.ts +11 -0
- package/product/components/ProductGrid/hooks.d.ts.map +1 -0
- package/product/components/ProductGrid/hooks.js +48 -0
- package/product/components/ProductGrid/index.js +3 -6
- package/product/components/ProductGridPrice/index.js +8 -15
- package/product/components/ProductImage/ProductImage.d.ts +42 -0
- package/product/components/ProductImage/ProductImage.d.ts.map +1 -0
- package/product/components/ProductImage/ProductImage.js +158 -0
- package/product/components/ProductImage/ProductImagePlaceholder.d.ts +23 -0
- package/product/components/ProductImage/ProductImagePlaceholder.d.ts.map +1 -0
- package/product/components/ProductImage/ProductImagePlaceholder.js +18 -26
- package/product/components/ProductImage/constants.d.ts +7 -0
- package/product/components/ProductImage/constants.d.ts.map +1 -0
- package/product/components/ProductImage/constants.js +6 -0
- package/product/components/ProductImage/hooks.d.ts +8 -0
- package/product/components/ProductImage/hooks.d.ts.map +1 -0
- package/product/components/ProductImage/hooks.js +32 -0
- package/product/components/ProductImage/index.d.ts +3 -0
- package/product/components/ProductImage/index.d.ts.map +1 -0
- package/product/components/ProductImage/index.js +1 -203
- package/product/components/ProductList/components/Item/index.js +10 -12
- package/product/components/ProductList/components/Layout/index.js +8 -20
- package/product/components/ProductName/ProductName.d.ts +1 -1
- package/product/components/ProductName/ProductName.d.ts.map +1 -1
- package/product/components/ProductName/ProductNameContent.d.ts +2 -1
- package/product/components/ProductName/ProductNameContent.d.ts.map +1 -1
- package/product/components/ProductProperties/Content.js +1 -1
- package/product/components/ProductProperties/Group.js +6 -4
- package/product/components/ProductProperties/GroupedProperties.js +1 -1
- package/product/components/ProductProperties/Wrapper.js +4 -2
- package/product/components/ProductRatingStars/ProductRatingStars.d.ts +1 -1
- package/product/components/ProductRatingStars/ProductRatingStars.js +2 -4
- package/product/components/ProductSlider/constants.d.ts +3 -0
- package/product/components/ProductSlider/constants.d.ts.map +1 -0
- package/product/components/ProductSlider/constants.js +2 -0
- package/product/components/ProductSlider/hooks.d.ts +7 -0
- package/product/components/ProductSlider/hooks.d.ts.map +1 -0
- package/product/components/ProductSlider/hooks.js +40 -0
- package/product/components/ProductSlider/index.js +8 -8
- package/product/components/Rating/index.js +2 -4
- package/product/components/RelationsSlider/RelationsSheet.js +1 -5
- package/product/components/RelationsSlider/RelationsSliderContent.js +7 -6
- package/product/components/RelationsSlider/constants.d.ts +3 -0
- package/product/components/RelationsSlider/constants.d.ts.map +1 -0
- package/product/components/RelationsSlider/constants.js +2 -1
- package/product/components/RelationsSlider/hooks.d.ts +6 -0
- package/product/components/RelationsSlider/hooks.d.ts.map +1 -0
- package/product/components/RelationsSlider/hooks.js +34 -0
- package/product/components/Swatch/SwatchContent.js +3 -7
- package/product/components/Swatches/Swatches.js +3 -7
- package/product/components/UnitQuantityPicker/ProductUnitQuantityPicker.js +4 -4
- package/product/components/UnitQuantityPicker/UnitQuantityPicker.d.ts.map +1 -1
- package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +24 -45
- package/product/helpers/index.js +29 -11
- package/product/hooks/index.js +3 -1
- package/product/hooks/useLoadProductImage.js +4 -2
- package/product/hooks/useShowEmptyRatingStars.d.ts +7 -0
- package/product/hooks/useShowEmptyRatingStars.d.ts.map +1 -0
- package/product/hooks/useShowEmptyRatingStars.js +21 -0
- package/product/index.js +0 -1
- package/push-opt-in/components/PushOptInModal/index.js +17 -17
- package/registration/components/GuestRegistration/GuestRegistrationFormPickup.js +2 -2
- package/registration/components/Registration/RegistrationContent.js +2 -1
- package/registration/components/Registration/RegistrationFormActions.js +4 -4
- package/registration/components/Registration/RegistrationFormBase.config.js +2 -1
- package/registration/providers/GuestRegistrationProvider.actions.js +1 -1
- package/registration/providers/GuestRegistrationProvider.connector.js +3 -2
- package/registration/providers/GuestRegistrationProvider.js +2 -1
- package/registration/providers/RegistrationProvider.actions.js +4 -2
- package/registration/providers/RegistrationProvider.connector.js +2 -2
- package/registration/providers/RegistrationProvider.constraints.js +1 -1
- package/registration/providers/RegistrationProvider.js +2 -1
- package/reviews/components/Reviews/components/AllReviewsLink/index.js +6 -6
- package/reviews/components/Reviews/components/Header/components/NoReviews/index.js +1 -1
- package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/index.js +3 -3
- package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +4 -3
- package/reviews/components/Reviews/components/List/components/Info/index.js +16 -26
- package/reviews/components/Reviews/components/List/components/Text/index.js +4 -2
- package/reviews/components/Reviews/components/List/components/Title/index.js +3 -3
- package/reviews/components/Reviews/components/List/index.js +1 -5
- package/reviews/components/Reviews/components/RatingCount/index.js +13 -15
- package/reviews/components/Reviews/components/ReviewsInfo/index.js +9 -9
- package/settings/action-creators/appSettings.d.ts +12 -0
- package/settings/action-creators/appSettings.d.ts.map +1 -0
- package/settings/action-creators/appSettings.js +10 -0
- package/settings/action-creators/merchantSettings.d.ts +2 -0
- package/settings/action-creators/merchantSettings.d.ts.map +1 -0
- package/settings/action-creators/merchantSettings.js +11 -0
- package/settings/action-creators/shopSettings.d.ts +3 -0
- package/settings/action-creators/shopSettings.d.ts.map +1 -0
- package/settings/action-creators/shopSettings.js +21 -0
- package/settings/constants/appSettings.d.ts +5 -0
- package/settings/constants/appSettings.d.ts.map +1 -0
- package/settings/constants/appSettings.js +6 -0
- package/settings/constants/imageSettings.d.ts +52 -0
- package/settings/constants/imageSettings.d.ts.map +1 -0
- package/settings/constants/imageSettings.js +69 -0
- package/settings/constants/merchantSettings.d.ts +12 -0
- package/settings/constants/merchantSettings.d.ts.map +1 -0
- package/settings/constants/merchantSettings.js +11 -0
- package/settings/constants/shopSettings.d.ts +28 -0
- package/settings/constants/shopSettings.d.ts.map +1 -0
- package/settings/constants/shopSettings.js +27 -0
- package/settings/helpers/index.d.ts +3 -0
- package/settings/helpers/index.d.ts.map +1 -0
- package/settings/helpers/index.js +1 -0
- package/settings/helpers/resolveImageSettings.d.ts +70 -0
- package/settings/helpers/resolveImageSettings.d.ts.map +1 -0
- package/settings/helpers/resolveImageSettings.js +171 -0
- package/settings/helpers/toImageQuality.d.ts +7 -0
- package/settings/helpers/toImageQuality.d.ts.map +1 -0
- package/settings/helpers/toImageQuality.js +44 -0
- package/settings/helpers/toThumborColor.d.ts +15 -0
- package/settings/helpers/toThumborColor.d.ts.map +1 -0
- package/settings/helpers/toThumborColor.js +51 -0
- package/settings/hooks/index.d.ts +2 -0
- package/settings/hooks/index.d.ts.map +1 -0
- package/settings/hooks/index.js +1 -0
- package/settings/hooks/useImageSettings.d.ts +28 -0
- package/settings/hooks/useImageSettings.d.ts.map +1 -0
- package/settings/hooks/useImageSettings.js +39 -0
- package/settings/reducers/appSettings.d.ts +18 -0
- package/settings/reducers/appSettings.d.ts.map +1 -0
- package/settings/reducers/appSettings.js +134 -0
- package/settings/reducers/index.d.ts +15 -0
- package/settings/reducers/index.d.ts.map +1 -0
- package/{core → settings}/reducers/index.js +4 -3
- package/settings/reducers/merchantSettings.d.ts +18 -0
- package/settings/reducers/merchantSettings.d.ts.map +1 -0
- package/{core → settings}/reducers/merchantSettings.js +9 -3
- package/settings/reducers/shopSettings.d.ts +28 -0
- package/settings/reducers/shopSettings.d.ts.map +1 -0
- package/{core → settings}/reducers/shopSettings.js +10 -4
- package/settings/selectors/appSettings.d.ts +157 -0
- package/settings/selectors/appSettings.d.ts.map +1 -0
- package/settings/selectors/appSettings.js +97 -0
- package/settings/selectors/merchantSettings.d.ts +21 -0
- package/settings/selectors/merchantSettings.d.ts.map +1 -0
- package/settings/selectors/merchantSettings.js +34 -0
- package/settings/selectors/shopSettings.d.ts +54 -0
- package/settings/selectors/shopSettings.d.ts.map +1 -0
- package/settings/selectors/shopSettings.js +81 -0
- package/settings/types/appSettings.d.ts +276 -0
- package/settings/types/appSettings.d.ts.map +1 -0
- package/settings/types/appSettings.js +124 -0
- package/styles/helpers/index.d.ts +2 -0
- package/styles/helpers/index.js +2 -0
- package/styles/helpers/loadFontCss.d.ts +22 -0
- package/styles/helpers/loadFontCss.d.ts.map +1 -0
- package/styles/helpers/loadFontCss.js +138 -0
- package/styles/helpers/loadThemeCss.d.ts +14 -0
- package/styles/helpers/loadThemeCss.d.ts.map +1 -0
- package/styles/helpers/loadThemeCss.js +123 -0
- package/styles/helpers/setPageBackgroundColor.js +2 -2
- package/styles/index.d.ts +1 -1
- package/styles/index.d.ts.map +1 -1
- package/styles/index.js +1 -1
- package/styles/reset/root.js +23 -4
- package/styles/reset/typographyCustomProps.d.ts +12 -0
- package/styles/reset/typographyCustomProps.d.ts.map +1 -0
- package/styles/reset/typographyCustomProps.js +11 -0
- package/styles/theme/createDefaultThemeOptions/index.d.ts.map +1 -1
- package/styles/theme/createDefaultThemeOptions/index.js +179 -7
- package/styles/theme/createTheme/createComponents.types.d.ts +266 -0
- package/styles/theme/createTheme/createComponents.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createComponents.types.js +266 -0
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.d.ts.map +1 -1
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.js +41 -5
- package/styles/theme/createTheme/createPalette.types.d.ts +20 -7
- package/styles/theme/createTheme/createPalette.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createPalette.types.js +23 -10
- package/styles/theme/createTheme/createShape.d.ts +3 -0
- package/styles/theme/createTheme/createShape.d.ts.map +1 -1
- package/styles/theme/createTheme/createSpacing.js +4 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts +11 -2
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts.map +1 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.js +16 -4
- package/styles/theme/createTheme/createTypography.d.ts +2 -1
- package/styles/theme/createTheme/createTypography.js +59 -18
- package/styles/theme/createTheme/helpers/cssVarsColorAugmentation.d.ts +2 -1
- package/styles/theme/createTheme/helpers/cssVarsColorAugmentation.d.ts.map +1 -1
- package/styles/theme/createTheme/helpers/cssVarsColorAugmentation.js +84 -6
- package/styles/theme/createTheme/helpers/cssVarsParser.d.ts.map +1 -1
- package/styles/theme/createTheme/helpers/cssVarsParser.js +10 -3
- package/styles/theme/createTheme/index.d.ts +2 -1
- package/styles/theme/createTheme/index.d.ts.map +1 -1
- package/styles/theme/createTheme/index.js +5 -3
- package/styles/theme/createTheme/layout.d.ts +23 -0
- package/styles/theme/createTheme/layout.d.ts.map +1 -0
- package/styles/theme/createTheme/layout.js +20 -0
- package/styles/theme/createTheme/shadows.d.ts +11 -1
- package/styles/theme/createTheme/shadows.d.ts.map +1 -1
- package/styles/theme/createTheme/shadows.js +41 -7
- package/styles/theme/createTheme/transitions.d.ts +4 -0
- package/styles/theme/createTheme/transitions.js +3 -1
- package/styles/theme/createTheme/types.d.ts +48 -10
- package/styles/theme/createTheme/types.d.ts.map +1 -1
- package/styles/theme/createTheme/types.js +16 -4
- package/styles/theme/hocs/index.d.ts +2 -0
- package/styles/theme/hocs/index.d.ts.map +1 -0
- package/styles/theme/hocs/index.js +1 -0
- package/styles/theme/hocs/withTheme.d.ts +21 -0
- package/styles/theme/hocs/withTheme.d.ts.map +1 -0
- package/styles/theme/hocs/withTheme.js +33 -0
- package/styles/theme/hooks/useColorScheme.d.ts +4 -3
- package/styles/theme/hooks/useColorScheme.d.ts.map +1 -1
- package/styles/theme/hooks/useColorScheme.js +4 -3
- package/styles/theme/hooks/useMediaQuery.d.ts +7 -0
- package/styles/theme/hooks/useMediaQuery.d.ts.map +1 -1
- package/styles/theme/hooks/useMediaQuery.js +5 -5
- package/styles/theme/hooks/useTheme.js +1 -1
- package/styles/theme/index.d.ts +5 -1
- package/styles/theme/index.d.ts.map +1 -1
- package/styles/theme/index.js +2 -1
- package/styles/theme/providers/ActiveBreakpointProvider.d.ts +1 -1
- package/styles/theme/providers/ColorSchemeContext.d.ts +40 -0
- package/styles/theme/providers/ColorSchemeContext.d.ts.map +1 -0
- package/styles/theme/providers/ColorSchemeContext.js +14 -0
- package/styles/theme/providers/ThemeContext.d.ts +3 -0
- package/styles/theme/providers/ThemeContext.d.ts.map +1 -0
- package/styles/theme/providers/ThemeContext.js +2 -0
- package/styles/theme/providers/ThemeProvider.d.ts +4 -14
- package/styles/theme/providers/ThemeProvider.d.ts.map +1 -1
- package/styles/theme/providers/ThemeProvider.js +90 -26
- package/styles/theme/utils/color.d.ts +12 -12
- package/styles/theme/utils/color.d.ts.map +1 -1
- package/tracking/components/CookieConsentModal/index.js +14 -15
- package/tracking/components/PrivacySettings/index.js +7 -7
- package/tracking/selectors/cookieConsent.js +2 -2
- package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +0 -6
- package/cart/components/PaymentBar/PaymentBarReserveButton.js +0 -75
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +0 -16
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +0 -52
- package/product/collections/index.js +0 -1
- package/product/components/EffectivityDates/constants.d.ts +0 -3
- package/product/components/EffectivityDates/constants.d.ts.map +0 -1
- package/product/components/EffectivityDates/helpers.d.ts +0 -6
- package/product/components/EffectivityDates/helpers.d.ts.map +0 -1
- package/product/components/Media/helpers.d.ts +0 -2
- package/product/components/Media/helpers.d.ts.map +0 -1
- package/product/components/ProductImage/connector.js +0 -12
- package/product/helpers/index.d.ts +0 -13
- package/product/helpers/index.d.ts.map +0 -1
- package/product/helpers/redirects.d.ts +0 -2
- package/product/helpers/redirects.d.ts.map +0 -1
- package/product/selectors/helpers/filterProperties.d.ts +0 -8
- package/product/selectors/helpers/filterProperties.d.ts.map +0 -1
- package/product/selectors/helpers/index.d.ts +0 -3
- package/product/selectors/helpers/index.d.ts.map +0 -1
- package/product/selectors/helpers/wrapMemoizedSelector.d.ts +0 -2
- package/product/selectors/helpers/wrapMemoizedSelector.d.ts.map +0 -1
- package/product/selectors/product.d.ts +0 -112
- package/product/selectors/product.d.ts.map +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import "core-js/modules/es.string.replace.js";
|
|
2
|
+
export const PREVIEW_STYLE_TAG_ID = 'frontend-settings-preview-overrides';
|
|
3
|
+
const INSERTION_POINT_SELECTOR = 'meta[name="preview-css-insertion-point"]';
|
|
4
|
+
const UNITLESS_PROPERTIES = new Set(['font-weight', 'line-height', 'opacity', 'z-index', 'flex', 'flex-grow', 'flex-shrink', 'order']);
|
|
5
|
+
const toKebabCase = property => property.replace(/[A-Z]/g, character => `-${character.toLowerCase()}`);
|
|
6
|
+
const stringifyValue = (property, value) => {
|
|
7
|
+
if (typeof value === 'string') return value;
|
|
8
|
+
if (value === 0) return '0';
|
|
9
|
+
if (property.startsWith('--') || UNITLESS_PROPERTIES.has(property)) return `${value}`;
|
|
10
|
+
return `${value}px`;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Converts selector/declaration maps from the preview payload into a CSS string.
|
|
15
|
+
*
|
|
16
|
+
* @param styling Selector-to-declarations map received from the admin preview.
|
|
17
|
+
* @returns Serialized CSS that can be assigned to a style tag.
|
|
18
|
+
*/
|
|
19
|
+
export const serializeStyling = styling => Object.entries(styling).map(([selector, declarations]) => {
|
|
20
|
+
const declarationString = Object.entries(declarations).map(([propertyName, value]) => {
|
|
21
|
+
const cssProperty = propertyName.startsWith('--') ? propertyName : toKebabCase(propertyName);
|
|
22
|
+
return `${cssProperty}: ${stringifyValue(cssProperty, value)};`;
|
|
23
|
+
}).join(' ');
|
|
24
|
+
if (!declarationString) return '';
|
|
25
|
+
return `${selector} { ${declarationString} }`;
|
|
26
|
+
}).filter(Boolean).join('\n');
|
|
27
|
+
|
|
28
|
+
/**
|
|
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.
|
|
36
|
+
*
|
|
37
|
+
* @returns The style element used for frontend settings preview overrides.
|
|
38
|
+
*/
|
|
39
|
+
export const getOrCreateStyleTag = () => {
|
|
40
|
+
let styleTag = document.querySelector(`#${PREVIEW_STYLE_TAG_ID}`);
|
|
41
|
+
if (!styleTag) {
|
|
42
|
+
styleTag = document.createElement('style');
|
|
43
|
+
styleTag.setAttribute('id', PREVIEW_STYLE_TAG_ID);
|
|
44
|
+
styleTag.setAttribute('type', 'text/css');
|
|
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
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return styleTag;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Removes the preview override style tag from the document head if it exists.
|
|
57
|
+
*/
|
|
58
|
+
export const removeStyleTag = () => {
|
|
59
|
+
const styleTag = document.querySelector(`#${PREVIEW_STYLE_TAG_ID}`);
|
|
60
|
+
styleTag?.remove();
|
|
61
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../admin-preview/components/FrontendSettingsPreviewBridge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./FrontendSettingsPreviewBridge";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AppSettingsPayload } from '@shopgate/engage/settings/types/appSettings';
|
|
2
|
+
import type { ColorSchemeName } from '@shopgate/engage/styles/theme/createTheme';
|
|
3
|
+
export type CSSDeclarationValue = string | number;
|
|
4
|
+
export type FrontendSettingsStyling = Record<string, Record<string, CSSDeclarationValue>>;
|
|
5
|
+
export type FrontendSettingsPreviewBridgeMessage = {
|
|
6
|
+
type: 'receiveFrontendSettings';
|
|
7
|
+
payload?: {
|
|
8
|
+
styling?: FrontendSettingsStyling;
|
|
9
|
+
appSettings?: AppSettingsPayload;
|
|
10
|
+
};
|
|
11
|
+
} | {
|
|
12
|
+
type: 'setColorScheme';
|
|
13
|
+
payload: {
|
|
14
|
+
colorScheme: ColorSchemeName;
|
|
15
|
+
};
|
|
16
|
+
} | {
|
|
17
|
+
type: 'frontendSettingsPreviewReady';
|
|
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;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../admin-preview/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as FrontendSettingsPreviewBridge } from "./FrontendSettingsPreviewBridge";
|
|
@@ -0,0 +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,6BAA6B,UAMzC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const PAGE_PREVIEW_PATTERN = '/shopgate-internal-page-preview';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* List of allowed origins for cms page preview iFrame communication.
|
|
5
|
+
*/
|
|
6
|
+
export const ALLOWED_ADMIN_PREVIEW_ORIGINS = ['https://next.admin.shopgatedev.com', 'https://next.admin.shopgatepg.com', 'https://next.admin.shopgate.com', 'https://next.us.admin.shopgate.com', 'http://localhost:1337'];
|
|
@@ -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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import "core-js/modules/es.array.includes.js";
|
|
2
|
+
/**
|
|
3
|
+
* Internal to the admin-preview package - do not import this module from anywhere else. Consume
|
|
4
|
+
* the isAdminPreviewActive / isPageAdminPreviewActive / isFrontendSettingsAdminPreviewActive
|
|
5
|
+
* helpers from @shopgate/engage/admin-preview/helpers instead.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { PAGE_PREVIEW_PATTERN } from "../../constants";
|
|
9
|
+
export const FRONTEND_SETTINGS_PREVIEW_PARAM = 'frontendSettingsPreview=true';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The url as it was when this module was first evaluated. Captured here because detection can run
|
|
13
|
+
* again later, when the url may already have been rewritten.
|
|
14
|
+
*/
|
|
15
|
+
const INITIAL_HREF = window.location.href;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Preview mode is latched in memory rather than persisted. Session storage is scoped per origin
|
|
19
|
+
* per tab, not per iframe - the admin shows the preview in same-origin iframes on several screens
|
|
20
|
+
* within one tab, so a persisted flag from one screen would leak into the next. Module state is
|
|
21
|
+
* per document, so each iframe gets its own.
|
|
22
|
+
*
|
|
23
|
+
* The latches only ever go false -> true. Detection must not fall back to re-reading the url,
|
|
24
|
+
* because the frontend settings preview navigates the app normally: once the admin opens another
|
|
25
|
+
* page, the query param is gone from the url even though preview mode is still on.
|
|
26
|
+
*/
|
|
27
|
+
let pageAdminPreviewLatched = false;
|
|
28
|
+
let frontendSettingsAdminPreviewLatched = false;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Detects whether the app is in page admin preview mode. Once detected, the result is latched for
|
|
32
|
+
* the lifetime of the document, because the url is not guaranteed to keep the preview marker.
|
|
33
|
+
* @returns True if the app is in page admin preview mode, false otherwise.
|
|
34
|
+
*/
|
|
35
|
+
export const detectPageAdminPreview = () => {
|
|
36
|
+
if (pageAdminPreviewLatched) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
pageAdminPreviewLatched = window.location.pathname.startsWith(PAGE_PREVIEW_PATTERN);
|
|
40
|
+
return pageAdminPreviewLatched;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Detects whether the app is in frontend settings admin preview mode. Once detected, the result is
|
|
45
|
+
* latched for the lifetime of the document, because the app keeps navigating while the preview is
|
|
46
|
+
* open and the query param only exists on the url it started on.
|
|
47
|
+
* @returns True if the app is in frontend settings admin preview mode, false otherwise.
|
|
48
|
+
*/
|
|
49
|
+
export const detectFrontendSettingsAdminPreview = () => {
|
|
50
|
+
if (frontendSettingsAdminPreviewLatched) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
frontendSettingsAdminPreviewLatched = window.location.search.includes(FRONTEND_SETTINGS_PREVIEW_PARAM);
|
|
54
|
+
return frontendSettingsAdminPreviewLatched;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Detects whether the app is in admin preview mode (pages or frontend settings).
|
|
59
|
+
* @returns True if the app is in admin preview mode, false otherwise.
|
|
60
|
+
*/
|
|
61
|
+
export const detectAdminPreview = () => detectPageAdminPreview() || detectFrontendSettingsAdminPreview();
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Returns the current detection state. Exposed on window as SGAdminPreviewDebug so the values can
|
|
65
|
+
* be inspected on a deployed build, from the console of the preview iframe:
|
|
66
|
+
*
|
|
67
|
+
* window.SGAdminPreviewDebug()
|
|
68
|
+
*
|
|
69
|
+
* Compare initialHref with currentHref to see whether the url changed since the app booted, and
|
|
70
|
+
* check latched to see whether a result came from the latch rather than the current url.
|
|
71
|
+
* @returns A snapshot of everything detection depends on.
|
|
72
|
+
*/
|
|
73
|
+
export const getAdminPreviewDebugInfo = () => ({
|
|
74
|
+
initialHref: INITIAL_HREF,
|
|
75
|
+
currentHref: window.location.href,
|
|
76
|
+
pathname: window.location.pathname,
|
|
77
|
+
search: window.location.search,
|
|
78
|
+
urlChangedSinceBoot: INITIAL_HREF !== window.location.href,
|
|
79
|
+
isInIframe: window.parent !== window,
|
|
80
|
+
referrer: document.referrer,
|
|
81
|
+
latched: {
|
|
82
|
+
page: pageAdminPreviewLatched,
|
|
83
|
+
frontendSettings: frontendSettingsAdminPreviewLatched
|
|
84
|
+
},
|
|
85
|
+
detected: {
|
|
86
|
+
page: detectPageAdminPreview(),
|
|
87
|
+
frontendSettings: detectFrontendSettingsAdminPreview(),
|
|
88
|
+
any: detectAdminPreview()
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// @ts-expect-error - debug-only global, intentionally not on the Window type.
|
|
93
|
+
window.SGAdminPreviewDebug = getAdminPreviewDebugInfo;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if the app is currently in admin preview mode (pages or frontend settings).
|
|
3
|
+
* @returns True if the app is in admin preview mode, false otherwise.
|
|
4
|
+
*/
|
|
5
|
+
export declare const isAdminPreviewActive: () => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Checks if the app is currently in page admin preview mode.
|
|
8
|
+
* @returns True if the app is in page admin preview mode, false otherwise.
|
|
9
|
+
*/
|
|
10
|
+
export declare const isPageAdminPreviewActive: () => boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Checks if the app is currently in frontend settings admin preview mode.
|
|
13
|
+
* @returns True if the app is in frontend settings admin preview mode, false otherwise.
|
|
14
|
+
*/
|
|
15
|
+
export declare const isFrontendSettingsAdminPreviewActive: () => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if navigation is blocked. Page admin preview renders a single page in an iframe, so
|
|
18
|
+
* leaving that page would only ever show the admin something it did not ask to preview.
|
|
19
|
+
* Frontend settings preview is not affected - it previews styling on the regular app.
|
|
20
|
+
* @returns True if the app must not navigate, false otherwise.
|
|
21
|
+
*/
|
|
22
|
+
export declare const isNavigationBlocked: () => boolean;
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../admin-preview/helpers/index.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,OAClB,CAAC;AAEvB;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAO,OAClB,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,oCAAoC,QAAO,OAClB,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAO,OACX,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { detectAdminPreview, detectFrontendSettingsAdminPreview, detectPageAdminPreview } from "./_internal/detection";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Checks if the app is currently in admin preview mode (pages or frontend settings).
|
|
5
|
+
* @returns True if the app is in admin preview mode, false otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export const isAdminPreviewActive = () => detectAdminPreview();
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Checks if the app is currently in page admin preview mode.
|
|
11
|
+
* @returns True if the app is in page admin preview mode, false otherwise.
|
|
12
|
+
*/
|
|
13
|
+
export const isPageAdminPreviewActive = () => detectPageAdminPreview();
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Checks if the app is currently in frontend settings admin preview mode.
|
|
17
|
+
* @returns True if the app is in frontend settings admin preview mode, false otherwise.
|
|
18
|
+
*/
|
|
19
|
+
export const isFrontendSettingsAdminPreviewActive = () => detectFrontendSettingsAdminPreview();
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Checks if navigation is blocked. Page admin preview renders a single page in an iframe, so
|
|
23
|
+
* leaving that page would only ever show the admin something it did not ask to preview.
|
|
24
|
+
* Frontend settings preview is not affected - it previews styling on the regular app.
|
|
25
|
+
* @returns True if the app must not navigate, false otherwise.
|
|
26
|
+
*/
|
|
27
|
+
export const isNavigationBlocked = () => isPageAdminPreviewActive();
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface MessageData {
|
|
2
|
+
/**
|
|
3
|
+
* Identifier for the kind of message.
|
|
4
|
+
*/
|
|
5
|
+
type: string;
|
|
6
|
+
/**
|
|
7
|
+
* Optional data payload for this message.
|
|
8
|
+
*/
|
|
9
|
+
payload?: unknown;
|
|
10
|
+
}
|
|
11
|
+
export type OnIframeMessage<TMessage extends MessageData = MessageData> = (data: TMessage, rawEvent: MessageEvent<TMessage>) => void;
|
|
12
|
+
export interface IframeMessengerResult<TMessage extends MessageData = MessageData> {
|
|
13
|
+
/**
|
|
14
|
+
* Send data up to window.parent.
|
|
15
|
+
* If targetOrigin is omitted, uses the most recently seen origin
|
|
16
|
+
* (from an incoming message). If none was seen yet, falls back to
|
|
17
|
+
* the origin derived from document.referrer, then parentOrigins[0], then "*".
|
|
18
|
+
*/
|
|
19
|
+
sendToParent: (data: TMessage, targetOrigin?: string) => void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Hook for postMessage communication when your component is inside an iframe.
|
|
23
|
+
*
|
|
24
|
+
* Listens on window for "message" events from any origin in parentOrigins,
|
|
25
|
+
* and only calls onMessage(data, rawEvent) if both origin and source match.
|
|
26
|
+
*
|
|
27
|
+
* @param onMessage Callback invoked when a trusted message arrives.
|
|
28
|
+
* Receives data and the raw event so consumers can inspect origin, source,
|
|
29
|
+
* and other metadata when needed.
|
|
30
|
+
* @param parentOrigins Array of allowed parent origin strings, e.g.
|
|
31
|
+
* ['https://a.example.com', 'https://b.example.com'].
|
|
32
|
+
* @returns An object with a single method:
|
|
33
|
+
* sendToParent(data, [targetOrigin]) to post data to the parent window.
|
|
34
|
+
*/
|
|
35
|
+
export declare function useIframeMessenger<TMessage extends MessageData = MessageData>(onMessage: OnIframeMessage<TMessage>, parentOrigins: string[]): IframeMessengerResult<TMessage>;
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../admin-preview/hooks/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,IAAI,CACxE,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,KAC7B,IAAI,CAAC;AAEV,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW;IAC/E;;;;;OAKG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,EAC3E,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,EACpC,aAAa,EAAE,MAAM,EAAE,GACtB,qBAAqB,CAAC,QAAQ,CAAC,CAmEjC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import "core-js/modules/es.array.includes.js";
|
|
2
|
+
import "core-js/modules/web.url.js";
|
|
3
|
+
import "core-js/modules/web.url.to-json.js";
|
|
4
|
+
import "core-js/modules/web.url-search-params.js";
|
|
5
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
6
|
+
import { logger } from '@shopgate/engage/core/helpers';
|
|
7
|
+
/**
|
|
8
|
+
* Hook for postMessage communication when your component is inside an iframe.
|
|
9
|
+
*
|
|
10
|
+
* Listens on window for "message" events from any origin in parentOrigins,
|
|
11
|
+
* and only calls onMessage(data, rawEvent) if both origin and source match.
|
|
12
|
+
*
|
|
13
|
+
* @param onMessage Callback invoked when a trusted message arrives.
|
|
14
|
+
* Receives data and the raw event so consumers can inspect origin, source,
|
|
15
|
+
* and other metadata when needed.
|
|
16
|
+
* @param parentOrigins Array of allowed parent origin strings, e.g.
|
|
17
|
+
* ['https://a.example.com', 'https://b.example.com'].
|
|
18
|
+
* @returns An object with a single method:
|
|
19
|
+
* sendToParent(data, [targetOrigin]) to post data to the parent window.
|
|
20
|
+
*/
|
|
21
|
+
export function useIframeMessenger(onMessage, parentOrigins) {
|
|
22
|
+
// Keep a ref to the latest onMessage callback so the listener always has it.
|
|
23
|
+
const onMessageRef = useRef(onMessage);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
onMessageRef.current = onMessage;
|
|
26
|
+
}, [onMessage]);
|
|
27
|
+
|
|
28
|
+
// Keep track of the last allowed origin we heard from
|
|
29
|
+
const lastOriginRef = useRef(null);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Send a message up to the parent window.
|
|
33
|
+
* @param data - The data object to post.
|
|
34
|
+
* @param targetOrigin Optional override for the origin to post to.
|
|
35
|
+
* If omitted, uses the last seen origin, then referrer origin,
|
|
36
|
+
* then parentOrigins[0], then "*".
|
|
37
|
+
*/
|
|
38
|
+
const sendToParent = useCallback((data, targetOrigin) => {
|
|
39
|
+
// Determine which origin to use: explicit, then last seen, then first, then "*".
|
|
40
|
+
const originToUse = typeof targetOrigin === 'string' ? targetOrigin : lastOriginRef.current ?? (document.referrer ? new URL(document.referrer).origin : undefined) ?? parentOrigins[0] ?? '*';
|
|
41
|
+
if (!originToUse) {
|
|
42
|
+
logger.warn('useIframeMessenger: no targetOrigin available. ' + 'Provide parentOrigins or pass targetOrigin.');
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
window.parent.postMessage(data, originToUse);
|
|
46
|
+
}, [parentOrigins]);
|
|
47
|
+
|
|
48
|
+
// Attach / detach the "message" listener.
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
/**
|
|
51
|
+
* Handler for incoming postMessage events.
|
|
52
|
+
* @param rawEvent The original MessageEvent object.
|
|
53
|
+
*/
|
|
54
|
+
function handler(rawEvent) {
|
|
55
|
+
// Only proceed if the origin is in our whitelist.
|
|
56
|
+
if (!parentOrigins.includes(rawEvent.origin)) return;
|
|
57
|
+
// Ensure the message actually came from window.parent.
|
|
58
|
+
if (rawEvent.source !== window.parent) return;
|
|
59
|
+
|
|
60
|
+
// Record this origin as most recently seen.
|
|
61
|
+
lastOriginRef.current = rawEvent.origin;
|
|
62
|
+
|
|
63
|
+
// Forward the event.data and the raw event to the callback.
|
|
64
|
+
onMessageRef.current(rawEvent.data, rawEvent);
|
|
65
|
+
}
|
|
66
|
+
window.addEventListener('message', handler);
|
|
67
|
+
return () => {
|
|
68
|
+
window.removeEventListener('message', handler);
|
|
69
|
+
};
|
|
70
|
+
}, [parentOrigins, sendToParent]);
|
|
71
|
+
return {
|
|
72
|
+
sendToParent
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal to the admin-preview package - do not import this module from anywhere else.
|
|
3
|
+
*
|
|
4
|
+
* Hands the payload that `awaitInitialFrontendSettings` received over to the
|
|
5
|
+
* FrontendSettingsPreviewBridge, which mounts long after app start finished. Module state rather
|
|
6
|
+
* than a store slice, because the styling map never belongs in redux - it is applied to a style
|
|
7
|
+
* tag, and the bridge only needs it to avoid removing what app start already applied.
|
|
8
|
+
*/
|
|
9
|
+
import type { FrontendSettingsStyling } from '../../components/FrontendSettingsPreviewBridge/types';
|
|
10
|
+
/**
|
|
11
|
+
* Records the payload that app start received.
|
|
12
|
+
* @param initialStyling The styling map the payload carried, if any.
|
|
13
|
+
*/
|
|
14
|
+
export declare const setInitialFrontendSettings: (initialStyling: FrontendSettingsStyling | null) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Whether app start received a payload. A payload without a styling map still counts - it
|
|
17
|
+
* carried app settings, which is enough to consider the preview applied.
|
|
18
|
+
* @returns True when a payload arrived during app start.
|
|
19
|
+
*/
|
|
20
|
+
export declare const hasInitialFrontendSettings: () => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* The styling map that app start applied, so the bridge can seed its state with it instead of
|
|
23
|
+
* starting at null - which would make its first effect remove the style tag again.
|
|
24
|
+
* @returns The styling map, or null when none arrived.
|
|
25
|
+
*/
|
|
26
|
+
export declare const getInitialFrontendSettingsStyling: () => FrontendSettingsStyling | null;
|
|
27
|
+
/**
|
|
28
|
+
* Test only. Module state outlives a test file's individual cases, so specs need a way back to the
|
|
29
|
+
* initial state.
|
|
30
|
+
*/
|
|
31
|
+
export declare const resetInitialFrontendSettings: () => void;
|
|
32
|
+
//# sourceMappingURL=initialFrontendSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialFrontendSettings.d.ts","sourceRoot":"","sources":["../../../../admin-preview/initialization/_internal/initialFrontendSettings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAMpG;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAAI,gBAAgB,uBAAuB,GAAG,IAAI,SAGxF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAO,OAAmB,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,QAAO,uBAAuB,GAAG,IAAe,CAAC;AAE/F;;;GAGG;AACH,eAAO,MAAM,4BAA4B,YAGxC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal to the admin-preview package - do not import this module from anywhere else.
|
|
3
|
+
*
|
|
4
|
+
* Hands the payload that `awaitInitialFrontendSettings` received over to the
|
|
5
|
+
* FrontendSettingsPreviewBridge, which mounts long after app start finished. Module state rather
|
|
6
|
+
* than a store slice, because the styling map never belongs in redux - it is applied to a style
|
|
7
|
+
* tag, and the bridge only needs it to avoid removing what app start already applied.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
let received = false;
|
|
11
|
+
let styling = null;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Records the payload that app start received.
|
|
15
|
+
* @param initialStyling The styling map the payload carried, if any.
|
|
16
|
+
*/
|
|
17
|
+
export const setInitialFrontendSettings = initialStyling => {
|
|
18
|
+
received = true;
|
|
19
|
+
styling = initialStyling;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Whether app start received a payload. A payload without a styling map still counts - it
|
|
24
|
+
* carried app settings, which is enough to consider the preview applied.
|
|
25
|
+
* @returns True when a payload arrived during app start.
|
|
26
|
+
*/
|
|
27
|
+
export const hasInitialFrontendSettings = () => received;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The styling map that app start applied, so the bridge can seed its state with it instead of
|
|
31
|
+
* starting at null - which would make its first effect remove the style tag again.
|
|
32
|
+
* @returns The styling map, or null when none arrived.
|
|
33
|
+
*/
|
|
34
|
+
export const getInitialFrontendSettingsStyling = () => styling;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Test only. Module state outlives a test file's individual cases, so specs need a way back to the
|
|
38
|
+
* initial state.
|
|
39
|
+
*/
|
|
40
|
+
export const resetInitialFrontendSettings = () => {
|
|
41
|
+
received = false;
|
|
42
|
+
styling = null;
|
|
43
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
interface PreviewStore {
|
|
2
|
+
dispatch: (action: unknown) => void;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Waits for the first settings message from the admin and applies it before the app renders.
|
|
6
|
+
*
|
|
7
|
+
* Without this the app paints with the theme defaults first: the bridge that owns the message
|
|
8
|
+
* listener only mounts once React committed, so everything the admin sent before that is dropped
|
|
9
|
+
* and the styling arrives as a visible restyle.
|
|
10
|
+
*
|
|
11
|
+
* The handshake goes to every allowed origin rather than to a single guessed one. Nothing has been
|
|
12
|
+
* received at this point, so there is no known parent origin, and the referrer is not guaranteed to
|
|
13
|
+
* survive the admin's referrer policy. The browser drops the copies whose target does not match.
|
|
14
|
+
*
|
|
15
|
+
* Resolves when the payload arrived or when REQUEST_TIMEOUT elapsed, and never rejects - an admin
|
|
16
|
+
* that stays silent has to fall back to the unstyled app, never to an iframe that never renders.
|
|
17
|
+
* @param store Reference to the store.
|
|
18
|
+
* @returns A promise that resolves once the first payload settled.
|
|
19
|
+
*/
|
|
20
|
+
export declare const awaitInitialFrontendSettings: (store: PreviewStore) => Promise<void>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=awaitInitialFrontendSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaitInitialFrontendSettings.d.ts","sourceRoot":"","sources":["../../../admin-preview/initialization/awaitInitialFrontendSettings.ts"],"names":[],"mappings":"AAmBA,UAAU,YAAY;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,GAAI,OAAO,YAAY,KAAG,OAAO,CAAC,IAAI,CAqE3E,CAAC"}
|