@salesgenterp/ui-components 0.4.553 → 0.4.555
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/dist/index.js +369 -231
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +372 -234
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Skeleton as Skeleton$1, CircularProgress, TextField, Button, IconButton, Stack, Typography, Grid, InputAdornment, Popover, TableHead, TableRow, TableSortLabel, Paper, TableContainer as TableContainer$4, Table, TableBody, TableCell, TablePagination, Dialog, DialogContent, DialogActions, DialogTitle as DialogTitle$1, RadioGroup, Radio, FormControlLabel, FormLabel, FormControl, FormHelperText, Select as Select$1, InputLabel, MenuItem, CardMedia, Divider, Tabs,
|
|
1
|
+
import { Skeleton as Skeleton$1, CircularProgress, TextField, Button, IconButton, Stack, Typography, Grid, InputAdornment, Popover, TableHead, TableRow, TableSortLabel, Paper, TableContainer as TableContainer$4, Table, TableBody, TableCell, TablePagination, Dialog, DialogContent, DialogActions, DialogTitle as DialogTitle$1, RadioGroup, Radio, FormControlLabel, FormLabel, FormControl, FormHelperText, Select as Select$1, InputLabel, MenuItem, CardMedia, Divider, Tabs, Box, Tab, CardContent, ListItemIcon, ListItem, Collapse, List, ListItemText, Checkbox as Checkbox$1, Card as Card$1, CardHeader as CardHeader$1, CssBaseline, Toolbar, Drawer, useMediaQuery as useMediaQuery$1, Tooltip, Pagination, CardActionArea, Avatar as Avatar$1, alpha, Stepper, Step, StepLabel, StepContent, Container as Container$4 } from '@mui/material';
|
|
2
2
|
import { styled as styled$1 } from '@mui/material/styles';
|
|
3
3
|
import useMediaQuery from '@mui/material/useMediaQuery';
|
|
4
4
|
import React__default, { useState, useEffect, forwardRef, memo, createElement, useCallback, Fragment as Fragment$1, useRef, useMemo } from 'react';
|
|
5
|
-
import { MdVisibilityOff, MdVisibility, MdClose, MdMonetizationOn,
|
|
5
|
+
import { MdVisibilityOff, MdVisibility, MdClose, MdMonetizationOn, MdOutlineStorefront, MdRemoveRedEye, MdOutlineFileDownload, MdPersonOutline, MdOutlineCall, MdMailOutline, MdExpandMore, MdExpandLess, MdStore, MdOutlineMenuOpen, MdMenu, MdDarkMode, MdOutlineDarkMode, MdLocalOffer, MdDelete, MdCheckCircle, MdArrowBack, MdOutlineCircle, MdOutlineStickyNote2, MdOutlineNumbers, MdDateRange, MdOutlineWarehouse } from 'react-icons/md';
|
|
6
6
|
import styled, { css, ThemeProvider, keyframes } from 'styled-components';
|
|
7
7
|
import { isEmpty, isString, toNumber, reduce, concat, omit, replace, template, isArray, some, toLower, isPlainObject, includes, values, cloneDeep, filter, sortBy, isObject, sumBy, get, isNumber, remove } from 'lodash';
|
|
8
8
|
import axios from 'axios';
|
|
@@ -49,7 +49,7 @@ import TableRow$1 from '@mui/material/TableRow';
|
|
|
49
49
|
import { Virtuoso } from 'react-virtuoso';
|
|
50
50
|
import Box$1 from '@mui/material/Box';
|
|
51
51
|
import TableSortLabel$1 from '@mui/material/TableSortLabel';
|
|
52
|
-
import { FiZap, FiCheck, FiCopy, FiShoppingCart, FiGift, FiArrowRight, FiPlusCircle, FiTag,
|
|
52
|
+
import { FiZap, FiCheck, FiCopy, FiShoppingCart, FiPercent, FiGift, FiArrowRight, FiPlusCircle, FiTag, FiLayers, FiTruck } from 'react-icons/fi';
|
|
53
53
|
import { createPortal } from 'react-dom';
|
|
54
54
|
import { HiSparkles, HiChevronUpDown } from 'react-icons/hi2';
|
|
55
55
|
import { paramCase } from 'param-case';
|
|
@@ -2937,6 +2937,21 @@ var saveExcessPayment = function saveExcessPayment(_ref2) {
|
|
|
2937
2937
|
return Promise.reject(e);
|
|
2938
2938
|
}
|
|
2939
2939
|
};
|
|
2940
|
+
var verifyExcessPaymentToken = function verifyExcessPaymentToken(_ref3) {
|
|
2941
|
+
var apiEndPoint = _ref3.apiEndPoint,
|
|
2942
|
+
token = _ref3.token,
|
|
2943
|
+
excessPaymentToken = _ref3.excessPaymentToken;
|
|
2944
|
+
try {
|
|
2945
|
+
return Promise.resolve(API({
|
|
2946
|
+
url: "/ecommerce/customer/verifyExcessPaymentLink?token=" + excessPaymentToken,
|
|
2947
|
+
apiEndPoint: apiEndPoint,
|
|
2948
|
+
token: token,
|
|
2949
|
+
method: 'POST'
|
|
2950
|
+
}));
|
|
2951
|
+
} catch (e) {
|
|
2952
|
+
return Promise.reject(e);
|
|
2953
|
+
}
|
|
2954
|
+
};
|
|
2940
2955
|
|
|
2941
2956
|
var ExcessPaymentForm = function ExcessPaymentForm(_ref) {
|
|
2942
2957
|
var paymentMethods = _ref.paymentMethods,
|
|
@@ -3030,7 +3045,8 @@ var ExcessPaymentDialog = function ExcessPaymentDialog(_ref2) {
|
|
|
3030
3045
|
token = _ref2.token,
|
|
3031
3046
|
styles = _ref2.styles,
|
|
3032
3047
|
onSave = _ref2.onSave,
|
|
3033
|
-
customerData = _ref2.customerData
|
|
3048
|
+
customerData = _ref2.customerData,
|
|
3049
|
+
excessPaymentToken = _ref2.excessPaymentToken;
|
|
3034
3050
|
var _useForm = useForm({
|
|
3035
3051
|
defaultValues: {
|
|
3036
3052
|
paymentModeId: '',
|
|
@@ -3101,26 +3117,51 @@ var ExcessPaymentDialog = function ExcessPaymentDialog(_ref2) {
|
|
|
3101
3117
|
token: token,
|
|
3102
3118
|
asyncService: function asyncService() {
|
|
3103
3119
|
try {
|
|
3104
|
-
return Promise.resolve(
|
|
3120
|
+
return Promise.resolve(verifyExcessPaymentToken({
|
|
3105
3121
|
apiEndPoint: apiEndPoint,
|
|
3106
|
-
token: token
|
|
3122
|
+
token: token,
|
|
3123
|
+
excessPaymentToken: excessPaymentToken
|
|
3107
3124
|
}));
|
|
3108
3125
|
} catch (e) {
|
|
3109
3126
|
return Promise.reject(e);
|
|
3110
3127
|
}
|
|
3111
3128
|
}
|
|
3112
3129
|
}, function (data) {
|
|
3113
|
-
|
|
3114
|
-
return
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3130
|
+
if (data === false) {
|
|
3131
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
3132
|
+
style: {
|
|
3133
|
+
color: 'red',
|
|
3134
|
+
textAlign: 'center',
|
|
3135
|
+
padding: '16px 8px'
|
|
3136
|
+
}
|
|
3137
|
+
}, "This excess payment link has already been used. An excess payment was previously added using this link.");
|
|
3138
|
+
}
|
|
3139
|
+
return /*#__PURE__*/React__default.createElement(AsyncDataLoadComponent, {
|
|
3140
|
+
apiEndPoint: apiEndPoint,
|
|
3141
|
+
token: token,
|
|
3142
|
+
asyncService: function asyncService() {
|
|
3143
|
+
try {
|
|
3144
|
+
return Promise.resolve(getPaymentMethods({
|
|
3145
|
+
apiEndPoint: apiEndPoint,
|
|
3146
|
+
token: token
|
|
3147
|
+
}));
|
|
3148
|
+
} catch (e) {
|
|
3149
|
+
return Promise.reject(e);
|
|
3150
|
+
}
|
|
3151
|
+
}
|
|
3152
|
+
}, function (paymentMethodsData) {
|
|
3153
|
+
var paymentMethods = (paymentMethodsData === null || paymentMethodsData === void 0 ? void 0 : paymentMethodsData.filter(function (item) {
|
|
3154
|
+
return item === null || item === void 0 ? void 0 : item.ecommerce;
|
|
3155
|
+
})) || [];
|
|
3156
|
+
return /*#__PURE__*/React__default.createElement(ExcessPaymentForm, {
|
|
3157
|
+
loading: loading,
|
|
3158
|
+
paymentMethods: paymentMethods,
|
|
3159
|
+
control: control,
|
|
3160
|
+
styles: styles,
|
|
3161
|
+
handleSubmit: handleSubmit,
|
|
3162
|
+
onSubmit: onSubmit,
|
|
3163
|
+
onClose: onClose
|
|
3164
|
+
});
|
|
3124
3165
|
});
|
|
3125
3166
|
})));
|
|
3126
3167
|
};
|
|
@@ -3143,7 +3184,7 @@ var totalIcons = [{
|
|
|
3143
3184
|
icon: /*#__PURE__*/React__default.createElement(TbFileDollar, null)
|
|
3144
3185
|
}];
|
|
3145
3186
|
var Dashboard = function Dashboard(_ref) {
|
|
3146
|
-
var _customerData$custome, _selectDates$salesOrd, _selectDates$recentIn, _selectDates$salesOrd2, _selectDates$recentIn2, _customerData$custome2, _customerData$custome3, _customerData$custome4;
|
|
3187
|
+
var _queryParams$excessPa, _customerData$custome, _selectDates$salesOrd, _selectDates$recentIn, _selectDates$salesOrd2, _selectDates$recentIn2, _customerData$custome2, _customerData$custome3, _customerData$custome4;
|
|
3147
3188
|
var apiEndPoint = _ref.apiEndPoint,
|
|
3148
3189
|
serviceApiEndPoint = _ref.serviceApiEndPoint,
|
|
3149
3190
|
token = _ref.token,
|
|
@@ -3171,8 +3212,7 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
3171
3212
|
showOnlyRecentOrder = _ref$showOnlyRecentOr === void 0 ? false : _ref$showOnlyRecentOr,
|
|
3172
3213
|
hidePayActionButton = _ref.hidePayActionButton,
|
|
3173
3214
|
hideInvoiceTab = _ref.hideInvoiceTab,
|
|
3174
|
-
hideSalesOrderTab = _ref.hideSalesOrderTab
|
|
3175
|
-
hideAddAccessPaymentButton = _ref.hideAddAccessPaymentButton;
|
|
3215
|
+
hideSalesOrderTab = _ref.hideSalesOrderTab;
|
|
3176
3216
|
var _useState = useState({}),
|
|
3177
3217
|
customerData = _useState[0],
|
|
3178
3218
|
setCustomerData = _useState[1];
|
|
@@ -3459,6 +3499,19 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
3459
3499
|
Promise.reject(e);
|
|
3460
3500
|
}
|
|
3461
3501
|
}, [queryParams]);
|
|
3502
|
+
useEffect(function () {
|
|
3503
|
+
try {
|
|
3504
|
+
try {
|
|
3505
|
+
if (queryParams !== null && queryParams !== void 0 && queryParams.excessModal) {
|
|
3506
|
+
setIsExcessPaymentModal({
|
|
3507
|
+
open: true
|
|
3508
|
+
});
|
|
3509
|
+
}
|
|
3510
|
+
} catch (error) {}
|
|
3511
|
+
} catch (e) {
|
|
3512
|
+
Promise.reject(e);
|
|
3513
|
+
}
|
|
3514
|
+
}, [queryParams]);
|
|
3462
3515
|
var totalDataSource = filter(convertCamCaseToSnake(dashboardData) || [], function (data) {
|
|
3463
3516
|
var list = ['totalNumberOfOrders', 'totalAmountSpend'];
|
|
3464
3517
|
return hideTotalCardInDashboardSummary ? !includesCaseInsensitive(list, data === null || data === void 0 ? void 0 : data.name) : data;
|
|
@@ -3498,6 +3551,7 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
3498
3551
|
setTriggerTableData: setTriggerTableData,
|
|
3499
3552
|
styles: styles
|
|
3500
3553
|
}), (isExcessPaymentModal === null || isExcessPaymentModal === void 0 ? void 0 : isExcessPaymentModal.open) && /*#__PURE__*/React__default.createElement(ExcessPaymentDialog, {
|
|
3554
|
+
excessPaymentToken: (_queryParams$excessPa = queryParams === null || queryParams === void 0 ? void 0 : queryParams.excessPayment) != null ? _queryParams$excessPa : '',
|
|
3501
3555
|
customerData: customerData,
|
|
3502
3556
|
apiEndPoint: apiEndPoint,
|
|
3503
3557
|
token: token,
|
|
@@ -3539,7 +3593,6 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
3539
3593
|
}, totalDataSource === null || totalDataSource === void 0 ? void 0 : totalDataSource.map(function (data) {
|
|
3540
3594
|
var _data$name, _data$name2, _data$name3, _totalIcons$find;
|
|
3541
3595
|
var isAmount = (data === null || data === void 0 ? void 0 : (_data$name = data.name) === null || _data$name === void 0 ? void 0 : _data$name.indexOf('Amount')) > 1 || (data === null || data === void 0 ? void 0 : (_data$name2 = data.name) === null || _data$name2 === void 0 ? void 0 : _data$name2.indexOf('Credit')) > 1 || (data === null || data === void 0 ? void 0 : (_data$name3 = data.name) === null || _data$name3 === void 0 ? void 0 : _data$name3.indexOf('Price')) > 1 || (data === null || data === void 0 ? void 0 : data.name) === 'Excess Payment';
|
|
3542
|
-
var isExcessPayment = (data === null || data === void 0 ? void 0 : data.name) === 'Excess Payment';
|
|
3543
3596
|
return /*#__PURE__*/React__default.createElement(Grid, {
|
|
3544
3597
|
item: true,
|
|
3545
3598
|
xs: 12,
|
|
@@ -3563,19 +3616,7 @@ var Dashboard = function Dashboard(_ref) {
|
|
|
3563
3616
|
style: {
|
|
3564
3617
|
flex: 1
|
|
3565
3618
|
}
|
|
3566
|
-
}, /*#__PURE__*/React__default.createElement("p", null, data === null || data === void 0 ? void 0 : data.name), /*#__PURE__*/React__default.createElement("h3", null, "" + (isAmount ? renderMoney(data === null || data === void 0 ? void 0 : data.value) : data === null || data === void 0 ? void 0 : data.value)))
|
|
3567
|
-
title: "Add Excess Payment",
|
|
3568
|
-
arrow: true
|
|
3569
|
-
}, /*#__PURE__*/React__default.createElement(AddExcessPaymentButton, {
|
|
3570
|
-
className: "add-excess-payment-btn",
|
|
3571
|
-
primaryColor: primaryColor,
|
|
3572
|
-
onClick: function onClick() {
|
|
3573
|
-
return setIsExcessPaymentModal({
|
|
3574
|
-
open: true
|
|
3575
|
-
});
|
|
3576
|
-
},
|
|
3577
|
-
"aria-label": "Add excess payment"
|
|
3578
|
-
}, /*#__PURE__*/React__default.createElement(MdAdd, null), /*#__PURE__*/React__default.createElement("span", null, "Add")))));
|
|
3619
|
+
}, /*#__PURE__*/React__default.createElement("p", null, data === null || data === void 0 ? void 0 : data.name), /*#__PURE__*/React__default.createElement("h3", null, "" + (isAmount ? renderMoney(data === null || data === void 0 ? void 0 : data.value) : data === null || data === void 0 ? void 0 : data.value)))));
|
|
3579
3620
|
}))), !hideBannerSection && /*#__PURE__*/React__default.createElement(BannerContainer, null, /*#__PURE__*/React__default.createElement(Grid, {
|
|
3580
3621
|
container: true,
|
|
3581
3622
|
spacing: 3,
|
|
@@ -8158,6 +8199,10 @@ var formatCurrency = function formatCurrency(amount) {
|
|
|
8158
8199
|
maximumFractionDigits: 2
|
|
8159
8200
|
});
|
|
8160
8201
|
};
|
|
8202
|
+
var getPerQuantitySaveLabel = function getPerQuantitySaveLabel(amount, coupon) {
|
|
8203
|
+
var prefix = (coupon === null || coupon === void 0 ? void 0 : coupon.maxAllowedDiscount) > 0 ? 'Save up to' : 'Save';
|
|
8204
|
+
return prefix + " $" + formatCurrency(amount) + " per quantity";
|
|
8205
|
+
};
|
|
8161
8206
|
var getUnitSaving = function getUnitSaving(coupon, productPrice) {
|
|
8162
8207
|
if (coupon !== null && coupon !== void 0 && coupon.percentage && coupon !== null && coupon !== void 0 && coupon.offPercentage && productPrice > 0) {
|
|
8163
8208
|
return productPrice * (coupon.offPercentage / 100);
|
|
@@ -8176,10 +8221,19 @@ var formatCartCount = function formatCartCount(cartQuantity) {
|
|
|
8176
8221
|
var formatRemainingQuantity = function formatRemainingQuantity(remaining) {
|
|
8177
8222
|
return remaining + " more " + (remaining === 1 ? 'quantity' : 'quantities');
|
|
8178
8223
|
};
|
|
8224
|
+
var formatQuantityLabel = function formatQuantityLabel(count) {
|
|
8225
|
+
return count + " " + (count === 1 ? 'quantity' : 'quantities');
|
|
8226
|
+
};
|
|
8179
8227
|
var isBuyXGetFreeProduct = function isBuyXGetFreeProduct(coupon) {
|
|
8180
8228
|
var _coupon$freeProducts;
|
|
8181
8229
|
return (coupon === null || coupon === void 0 ? void 0 : coupon.discountType) === 'BuyXGetFreeProduct' || (coupon === null || coupon === void 0 ? void 0 : (_coupon$freeProducts = coupon.freeProducts) === null || _coupon$freeProducts === void 0 ? void 0 : _coupon$freeProducts.length) > 0 && (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToBuy) > 0;
|
|
8182
8230
|
};
|
|
8231
|
+
var isBuyXGetDiscount = function isBuyXGetDiscount(coupon) {
|
|
8232
|
+
if ((coupon === null || coupon === void 0 ? void 0 : coupon.discountType) === 'BuyXGetDiscount') return true;
|
|
8233
|
+
if (isBuyXGetFreeProduct(coupon)) return false;
|
|
8234
|
+
if (!((coupon === null || coupon === void 0 ? void 0 : coupon.quantityToBuy) > 0) || (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToGet) > 0) return false;
|
|
8235
|
+
return Boolean(coupon === null || coupon === void 0 ? void 0 : coupon.offPercentage) || Boolean(coupon === null || coupon === void 0 ? void 0 : coupon.offAmount);
|
|
8236
|
+
};
|
|
8183
8237
|
var getBuyXGetFreeProductOffPercent = function getBuyXGetFreeProductOffPercent(coupon) {
|
|
8184
8238
|
var pct = Number(coupon === null || coupon === void 0 ? void 0 : coupon.offPercentage);
|
|
8185
8239
|
if (Number.isFinite(pct) && pct > 0) return pct;
|
|
@@ -8193,6 +8247,22 @@ var getBuyXGetFreeProductOfferLabel = function getBuyXGetFreeProductOfferLabel(c
|
|
|
8193
8247
|
if (offPercent >= 100) return 'free';
|
|
8194
8248
|
return offPercent + "% off on these products";
|
|
8195
8249
|
};
|
|
8250
|
+
var getBuyXGetDiscountOffLabel = function getBuyXGetDiscountOffLabel(coupon, productPrice) {
|
|
8251
|
+
if (productPrice === void 0) {
|
|
8252
|
+
productPrice = 0;
|
|
8253
|
+
}
|
|
8254
|
+
if (coupon !== null && coupon !== void 0 && coupon.percentage && coupon !== null && coupon !== void 0 && coupon.offPercentage) {
|
|
8255
|
+
return coupon.offPercentage + "% off";
|
|
8256
|
+
}
|
|
8257
|
+
var unitSaving = getUnitSaving(coupon, productPrice);
|
|
8258
|
+
if (unitSaving) {
|
|
8259
|
+
return "$" + formatCurrency(unitSaving) + " off";
|
|
8260
|
+
}
|
|
8261
|
+
if ((coupon === null || coupon === void 0 ? void 0 : coupon.offAmount) > 0) {
|
|
8262
|
+
return "$" + formatCurrency(coupon.offAmount) + " off";
|
|
8263
|
+
}
|
|
8264
|
+
return 'discount';
|
|
8265
|
+
};
|
|
8196
8266
|
var getFreeProductHref = function getFreeProductHref(product) {
|
|
8197
8267
|
return "/product-details/" + paramCase((product === null || product === void 0 ? void 0 : product.productAlias) || (product === null || product === void 0 ? void 0 : product.productName) || '') + "?id=" + (product === null || product === void 0 ? void 0 : product.productId);
|
|
8198
8268
|
};
|
|
@@ -8201,8 +8271,8 @@ var getBuyXGetFreeProductMessages = function getBuyXGetFreeProductMessages(quant
|
|
|
8201
8271
|
offPercentage = 100;
|
|
8202
8272
|
}
|
|
8203
8273
|
var isFullyFree = offPercentage >= 100;
|
|
8204
|
-
var
|
|
8205
|
-
var benefitSummary = isFullyFree ? "
|
|
8274
|
+
var addQtyLabel = formatQuantityLabel(quantityToBuy);
|
|
8275
|
+
var benefitSummary = isFullyFree ? "Add " + addQtyLabel + " of this product and get " + quantityToGet + " " + (quantityToGet === 1 ? 'free product' : 'free products') : "Add " + addQtyLabel + " of this product and get " + offPercentage + "% off on these products";
|
|
8206
8276
|
var lines = [benefitSummary];
|
|
8207
8277
|
if (cartQuantity <= 0) {
|
|
8208
8278
|
return lines;
|
|
@@ -8218,7 +8288,7 @@ var getBuyXGetFreeProductMessages = function getBuyXGetFreeProductMessages(quant
|
|
|
8218
8288
|
};
|
|
8219
8289
|
var getBuyXGetYMessages = function getBuyXGetYMessages(quantityToBuy, quantityToGet, cartQuantity) {
|
|
8220
8290
|
var totalNeeded = quantityToBuy + quantityToGet;
|
|
8221
|
-
var lines = ["
|
|
8291
|
+
var lines = ["Add " + formatQuantityLabel(quantityToBuy) + ", get " + formatQuantityLabel(quantityToGet) + " for free"];
|
|
8222
8292
|
if (cartQuantity <= 0) {
|
|
8223
8293
|
return lines;
|
|
8224
8294
|
}
|
|
@@ -8231,8 +8301,34 @@ var getBuyXGetYMessages = function getBuyXGetYMessages(quantityToBuy, quantityTo
|
|
|
8231
8301
|
lines.push(formatCartCount(cartQuantity));
|
|
8232
8302
|
lines.push("Add " + formatRemainingQuantity(_remaining) + " to apply this coupon");
|
|
8233
8303
|
} else {
|
|
8234
|
-
|
|
8235
|
-
|
|
8304
|
+
lines.push(formatCartCount(cartQuantity) + " \xB7 Apply this coupon to get " + formatQuantityLabel(quantityToGet) + " for free");
|
|
8305
|
+
}
|
|
8306
|
+
return lines;
|
|
8307
|
+
};
|
|
8308
|
+
var getBuyXGetDiscountMessages = function getBuyXGetDiscountMessages(coupon, _temp) {
|
|
8309
|
+
var _ref = _temp === void 0 ? {} : _temp,
|
|
8310
|
+
_ref$productPrice = _ref.productPrice,
|
|
8311
|
+
productPrice = _ref$productPrice === void 0 ? 0 : _ref$productPrice,
|
|
8312
|
+
_ref$cartQuantity = _ref.cartQuantity,
|
|
8313
|
+
cartQuantity = _ref$cartQuantity === void 0 ? 0 : _ref$cartQuantity;
|
|
8314
|
+
var quantityToBuy = (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToBuy) || 0;
|
|
8315
|
+
var offLabel = getBuyXGetDiscountOffLabel(coupon, productPrice);
|
|
8316
|
+
var addLabel = formatQuantityLabel(quantityToBuy);
|
|
8317
|
+
var unitSaving = getUnitSaving(coupon, productPrice);
|
|
8318
|
+
var lines = ["Add " + addLabel + ", get " + offLabel];
|
|
8319
|
+
if (unitSaving) {
|
|
8320
|
+
lines[0] = "Add " + addLabel + ", get " + offLabel + " \xB7 " + getPerQuantitySaveLabel(unitSaving, coupon);
|
|
8321
|
+
}
|
|
8322
|
+
if (cartQuantity <= 0) {
|
|
8323
|
+
return lines;
|
|
8324
|
+
}
|
|
8325
|
+
if (cartQuantity < quantityToBuy) {
|
|
8326
|
+
var remaining = quantityToBuy - cartQuantity;
|
|
8327
|
+
lines.push(formatCartCount(cartQuantity));
|
|
8328
|
+
lines.push("Add " + formatRemainingQuantity(remaining) + " to qualify");
|
|
8329
|
+
} else {
|
|
8330
|
+
var totalSaving = unitSaving ? unitSaving * cartQuantity : null;
|
|
8331
|
+
lines.push(totalSaving ? formatCartCount(cartQuantity) + " \xB7 Apply this coupon to get $" + formatCurrency(totalSaving) + " off" : formatCartCount(cartQuantity) + " \xB7 Apply this coupon to get " + offLabel);
|
|
8236
8332
|
}
|
|
8237
8333
|
return lines;
|
|
8238
8334
|
};
|
|
@@ -8240,10 +8336,21 @@ var getCouponTypeIcon = function getCouponTypeIcon(coupon) {
|
|
|
8240
8336
|
if (isBuyXGetFreeProduct(coupon)) {
|
|
8241
8337
|
return isFullyFreeBuyXOffer(coupon) ? FiGift : FiPercent;
|
|
8242
8338
|
}
|
|
8339
|
+
if (isBuyXGetDiscount(coupon)) return FiLayers;
|
|
8243
8340
|
if ((coupon === null || coupon === void 0 ? void 0 : coupon.quantityToBuy) > 0 && (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToGet) > 0) return FiLayers;
|
|
8244
8341
|
if (coupon !== null && coupon !== void 0 && coupon.offPercentage) return FiPercent;
|
|
8245
8342
|
return FiTag;
|
|
8246
8343
|
};
|
|
8344
|
+
var getCouponLimitMessages = function getCouponLimitMessages(coupon) {
|
|
8345
|
+
var lines = [];
|
|
8346
|
+
if ((coupon === null || coupon === void 0 ? void 0 : coupon.maxAllowedDiscount) > 0) {
|
|
8347
|
+
lines.push("Maximum saving is up to $" + formatCurrency(coupon.maxAllowedDiscount) + ".");
|
|
8348
|
+
}
|
|
8349
|
+
if ((coupon === null || coupon === void 0 ? void 0 : coupon.maxAllowedAmount) > 0) {
|
|
8350
|
+
lines.push("Applies when your order is more than $" + formatCurrency(coupon.maxAllowedAmount) + ".");
|
|
8351
|
+
}
|
|
8352
|
+
return lines;
|
|
8353
|
+
};
|
|
8247
8354
|
var getDetailMeta = function getDetailMeta(line) {
|
|
8248
8355
|
if (line.includes('added in the cart') && line.includes('Apply')) {
|
|
8249
8356
|
return {
|
|
@@ -8274,15 +8381,21 @@ var getDetailMeta = function getDetailMeta(line) {
|
|
|
8274
8381
|
tone: 'info'
|
|
8275
8382
|
};
|
|
8276
8383
|
};
|
|
8277
|
-
var getCouponBenefit = function getCouponBenefit(coupon,
|
|
8278
|
-
var
|
|
8279
|
-
|
|
8280
|
-
productPrice =
|
|
8281
|
-
|
|
8282
|
-
cartQuantity =
|
|
8384
|
+
var getCouponBenefit = function getCouponBenefit(coupon, _temp2) {
|
|
8385
|
+
var _ref2 = _temp2 === void 0 ? {} : _temp2,
|
|
8386
|
+
_ref2$productPrice = _ref2.productPrice,
|
|
8387
|
+
productPrice = _ref2$productPrice === void 0 ? 0 : _ref2$productPrice,
|
|
8388
|
+
_ref2$cartQuantity = _ref2.cartQuantity,
|
|
8389
|
+
cartQuantity = _ref2$cartQuantity === void 0 ? 0 : _ref2$cartQuantity;
|
|
8283
8390
|
if (isBuyXGetFreeProduct(coupon)) {
|
|
8284
8391
|
return getBuyXGetFreeProductMessages(coupon.quantityToBuy, coupon.quantityToGet, cartQuantity, getBuyXGetFreeProductOffPercent(coupon));
|
|
8285
8392
|
}
|
|
8393
|
+
if (isBuyXGetDiscount(coupon)) {
|
|
8394
|
+
return getBuyXGetDiscountMessages(coupon, {
|
|
8395
|
+
productPrice: productPrice,
|
|
8396
|
+
cartQuantity: cartQuantity
|
|
8397
|
+
});
|
|
8398
|
+
}
|
|
8286
8399
|
var hasBuyXGetY = (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToBuy) > 0 && (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToGet) > 0;
|
|
8287
8400
|
if (hasBuyXGetY) {
|
|
8288
8401
|
return getBuyXGetYMessages(coupon.quantityToBuy, coupon.quantityToGet, cartQuantity);
|
|
@@ -8291,9 +8404,9 @@ var getCouponBenefit = function getCouponBenefit(coupon, _temp) {
|
|
|
8291
8404
|
if (!unitSaving) return null;
|
|
8292
8405
|
var lines = [];
|
|
8293
8406
|
if (coupon !== null && coupon !== void 0 && coupon.offPercentage) {
|
|
8294
|
-
lines.push(coupon.offPercentage + "% off \xB7
|
|
8407
|
+
lines.push(coupon.offPercentage + "% off \xB7 " + getPerQuantitySaveLabel(unitSaving, coupon));
|
|
8295
8408
|
} else {
|
|
8296
|
-
lines.push(
|
|
8409
|
+
lines.push(getPerQuantitySaveLabel(unitSaving, coupon));
|
|
8297
8410
|
}
|
|
8298
8411
|
if (cartQuantity > 0) {
|
|
8299
8412
|
var totalSaving = unitSaving * cartQuantity;
|
|
@@ -8301,47 +8414,44 @@ var getCouponBenefit = function getCouponBenefit(coupon, _temp) {
|
|
|
8301
8414
|
}
|
|
8302
8415
|
return lines;
|
|
8303
8416
|
};
|
|
8304
|
-
var getSuggestionPreviewText = function getSuggestionPreviewText(coupon,
|
|
8305
|
-
var
|
|
8306
|
-
|
|
8307
|
-
productPrice =
|
|
8308
|
-
|
|
8309
|
-
cartQuantity =
|
|
8417
|
+
var getSuggestionPreviewText = function getSuggestionPreviewText(coupon, _temp3) {
|
|
8418
|
+
var _ref3 = _temp3 === void 0 ? {} : _temp3,
|
|
8419
|
+
_ref3$productPrice = _ref3.productPrice,
|
|
8420
|
+
productPrice = _ref3$productPrice === void 0 ? 0 : _ref3$productPrice,
|
|
8421
|
+
_ref3$cartQuantity = _ref3.cartQuantity,
|
|
8422
|
+
cartQuantity = _ref3$cartQuantity === void 0 ? 0 : _ref3$cartQuantity;
|
|
8310
8423
|
if (!coupon) return null;
|
|
8311
8424
|
if (isBuyXGetFreeProduct(coupon)) {
|
|
8312
|
-
var
|
|
8425
|
+
var quantityToBuy = coupon.quantityToBuy || 1;
|
|
8313
8426
|
var quantityToGet = coupon.quantityToGet || 1;
|
|
8314
|
-
var
|
|
8427
|
+
var addQtyLabel = formatQuantityLabel(quantityToBuy);
|
|
8315
8428
|
var offPercent = getBuyXGetFreeProductOffPercent(coupon);
|
|
8316
8429
|
if (offPercent >= 100) {
|
|
8317
|
-
return "
|
|
8430
|
+
return "Add " + addQtyLabel + " of this product and get " + quantityToGet + " " + (quantityToGet === 1 ? 'free product' : 'free products') + ". Click View All offers to know more";
|
|
8318
8431
|
}
|
|
8319
|
-
return "
|
|
8432
|
+
return "Add " + addQtyLabel + " of this product and get " + offPercent + "% off on some products. Click View All offers to know more";
|
|
8320
8433
|
}
|
|
8321
|
-
|
|
8322
|
-
if (hasBuyXGetY) {
|
|
8434
|
+
if (isBuyXGetDiscount(coupon)) {
|
|
8323
8435
|
var _getCouponBenefit;
|
|
8324
8436
|
return ((_getCouponBenefit = getCouponBenefit(coupon, {
|
|
8325
8437
|
productPrice: productPrice,
|
|
8326
8438
|
cartQuantity: cartQuantity
|
|
8327
8439
|
})) === null || _getCouponBenefit === void 0 ? void 0 : _getCouponBenefit[0]) || null;
|
|
8328
8440
|
}
|
|
8329
|
-
var
|
|
8330
|
-
|
|
8331
|
-
|
|
8332
|
-
|
|
8333
|
-
|
|
8334
|
-
|
|
8335
|
-
|
|
8336
|
-
if (hasBuyQuantityRequirement && unitSaving) {
|
|
8337
|
-
var _qtyLabel = quantityToBuy === 1 ? 'quantity' : 'quantities';
|
|
8338
|
-
return "Buy " + quantityToBuy + " " + _qtyLabel + ", save $" + formatCurrency(unitSaving) + " per item";
|
|
8441
|
+
var hasBuyXGetY = (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToBuy) > 0 && (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToGet) > 0;
|
|
8442
|
+
if (hasBuyXGetY) {
|
|
8443
|
+
var _getCouponBenefit2;
|
|
8444
|
+
return ((_getCouponBenefit2 = getCouponBenefit(coupon, {
|
|
8445
|
+
productPrice: productPrice,
|
|
8446
|
+
cartQuantity: cartQuantity
|
|
8447
|
+
})) === null || _getCouponBenefit2 === void 0 ? void 0 : _getCouponBenefit2[0]) || null;
|
|
8339
8448
|
}
|
|
8449
|
+
var unitSaving = getUnitSaving(coupon, productPrice);
|
|
8340
8450
|
if (coupon !== null && coupon !== void 0 && coupon.offPercentage && unitSaving) {
|
|
8341
|
-
return "get " + coupon.offPercentage + "% off,
|
|
8451
|
+
return "get " + coupon.offPercentage + "% off, " + getPerQuantitySaveLabel(unitSaving, coupon).toLowerCase();
|
|
8342
8452
|
}
|
|
8343
8453
|
if (unitSaving) {
|
|
8344
|
-
return
|
|
8454
|
+
return getPerQuantitySaveLabel(unitSaving, coupon).toLowerCase();
|
|
8345
8455
|
}
|
|
8346
8456
|
return null;
|
|
8347
8457
|
};
|
|
@@ -8361,6 +8471,23 @@ var getSavingsBadge = function getSavingsBadge(coupon, productPrice) {
|
|
|
8361
8471
|
bottom: 'GIFT'
|
|
8362
8472
|
};
|
|
8363
8473
|
}
|
|
8474
|
+
if (isBuyXGetDiscount(coupon)) {
|
|
8475
|
+
if (coupon !== null && coupon !== void 0 && coupon.percentage && coupon !== null && coupon !== void 0 && coupon.offPercentage) {
|
|
8476
|
+
return {
|
|
8477
|
+
variant: 'percent',
|
|
8478
|
+
top: coupon.offPercentage + "%",
|
|
8479
|
+
bottom: 'OFF'
|
|
8480
|
+
};
|
|
8481
|
+
}
|
|
8482
|
+
var _unitSaving = getUnitSaving(coupon, productPrice);
|
|
8483
|
+
if (_unitSaving) {
|
|
8484
|
+
return {
|
|
8485
|
+
variant: 'amount',
|
|
8486
|
+
top: "$" + formatCurrency(_unitSaving),
|
|
8487
|
+
bottom: 'SAVE'
|
|
8488
|
+
};
|
|
8489
|
+
}
|
|
8490
|
+
}
|
|
8364
8491
|
if ((coupon === null || coupon === void 0 ? void 0 : coupon.quantityToBuy) > 0 && (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToGet) > 0) {
|
|
8365
8492
|
return {
|
|
8366
8493
|
variant: 'bogo',
|
|
@@ -8405,8 +8532,29 @@ var getProgressInfo = function getProgressInfo(coupon, cartQuantity) {
|
|
|
8405
8532
|
target: _target,
|
|
8406
8533
|
percent: _percent,
|
|
8407
8534
|
qualified: qualified,
|
|
8408
|
-
unitLabel: _target === 1 ? '
|
|
8409
|
-
message: qualified ? "You're eligible — apply your code at checkout!" : _remaining2 === 1 ? "Only 1 more
|
|
8535
|
+
unitLabel: _target === 1 ? 'Quantity' : 'Quantities',
|
|
8536
|
+
message: qualified ? "You're eligible — apply your code at checkout!" : _remaining2 === 1 ? "Only 1 more quantity to unlock " + unlockLabel + "!" : "Only " + _remaining2 + " more quantities to unlock " + unlockLabel + "!"
|
|
8537
|
+
};
|
|
8538
|
+
}
|
|
8539
|
+
if (isBuyXGetDiscount(coupon)) {
|
|
8540
|
+
var _target2 = coupon.quantityToBuy || 0;
|
|
8541
|
+
if (!_target2) return null;
|
|
8542
|
+
var _current2 = Math.min(cartQuantity, _target2);
|
|
8543
|
+
var _percent2 = Math.min(100, _current2 / _target2 * 100);
|
|
8544
|
+
var _remaining3 = Math.max(0, _target2 - cartQuantity);
|
|
8545
|
+
var _qualified = cartQuantity >= _target2;
|
|
8546
|
+
var offLabel = getBuyXGetDiscountOffLabel(coupon);
|
|
8547
|
+
return {
|
|
8548
|
+
type: 'buyxgetdiscount',
|
|
8549
|
+
current: _current2,
|
|
8550
|
+
target: _target2,
|
|
8551
|
+
percent: _percent2,
|
|
8552
|
+
qualified: _qualified,
|
|
8553
|
+
unitLabel: _target2 === 1 ? 'Quantity' : 'Quantities',
|
|
8554
|
+
showTimeline: true,
|
|
8555
|
+
quantityToBuy: _target2,
|
|
8556
|
+
offLabel: offLabel,
|
|
8557
|
+
message: _qualified ? "You're eligible — apply your code at checkout!" : _remaining3 === 1 ? "Only 1 more quantity to unlock " + offLabel + "!" : "Only " + _remaining3 + " more quantities to unlock " + offLabel + "!"
|
|
8410
8558
|
};
|
|
8411
8559
|
}
|
|
8412
8560
|
var hasBuyXGetY = (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToBuy) > 0 && (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToGet) > 0;
|
|
@@ -8424,18 +8572,18 @@ var getProgressInfo = function getProgressInfo(coupon, cartQuantity) {
|
|
|
8424
8572
|
};
|
|
8425
8573
|
}
|
|
8426
8574
|
if (cartQuantity >= quantityToBuy) {
|
|
8427
|
-
var
|
|
8428
|
-
var
|
|
8429
|
-
var
|
|
8430
|
-
var
|
|
8575
|
+
var _current3 = cartQuantity;
|
|
8576
|
+
var _target3 = totalNeeded;
|
|
8577
|
+
var _percent3 = Math.min(100, _current3 / _target3 * 100);
|
|
8578
|
+
var _remaining4 = totalNeeded - cartQuantity;
|
|
8431
8579
|
return {
|
|
8432
8580
|
type: 'quantity',
|
|
8433
|
-
current:
|
|
8434
|
-
target:
|
|
8435
|
-
percent:
|
|
8581
|
+
current: _current3,
|
|
8582
|
+
target: _target3,
|
|
8583
|
+
percent: _percent3,
|
|
8436
8584
|
qualified: false,
|
|
8437
|
-
unitLabel:
|
|
8438
|
-
message:
|
|
8585
|
+
unitLabel: _target3 === 1 ? 'Quantity' : 'Quantities',
|
|
8586
|
+
message: _remaining4 === 1 ? 'Only 1 more quantity to apply this coupon' : "Only " + _remaining4 + " more quantities to apply this coupon",
|
|
8439
8587
|
showTimeline: true,
|
|
8440
8588
|
quantityToBuy: quantityToBuy,
|
|
8441
8589
|
quantityToGet: quantityToGet
|
|
@@ -8451,8 +8599,8 @@ var getProgressInfo = function getProgressInfo(coupon, cartQuantity) {
|
|
|
8451
8599
|
target: target,
|
|
8452
8600
|
percent: percent,
|
|
8453
8601
|
qualified: false,
|
|
8454
|
-
unitLabel: target === 1 ? '
|
|
8455
|
-
message: remaining === 1 ? 'Only 1 more
|
|
8602
|
+
unitLabel: target === 1 ? 'Quantity' : 'Quantities',
|
|
8603
|
+
message: remaining === 1 ? 'Only 1 more quantity to qualify' : "Only " + remaining + " more quantities to qualify",
|
|
8456
8604
|
showTimeline: true,
|
|
8457
8605
|
quantityToBuy: quantityToBuy,
|
|
8458
8606
|
quantityToGet: quantityToGet
|
|
@@ -8461,17 +8609,17 @@ var getProgressInfo = function getProgressInfo(coupon, cartQuantity) {
|
|
|
8461
8609
|
var isProgressDetailLine = function isProgressDetailLine(line) {
|
|
8462
8610
|
return line === null || line === void 0 ? void 0 : line.startsWith('Add ');
|
|
8463
8611
|
};
|
|
8464
|
-
var DiscountSuggestionsModal = function DiscountSuggestionsModal(
|
|
8465
|
-
var open =
|
|
8466
|
-
onClose =
|
|
8467
|
-
productName =
|
|
8468
|
-
|
|
8469
|
-
productDiscounts =
|
|
8470
|
-
primaryColor =
|
|
8471
|
-
|
|
8472
|
-
cartQuantity =
|
|
8473
|
-
|
|
8474
|
-
productPrice =
|
|
8612
|
+
var DiscountSuggestionsModal = function DiscountSuggestionsModal(_ref4) {
|
|
8613
|
+
var open = _ref4.open,
|
|
8614
|
+
onClose = _ref4.onClose,
|
|
8615
|
+
productName = _ref4.productName,
|
|
8616
|
+
_ref4$productDiscount = _ref4.productDiscounts,
|
|
8617
|
+
productDiscounts = _ref4$productDiscount === void 0 ? [] : _ref4$productDiscount,
|
|
8618
|
+
primaryColor = _ref4.primaryColor,
|
|
8619
|
+
_ref4$cartQuantity = _ref4.cartQuantity,
|
|
8620
|
+
cartQuantity = _ref4$cartQuantity === void 0 ? 0 : _ref4$cartQuantity,
|
|
8621
|
+
_ref4$productPrice = _ref4.productPrice,
|
|
8622
|
+
productPrice = _ref4$productPrice === void 0 ? 0 : _ref4$productPrice;
|
|
8475
8623
|
var _useState = useState(null),
|
|
8476
8624
|
copiedCode = _useState[0],
|
|
8477
8625
|
setCopiedCode = _useState[1];
|
|
@@ -8479,7 +8627,7 @@ var DiscountSuggestionsModal = function DiscountSuggestionsModal(_ref3) {
|
|
|
8479
8627
|
var copyCouponCode = useCallback(function (code) {
|
|
8480
8628
|
try {
|
|
8481
8629
|
if (!code) return Promise.resolve();
|
|
8482
|
-
var
|
|
8630
|
+
var _temp4 = _catch(function () {
|
|
8483
8631
|
var _navigator, _navigator$clipboard;
|
|
8484
8632
|
return Promise.resolve((_navigator = navigator) === null || _navigator === void 0 ? void 0 : (_navigator$clipboard = _navigator.clipboard) === null || _navigator$clipboard === void 0 ? void 0 : _navigator$clipboard.writeText(code)).then(function () {
|
|
8485
8633
|
var _window;
|
|
@@ -8491,7 +8639,7 @@ var DiscountSuggestionsModal = function DiscountSuggestionsModal(_ref3) {
|
|
|
8491
8639
|
}, function (error) {
|
|
8492
8640
|
console.error('Failed to copy coupon code', error);
|
|
8493
8641
|
});
|
|
8494
|
-
return Promise.resolve(
|
|
8642
|
+
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
|
|
8495
8643
|
} catch (e) {
|
|
8496
8644
|
return Promise.reject(e);
|
|
8497
8645
|
}
|
|
@@ -8517,10 +8665,10 @@ var DiscountSuggestionsModal = function DiscountSuggestionsModal(_ref3) {
|
|
|
8517
8665
|
};
|
|
8518
8666
|
document.addEventListener('keydown', handleKeyDown);
|
|
8519
8667
|
return function () {
|
|
8520
|
-
scrollLocks.forEach(function (
|
|
8521
|
-
var el =
|
|
8522
|
-
overflow =
|
|
8523
|
-
overscrollBehavior =
|
|
8668
|
+
scrollLocks.forEach(function (_ref5) {
|
|
8669
|
+
var el = _ref5.el,
|
|
8670
|
+
overflow = _ref5.overflow,
|
|
8671
|
+
overscrollBehavior = _ref5.overscrollBehavior;
|
|
8524
8672
|
el.style.overflow = overflow;
|
|
8525
8673
|
el.style.overscrollBehavior = overscrollBehavior;
|
|
8526
8674
|
});
|
|
@@ -8585,8 +8733,9 @@ var DiscountSuggestionsModal = function DiscountSuggestionsModal(_ref3) {
|
|
|
8585
8733
|
productPrice: productPrice,
|
|
8586
8734
|
cartQuantity: cartQuantity
|
|
8587
8735
|
});
|
|
8736
|
+
var limitMessages = getCouponLimitMessages(coupon);
|
|
8588
8737
|
var benefitSummary = (benefit === null || benefit === void 0 ? void 0 : benefit[0]) || null;
|
|
8589
|
-
var benefitDetails = (benefit === null || benefit === void 0 ? void 0 : benefit.length) > 1 ? benefit.slice(1) : [];
|
|
8738
|
+
var benefitDetails = [].concat((benefit === null || benefit === void 0 ? void 0 : benefit.length) > 1 ? benefit.slice(1) : [], limitMessages);
|
|
8590
8739
|
var statusDetails = benefitDetails.filter(function (line) {
|
|
8591
8740
|
return !isProgressDetailLine(line);
|
|
8592
8741
|
});
|
|
@@ -8602,7 +8751,8 @@ var DiscountSuggestionsModal = function DiscountSuggestionsModal(_ref3) {
|
|
|
8602
8751
|
var savingsBadge = getSavingsBadge(coupon, productPrice);
|
|
8603
8752
|
var progressInfo = getProgressInfo(coupon, cartQuantity);
|
|
8604
8753
|
var hasBuyXGetY = (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToBuy) > 0 && (coupon === null || coupon === void 0 ? void 0 : coupon.quantityToGet) > 0;
|
|
8605
|
-
var
|
|
8754
|
+
var isQtyDiscount = isBuyXGetDiscount(coupon);
|
|
8755
|
+
var showTimeline = (hasBuyXGetY || isQtyDiscount) && ((progressInfo === null || progressInfo === void 0 ? void 0 : progressInfo.showTimeline) || (progressInfo === null || progressInfo === void 0 ? void 0 : progressInfo.type) === 'buyxgety' || (progressInfo === null || progressInfo === void 0 ? void 0 : progressInfo.type) === 'buyxgetdiscount');
|
|
8606
8756
|
return /*#__PURE__*/React__default.createElement(OfferCard, {
|
|
8607
8757
|
key: (_coupon$discountId = coupon === null || coupon === void 0 ? void 0 : coupon.discountId) != null ? _coupon$discountId : coupon === null || coupon === void 0 ? void 0 : coupon.couponCode,
|
|
8608
8758
|
$accentColor: accentColor,
|
|
@@ -8612,7 +8762,7 @@ var DiscountSuggestionsModal = function DiscountSuggestionsModal(_ref3) {
|
|
|
8612
8762
|
$variant: savingsBadge.variant
|
|
8613
8763
|
}, /*#__PURE__*/React__default.createElement(BadgeTop, null, savingsBadge.top), /*#__PURE__*/React__default.createElement(BadgeBottom, null, savingsBadge.bottom)), /*#__PURE__*/React__default.createElement(CardHeaderCopy, null, /*#__PURE__*/React__default.createElement(CardMetaRow, null, /*#__PURE__*/React__default.createElement(TypePill, {
|
|
8614
8764
|
$accentColor: accentColor
|
|
8615
|
-
}, /*#__PURE__*/React__default.createElement(TypeIcon, null), /*#__PURE__*/React__default.createElement("span", null, isBuyXGetFreeProduct(coupon) ? isFullyFreeOffer ? 'Free Gift' : getBuyXGetFreeProductOffPercent(coupon) + "% Off" : hasBuyXGetY ? '
|
|
8765
|
+
}, /*#__PURE__*/React__default.createElement(TypeIcon, null), /*#__PURE__*/React__default.createElement("span", null, isBuyXGetFreeProduct(coupon) ? isFullyFreeOffer ? 'Free Gift' : getBuyXGetFreeProductOffPercent(coupon) + "% Off" : isQtyDiscount ? 'Add & Save' : hasBuyXGetY ? 'Add & Get' : coupon !== null && coupon !== void 0 && coupon.offPercentage ? 'Percent Off' : 'Instant Save')), (progressInfo === null || progressInfo === void 0 ? void 0 : progressInfo.qualified) && /*#__PURE__*/React__default.createElement(QualifiedPill, {
|
|
8616
8766
|
$accentColor: accentColor
|
|
8617
8767
|
}, /*#__PURE__*/React__default.createElement(HiSparkles, null), "Ready")), /*#__PURE__*/React__default.createElement(TitleRow, null, /*#__PURE__*/React__default.createElement(OfferTitle, {
|
|
8618
8768
|
title: coupon === null || coupon === void 0 ? void 0 : coupon.discountName
|
|
@@ -8633,36 +8783,24 @@ var DiscountSuggestionsModal = function DiscountSuggestionsModal(_ref3) {
|
|
|
8633
8783
|
onClick: function onClick() {
|
|
8634
8784
|
return copyCouponCode(coupon === null || coupon === void 0 ? void 0 : coupon.couponCode);
|
|
8635
8785
|
}
|
|
8636
|
-
}, isCopied ? /*#__PURE__*/React__default.createElement("div", {
|
|
8637
|
-
style: {
|
|
8638
|
-
display: 'flex',
|
|
8639
|
-
alignItems: 'center',
|
|
8640
|
-
gap: '4px'
|
|
8641
|
-
}
|
|
8642
|
-
}, /*#__PURE__*/React__default.createElement(FiCheck, null), /*#__PURE__*/React__default.createElement("span", null, "Copied")) : /*#__PURE__*/React__default.createElement("div", {
|
|
8643
|
-
style: {
|
|
8644
|
-
display: 'flex',
|
|
8645
|
-
alignItems: 'center',
|
|
8646
|
-
gap: '4px'
|
|
8647
|
-
}
|
|
8648
|
-
}, /*#__PURE__*/React__default.createElement(FiCopy, null), /*#__PURE__*/React__default.createElement("span", null, "Copy")))))))), benefitSummary && /*#__PURE__*/React__default.createElement(OfferDescription, null, benefitSummary), showTimeline && /*#__PURE__*/React__default.createElement(BuyXTimeline, {
|
|
8786
|
+
}, isCopied ? /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(FiCheck, null), /*#__PURE__*/React__default.createElement("span", null, "Copied")) : /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(FiCopy, null), /*#__PURE__*/React__default.createElement("span", null, "Copy")))))))), benefitSummary && /*#__PURE__*/React__default.createElement(OfferDescription, null, benefitSummary), showTimeline && /*#__PURE__*/React__default.createElement(BuyXTimeline, {
|
|
8649
8787
|
$accentColor: accentColor
|
|
8650
8788
|
}, /*#__PURE__*/React__default.createElement(TimelineStep, null, /*#__PURE__*/React__default.createElement(TimelineIcon, {
|
|
8651
8789
|
$accentColor: accentColor
|
|
8652
|
-
}, /*#__PURE__*/React__default.createElement(FiShoppingCart, null)), /*#__PURE__*/React__default.createElement(TimelineLabel, null, "
|
|
8790
|
+
}, /*#__PURE__*/React__default.createElement(FiShoppingCart, null)), /*#__PURE__*/React__default.createElement(TimelineLabel, null, "Add ", coupon.quantityToBuy)), /*#__PURE__*/React__default.createElement(TimelineTrack, {
|
|
8653
8791
|
$accentColor: accentColor
|
|
8654
8792
|
}, /*#__PURE__*/React__default.createElement(TimelineArrow, {
|
|
8655
8793
|
$accentColor: accentColor
|
|
8656
8794
|
})), /*#__PURE__*/React__default.createElement(TimelineStep, null, /*#__PURE__*/React__default.createElement(TimelineIcon, {
|
|
8657
8795
|
$accentColor: accentColor,
|
|
8658
8796
|
$highlight: true
|
|
8659
|
-
}, /*#__PURE__*/React__default.createElement(FiGift, null)), /*#__PURE__*/React__default.createElement(TimelineLabel, null, "Get ", coupon.quantityToGet
|
|
8797
|
+
}, isQtyDiscount ? /*#__PURE__*/React__default.createElement(FiPercent, null) : /*#__PURE__*/React__default.createElement(FiGift, null)), /*#__PURE__*/React__default.createElement(TimelineLabel, null, isQtyDiscount ? "Get " + ((progressInfo === null || progressInfo === void 0 ? void 0 : progressInfo.offLabel) || getBuyXGetDiscountOffLabel(coupon, productPrice)) : "Get " + coupon.quantityToGet + " FREE"))), ((progressInfo === null || progressInfo === void 0 ? void 0 : progressInfo.type) === 'quantity' || (progressInfo === null || progressInfo === void 0 ? void 0 : progressInfo.type) === 'buyxgetdiscount') && !progressInfo.qualified && /*#__PURE__*/React__default.createElement(ProgressBlock, null, /*#__PURE__*/React__default.createElement(ProgressTrack, {
|
|
8660
8798
|
$accentColor: accentColor,
|
|
8661
8799
|
role: "progressbar",
|
|
8662
8800
|
"aria-valuenow": progressInfo.current,
|
|
8663
8801
|
"aria-valuemin": 0,
|
|
8664
8802
|
"aria-valuemax": progressInfo.target,
|
|
8665
|
-
"aria-label": progressInfo.current + " of " + progressInfo.target + "
|
|
8803
|
+
"aria-label": progressInfo.current + " of " + progressInfo.target + " quantities toward eligibility"
|
|
8666
8804
|
}, /*#__PURE__*/React__default.createElement(ProgressFill, {
|
|
8667
8805
|
$accentColor: accentColor,
|
|
8668
8806
|
$percent: progressInfo.percent
|
|
@@ -8704,95 +8842,95 @@ var DialogTitle = styled.h2(_templateObject11$3 || (_templateObject11$3 = _tagge
|
|
|
8704
8842
|
var CloseButton = styled.button(_templateObject12$2 || (_templateObject12$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n padding: 0;\n border: none;\n border-radius: 50%;\n background: transparent;\n color: rgba(0, 0, 0, 0.54);\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n svg {\n font-size: 1.25rem;\n }\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.04);\n }\n\n &:focus-visible {\n outline: 2px solid #437c0f;\n outline-offset: 1px;\n }\n"])));
|
|
8705
8843
|
var ScrollableBody = styled.div(_templateObject13$2 || (_templateObject13$2 = _taggedTemplateLiteralLoose(["\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n -webkit-overflow-scrolling: touch;\n padding: 0.85rem;\n"])));
|
|
8706
8844
|
var EmptyState$1 = styled.p(_templateObject14$2 || (_templateObject14$2 = _taggedTemplateLiteralLoose(["\n margin: 0;\n padding: 1.5rem 0.5rem;\n text-align: center;\n font-size: 0.9rem;\n font-weight: 600;\n color: #5a6354;\n"])));
|
|
8707
|
-
var SavingsCenter = styled.section(_templateObject15$2 || (_templateObject15$2 = _taggedTemplateLiteralLoose(["\n --accent: ", ";\n position: relative;\n width: 100%;\n border-radius: 0.85rem;\n border: 1px solid ", ";\n background: linear-gradient(165deg, #ffffff 0%, #fafcf7 45%, #f6f9f2 100%);\n overflow: hidden;\n box-shadow: 0 1px 2px rgba(16, 22, 10, 0.04),\n 0 8px 24px ", ";\n animation: ", " 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI',\n 'Inter', Roboto, sans-serif;\n ", "\n"])), function (
|
|
8708
|
-
var $accentColor = _ref5.$accentColor;
|
|
8709
|
-
return $accentColor;
|
|
8710
|
-
}, function (_ref6) {
|
|
8845
|
+
var SavingsCenter = styled.section(_templateObject15$2 || (_templateObject15$2 = _taggedTemplateLiteralLoose(["\n --accent: ", ";\n position: relative;\n width: 100%;\n border-radius: 0.85rem;\n border: 1px solid ", ";\n background: linear-gradient(165deg, #ffffff 0%, #fafcf7 45%, #f6f9f2 100%);\n overflow: hidden;\n box-shadow: 0 1px 2px rgba(16, 22, 10, 0.04),\n 0 8px 24px ", ";\n animation: ", " 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;\n font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI',\n 'Inter', Roboto, sans-serif;\n ", "\n"])), function (_ref6) {
|
|
8711
8846
|
var $accentColor = _ref6.$accentColor;
|
|
8712
|
-
return $accentColor
|
|
8847
|
+
return $accentColor;
|
|
8713
8848
|
}, function (_ref7) {
|
|
8714
8849
|
var $accentColor = _ref7.$accentColor;
|
|
8850
|
+
return $accentColor + "20";
|
|
8851
|
+
}, function (_ref8) {
|
|
8852
|
+
var $accentColor = _ref8.$accentColor;
|
|
8715
8853
|
return $accentColor + "10";
|
|
8716
8854
|
}, fadeSlideUp, reducedMotion);
|
|
8717
|
-
var AmbientGlow = styled.div(_templateObject16$2 || (_templateObject16$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: -40%;\n right: -15%;\n width: 55%;\n height: 80%;\n background: radial-gradient(\n circle,\n ", " 0%,\n transparent 70%\n );\n pointer-events: none;\n"])), function (
|
|
8718
|
-
var $accentColor =
|
|
8855
|
+
var AmbientGlow = styled.div(_templateObject16$2 || (_templateObject16$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: -40%;\n right: -15%;\n width: 55%;\n height: 80%;\n background: radial-gradient(\n circle,\n ", " 0%,\n transparent 70%\n );\n pointer-events: none;\n"])), function (_ref9) {
|
|
8856
|
+
var $accentColor = _ref9.$accentColor;
|
|
8719
8857
|
return $accentColor + "18";
|
|
8720
8858
|
});
|
|
8721
|
-
var Sparkle = styled.span(_templateObject17$2 || (_templateObject17$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: ", ";\n left: ", ";\n width: ", ";\n height: ", ";\n border-radius: 50%;\n background: ", ";\n box-shadow: 0 0 12px ", ";\n animation: ", " 4s ease-in-out infinite;\n animation-delay: ", ";\n pointer-events: none;\n opacity: 0.3;\n\n ", "\n"])), function (
|
|
8722
|
-
var $top =
|
|
8859
|
+
var Sparkle = styled.span(_templateObject17$2 || (_templateObject17$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: ", ";\n left: ", ";\n width: ", ";\n height: ", ";\n border-radius: 50%;\n background: ", ";\n box-shadow: 0 0 12px ", ";\n animation: ", " 4s ease-in-out infinite;\n animation-delay: ", ";\n pointer-events: none;\n opacity: 0.3;\n\n ", "\n"])), function (_ref10) {
|
|
8860
|
+
var $top = _ref10.$top;
|
|
8723
8861
|
return $top;
|
|
8724
|
-
}, function (_ref10) {
|
|
8725
|
-
var $left = _ref10.$left;
|
|
8726
|
-
return $left;
|
|
8727
8862
|
}, function (_ref11) {
|
|
8728
|
-
var $
|
|
8729
|
-
return $
|
|
8863
|
+
var $left = _ref11.$left;
|
|
8864
|
+
return $left;
|
|
8730
8865
|
}, function (_ref12) {
|
|
8731
8866
|
var $size = _ref12.$size;
|
|
8732
8867
|
return $size === 'sm' ? '4px' : '6px';
|
|
8733
8868
|
}, function (_ref13) {
|
|
8734
|
-
var $
|
|
8735
|
-
return $
|
|
8869
|
+
var $size = _ref13.$size;
|
|
8870
|
+
return $size === 'sm' ? '4px' : '6px';
|
|
8736
8871
|
}, function (_ref14) {
|
|
8737
8872
|
var $accentColor = _ref14.$accentColor;
|
|
8873
|
+
return $accentColor;
|
|
8874
|
+
}, function (_ref15) {
|
|
8875
|
+
var $accentColor = _ref15.$accentColor;
|
|
8738
8876
|
return $accentColor + "80";
|
|
8739
|
-
}, sparkleFloat, function (
|
|
8740
|
-
var $delay =
|
|
8877
|
+
}, sparkleFloat, function (_ref16) {
|
|
8878
|
+
var $delay = _ref16.$delay;
|
|
8741
8879
|
return $delay;
|
|
8742
8880
|
}, reducedMotion);
|
|
8743
|
-
var SectionHeader = styled.header(_templateObject18$2 || (_templateObject18$2 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.6rem;\n padding: 0.65rem 0.8rem;\n background: linear-gradient(\n 135deg,\n ", " 0%,\n ", " 55%,\n transparent 100%\n );\n border-bottom: 1px solid ", ";\n position: relative;\n overflow: hidden;\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(\n 105deg,\n transparent 38%,\n rgba(255, 255, 255, 0.45) 50%,\n transparent 62%\n );\n background-size: 200% 100%;\n animation: ", " 6s ease-in-out infinite;\n pointer-events: none;\n }\n\n ", "\n"])), function (
|
|
8744
|
-
var $accentColor = _ref16.$accentColor;
|
|
8745
|
-
return $accentColor + "16";
|
|
8746
|
-
}, function (_ref17) {
|
|
8881
|
+
var SectionHeader = styled.header(_templateObject18$2 || (_templateObject18$2 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.6rem;\n padding: 0.65rem 0.8rem;\n background: linear-gradient(\n 135deg,\n ", " 0%,\n ", " 55%,\n transparent 100%\n );\n border-bottom: 1px solid ", ";\n position: relative;\n overflow: hidden;\n\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(\n 105deg,\n transparent 38%,\n rgba(255, 255, 255, 0.45) 50%,\n transparent 62%\n );\n background-size: 200% 100%;\n animation: ", " 6s ease-in-out infinite;\n pointer-events: none;\n }\n\n ", "\n"])), function (_ref17) {
|
|
8747
8882
|
var $accentColor = _ref17.$accentColor;
|
|
8748
|
-
return $accentColor + "
|
|
8883
|
+
return $accentColor + "16";
|
|
8749
8884
|
}, function (_ref18) {
|
|
8750
8885
|
var $accentColor = _ref18.$accentColor;
|
|
8886
|
+
return $accentColor + "05";
|
|
8887
|
+
}, function (_ref19) {
|
|
8888
|
+
var $accentColor = _ref19.$accentColor;
|
|
8751
8889
|
return $accentColor + "12";
|
|
8752
8890
|
}, shimmer, reducedMotion);
|
|
8753
|
-
var HeaderIconWrap = styled.div(_templateObject19$2 || (_templateObject19$2 = _taggedTemplateLiteralLoose(["\n --icon-shadow: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border-radius: 0.55rem;\n flex-shrink: 0;\n color: #fff;\n background: linear-gradient(\n 145deg,\n ", " 0%,\n ", " 100%\n );\n box-shadow: 0 4px 12px var(--icon-shadow);\n z-index: 1;\n\n svg {\n font-size: 1.05rem;\n }\n"])), function (
|
|
8754
|
-
var $accentColor = _ref19.$accentColor;
|
|
8755
|
-
return $accentColor + "40";
|
|
8756
|
-
}, function (_ref20) {
|
|
8891
|
+
var HeaderIconWrap = styled.div(_templateObject19$2 || (_templateObject19$2 = _taggedTemplateLiteralLoose(["\n --icon-shadow: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border-radius: 0.55rem;\n flex-shrink: 0;\n color: #fff;\n background: linear-gradient(\n 145deg,\n ", " 0%,\n ", " 100%\n );\n box-shadow: 0 4px 12px var(--icon-shadow);\n z-index: 1;\n\n svg {\n font-size: 1.05rem;\n }\n"])), function (_ref20) {
|
|
8757
8892
|
var $accentColor = _ref20.$accentColor;
|
|
8758
|
-
return $accentColor;
|
|
8893
|
+
return $accentColor + "40";
|
|
8759
8894
|
}, function (_ref21) {
|
|
8760
8895
|
var $accentColor = _ref21.$accentColor;
|
|
8896
|
+
return $accentColor;
|
|
8897
|
+
}, function (_ref22) {
|
|
8898
|
+
var $accentColor = _ref22.$accentColor;
|
|
8761
8899
|
return $accentColor + "cc";
|
|
8762
8900
|
});
|
|
8763
8901
|
var HeaderCopy = styled.div(_templateObject20$1 || (_templateObject20$1 = _taggedTemplateLiteralLoose(["\n flex: 1;\n min-width: 0;\n z-index: 1;\n"])));
|
|
8764
|
-
var Eyebrow = styled.span(_templateObject21$1 || (_templateObject21$1 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: ", ";\n\n svg {\n font-size: 0.65rem;\n }\n"])), function (
|
|
8765
|
-
var $accentColor =
|
|
8902
|
+
var Eyebrow = styled.span(_templateObject21$1 || (_templateObject21$1 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: ", ";\n\n svg {\n font-size: 0.65rem;\n }\n"])), function (_ref23) {
|
|
8903
|
+
var $accentColor = _ref23.$accentColor;
|
|
8766
8904
|
return $accentColor;
|
|
8767
8905
|
});
|
|
8768
8906
|
var SectionHeading = styled.h3(_templateObject22$1 || (_templateObject22$1 = _taggedTemplateLiteralLoose(["\n margin: 0.1rem 0 0;\n font-size: 0.95rem;\n font-weight: 800;\n letter-spacing: -0.02em;\n color: #12180d;\n line-height: 1.2;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n"])));
|
|
8769
|
-
var OfferCountBadge = styled.div(_templateObject23$1 || (_templateObject23$1 = _taggedTemplateLiteralLoose(["\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n gap: 0.28rem;\n padding: 0.28rem 0.55rem;\n border-radius: 999px;\n background: rgba(18, 24, 13, 0.92);\n color: #f8fff0;\n font-size: 0.65rem;\n font-weight: 600;\n z-index: 1;\n\n strong {\n font-size: 0.82rem;\n font-weight: 800;\n line-height: 1;\n }\n\n svg {\n font-size: 0.72rem;\n color: ", ";\n }\n"])), function (
|
|
8770
|
-
var $accentColor =
|
|
8907
|
+
var OfferCountBadge = styled.div(_templateObject23$1 || (_templateObject23$1 = _taggedTemplateLiteralLoose(["\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n gap: 0.28rem;\n padding: 0.28rem 0.55rem;\n border-radius: 999px;\n background: rgba(18, 24, 13, 0.92);\n color: #f8fff0;\n font-size: 0.65rem;\n font-weight: 600;\n z-index: 1;\n\n strong {\n font-size: 0.82rem;\n font-weight: 800;\n line-height: 1;\n }\n\n svg {\n font-size: 0.72rem;\n color: ", ";\n }\n"])), function (_ref24) {
|
|
8908
|
+
var $accentColor = _ref24.$accentColor;
|
|
8771
8909
|
return $accentColor;
|
|
8772
8910
|
});
|
|
8773
8911
|
var OfferStack = styled.div(_templateObject24$1 || (_templateObject24$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding: 0.55rem;\n"])));
|
|
8774
|
-
var OfferCard = styled.article(_templateObject25$1 || (_templateObject25$1 = _taggedTemplateLiteralLoose(["\n border-radius: 0.7rem;\n border: 1px solid ", ";\n background: #fff;\n box-shadow: 0 1px 4px rgba(16, 20, 12, 0.04);\n opacity: 0;\n animation: ", " 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;\n animation-delay: ", "s;\n transition: box-shadow 0.2s ease, border-color 0.2s ease;\n overflow: hidden;\n\n &:hover {\n border-color: ", ";\n box-shadow: 0 4px 14px ", ";\n }\n\n &:focus-within {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n\n ", "\n"])), function (
|
|
8775
|
-
var $accentColor =
|
|
8912
|
+
var OfferCard = styled.article(_templateObject25$1 || (_templateObject25$1 = _taggedTemplateLiteralLoose(["\n border-radius: 0.7rem;\n border: 1px solid ", ";\n background: #fff;\n box-shadow: 0 1px 4px rgba(16, 20, 12, 0.04);\n opacity: 0;\n animation: ", " 0.38s cubic-bezier(0.22, 1, 0.36, 1) forwards;\n animation-delay: ", "s;\n transition: box-shadow 0.2s ease, border-color 0.2s ease;\n overflow: hidden;\n\n &:hover {\n border-color: ", ";\n box-shadow: 0 4px 14px ", ";\n }\n\n &:focus-within {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n\n ", "\n"])), function (_ref25) {
|
|
8913
|
+
var $accentColor = _ref25.$accentColor;
|
|
8776
8914
|
return $accentColor + "20";
|
|
8777
|
-
}, fadeSlideUp, function (
|
|
8778
|
-
var $index =
|
|
8915
|
+
}, fadeSlideUp, function (_ref26) {
|
|
8916
|
+
var $index = _ref26.$index;
|
|
8779
8917
|
return 0.06 + $index * 0.04;
|
|
8780
|
-
}, function (_ref26) {
|
|
8781
|
-
var $accentColor = _ref26.$accentColor;
|
|
8782
|
-
return $accentColor + "45";
|
|
8783
8918
|
}, function (_ref27) {
|
|
8784
8919
|
var $accentColor = _ref27.$accentColor;
|
|
8785
|
-
return $accentColor + "
|
|
8920
|
+
return $accentColor + "45";
|
|
8786
8921
|
}, function (_ref28) {
|
|
8787
8922
|
var $accentColor = _ref28.$accentColor;
|
|
8923
|
+
return $accentColor + "12";
|
|
8924
|
+
}, function (_ref29) {
|
|
8925
|
+
var $accentColor = _ref29.$accentColor;
|
|
8788
8926
|
return $accentColor + "50";
|
|
8789
8927
|
}, reducedMotion);
|
|
8790
8928
|
var CardBody = styled.div(_templateObject26$1 || (_templateObject26$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 0.35rem;\n padding: 0.6rem 0.65rem;\n"])));
|
|
8791
8929
|
var CardHeader = styled.div(_templateObject27$1 || (_templateObject27$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: flex-start;\n gap: 0.55rem;\n"])));
|
|
8792
8930
|
var CardHeaderCopy = styled.div(_templateObject28$1 || (_templateObject28$1 = _taggedTemplateLiteralLoose(["\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0.15rem;\n"])));
|
|
8793
|
-
var SavingsBadge = styled.div(_templateObject29$1 || (_templateObject29$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-width: 3.1rem;\n padding: 0.3rem 0.35rem;\n border-radius: 0.5rem;\n flex-shrink: 0;\n text-align: center;\n color: #fff;\n line-height: 1;\n background: ", ";\n box-shadow: 0 3px 10px ", ";\n"])), function (
|
|
8794
|
-
var $accentColor =
|
|
8795
|
-
$variant =
|
|
8931
|
+
var SavingsBadge = styled.div(_templateObject29$1 || (_templateObject29$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-width: 3.1rem;\n padding: 0.3rem 0.35rem;\n border-radius: 0.5rem;\n flex-shrink: 0;\n text-align: center;\n color: #fff;\n line-height: 1;\n background: ", ";\n box-shadow: 0 3px 10px ", ";\n"])), function (_ref30) {
|
|
8932
|
+
var $accentColor = _ref30.$accentColor,
|
|
8933
|
+
$variant = _ref30.$variant;
|
|
8796
8934
|
if ($variant === 'gift') {
|
|
8797
8935
|
return "linear-gradient(145deg, #e8a317 0%, #c47d0a 100%)";
|
|
8798
8936
|
}
|
|
@@ -8800,152 +8938,152 @@ var SavingsBadge = styled.div(_templateObject29$1 || (_templateObject29$1 = _tag
|
|
|
8800
8938
|
return "linear-gradient(145deg, " + $accentColor + " 0%, #2d5f0a 100%)";
|
|
8801
8939
|
}
|
|
8802
8940
|
return "linear-gradient(145deg, " + $accentColor + " 0%, " + $accentColor + "cc 100%)";
|
|
8803
|
-
}, function (
|
|
8804
|
-
var $accentColor =
|
|
8941
|
+
}, function (_ref31) {
|
|
8942
|
+
var $accentColor = _ref31.$accentColor;
|
|
8805
8943
|
return $accentColor + "28";
|
|
8806
8944
|
});
|
|
8807
8945
|
var BadgeTop = styled.span(_templateObject30$1 || (_templateObject30$1 = _taggedTemplateLiteralLoose(["\n font-size: 0.82rem;\n font-weight: 900;\n letter-spacing: -0.02em;\n"])));
|
|
8808
8946
|
var BadgeBottom = styled.span(_templateObject31$1 || (_templateObject31$1 = _taggedTemplateLiteralLoose(["\n margin-top: 0.1rem;\n font-size: 0.52rem;\n font-weight: 800;\n letter-spacing: 0.08em;\n opacity: 0.92;\n"])));
|
|
8809
8947
|
var CardMetaRow = styled.div(_templateObject32$1 || (_templateObject32$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.28rem;\n"])));
|
|
8810
|
-
var TypePill = styled.span(_templateObject33$1 || (_templateObject33$1 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n gap: 0.22rem;\n padding: 0.12rem 0.4rem;\n border-radius: 999px;\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: ", ";\n background: ", ";\n border: 1px solid ", ";\n\n svg {\n font-size: 0.65rem;\n }\n"])), function (
|
|
8811
|
-
var $accentColor = _ref31.$accentColor;
|
|
8812
|
-
return $accentColor;
|
|
8813
|
-
}, function (_ref32) {
|
|
8948
|
+
var TypePill = styled.span(_templateObject33$1 || (_templateObject33$1 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n gap: 0.22rem;\n padding: 0.12rem 0.4rem;\n border-radius: 999px;\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: ", ";\n background: ", ";\n border: 1px solid ", ";\n\n svg {\n font-size: 0.65rem;\n }\n"])), function (_ref32) {
|
|
8814
8949
|
var $accentColor = _ref32.$accentColor;
|
|
8815
|
-
return $accentColor
|
|
8950
|
+
return $accentColor;
|
|
8816
8951
|
}, function (_ref33) {
|
|
8817
8952
|
var $accentColor = _ref33.$accentColor;
|
|
8953
|
+
return $accentColor + "10";
|
|
8954
|
+
}, function (_ref34) {
|
|
8955
|
+
var $accentColor = _ref34.$accentColor;
|
|
8818
8956
|
return $accentColor + "22";
|
|
8819
8957
|
});
|
|
8820
|
-
var QualifiedPill = styled.span(_templateObject34$1 || (_templateObject34$1 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n gap: 0.2rem;\n padding: 0.12rem 0.4rem;\n border-radius: 999px;\n font-size: 0.6rem;\n font-weight: 700;\n color: ", ";\n background: ", ";\n border: 1px solid ", ";\n\n svg {\n font-size: 0.62rem;\n }\n"])), function (
|
|
8821
|
-
var $accentColor = _ref34.$accentColor;
|
|
8822
|
-
return $accentColor;
|
|
8823
|
-
}, function (_ref35) {
|
|
8958
|
+
var QualifiedPill = styled.span(_templateObject34$1 || (_templateObject34$1 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n gap: 0.2rem;\n padding: 0.12rem 0.4rem;\n border-radius: 999px;\n font-size: 0.6rem;\n font-weight: 700;\n color: ", ";\n background: ", ";\n border: 1px solid ", ";\n\n svg {\n font-size: 0.62rem;\n }\n"])), function (_ref35) {
|
|
8824
8959
|
var $accentColor = _ref35.$accentColor;
|
|
8825
|
-
return $accentColor
|
|
8960
|
+
return $accentColor;
|
|
8826
8961
|
}, function (_ref36) {
|
|
8827
8962
|
var $accentColor = _ref36.$accentColor;
|
|
8963
|
+
return $accentColor + "12";
|
|
8964
|
+
}, function (_ref37) {
|
|
8965
|
+
var $accentColor = _ref37.$accentColor;
|
|
8828
8966
|
return $accentColor + "30";
|
|
8829
8967
|
});
|
|
8830
8968
|
var TitleRow = styled.div(_templateObject35 || (_templateObject35 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.45rem;\n min-width: 0;\n flex-wrap: wrap;\n"])));
|
|
8831
8969
|
var OfferTitle = styled.h4(_templateObject36 || (_templateObject36 = _taggedTemplateLiteralLoose(["\n margin: 0;\n flex: 1;\n min-width: 0;\n font-size: 0.88rem;\n font-weight: 800;\n letter-spacing: -0.015em;\n color: #141a10;\n line-height: 1.25;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n"])));
|
|
8832
8970
|
var OfferDescription = styled.p(_templateObject37 || (_templateObject37 = _taggedTemplateLiteralLoose(["\n margin: 0;\n font-size: 0.74rem;\n font-weight: 500;\n color: #4a5540;\n line-height: 1.35;\n"])));
|
|
8833
|
-
var BuyXTimeline = styled.div(_templateObject38 || (_templateObject38 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.4rem 0.55rem;\n border-radius: 0.5rem;\n background: ", ";\n border: 1px solid ", ";\n"])), function (
|
|
8834
|
-
var $accentColor = _ref37.$accentColor;
|
|
8835
|
-
return $accentColor + "07";
|
|
8836
|
-
}, function (_ref38) {
|
|
8971
|
+
var BuyXTimeline = styled.div(_templateObject38 || (_templateObject38 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.4rem 0.55rem;\n border-radius: 0.5rem;\n background: ", ";\n border: 1px solid ", ";\n"])), function (_ref38) {
|
|
8837
8972
|
var $accentColor = _ref38.$accentColor;
|
|
8973
|
+
return $accentColor + "07";
|
|
8974
|
+
}, function (_ref39) {
|
|
8975
|
+
var $accentColor = _ref39.$accentColor;
|
|
8838
8976
|
return $accentColor + "14";
|
|
8839
8977
|
});
|
|
8840
8978
|
var TimelineStep = styled.div(_templateObject39 || (_templateObject39 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.25rem;\n min-width: 0;\n"])));
|
|
8841
|
-
var TimelineIcon = styled.div(_templateObject40 || (_templateObject40 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.45rem;\n height: 1.45rem;\n border-radius: 0.35rem;\n color: ", ";\n background: ", ";\n\n svg {\n font-size: 0.72rem;\n }\n"])), function (
|
|
8842
|
-
var $accentColor = _ref39.$accentColor,
|
|
8843
|
-
$highlight = _ref39.$highlight;
|
|
8844
|
-
return $highlight ? '#fff' : $accentColor;
|
|
8845
|
-
}, function (_ref40) {
|
|
8979
|
+
var TimelineIcon = styled.div(_templateObject40 || (_templateObject40 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.45rem;\n height: 1.45rem;\n border-radius: 0.35rem;\n color: ", ";\n background: ", ";\n\n svg {\n font-size: 0.72rem;\n }\n"])), function (_ref40) {
|
|
8846
8980
|
var $accentColor = _ref40.$accentColor,
|
|
8847
8981
|
$highlight = _ref40.$highlight;
|
|
8982
|
+
return $highlight ? '#fff' : $accentColor;
|
|
8983
|
+
}, function (_ref41) {
|
|
8984
|
+
var $accentColor = _ref41.$accentColor,
|
|
8985
|
+
$highlight = _ref41.$highlight;
|
|
8848
8986
|
return $highlight ? $accentColor : $accentColor + "14";
|
|
8849
8987
|
});
|
|
8850
8988
|
var TimelineLabel = styled.span(_templateObject41 || (_templateObject41 = _taggedTemplateLiteralLoose(["\n font-size: 0.65rem;\n font-weight: 700;\n color: #3a4334;\n white-space: nowrap;\n"])));
|
|
8851
8989
|
var TimelineTrack = styled.div(_templateObject42 || (_templateObject42 = _taggedTemplateLiteralLoose(["\n flex: 1;\n display: flex;\n align-items: center;\n min-width: 2rem;\n padding: 0 0.15rem;\n"])));
|
|
8852
|
-
var TimelineArrow = styled.div(_templateObject43 || (_templateObject43 = _taggedTemplateLiteralLoose(["\n width: 100%;\n height: 2px;\n border-radius: 999px;\n background: linear-gradient(\n 90deg,\n ", ",\n ", "\n );\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n right: -1px;\n top: 50%;\n transform: translateY(-50%);\n border: 5px solid transparent;\n border-left-color: ", ";\n }\n"])), function (
|
|
8853
|
-
var $accentColor = _ref41.$accentColor;
|
|
8854
|
-
return $accentColor + "44";
|
|
8855
|
-
}, function (_ref42) {
|
|
8990
|
+
var TimelineArrow = styled.div(_templateObject43 || (_templateObject43 = _taggedTemplateLiteralLoose(["\n width: 100%;\n height: 2px;\n border-radius: 999px;\n background: linear-gradient(\n 90deg,\n ", ",\n ", "\n );\n position: relative;\n\n &::after {\n content: '';\n position: absolute;\n right: -1px;\n top: 50%;\n transform: translateY(-50%);\n border: 5px solid transparent;\n border-left-color: ", ";\n }\n"])), function (_ref42) {
|
|
8856
8991
|
var $accentColor = _ref42.$accentColor;
|
|
8857
|
-
return $accentColor;
|
|
8992
|
+
return $accentColor + "44";
|
|
8858
8993
|
}, function (_ref43) {
|
|
8859
8994
|
var $accentColor = _ref43.$accentColor;
|
|
8860
8995
|
return $accentColor;
|
|
8996
|
+
}, function (_ref44) {
|
|
8997
|
+
var $accentColor = _ref44.$accentColor;
|
|
8998
|
+
return $accentColor;
|
|
8861
8999
|
});
|
|
8862
9000
|
var ProgressBlock = styled.div(_templateObject44 || (_templateObject44 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n"])));
|
|
8863
9001
|
var ProgressTrack = styled.div(_templateObject45 || (_templateObject45 = _taggedTemplateLiteralLoose(["\n width: 100%;\n height: 0.35rem;\n border-radius: 999px;\n background: #e8ede3;\n overflow: hidden;\n"])));
|
|
8864
|
-
var ProgressFill = styled.div(_templateObject46 || (_templateObject46 = _taggedTemplateLiteralLoose(["\n height: 100%;\n width: ", "%;\n border-radius: 999px;\n background: linear-gradient(\n 90deg,\n ", " 0%,\n ", " 100%\n );\n animation: ", " 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;\n transition: width 0.4s ease;\n\n ", "\n"])), function (
|
|
8865
|
-
var $percent =
|
|
9002
|
+
var ProgressFill = styled.div(_templateObject46 || (_templateObject46 = _taggedTemplateLiteralLoose(["\n height: 100%;\n width: ", "%;\n border-radius: 999px;\n background: linear-gradient(\n 90deg,\n ", " 0%,\n ", " 100%\n );\n animation: ", " 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;\n transition: width 0.4s ease;\n\n ", "\n"])), function (_ref45) {
|
|
9003
|
+
var $percent = _ref45.$percent;
|
|
8866
9004
|
return $percent;
|
|
8867
|
-
}, function (_ref45) {
|
|
8868
|
-
var $accentColor = _ref45.$accentColor;
|
|
8869
|
-
return $accentColor + "cc";
|
|
8870
9005
|
}, function (_ref46) {
|
|
8871
9006
|
var $accentColor = _ref46.$accentColor;
|
|
9007
|
+
return $accentColor + "cc";
|
|
9008
|
+
}, function (_ref47) {
|
|
9009
|
+
var $accentColor = _ref47.$accentColor;
|
|
8872
9010
|
return $accentColor;
|
|
8873
9011
|
}, progressGrow, reducedMotion);
|
|
8874
9012
|
var ProgressMeta = styled.div(_templateObject47 || (_templateObject47 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 0.2rem 0.5rem;\n"])));
|
|
8875
9013
|
var ProgressCount = styled.div(_templateObject48 || (_templateObject48 = _taggedTemplateLiteralLoose(["\n font-size: 0.7rem;\n font-weight: 600;\n color: #2f3829;\n\n strong {\n font-size: 0.78rem;\n font-weight: 800;\n }\n\n span {\n color: #6a7364;\n }\n"])));
|
|
8876
9014
|
var ProgressHint = styled.span(_templateObject49 || (_templateObject49 = _taggedTemplateLiteralLoose(["\n font-size: 0.68rem;\n font-weight: 600;\n color: #7a5e12;\n line-height: 1.3;\n"])));
|
|
8877
|
-
var SuccessBanner = styled.div(_templateObject50 || (_templateObject50 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.3rem;\n padding: 0.32rem 0.5rem;\n border-radius: 0.45rem;\n font-size: 0.7rem;\n font-weight: 600;\n color: ", ";\n background: ", ";\n border: 1px solid ", ";\n\n svg {\n flex-shrink: 0;\n font-size: 0.75rem;\n }\n"])), function (
|
|
8878
|
-
var $accentColor = _ref47.$accentColor;
|
|
8879
|
-
return $accentColor;
|
|
8880
|
-
}, function (_ref48) {
|
|
9015
|
+
var SuccessBanner = styled.div(_templateObject50 || (_templateObject50 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.3rem;\n padding: 0.32rem 0.5rem;\n border-radius: 0.45rem;\n font-size: 0.7rem;\n font-weight: 600;\n color: ", ";\n background: ", ";\n border: 1px solid ", ";\n\n svg {\n flex-shrink: 0;\n font-size: 0.75rem;\n }\n"])), function (_ref48) {
|
|
8881
9016
|
var $accentColor = _ref48.$accentColor;
|
|
8882
|
-
return $accentColor
|
|
9017
|
+
return $accentColor;
|
|
8883
9018
|
}, function (_ref49) {
|
|
8884
9019
|
var $accentColor = _ref49.$accentColor;
|
|
9020
|
+
return $accentColor + "10";
|
|
9021
|
+
}, function (_ref50) {
|
|
9022
|
+
var $accentColor = _ref50.$accentColor;
|
|
8885
9023
|
return $accentColor + "25";
|
|
8886
9024
|
});
|
|
8887
9025
|
var StatusList = styled.div(_templateObject51 || (_templateObject51 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n"])));
|
|
8888
|
-
var StatusItem = styled.div(_templateObject52 || (_templateObject52 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: flex-start;\n gap: 0.3rem;\n padding: 0.28rem 0.45rem;\n border-radius: 0.45rem;\n font-size: 0.7rem;\n font-weight: 600;\n line-height: 1.35;\n opacity: 0;\n animation: ", " 0.28s ease forwards;\n animation-delay: ", "s;\n\n background-color: ", ";\n\n color: ", ";\n\n border: 1px solid\n ", ";\n\n svg {\n flex-shrink: 0;\n margin-top: 0.1rem;\n font-size: 0.82rem;\n }\n\n ", "\n"])), chipIn, function (
|
|
8889
|
-
var $chipIndex =
|
|
9026
|
+
var StatusItem = styled.div(_templateObject52 || (_templateObject52 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: flex-start;\n gap: 0.3rem;\n padding: 0.28rem 0.45rem;\n border-radius: 0.45rem;\n font-size: 0.7rem;\n font-weight: 600;\n line-height: 1.35;\n opacity: 0;\n animation: ", " 0.28s ease forwards;\n animation-delay: ", "s;\n\n background-color: ", ";\n\n color: ", ";\n\n border: 1px solid\n ", ";\n\n svg {\n flex-shrink: 0;\n margin-top: 0.1rem;\n font-size: 0.82rem;\n }\n\n ", "\n"])), chipIn, function (_ref51) {
|
|
9027
|
+
var $chipIndex = _ref51.$chipIndex;
|
|
8890
9028
|
return 0.1 + $chipIndex * 0.05;
|
|
8891
|
-
}, function (_ref51) {
|
|
8892
|
-
var $accentColor = _ref51.$accentColor,
|
|
8893
|
-
$tone = _ref51.$tone;
|
|
8894
|
-
if ($tone === 'warning') return '#fff8eb';
|
|
8895
|
-
if ($tone === 'success') return $accentColor + "10";
|
|
8896
|
-
return '#f4f6f1';
|
|
8897
9029
|
}, function (_ref52) {
|
|
8898
9030
|
var $accentColor = _ref52.$accentColor,
|
|
8899
9031
|
$tone = _ref52.$tone;
|
|
8900
|
-
if ($tone === 'warning') return '#
|
|
8901
|
-
if ($tone === 'success') return $accentColor;
|
|
8902
|
-
return '#
|
|
9032
|
+
if ($tone === 'warning') return '#fff8eb';
|
|
9033
|
+
if ($tone === 'success') return $accentColor + "10";
|
|
9034
|
+
return '#f4f6f1';
|
|
8903
9035
|
}, function (_ref53) {
|
|
8904
9036
|
var $accentColor = _ref53.$accentColor,
|
|
8905
9037
|
$tone = _ref53.$tone;
|
|
9038
|
+
if ($tone === 'warning') return '#8a6400';
|
|
9039
|
+
if ($tone === 'success') return $accentColor;
|
|
9040
|
+
return '#45503c';
|
|
9041
|
+
}, function (_ref54) {
|
|
9042
|
+
var $accentColor = _ref54.$accentColor,
|
|
9043
|
+
$tone = _ref54.$tone;
|
|
8906
9044
|
if ($tone === 'warning') return '#f0d48a';
|
|
8907
9045
|
if ($tone === 'success') return $accentColor + "28";
|
|
8908
9046
|
return '#e0e5da';
|
|
8909
9047
|
}, reducedMotion);
|
|
8910
9048
|
var GiftSection = styled.div(_templateObject53 || (_templateObject53 = _taggedTemplateLiteralLoose(["\n padding-top: 0.35rem;\n border-top: 1px solid #eef1e9;\n"])));
|
|
8911
|
-
var GiftSectionHeader = styled.div(_templateObject54 || (_templateObject54 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.28rem;\n margin-bottom: 0.3rem;\n font-size: 0.62rem;\n font-weight: 800;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: ", ";\n\n svg {\n font-size: 0.72rem;\n }\n"])), function (
|
|
8912
|
-
var $accentColor =
|
|
9049
|
+
var GiftSectionHeader = styled.div(_templateObject54 || (_templateObject54 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.28rem;\n margin-bottom: 0.3rem;\n font-size: 0.62rem;\n font-weight: 800;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: ", ";\n\n svg {\n font-size: 0.72rem;\n }\n"])), function (_ref55) {
|
|
9050
|
+
var $accentColor = _ref55.$accentColor;
|
|
8913
9051
|
return $accentColor;
|
|
8914
9052
|
});
|
|
8915
9053
|
var GiftList = styled.div(_templateObject55 || (_templateObject55 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 0.22rem;\n"])));
|
|
8916
|
-
var GiftLink = styled.a(_templateObject56 || (_templateObject56 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.35rem;\n padding: 0.32rem 0.45rem;\n border-radius: 0.4rem;\n border: 1px solid ", ";\n background: #fafcf8;\n color: #2a3325;\n font-size: 0.72rem;\n font-weight: 600;\n line-height: 1.3;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 0.18s ease, border-color 0.18s ease;\n\n span {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n flex-shrink: 0;\n font-size: 0.72rem;\n color: ", ";\n transition: transform 0.18s ease;\n }\n\n &:hover {\n border-color: ", ";\n background: ", ";\n\n svg {\n transform: translateX(2px);\n }\n }\n\n &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n\n ", "\n"])), function (
|
|
8917
|
-
var $accentColor = _ref55.$accentColor;
|
|
8918
|
-
return $accentColor + "1e";
|
|
8919
|
-
}, function (_ref56) {
|
|
9054
|
+
var GiftLink = styled.a(_templateObject56 || (_templateObject56 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.35rem;\n padding: 0.32rem 0.45rem;\n border-radius: 0.4rem;\n border: 1px solid ", ";\n background: #fafcf8;\n color: #2a3325;\n font-size: 0.72rem;\n font-weight: 600;\n line-height: 1.3;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 0.18s ease, border-color 0.18s ease;\n\n span {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n flex-shrink: 0;\n font-size: 0.72rem;\n color: ", ";\n transition: transform 0.18s ease;\n }\n\n &:hover {\n border-color: ", ";\n background: ", ";\n\n svg {\n transform: translateX(2px);\n }\n }\n\n &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n\n ", "\n"])), function (_ref56) {
|
|
8920
9055
|
var $accentColor = _ref56.$accentColor;
|
|
8921
|
-
return $accentColor;
|
|
9056
|
+
return $accentColor + "1e";
|
|
8922
9057
|
}, function (_ref57) {
|
|
8923
9058
|
var $accentColor = _ref57.$accentColor;
|
|
8924
9059
|
return $accentColor;
|
|
8925
9060
|
}, function (_ref58) {
|
|
8926
9061
|
var $accentColor = _ref58.$accentColor;
|
|
8927
|
-
return $accentColor
|
|
9062
|
+
return $accentColor;
|
|
8928
9063
|
}, function (_ref59) {
|
|
8929
9064
|
var $accentColor = _ref59.$accentColor;
|
|
9065
|
+
return $accentColor + "08";
|
|
9066
|
+
}, function (_ref60) {
|
|
9067
|
+
var $accentColor = _ref60.$accentColor;
|
|
8930
9068
|
return $accentColor;
|
|
8931
9069
|
}, reducedMotion);
|
|
8932
9070
|
var CodeRow = styled.div(_templateObject57 || (_templateObject57 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n gap: 0.3rem;\n flex-shrink: 0;\n"])));
|
|
8933
|
-
var CodeValue = styled.code(_templateObject58 || (_templateObject58 = _taggedTemplateLiteralLoose(["\n min-width: 0;\n max-width: 8.5rem;\n padding: 0.28rem 0.45rem;\n border-radius: 0.4rem;\n border: 1.5px dashed ", ";\n background: #fff;\n font-family: 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace;\n font-size: 0.68rem;\n font-weight: 800;\n letter-spacing: 0.04em;\n color: #141a10;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n"])), function (
|
|
8934
|
-
var $accentColor =
|
|
9071
|
+
var CodeValue = styled.code(_templateObject58 || (_templateObject58 = _taggedTemplateLiteralLoose(["\n min-width: 0;\n max-width: 8.5rem;\n padding: 0.28rem 0.45rem;\n border-radius: 0.4rem;\n border: 1.5px dashed ", ";\n background: #fff;\n font-family: 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace;\n font-size: 0.68rem;\n font-weight: 800;\n letter-spacing: 0.04em;\n color: #141a10;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n"])), function (_ref61) {
|
|
9072
|
+
var $accentColor = _ref61.$accentColor;
|
|
8935
9073
|
return $accentColor;
|
|
8936
9074
|
});
|
|
8937
|
-
var PrimaryCopyButton = styled.button(_templateObject59 || (_templateObject59 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.22rem;\n flex-shrink: 0;\n height: 1.7rem;\n padding: 0 0.55rem;\n border: none;\n border-radius: 0.4rem;\n font-size: 0.68rem;\n font-weight: 800;\n color: #fff;\n cursor: pointer;\n background: ", ";\n box-shadow: 0 2px 8px ", ";\n transition: transform 0.15s ease, background 0.2s ease;\n animation: ", " 0.35s ease;\n\n svg {\n font-size: 0.72rem;\n }\n\n &:hover {\n transform: translateY(-1px);\n }\n\n &:active {\n transform: scale(0.98);\n }\n\n &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: 2px;\n }\n\n ", "\n"])), function (
|
|
8938
|
-
var $accentColor =
|
|
8939
|
-
$copied =
|
|
9075
|
+
var PrimaryCopyButton = styled.button(_templateObject59 || (_templateObject59 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.22rem;\n flex-shrink: 0;\n height: 1.7rem;\n padding: 0 0.55rem;\n border: none;\n border-radius: 0.4rem;\n font-size: 0.68rem;\n font-weight: 800;\n color: #fff;\n cursor: pointer;\n background: ", ";\n box-shadow: 0 2px 8px ", ";\n transition: transform 0.15s ease, background 0.2s ease;\n animation: ", " 0.35s ease;\n\n svg {\n font-size: 0.72rem;\n }\n\n &:hover {\n transform: translateY(-1px);\n }\n\n &:active {\n transform: scale(0.98);\n }\n\n &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: 2px;\n }\n\n ", "\n"])), function (_ref62) {
|
|
9076
|
+
var $accentColor = _ref62.$accentColor,
|
|
9077
|
+
$copied = _ref62.$copied;
|
|
8940
9078
|
return $copied ? "linear-gradient(145deg, " + $accentColor + " 0%, " + $accentColor + "dd 100%)" : 'linear-gradient(145deg, #1a2114 0%, #0f140c 100%)';
|
|
8941
|
-
}, function (_ref62) {
|
|
8942
|
-
var $accentColor = _ref62.$accentColor;
|
|
8943
|
-
return $accentColor + "28";
|
|
8944
9079
|
}, function (_ref63) {
|
|
8945
|
-
var $
|
|
8946
|
-
return $
|
|
9080
|
+
var $accentColor = _ref63.$accentColor;
|
|
9081
|
+
return $accentColor + "28";
|
|
8947
9082
|
}, function (_ref64) {
|
|
8948
|
-
var $
|
|
9083
|
+
var $copied = _ref64.$copied;
|
|
9084
|
+
return $copied ? copyPop : 'none';
|
|
9085
|
+
}, function (_ref65) {
|
|
9086
|
+
var $accentColor = _ref65.$accentColor;
|
|
8949
9087
|
return $accentColor;
|
|
8950
9088
|
}, reducedMotion);
|
|
8951
9089
|
|
|
@@ -9193,7 +9331,7 @@ var CardRow = function CardRow(_ref3) {
|
|
|
9193
9331
|
discountName: row === null || row === void 0 ? void 0 : row.couponCode
|
|
9194
9332
|
}), showDiscountSuggestions && showDiscountButton && firstSuggestion && /*#__PURE__*/React__default.createElement(DiscountSuggestionPreview, {
|
|
9195
9333
|
coupon: firstSuggestion,
|
|
9196
|
-
productPrice: (row === null || row === void 0 ? void 0 : row.standardPrice) || 0,
|
|
9334
|
+
productPrice: (row === null || row === void 0 ? void 0 : row.tierPrice) || (row === null || row === void 0 ? void 0 : row.standardPrice) || 0,
|
|
9197
9335
|
cartQuantity: (row === null || row === void 0 ? void 0 : row.quantity) || 0,
|
|
9198
9336
|
primaryColor: accentColor,
|
|
9199
9337
|
loading: loading,
|
|
@@ -9297,7 +9435,7 @@ var CardRow = function CardRow(_ref3) {
|
|
|
9297
9435
|
productDiscounts: productDiscounts,
|
|
9298
9436
|
primaryColor: accentColor,
|
|
9299
9437
|
cartQuantity: (row === null || row === void 0 ? void 0 : row.quantity) || 0,
|
|
9300
|
-
productPrice: (row === null || row === void 0 ? void 0 : row.standardPrice) || 0
|
|
9438
|
+
productPrice: (row === null || row === void 0 ? void 0 : row.tierPrice) || (row === null || row === void 0 ? void 0 : row.standardPrice) || 0
|
|
9301
9439
|
})));
|
|
9302
9440
|
};
|
|
9303
9441
|
|
|
@@ -9751,7 +9889,7 @@ var CartPageProductCard = function CartPageProductCard(_ref3) {
|
|
|
9751
9889
|
discountAmount: item === null || item === void 0 ? void 0 : item.discountAmount
|
|
9752
9890
|
}))), showDiscountSuggestions && showDiscountButton && firstSuggestion && /*#__PURE__*/React__default.createElement(DiscountSuggestionPreview, {
|
|
9753
9891
|
coupon: firstSuggestion,
|
|
9754
|
-
productPrice: (item === null || item === void 0 ? void 0 : item.standardPrice) || 0,
|
|
9892
|
+
productPrice: (item === null || item === void 0 ? void 0 : item.tierPrice) || (item === null || item === void 0 ? void 0 : item.standardPrice) || 0,
|
|
9755
9893
|
cartQuantity: (item === null || item === void 0 ? void 0 : item.quantity) || 0,
|
|
9756
9894
|
primaryColor: accentColor,
|
|
9757
9895
|
loading: loading,
|
|
@@ -9815,7 +9953,7 @@ var CartPageProductCard = function CartPageProductCard(_ref3) {
|
|
|
9815
9953
|
productDiscounts: productDiscounts,
|
|
9816
9954
|
primaryColor: accentColor,
|
|
9817
9955
|
cartQuantity: (item === null || item === void 0 ? void 0 : item.quantity) || 0,
|
|
9818
|
-
productPrice: (item === null || item === void 0 ? void 0 : item.standardPrice) || 0
|
|
9956
|
+
productPrice: (item === null || item === void 0 ? void 0 : item.tierPrice) || (item === null || item === void 0 ? void 0 : item.standardPrice) || 0
|
|
9819
9957
|
}));
|
|
9820
9958
|
};
|
|
9821
9959
|
|
|
@@ -13632,7 +13770,7 @@ var Step2 = function Step2(_ref) {
|
|
|
13632
13770
|
icon: /*#__PURE__*/React__default.createElement(FiTruck, {
|
|
13633
13771
|
className: "icon"
|
|
13634
13772
|
})
|
|
13635
|
-
}), /*#__PURE__*/React__default.createElement(StepsContent, null, showShipping && /*#__PURE__*/React__default.createElement(
|
|
13773
|
+
}), /*#__PURE__*/React__default.createElement(StepsContent, null, showShipping && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Grid, {
|
|
13636
13774
|
container: true
|
|
13637
13775
|
}, /*#__PURE__*/React__default.createElement(Grid, {
|
|
13638
13776
|
item: true,
|