@shopgate/engage 7.32.0-beta.2 → 7.32.0-beta.20
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/account/components/Profile/Profile.provider.d.ts +1 -1
- package/account/components/Profile/ProfileAddressBook.d.ts.map +1 -1
- package/account/components/Profile/ProfileAddressBook.js +13 -22
- package/account/components/Profile/ProfileAddressCard.d.ts.map +1 -1
- package/account/components/Profile/ProfileAddressCard.js +9 -18
- package/account/components/Profile/ProfileForm.d.ts.map +1 -1
- package/account/components/Profile/ProfileForm.js +15 -42
- package/account/components/ProfileContact/ProfileContact.js +13 -21
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts +2 -1
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts.map +1 -1
- package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.js +61 -5
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts +7 -1
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts.map +1 -1
- package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.js +14 -2
- package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts +15 -2
- package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts.map +1 -1
- package/admin-preview/constants/index.d.ts +9 -22
- package/admin-preview/constants/index.d.ts.map +1 -1
- package/admin-preview/constants/index.js +10 -27
- package/admin-preview/{detection.d.ts → helpers/_internal/detection.d.ts} +12 -8
- package/admin-preview/helpers/_internal/detection.d.ts.map +1 -0
- package/admin-preview/helpers/_internal/detection.js +93 -0
- package/admin-preview/helpers/_internal/origins.d.ts +20 -0
- package/admin-preview/helpers/_internal/origins.d.ts.map +1 -0
- package/admin-preview/helpers/_internal/origins.js +72 -0
- package/admin-preview/helpers/index.d.ts +20 -0
- package/admin-preview/helpers/index.d.ts.map +1 -1
- package/admin-preview/helpers/index.js +26 -2
- package/admin-preview/hooks/index.d.ts +9 -7
- package/admin-preview/hooks/index.d.ts.map +1 -1
- package/admin-preview/hooks/index.js +21 -18
- 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 +23 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts.map +1 -0
- package/admin-preview/initialization/awaitInitialFrontendSettings.js +88 -0
- package/back-in-stock/components/BackInStockButton/index.js +5 -5
- package/back-in-stock/components/Subscriptions/components/Subscription/index.js +2 -5
- package/cart/components/CartItem/CartItemProductLayout.js +2 -1
- package/cart/components/CartItem/CartItemProductLayoutWide.js +2 -2
- package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +7 -14
- package/cart/components/CartItem/CartItemQuantityPicker.js +3 -2
- package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +6 -24
- package/cart/components/CartItems/CartItems.js +8 -10
- package/cart/components/CartItems/CartItemsSubstitution.js +3 -2
- package/cart/components/CartSummaryWide/CartSummaryWide.js +2 -2
- package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +9 -23
- package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +8 -30
- package/cart/components/PaymentBar/testUtils/mockFactories.js +4 -11
- package/category/components/CategoryImage/index.js +24 -17
- package/checkout/components/AddressBook/AddressList.js +14 -23
- package/checkout/components/Checkout/CheckoutActions.js +4 -3
- package/checkout/components/Checkout/CheckoutAddress.js +8 -0
- package/checkout/components/Checkout/CheckoutSection.js +6 -2
- package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +6 -7
- package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +7 -17
- package/components/Badge/Badge.d.ts +30 -0
- package/components/Badge/Badge.d.ts.map +1 -0
- package/components/Badge/Badge.js +49 -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 +2 -4
- package/components/NavigationHandler/connector.js +1 -1
- package/components/NavigationHandler/index.d.ts +2 -2
- 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/RadioCard/RadioCard.d.ts.map +1 -1
- package/components/RadioCard/RadioCard.js +2 -1
- package/components/SheetList/components/Item/index.js +8 -8
- package/components/Tabs/components/Tab.d.ts.map +1 -1
- package/components/Tabs/components/Tab.js +14 -16
- package/components/Typography/Typography.d.ts +1 -1
- package/components/Typography/Typography.d.ts.map +1 -1
- package/components/Typography/Typography.js +2 -0
- package/components/View/components/Content/index.d.ts.map +1 -1
- package/components/View/components/Content/index.js +4 -1
- package/components/constants.d.ts +6 -0
- package/components/constants.d.ts.map +1 -0
- package/components/index.d.ts +6 -1
- package/components/index.d.ts.map +1 -1
- package/components/index.js +6 -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/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/components/v2/IconButton/IconButton.d.ts +72 -0
- package/components/v2/IconButton/IconButton.d.ts.map +1 -0
- package/components/v2/IconButton/IconButton.js +169 -0
- package/components/v2/IconButton/index.d.ts +3 -0
- package/components/v2/IconButton/index.d.ts.map +1 -0
- package/components/v2/IconButton/index.js +1 -0
- package/components/v2/index.d.ts +1 -0
- package/components/v2/index.d.ts.map +1 -1
- package/components/v2/index.js +1 -0
- 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/i18n.d.ts +4 -0
- package/core/helpers/i18n.d.ts.map +1 -1
- package/core/helpers/i18n.js +3 -0
- package/core/hooks/events/appEvents.d.ts +31 -46
- package/core/hooks/events/appEvents.d.ts.map +1 -0
- package/core/hooks/events/appEvents.js +26 -29
- package/core/hooks/events/index.d.ts +4 -4
- package/core/hooks/events/index.d.ts.map +1 -1
- package/core/hooks/events/useLongPress.d.ts +55 -58
- package/core/hooks/events/useLongPress.d.ts.map +1 -0
- package/core/hooks/events/useLongPress.js +23 -16
- package/core/hooks/events/usePressHandler.d.ts +32 -21
- package/core/hooks/events/usePressHandler.d.ts.map +1 -1
- package/core/hooks/events/usePressHandler.js +12 -10
- package/core/hooks/events/useScrollDirectionChange.d.ts +72 -61
- package/core/hooks/events/useScrollDirectionChange.d.ts.map +1 -0
- package/core/hooks/events/useScrollDirectionChange.js +36 -43
- 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 -103
- 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/development/action-creators/index.d.ts +3 -0
- package/development/action-creators/index.d.ts.map +1 -0
- package/development/action-creators/settings.d.ts +45 -0
- package/development/action-creators/settings.d.ts.map +1 -0
- package/development/action-creators/settings.js +21 -10
- package/development/action-creators/storage.d.ts +17 -0
- package/development/action-creators/storage.d.ts.map +1 -0
- package/development/action-creators/storage.js +7 -4
- package/development/components/ClientInformation/ClientInformation.d.ts +6 -0
- package/development/components/ClientInformation/ClientInformation.d.ts.map +1 -0
- package/development/components/ClientInformation/ClientInformation.js +7 -4
- package/development/components/ClientInformation/actions.d.ts +6 -0
- package/development/components/ClientInformation/actions.d.ts.map +1 -0
- package/development/components/ClientInformation/actions.js +1 -1
- package/development/components/ClientInformation/index.d.ts +2 -0
- package/development/components/ClientInformation/index.d.ts.map +1 -0
- package/development/components/DevelopmentSettings/DevelopmentSettings.d.ts +16 -0
- package/development/components/DevelopmentSettings/DevelopmentSettings.d.ts.map +1 -0
- package/development/components/DevelopmentSettings/DevelopmentSettings.js +43 -30
- package/development/components/DevelopmentSettings/index.d.ts +2 -0
- package/development/components/DevelopmentSettings/index.d.ts.map +1 -0
- package/development/components/DevelopmentTools/DevelopmentTools.d.ts +10 -0
- package/development/components/DevelopmentTools/DevelopmentTools.d.ts.map +1 -0
- package/development/components/DevelopmentTools/DevelopmentTools.js +8 -8
- package/development/components/DevelopmentTools/Shortcuts.d.ts +6 -0
- package/development/components/DevelopmentTools/Shortcuts.d.ts.map +1 -0
- package/development/components/DevelopmentTools/Shortcuts.js +0 -1
- package/development/components/DevelopmentTools/hooks.d.ts +8 -0
- package/development/components/DevelopmentTools/hooks.d.ts.map +1 -0
- package/development/components/DevelopmentTools/hooks.js +2 -3
- package/development/components/DevelopmentTools/index.d.ts +2 -0
- package/development/components/DevelopmentTools/index.d.ts.map +1 -0
- package/development/components/SimulatedInsets/SimulatedInsetBottom.d.ts +7 -0
- package/development/components/SimulatedInsets/SimulatedInsetBottom.d.ts.map +1 -0
- package/development/components/SimulatedInsets/SimulatedInsetBottom.js +1 -6
- package/development/components/SimulatedInsets/SimulatedInsetTop.d.ts +7 -0
- package/development/components/SimulatedInsets/SimulatedInsetTop.d.ts.map +1 -0
- package/development/components/SimulatedInsets/SimulatedInsetTop.js +2 -7
- package/development/components/SimulatedInsets/SimulatedInsets.d.ts +13 -0
- package/development/components/SimulatedInsets/SimulatedInsets.d.ts.map +1 -0
- package/development/components/SimulatedInsets/SimulatedInsets.js +2 -7
- package/development/components/SimulatedInsets/index.d.ts +2 -0
- package/development/components/SimulatedInsets/index.d.ts.map +1 -0
- package/development/components/SimulatedInsets/types.d.ts +15 -0
- package/development/components/SimulatedInsets/types.d.ts.map +1 -0
- package/development/components/SimulatedInsets/types.js +1 -0
- package/development/components/index.d.ts +3 -0
- package/development/components/index.d.ts.map +1 -0
- package/development/constants/actionTypes.d.ts +6 -0
- package/development/constants/actionTypes.d.ts.map +1 -0
- package/development/constants/actionTypes.js +2 -1
- package/development/constants/index.d.ts +2 -0
- package/development/constants/index.d.ts.map +1 -0
- package/development/reducers/index.d.ts +24 -0
- package/development/reducers/index.d.ts.map +1 -0
- package/development/reducers/settings.d.ts +17 -0
- package/development/reducers/settings.d.ts.map +1 -0
- package/development/reducers/settings.js +48 -35
- package/development/reducers/storage.d.ts +17 -0
- package/development/reducers/storage.d.ts.map +1 -0
- package/development/reducers/storage.js +24 -24
- package/development/selectors/index.d.ts +3 -0
- package/development/selectors/index.d.ts.map +1 -0
- package/development/selectors/settings.d.ts +52 -0
- package/development/selectors/settings.d.ts.map +1 -0
- package/development/selectors/settings.js +21 -11
- package/development/selectors/storage.d.ts +10 -0
- package/development/selectors/storage.d.ts.map +1 -0
- package/development/selectors/storage.js +6 -18
- package/development/streams/index.d.ts +2 -0
- package/development/streams/index.d.ts.map +1 -0
- package/development/streams/insets.d.ts +8 -0
- package/development/streams/insets.d.ts.map +1 -0
- package/development/streams/insets.js +1 -3
- package/development/subscriptions/index.d.ts +15 -0
- package/development/subscriptions/index.d.ts.map +1 -0
- package/development/subscriptions/index.js +6 -2
- package/development/types/development.d.ts +68 -0
- package/development/types/development.d.ts.map +1 -0
- package/development/types/development.js +1 -0
- package/development/types/index.d.ts +2 -0
- package/development/types/index.d.ts.map +1 -0
- package/development/types/index.js +1 -0
- package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +7 -17
- 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 +2 -5
- 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 -1
- package/favorites/components/List/ListContent.js +4 -5
- package/favorites/components/Lists/Lists.js +4 -5
- package/filter/components/FilterItem/index.js +12 -2
- package/filter/components/FilterPageContent/components/ApplyButton/index.d.ts +21 -0
- package/filter/components/FilterPageContent/components/ApplyButton/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/ApplyButton/index.js +27 -56
- package/filter/components/FilterPageContent/components/FilterButtonBar/index.d.ts +8 -0
- package/filter/components/FilterPageContent/components/FilterButtonBar/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/FilterButtonBar/index.js +63 -0
- package/filter/components/FilterPageContent/components/ResetButton/index.d.ts +17 -0
- package/filter/components/FilterPageContent/components/ResetButton/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/ResetButton/index.js +26 -46
- package/filter/components/FilterPageContent/components/Selector/components/Selected/index.d.ts +19 -0
- package/filter/components/FilterPageContent/components/Selector/components/Selected/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/Selector/components/Selected/index.js +25 -46
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.d.ts +14 -0
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +13 -46
- package/filter/components/FilterPageContent/components/Selector/components/ValueCheckbox/index.d.ts +25 -0
- package/filter/components/FilterPageContent/components/Selector/components/ValueCheckbox/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/Selector/components/ValueCheckbox/index.js +77 -0
- package/filter/components/FilterPageContent/components/Selector/index.d.ts +43 -0
- package/filter/components/FilterPageContent/components/Selector/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/components/Selector/index.js +52 -40
- package/filter/components/FilterPageContent/index.d.ts +16 -0
- package/filter/components/FilterPageContent/index.d.ts.map +1 -0
- package/filter/components/FilterPageContent/index.js +51 -57
- package/filter/components/PriceSlider/components/Label/index.js +86 -94
- package/filter/components/PriceSlider/index.js +43 -30
- package/filter/helpers/buildFilterParamsForFetchFiltersRequest.d.ts +8 -0
- package/filter/helpers/buildFilterParamsForFetchFiltersRequest.d.ts.map +1 -0
- package/filter/helpers/buildInitialFilters.d.ts +7 -0
- package/filter/helpers/buildInitialFilters.d.ts.map +1 -0
- package/filter/helpers/buildUpdatedFilters.d.ts +7 -0
- package/filter/helpers/buildUpdatedFilters.d.ts.map +1 -0
- package/filter/helpers/index.d.ts +5 -0
- package/filter/helpers/index.d.ts.map +1 -0
- package/filter/helpers/translateFilterLabel.d.ts +8 -0
- package/filter/helpers/translateFilterLabel.d.ts.map +1 -0
- package/filter/providers/FilterPageProvider.context.d.ts +157 -0
- package/filter/providers/FilterPageProvider.context.d.ts.map +1 -0
- package/filter/providers/FilterPageProvider.d.ts +24 -0
- package/filter/providers/FilterPageProvider.d.ts.map +1 -0
- package/filter/providers/FilterPageProvider.js +77 -132
- package/locations/components/ChangeLocationButton/ChangeLocationButton.js +10 -14
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +4 -8
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +1 -1
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +8 -13
- package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +10 -10
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +12 -16
- package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +9 -10
- package/locations/components/ReserveForm/ReserveForm.js +6 -7
- package/locations/components/StoreDetails/components/GetDirectionsButton.js +2 -4
- package/locations/components/StoreDetails/components/StoreDetails.js +5 -10
- package/locations/components/StoreDetails/components/StoresNearbyListItem.js +13 -21
- package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -11
- package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +5 -11
- package/locations/components/StoreList/StoreListProduct.js +2 -3
- package/locations/components/StoreList/StoreListSearch.js +1 -0
- package/locations/components/StoreList/StoreSelectLocationButton.js +5 -11
- package/login/components/ForgotPassword/ForgotPassword.js +11 -23
- package/mocks/date.js +31 -0
- package/mocks/index.js +3 -0
- package/mocks/pipelineRequest.js +1 -0
- package/mocks/subscriptions.js +1 -0
- package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +5 -7
- package/orders/components/OrderHistory/OrderHistoryList.d.ts.map +1 -1
- package/orders/components/OrderHistory/OrderHistoryList.js +8 -9
- package/orders/components/OrderHistory/OrderHistoryTable.d.ts.map +1 -1
- package/orders/components/OrderHistory/OrderHistoryTable.js +4 -0
- package/package.json +9 -9
- package/page/components/NotFound.d.ts +7 -0
- package/page/components/NotFound.d.ts.map +1 -0
- package/page/components/NotFound.js +8 -8
- 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/WidgetRichText/WidgetRichText.d.ts +25 -0
- package/page/components/WidgetRichText/WidgetRichText.d.ts.map +1 -0
- 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 +6 -10
- 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 +14 -28
- 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 +29 -0
- package/page/components/Widgets/WidgetProvider.d.ts.map +1 -0
- package/page/components/Widgets/WidgetProvider.js +8 -15
- 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 +18 -0
- package/page/components/Widgets/constants.d.ts.map +1 -0
- package/page/components/Widgets/constants.js +24 -2
- 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 +69 -0
- package/page/components/Widgets/helpers.d.ts.map +1 -0
- package/page/components/Widgets/helpers.js +58 -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 +18 -12
- 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 +138 -114
- 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 +5 -3
- 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/widget.config.schema.json +54 -0
- package/page/widgets/Button/Button.js +2 -3
- package/page/widgets/CategoryList/CategoryList.js +2 -1
- package/page/widgets/HeroBanner/config.json +6 -0
- package/page/widgets/Image/config.json +6 -0
- package/page/widgets/ImageRow/config.json +6 -0
- package/page/widgets/ImageSlider/config.json +6 -0
- package/page/widgets/ImageSlider/hooks.js +4 -2
- package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +8 -8
- package/page/widgets/ProductList/ProductList.js +18 -14
- package/page/widgets/ProductSlider/ProductSlider.js +1 -15
- package/page/widgets/README.md +92 -0
- 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/config.json +6 -0
- 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/Description/index.js +0 -2
- package/product/components/FilterBar/components/Content/components/FilterButton/index.js +38 -46
- package/product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.d.ts +38 -0
- package/product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.d.ts.map +1 -0
- package/product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.js +88 -0
- package/product/components/FilterBar/components/Content/components/FilterChips/index.js +54 -35
- package/product/components/FilterBar/components/Content/components/Sort/index.js +1 -1
- package/product/components/FilterBar/components/Content/index.js +7 -3
- package/product/components/FilterBar/index.js +11 -22
- package/product/components/Media/FeaturedMedia.js +7 -1
- package/product/components/Media/MediaImage.js +24 -23
- package/product/components/Media/MediaPlaceholder.js +4 -7
- package/product/components/MediaSlider/components/MediaImage/index.js +6 -2
- package/product/components/MediaSlider/constants.js +1 -12
- package/product/components/OrderQuantityHint/index.js +16 -1
- package/product/components/ProductCard/index.js +36 -23
- package/product/components/ProductFilters/index.js +2 -6
- package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +12 -4
- package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/index.js +0 -1
- package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +3 -6
- package/product/components/ProductGrid/components/Item/components/ItemName/index.js +6 -1
- package/product/components/ProductGrid/components/Item/index.js +10 -2
- 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 +0 -6
- 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 +12 -17
- 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 -201
- package/product/components/ProductList/components/Item/index.js +5 -3
- package/product/components/ProductList/components/Layout/index.js +8 -20
- package/product/components/ProductRatingStars/ProductRatingStars.d.ts.map +1 -1
- package/product/components/ProductRatingStars/ProductRatingStars.js +4 -17
- 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 +12 -21
- package/product/components/RelationsSlider/RelationsSliderContent.js +3 -2
- 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/UnitQuantityPicker/UnitQuantityPicker.d.ts.map +1 -1
- package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +15 -33
- 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/product/selectors/mocks/productProperties.mock.js +49 -0
- package/push-opt-in/components/PushOptInModal/index.js +4 -4
- package/registration/components/Registration/RegistrationFormActions.js +4 -4
- package/reviews/components/Reviews/components/AllReviewsLink/index.js +6 -6
- package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +4 -3
- package/settings/action-creators/appSettings.d.ts +3 -3
- package/settings/action-creators/appSettings.d.ts.map +1 -1
- package/settings/constants/appSettings.d.ts +3 -0
- package/settings/constants/appSettings.d.ts.map +1 -1
- package/settings/constants/appSettings.js +6 -1
- 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/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.map +1 -1
- package/settings/reducers/appSettings.js +123 -8
- package/settings/reducers/index.d.ts +3 -3
- package/settings/selectors/appSettings.d.ts +122 -1
- package/settings/selectors/appSettings.d.ts.map +1 -1
- package/settings/selectors/appSettings.js +80 -1
- package/settings/types/appSettings.d.ts +279 -0
- package/settings/types/appSettings.d.ts.map +1 -1
- package/settings/types/appSettings.js +133 -1
- 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/index.d.ts +1 -1
- package/styles/index.d.ts.map +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 +11 -1
- package/styles/theme/createDefaultThemeOptions/index.d.ts.map +1 -1
- package/styles/theme/createDefaultThemeOptions/index.js +129 -10
- package/styles/theme/createTheme/createComponents.types.d.ts +118 -4
- package/styles/theme/createTheme/createComponents.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createComponents.types.js +122 -8
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.d.ts.map +1 -1
- package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.js +13 -3
- package/styles/theme/createTheme/createPalette.types.d.ts +5 -0
- package/styles/theme/createTheme/createPalette.types.d.ts.map +1 -1
- package/styles/theme/createTheme/createPalette.types.js +7 -2
- package/styles/theme/createTheme/createShape.d.ts +3 -0
- package/styles/theme/createTheme/createShape.d.ts.map +1 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts +3 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.d.ts.map +1 -1
- package/styles/theme/createTheme/createThemeFromColorScheme.js +6 -3
- package/styles/theme/createTheme/createTypography.d.ts +4 -2
- package/styles/theme/createTheme/createTypography.js +60 -18
- 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 +3 -1
- 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/types.d.ts +16 -5
- package/styles/theme/createTheme/types.d.ts.map +1 -1
- package/styles/theme/createTheme/types.js +8 -3
- 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 +4 -1
- package/styles/theme/index.d.ts.map +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 +3 -13
- package/styles/theme/providers/ThemeProvider.d.ts.map +1 -1
- package/styles/theme/providers/ThemeProvider.js +86 -13
- 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 +3 -4
- package/tracking/components/PrivacySettings/index.js +3 -3
- package/admin-preview/detection.d.ts.map +0 -1
- package/admin-preview/detection.js +0 -166
- package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +0 -6
- package/cart/components/PaymentBar/PaymentBarReserveButton.js +0 -71
- package/components/ChipLayout/spec.js +0 -41
- package/components/Logo/spec.js +0 -12
- package/components/NavigationHandler/spec.js +0 -84
- package/components/Picker/spec.js +0 -94
- package/components/PickerUtilize/spec.js +0 -35
- package/components/RangeSlider/spec.js +0 -190
- package/components/SheetList/components/Item/spec.js +0 -101
- package/components/SheetList/spec.js +0 -43
- package/components/TimeBoundary/spec.js +0 -83
- package/filter/components/FilterItem/spec.js +0 -14
- package/filter/components/FilterPageContent/components/ApplyButton/spec.js +0 -46
- package/filter/components/FilterPageContent/components/ResetButton/spec.js +0 -29
- package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +0 -26
- package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +0 -34
- package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +0 -69
- package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +0 -32
- package/filter/components/FilterPageContent/components/Selector/spec.js +0 -33
- package/filter/components/PriceSlider/components/Label/spec.js +0 -26
- package/filter/components/PriceSlider/spec.js +0 -30
- 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/FilterBar/components/Content/components/FilterChips/connector.js +0 -22
- package/product/components/FilterBar/components/Content/spec.js +0 -136
- package/product/components/Header/Shipping/spec.js +0 -36
- package/product/components/Header/Tiers/components/Tier/spec.js +0 -48
- package/product/components/Header/Tiers/spec.js +0 -64
- package/product/components/Media/helpers.d.ts +0 -2
- package/product/components/Media/helpers.d.ts.map +0 -1
- package/product/components/Options/components/Content/spec.js +0 -73
- package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +0 -72
- package/product/components/ProductDiscountBadge/spec.js +0 -58
- package/product/components/ProductGrid/components/Item/components/ItemDetails/spec.js +0 -73
- package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +0 -33
- package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +0 -16
- package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +0 -21
- package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +0 -37
- package/product/components/ProductGrid/spec.js +0 -52
- package/product/components/ProductImage/connector.js +0 -12
- package/product/components/ProductImage/spec.js +0 -87
- package/product/components/ProductSlider/spec.js +0 -37
- package/product/components/Rating/connector.js +0 -26
- package/product/components/Rating/spec.js +0 -58
- 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
- package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +0 -52
- package/reviews/components/Reviews/components/Header/spec.js +0 -78
- package/reviews/components/Reviews/components/List/spec.js +0 -108
- package/reviews/components/Reviews/components/RatingCount/spec.js +0 -38
- package/reviews/components/Reviews/spec.js +0 -101
- package/tsconfig.build.json +0 -26
- package/tsconfig.json +0 -19
|
@@ -4,6 +4,8 @@ export { setPageContentWidth } from "./setPageContentWidth";
|
|
|
4
4
|
export { setViewportHeight } from "./setViewportHeight";
|
|
5
5
|
export { toggleBodyScroll } from "./toggleBodyScroll";
|
|
6
6
|
export { loadCustomStyles } from "./loadCustomStyles";
|
|
7
|
+
export { loadThemeCss } from "./loadThemeCss";
|
|
8
|
+
export { loadFontCss } from "./loadFontCss";
|
|
7
9
|
export * from "./color";
|
|
8
10
|
export { responsiveMediaQuery } from "../../components/ResponsiveContainer/mediaQuery";
|
|
9
11
|
export { responsiveCondition } from "../../components/ResponsiveContainer/condition";
|
package/styles/helpers/index.js
CHANGED
|
@@ -6,6 +6,8 @@ export { setViewportHeight } from "./setViewportHeight";
|
|
|
6
6
|
export { toggleBodyScroll } from "./toggleBodyScroll";
|
|
7
7
|
export { initCSSCustomProps, initCSSCustomPropsFallback } from "./initCSSCustomProperties";
|
|
8
8
|
export { loadCustomStyles } from "./loadCustomStyles";
|
|
9
|
+
export { loadThemeCss } from "./loadThemeCss";
|
|
10
|
+
export { loadFontCss } from "./loadFontCss";
|
|
9
11
|
export * from "./color";
|
|
10
12
|
export { responsiveMediaQuery } from "../../components/ResponsiveContainer/mediaQuery";
|
|
11
13
|
export { responsiveCondition } from "../../components/ResponsiveContainer/condition";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Syncs the font css links in the document with the passed urls. Tags for urls that are no longer
|
|
3
|
+
* configured are removed, and the remaining ones end up in the dom in the order they were passed -
|
|
4
|
+
* so the global file, passed first, stays above the per variant ones however they were ordered
|
|
5
|
+
* before.
|
|
6
|
+
*
|
|
7
|
+
* Idempotent by design: the admin preview re-sends the app settings while a merchant edits them, so
|
|
8
|
+
* this runs again on every settings update. A tag that is already in place is left untouched, and a
|
|
9
|
+
* tag for a url that is still configured is moved rather than recreated, which would re-request the
|
|
10
|
+
* file.
|
|
11
|
+
*
|
|
12
|
+
* A url is only ever loaded once. Configuring the same file globally and for a variant is normal,
|
|
13
|
+
* and a second link tag for it would apply the same `@font-face` rules twice.
|
|
14
|
+
*
|
|
15
|
+
* Resolves once every newly added file settled, and never rejects - a font file is not guaranteed
|
|
16
|
+
* to exist and must not be able to block app start.
|
|
17
|
+
* @param urls The font css urls to load, in cascade order. Duplicates are dropped, keeping the
|
|
18
|
+
* first occurrence so the cascade order is preserved.
|
|
19
|
+
* @returns A promise that resolves once the new files settled.
|
|
20
|
+
*/
|
|
21
|
+
export declare const loadFontCss: (urls?: string[]) => Promise<void>;
|
|
22
|
+
//# sourceMappingURL=loadFontCss.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadFontCss.d.ts","sourceRoot":"","sources":["../../../styles/helpers/loadFontCss.ts"],"names":[],"mappings":"AAmGA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,GAAU,OAAM,MAAM,EAAO,KAAG,OAAO,CAAC,IAAI,CAqCnE,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { withScope, captureMessage, Severity as SentrySeverity } from '@sentry/browser';
|
|
2
|
+
const REQUEST_TIMEOUT = 3000;
|
|
3
|
+
const LINK_TAG_CLASS = 'font-css';
|
|
4
|
+
const URL_ATTRIBUTE = 'data-font-css-url';
|
|
5
|
+
const INSERTION_POINT_SELECTOR = 'meta[name="font-css-insertion-point"]';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Reads the font css links that are currently in the document, in document order.
|
|
9
|
+
* @returns The link tags.
|
|
10
|
+
*/
|
|
11
|
+
const getExistingTags = () => Array.from(document.querySelectorAll(`link.${LINK_TAG_CLASS}`));
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Inserts a tag after the passed sibling, or appends it when there is none.
|
|
15
|
+
* @param tag The tag to insert.
|
|
16
|
+
* @param sibling The node to insert after.
|
|
17
|
+
*/
|
|
18
|
+
const insertAfter = (tag, sibling) => {
|
|
19
|
+
if (!sibling) {
|
|
20
|
+
document.head.appendChild(tag);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
sibling.parentNode?.insertBefore(tag, sibling.nextSibling);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Loads a single font css file and inserts its link after the passed sibling. The font css
|
|
28
|
+
* insertion point sits between the emotion one and the theme css one, so these files override the
|
|
29
|
+
* custom properties that theme initialization generates while the theme css file still overrides
|
|
30
|
+
* them in turn. Falls back to appending when the meta is absent.
|
|
31
|
+
*
|
|
32
|
+
* A link applies at its position in the dom rather than at the time it finished loading, so the
|
|
33
|
+
* timeout below only decides how long app start waits - never which styles win. The tag is left in
|
|
34
|
+
* place when it hits, so the file still applies once it eventually loads.
|
|
35
|
+
* @param href The url to load.
|
|
36
|
+
* @param sibling The node to insert after.
|
|
37
|
+
* @returns The inserted link tag and a promise that settles on load, error or timeout.
|
|
38
|
+
*/
|
|
39
|
+
const loadOne = (href, sibling) => {
|
|
40
|
+
const linkTag = document.createElement('link');
|
|
41
|
+
linkTag.rel = 'stylesheet';
|
|
42
|
+
linkTag.type = 'text/css';
|
|
43
|
+
linkTag.href = href;
|
|
44
|
+
linkTag.className = LINK_TAG_CLASS;
|
|
45
|
+
linkTag.setAttribute(URL_ATTRIBUTE, href);
|
|
46
|
+
const settled = new Promise(resolve => {
|
|
47
|
+
let done = false;
|
|
48
|
+
let timeout;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Resolves the promise once, whichever of load / error / timeout comes first.
|
|
52
|
+
*/
|
|
53
|
+
const settle = () => {
|
|
54
|
+
if (done) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
done = true;
|
|
58
|
+
clearTimeout(timeout);
|
|
59
|
+
resolve();
|
|
60
|
+
};
|
|
61
|
+
linkTag.onload = settle;
|
|
62
|
+
linkTag.onerror = () => {
|
|
63
|
+
withScope(scope => {
|
|
64
|
+
scope.setLevel(SentrySeverity.Error);
|
|
65
|
+
scope.setExtra('fontCssUrl', href);
|
|
66
|
+
captureMessage('Fetching font css failed');
|
|
67
|
+
});
|
|
68
|
+
settle();
|
|
69
|
+
};
|
|
70
|
+
timeout = setTimeout(() => {
|
|
71
|
+
withScope(scope => {
|
|
72
|
+
scope.setLevel(SentrySeverity.Warning);
|
|
73
|
+
scope.setExtra('fontCssUrl', href);
|
|
74
|
+
scope.setExtra('timeout', REQUEST_TIMEOUT);
|
|
75
|
+
captureMessage('Fetching font css took too long');
|
|
76
|
+
});
|
|
77
|
+
settle();
|
|
78
|
+
}, REQUEST_TIMEOUT);
|
|
79
|
+
});
|
|
80
|
+
insertAfter(linkTag, sibling);
|
|
81
|
+
return {
|
|
82
|
+
linkTag,
|
|
83
|
+
settled
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Syncs the font css links in the document with the passed urls. Tags for urls that are no longer
|
|
89
|
+
* configured are removed, and the remaining ones end up in the dom in the order they were passed -
|
|
90
|
+
* so the global file, passed first, stays above the per variant ones however they were ordered
|
|
91
|
+
* before.
|
|
92
|
+
*
|
|
93
|
+
* Idempotent by design: the admin preview re-sends the app settings while a merchant edits them, so
|
|
94
|
+
* this runs again on every settings update. A tag that is already in place is left untouched, and a
|
|
95
|
+
* tag for a url that is still configured is moved rather than recreated, which would re-request the
|
|
96
|
+
* file.
|
|
97
|
+
*
|
|
98
|
+
* A url is only ever loaded once. Configuring the same file globally and for a variant is normal,
|
|
99
|
+
* and a second link tag for it would apply the same `@font-face` rules twice.
|
|
100
|
+
*
|
|
101
|
+
* Resolves once every newly added file settled, and never rejects - a font file is not guaranteed
|
|
102
|
+
* to exist and must not be able to block app start.
|
|
103
|
+
* @param urls The font css urls to load, in cascade order. Duplicates are dropped, keeping the
|
|
104
|
+
* first occurrence so the cascade order is preserved.
|
|
105
|
+
* @returns A promise that resolves once the new files settled.
|
|
106
|
+
*/
|
|
107
|
+
export const loadFontCss = async (urls = []) => {
|
|
108
|
+
const wanted = Array.from(new Set(urls));
|
|
109
|
+
const wantedUrls = new Set(wanted);
|
|
110
|
+
const kept = new Map();
|
|
111
|
+
getExistingTags().forEach(tag => {
|
|
112
|
+
const url = tag.getAttribute(URL_ATTRIBUTE) || '';
|
|
113
|
+
if (wantedUrls.has(url) && !kept.has(url)) {
|
|
114
|
+
kept.set(url, tag);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
tag.remove();
|
|
118
|
+
});
|
|
119
|
+
let sibling = document.querySelector(INSERTION_POINT_SELECTOR);
|
|
120
|
+
const pending = [];
|
|
121
|
+
wanted.forEach(url => {
|
|
122
|
+
const existing = kept.get(url);
|
|
123
|
+
if (existing) {
|
|
124
|
+
if (existing.previousElementSibling !== sibling) {
|
|
125
|
+
insertAfter(existing, sibling);
|
|
126
|
+
}
|
|
127
|
+
sibling = existing;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const {
|
|
131
|
+
linkTag,
|
|
132
|
+
settled
|
|
133
|
+
} = loadOne(url, sibling);
|
|
134
|
+
sibling = linkTag;
|
|
135
|
+
pending.push(settled);
|
|
136
|
+
});
|
|
137
|
+
await Promise.all(pending);
|
|
138
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loads the theme css file. It overrides the css custom properties that are generated during
|
|
3
|
+
* theme initialization, so it has to win the cascade against them - see `insertLinkTag` for how
|
|
4
|
+
* that order is established.
|
|
5
|
+
*
|
|
6
|
+
* A link applies at its position in the dom rather than at the time it finished loading, so the
|
|
7
|
+
* timeout below only decides how long app start waits - never which styles win.
|
|
8
|
+
*
|
|
9
|
+
* Resolves when the file loaded, when it failed, or when REQUEST_TIMEOUT elapsed - it never
|
|
10
|
+
* rejects, since the file is not guaranteed to exist and must not be able to block app start.
|
|
11
|
+
* @returns A promise that resolves once the file settled.
|
|
12
|
+
*/
|
|
13
|
+
export declare const loadThemeCss: () => Promise<void>;
|
|
14
|
+
//# sourceMappingURL=loadThemeCss.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadThemeCss.d.ts","sourceRoot":"","sources":["../../../styles/helpers/loadThemeCss.ts"],"names":[],"mappings":"AAuCA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,QAAO,OAAO,CAAC,IAAI,CAqF1C,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { withScope, captureMessage, Severity as SentrySeverity } from '@sentry/browser';
|
|
2
|
+
import { appConfig } from '@shopgate/engage';
|
|
3
|
+
import { isFrontendSettingsAdminPreviewActive } from '@shopgate/engage/admin-preview/helpers';
|
|
4
|
+
const REQUEST_TIMEOUT = 3000;
|
|
5
|
+
const LINK_TAG_ID = 'theme-css';
|
|
6
|
+
const INSERTION_POINT_SELECTOR = 'meta[name="theme-css-insertion-point"]';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Temporary switch. Set to false to load the theme css file in the frontend settings preview
|
|
10
|
+
* again, or remove it together with the guard in loadThemeCss and the import above.
|
|
11
|
+
*/
|
|
12
|
+
const SKIP_IN_FRONTEND_SETTINGS_PREVIEW = true;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Inserts the link at the theme css insertion point, which the html template declares between the
|
|
16
|
+
* emotion insertion point and the preview one. That position is what makes the cascade order
|
|
17
|
+
* structural rather than incidental: every tss style is pinned above it, and the admin preview
|
|
18
|
+
* pins its style tag to the anchor below it.
|
|
19
|
+
*
|
|
20
|
+
* Falls back to appending when the meta is absent - a head without the anchor still yields the
|
|
21
|
+
* desired order for anything that was already inserted, it just no longer guarantees it.
|
|
22
|
+
* @param linkTag The link tag to insert.
|
|
23
|
+
*/
|
|
24
|
+
const insertLinkTag = linkTag => {
|
|
25
|
+
const insertionPoint = document.querySelector(INSERTION_POINT_SELECTOR);
|
|
26
|
+
if (!insertionPoint) {
|
|
27
|
+
document.head.appendChild(linkTag);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
insertionPoint.parentNode?.insertBefore(linkTag, insertionPoint.nextSibling);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Loads the theme css file. It overrides the css custom properties that are generated during
|
|
35
|
+
* theme initialization, so it has to win the cascade against them - see `insertLinkTag` for how
|
|
36
|
+
* that order is established.
|
|
37
|
+
*
|
|
38
|
+
* A link applies at its position in the dom rather than at the time it finished loading, so the
|
|
39
|
+
* timeout below only decides how long app start waits - never which styles win.
|
|
40
|
+
*
|
|
41
|
+
* Resolves when the file loaded, when it failed, or when REQUEST_TIMEOUT elapsed - it never
|
|
42
|
+
* rejects, since the file is not guaranteed to exist and must not be able to block app start.
|
|
43
|
+
* @returns A promise that resolves once the file settled.
|
|
44
|
+
*/
|
|
45
|
+
export const loadThemeCss = () => new Promise(resolve => {
|
|
46
|
+
if (SKIP_IN_FRONTEND_SETTINGS_PREVIEW && isFrontendSettingsAdminPreviewActive()) {
|
|
47
|
+
resolve();
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const {
|
|
51
|
+
themeCssUrl: href
|
|
52
|
+
} = appConfig;
|
|
53
|
+
if (!href) {
|
|
54
|
+
resolve();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
let settled = false;
|
|
58
|
+
let timeout;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Resolves the promise once, whichever of load / error / timeout comes first.
|
|
62
|
+
*/
|
|
63
|
+
const settle = () => {
|
|
64
|
+
if (settled) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
settled = true;
|
|
68
|
+
clearTimeout(timeout);
|
|
69
|
+
resolve();
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Starts the fallback that keeps app start from waiting on a stalled request. The link is
|
|
74
|
+
* deliberately left in place when the timeout hits: it still applies once it eventually loads,
|
|
75
|
+
* it just no longer holds up app start.
|
|
76
|
+
*/
|
|
77
|
+
const startTimeoutFallback = () => {
|
|
78
|
+
timeout = setTimeout(() => {
|
|
79
|
+
withScope(scope => {
|
|
80
|
+
scope.setLevel(SentrySeverity.Warning);
|
|
81
|
+
scope.setExtra('themeCssUrl', href);
|
|
82
|
+
scope.setExtra('timeout', REQUEST_TIMEOUT);
|
|
83
|
+
captureMessage('Fetching theme css took too long');
|
|
84
|
+
});
|
|
85
|
+
settle();
|
|
86
|
+
}, REQUEST_TIMEOUT);
|
|
87
|
+
};
|
|
88
|
+
const existingTag = document.querySelector(`#${LINK_TAG_ID}`);
|
|
89
|
+
if (existingTag) {
|
|
90
|
+
// Already loaded
|
|
91
|
+
if (existingTag.sheet) {
|
|
92
|
+
resolve();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Still loading - a stalled request must not leave the promise pending, so arm the timeout
|
|
97
|
+
// here too rather than relying on the load / error events alone.
|
|
98
|
+
existingTag.addEventListener('load', settle, {
|
|
99
|
+
once: true
|
|
100
|
+
});
|
|
101
|
+
existingTag.addEventListener('error', settle, {
|
|
102
|
+
once: true
|
|
103
|
+
});
|
|
104
|
+
startTimeoutFallback();
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const linkTag = document.createElement('link');
|
|
108
|
+
linkTag.rel = 'stylesheet';
|
|
109
|
+
linkTag.type = 'text/css';
|
|
110
|
+
linkTag.href = href;
|
|
111
|
+
linkTag.id = LINK_TAG_ID;
|
|
112
|
+
linkTag.onload = settle;
|
|
113
|
+
linkTag.onerror = () => {
|
|
114
|
+
withScope(scope => {
|
|
115
|
+
scope.setLevel(SentrySeverity.Error);
|
|
116
|
+
scope.setExtra('themeCssUrl', href);
|
|
117
|
+
captureMessage('Fetching theme css failed');
|
|
118
|
+
});
|
|
119
|
+
settle();
|
|
120
|
+
};
|
|
121
|
+
insertLinkTag(linkTag);
|
|
122
|
+
startTimeoutFallback();
|
|
123
|
+
});
|
package/styles/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './helpers';
|
|
2
|
-
export { ThemeProvider, createTheme, useActiveBreakpoint, useMediaQuery, useResponsiveValue, useTheme, useColorScheme, withTheme, type Theme, type PaletteColorsWithMain, type WithThemeProps, } from './theme';
|
|
2
|
+
export { ThemeProvider, createTheme, useActiveBreakpoint, useMediaQuery, useResponsiveValue, useTheme, useColorScheme, withTheme, type Theme, type ShadowSize, type ColorSchemeName, type ColorSchemeMode, type ColorSchemeContextValue, type PaletteColorsWithMain, type WithThemeProps, } from './theme';
|
|
3
3
|
export { makeStyles, withStyles, useStyles, css, cx, tss, GlobalStyles, injectGlobal, keyframes, } from './tss';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/styles/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../styles/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,KAAK,KAAK,EACV,KAAK,qBAAqB,EAC1B,KAAK,cAAc,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,GAAG,EACH,EAAE,EACF,GAAG,EACH,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../styles/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,GAAG,EACH,EAAE,EACF,GAAG,EACH,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,OAAO,CAAC"}
|
package/styles/reset/root.js
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import "core-js/modules/es.array.includes.js";
|
|
2
2
|
import { applyScrollContainer, hasWebBridge, isIOSTheme } from '@shopgate/engage/core/helpers';
|
|
3
|
+
import { configuration } from '@shopgate/engage/core/collections';
|
|
4
|
+
import { CONFIGURATION_COLLECTION_KEY_HAS_ROOT_TYPOGRAPHY } from '@shopgate/engage/core/constants';
|
|
3
5
|
import { themeConfig } from '@shopgate/engage';
|
|
4
6
|
import { injectGlobal } from '..';
|
|
7
|
+
import { CSS_ROOT_FONT_FAMILY, CSS_ROOT_FONT_SIZE } from "./typographyCustomProps";
|
|
5
8
|
const {
|
|
6
9
|
typography
|
|
7
10
|
} = themeConfig;
|
|
8
11
|
const iosThemeActive = isIOSTheme();
|
|
12
|
+
|
|
13
|
+
// Flag (for feature-detecting extensions) that base typography uses the `--sg-root-*` custom
|
|
14
|
+
// properties and the `body1` variant.
|
|
15
|
+
configuration.set(CONFIGURATION_COLLECTION_KEY_HAS_ROOT_TYPOGRAPHY, true);
|
|
9
16
|
injectGlobal({
|
|
10
17
|
'*, *:before, *:after': {
|
|
11
18
|
boxSizing: 'border-box'
|
|
@@ -23,6 +30,14 @@ injectGlobal({
|
|
|
23
30
|
backgroundColor: 'var(--page-background-color)'
|
|
24
31
|
},
|
|
25
32
|
html: {
|
|
33
|
+
// Publish the shared font family (used by every variant) and the rem anchor here. The base body
|
|
34
|
+
// text itself is the `body1` variant, applied to `<body>` below. A higher-specificity `:root`
|
|
35
|
+
// override (admin css / live preview / extension) wins. The family default is the property
|
|
36
|
+
// value, not a `var()` fallback (a comma list can't be a fallback). Roboto is an iOS fallback.
|
|
37
|
+
[CSS_ROOT_FONT_FAMILY]: `${typography.family}${iosThemeActive && !(typography.family || '').includes('Roboto') ? ', Roboto' : ''}`,
|
|
38
|
+
[CSS_ROOT_FONT_SIZE]: `${typography.rootSize}px`,
|
|
39
|
+
fontSize: `var(${CSS_ROOT_FONT_SIZE})`,
|
|
40
|
+
color: 'var(--sg-palette-text-primary, var(--color-text-high-emphasis))',
|
|
26
41
|
overflow: applyScrollContainer() ? 'hidden' : 'inherit',
|
|
27
42
|
MozOsxFontSmoothing: 'grayscale',
|
|
28
43
|
WebkitFontSmoothing: 'antialiased',
|
|
@@ -31,14 +46,18 @@ injectGlobal({
|
|
|
31
46
|
minHeight: '100%'
|
|
32
47
|
},
|
|
33
48
|
body: {
|
|
34
|
-
//
|
|
35
|
-
|
|
49
|
+
// Base body text = the `body1` variant. Family is the shared root var; weight/size/line-height
|
|
50
|
+
// come from the theme's `body1` css vars, with fallbacks so there is no flash before the theme
|
|
51
|
+
// injects them. Configuring `body1` drives both this base text and the variant.
|
|
52
|
+
fontFamily: `var(${CSS_ROOT_FONT_FAMILY})`,
|
|
53
|
+
fontWeight: 'var(--sg-typography-body1-fontWeight, 400)',
|
|
54
|
+
fontSize: 'var(--sg-typography-body1-fontSize, 1rem)',
|
|
55
|
+
lineHeight: 'var(--sg-typography-body1-lineHeight, 1.5)',
|
|
36
56
|
overflow: 'auto',
|
|
37
57
|
margin: 0,
|
|
38
58
|
WebkitOverflowScrolling: 'touch',
|
|
39
59
|
WebkitUserSelect: hasWebBridge() ? 'inherit' : 'none',
|
|
40
|
-
userSelect: hasWebBridge() ? 'inherit' : 'none'
|
|
41
|
-
color: 'var(--color-text-high-emphasis)'
|
|
60
|
+
userSelect: hasWebBridge() ? 'inherit' : 'none'
|
|
42
61
|
},
|
|
43
62
|
'[data-pattern]': {
|
|
44
63
|
height: '100% !important'
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS custom property names for the shared base typography. Internal to the styles layer: the css
|
|
3
|
+
* reset publishes them on `<html>` — `--sg-root-font-family` is the shared family used by every
|
|
4
|
+
* typography variant, `--sg-root-font-size` is the rem anchor. They're an optional override layer: a
|
|
5
|
+
* higher-specificity `:root` rule (admin css file / live preview / an extension) overrides the
|
|
6
|
+
* shipped default. The base body text itself is the `body1` variant, applied to `<body>` by the reset.
|
|
7
|
+
*
|
|
8
|
+
* Not re-exported from the styles barrel - import from this module directly where needed.
|
|
9
|
+
*/
|
|
10
|
+
export declare const CSS_ROOT_FONT_FAMILY = "--sg-root-font-family";
|
|
11
|
+
export declare const CSS_ROOT_FONT_SIZE = "--sg-root-font-size";
|
|
12
|
+
//# sourceMappingURL=typographyCustomProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typographyCustomProps.d.ts","sourceRoot":"","sources":["../../../styles/reset/typographyCustomProps.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS custom property names for the shared base typography. Internal to the styles layer: the css
|
|
3
|
+
* reset publishes them on `<html>` — `--sg-root-font-family` is the shared family used by every
|
|
4
|
+
* typography variant, `--sg-root-font-size` is the rem anchor. They're an optional override layer: a
|
|
5
|
+
* higher-specificity `:root` rule (admin css file / live preview / an extension) overrides the
|
|
6
|
+
* shipped default. The base body text itself is the `body1` variant, applied to `<body>` by the reset.
|
|
7
|
+
*
|
|
8
|
+
* Not re-exported from the styles barrel - import from this module directly where needed.
|
|
9
|
+
*/
|
|
10
|
+
export const CSS_ROOT_FONT_FAMILY = '--sg-root-font-family';
|
|
11
|
+
export const CSS_ROOT_FONT_SIZE = '--sg-root-font-size';
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import type { ThemeOptions } from '../createTheme';
|
|
2
|
+
/**
|
|
3
|
+
* Options of `createDefaultThemeOptions`.
|
|
4
|
+
*/
|
|
5
|
+
type DefaultThemeOptions = {
|
|
6
|
+
/** Whether the app settings have been hydrated from a source (admin sync / jsonp). */
|
|
7
|
+
isHydrated?: boolean;
|
|
8
|
+
};
|
|
2
9
|
/**
|
|
3
10
|
* Creates the default theme options with legacy palette values.
|
|
11
|
+
* @param options Options.
|
|
12
|
+
* @param options.isHydrated Whether the app settings have been hydrated.
|
|
4
13
|
* @returns The theme object
|
|
5
14
|
*/
|
|
6
|
-
export declare const createDefaultThemeOptions: () => ThemeOptions;
|
|
15
|
+
export declare const createDefaultThemeOptions: ({ isHydrated }?: DefaultThemeOptions) => ThemeOptions;
|
|
16
|
+
export {};
|
|
7
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../styles/theme/createDefaultThemeOptions/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../styles/theme/createDefaultThemeOptions/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD;;GAEG;AACH,KAAK,mBAAmB,GAAG;IACzB,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,iBAAwB,mBAAwB,KAC/C,YA2ND,CAAC"}
|
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import { getCSSCustomProp } from '@shopgate/engage/styles';
|
|
2
2
|
import { themeConfig } from '@shopgate/engage';
|
|
3
3
|
const {
|
|
4
|
-
colors
|
|
4
|
+
colors,
|
|
5
|
+
settings
|
|
5
6
|
} = themeConfig;
|
|
6
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Options of `createDefaultThemeOptions`.
|
|
10
|
+
*/
|
|
11
|
+
|
|
7
12
|
/**
|
|
8
13
|
* Creates the default theme options with legacy palette values.
|
|
14
|
+
* @param options Options.
|
|
15
|
+
* @param options.isHydrated Whether the app settings have been hydrated.
|
|
9
16
|
* @returns The theme object
|
|
10
17
|
*/
|
|
11
|
-
export const createDefaultThemeOptions = (
|
|
18
|
+
export const createDefaultThemeOptions = ({
|
|
19
|
+
isHydrated = false
|
|
20
|
+
} = {}) => ({
|
|
12
21
|
colorSchemes: {
|
|
13
22
|
light: {
|
|
14
23
|
palette: {
|
|
@@ -47,7 +56,7 @@ export const createDefaultThemeOptions = () => ({
|
|
|
47
56
|
},
|
|
48
57
|
price: {
|
|
49
58
|
vars: {
|
|
50
|
-
|
|
59
|
+
saleColor: getCSSCustomProp('--color-primary')
|
|
51
60
|
}
|
|
52
61
|
},
|
|
53
62
|
input: {
|
|
@@ -61,9 +70,18 @@ export const createDefaultThemeOptions = () => ({
|
|
|
61
70
|
borderColor: '#EBEBEF'
|
|
62
71
|
}
|
|
63
72
|
},
|
|
64
|
-
|
|
73
|
+
// CTA button legacy fallbacks are only used when the shop has no theme configuration yet.
|
|
74
|
+
// When app settings / theme configuration is present, CTA buttons use the primary color.
|
|
75
|
+
...(!isHydrated && {
|
|
76
|
+
ctaButton: {
|
|
77
|
+
vars: {
|
|
78
|
+
background: getCSSCustomProp('--color-button-cta') || getCSSCustomProp('--color-primary')
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}),
|
|
82
|
+
badge: {
|
|
65
83
|
vars: {
|
|
66
|
-
background: getCSSCustomProp('--color-
|
|
84
|
+
background: getCSSCustomProp('--color-secondary')
|
|
67
85
|
}
|
|
68
86
|
},
|
|
69
87
|
snackbar: {
|
|
@@ -74,11 +92,10 @@ export const createDefaultThemeOptions = () => ({
|
|
|
74
92
|
tabBar: {
|
|
75
93
|
vars: {
|
|
76
94
|
background: 'var(--tab-bar-background, #FFFFFF)',
|
|
77
|
-
minHeight: 'var(--tab-bar-min-height,
|
|
95
|
+
minHeight: 'var(--tab-bar-min-height, 49px)',
|
|
78
96
|
border: '#E6E6E6',
|
|
79
97
|
inactive: 'var(--tab-bar-item-default-color, #747474)',
|
|
80
98
|
active: `var(--tab-bar-item-highlighted-color, ${getCSSCustomProp('--color-secondary')})`,
|
|
81
|
-
floatingBorderRadius: 'var(--tab-bar-floating-border-radius, 16px)',
|
|
82
99
|
floatingBoxShadow: 'var(--tab-bar-floating-box-shadow, 0 0 12px rgba(0, 0, 0, 0.24))',
|
|
83
100
|
floatingMinHeight: 'var(--tab-bar-floating-min-height, 59px)',
|
|
84
101
|
badgeColor: 'var(--tab-bar-item-badge-color, #FFFFFF)',
|
|
@@ -88,6 +105,16 @@ export const createDefaultThemeOptions = () => ({
|
|
|
88
105
|
badgeLeft: 'var(--tab-bar-item-badge-left, calc(50% + 20px))'
|
|
89
106
|
}
|
|
90
107
|
},
|
|
108
|
+
appBar: {
|
|
109
|
+
vars: {
|
|
110
|
+
background: settings?.['@shopgate/engage/components/AppBar']?.background || '#FFF'
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
discountBadge: {
|
|
114
|
+
vars: {
|
|
115
|
+
background: 'var(--sg-palette-primary-main)'
|
|
116
|
+
}
|
|
117
|
+
},
|
|
91
118
|
ratingStars: {
|
|
92
119
|
vars: {
|
|
93
120
|
filled: `var(--rating-stars-filled, ${getCSSCustomProp('--color-primary')})`,
|
|
@@ -107,12 +134,104 @@ export const createDefaultThemeOptions = () => ({
|
|
|
107
134
|
},
|
|
108
135
|
dark: {
|
|
109
136
|
palette: {
|
|
137
|
+
// No primary or secondary here on purpose. Both inherit from the light scheme, so a
|
|
138
|
+
// merchant's brand colors carry over instead of being replaced by a hard coded pair.
|
|
139
|
+
error: {
|
|
140
|
+
main: '#FF6B6B'
|
|
141
|
+
},
|
|
142
|
+
warning: {
|
|
143
|
+
main: '#FFA726'
|
|
144
|
+
},
|
|
145
|
+
success: {
|
|
146
|
+
main: '#5DD954'
|
|
147
|
+
},
|
|
110
148
|
background: {
|
|
111
|
-
default: '#
|
|
149
|
+
default: '#000000',
|
|
150
|
+
surface: '#1C1C1E',
|
|
151
|
+
emphasized: '#2C2C2E'
|
|
112
152
|
},
|
|
113
153
|
text: {
|
|
114
|
-
primary: '#
|
|
115
|
-
secondary: '#
|
|
154
|
+
primary: '#F2F2F7',
|
|
155
|
+
secondary: '#AEAEB2'
|
|
156
|
+
},
|
|
157
|
+
grey: {
|
|
158
|
+
light: '#2C2C2E',
|
|
159
|
+
medium: '#48484A',
|
|
160
|
+
dark: '#8E8E93'
|
|
161
|
+
},
|
|
162
|
+
action: {
|
|
163
|
+
disabled: '#8E8E93',
|
|
164
|
+
disabledBackground: '#48484A',
|
|
165
|
+
pressed: '#2C2C2E'
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
components: {
|
|
169
|
+
border: {
|
|
170
|
+
vars: {
|
|
171
|
+
light: '#38383A',
|
|
172
|
+
medium: '#48484A',
|
|
173
|
+
dark: '#8E8E93'
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
input: {
|
|
177
|
+
vars: {
|
|
178
|
+
background: '#2C2C2E',
|
|
179
|
+
border: '#48484A'
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
separatorLine: {
|
|
183
|
+
vars: {
|
|
184
|
+
borderColor: '#38383A'
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
snackbar: {
|
|
188
|
+
vars: {
|
|
189
|
+
background: '#2C2C2E'
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
tabBar: {
|
|
193
|
+
vars: {
|
|
194
|
+
background: '#1C1C1E',
|
|
195
|
+
border: '#374151',
|
|
196
|
+
inactive: '#9CA3AF',
|
|
197
|
+
floatingBoxShadow: '0 0 12px rgba(0, 0, 0, 0.6)'
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
appBar: {
|
|
201
|
+
vars: {
|
|
202
|
+
background: '#1C1C1E'
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
discountBadge: {
|
|
206
|
+
vars: {
|
|
207
|
+
background: '#FF0000'
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
ratingStars: {
|
|
211
|
+
vars: {
|
|
212
|
+
empty: '#48484A'
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
cards: {
|
|
216
|
+
vars: {
|
|
217
|
+
backgroundColor: '#1C1C1E',
|
|
218
|
+
borderColor: '#38383A'
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
tiles: {
|
|
222
|
+
vars: {
|
|
223
|
+
backgroundColor: '#1C1C1E',
|
|
224
|
+
borderColor: '#38383A'
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
swiper: {
|
|
228
|
+
vars: {
|
|
229
|
+
paginationBulletColor: '#AEAEB2',
|
|
230
|
+
paginationBulletActiveColor: '#F2F2F7',
|
|
231
|
+
paginationFractionBackground: '#2C2C2E',
|
|
232
|
+
paginationProgressbarBackground: '#48484A',
|
|
233
|
+
paginationProgressbarActiveColor: '#FFFFFF'
|
|
234
|
+
}
|
|
116
235
|
}
|
|
117
236
|
}
|
|
118
237
|
}
|