{\n public static displayName: string;\n\n constructor(props: IProductCTA) {\n super(props);\n props.viewController.initialize(props.config);\n }\n\n public componentWillReceiveProps(props: IProductCTA) {\n props.viewController.initialize(props.config);\n }\n\n private preorderAvailabilityLabel = (preorderMessage: string, preorderDate: string) => {\n const formattedDate = formatDateFromString(preorderDate);\n const { day, month } = formattedDate;\n\n return preorderMessage.replace(/::PREORDER_DATE::/gi, `${day}/${month}`);\n };\n\n private navigateToProduct = async () => {\n const { positionIndex } = this.props.config;\n await this.props.viewController.navigateToProduct(positionIndex as number);\n };\n\n private onAddToBagClick = async () => {\n const { skuId, quantity, replenishment, showSuccessLabel } = this.props.config;\n const appliedShowSuccessLabel = showSuccessLabel !== undefined ? showSuccessLabel : true;\n\n await this.props.viewController.addToBag(\n skuId,\n quantity,\n appliedShowSuccessLabel,\n replenishment\n );\n\n if (this.props.config.closeModalAction) {\n setTimeout(this.props.config.closeModalAction, 500);\n }\n };\n\n private onAddToCollectionButtonClick = async () => {\n const { quantity, skuId } = this.props.config;\n\n await this.props.viewController.addSkuToCollection(skuId, quantity);\n };\n\n private getAddToBagButtonLabels(): IMapping {\n const { customAddToBagLabel } = this.props.config;\n const {\n addToBagButtonLabel,\n outOfStockButtonLabel,\n soldOutButtonLabel,\n comingSoonButtonLabel,\n preOrder\n } = this.props.translations as ITranslationsCollection;\n\n return {\n [InventoryStatus.Active]: customAddToBagLabel\n ? customAddToBagLabel\n : addToBagButtonLabel,\n [InventoryStatus.TempOutOfStock]: outOfStockButtonLabel,\n [InventoryStatus.ComingSoon]: comingSoonButtonLabel,\n [InventoryStatus.SoldOut]: soldOutButtonLabel,\n [InventoryStatus.FreePromo]: customAddToBagLabel\n ? customAddToBagLabel\n : addToBagButtonLabel,\n [InventoryStatus.PreOrder]: preOrder\n };\n }\n\n private getAddToBagButton() {\n const { config: buttonConfig, viewController, translations } = this.props;\n const selectedSku: Sku = buttonConfig.selectedSku || viewController.data.selectedSku;\n\n const {\n quantity,\n replenishment,\n hasStickyButtonVariation,\n showToosTitle,\n showToosMessage,\n showSuccessLabel,\n customAddToBagLabel,\n disabled,\n addToBagDataTestId,\n isDisplayedOnSticky,\n showPriceOnStickyAddToBag,\n translationsOverwrites,\n skuId\n } = buttonConfig;\n\n const {\n inventoryStatus,\n shades,\n preorderDate,\n isPreorderable,\n isPreorderEnabled,\n isShoppable\n } = selectedSku;\n\n const isProductShaded = shades.length > 0;\n\n const { addedToCartLabel, availableOn } = translations as ITranslationsCollection;\n\n const inventoryConfig = {\n skuId,\n inventoryStatus,\n quantity,\n replenishment,\n isProductShaded,\n hasStickyButtonVariation,\n showToosTitle,\n showToosMessage,\n showSuccessLabel,\n customAddToBagLabel,\n disabled,\n addToBagDataTestId\n };\n\n const { isShowingSuccessLabel, addingToCart, disableAddToCart } = viewController.data;\n\n const addToBagButtonLabels = this.getAddToBagButtonLabels();\n const isPreorderDisabled = isPreorderEnabled && !isShoppable;\n const isButtonDisabled =\n !selectedSku.isShoppable || addingToCart || disableAddToCart || isPreorderDisabled;\n const isDisabled = disabled || isButtonDisabled;\n\n const addToBagButtonClassNames = classnames({\n 'elc-add-to-bag-button': true,\n 'js-add-to-bag-button': true,\n 'elc-add-to-bag-button-disabled': isDisabled,\n 'js-add-to-bag-button-disabled': isDisabled,\n 'elc-preorder-button': isPreorderable,\n 'js-preorder-button': isPreorderable,\n 'elc-preorder-button-disabled': isPreorderDisabled,\n 'js-preorder-button-disabled': isPreorderDisabled\n });\n\n const addToBagButtonDataTestId =\n addToBagDataTestId ||\n (isPreorderDisabled && PREORDER_BUTTON_DISABLED) ||\n (isPreorderable && PREORDER_BUTTON) ||\n ADD_TO_BAG_BUTTON;\n\n const CTAButtonLabel = isPreorderDisabled\n ? this.preorderAvailabilityLabel(availableOn, preorderDate)\n : addToBagButtonLabels[inventoryStatus];\n const productCTAButtonLabel = isShowingSuccessLabel ? addedToCartLabel : CTAButtonLabel;\n\n let processedCtaLabel =\n translationsOverwrites && translationsOverwrites.ctaButtonLabel\n ? translationsOverwrites.ctaButtonLabel\n : productCTAButtonLabel;\n if (isDisplayedOnSticky && showPriceOnStickyAddToBag && !isPreorderDisabled) {\n const priceObject = selectedSku.priceObject;\n if (!!priceObject) {\n processedCtaLabel = `${processedCtaLabel} - ${priceObject.priceFormatted}`;\n }\n }\n\n return (\n \n \n {processedCtaLabel}\n \n
\n );\n }\n\n private getAddToCollectionButton() {\n const selectedSku = this.props.viewController.data.selectedSku;\n const {\n disabled,\n addToCollectionDataTestId,\n translationsOverwrites,\n className\n } = this.props.config;\n\n const { inventoryStatus } = selectedSku;\n\n const {\n addToCollectionButtonLabel,\n outOfStockButtonLabel,\n soldOutButtonLabel,\n comingSoonButtonLabel\n } = this.props.translations as ITranslationsCollection;\n\n const customCtaLabel = translationsOverwrites && translationsOverwrites.ctaButtonLabel;\n const addToCollectionButtonLabels: IMapping = {\n [InventoryStatus.Active]: customCtaLabel ? customCtaLabel : addToCollectionButtonLabel,\n [InventoryStatus.TempOutOfStock]: outOfStockButtonLabel,\n [InventoryStatus.ComingSoon]: comingSoonButtonLabel,\n [InventoryStatus.SoldOut]: soldOutButtonLabel,\n [InventoryStatus.FreePromo]: customCtaLabel\n ? customCtaLabel\n : addToCollectionButtonLabel\n };\n const initialStateLabel = addToCollectionButtonLabels[inventoryStatus];\n\n const isButtonDisabled = !selectedSku.isShoppable;\n const isDisabled = disabled || isButtonDisabled;\n\n const clickedStateLabel =\n translationsOverwrites && translationsOverwrites.pressedCtaButtonLabel;\n\n const addToCollectionConfig = {\n isDisabled,\n addToCollectionDataTestId,\n initialStateLabel,\n clickedStateLabel\n };\n\n return (\n \n );\n }\n\n private getFindInStoreButton() {\n const findInStoreClassNames = classes('find-in-store-button');\n const selectedSkuId = this.props.config.skuId;\n\n return (\n \n \n
\n );\n }\n\n private getCTAType() {\n const { ctaType, isCoreSite } = this.props.config;\n\n return isCoreSite &&\n (ctaType === ADD_TO_COLLECTION ||\n ctaType === ADD_TO_BAG ||\n typeof ctaType === 'undefined')\n ? FIND_IN_STORE\n : ctaType;\n }\n\n private getCTAButton() {\n const { config: ctaConfig, translations, viewController } = this.props;\n const { shopNowButtonLabel } = translations as ITranslationsCollection;\n const { enableNotifyMe, waitlist, translationsOverwrites } = ctaConfig;\n const selectedSku = ctaConfig.selectedSku || viewController.data.selectedSku;\n\n const ctaButtonType = this.getCTAType();\n const { inventoryStatus, partialParentProduct } = selectedSku;\n\n const { productUrl } = partialParentProduct;\n\n const customCtaLabel = translationsOverwrites && translationsOverwrites.ctaButtonLabel;\n\n const shopNowLabel = customCtaLabel ? customCtaLabel : shopNowButtonLabel;\n\n const isProductAvailable = inventoryStatus === InventoryStatus.Active;\n const enabledByStatus =\n waitlist && waitlist.enabledByStatus ? waitlist.enabledByStatus : [];\n\n const notifyMeEnabled = enableNotifyMe || (waitlist && waitlist.enabled);\n\n const enableByInventoryStatus = () => {\n return (\n enabledByStatus.includes(inventoryStatus) ||\n (enabledByStatus.length === 0 && inventoryStatus !== InventoryStatus.SoldOut)\n );\n };\n\n const showNotifyMeButton =\n notifyMeEnabled && !isProductAvailable && enableByInventoryStatus();\n\n const CTAButtonWrapperClassNames = classnames({\n 'elc-product-cta-button-wrapper': true,\n 'js-product-cta-button-wrapper': true\n });\n\n let ctaButton: JSX.Element | null;\n\n switch (ctaButtonType) {\n case HIDE_CTA:\n ctaButton = null;\n break;\n case SHOP_NOW:\n ctaButton = (\n \n );\n break;\n case ADD_TO_COLLECTION:\n ctaButton = showNotifyMeButton\n ? this.getNotifyMeCTA()\n : this.getAddToCollectionButton();\n break;\n case PREORDER:\n ctaButton = this.getAddToBagButton();\n break;\n case FIND_IN_STORE:\n ctaButton = this.getFindInStoreButton();\n break;\n default:\n // ADD_TO_BAG\n // if this gets refactored and the default will no longer come from here, make sure to update the inv status conditions across all files\n ctaButton = showNotifyMeButton ? this.getNotifyMeCTA() : this.getAddToBagButton();\n }\n\n return (\n {ctaButton}\n );\n }\n\n private getNotifyMeCTA() {\n const { enableNotifyMe, waitlist, compliance } = this.props.config;\n const selectedSku =\n this.props.config.selectedSku || this.props.viewController.data.selectedSku;\n\n const notifyMeCTAProps: IProductNotifyMeCTA = {\n selectedSku: selectedSku,\n config: {\n enableNotifyMe,\n waitlist,\n compliance\n }\n };\n\n return ;\n }\n\n private getCTALink() {\n const selectedSku = this.props.viewController.data.selectedSku;\n const { translations } = this.props;\n\n const { ctaLinkLabel } = translations as ITranslationsCollection;\n\n const { productUrl } = selectedSku.partialParentProduct;\n\n return (\n \n );\n }\n\n private getLimitedRemainingMessage() {\n const { highVelocityQuantity = 0 } = this.props.viewController.data.selectedSku;\n\n return (\n highVelocityQuantity > 0 && (\n \n )\n );\n }\n\n public render() {\n const { enableProductDetailLink, ctaType, features } = this.props.config;\n const enableLimitedRemaining =\n features && features.limitedRemaining && features.limitedRemaining.enabled;\n\n const productCTAWrapperClassNames = classnames({\n 'elc-product-cta-wrapper': true,\n 'js-product-cta-wrapper': true\n });\n\n const displayCTAButton = ctaType !== HIDE_CTA;\n\n return (\n \n {displayCTAButton && this.getCTAButton()}\n {enableProductDetailLink && this.getCTALink()}\n {enableLimitedRemaining && this.getLimitedRemainingMessage()}\n
\n );\n }\n}\n\nProductCTA.displayName = 'ProductCTA';\n\nexport default ProductCTA;\n","export const ADD_TO_BAG = 'add_to_bag';\nexport const SHOP_NOW = 'shop_now';\nexport const HIDE_CTA = 'hide_cta';\nexport const ADD_TO_COLLECTION = 'add_to_collection';\nexport const FIND_IN_STORE = 'find_in_store';\nexport const PREORDER = 'preorder';\nexport const LINK = 'link';\n","export const SPP_PRODUCT_NAME = 'spp_product_name';\nexport const SPP_PRODUCT_SHORT_DESCRIPTION = 'spp_product_short_description';\nexport const SPP_PRODUCT_SUBHEADER = 'spp_product_subheader';\nexport const SPP_PRODUCT_SUBDISPLAY_NAME = 'spp_product_subdisplay_name';\nexport const PRODUCT_OVERVIEW_SUMMARY = 'spp_product_overview_summary';\nexport const SUBSCRIBE_BUTTON = 'product_autoreplenish_subscribe_button';\nexport const PRODUCT_PRICE = 'product_price';\nexport const PRODUCT_SIZE = 'product_size';\nexport const PRODUCT_PROMO_BANNER = 'product-promo-banner';\nexport const PRODUCT_SIZE_DROPDOWN = 'product_size_dropdown';\nexport const PRODUCT_BASIC_INFO = 'product_basic_info';\nexport const AFTER_PAY = 'spp_after_pay';\nexport const SOCIAL_SHARE = 'product_social_share';\nexport const ACCORDION = 'spp_accordion';\nexport const SHADES_SIDE_BAR_BUTTON = 'spp_product_shades_sidebar_button';\nexport const STICKY_PRODUCT_PRICE = 'spp_sticky_product_price';\nexport const STICKY_PRODUCT_SIZE = 'spp_sticky_product_size';\nexport const STICKY_PRODUCT_NAME = 'spp_sticky_product_name';\nexport const PRODUCT_RATING = 'product_rating';\nexport const PRODUCT_BRIEF_NAME = 'product_brief_name';\nexport const PRODUCT_BRIEF_DESCRIPTION = 'product_brief_desccription';\nexport const PRODUCT_LEARN_MORE_LINK = 'product_learn_more_link';\nexport const MPP_ADD_TO_BAG = 'mpp_add_to_bag';\nexport const MPP_SHADE_SELECT = 'mpp_shade_select';\nexport const MPP_SHADE_NAME = 'mpp_shade_name';\nexport const MPP_PRODUCT_DETAILS = 'mpp_product_details';\nexport const MPP_SORT_BY = 'mpp_sort_by';\nexport const MPP_PRODUCT_SORTING_DROPDOWN = 'elc-product-sorting-dropdown';\nexport const CART_PRODUCT_QUANTITY = 'cart_product_quantity';\nexport const D_T_ID = 'd-t-id';\nexport const AUTO_REPLENISH_VIEW = 'autoReplenishView';\nexport const VTO_MAKEUP_BUTTON = 'vto-button-makeup';\nexport const VTO_FOUNDATION_BUTTON = 'vto-button-foundation';\nexport const VTO_PERFECT_SHADES_BUTTON = 'vto-button-perfect-shades';\nexport const VTO_ALL_SHADES_BUTTON = 'vto-button-all-shades';\nexport const VTO_SHADE_SELECT = 'vto_shade_select';\nexport const SHIPS_BY_MESSAGE = 'ships_by_message';\nexport const PREORDER_NOT_AVAILABLE_MESSAGE = 'preorder_not_available_message';\nexport const PREORDER_BUTTON = 'preorder_button';\nexport const PREORDER_BUTTON_DISABLED = 'preorder_button_disabled';\nexport const ADD_TO_BAG_BUTTON = 'add_to_bag_btn';\nexport const PRODUCT_IMAGE_BADGE = 'product-image-badge';\n","import * as classnames from 'classnames';\n\nexport const classes = (component: string, ...classNames: (string | undefined)[]) =>\n classnames(`elc-${component}`, `js-${component}`, classNames);\n","export interface IFormattedDate {\n day: string;\n month: string;\n year: string;\n}\n\nexport const formatDateFromString = (date: string): IFormattedDate => {\n const dateFormatted = new Date();\n dateFormatted.setFullYear(\n parseInt(`20${date.substr(0, 2)}`, 10),\n parseInt(date.substr(2, 2), 10) - 1,\n parseInt(date.substr(4, 2), 10)\n );\n\n const day = `0${dateFormatted.getDate()}`.slice(-2);\n const month = `0${dateFormatted.getMonth() + 1}`.slice(-2);\n const year = dateFormatted.getFullYear().toString();\n\n return {\n day,\n month,\n year\n };\n};\n","export const BACK_IN_STOCK_SUBSCRIPTION = 'backinstock';\nexport const COMING_SOON_SUBSCRIPTION = 'comingsoon';\n","import * as React from 'react';\nimport { ServiceView } from 'elc-service';\nimport { PRODUCT_NOTIFY_ME } from 'elc-service-view-names';\nimport { IWaitlist } from '../../../exported/product-cta/ProductCTA';\nimport { Sku } from '../../domain/entities/Sku';\nimport { InventoryStatus } from '../../constants/InventoryStatuses';\nimport {\n BACK_IN_STOCK_SUBSCRIPTION,\n COMING_SOON_SUBSCRIPTION\n} from '../../constants/SubscriptionTypes';\n\nexport interface IMapping {\n [key: string]: string;\n}\n\nexport interface IProductNotifyMeCTA {\n selectedSku: Sku;\n config: {\n enableNotifyMe?: boolean;\n waitlist?: IWaitlist;\n compliance?: { gdpr: boolean };\n customNotifyMeLabel?: string;\n ctaType?: string;\n };\n}\n\ninterface IProductNotifyMeConfig {\n productDisplayName: string;\n productUrl: string;\n productImageUrl: string;\n skuId: string;\n subscriptionType: string;\n altText: string;\n compliance?: { gdpr: boolean };\n enableNotifyMe?: boolean;\n waitlist?: IWaitlist;\n skuBaseId: number;\n zIndex: string;\n customNotifyMeLabel?: string;\n ctaType?: string;\n}\n\nexport class NotifyMeCTA extends React.Component {\n private notifyMeSubscriptionType(inventoryStatus: string) {\n const subscriptionTypes: IMapping = {\n [InventoryStatus.TempOutOfStock]: BACK_IN_STOCK_SUBSCRIPTION,\n [InventoryStatus.ComingSoon]: COMING_SOON_SUBSCRIPTION\n };\n\n return subscriptionTypes[inventoryStatus] || '';\n }\n\n public render() {\n const { config, selectedSku } = this.props;\n const { enableNotifyMe, waitlist, compliance, customNotifyMeLabel, ctaType } = config;\n\n const {\n skuId,\n partialParentProduct,\n inventoryStatus,\n perlgem: { SKU_BASE_ID }\n } = selectedSku;\n\n const { displayName, productUrl } = partialParentProduct;\n\n const notifyMeConfig: IProductNotifyMeConfig = {\n productDisplayName: displayName,\n productUrl: productUrl,\n productImageUrl: partialParentProduct.defaultImage.src,\n skuId: skuId,\n subscriptionType: this.notifyMeSubscriptionType(inventoryStatus),\n altText: partialParentProduct.defaultImage.alt,\n compliance,\n enableNotifyMe,\n waitlist,\n skuBaseId: SKU_BASE_ID,\n zIndex: '100001',\n customNotifyMeLabel,\n ctaType\n };\n\n return ;\n }\n}\n","import { Colors, ContentSpacing, Fonts } from 'elc-base-theme';\n\nexport const SelectedSizeBoxTheme = `\n background-color: ${Colors.primary900};\n color: ${Colors.white};\n`;\n\nexport const SelectedFilterButtonTheme = `\n background-color: ${Colors.black};\n border-color: ${Colors.black};\n color: ${Colors.white};\n border-radius: 4px;\n border: 1px solid;\n`;\n\nexport const UnselectedFilterButtonTheme = `\n background-color: ${Colors.white};\n border-color: ${Colors.black};\n color: ${Colors.black}\n border-radius: 4px;\n border: 1px solid;\n`;\n\nexport const SizeBoxTheme = `\n border-color: ${Colors.black};\n`;\n\nexport const UppercaseTheme = `\n text-transform: uppercase;\n`;\n\nexport const LowercaseTheme = `\n text-transform: lowercase;\n`;\n\nexport const FilterListItemTheme = `\n color: ${Colors.primary700};\n ${UppercaseTheme}\n`;\nexport const SelectedFilterListItemTheme = `\n ${UppercaseTheme}\n`;\n\nexport const SelectedCategoryTheme = `\n color: ${Colors.blackHighEmphasis}\n`;\n\nexport const UnselectedCategoryTheme = `\n color: ${Colors.blackMediumEmphasis}\n`;\n\nexport const shadeRemoveIconTheme = `\n stroke: ${Colors.white};\n filter: drop-shadow(0 0 1px ${Colors.primary800});\n`;\n\nexport const sizeLabelThemeDropdown = `\n color: ${Colors.blackMediumEmphasis};\n font-family: ${Fonts.robotoMedium};\n font-size: 14px;\n font-weight: bold;\n letter-spacing: 0.25px;\n line-height: ${ContentSpacing.space24};\n`;\n\nexport const sizePickerLabelThemeDropdown = `\n color: ${Colors.blackMediumEmphasis};\n font-family: ${Fonts.roboto};\n font-weight: normal;\n line-height: ${ContentSpacing.space20};\n`;\n\nexport const sizeLabelTheme = `\n font-weight: bold;\n`;\n\nexport const sizePickerLabelTheme = `\n font-weight: bold;\n line-height: 1;\n color: ${Colors.blackDisabledEmphasis};\n`;\n\nexport const SecondaryTextTheme = `\n color: ${Colors.primary700};\n`;\n\nexport const BorderTopTheme = `\n border-top: 1px solid ${Colors.primary400};\n`;\n\nexport const BorderBottomTheme = `\n border-bottom: 1px solid ${Colors.primary400};\n`;\n\nexport const MainColumnTheme = `\n background: ${Colors.primary100};\n`;\n\nexport const SideColumnTheme = `\n background: ${Colors.white};\n box-shadow: ${ContentSpacing.space4} 0 ${ContentSpacing.space4} 0 ${Colors.blackLightEmphasis};\n`;\n\nexport const StickyRowTheme = `\n background: ${Colors.white};\n box-shadow: 0 1px 0 0 ${Colors.blackLightEmphasis};\n`;\n\nexport const ColorWhiteTheme = `\n color: ${Colors.white};\n`;\n\nexport const BackgroundWhiteTheme = `\n background: ${Colors.white};\n`;\n\nexport const IconStrokeTheme = `\n stroke: ${Colors.primary700};\n stroke-width: 2px;\n`;\n\nexport const ColumnHeadingTheme = `\n font-weight: bold;\n`;\n\nexport const FilterHeadingTheme = `\n font-weight: normal;\n text-transform: uppercase;\n`;\n\nexport const ProductBriefShadowTheme = `\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2);\n &:hover {\n box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.2);\n }\n`;\n\nexport const ProductDisplayNameTheme = `\n a {\n text-decoration: none;\n color: ${Colors.primary900};\n\n &:hover {\n text-decoration: underline;\n }\n }\n`;\n\nexport const ProductSublineNameTheme = `\n color: ${Colors.primary900};\n`;\n\nexport const ProductDescriptionTheme = `\n color: ${Colors.primary900};\n`;\n\nexport const ProductPriceTheme = `\n font-weight: 600;\n`;\n\nexport const ProductDiscountedPriceTheme = `\n color: ${Colors.primary400};\n text-decoration: line-through;\n`;\n\nexport const HorizontalFilterButtonTheme = `\n text-transform: capitalize;\n text-align: left;\n\n [dir='rtl'] & {\n text-align: right;\n }\n`;\n\nexport const ProductBadgeWrapperTheme = `\n background-color: ${Colors.white};\n border-style: solid;\n border-color: $dim-grey;\n color: $dim-grey;\n font-weight: bold;\n font-size: 0.9em;\n text-transform: uppercase;\n letter-spacing: -1px;\n line-height: 1;\n box-shadow: 0 0 0 2px $color-white;\n`;\n\nexport const ProductBadgeTextTheme = `\n font-size: 8px;\n line-height: 1;\n letter-spacing: 0;\n`;\n\nexport const ProductPromoMessageTheme = `\n background: ${Colors.primary200};\n`;\n\nexport const ProductCTAWrapperTheme = `\n background: ${Colors.white};\n box-shadow: 0 0 4px 1px rgba(0,0,0,.2);\n`;\n\nexport const MobileSelectTheme = `\n font-family: ${Fonts.robotoMedium};\n font-size: 14px;\n color: ${Colors.primary700};\n`;\n\nexport const MobileSelectArrowTheme = `\n font-size: 12px;\n line-height: 1;\n text-align: center;\n color: ${Colors.primary700};\n border-left-style: solid;\n border-left-color: ${Colors.primary700};\n`;\n\nexport const StickyAddToBagContainerTheme = `\n text-align: center;\n background: ${Colors.white};\n`;\n\nexport const ShadeOverlayHeaderTheme = `\n font-size: 16px;\n font-weight: 700;\n`;\n\nexport const BackgroundGrayTheme = `\n background-color: ${Colors.primary100};\n`;\n\nexport const ShadeSliderPaginationTheme = `\n border-bottom: 1px solid ${Colors.primary300};\n`;\n\nexport const ShadeSliderDotTheme = `\n p {\n font-weight: 700;\n color: ${Colors.primary500};\n }\n\n .slick-active & {\n &::before {\n display: block;\n font-family: 'slick';\n font-size: 24px;\n line-height: 0;\n content: '•';\n text-align: center;\n color: ${Colors.primary500};\n }\n p {\n color: ${Colors.primary800};\n }\n }\n`;\n\nexport const InventoryStatusMessageTheme = `\n color: ${Colors.info};\n`;\n\nexport const ScrollSliderDotTheme = `\n &::before {\n font-family: 'slick';\n font-size: 32px;\n line-height: 0;\n content: '•';\n color: ${Colors.primary300};\n text-align: center;\n }\n\n &.active {\n &::before {\n color: ${Colors.primary600};\n }\n }\n`;\n\nexport const ShadeItemTheme = `\n border-top: 1px solid ${Colors.primary300};\n border-bottom: 1px solid ${Colors.primary300};\n font-size: 20px;\n`;\n\nexport const ColorFamilyRowTheme = `\n font-weight: 700;\n`;\n\nexport const StyledOkIconTheme = `\n fill: ${Colors.white}\n`;\n\nexport const ShadeOverlayButtonTheme = `\n background-color: ${Colors.white};\n border: 1px solid ${Colors.black};\n color: ${Colors.black};\n border-radius: 5px;\n\n &:hover {\n background-color: ${Colors.white};\n }\n font-weight: 700;\n`;\nexport const SidebarDetailsHeadingTheme = `\n font-weight: 700;\n`;\n\nexport const SelectedSwatchTheme = `\n border: 2px solid ${Colors.black}\n`;\n\nexport const StickyAddToBagProductInfoTheme = `\n font-weight: 700;\n`;\n\nexport const AutoReplenishDropdownTheme = `\n .elc-dropdown-wrapper {\n border: 0;\n }\n\n .elc-dropdown-arrow {\n border: 0;\n }\n\n .elc-dropdown-options {\n border: 0;\n }\n`;\n\nexport const StyledAnchorTheme = `\n color: ${Colors.primary500};\n &:hover {\n font-weight: bold;\n }\n`;\n\nexport const smooshImageTheme = (hexValue: string) => `\n .elc-img {\n background-color: ${hexValue};\n }\n`;\n\nexport const ProductZoomButtonTheme = `\n background-color: transparent;\n border: 0;\n`;\n"],"sourceRoot":""}