@shopgate/engage 7.31.4-beta.1 → 7.32.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.d.ts +1 -1
- 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 +9 -11
- package/account/components/Profile/ProfileAddressCard.d.ts.map +1 -1
- package/account/components/Profile/ProfileAddressCard.js +36 -33
- package/account/components/Profile/ProfileForm.js +4 -4
- package/account/components/Profile/ProfileHeader.d.ts.map +1 -1
- package/account/components/Profile/ProfileHeader.js +8 -9
- package/account/components/ProfileContact/ProfileContact.js +4 -3
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts +7 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts.map +1 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.js +42 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts +20 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts.map +1 -0
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.js +49 -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 +14 -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 +27 -0
- package/admin-preview/constants/index.d.ts.map +1 -0
- package/admin-preview/constants/index.js +31 -0
- package/admin-preview/detection.d.ts +49 -0
- package/admin-preview/detection.d.ts.map +1 -0
- package/admin-preview/detection.js +166 -0
- package/admin-preview/helpers/index.d.ts +16 -0
- package/admin-preview/helpers/index.d.ts.map +1 -0
- package/admin-preview/helpers/index.js +19 -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/back-in-stock/components/BackInStockButton/index.js +16 -19
- package/back-in-stock/components/Subscriptions/components/Subscription/index.js +20 -21
- 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 +4 -8
- package/cart/components/CartItem/CartItemProductLayoutWide.js +19 -14
- package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.js +5 -3
- package/cart/components/CartItem/CartItemProductLayoutWideOrderDetails.js +18 -12
- package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +1 -1
- 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 +2 -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 +3 -3
- 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 +2 -4
- package/cart/components/CartItems/CartItemsHeaderWide.js +43 -18
- package/cart/components/CartSummaryWide/CartSummaryWide.js +9 -16
- package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +4 -8
- package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +6 -10
- 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/PaymentBarReserveButton.js +6 -10
- package/cart/components/PaymentBar/testUtils/mockFactories.js +64 -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/CategoryList/index.js +4 -8
- package/checkout/components/AddressBook/AddressList.js +9 -10
- package/checkout/components/AddressBookContact/AddressBookContact.js +6 -6
- package/checkout/components/Checkout/CheckoutAddress.js +25 -15
- package/checkout/components/Checkout/CheckoutHeader.js +9 -11
- package/checkout/components/Checkout/CheckoutPickupContactForm.js +2 -2
- package/checkout/components/Checkout/CheckoutSection.js +22 -15
- package/checkout/components/Checkout/CheckoutSectionInfo.js +14 -17
- package/checkout/components/Checkout/CheckoutSectionMessages.js +5 -4
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +15 -14
- 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 +2 -2
- 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/ChipLayout/index.js +4 -4
- 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/index.d.ts +2 -2
- 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/Picker/spec.js +48 -41
- 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/PickerUtilize/spec.js +6 -3
- package/components/Radio/Radio.js +6 -5
- package/components/ResponsiveContainer/breakpoints.js +2 -2
- package/components/ScrollHeader/index.js +3 -3
- package/components/SheetList/components/Item/index.js +11 -16
- 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/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 +2 -2
- package/components/View/index.d.ts.map +1 -1
- package/components/View/index.js +1 -5
- package/components/v2/Button/Button.d.ts +1 -1
- package/components/v2/ButtonBase/Ripple.d.ts +2 -1
- package/components/v2/ButtonBase/Ripple.d.ts.map +1 -1
- 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/scrollContainer.js +2 -2
- package/core/initialization/index.js +2 -1
- 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 +3 -2
- 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 +6 -7
- package/favorites/components/Item/Item.d.ts.map +1 -1
- package/favorites/components/Item/Item.js +19 -17
- 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.map +1 -1
- package/favorites/components/List/List.js +1 -5
- package/favorites/components/ListChooser/ListChooserItem.js +1 -1
- package/favorites/components/Lists/Lists.js +15 -3
- 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/FilterItem/spec.js +3 -3
- package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +5 -5
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +3 -3
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +5 -5
- package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +4 -5
- package/filter/components/FilterPageContent/components/Selector/spec.js +3 -3
- package/filter/components/PriceSlider/components/Label/index.js +9 -13
- package/filter/components/PriceSlider/components/Label/spec.js +12 -3
- package/filter/components/PriceSlider/index.js +4 -9
- package/filter/components/PriceSlider/spec.js +10 -5
- package/filter/selectors/index.js +2 -2
- package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.js +1 -1
- package/locations/components/ChangeLocationButton/ChangeLocationButton.js +1 -1
- 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 +22 -21
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.connector.js +1 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.connector.js +1 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +4 -4
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +14 -18
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +12 -15
- package/locations/components/GlobalLocationSelector/GlobalLocationSelector.js +1 -1
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.connector.js +1 -1
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +13 -17
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +12 -12
- package/locations/components/ReservationResponses/ReservationError.js +9 -6
- package/locations/components/ReservationResponses/ReservationSuccess.js +14 -9
- package/locations/components/ReserveForm/ReserveForm.js +6 -5
- 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 +3 -5
- package/locations/components/StoreDetails/components/StoreDetails.js +24 -26
- 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 +24 -10
- package/locations/components/StoreFinder/StoreFinder.js +1 -1
- package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +5 -5
- 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 +3 -3
- package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +3 -3
- 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 +2 -3
- package/locations/components/StoreList/StoreListProductInfo.js +9 -6
- package/locations/components/StoreList/StoreListProductName.js +4 -3
- package/locations/components/StoreList/StoreListSearch.js +10 -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 +3 -3
- 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 +16 -16
- package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +1 -1
- 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 +4 -8
- package/orders/components/OrderHistory/OrderHistoryTable.js +1 -1
- package/package.json +12 -11
- package/page/components/NotFound.js +8 -7
- package/page/components/WidgetHeadline/WidgetHeadline.js +4 -3
- package/page/components/WidgetRichText/WidgetRichText.js +1 -1
- package/page/components/Widgets/Tooltip.js +7 -8
- package/page/components/Widgets/Widget.js +4 -4
- package/page/components/Widgets/constants.js +0 -5
- package/page/components/Widgets/hooks.js +5 -96
- package/page/constants/index.js +5 -2
- package/page/selectors/index.js +2 -1
- package/page/widgets/HTML/HTML.js +5 -9
- package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +0 -5
- 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/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 +6 -7
- 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/Shipping/spec.js +7 -8
- package/product/components/Header/Tiers/components/Tier/index.js +3 -3
- package/product/components/Header/Tiers/components/Tier/spec.js +4 -4
- package/product/components/Header/Tiers/index.js +5 -3
- package/product/components/Header/Tiers/spec.js +7 -7
- package/product/components/MapPriceHint/index.js +8 -7
- package/product/components/Media/MediaImage.js +2 -2
- package/product/components/Media/MediaPlaceholder.js +3 -4
- package/product/components/Options/components/TextOption/components/OptionInfo/index.js +18 -18
- package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +30 -21
- package/product/components/Options/components/TextOption/index.js +8 -11
- package/product/components/OrderQuantityHint/index.js +10 -16
- 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 +4 -5
- package/product/components/ProductDiscountBadge/index.js +3 -3
- package/product/components/ProductDiscountBadge/spec.js +5 -5
- package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/index.js +1 -1
- package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +7 -7
- package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +3 -3
- package/product/components/ProductGrid/components/Item/components/ItemName/index.js +3 -4
- package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +3 -3
- package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +4 -4
- package/product/components/ProductGrid/components/Item/index.js +1 -5
- package/product/components/ProductGridPrice/index.js +9 -15
- package/product/components/ProductImage/ProductImagePlaceholder.js +9 -12
- package/product/components/ProductImage/index.js +6 -8
- package/product/components/ProductList/components/Item/index.js +5 -9
- package/product/components/ProductList/components/Layout/index.js +1 -1
- 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/ProductSlider/spec.js +5 -5
- package/product/components/Rating/spec.js +9 -8
- package/product/components/RelationsSlider/RelationsSheet.js +1 -5
- package/product/components/RelationsSlider/RelationsSliderContent.js +4 -4
- 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 +9 -12
- package/push-opt-in/components/PushOptInModal/index.js +14 -14
- package/registration/components/GuestRegistration/GuestRegistrationFormPickup.js +2 -2
- package/registration/components/Registration/RegistrationContent.js +2 -1
- 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/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/spec.js +43 -26
- package/reviews/components/Reviews/components/Header/spec.js +47 -29
- 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/List/spec.js +68 -29
- package/reviews/components/Reviews/components/RatingCount/index.js +13 -15
- package/reviews/components/Reviews/components/RatingCount/spec.js +25 -5
- package/reviews/components/Reviews/components/ReviewsInfo/index.js +9 -9
- package/reviews/components/Reviews/spec.js +56 -28
- 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 +2 -0
- package/settings/constants/appSettings.d.ts.map +1 -0
- package/settings/constants/appSettings.js +1 -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/reducers/appSettings.d.ts +18 -0
- package/settings/reducers/appSettings.d.ts.map +1 -0
- package/settings/reducers/appSettings.js +42 -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 +44 -0
- package/settings/selectors/appSettings.d.ts.map +1 -0
- package/settings/selectors/appSettings.js +23 -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 +32 -0
- package/settings/types/appSettings.d.ts.map +1 -0
- package/settings/types/appSettings.js +1 -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/theme/createDefaultThemeOptions/index.d.ts.map +1 -1
- package/styles/theme/createDefaultThemeOptions/index.js +72 -3
- package/styles/theme/createTheme/createComponents.types.d.ts +169 -0
- package/styles/theme/createTheme/createComponents.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createComponents.types.js +169 -0
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.d.ts.map +1 -1
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.js +28 -2
- package/styles/theme/createTheme/createPalette.types.d.ts +15 -7
- package/styles/theme/createTheme/createPalette.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createPalette.types.js +16 -8
- package/styles/theme/createTheme/createSpacing.js +4 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts +9 -2
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts.map +1 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.js +10 -1
- 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 +1 -1
- package/styles/theme/createTheme/index.d.ts.map +1 -1
- package/styles/theme/createTheme/index.js +2 -2
- 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/transitions.d.ts +4 -0
- package/styles/theme/createTheme/transitions.js +3 -1
- package/styles/theme/createTheme/types.d.ts +32 -5
- package/styles/theme/createTheme/types.d.ts.map +1 -1
- package/styles/theme/createTheme/types.js +8 -1
- 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/index.d.ts +1 -0
- 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/ThemeProvider.d.ts +3 -3
- package/styles/theme/providers/ThemeProvider.d.ts.map +1 -1
- package/styles/theme/providers/ThemeProvider.js +13 -15
- package/tracking/components/CookieConsentModal/index.js +12 -12
- package/tracking/components/PrivacySettings/index.js +4 -4
- package/tracking/selectors/cookieConsent.js +2 -2
- package/tsconfig.json +1 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import "core-js/modules/es.array.includes.js";
|
|
2
|
+
// The logger is imported from @shopgate/pwa-core/helpers rather than @shopgate/engage/core/helpers
|
|
3
|
+
// on purpose: that barrel pulls in scrollContainer, which imports this module back. Since detection
|
|
4
|
+
// runs while the constants module is evaluated, the cycle would resolve to undefined at boot.
|
|
5
|
+
import { logger } from '@shopgate/pwa-core/helpers';
|
|
6
|
+
export const PAGE_PREVIEW_PATTERN = '/shopgate-internal-page-preview';
|
|
7
|
+
export const FRONTEND_SETTINGS_PREVIEW_PARAM = 'frontendSettingsPreview=true';
|
|
8
|
+
export const SESSION_STORAGE_KEY_PAGE_PREVIEW = 'sgPageAdminPreview';
|
|
9
|
+
export const SESSION_STORAGE_KEY_FRONTEND_SETTINGS_PREVIEW = 'sgFrontendSettingsAdminPreview';
|
|
10
|
+
const LOG_PREFIX = '[AdminPreview]';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The url as it was when this module was first evaluated. Captured here because detection can run
|
|
14
|
+
* again later, when the url may already have been rewritten.
|
|
15
|
+
*/
|
|
16
|
+
const INITIAL_HREF = window.location.href;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Remembers the last logged result per detector, so repeated calls only log on a real change.
|
|
20
|
+
* isAdminPreviewActive() is called from hot paths like breakpoints and scroll handling.
|
|
21
|
+
*/
|
|
22
|
+
const lastLoggedResults = {};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Reads a sticky preview flag. Storage access throws in a sandboxed iframe without
|
|
26
|
+
* "allow-same-origin", and is blocked by some browsers in cross-origin iframes - the preview
|
|
27
|
+
* runs in exactly that context, so a throw here would break app boot for everyone.
|
|
28
|
+
* @param key The session storage key to read.
|
|
29
|
+
* @returns True when the flag was persisted before, false otherwise.
|
|
30
|
+
*/
|
|
31
|
+
const readStickyFlag = key => {
|
|
32
|
+
try {
|
|
33
|
+
return window.sessionStorage.getItem(key) === '1';
|
|
34
|
+
} catch (error) {
|
|
35
|
+
logger.warn(`${LOG_PREFIX} session storage is not readable`, {
|
|
36
|
+
key,
|
|
37
|
+
error
|
|
38
|
+
});
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Persists a sticky preview flag, so preview mode survives a reload or a url rewrite that drops
|
|
45
|
+
* the query string. See readStickyFlag for why this can throw.
|
|
46
|
+
* @param key The session storage key to write.
|
|
47
|
+
*/
|
|
48
|
+
const writeStickyFlag = key => {
|
|
49
|
+
try {
|
|
50
|
+
window.sessionStorage.setItem(key, '1');
|
|
51
|
+
} catch (error) {
|
|
52
|
+
logger.warn(`${LOG_PREFIX} session storage is not writable`, {
|
|
53
|
+
key,
|
|
54
|
+
error
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Logs how a detection result was reached, but only when it differs from the previous result for
|
|
61
|
+
* that detector. Kept verbose on purpose: it exists to investigate why preview mode is not picked
|
|
62
|
+
* up on deployed builds.
|
|
63
|
+
* @param name The detector that produced the result.
|
|
64
|
+
* @param result The detected result.
|
|
65
|
+
* @param matchedUrl Whether the current url carries the preview marker.
|
|
66
|
+
* @param matchedStickyFlag Whether the persisted sticky flag was set.
|
|
67
|
+
*/
|
|
68
|
+
const logDetection = (name, result, matchedUrl, matchedStickyFlag) => {
|
|
69
|
+
if (lastLoggedResults[name] === result) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
lastLoggedResults[name] = result;
|
|
73
|
+
logger.log(`${LOG_PREFIX} ${name} -> ${result}`, {
|
|
74
|
+
result,
|
|
75
|
+
// True when the url still carries the marker.
|
|
76
|
+
matchedUrl,
|
|
77
|
+
// True when the result came from the persisted flag - i.e. the url lost the marker.
|
|
78
|
+
matchedStickyFlag,
|
|
79
|
+
// Compare these two to see whether the url changed since the app booted.
|
|
80
|
+
initialHref: INITIAL_HREF,
|
|
81
|
+
currentHref: window.location.href,
|
|
82
|
+
pathname: window.location.pathname,
|
|
83
|
+
search: window.location.search,
|
|
84
|
+
// A cross-origin parent means the app really is embedded in the admin.
|
|
85
|
+
isInIframe: window.parent !== window,
|
|
86
|
+
referrer: document.referrer
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Detects whether the app is in page admin preview mode. Once detected, the result is remembered
|
|
92
|
+
* for the rest of the session, because the url is not guaranteed to keep the preview marker.
|
|
93
|
+
* @returns True if the app is in page admin preview mode, false otherwise.
|
|
94
|
+
*/
|
|
95
|
+
export const detectPageAdminPreview = () => {
|
|
96
|
+
const matchedUrl = window.location.pathname.startsWith(PAGE_PREVIEW_PATTERN);
|
|
97
|
+
if (matchedUrl) {
|
|
98
|
+
writeStickyFlag(SESSION_STORAGE_KEY_PAGE_PREVIEW);
|
|
99
|
+
logDetection('detectPageAdminPreview', true, true, false);
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
const matchedStickyFlag = readStickyFlag(SESSION_STORAGE_KEY_PAGE_PREVIEW);
|
|
103
|
+
logDetection('detectPageAdminPreview', matchedStickyFlag, false, matchedStickyFlag);
|
|
104
|
+
return matchedStickyFlag;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Detects whether the app is in frontend settings admin preview mode. Once detected, the result is
|
|
109
|
+
* remembered for the rest of the session, because the url is not guaranteed to keep the query
|
|
110
|
+
* param.
|
|
111
|
+
* @returns True if the app is in frontend settings admin preview mode, false otherwise.
|
|
112
|
+
*/
|
|
113
|
+
export const detectFrontendSettingsAdminPreview = () => {
|
|
114
|
+
const matchedUrl = window.location.search.includes(FRONTEND_SETTINGS_PREVIEW_PARAM);
|
|
115
|
+
if (matchedUrl) {
|
|
116
|
+
writeStickyFlag(SESSION_STORAGE_KEY_FRONTEND_SETTINGS_PREVIEW);
|
|
117
|
+
logDetection('detectFrontendSettingsAdminPreview', true, true, false);
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
const matchedStickyFlag = readStickyFlag(SESSION_STORAGE_KEY_FRONTEND_SETTINGS_PREVIEW);
|
|
121
|
+
logDetection('detectFrontendSettingsAdminPreview', matchedStickyFlag, false, matchedStickyFlag);
|
|
122
|
+
return matchedStickyFlag;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Detects whether the app is in admin preview mode (pages or frontend settings).
|
|
127
|
+
* @returns True if the app is in admin preview mode, false otherwise.
|
|
128
|
+
*/
|
|
129
|
+
export const detectAdminPreview = () => detectPageAdminPreview() || detectFrontendSettingsAdminPreview();
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Returns the current detection state. Exposed on window as SGAdminPreviewDebug so the values can
|
|
133
|
+
* be inspected on a deployed build, from the console of the preview iframe:
|
|
134
|
+
*
|
|
135
|
+
* window.SGAdminPreviewDebug()
|
|
136
|
+
*
|
|
137
|
+
* @returns A snapshot of everything detection depends on.
|
|
138
|
+
*/
|
|
139
|
+
export const getAdminPreviewDebugInfo = () => ({
|
|
140
|
+
initialHref: INITIAL_HREF,
|
|
141
|
+
currentHref: window.location.href,
|
|
142
|
+
pathname: window.location.pathname,
|
|
143
|
+
search: window.location.search,
|
|
144
|
+
urlChangedSinceBoot: INITIAL_HREF !== window.location.href,
|
|
145
|
+
isInIframe: window.parent !== window,
|
|
146
|
+
referrer: document.referrer,
|
|
147
|
+
stickyFlags: {
|
|
148
|
+
page: readStickyFlag(SESSION_STORAGE_KEY_PAGE_PREVIEW),
|
|
149
|
+
frontendSettings: readStickyFlag(SESSION_STORAGE_KEY_FRONTEND_SETTINGS_PREVIEW)
|
|
150
|
+
},
|
|
151
|
+
detected: {
|
|
152
|
+
page: detectPageAdminPreview(),
|
|
153
|
+
frontendSettings: detectFrontendSettingsAdminPreview(),
|
|
154
|
+
any: detectAdminPreview()
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
logger.log(`${LOG_PREFIX} module evaluated`, {
|
|
158
|
+
href: INITIAL_HREF,
|
|
159
|
+
search: window.location.search,
|
|
160
|
+
hasParamAtBoot: window.location.search.includes(FRONTEND_SETTINGS_PREVIEW_PARAM),
|
|
161
|
+
isInIframe: window.parent !== window,
|
|
162
|
+
referrer: document.referrer
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
// @ts-expect-error - debug-only global, intentionally not on the Window type.
|
|
166
|
+
window.SGAdminPreviewDebug = getAdminPreviewDebugInfo;
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
//# 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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { detectAdminPreview, detectFrontendSettingsAdminPreview, detectPageAdminPreview } from "../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();
|
|
@@ -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
|
+
}
|
|
@@ -1,37 +1,31 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { themeConfig } from '@shopgate/engage';
|
|
4
3
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
5
|
-
import { Link, CheckedIcon, Button, NotificationIcon } from '@shopgate/engage/components';
|
|
4
|
+
import { Link, CheckedIcon, Button, NotificationIcon, Typography } from '@shopgate/engage/components';
|
|
6
5
|
import { BACK_IN_STOCK_PATTERN } from '@shopgate/engage/back-in-stock/constants';
|
|
7
6
|
import { i18n } from '@shopgate/engage/core/helpers';
|
|
8
7
|
import connect from "./connector";
|
|
9
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
-
const {
|
|
11
|
-
colors
|
|
12
|
-
} = themeConfig;
|
|
13
|
-
const useStyles = makeStyles()({
|
|
9
|
+
const useStyles = makeStyles()(theme => ({
|
|
14
10
|
button: {
|
|
15
|
-
|
|
16
|
-
color: themeConfig.colors.warning,
|
|
11
|
+
color: theme.palette.warning.main,
|
|
17
12
|
width: '100%'
|
|
18
13
|
},
|
|
19
14
|
backInStockMessageContainer: {
|
|
20
|
-
lineHeight: '16.5px',
|
|
21
15
|
display: 'flex',
|
|
22
16
|
alignItems: 'center',
|
|
23
|
-
width: 'auto'
|
|
17
|
+
width: 'auto',
|
|
18
|
+
lineHeight: '16.5px'
|
|
24
19
|
},
|
|
25
20
|
rightAligned: {
|
|
26
21
|
display: 'inline-block',
|
|
27
22
|
textAlign: 'right'
|
|
28
23
|
},
|
|
29
24
|
backInStockMessage: {
|
|
30
|
-
verticalAlign: 'middle'
|
|
31
|
-
fontSize: '0.875rem'
|
|
25
|
+
verticalAlign: 'middle'
|
|
32
26
|
},
|
|
33
27
|
buttonText: {
|
|
34
|
-
fontSize:
|
|
28
|
+
fontSize: theme.typography.body2.fontSize
|
|
35
29
|
},
|
|
36
30
|
icon: {
|
|
37
31
|
marginRight: 4,
|
|
@@ -46,7 +40,7 @@ const useStyles = makeStyles()({
|
|
|
46
40
|
marginLeft: '-2px',
|
|
47
41
|
marginRight: '8px'
|
|
48
42
|
}
|
|
49
|
-
});
|
|
43
|
+
}));
|
|
50
44
|
/**
|
|
51
45
|
* This component renders a button to subscribe a product or a hint
|
|
52
46
|
* that the product is already subscribed
|
|
@@ -72,7 +66,8 @@ const BackInStockButton = ({
|
|
|
72
66
|
}) => {
|
|
73
67
|
const {
|
|
74
68
|
classes,
|
|
75
|
-
cx
|
|
69
|
+
cx,
|
|
70
|
+
theme
|
|
76
71
|
} = useStyles();
|
|
77
72
|
const handleClick = useCallback(async event => {
|
|
78
73
|
if (stopPropagation) {
|
|
@@ -107,9 +102,11 @@ const BackInStockButton = ({
|
|
|
107
102
|
}),
|
|
108
103
|
tag: "span",
|
|
109
104
|
children: [/*#__PURE__*/_jsx(CheckedIcon, {
|
|
110
|
-
color:
|
|
111
|
-
className: alignRight ? classes.icon : cx(classes.
|
|
112
|
-
}), /*#__PURE__*/_jsx(
|
|
105
|
+
color: theme.palette.success.main,
|
|
106
|
+
className: alignRight ? classes.icon : cx(classes.icon, classes.iconCentered)
|
|
107
|
+
}), /*#__PURE__*/_jsx(Typography, {
|
|
108
|
+
variant: "body2",
|
|
109
|
+
component: "span",
|
|
113
110
|
className: classes.backInStockMessage,
|
|
114
111
|
children: i18n.text('back_in_stock.we_will_remind_you')
|
|
115
112
|
})]
|
|
@@ -138,7 +135,7 @@ const BackInStockButton = ({
|
|
|
138
135
|
[classes.rightAligned]: alignRight
|
|
139
136
|
}),
|
|
140
137
|
children: [/*#__PURE__*/_jsx(NotificationIcon, {
|
|
141
|
-
color:
|
|
138
|
+
color: theme.palette.primary.main,
|
|
142
139
|
className: classes.icon
|
|
143
140
|
}), /*#__PURE__*/_jsx("span", {
|
|
144
141
|
className: classes.buttonText,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Link, Ripple, PriceInfo, CrossIcon, PriceStriked, Price, Availability } from '@shopgate/engage/components';
|
|
2
|
+
import { Link, Ripple, PriceInfo, CrossIcon, PriceStriked, Price, Availability, Typography } from '@shopgate/engage/components';
|
|
3
3
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
4
4
|
import { getProductRoute, ProductImage } from '@shopgate/engage/product';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
@@ -39,16 +39,10 @@ const useStyles = makeStyles()(theme => ({
|
|
|
39
39
|
},
|
|
40
40
|
priceInfo: {
|
|
41
41
|
wordBreak: 'break-word',
|
|
42
|
-
fontSize: '0.875rem',
|
|
43
42
|
lineHeight: '0.875rem',
|
|
44
|
-
|
|
45
|
-
padding: theme.spacing(0.5, 0),
|
|
46
|
-
textAlign: 'right'
|
|
43
|
+
padding: theme.spacing(0.5, 0)
|
|
47
44
|
},
|
|
48
|
-
titleContainer: {},
|
|
49
45
|
title: {
|
|
50
|
-
fontSize: 17,
|
|
51
|
-
fontWeight: 600,
|
|
52
46
|
flexWrap: 'wrap',
|
|
53
47
|
overflowWrap: 'anywhere'
|
|
54
48
|
},
|
|
@@ -56,12 +50,8 @@ const useStyles = makeStyles()(theme => ({
|
|
|
56
50
|
minWidth: '30px'
|
|
57
51
|
},
|
|
58
52
|
availabilityText: {
|
|
59
|
-
fontSize: '0.875rem',
|
|
60
53
|
marginBottom: '4px'
|
|
61
54
|
},
|
|
62
|
-
characteristicText: {
|
|
63
|
-
fontSize: '0.875rem'
|
|
64
|
-
},
|
|
65
55
|
ripple: {
|
|
66
56
|
minWidth: '17px'
|
|
67
57
|
}
|
|
@@ -113,11 +103,11 @@ const Subscription = ({
|
|
|
113
103
|
children: [/*#__PURE__*/_jsx(Link, {
|
|
114
104
|
href: productLink,
|
|
115
105
|
tag: "span",
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
,
|
|
106
|
+
children: /*#__PURE__*/_jsx(Typography, {
|
|
107
|
+
variant: "h4",
|
|
108
|
+
component: "span",
|
|
109
|
+
fontWeight: "bold",
|
|
110
|
+
className: classes.title,
|
|
121
111
|
dangerouslySetInnerHTML: {
|
|
122
112
|
__html: `${product.name}`
|
|
123
113
|
}
|
|
@@ -141,7 +131,9 @@ const Subscription = ({
|
|
|
141
131
|
children: [product?.characteristics?.map(({
|
|
142
132
|
label,
|
|
143
133
|
value
|
|
144
|
-
}) => /*#__PURE__*/_jsxs(
|
|
134
|
+
}) => /*#__PURE__*/_jsxs(Typography, {
|
|
135
|
+
variant: "body2",
|
|
136
|
+
component: "div",
|
|
145
137
|
className: classes.characteristicText,
|
|
146
138
|
children: [label, ': ', value]
|
|
147
139
|
}, label + value)), /*#__PURE__*/_jsx(Availability, {
|
|
@@ -162,9 +154,16 @@ const Subscription = ({
|
|
|
162
154
|
currency: currency,
|
|
163
155
|
discounted: hasStrikePrice,
|
|
164
156
|
unitPrice: defaultPrice
|
|
165
|
-
}), !!product.price.info && /*#__PURE__*/_jsx(
|
|
166
|
-
|
|
167
|
-
|
|
157
|
+
}), !!product.price.info && /*#__PURE__*/_jsx(Typography, {
|
|
158
|
+
variant: "body2",
|
|
159
|
+
component: "div",
|
|
160
|
+
color: "textSecondary",
|
|
161
|
+
align: "right",
|
|
162
|
+
className: classes.priceInfo,
|
|
163
|
+
children: /*#__PURE__*/_jsx(PriceInfo, {
|
|
164
|
+
text: product.price.info,
|
|
165
|
+
className: classes.priceInfo
|
|
166
|
+
})
|
|
168
167
|
})]
|
|
169
168
|
})]
|
|
170
169
|
})]
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { i18n } from '@shopgate/engage/core/helpers';
|
|
3
|
+
import { Typography } from '@shopgate/engage/components';
|
|
3
4
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
4
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
6
|
const useStyles = makeStyles()(theme => ({
|
|
6
7
|
header: {
|
|
7
|
-
fontSize: '2.125rem',
|
|
8
|
-
lineHeight: '2.25rem',
|
|
9
8
|
padding: theme.spacing(4)
|
|
10
9
|
}
|
|
11
10
|
}));
|
|
@@ -17,7 +16,9 @@ const CartHeaderWide = () => {
|
|
|
17
16
|
const {
|
|
18
17
|
classes
|
|
19
18
|
} = useStyles();
|
|
20
|
-
return /*#__PURE__*/_jsx(
|
|
19
|
+
return /*#__PURE__*/_jsx(Typography, {
|
|
20
|
+
variant: "h1",
|
|
21
|
+
component: "div",
|
|
21
22
|
className: classes.header,
|
|
22
23
|
children: i18n.text('navigation.cart')
|
|
23
24
|
});
|
|
@@ -6,14 +6,10 @@ import { CART_PATH } from '@shopgate/pwa-common-commerce/cart/constants';
|
|
|
6
6
|
import { CART_ITEM_TYPE_COUPON } from '@shopgate/pwa-common-commerce/cart';
|
|
7
7
|
import { getPageSettings } from '@shopgate/engage/core/config';
|
|
8
8
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
9
|
-
import { themeConfig } from '@shopgate/pwa-common/helpers/config';
|
|
10
9
|
import { MessageBar, CardList } from '@shopgate/engage/components';
|
|
11
10
|
import connect from "./CartItemCoupon.connector";
|
|
12
11
|
import { CartItemCouponLayout, CartItemCouponLayoutContext } from "./CartItemCouponLayout";
|
|
13
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
const {
|
|
15
|
-
colors
|
|
16
|
-
} = themeConfig;
|
|
17
13
|
const duration = 300;
|
|
18
14
|
const defaultTransitionStyle = {
|
|
19
15
|
transition: `height ${duration}ms cubic-bezier(0.25, 0.1, 0.25, 1)`,
|
|
@@ -44,7 +40,7 @@ const useStyles = makeStyles()(theme => ({
|
|
|
44
40
|
marginBottom: 4
|
|
45
41
|
},
|
|
46
42
|
messagesContainerCard: {
|
|
47
|
-
background:
|
|
43
|
+
background: theme.palette.background.surface,
|
|
48
44
|
padding: theme.spacing(0, 0, 2, 0)
|
|
49
45
|
},
|
|
50
46
|
messagesCard: {
|
|
@@ -52,7 +48,7 @@ const useStyles = makeStyles()(theme => ({
|
|
|
52
48
|
padding: theme.spacing(1, 1.75)
|
|
53
49
|
},
|
|
54
50
|
messagesContainerLine: {
|
|
55
|
-
background:
|
|
51
|
+
background: theme.palette.background.surface,
|
|
56
52
|
padding: theme.spacing(2, 2, 0)
|
|
57
53
|
},
|
|
58
54
|
messagesLine: {
|
|
@@ -4,14 +4,14 @@ import { CrossIcon } from '@shopgate/engage/components';
|
|
|
4
4
|
import { i18n } from '@shopgate/engage/core/helpers';
|
|
5
5
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
const useStyles = makeStyles()({
|
|
7
|
+
const useStyles = makeStyles()(theme => ({
|
|
8
8
|
button: {
|
|
9
9
|
padding: 0,
|
|
10
|
-
fontSize:
|
|
10
|
+
fontSize: theme.components.icon.medium,
|
|
11
11
|
marginTop: -2,
|
|
12
12
|
marginRight: -5
|
|
13
13
|
}
|
|
14
|
-
});
|
|
14
|
+
}));
|
|
15
15
|
/**
|
|
16
16
|
* The Coupon Delete component.
|
|
17
17
|
* @param {Object} props The component properties.
|
|
@@ -20,7 +20,7 @@ export const CartItemCouponLayoutContext = /*#__PURE__*/React.createContext({
|
|
|
20
20
|
});
|
|
21
21
|
const useStyles = makeStyles()(theme => ({
|
|
22
22
|
item: {
|
|
23
|
-
fontSize:
|
|
23
|
+
fontSize: theme.typography.body2.fontSize,
|
|
24
24
|
padding: theme.spacing(0.5, 2)
|
|
25
25
|
},
|
|
26
26
|
icon: {
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import {
|
|
3
|
+
import { Typography } from '@shopgate/engage/components';
|
|
4
4
|
import { COUPON_TYPE_FIXED, COUPON_TYPE_PERCENTAGE } from '@shopgate/pwa-common-commerce/cart';
|
|
5
5
|
import Price from '@shopgate/pwa-ui-shared/Price';
|
|
6
|
-
|
|
7
|
-
const useStyles = makeStyles()({
|
|
8
|
-
price: {
|
|
9
|
-
fontSize: '1rem',
|
|
10
|
-
fontWeight: 500,
|
|
11
|
-
color: 'var(--color-primary)'
|
|
12
|
-
}
|
|
13
|
-
});
|
|
6
|
+
|
|
14
7
|
/**
|
|
15
8
|
* @typedef {import('../../cart.types').SavedPrice} SavedPrice
|
|
16
9
|
*/
|
|
@@ -24,24 +17,28 @@ const useStyles = makeStyles()({
|
|
|
24
17
|
* @param {number} props.savedPrice.value The value of the saved price.
|
|
25
18
|
* @returns {JSX.Element|null}
|
|
26
19
|
*/
|
|
20
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
27
21
|
export const CartItemCouponPrice = /*#__PURE__*/React.memo(({
|
|
28
22
|
currency,
|
|
29
23
|
savedPrice
|
|
30
24
|
}) => {
|
|
31
|
-
const {
|
|
32
|
-
classes
|
|
33
|
-
} = useStyles();
|
|
34
25
|
if (savedPrice.type === COUPON_TYPE_FIXED) {
|
|
35
|
-
return /*#__PURE__*/_jsx(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
return /*#__PURE__*/_jsx(Typography, {
|
|
27
|
+
fontWeight: "medium",
|
|
28
|
+
component: "span",
|
|
29
|
+
color: "primary",
|
|
30
|
+
children: /*#__PURE__*/_jsx(Price, {
|
|
31
|
+
currency: currency,
|
|
32
|
+
discounted: true,
|
|
33
|
+
unitPrice: -savedPrice.value
|
|
34
|
+
})
|
|
40
35
|
});
|
|
41
36
|
}
|
|
42
37
|
if (savedPrice.type === COUPON_TYPE_PERCENTAGE) {
|
|
43
|
-
return /*#__PURE__*/_jsx(
|
|
44
|
-
|
|
38
|
+
return /*#__PURE__*/_jsx(Typography, {
|
|
39
|
+
fontWeight: "medium",
|
|
40
|
+
component: "span",
|
|
41
|
+
color: "primary",
|
|
45
42
|
children: `-${savedPrice.value}%`
|
|
46
43
|
});
|
|
47
44
|
}
|
|
@@ -2,12 +2,10 @@ import React, { useMemo } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { i18n } from '@shopgate/engage/core/helpers';
|
|
4
4
|
import { makeStyles } from '@shopgate/engage/styles';
|
|
5
|
+
import { Typography } from '@shopgate/engage/components';
|
|
5
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
7
|
const useStyles = makeStyles()({
|
|
7
8
|
title: {
|
|
8
|
-
fontSize: '1rem',
|
|
9
|
-
fontWeight: 500,
|
|
10
|
-
lineHeight: 1.125,
|
|
11
9
|
marginBottom: 4
|
|
12
10
|
}
|
|
13
11
|
});
|
|
@@ -24,7 +22,9 @@ export function CartItemCouponTitle({
|
|
|
24
22
|
classes
|
|
25
23
|
} = useStyles();
|
|
26
24
|
const title = useMemo(() => value || i18n.text('cart.default_coupon_label'), [value]);
|
|
27
|
-
return /*#__PURE__*/_jsx(
|
|
25
|
+
return /*#__PURE__*/_jsx(Typography, {
|
|
26
|
+
variant: "h5",
|
|
27
|
+
component: "div",
|
|
28
28
|
className: classes.title,
|
|
29
29
|
children: title
|
|
30
30
|
});
|