hey-pharmacist-ecommerce 1.1.42 → 1.1.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -8
- package/dist/index.d.mts +2550 -3081
- package/dist/index.d.ts +2550 -3081
- package/dist/index.js +506 -399
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +506 -397
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/components/AccountOverviewTab.tsx +5 -5
- package/src/components/AccountReviewsTab.tsx +4 -4
- package/src/components/CartItem.tsx +15 -15
- package/src/components/Header.tsx +1 -1
- package/src/components/Notification.tsx +3 -3
- package/src/components/OrderCard.tsx +1 -1
- package/src/components/ProductCard.tsx +11 -11
- package/src/components/QuickViewModal.tsx +16 -16
- package/src/components/RatingDistribution.tsx +2 -2
- package/src/components/ReviewCard.tsx +2 -2
- package/src/components/ReviewForm.tsx +3 -3
- package/src/components/ReviewPromptBanner.tsx +4 -4
- package/src/components/ReviewsList.tsx +9 -11
- package/src/components/StarRating.tsx +3 -3
- package/src/hooks/useProducts.ts +0 -1
- package/src/hooks/useSmartSearch.ts +68 -0
- package/src/lib/Apis/api.ts +1 -1
- package/src/lib/Apis/apis/analytics-api.ts +809 -0
- package/src/lib/Apis/apis/notifications-api.ts +8 -6
- package/src/lib/Apis/apis/products-api.ts +390 -15
- package/src/lib/Apis/apis/stores-api.ts +26 -149
- package/src/lib/Apis/apis/web-hooks-api.ts +8 -17
- package/src/lib/Apis/models/analytics-period-dto.ts +45 -0
- package/src/lib/Apis/models/appointment-overview-dto.ts +71 -0
- package/src/lib/Apis/models/category-sales-dto.ts +51 -0
- package/src/lib/Apis/models/create-store-dto.ts +12 -0
- package/src/lib/Apis/models/customer-overview-dto.ts +96 -0
- package/src/lib/Apis/models/{country-stats-response-dto.ts → customer-segment-dto.ts} +12 -13
- package/src/lib/Apis/models/dashboard-overview-dto.ts +70 -0
- package/src/lib/Apis/models/discount-overview-dto.ts +71 -0
- package/src/lib/Apis/models/group-with-no-users-dto.ts +0 -6
- package/src/lib/Apis/models/group-with-users-dto.ts +0 -6
- package/src/lib/Apis/models/index.ts +29 -38
- package/src/lib/Apis/models/{single-recipient-dto.ts → inline-response200.ts} +11 -10
- package/src/lib/Apis/models/{create-contact-dto.ts → inline-response2001.ts} +11 -11
- package/src/lib/Apis/models/inventory-alert-dto.ts +67 -0
- package/src/lib/Apis/models/notification-dto.ts +107 -0
- package/src/lib/Apis/models/notifications-paginated-response-dto.ts +58 -0
- package/src/lib/Apis/models/order-overview-dto.ts +89 -0
- package/src/lib/Apis/models/{single-link-stats-dto.ts → order-status-count-dto.ts} +10 -10
- package/src/lib/Apis/models/order.ts +0 -6
- package/src/lib/Apis/models/payout-history-item-dto.ts +45 -0
- package/src/lib/Apis/models/{single-country-stats-dto.ts → popular-time-slot-dto.ts} +10 -10
- package/src/lib/Apis/models/populated-order.ts +0 -6
- package/src/lib/Apis/models/preference-update-item.ts +1 -0
- package/src/lib/Apis/models/product-overview-dto.ts +90 -0
- package/src/lib/Apis/models/product.ts +6 -0
- package/src/lib/Apis/models/{create-contact-list-dto.ts → products-aidraft-body.ts} +4 -4
- package/src/lib/Apis/models/{schedule-campaign-draft-dto.ts → products-processimage-body.ts} +5 -5
- package/src/lib/Apis/models/{contact-full-response-dto.ts → rating-distribution-dto.ts} +9 -10
- package/src/lib/Apis/models/recent-review-dto.ts +63 -0
- package/src/lib/Apis/models/review-overview-dto.ts +65 -0
- package/src/lib/Apis/models/store-balance-dto.ts +39 -0
- package/src/lib/Apis/models/store-entity.ts +12 -0
- package/src/lib/Apis/models/{link-stats-response-dto.ts → store-finance-overview-dto.ts} +10 -15
- package/src/lib/Apis/models/store.ts +12 -0
- package/src/lib/Apis/models/{add-contact-to-list-dto.ts → time-series-point-dto.ts} +9 -9
- package/src/lib/Apis/models/{create-email-template-dto.ts → top-customer-dto.ts} +20 -14
- package/src/lib/Apis/models/{marketing-list-contact-dto.ts → top-discount-dto.ts} +12 -12
- package/src/lib/Apis/models/{single-browser-stats-dto.ts → top-product-dto.ts} +18 -12
- package/src/lib/Apis/models/{marketing-campaign-content-dto.ts → unread-count-dto.ts} +6 -6
- package/src/lib/Apis/models/update-store-dto.ts +12 -0
- package/src/lib/Apis/models/update-user-dto.ts +0 -6
- package/src/lib/Apis/models/user-group.ts +0 -6
- package/src/lib/Apis/models/user-with-no-id.ts +0 -6
- package/src/lib/Apis/sharedConfig.ts +1 -1
- package/src/screens/CartScreen.tsx +10 -10
- package/src/screens/CheckoutScreen.tsx +12 -12
- package/src/screens/OrderReviewsScreen.tsx +6 -6
- package/src/screens/ProductDetailScreen.tsx +40 -40
- package/src/screens/SearchResultsScreen.tsx +17 -21
- package/src/screens/ShopScreen.tsx +20 -82
- package/src/lib/Apis/apis/marketing-api.ts +0 -3099
- package/src/lib/Apis/models/api-key-info-dto.ts +0 -49
- package/src/lib/Apis/models/browser-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-content-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-draft-dto.ts +0 -175
- package/src/lib/Apis/models/campaign-draft-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-draft-schedule-dto.ts +0 -49
- package/src/lib/Apis/models/campaign-draft-schedule-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-draft-sending-dto.ts +0 -43
- package/src/lib/Apis/models/campaign-draft-sending-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-aggregated-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-full-dto.ts +0 -93
- package/src/lib/Apis/models/contact-list-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-lists-response-dto.ts +0 -40
- package/src/lib/Apis/models/create-marketing-campaign-dto.ts +0 -81
- package/src/lib/Apis/models/email-template-response-dto.ts +0 -117
- package/src/lib/Apis/models/general-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/send-test-email-dto.ts +0 -28
- package/src/lib/Apis/models/single-contact-aggregated-stats-dto.ts +0 -129
- package/src/lib/Apis/models/single-contact-list-stats-dto.ts +0 -117
- package/src/lib/Apis/models/single-general-stats.ts +0 -153
- package/src/lib/Apis/models/store-api-keys-response-dto.ts +0 -34
- package/src/lib/Apis/models/update-api-keys-dto.ts +0 -39
- package/src/lib/Apis/models/update-campaign-draft-content-dto.ts +0 -27
- package/src/lib/Apis/models/update-marketing-camp-draft-dto.ts +0 -81
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import React10, { createContext, forwardRef, useContext, useLayoutEffect, useEff
|
|
|
3
3
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import globalAxios21 from 'axios';
|
|
5
5
|
import { motion, AnimatePresence, useMotionValue, useTransform } from 'framer-motion';
|
|
6
|
-
import { Eye, Star, ShoppingCart,
|
|
6
|
+
import { Eye, Star, ShoppingCart, Search, Package, ArrowUpDown, ChevronDown, LayoutGrid, LayoutList, X, ShieldCheck, Clock, User, MessageCircle, Filter, Sparkles, ChevronLeft, Check, Heart, Truck, RotateCcw, Shield, Trash2, Minus, Plus, ShoppingBag, ArrowRight, CheckCircle2, MapPin, CreditCard, Edit3, AlertCircle, Lock, EyeOff, UserPlus, Mail, Send, ArrowLeft, MessageSquare, Settings, ChevronRight, ArrowUpRight, PackageCheck, Warehouse, BellRing, Crown, Phone, Grid, List, TrendingUp, Loader2, Calendar, ExternalLink, Info, Bell, LogOut, Menu, Facebook, Twitter, Instagram, CheckCheck, BellOff, Shirt, Pill, Box, Gift, Tag, Globe, Home, TrendingDown, CheckCircle, Edit, AlertTriangle, XCircle } from 'lucide-react';
|
|
7
7
|
import { QueryClient, QueryClientProvider, useQuery } from '@tanstack/react-query';
|
|
8
8
|
import { useRouter, useSearchParams, useParams } from 'next/navigation';
|
|
9
9
|
import Image4 from 'next/image';
|
|
@@ -61,7 +61,7 @@ var init_sharedConfig = __esm({
|
|
|
61
61
|
basePath: "https://api.heypharmacist.com",
|
|
62
62
|
// Default fallback
|
|
63
63
|
baseOptions: {
|
|
64
|
-
timeout:
|
|
64
|
+
timeout: 6e4
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
}
|
|
@@ -6341,6 +6341,52 @@ var ProductsApiAxiosParamCreator = function(configuration) {
|
|
|
6341
6341
|
options: localVarRequestOptions
|
|
6342
6342
|
};
|
|
6343
6343
|
},
|
|
6344
|
+
/**
|
|
6345
|
+
*
|
|
6346
|
+
* @summary Generate a product draft using AI
|
|
6347
|
+
* @param {ProductsAidraftBody} body
|
|
6348
|
+
* @param {*} [options] Override http request option.
|
|
6349
|
+
* @throws {RequiredError}
|
|
6350
|
+
*/
|
|
6351
|
+
generateAiDraft: async (body, options = {}) => {
|
|
6352
|
+
if (body === null || body === void 0) {
|
|
6353
|
+
throw new RequiredError("body", "Required parameter body was null or undefined when calling generateAiDraft.");
|
|
6354
|
+
}
|
|
6355
|
+
const localVarPath = `/products/ai-draft`;
|
|
6356
|
+
const localVarUrlObj = new URL(localVarPath, "https://example.com");
|
|
6357
|
+
let baseOptions;
|
|
6358
|
+
if (configuration) {
|
|
6359
|
+
baseOptions = configuration.baseOptions;
|
|
6360
|
+
}
|
|
6361
|
+
const localVarRequestOptions = { method: "POST", ...baseOptions, ...options };
|
|
6362
|
+
const localVarHeaderParameter = {};
|
|
6363
|
+
const localVarQueryParameter = {};
|
|
6364
|
+
if (configuration && configuration.accessToken) {
|
|
6365
|
+
const accessToken = typeof configuration.accessToken === "function" ? await configuration.accessToken() : await configuration.accessToken;
|
|
6366
|
+
localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
|
|
6367
|
+
}
|
|
6368
|
+
if (configuration && configuration.apiKey) {
|
|
6369
|
+
const localVarApiKeyValue = typeof configuration.apiKey === "function" ? await configuration.apiKey("x-store-key") : await configuration.apiKey;
|
|
6370
|
+
localVarHeaderParameter["x-store-key"] = localVarApiKeyValue;
|
|
6371
|
+
}
|
|
6372
|
+
localVarHeaderParameter["Content-Type"] = "application/json";
|
|
6373
|
+
const query = new URLSearchParams(localVarUrlObj.search);
|
|
6374
|
+
for (const key in localVarQueryParameter) {
|
|
6375
|
+
query.set(key, localVarQueryParameter[key]);
|
|
6376
|
+
}
|
|
6377
|
+
for (const key in options.params) {
|
|
6378
|
+
query.set(key, options.params[key]);
|
|
6379
|
+
}
|
|
6380
|
+
localVarUrlObj.search = new URLSearchParams(query).toString();
|
|
6381
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
6382
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
6383
|
+
const needsSerialization = typeof body !== "string" || (localVarRequestOptions.headers || (localVarRequestOptions.headers = {}))["Content-Type"] === "application/json";
|
|
6384
|
+
localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== void 0 ? body : {}) : body || "";
|
|
6385
|
+
return {
|
|
6386
|
+
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
|
|
6387
|
+
options: localVarRequestOptions
|
|
6388
|
+
};
|
|
6389
|
+
},
|
|
6344
6390
|
/**
|
|
6345
6391
|
*
|
|
6346
6392
|
* @summary [DEPRECATED] Use GET /products/all?categoryId=:id instead
|
|
@@ -6426,7 +6472,6 @@ var ProductsApiAxiosParamCreator = function(configuration) {
|
|
|
6426
6472
|
/**
|
|
6427
6473
|
*
|
|
6428
6474
|
* @summary Get all products with filtering and pagination
|
|
6429
|
-
* @param {string} [searchTerm]
|
|
6430
6475
|
* @param {number} [maxPrice]
|
|
6431
6476
|
* @param {number} [minPrice]
|
|
6432
6477
|
* @param {string} [brandFilter] Comma-separated brand names
|
|
@@ -6440,7 +6485,7 @@ var ProductsApiAxiosParamCreator = function(configuration) {
|
|
|
6440
6485
|
* @param {*} [options] Override http request option.
|
|
6441
6486
|
* @throws {RequiredError}
|
|
6442
6487
|
*/
|
|
6443
|
-
getAllProducts: async (
|
|
6488
|
+
getAllProducts: async (maxPrice, minPrice, brandFilter, availability, sort, subCategoryId, categoryId, isActive, limit, page, options = {}) => {
|
|
6444
6489
|
const localVarPath = `/products/all`;
|
|
6445
6490
|
const localVarUrlObj = new URL(localVarPath, "https://example.com");
|
|
6446
6491
|
let baseOptions;
|
|
@@ -6458,9 +6503,6 @@ var ProductsApiAxiosParamCreator = function(configuration) {
|
|
|
6458
6503
|
const localVarApiKeyValue = typeof configuration.apiKey === "function" ? await configuration.apiKey("x-store-key") : await configuration.apiKey;
|
|
6459
6504
|
localVarHeaderParameter["x-store-key"] = localVarApiKeyValue;
|
|
6460
6505
|
}
|
|
6461
|
-
if (searchTerm !== void 0) {
|
|
6462
|
-
localVarQueryParameter["searchTerm"] = searchTerm;
|
|
6463
|
-
}
|
|
6464
6506
|
if (maxPrice !== void 0) {
|
|
6465
6507
|
localVarQueryParameter["maxPrice"] = maxPrice;
|
|
6466
6508
|
}
|
|
@@ -6889,6 +6931,94 @@ var ProductsApiAxiosParamCreator = function(configuration) {
|
|
|
6889
6931
|
options: localVarRequestOptions
|
|
6890
6932
|
};
|
|
6891
6933
|
},
|
|
6934
|
+
/**
|
|
6935
|
+
*
|
|
6936
|
+
* @summary Process image using PhotoRoom (remove background)
|
|
6937
|
+
* @param {Blob} image
|
|
6938
|
+
* @param {*} [options] Override http request option.
|
|
6939
|
+
* @throws {RequiredError}
|
|
6940
|
+
*/
|
|
6941
|
+
processImageForm: async (image, options = {}) => {
|
|
6942
|
+
if (image === null || image === void 0) {
|
|
6943
|
+
throw new RequiredError("image", "Required parameter image was null or undefined when calling processImageForm.");
|
|
6944
|
+
}
|
|
6945
|
+
const localVarPath = `/products/process-image`;
|
|
6946
|
+
const localVarUrlObj = new URL(localVarPath, "https://example.com");
|
|
6947
|
+
let baseOptions;
|
|
6948
|
+
if (configuration) {
|
|
6949
|
+
baseOptions = configuration.baseOptions;
|
|
6950
|
+
}
|
|
6951
|
+
const localVarRequestOptions = { method: "POST", ...baseOptions, ...options };
|
|
6952
|
+
const localVarHeaderParameter = {};
|
|
6953
|
+
const localVarQueryParameter = {};
|
|
6954
|
+
const localVarFormParams = new FormData();
|
|
6955
|
+
if (configuration && configuration.accessToken) {
|
|
6956
|
+
const accessToken = typeof configuration.accessToken === "function" ? await configuration.accessToken() : await configuration.accessToken;
|
|
6957
|
+
localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
|
|
6958
|
+
}
|
|
6959
|
+
if (configuration && configuration.apiKey) {
|
|
6960
|
+
const localVarApiKeyValue = typeof configuration.apiKey === "function" ? await configuration.apiKey("x-store-key") : await configuration.apiKey;
|
|
6961
|
+
localVarHeaderParameter["x-store-key"] = localVarApiKeyValue;
|
|
6962
|
+
}
|
|
6963
|
+
if (image !== void 0) {
|
|
6964
|
+
localVarFormParams.append("image", image);
|
|
6965
|
+
}
|
|
6966
|
+
localVarHeaderParameter["Content-Type"] = "multipart/form-data";
|
|
6967
|
+
const query = new URLSearchParams(localVarUrlObj.search);
|
|
6968
|
+
for (const key in localVarQueryParameter) {
|
|
6969
|
+
query.set(key, localVarQueryParameter[key]);
|
|
6970
|
+
}
|
|
6971
|
+
for (const key in options.params) {
|
|
6972
|
+
query.set(key, options.params[key]);
|
|
6973
|
+
}
|
|
6974
|
+
localVarUrlObj.search = new URLSearchParams(query).toString();
|
|
6975
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
6976
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
6977
|
+
localVarRequestOptions.data = localVarFormParams;
|
|
6978
|
+
return {
|
|
6979
|
+
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
|
|
6980
|
+
options: localVarRequestOptions
|
|
6981
|
+
};
|
|
6982
|
+
},
|
|
6983
|
+
/**
|
|
6984
|
+
* Generates AI embeddings for all products. Run this once after enabling smart search, or to refresh all embeddings.
|
|
6985
|
+
* @summary Reindex all product embeddings for smart search
|
|
6986
|
+
* @param {*} [options] Override http request option.
|
|
6987
|
+
* @throws {RequiredError}
|
|
6988
|
+
*/
|
|
6989
|
+
reindexEmbeddings: async (options = {}) => {
|
|
6990
|
+
const localVarPath = `/products/reindex-embeddings`;
|
|
6991
|
+
const localVarUrlObj = new URL(localVarPath, "https://example.com");
|
|
6992
|
+
let baseOptions;
|
|
6993
|
+
if (configuration) {
|
|
6994
|
+
baseOptions = configuration.baseOptions;
|
|
6995
|
+
}
|
|
6996
|
+
const localVarRequestOptions = { method: "POST", ...baseOptions, ...options };
|
|
6997
|
+
const localVarHeaderParameter = {};
|
|
6998
|
+
const localVarQueryParameter = {};
|
|
6999
|
+
if (configuration && configuration.accessToken) {
|
|
7000
|
+
const accessToken = typeof configuration.accessToken === "function" ? await configuration.accessToken() : await configuration.accessToken;
|
|
7001
|
+
localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
|
|
7002
|
+
}
|
|
7003
|
+
if (configuration && configuration.apiKey) {
|
|
7004
|
+
const localVarApiKeyValue = typeof configuration.apiKey === "function" ? await configuration.apiKey("x-store-key") : await configuration.apiKey;
|
|
7005
|
+
localVarHeaderParameter["x-store-key"] = localVarApiKeyValue;
|
|
7006
|
+
}
|
|
7007
|
+
const query = new URLSearchParams(localVarUrlObj.search);
|
|
7008
|
+
for (const key in localVarQueryParameter) {
|
|
7009
|
+
query.set(key, localVarQueryParameter[key]);
|
|
7010
|
+
}
|
|
7011
|
+
for (const key in options.params) {
|
|
7012
|
+
query.set(key, options.params[key]);
|
|
7013
|
+
}
|
|
7014
|
+
localVarUrlObj.search = new URLSearchParams(query).toString();
|
|
7015
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
7016
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
7017
|
+
return {
|
|
7018
|
+
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
|
|
7019
|
+
options: localVarRequestOptions
|
|
7020
|
+
};
|
|
7021
|
+
},
|
|
6892
7022
|
/**
|
|
6893
7023
|
*
|
|
6894
7024
|
* @summary Reorder products within a category or subcategory
|
|
@@ -6935,6 +7065,56 @@ var ProductsApiAxiosParamCreator = function(configuration) {
|
|
|
6935
7065
|
options: localVarRequestOptions
|
|
6936
7066
|
};
|
|
6937
7067
|
},
|
|
7068
|
+
/**
|
|
7069
|
+
* Search products using natural language. Handles typos, synonyms, and returns related products ranked by relevance.
|
|
7070
|
+
* @summary Smart search using AI-powered semantic similarity
|
|
7071
|
+
* @param {string} searchTerm Search query (e.g., \"headache medicine\", \"iphn 12\")
|
|
7072
|
+
* @param {number} [limit] Maximum results (default: 20)
|
|
7073
|
+
* @param {*} [options] Override http request option.
|
|
7074
|
+
* @throws {RequiredError}
|
|
7075
|
+
*/
|
|
7076
|
+
smartSearch: async (searchTerm, limit, options = {}) => {
|
|
7077
|
+
if (searchTerm === null || searchTerm === void 0) {
|
|
7078
|
+
throw new RequiredError("searchTerm", "Required parameter searchTerm was null or undefined when calling smartSearch.");
|
|
7079
|
+
}
|
|
7080
|
+
const localVarPath = `/products/search`;
|
|
7081
|
+
const localVarUrlObj = new URL(localVarPath, "https://example.com");
|
|
7082
|
+
let baseOptions;
|
|
7083
|
+
if (configuration) {
|
|
7084
|
+
baseOptions = configuration.baseOptions;
|
|
7085
|
+
}
|
|
7086
|
+
const localVarRequestOptions = { method: "GET", ...baseOptions, ...options };
|
|
7087
|
+
const localVarHeaderParameter = {};
|
|
7088
|
+
const localVarQueryParameter = {};
|
|
7089
|
+
if (configuration && configuration.accessToken) {
|
|
7090
|
+
const accessToken = typeof configuration.accessToken === "function" ? await configuration.accessToken() : await configuration.accessToken;
|
|
7091
|
+
localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
|
|
7092
|
+
}
|
|
7093
|
+
if (configuration && configuration.apiKey) {
|
|
7094
|
+
const localVarApiKeyValue = typeof configuration.apiKey === "function" ? await configuration.apiKey("x-store-key") : await configuration.apiKey;
|
|
7095
|
+
localVarHeaderParameter["x-store-key"] = localVarApiKeyValue;
|
|
7096
|
+
}
|
|
7097
|
+
if (searchTerm !== void 0) {
|
|
7098
|
+
localVarQueryParameter["searchTerm"] = searchTerm;
|
|
7099
|
+
}
|
|
7100
|
+
if (limit !== void 0) {
|
|
7101
|
+
localVarQueryParameter["limit"] = limit;
|
|
7102
|
+
}
|
|
7103
|
+
const query = new URLSearchParams(localVarUrlObj.search);
|
|
7104
|
+
for (const key in localVarQueryParameter) {
|
|
7105
|
+
query.set(key, localVarQueryParameter[key]);
|
|
7106
|
+
}
|
|
7107
|
+
for (const key in options.params) {
|
|
7108
|
+
query.set(key, options.params[key]);
|
|
7109
|
+
}
|
|
7110
|
+
localVarUrlObj.search = new URLSearchParams(query).toString();
|
|
7111
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
7112
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
7113
|
+
return {
|
|
7114
|
+
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
|
|
7115
|
+
options: localVarRequestOptions
|
|
7116
|
+
};
|
|
7117
|
+
},
|
|
6938
7118
|
/**
|
|
6939
7119
|
*
|
|
6940
7120
|
* @summary Update variant inventory (add or subtract)
|
|
@@ -7169,6 +7349,20 @@ var ProductsApiFp = function(configuration) {
|
|
|
7169
7349
|
return axios.request(axiosRequestArgs);
|
|
7170
7350
|
};
|
|
7171
7351
|
},
|
|
7352
|
+
/**
|
|
7353
|
+
*
|
|
7354
|
+
* @summary Generate a product draft using AI
|
|
7355
|
+
* @param {ProductsAidraftBody} body
|
|
7356
|
+
* @param {*} [options] Override http request option.
|
|
7357
|
+
* @throws {RequiredError}
|
|
7358
|
+
*/
|
|
7359
|
+
async generateAiDraft(body, options) {
|
|
7360
|
+
const localVarAxiosArgs = await ProductsApiAxiosParamCreator(configuration).generateAiDraft(body, options);
|
|
7361
|
+
return (axios = globalAxios21, basePath = BASE_PATH) => {
|
|
7362
|
+
const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
|
|
7363
|
+
return axios.request(axiosRequestArgs);
|
|
7364
|
+
};
|
|
7365
|
+
},
|
|
7172
7366
|
/**
|
|
7173
7367
|
*
|
|
7174
7368
|
* @summary [DEPRECATED] Use GET /products/all?categoryId=:id instead
|
|
@@ -7199,7 +7393,6 @@ var ProductsApiFp = function(configuration) {
|
|
|
7199
7393
|
/**
|
|
7200
7394
|
*
|
|
7201
7395
|
* @summary Get all products with filtering and pagination
|
|
7202
|
-
* @param {string} [searchTerm]
|
|
7203
7396
|
* @param {number} [maxPrice]
|
|
7204
7397
|
* @param {number} [minPrice]
|
|
7205
7398
|
* @param {string} [brandFilter] Comma-separated brand names
|
|
@@ -7213,8 +7406,8 @@ var ProductsApiFp = function(configuration) {
|
|
|
7213
7406
|
* @param {*} [options] Override http request option.
|
|
7214
7407
|
* @throws {RequiredError}
|
|
7215
7408
|
*/
|
|
7216
|
-
async getAllProducts(
|
|
7217
|
-
const localVarAxiosArgs = await ProductsApiAxiosParamCreator(configuration).getAllProducts(
|
|
7409
|
+
async getAllProducts(maxPrice, minPrice, brandFilter, availability, sort, subCategoryId, categoryId, isActive, limit, page, options) {
|
|
7410
|
+
const localVarAxiosArgs = await ProductsApiAxiosParamCreator(configuration).getAllProducts(maxPrice, minPrice, brandFilter, availability, sort, subCategoryId, categoryId, isActive, limit, page, options);
|
|
7218
7411
|
return (axios = globalAxios21, basePath = BASE_PATH) => {
|
|
7219
7412
|
const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
|
|
7220
7413
|
return axios.request(axiosRequestArgs);
|
|
@@ -7345,6 +7538,33 @@ var ProductsApiFp = function(configuration) {
|
|
|
7345
7538
|
return axios.request(axiosRequestArgs);
|
|
7346
7539
|
};
|
|
7347
7540
|
},
|
|
7541
|
+
/**
|
|
7542
|
+
*
|
|
7543
|
+
* @summary Process image using PhotoRoom (remove background)
|
|
7544
|
+
* @param {Blob} image
|
|
7545
|
+
* @param {*} [options] Override http request option.
|
|
7546
|
+
* @throws {RequiredError}
|
|
7547
|
+
*/
|
|
7548
|
+
async processImageForm(image, options) {
|
|
7549
|
+
const localVarAxiosArgs = await ProductsApiAxiosParamCreator(configuration).processImageForm(image, options);
|
|
7550
|
+
return (axios = globalAxios21, basePath = BASE_PATH) => {
|
|
7551
|
+
const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
|
|
7552
|
+
return axios.request(axiosRequestArgs);
|
|
7553
|
+
};
|
|
7554
|
+
},
|
|
7555
|
+
/**
|
|
7556
|
+
* Generates AI embeddings for all products. Run this once after enabling smart search, or to refresh all embeddings.
|
|
7557
|
+
* @summary Reindex all product embeddings for smart search
|
|
7558
|
+
* @param {*} [options] Override http request option.
|
|
7559
|
+
* @throws {RequiredError}
|
|
7560
|
+
*/
|
|
7561
|
+
async reindexEmbeddings(options) {
|
|
7562
|
+
const localVarAxiosArgs = await ProductsApiAxiosParamCreator(configuration).reindexEmbeddings(options);
|
|
7563
|
+
return (axios = globalAxios21, basePath = BASE_PATH) => {
|
|
7564
|
+
const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
|
|
7565
|
+
return axios.request(axiosRequestArgs);
|
|
7566
|
+
};
|
|
7567
|
+
},
|
|
7348
7568
|
/**
|
|
7349
7569
|
*
|
|
7350
7570
|
* @summary Reorder products within a category or subcategory
|
|
@@ -7359,6 +7579,21 @@ var ProductsApiFp = function(configuration) {
|
|
|
7359
7579
|
return axios.request(axiosRequestArgs);
|
|
7360
7580
|
};
|
|
7361
7581
|
},
|
|
7582
|
+
/**
|
|
7583
|
+
* Search products using natural language. Handles typos, synonyms, and returns related products ranked by relevance.
|
|
7584
|
+
* @summary Smart search using AI-powered semantic similarity
|
|
7585
|
+
* @param {string} searchTerm Search query (e.g., \"headache medicine\", \"iphn 12\")
|
|
7586
|
+
* @param {number} [limit] Maximum results (default: 20)
|
|
7587
|
+
* @param {*} [options] Override http request option.
|
|
7588
|
+
* @throws {RequiredError}
|
|
7589
|
+
*/
|
|
7590
|
+
async smartSearch(searchTerm, limit, options) {
|
|
7591
|
+
const localVarAxiosArgs = await ProductsApiAxiosParamCreator(configuration).smartSearch(searchTerm, limit, options);
|
|
7592
|
+
return (axios = globalAxios21, basePath = BASE_PATH) => {
|
|
7593
|
+
const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
|
|
7594
|
+
return axios.request(axiosRequestArgs);
|
|
7595
|
+
};
|
|
7596
|
+
},
|
|
7362
7597
|
/**
|
|
7363
7598
|
*
|
|
7364
7599
|
* @summary Update variant inventory (add or subtract)
|
|
@@ -7466,6 +7701,17 @@ var ProductsApi = class extends BaseAPI {
|
|
|
7466
7701
|
async deleteVariant(productId, variantId, options) {
|
|
7467
7702
|
return ProductsApiFp(this.configuration).deleteVariant(productId, variantId, options).then((request) => request(this.axios, this.basePath));
|
|
7468
7703
|
}
|
|
7704
|
+
/**
|
|
7705
|
+
*
|
|
7706
|
+
* @summary Generate a product draft using AI
|
|
7707
|
+
* @param {ProductsAidraftBody} body
|
|
7708
|
+
* @param {*} [options] Override http request option.
|
|
7709
|
+
* @throws {RequiredError}
|
|
7710
|
+
* @memberof ProductsApi
|
|
7711
|
+
*/
|
|
7712
|
+
async generateAiDraft(body, options) {
|
|
7713
|
+
return ProductsApiFp(this.configuration).generateAiDraft(body, options).then((request) => request(this.axios, this.basePath));
|
|
7714
|
+
}
|
|
7469
7715
|
/**
|
|
7470
7716
|
*
|
|
7471
7717
|
* @summary [DEPRECATED] Use GET /products/all?categoryId=:id instead
|
|
@@ -7490,7 +7736,6 @@ var ProductsApi = class extends BaseAPI {
|
|
|
7490
7736
|
/**
|
|
7491
7737
|
*
|
|
7492
7738
|
* @summary Get all products with filtering and pagination
|
|
7493
|
-
* @param {string} [searchTerm]
|
|
7494
7739
|
* @param {number} [maxPrice]
|
|
7495
7740
|
* @param {number} [minPrice]
|
|
7496
7741
|
* @param {string} [brandFilter] Comma-separated brand names
|
|
@@ -7505,8 +7750,8 @@ var ProductsApi = class extends BaseAPI {
|
|
|
7505
7750
|
* @throws {RequiredError}
|
|
7506
7751
|
* @memberof ProductsApi
|
|
7507
7752
|
*/
|
|
7508
|
-
async getAllProducts(
|
|
7509
|
-
return ProductsApiFp(this.configuration).getAllProducts(
|
|
7753
|
+
async getAllProducts(maxPrice, minPrice, brandFilter, availability, sort, subCategoryId, categoryId, isActive, limit, page, options) {
|
|
7754
|
+
return ProductsApiFp(this.configuration).getAllProducts(maxPrice, minPrice, brandFilter, availability, sort, subCategoryId, categoryId, isActive, limit, page, options).then((request) => request(this.axios, this.basePath));
|
|
7510
7755
|
}
|
|
7511
7756
|
/**
|
|
7512
7757
|
*
|
|
@@ -7606,6 +7851,27 @@ var ProductsApi = class extends BaseAPI {
|
|
|
7606
7851
|
async getTopSellingProducts(limit, page, options) {
|
|
7607
7852
|
return ProductsApiFp(this.configuration).getTopSellingProducts(limit, page, options).then((request) => request(this.axios, this.basePath));
|
|
7608
7853
|
}
|
|
7854
|
+
/**
|
|
7855
|
+
*
|
|
7856
|
+
* @summary Process image using PhotoRoom (remove background)
|
|
7857
|
+
* @param {Blob} image
|
|
7858
|
+
* @param {*} [options] Override http request option.
|
|
7859
|
+
* @throws {RequiredError}
|
|
7860
|
+
* @memberof ProductsApi
|
|
7861
|
+
*/
|
|
7862
|
+
async processImageForm(image, options) {
|
|
7863
|
+
return ProductsApiFp(this.configuration).processImageForm(image, options).then((request) => request(this.axios, this.basePath));
|
|
7864
|
+
}
|
|
7865
|
+
/**
|
|
7866
|
+
* Generates AI embeddings for all products. Run this once after enabling smart search, or to refresh all embeddings.
|
|
7867
|
+
* @summary Reindex all product embeddings for smart search
|
|
7868
|
+
* @param {*} [options] Override http request option.
|
|
7869
|
+
* @throws {RequiredError}
|
|
7870
|
+
* @memberof ProductsApi
|
|
7871
|
+
*/
|
|
7872
|
+
async reindexEmbeddings(options) {
|
|
7873
|
+
return ProductsApiFp(this.configuration).reindexEmbeddings(options).then((request) => request(this.axios, this.basePath));
|
|
7874
|
+
}
|
|
7609
7875
|
/**
|
|
7610
7876
|
*
|
|
7611
7877
|
* @summary Reorder products within a category or subcategory
|
|
@@ -7617,6 +7883,18 @@ var ProductsApi = class extends BaseAPI {
|
|
|
7617
7883
|
async reorderProducts(body, options) {
|
|
7618
7884
|
return ProductsApiFp(this.configuration).reorderProducts(body, options).then((request) => request(this.axios, this.basePath));
|
|
7619
7885
|
}
|
|
7886
|
+
/**
|
|
7887
|
+
* Search products using natural language. Handles typos, synonyms, and returns related products ranked by relevance.
|
|
7888
|
+
* @summary Smart search using AI-powered semantic similarity
|
|
7889
|
+
* @param {string} searchTerm Search query (e.g., \"headache medicine\", \"iphn 12\")
|
|
7890
|
+
* @param {number} [limit] Maximum results (default: 20)
|
|
7891
|
+
* @param {*} [options] Override http request option.
|
|
7892
|
+
* @throws {RequiredError}
|
|
7893
|
+
* @memberof ProductsApi
|
|
7894
|
+
*/
|
|
7895
|
+
async smartSearch(searchTerm, limit, options) {
|
|
7896
|
+
return ProductsApiFp(this.configuration).smartSearch(searchTerm, limit, options).then((request) => request(this.axios, this.basePath));
|
|
7897
|
+
}
|
|
7620
7898
|
/**
|
|
7621
7899
|
*
|
|
7622
7900
|
* @summary Update variant inventory (add or subtract)
|
|
@@ -9514,16 +9792,12 @@ var StoresApiAxiosParamCreator = function(configuration) {
|
|
|
9514
9792
|
},
|
|
9515
9793
|
/**
|
|
9516
9794
|
*
|
|
9517
|
-
* @summary Get store
|
|
9518
|
-
* @param {string} storeId
|
|
9795
|
+
* @summary Get store finance overview
|
|
9519
9796
|
* @param {*} [options] Override http request option.
|
|
9520
9797
|
* @throws {RequiredError}
|
|
9521
9798
|
*/
|
|
9522
|
-
|
|
9523
|
-
|
|
9524
|
-
throw new RequiredError("storeId", "Required parameter storeId was null or undefined when calling getApiKeys.");
|
|
9525
|
-
}
|
|
9526
|
-
const localVarPath = `/stores/{storeId}/api-keys`.replace(`{${"storeId"}}`, encodeURIComponent(String(storeId)));
|
|
9799
|
+
getFinanceOverview: async (options = {}) => {
|
|
9800
|
+
const localVarPath = `/stores/finance/overview`;
|
|
9527
9801
|
const localVarUrlObj = new URL(localVarPath, "https://example.com");
|
|
9528
9802
|
let baseOptions;
|
|
9529
9803
|
if (configuration) {
|
|
@@ -9746,49 +10020,6 @@ var StoresApiAxiosParamCreator = function(configuration) {
|
|
|
9746
10020
|
options: localVarRequestOptions
|
|
9747
10021
|
};
|
|
9748
10022
|
},
|
|
9749
|
-
/**
|
|
9750
|
-
*
|
|
9751
|
-
* @summary Revoke/delete a specific API key
|
|
9752
|
-
* @param {string} storeId
|
|
9753
|
-
* @param {string} keyType Type of key to revoke
|
|
9754
|
-
* @param {*} [options] Override http request option.
|
|
9755
|
-
* @throws {RequiredError}
|
|
9756
|
-
*/
|
|
9757
|
-
revokeApiKey: async (storeId, keyType, options = {}) => {
|
|
9758
|
-
if (storeId === null || storeId === void 0) {
|
|
9759
|
-
throw new RequiredError("storeId", "Required parameter storeId was null or undefined when calling revokeApiKey.");
|
|
9760
|
-
}
|
|
9761
|
-
if (keyType === null || keyType === void 0) {
|
|
9762
|
-
throw new RequiredError("keyType", "Required parameter keyType was null or undefined when calling revokeApiKey.");
|
|
9763
|
-
}
|
|
9764
|
-
const localVarPath = `/stores/{storeId}/api-keys/{keyType}`.replace(`{${"storeId"}}`, encodeURIComponent(String(storeId))).replace(`{${"keyType"}}`, encodeURIComponent(String(keyType)));
|
|
9765
|
-
const localVarUrlObj = new URL(localVarPath, "https://example.com");
|
|
9766
|
-
let baseOptions;
|
|
9767
|
-
if (configuration) {
|
|
9768
|
-
baseOptions = configuration.baseOptions;
|
|
9769
|
-
}
|
|
9770
|
-
const localVarRequestOptions = { method: "DELETE", ...baseOptions, ...options };
|
|
9771
|
-
const localVarHeaderParameter = {};
|
|
9772
|
-
const localVarQueryParameter = {};
|
|
9773
|
-
if (configuration && configuration.apiKey) {
|
|
9774
|
-
const localVarApiKeyValue = typeof configuration.apiKey === "function" ? await configuration.apiKey("x-store-key") : await configuration.apiKey;
|
|
9775
|
-
localVarHeaderParameter["x-store-key"] = localVarApiKeyValue;
|
|
9776
|
-
}
|
|
9777
|
-
const query = new URLSearchParams(localVarUrlObj.search);
|
|
9778
|
-
for (const key in localVarQueryParameter) {
|
|
9779
|
-
query.set(key, localVarQueryParameter[key]);
|
|
9780
|
-
}
|
|
9781
|
-
for (const key in options.params) {
|
|
9782
|
-
query.set(key, options.params[key]);
|
|
9783
|
-
}
|
|
9784
|
-
localVarUrlObj.search = new URLSearchParams(query).toString();
|
|
9785
|
-
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
9786
|
-
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
9787
|
-
return {
|
|
9788
|
-
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
|
|
9789
|
-
options: localVarRequestOptions
|
|
9790
|
-
};
|
|
9791
|
-
},
|
|
9792
10023
|
/**
|
|
9793
10024
|
*
|
|
9794
10025
|
* @param {*} [options] Override http request option.
|
|
@@ -10195,33 +10426,24 @@ var StoresApiAxiosParamCreator = function(configuration) {
|
|
|
10195
10426
|
},
|
|
10196
10427
|
/**
|
|
10197
10428
|
*
|
|
10198
|
-
* @summary
|
|
10199
|
-
* @param {UpdateApiKeysDto} body
|
|
10200
|
-
* @param {string} storeId
|
|
10429
|
+
* @summary Generate Stripe Onboarding Link
|
|
10201
10430
|
* @param {*} [options] Override http request option.
|
|
10202
10431
|
* @throws {RequiredError}
|
|
10203
10432
|
*/
|
|
10204
|
-
|
|
10205
|
-
|
|
10206
|
-
throw new RequiredError("body", "Required parameter body was null or undefined when calling updateApiKeys.");
|
|
10207
|
-
}
|
|
10208
|
-
if (storeId === null || storeId === void 0) {
|
|
10209
|
-
throw new RequiredError("storeId", "Required parameter storeId was null or undefined when calling updateApiKeys.");
|
|
10210
|
-
}
|
|
10211
|
-
const localVarPath = `/stores/{storeId}/api-keys`.replace(`{${"storeId"}}`, encodeURIComponent(String(storeId)));
|
|
10433
|
+
startOnboarding: async (options = {}) => {
|
|
10434
|
+
const localVarPath = `/stores/onboarding`;
|
|
10212
10435
|
const localVarUrlObj = new URL(localVarPath, "https://example.com");
|
|
10213
10436
|
let baseOptions;
|
|
10214
10437
|
if (configuration) {
|
|
10215
10438
|
baseOptions = configuration.baseOptions;
|
|
10216
10439
|
}
|
|
10217
|
-
const localVarRequestOptions = { method: "
|
|
10440
|
+
const localVarRequestOptions = { method: "POST", ...baseOptions, ...options };
|
|
10218
10441
|
const localVarHeaderParameter = {};
|
|
10219
10442
|
const localVarQueryParameter = {};
|
|
10220
10443
|
if (configuration && configuration.apiKey) {
|
|
10221
10444
|
const localVarApiKeyValue = typeof configuration.apiKey === "function" ? await configuration.apiKey("x-store-key") : await configuration.apiKey;
|
|
10222
10445
|
localVarHeaderParameter["x-store-key"] = localVarApiKeyValue;
|
|
10223
10446
|
}
|
|
10224
|
-
localVarHeaderParameter["Content-Type"] = "application/json";
|
|
10225
10447
|
const query = new URLSearchParams(localVarUrlObj.search);
|
|
10226
10448
|
for (const key in localVarQueryParameter) {
|
|
10227
10449
|
query.set(key, localVarQueryParameter[key]);
|
|
@@ -10232,8 +10454,6 @@ var StoresApiAxiosParamCreator = function(configuration) {
|
|
|
10232
10454
|
localVarUrlObj.search = new URLSearchParams(query).toString();
|
|
10233
10455
|
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
10234
10456
|
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
10235
|
-
const needsSerialization = typeof body !== "string" || (localVarRequestOptions.headers || (localVarRequestOptions.headers = {}))["Content-Type"] === "application/json";
|
|
10236
|
-
localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== void 0 ? body : {}) : body || "";
|
|
10237
10457
|
return {
|
|
10238
10458
|
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
|
|
10239
10459
|
options: localVarRequestOptions
|
|
@@ -10467,13 +10687,12 @@ var StoresApiFp = function(configuration) {
|
|
|
10467
10687
|
},
|
|
10468
10688
|
/**
|
|
10469
10689
|
*
|
|
10470
|
-
* @summary Get store
|
|
10471
|
-
* @param {string} storeId
|
|
10690
|
+
* @summary Get store finance overview
|
|
10472
10691
|
* @param {*} [options] Override http request option.
|
|
10473
10692
|
* @throws {RequiredError}
|
|
10474
10693
|
*/
|
|
10475
|
-
async
|
|
10476
|
-
const localVarAxiosArgs = await StoresApiAxiosParamCreator(configuration).
|
|
10694
|
+
async getFinanceOverview(options) {
|
|
10695
|
+
const localVarAxiosArgs = await StoresApiAxiosParamCreator(configuration).getFinanceOverview(options);
|
|
10477
10696
|
return (axios = globalAxios21, basePath = BASE_PATH) => {
|
|
10478
10697
|
const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
|
|
10479
10698
|
return axios.request(axiosRequestArgs);
|
|
@@ -10549,21 +10768,6 @@ var StoresApiFp = function(configuration) {
|
|
|
10549
10768
|
return axios.request(axiosRequestArgs);
|
|
10550
10769
|
};
|
|
10551
10770
|
},
|
|
10552
|
-
/**
|
|
10553
|
-
*
|
|
10554
|
-
* @summary Revoke/delete a specific API key
|
|
10555
|
-
* @param {string} storeId
|
|
10556
|
-
* @param {string} keyType Type of key to revoke
|
|
10557
|
-
* @param {*} [options] Override http request option.
|
|
10558
|
-
* @throws {RequiredError}
|
|
10559
|
-
*/
|
|
10560
|
-
async revokeApiKey(storeId, keyType, options) {
|
|
10561
|
-
const localVarAxiosArgs = await StoresApiAxiosParamCreator(configuration).revokeApiKey(storeId, keyType, options);
|
|
10562
|
-
return (axios = globalAxios21, basePath = BASE_PATH) => {
|
|
10563
|
-
const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
|
|
10564
|
-
return axios.request(axiosRequestArgs);
|
|
10565
|
-
};
|
|
10566
|
-
},
|
|
10567
10771
|
/**
|
|
10568
10772
|
*
|
|
10569
10773
|
* @param {*} [options] Override http request option.
|
|
@@ -10704,14 +10908,12 @@ var StoresApiFp = function(configuration) {
|
|
|
10704
10908
|
},
|
|
10705
10909
|
/**
|
|
10706
10910
|
*
|
|
10707
|
-
* @summary
|
|
10708
|
-
* @param {UpdateApiKeysDto} body
|
|
10709
|
-
* @param {string} storeId
|
|
10911
|
+
* @summary Generate Stripe Onboarding Link
|
|
10710
10912
|
* @param {*} [options] Override http request option.
|
|
10711
10913
|
* @throws {RequiredError}
|
|
10712
10914
|
*/
|
|
10713
|
-
async
|
|
10714
|
-
const localVarAxiosArgs = await StoresApiAxiosParamCreator(configuration).
|
|
10915
|
+
async startOnboarding(options) {
|
|
10916
|
+
const localVarAxiosArgs = await StoresApiAxiosParamCreator(configuration).startOnboarding(options);
|
|
10715
10917
|
return (axios = globalAxios21, basePath = BASE_PATH) => {
|
|
10716
10918
|
const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
|
|
10717
10919
|
return axios.request(axiosRequestArgs);
|
|
@@ -10833,14 +11035,13 @@ var StoresApi = class extends BaseAPI {
|
|
|
10833
11035
|
}
|
|
10834
11036
|
/**
|
|
10835
11037
|
*
|
|
10836
|
-
* @summary Get store
|
|
10837
|
-
* @param {string} storeId
|
|
11038
|
+
* @summary Get store finance overview
|
|
10838
11039
|
* @param {*} [options] Override http request option.
|
|
10839
11040
|
* @throws {RequiredError}
|
|
10840
11041
|
* @memberof StoresApi
|
|
10841
11042
|
*/
|
|
10842
|
-
async
|
|
10843
|
-
return StoresApiFp(this.configuration).
|
|
11043
|
+
async getFinanceOverview(options) {
|
|
11044
|
+
return StoresApiFp(this.configuration).getFinanceOverview(options).then((request) => request(this.axios, this.basePath));
|
|
10844
11045
|
}
|
|
10845
11046
|
/**
|
|
10846
11047
|
*
|
|
@@ -10897,18 +11098,6 @@ var StoresApi = class extends BaseAPI {
|
|
|
10897
11098
|
async getTransferePatientsRequests(storeId, options) {
|
|
10898
11099
|
return StoresApiFp(this.configuration).getTransferePatientsRequests(storeId, options).then((request) => request(this.axios, this.basePath));
|
|
10899
11100
|
}
|
|
10900
|
-
/**
|
|
10901
|
-
*
|
|
10902
|
-
* @summary Revoke/delete a specific API key
|
|
10903
|
-
* @param {string} storeId
|
|
10904
|
-
* @param {string} keyType Type of key to revoke
|
|
10905
|
-
* @param {*} [options] Override http request option.
|
|
10906
|
-
* @throws {RequiredError}
|
|
10907
|
-
* @memberof StoresApi
|
|
10908
|
-
*/
|
|
10909
|
-
async revokeApiKey(storeId, keyType, options) {
|
|
10910
|
-
return StoresApiFp(this.configuration).revokeApiKey(storeId, keyType, options).then((request) => request(this.axios, this.basePath));
|
|
10911
|
-
}
|
|
10912
11101
|
/**
|
|
10913
11102
|
*
|
|
10914
11103
|
* @param {*} [options] Override http request option.
|
|
@@ -11016,15 +11205,13 @@ var StoresApi = class extends BaseAPI {
|
|
|
11016
11205
|
}
|
|
11017
11206
|
/**
|
|
11018
11207
|
*
|
|
11019
|
-
* @summary
|
|
11020
|
-
* @param {UpdateApiKeysDto} body
|
|
11021
|
-
* @param {string} storeId
|
|
11208
|
+
* @summary Generate Stripe Onboarding Link
|
|
11022
11209
|
* @param {*} [options] Override http request option.
|
|
11023
11210
|
* @throws {RequiredError}
|
|
11024
11211
|
* @memberof StoresApi
|
|
11025
11212
|
*/
|
|
11026
|
-
async
|
|
11027
|
-
return StoresApiFp(this.configuration).
|
|
11213
|
+
async startOnboarding(options) {
|
|
11214
|
+
return StoresApiFp(this.configuration).startOnboarding(options).then((request) => request(this.axios, this.basePath));
|
|
11028
11215
|
}
|
|
11029
11216
|
/**
|
|
11030
11217
|
*
|
|
@@ -11395,13 +11582,6 @@ var AddressCreatedRequestAddressTypeEnum = /* @__PURE__ */ ((AddressCreatedReque
|
|
|
11395
11582
|
return AddressCreatedRequestAddressTypeEnum2;
|
|
11396
11583
|
})(AddressCreatedRequestAddressTypeEnum || {});
|
|
11397
11584
|
|
|
11398
|
-
// src/lib/Apis/models/api-key-info-dto.ts
|
|
11399
|
-
var ApiKeyInfoDtoKeyTypeEnum = /* @__PURE__ */ ((ApiKeyInfoDtoKeyTypeEnum2) => {
|
|
11400
|
-
ApiKeyInfoDtoKeyTypeEnum2["Stripe"] = "stripe";
|
|
11401
|
-
ApiKeyInfoDtoKeyTypeEnum2["Shippo"] = "shippo";
|
|
11402
|
-
return ApiKeyInfoDtoKeyTypeEnum2;
|
|
11403
|
-
})(ApiKeyInfoDtoKeyTypeEnum || {});
|
|
11404
|
-
|
|
11405
11585
|
// src/lib/Apis/models/bulk-channel-toggle-dto.ts
|
|
11406
11586
|
var BulkChannelToggleDtoCategoryEnum = /* @__PURE__ */ ((BulkChannelToggleDtoCategoryEnum2) => {
|
|
11407
11587
|
BulkChannelToggleDtoCategoryEnum2["Transactional"] = "transactional";
|
|
@@ -11412,45 +11592,6 @@ var BulkChannelToggleDtoCategoryEnum = /* @__PURE__ */ ((BulkChannelToggleDtoCat
|
|
|
11412
11592
|
return BulkChannelToggleDtoCategoryEnum2;
|
|
11413
11593
|
})(BulkChannelToggleDtoCategoryEnum || {});
|
|
11414
11594
|
|
|
11415
|
-
// src/lib/Apis/models/campaign-draft-dto.ts
|
|
11416
|
-
var CampaignDraftDtoStatusEnum = /* @__PURE__ */ ((CampaignDraftDtoStatusEnum2) => {
|
|
11417
|
-
CampaignDraftDtoStatusEnum2[CampaignDraftDtoStatusEnum2["NUMBER_MINUS_3"] = -3] = "NUMBER_MINUS_3";
|
|
11418
|
-
CampaignDraftDtoStatusEnum2[CampaignDraftDtoStatusEnum2["NUMBER_MINUS_2"] = -2] = "NUMBER_MINUS_2";
|
|
11419
|
-
CampaignDraftDtoStatusEnum2[CampaignDraftDtoStatusEnum2["NUMBER_MINUS_1"] = -1] = "NUMBER_MINUS_1";
|
|
11420
|
-
CampaignDraftDtoStatusEnum2[CampaignDraftDtoStatusEnum2["NUMBER_0"] = 0] = "NUMBER_0";
|
|
11421
|
-
CampaignDraftDtoStatusEnum2[CampaignDraftDtoStatusEnum2["NUMBER_1"] = 1] = "NUMBER_1";
|
|
11422
|
-
CampaignDraftDtoStatusEnum2[CampaignDraftDtoStatusEnum2["NUMBER_2"] = 2] = "NUMBER_2";
|
|
11423
|
-
CampaignDraftDtoStatusEnum2[CampaignDraftDtoStatusEnum2["NUMBER_3"] = 3] = "NUMBER_3";
|
|
11424
|
-
CampaignDraftDtoStatusEnum2[CampaignDraftDtoStatusEnum2["NUMBER_4"] = 4] = "NUMBER_4";
|
|
11425
|
-
return CampaignDraftDtoStatusEnum2;
|
|
11426
|
-
})(CampaignDraftDtoStatusEnum || {});
|
|
11427
|
-
|
|
11428
|
-
// src/lib/Apis/models/campaign-draft-schedule-dto.ts
|
|
11429
|
-
var CampaignDraftScheduleDtoStatusEnum = /* @__PURE__ */ ((CampaignDraftScheduleDtoStatusEnum2) => {
|
|
11430
|
-
CampaignDraftScheduleDtoStatusEnum2["AXCancelled"] = "AXCancelled";
|
|
11431
|
-
CampaignDraftScheduleDtoStatusEnum2["Deleted"] = "Deleted";
|
|
11432
|
-
CampaignDraftScheduleDtoStatusEnum2["Archived"] = "Archived";
|
|
11433
|
-
CampaignDraftScheduleDtoStatusEnum2["Draft"] = "Draft";
|
|
11434
|
-
CampaignDraftScheduleDtoStatusEnum2["Programmed"] = "Programmed";
|
|
11435
|
-
CampaignDraftScheduleDtoStatusEnum2["Sent"] = "Sent";
|
|
11436
|
-
CampaignDraftScheduleDtoStatusEnum2["AXTested"] = "AXTested";
|
|
11437
|
-
CampaignDraftScheduleDtoStatusEnum2["AXSelected"] = "AXSelected";
|
|
11438
|
-
return CampaignDraftScheduleDtoStatusEnum2;
|
|
11439
|
-
})(CampaignDraftScheduleDtoStatusEnum || {});
|
|
11440
|
-
|
|
11441
|
-
// src/lib/Apis/models/campaign-draft-sending-dto.ts
|
|
11442
|
-
var CampaignDraftSendingDtoStatusEnum = /* @__PURE__ */ ((CampaignDraftSendingDtoStatusEnum2) => {
|
|
11443
|
-
CampaignDraftSendingDtoStatusEnum2["AXCancelled"] = "AXCancelled";
|
|
11444
|
-
CampaignDraftSendingDtoStatusEnum2["Deleted"] = "Deleted";
|
|
11445
|
-
CampaignDraftSendingDtoStatusEnum2["Archived"] = "Archived";
|
|
11446
|
-
CampaignDraftSendingDtoStatusEnum2["Draft"] = "Draft";
|
|
11447
|
-
CampaignDraftSendingDtoStatusEnum2["Programmed"] = "Programmed";
|
|
11448
|
-
CampaignDraftSendingDtoStatusEnum2["Sent"] = "Sent";
|
|
11449
|
-
CampaignDraftSendingDtoStatusEnum2["AXTested"] = "AXTested";
|
|
11450
|
-
CampaignDraftSendingDtoStatusEnum2["AXSelected"] = "AXSelected";
|
|
11451
|
-
return CampaignDraftSendingDtoStatusEnum2;
|
|
11452
|
-
})(CampaignDraftSendingDtoStatusEnum || {});
|
|
11453
|
-
|
|
11454
11595
|
// src/lib/Apis/models/create-address-dto.ts
|
|
11455
11596
|
var CreateAddressDtoAddressTypeEnum = /* @__PURE__ */ ((CreateAddressDtoAddressTypeEnum2) => {
|
|
11456
11597
|
CreateAddressDtoAddressTypeEnum2["Billing"] = "Billing";
|
|
@@ -11518,6 +11659,13 @@ var DiscountStateEnum = /* @__PURE__ */ ((DiscountStateEnum2) => {
|
|
|
11518
11659
|
return DiscountStateEnum2;
|
|
11519
11660
|
})(DiscountStateEnum || {});
|
|
11520
11661
|
|
|
11662
|
+
// src/lib/Apis/models/inventory-alert-dto.ts
|
|
11663
|
+
var InventoryAlertDtoAlertTypeEnum = /* @__PURE__ */ ((InventoryAlertDtoAlertTypeEnum2) => {
|
|
11664
|
+
InventoryAlertDtoAlertTypeEnum2["LOWSTOCK"] = "LOW_STOCK";
|
|
11665
|
+
InventoryAlertDtoAlertTypeEnum2["OUTOFSTOCK"] = "OUT_OF_STOCK";
|
|
11666
|
+
return InventoryAlertDtoAlertTypeEnum2;
|
|
11667
|
+
})(InventoryAlertDtoAlertTypeEnum || {});
|
|
11668
|
+
|
|
11521
11669
|
// src/lib/Apis/models/manual-discount-dto.ts
|
|
11522
11670
|
var ManualDiscountDtoValueTypeEnum = /* @__PURE__ */ ((ManualDiscountDtoValueTypeEnum2) => {
|
|
11523
11671
|
ManualDiscountDtoValueTypeEnum2["PERCENTAGE"] = "PERCENTAGE";
|
|
@@ -11552,6 +11700,29 @@ var ManualOrderDTOPaymentStatusEnum = /* @__PURE__ */ ((ManualOrderDTOPaymentSta
|
|
|
11552
11700
|
return ManualOrderDTOPaymentStatusEnum2;
|
|
11553
11701
|
})(ManualOrderDTOPaymentStatusEnum || {});
|
|
11554
11702
|
|
|
11703
|
+
// src/lib/Apis/models/notification-dto.ts
|
|
11704
|
+
var NotificationDtoTypeEnum = /* @__PURE__ */ ((NotificationDtoTypeEnum2) => {
|
|
11705
|
+
NotificationDtoTypeEnum2["ORDERCONFIRMATION"] = "ORDER_CONFIRMATION";
|
|
11706
|
+
NotificationDtoTypeEnum2["PAYMENTFAILED"] = "PAYMENT_FAILED";
|
|
11707
|
+
NotificationDtoTypeEnum2["ORDERSHIPPED"] = "ORDER_SHIPPED";
|
|
11708
|
+
NotificationDtoTypeEnum2["ORDERDELIVERED"] = "ORDER_DELIVERED";
|
|
11709
|
+
NotificationDtoTypeEnum2["REFUNDPROCESSED"] = "REFUND_PROCESSED";
|
|
11710
|
+
NotificationDtoTypeEnum2["REVIEWREPLY"] = "REVIEW_REPLY";
|
|
11711
|
+
NotificationDtoTypeEnum2["ABANDONEDCARTREMINDER"] = "ABANDONED_CART_REMINDER";
|
|
11712
|
+
NotificationDtoTypeEnum2["PRICEDROPALERT"] = "PRICE_DROP_ALERT";
|
|
11713
|
+
NotificationDtoTypeEnum2["BACKINSTOCK"] = "BACK_IN_STOCK";
|
|
11714
|
+
NotificationDtoTypeEnum2["PASSWORDRESET"] = "PASSWORD_RESET";
|
|
11715
|
+
NotificationDtoTypeEnum2["NEWDEVICELOGIN"] = "NEW_DEVICE_LOGIN";
|
|
11716
|
+
NotificationDtoTypeEnum2["TWOFACODE"] = "TWO_FA_CODE";
|
|
11717
|
+
NotificationDtoTypeEnum2["NEWORDER"] = "NEW_ORDER";
|
|
11718
|
+
NotificationDtoTypeEnum2["LOWSTOCKWARNING"] = "LOW_STOCK_WARNING";
|
|
11719
|
+
NotificationDtoTypeEnum2["NEWRETURNREQUEST"] = "NEW_RETURN_REQUEST";
|
|
11720
|
+
NotificationDtoTypeEnum2["NEWUSERREGISTERED"] = "NEW_USER_REGISTERED";
|
|
11721
|
+
NotificationDtoTypeEnum2["HIGHVALUEORDERALERT"] = "HIGH_VALUE_ORDER_ALERT";
|
|
11722
|
+
NotificationDtoTypeEnum2["PAYOUTFAILED"] = "PAYOUT_FAILED";
|
|
11723
|
+
return NotificationDtoTypeEnum2;
|
|
11724
|
+
})(NotificationDtoTypeEnum || {});
|
|
11725
|
+
|
|
11555
11726
|
// src/lib/Apis/models/order.ts
|
|
11556
11727
|
var OrderOrderTypeEnum = /* @__PURE__ */ ((OrderOrderTypeEnum2) => {
|
|
11557
11728
|
OrderOrderTypeEnum2["Pickup"] = "Pickup";
|
|
@@ -11655,6 +11826,7 @@ var PreferenceUpdateItemTypeEnum = /* @__PURE__ */ ((PreferenceUpdateItemTypeEnu
|
|
|
11655
11826
|
PreferenceUpdateItemTypeEnum2["ORDERSHIPPED"] = "ORDER_SHIPPED";
|
|
11656
11827
|
PreferenceUpdateItemTypeEnum2["ORDERDELIVERED"] = "ORDER_DELIVERED";
|
|
11657
11828
|
PreferenceUpdateItemTypeEnum2["REFUNDPROCESSED"] = "REFUND_PROCESSED";
|
|
11829
|
+
PreferenceUpdateItemTypeEnum2["REVIEWREPLY"] = "REVIEW_REPLY";
|
|
11658
11830
|
PreferenceUpdateItemTypeEnum2["ABANDONEDCARTREMINDER"] = "ABANDONED_CART_REMINDER";
|
|
11659
11831
|
PreferenceUpdateItemTypeEnum2["PRICEDROPALERT"] = "PRICE_DROP_ALERT";
|
|
11660
11832
|
PreferenceUpdateItemTypeEnum2["BACKINSTOCK"] = "BACK_IN_STOCK";
|
|
@@ -11845,7 +12017,7 @@ function Notification2({ notification, onDismiss }) {
|
|
|
11845
12017
|
animate: { opacity: 1, y: 0, scale: 1 },
|
|
11846
12018
|
exit: { opacity: 0, x: 100, scale: 0.95 },
|
|
11847
12019
|
transition: { type: "spring", stiffness: 500, damping: 30 },
|
|
11848
|
-
className: `relative bg-
|
|
12020
|
+
className: `relative bg-hprimary-50 rounded-2xl border-2 ${config.borderColor} shadow-xl overflow-hidden min-w-[320px] max-w-[420px]`,
|
|
11849
12021
|
children: [
|
|
11850
12022
|
/* @__PURE__ */ jsx("div", { className: `h-1 bg-linear-to-r ${config.gradient}` }),
|
|
11851
12023
|
/* @__PURE__ */ jsxs("div", { className: "p-4 flex items-start gap-3", children: [
|
|
@@ -11860,8 +12032,8 @@ function Notification2({ notification, onDismiss }) {
|
|
|
11860
12032
|
}
|
|
11861
12033
|
),
|
|
11862
12034
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
11863
|
-
/* @__PURE__ */ jsx("p", { className: "font-
|
|
11864
|
-
notification.description && /* @__PURE__ */ jsx("p", { className: "
|
|
12035
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold text-[14px] text-[#2B4B7C] mb-1", children: notification.message }),
|
|
12036
|
+
notification.description && /* @__PURE__ */ jsx("p", { className: "text-[12px] text-[#676c80] leading-relaxed", children: notification.description })
|
|
11865
12037
|
] }),
|
|
11866
12038
|
/* @__PURE__ */ jsx(
|
|
11867
12039
|
"button",
|
|
@@ -12770,8 +12942,8 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12770
12942
|
children: /* @__PURE__ */ jsxs("div", { className: "p-8", children: [
|
|
12771
12943
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between mb-6", children: [
|
|
12772
12944
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
12773
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
12774
|
-
/* @__PURE__ */ jsx("h2", { className: "font-
|
|
12945
|
+
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-hprimary uppercase tracking-wide font-medium mb-2", children: product.brand }),
|
|
12946
|
+
/* @__PURE__ */ jsx("h2", { className: "font-semibold text-hsecondary tracking-[-1px]", children: displayName }),
|
|
12775
12947
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mt-2", children: [
|
|
12776
12948
|
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5", children: [...Array(5)].map((_, i) => /* @__PURE__ */ jsx(
|
|
12777
12949
|
Star,
|
|
@@ -12780,7 +12952,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12780
12952
|
},
|
|
12781
12953
|
i
|
|
12782
12954
|
)) }),
|
|
12783
|
-
/* @__PURE__ */ jsxs("span", { className: "
|
|
12955
|
+
/* @__PURE__ */ jsxs("span", { className: "text-[13px] text-hmuted", children: [
|
|
12784
12956
|
product.summary?.averageRating || 0,
|
|
12785
12957
|
" (",
|
|
12786
12958
|
product.summary?.reviewCount || 0,
|
|
@@ -12808,7 +12980,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12808
12980
|
className: "w-full h-full object-contain"
|
|
12809
12981
|
}
|
|
12810
12982
|
),
|
|
12811
|
-
/* @__PURE__ */ jsx("div", { className: "absolute top-4 left-4 flex flex-col gap-2", children: isDiscounted && /* @__PURE__ */ jsx("div", { className: "bg-haccent text-white rounded-full px-3 py-1.5", children: /* @__PURE__ */ jsxs("span", { className: "font-
|
|
12983
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-4 left-4 flex flex-col gap-2", children: isDiscounted && /* @__PURE__ */ jsx("div", { className: "bg-haccent text-white rounded-full px-3 py-1.5", children: /* @__PURE__ */ jsxs("span", { className: "font-bold text-[11px] uppercase", children: [
|
|
12812
12984
|
"-",
|
|
12813
12985
|
discountAmount,
|
|
12814
12986
|
"%"
|
|
@@ -12833,33 +13005,33 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12833
13005
|
] }),
|
|
12834
13006
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
12835
13007
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-4", children: [
|
|
12836
|
-
/* @__PURE__ */ jsxs("span", { className: "font-
|
|
13008
|
+
/* @__PURE__ */ jsxs("span", { className: "font-bold text-[32px] text-haccent", children: [
|
|
12837
13009
|
"$",
|
|
12838
13010
|
displayPrice.toFixed(2)
|
|
12839
13011
|
] }),
|
|
12840
|
-
isDiscounted && /* @__PURE__ */ jsxs("span", { className: "
|
|
13012
|
+
isDiscounted && /* @__PURE__ */ jsxs("span", { className: "text-[20px] text-hmuted line-through", children: [
|
|
12841
13013
|
"$",
|
|
12842
13014
|
displayOriginalPrice.toFixed(2)
|
|
12843
13015
|
] })
|
|
12844
13016
|
] }),
|
|
12845
|
-
/* @__PURE__ */ jsx("div", { className: "mb-6", children: selectedVariant.inventoryCount === 0 ? /* @__PURE__ */ jsx("span", { className: "
|
|
13017
|
+
/* @__PURE__ */ jsx("div", { className: "mb-6", children: selectedVariant.inventoryCount === 0 ? /* @__PURE__ */ jsx("span", { className: "text-[12px] text-red-500 font-medium", children: "Out of Stock" }) : selectedVariant.inventoryCount <= 10 ? /* @__PURE__ */ jsxs("span", { className: "text-[12px] text-hprimary font-medium flex items-center gap-1", children: [
|
|
12846
13018
|
/* @__PURE__ */ jsx(Package, { className: "size-3" }),
|
|
12847
13019
|
"Only ",
|
|
12848
13020
|
selectedVariant.inventoryCount,
|
|
12849
13021
|
" left in stock"
|
|
12850
|
-
] }) : /* @__PURE__ */ jsxs("span", { className: "
|
|
13022
|
+
] }) : /* @__PURE__ */ jsxs("span", { className: "text-[12px] text-green-600 font-medium flex items-center gap-1", children: [
|
|
12851
13023
|
/* @__PURE__ */ jsx(Package, { className: "size-3" }),
|
|
12852
13024
|
"In Stock"
|
|
12853
13025
|
] }) }),
|
|
12854
13026
|
/* @__PURE__ */ jsx(
|
|
12855
13027
|
"div",
|
|
12856
13028
|
{
|
|
12857
|
-
className: "
|
|
13029
|
+
className: "text-[14px] text-hmuted leading-[1.7] mb-6 max-w-full overflow-hidden break-words",
|
|
12858
13030
|
dangerouslySetInnerHTML: { __html: product.description }
|
|
12859
13031
|
}
|
|
12860
13032
|
),
|
|
12861
13033
|
/* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
|
|
12862
|
-
/* @__PURE__ */ jsxs("h3", { className: "font-
|
|
13034
|
+
/* @__PURE__ */ jsxs("h3", { className: "font-semibold text-[13px] text-hsecondary mb-3", children: [
|
|
12863
13035
|
"Selected Variant: ",
|
|
12864
13036
|
/* @__PURE__ */ jsx("span", { className: "font-normal text-hmuted", children: product.variants[selectedVariantIndex].name })
|
|
12865
13037
|
] }),
|
|
@@ -12890,10 +13062,10 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12890
13062
|
] }),
|
|
12891
13063
|
/* @__PURE__ */ jsx("div", { className: "mb-6 p-4 bg-gray-50 rounded-xl", children: /* @__PURE__ */ jsx("ul", { className: "space-y-2", children: product.tags.slice(0, 3).map((feature, index) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2", children: [
|
|
12892
13064
|
/* @__PURE__ */ jsx(Check, { className: "size-4 text-hprimary shrink-0 mt-0.5" }),
|
|
12893
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
13065
|
+
/* @__PURE__ */ jsx("span", { className: "text-[12px] text-hmuted", children: feature })
|
|
12894
13066
|
] }, index)) }) }),
|
|
12895
13067
|
/* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
|
|
12896
|
-
/* @__PURE__ */ jsx("h3", { className: "font-
|
|
13068
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-[13px] text-hsecondary mb-3", children: "Quantity" }),
|
|
12897
13069
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
12898
13070
|
/* @__PURE__ */ jsx(
|
|
12899
13071
|
"button",
|
|
@@ -12922,7 +13094,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12922
13094
|
{
|
|
12923
13095
|
onClick: handleAddToCart,
|
|
12924
13096
|
disabled: addedToCart || selectedVariant.inventoryCount === 0,
|
|
12925
|
-
className: `w-full font-
|
|
13097
|
+
className: `w-full font-medium text-[14px] px-6 py-4 rounded-full transition-all duration-300 flex items-center justify-center gap-3 ${addedToCart ? "bg-green-500 text-white" : "bg-haccent text-white hover:bg-[#d66f45] hover:shadow-lg disabled:opacity-50 disabled:cursor-not-allowed"}`,
|
|
12926
13098
|
children: isAddingToCart ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12927
13099
|
/* @__PURE__ */ jsxs("svg", { className: "animate-spin h-5 w-5", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
|
|
12928
13100
|
/* @__PURE__ */ jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
|
|
@@ -12941,7 +13113,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12941
13113
|
onClick: () => {
|
|
12942
13114
|
onClose();
|
|
12943
13115
|
},
|
|
12944
|
-
className: "w-full font-
|
|
13116
|
+
className: "w-full font-medium text-[13px] px-6 py-3 rounded-full bg-white text-hsecondary border-2 border-hprimary hover:bg-gray-50 transition-all flex items-center justify-center gap-2",
|
|
12945
13117
|
children: [
|
|
12946
13118
|
"View Full Details",
|
|
12947
13119
|
/* @__PURE__ */ jsx(ExternalLink, { className: "size-4" })
|
|
@@ -13093,42 +13265,42 @@ function ProductCard({
|
|
|
13093
13265
|
children: /* @__PURE__ */ jsx(Eye, { className: "size-4 text-[#2B4B7C]" })
|
|
13094
13266
|
}
|
|
13095
13267
|
),
|
|
13096
|
-
displayInventoryCount === 0 && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-black/50 backdrop-blur-xs flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "bg-white rounded-full px-4 py-2", children: /* @__PURE__ */ jsx("span", { className: "font-
|
|
13268
|
+
displayInventoryCount === 0 && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-black/50 backdrop-blur-xs flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "bg-white rounded-full px-4 py-2", children: /* @__PURE__ */ jsx("span", { className: "font-bold text-[11px] text-[#2B4B7C] uppercase", children: "Out of Stock" }) }) })
|
|
13097
13269
|
]
|
|
13098
13270
|
}
|
|
13099
13271
|
),
|
|
13100
13272
|
/* @__PURE__ */ jsxs("div", { className: "p-4 flex-1 flex flex-col", children: [
|
|
13101
13273
|
/* @__PURE__ */ jsxs("div", { className: "p-0 flex-1 flex flex-col", children: [
|
|
13102
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 mb-2 flex-wrap", children: displayIsDiscounted && /* @__PURE__ */ jsx("span", { className: "bg-
|
|
13274
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 mb-2 flex-wrap", children: displayIsDiscounted && /* @__PURE__ */ jsx("span", { className: "bg-haccent-500 text-white rounded-full px-2 py-0.5 flex items-center gap-1", children: /* @__PURE__ */ jsxs("span", { className: "font-bold text-[8px] uppercase", children: [
|
|
13103
13275
|
"-",
|
|
13104
13276
|
displayDiscountAmount,
|
|
13105
13277
|
"%"
|
|
13106
13278
|
] }) }) }),
|
|
13107
|
-
/* @__PURE__ */ jsx("div", { className: "mb-1", children: /* @__PURE__ */ jsx("p", { className: "
|
|
13279
|
+
/* @__PURE__ */ jsx("div", { className: "mb-1", children: /* @__PURE__ */ jsx("p", { className: "text-xs text-hsecondary uppercase tracking-wide font-medium", children: product.brand }) }),
|
|
13108
13280
|
/* @__PURE__ */ jsxs("div", { className: "h-[40px] mb-3", children: [
|
|
13109
|
-
/* @__PURE__ */ jsx("h3", { className: "text-sm font-
|
|
13110
|
-
selectedVariant && /* @__PURE__ */ jsx("p", { className: "text-xs
|
|
13281
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-[#2B4B7C] line-clamp-2", children: product.name }),
|
|
13282
|
+
selectedVariant && /* @__PURE__ */ jsx("p", { className: "text-xs text-[#676c80]", children: selectedVariant.name })
|
|
13111
13283
|
] }),
|
|
13112
13284
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 my-2", children: [
|
|
13113
13285
|
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5", children: [...Array(5)].map((_, i) => /* @__PURE__ */ jsx(
|
|
13114
13286
|
Star,
|
|
13115
13287
|
{
|
|
13116
|
-
className: `size-4 ${i < Math.floor(product.summary?.averageRating || 0) ? "text-
|
|
13288
|
+
className: `size-4 ${i < Math.floor(product.summary?.averageRating || 0) ? "text-hsecondary fill-hsecondary-500" : "text-gray-300"}`
|
|
13117
13289
|
},
|
|
13118
13290
|
i
|
|
13119
13291
|
)) }),
|
|
13120
|
-
/* @__PURE__ */ jsxs("span", { className: "
|
|
13292
|
+
/* @__PURE__ */ jsxs("span", { className: "text-[10px] text-[#676c80] ", children: [
|
|
13121
13293
|
"(",
|
|
13122
13294
|
product.summary?.reviewCount || 0,
|
|
13123
13295
|
")"
|
|
13124
13296
|
] })
|
|
13125
13297
|
] }),
|
|
13126
13298
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 mb-3", children: [
|
|
13127
|
-
/* @__PURE__ */ jsxs("span", { className: "font-
|
|
13299
|
+
/* @__PURE__ */ jsxs("span", { className: "font-bold text-md text-hprimary-600", children: [
|
|
13128
13300
|
"$",
|
|
13129
13301
|
displayFinalPrice.toFixed(2)
|
|
13130
13302
|
] }),
|
|
13131
|
-
displayIsDiscounted && /* @__PURE__ */ jsxs("span", { className: "
|
|
13303
|
+
displayIsDiscounted && /* @__PURE__ */ jsxs("span", { className: "text-sm text-[#676c80] line-through", children: [
|
|
13132
13304
|
"$",
|
|
13133
13305
|
displayPriceBeforeDiscount.toFixed(2)
|
|
13134
13306
|
] })
|
|
@@ -13203,7 +13375,7 @@ function ProductCard({
|
|
|
13203
13375
|
}
|
|
13204
13376
|
},
|
|
13205
13377
|
disabled: isAddingToCart || variantImages.length > 0 && !selectedVariantId || displayInventoryCount === 0,
|
|
13206
|
-
className: "w-full font-
|
|
13378
|
+
className: "w-full font-medium text-[11px] px-3 py-2 rounded-full bg-hsecondary text-white hover:bg-hsecondary/80 hover:shadow-lg transition-all duration-300 flex items-center justify-center gap-1.5 disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer",
|
|
13207
13379
|
children: [
|
|
13208
13380
|
/* @__PURE__ */ jsx(ShoppingCart, { className: "h-4 w-4" }),
|
|
13209
13381
|
displayInventoryCount === 0 ? "Out of Stock" : "Add to Cart"
|
|
@@ -13353,8 +13525,6 @@ function useProducts(filters, page = 1, limit = 20) {
|
|
|
13353
13525
|
],
|
|
13354
13526
|
queryFn: async () => {
|
|
13355
13527
|
const response = await new ProductsApi(AXIOS_CONFIG).getAllProducts(
|
|
13356
|
-
filters?.search ?? "",
|
|
13357
|
-
// searchTerm
|
|
13358
13528
|
filters?.maxPrice,
|
|
13359
13529
|
// maxPrice
|
|
13360
13530
|
filters?.minPrice,
|
|
@@ -13560,52 +13730,6 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
13560
13730
|
() => [...categories].sort((a, b) => (b.productCount ?? 0) - (a.productCount ?? 0)).slice(0, 6),
|
|
13561
13731
|
[categories]
|
|
13562
13732
|
);
|
|
13563
|
-
const productInsights = useMemo(() => {
|
|
13564
|
-
if (!products.length) {
|
|
13565
|
-
return { newArrivals: 0, inStockCount: 0 };
|
|
13566
|
-
}
|
|
13567
|
-
const monthAgo = Date.now() - 30 * 24 * 60 * 60 * 1e3;
|
|
13568
|
-
let newArrivals2 = 0;
|
|
13569
|
-
let inStockCount = 0;
|
|
13570
|
-
products.forEach((product) => {
|
|
13571
|
-
if (product.summary?.totalInventory > 0) inStockCount += 1;
|
|
13572
|
-
if (new Date(product.createdAt).getTime() >= monthAgo) newArrivals2 += 1;
|
|
13573
|
-
});
|
|
13574
|
-
return { newArrivals: newArrivals2, inStockCount };
|
|
13575
|
-
}, [products]);
|
|
13576
|
-
useMemo(
|
|
13577
|
-
() => [
|
|
13578
|
-
{
|
|
13579
|
-
id: "new",
|
|
13580
|
-
label: "New arrivals",
|
|
13581
|
-
value: productInsights.newArrivals ? productInsights.newArrivals.toLocaleString() : isLoading ? "..." : "0",
|
|
13582
|
-
helper: filters.newArrivals ? "Filter active: showing last 30 days" : "Click to show last 30 days",
|
|
13583
|
-
icon: Sparkles
|
|
13584
|
-
},
|
|
13585
|
-
{
|
|
13586
|
-
id: "stock",
|
|
13587
|
-
label: "Available now",
|
|
13588
|
-
value: productInsights.inStockCount ? productInsights.inStockCount.toLocaleString() : isLoading ? "..." : "0",
|
|
13589
|
-
helper: "Ready to ship today",
|
|
13590
|
-
icon: ShieldCheck
|
|
13591
|
-
},
|
|
13592
|
-
{
|
|
13593
|
-
id: "catalogue",
|
|
13594
|
-
label: "Total products",
|
|
13595
|
-
value: pagination.total || products.length ? (pagination.total || products.length).toLocaleString() : isLoading ? "..." : "0",
|
|
13596
|
-
helper: "Across all categories",
|
|
13597
|
-
icon: TrendingUp
|
|
13598
|
-
}
|
|
13599
|
-
],
|
|
13600
|
-
[
|
|
13601
|
-
isLoading,
|
|
13602
|
-
pagination.total,
|
|
13603
|
-
productInsights.inStockCount,
|
|
13604
|
-
productInsights.newArrivals,
|
|
13605
|
-
products.length,
|
|
13606
|
-
filters.newArrivals
|
|
13607
|
-
]
|
|
13608
|
-
);
|
|
13609
13733
|
const filteredProducts = useMemo(() => {
|
|
13610
13734
|
if (isLoading) return products;
|
|
13611
13735
|
let items = [...products];
|
|
@@ -13991,9 +14115,9 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
13991
14115
|
return Package;
|
|
13992
14116
|
};
|
|
13993
14117
|
const renderFiltersPanel = () => /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", { className: "space-y-6", children: /* @__PURE__ */ jsx("div", { className: `lg:w-72 ${showFilters ? "block rounded-full" : "hidden lg:block"}`, children: /* @__PURE__ */ jsxs("div", { className: "bg-white rounded-[24px] p-6 border-2 border-gray-100 sticky top-24", children: [
|
|
13994
|
-
/* @__PURE__ */ jsx("h3", { className: "font-
|
|
14118
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-hsecondary", children: "Filters" }),
|
|
13995
14119
|
/* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
|
|
13996
|
-
/* @__PURE__ */ jsx("label", { className: "
|
|
14120
|
+
/* @__PURE__ */ jsx("label", { className: "text-[12px] text-hmuted mb-2 block font-medium", children: "Search Products" }),
|
|
13997
14121
|
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
13998
14122
|
/* @__PURE__ */ jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-hmuted" }),
|
|
13999
14123
|
/* @__PURE__ */ jsx(
|
|
@@ -14003,7 +14127,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14003
14127
|
placeholder: "Search...",
|
|
14004
14128
|
value: searchQuery,
|
|
14005
14129
|
onChange: handleInputChange,
|
|
14006
|
-
className: "w-full pl-10 pr-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-hprimary focus:outline-hidden
|
|
14130
|
+
className: "w-full pl-10 pr-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-hprimary focus:outline-hidden text-[13px] text-hsecondary"
|
|
14007
14131
|
}
|
|
14008
14132
|
)
|
|
14009
14133
|
] })
|
|
@@ -14015,7 +14139,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14015
14139
|
onClick: () => toggleFilterSection("category"),
|
|
14016
14140
|
className: "w-full flex items-center justify-between mb-3",
|
|
14017
14141
|
children: [
|
|
14018
|
-
/* @__PURE__ */ jsx("label", { className: "
|
|
14142
|
+
/* @__PURE__ */ jsx("label", { className: "text-[12px] text-hmuted font-medium cursor-pointer", children: "Category" }),
|
|
14019
14143
|
expandedFilterSections.category ? /* @__PURE__ */ jsx(ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.category ? "rotate-180" : ""}` }) : /* @__PURE__ */ jsx(ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.category ? "rotate-180" : ""}` })
|
|
14020
14144
|
]
|
|
14021
14145
|
}
|
|
@@ -14032,7 +14156,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14032
14156
|
if (!isExpanded) toggleCategoryExpand(categoryId);
|
|
14033
14157
|
handleCategoryChange(categoryId);
|
|
14034
14158
|
},
|
|
14035
|
-
className: `w-full text-left px-4 py-3 rounded-xl
|
|
14159
|
+
className: `w-full text-left px-4 py-3 rounded-xl text-[13px] transition-all flex items-center gap-3 ${isCategoryActive ? "bg-hprimary text-white shadow-lg" : "text-hsecondary hover:bg-gray-50 border-2 border-gray-100"}`,
|
|
14036
14160
|
children: [
|
|
14037
14161
|
/* @__PURE__ */ jsx(Icon, { className: "size-4" }),
|
|
14038
14162
|
category.name
|
|
@@ -14049,7 +14173,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14049
14173
|
onClick: () => toggleFilterSection("brand"),
|
|
14050
14174
|
className: "w-full flex items-center justify-between mb-3",
|
|
14051
14175
|
children: [
|
|
14052
|
-
/* @__PURE__ */ jsx("label", { className: "
|
|
14176
|
+
/* @__PURE__ */ jsx("label", { className: "text-[12px] text-hmuted font-medium cursor-pointer", children: "Brand" }),
|
|
14053
14177
|
/* @__PURE__ */ jsx(ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.brand ? "rotate-180" : ""}` })
|
|
14054
14178
|
]
|
|
14055
14179
|
}
|
|
@@ -14060,7 +14184,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14060
14184
|
"button",
|
|
14061
14185
|
{
|
|
14062
14186
|
onClick: () => handleBrandChange(brand),
|
|
14063
|
-
className: `w-full text-left px-4 py-3 rounded-xl
|
|
14187
|
+
className: `w-full text-left px-4 py-3 rounded-xl text-[13px] transition-all ${isSelected ? "bg-hprimary text-white shadow-lg" : "text-hsecondary hover:bg-gray-50 border-2 border-gray-100"}`,
|
|
14064
14188
|
children: brand
|
|
14065
14189
|
},
|
|
14066
14190
|
brand
|
|
@@ -14074,7 +14198,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14074
14198
|
onClick: () => toggleFilterSection("availability"),
|
|
14075
14199
|
className: "w-full flex items-center justify-between mb-3",
|
|
14076
14200
|
children: [
|
|
14077
|
-
/* @__PURE__ */ jsx("label", { className: "
|
|
14201
|
+
/* @__PURE__ */ jsx("label", { className: "text-[12px] text-hmuted font-medium cursor-pointer", children: "Availability" }),
|
|
14078
14202
|
/* @__PURE__ */ jsx(ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.availability ? "rotate-180" : ""}` })
|
|
14079
14203
|
]
|
|
14080
14204
|
}
|
|
@@ -14083,7 +14207,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14083
14207
|
"button",
|
|
14084
14208
|
{
|
|
14085
14209
|
onClick: handleToggleStock,
|
|
14086
|
-
className: `w-full flex items-center justify-between px-4 py-3 rounded-xl
|
|
14210
|
+
className: `w-full flex items-center justify-between px-4 py-3 rounded-xl text-[13px] transition-all border-2 ${inStockOnly ? "bg-hprimary text-white shadow-lg" : "text-hsecondary hover:bg-gray-50 border-2 border-gray-100"}`,
|
|
14087
14211
|
children: "In Stock Only"
|
|
14088
14212
|
}
|
|
14089
14213
|
) })
|
|
@@ -14095,7 +14219,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14095
14219
|
onClick: () => toggleFilterSection("price"),
|
|
14096
14220
|
className: "w-full flex items-center justify-between mb-3",
|
|
14097
14221
|
children: [
|
|
14098
|
-
/* @__PURE__ */ jsx("label", { className: "
|
|
14222
|
+
/* @__PURE__ */ jsx("label", { className: "text-[12px] text-hmuted font-medium cursor-pointer", children: "Price Range" }),
|
|
14099
14223
|
/* @__PURE__ */ jsx(ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.price ? "rotate-180" : ""}` })
|
|
14100
14224
|
]
|
|
14101
14225
|
}
|
|
@@ -14108,7 +14232,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14108
14232
|
{
|
|
14109
14233
|
type: "button",
|
|
14110
14234
|
onClick: () => handlePriceRangeSelect(range.value),
|
|
14111
|
-
className: `w-full flex items-center justify-between px-4 py-3 rounded-xl
|
|
14235
|
+
className: `w-full flex items-center justify-between px-4 py-3 rounded-xl text-[13px] transition-all border-2 ${isActive ? "bg-hprimary text-white shadow-lg" : "text-hsecondary hover:bg-gray-50 border-2 border-gray-100"}`,
|
|
14112
14236
|
children: range.label
|
|
14113
14237
|
},
|
|
14114
14238
|
range.value
|
|
@@ -14123,7 +14247,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14123
14247
|
placeholder: "Min",
|
|
14124
14248
|
value: customPrice.min,
|
|
14125
14249
|
onChange: (event) => setCustomPrice((current) => ({ ...current, min: event.target.value })),
|
|
14126
|
-
className: "w-1/2 px-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-hprimary focus:outline-hidden
|
|
14250
|
+
className: "w-1/2 px-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-hprimary focus:outline-hidden text-[13px] text-hsecondary"
|
|
14127
14251
|
}
|
|
14128
14252
|
),
|
|
14129
14253
|
/* @__PURE__ */ jsx(
|
|
@@ -14134,7 +14258,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14134
14258
|
placeholder: "Max",
|
|
14135
14259
|
value: customPrice.max,
|
|
14136
14260
|
onChange: (event) => setCustomPrice((current) => ({ ...current, max: event.target.value })),
|
|
14137
|
-
className: "w-1/2 px-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-hprimary focus:outline-hidden
|
|
14261
|
+
className: "w-1/2 px-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-hprimary focus:outline-hidden text-[13px] text-hsecondary"
|
|
14138
14262
|
}
|
|
14139
14263
|
)
|
|
14140
14264
|
] }),
|
|
@@ -14201,8 +14325,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14201
14325
|
]
|
|
14202
14326
|
}
|
|
14203
14327
|
) }) }),
|
|
14204
|
-
/* @__PURE__ */ jsx("section", { className: "py-8 bg-white", children: /* @__PURE__ */ jsxs("div", { className: "container mx-auto px-4", children: [
|
|
14205
|
-
/* @__PURE__ */ jsx("h2", { className: "text-2xl md:text-3xl font-
|
|
14328
|
+
/* @__PURE__ */ jsx("section", { className: "py-8 bg-white/50", children: /* @__PURE__ */ jsxs("div", { className: "container mx-auto px-4", children: [
|
|
14329
|
+
/* @__PURE__ */ jsx("h2", { className: "text-2xl md:text-3xl font-semibold text-hsecondary mb-6", children: "Shop by Category" }),
|
|
14206
14330
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-4", children: [
|
|
14207
14331
|
/* @__PURE__ */ jsx(
|
|
14208
14332
|
motion.button,
|
|
@@ -14213,8 +14337,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14213
14337
|
className: `group relative overflow-hidden rounded-[24px] p-6 min-h-[180px] min-w-[170px] transition-all duration-300 ${!categoryFilter ? "bg-linear-to-br from-hprimary to-hsecondary text-white shadow-xl scale-105" : "bg-linear-to-br from-gray-50 to-white hover:shadow-lg border-2 border-gray-100 hover:border-hprimary"}`,
|
|
14214
14338
|
children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
14215
14339
|
/* @__PURE__ */ jsx("div", { className: `size-12 rounded-full mb-3 mx-auto flex items-center justify-center transition-all ${!categoryFilter ? "bg-white/20" : "bg-linear-to-br from-hprimary-10 to-hsecondary-10 group-hover:scale-110"}`, children: /* @__PURE__ */ jsx(Package, { className: `size-6 ${!categoryFilter ? "text-white" : "text-hprimary"}` }) }),
|
|
14216
|
-
/* @__PURE__ */ jsx("h3", { className: `font-
|
|
14217
|
-
/* @__PURE__ */ jsx("p", { className: `
|
|
14340
|
+
/* @__PURE__ */ jsx("h3", { className: `font-semibold text-[14px] mb-1.5 ${!categoryFilter ? "text-white" : "text-hsecondary"}`, children: "All Products" }),
|
|
14341
|
+
/* @__PURE__ */ jsx("p", { className: `text-[11px] ${!categoryFilter ? "text-white/80" : "text-hmuted"}`, children: "Browse Everything" })
|
|
14218
14342
|
] })
|
|
14219
14343
|
}
|
|
14220
14344
|
),
|
|
@@ -14232,8 +14356,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14232
14356
|
className: `group relative overflow-hidden rounded-[24px] p-6 min-h-[180px] min-w-[170px] transition-all duration-300 ${isSelected ? "bg-linear-to-br from-hprimary to-hsecondary text-white shadow-xl scale-105" : "bg-linear-to-br from-gray-50 to-white hover:shadow-lg border-2 border-gray-100 hover:border-hprimary"}`,
|
|
14233
14357
|
children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
14234
14358
|
/* @__PURE__ */ jsx("div", { className: `size-12 rounded-full mb-3 mx-auto flex items-center justify-center transition-all ${isSelected ? "bg-white/20" : "bg-linear-to-br from-hprimary-10 to-hsecondary-10 group-hover:scale-110"}`, children: /* @__PURE__ */ jsx(Icon, { className: `size-6 ${isSelected ? "text-white" : "text-hprimary"}` }) }),
|
|
14235
|
-
/* @__PURE__ */ jsx("h3", { className: `font-
|
|
14236
|
-
/* @__PURE__ */ jsx("p", { className: `
|
|
14359
|
+
/* @__PURE__ */ jsx("h3", { className: `font-semibold text-[14px] mb-1.5 ${isSelected ? "text-white" : "text-hsecondary"}`, children: category.name }),
|
|
14360
|
+
/* @__PURE__ */ jsx("p", { className: `text-[11px] ${isSelected ? "text-white/80" : "text-hmuted"}`, children: category.description })
|
|
14237
14361
|
] })
|
|
14238
14362
|
},
|
|
14239
14363
|
categoryId
|
|
@@ -14382,7 +14506,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14382
14506
|
event.stopPropagation();
|
|
14383
14507
|
router.push(buildPath(`/products/${product._id}`));
|
|
14384
14508
|
},
|
|
14385
|
-
className: "w-full font-
|
|
14509
|
+
className: "w-full font-medium text-sm px-3 py-2 rounded-xl bg-hsecondary text-white hover:opacity-80 hover:shadow-lg transition-all duration-300 flex items-center justify-center gap-1.5 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
14386
14510
|
children: "View product"
|
|
14387
14511
|
}
|
|
14388
14512
|
)
|
|
@@ -14671,14 +14795,14 @@ function StarRating({
|
|
|
14671
14795
|
className: `transition-all ${interactive && "cursor-pointer hover:scale-110"} ${!interactive && "cursor-default"}`,
|
|
14672
14796
|
children: isHalfFilled ? /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
14673
14797
|
/* @__PURE__ */ jsx(Star, { className: `${sizeClasses[size]} text-gray-300` }),
|
|
14674
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 overflow-hidden", style: { width: "50%" }, children: /* @__PURE__ */ jsx(Star, { className: `${sizeClasses[size]} fill-
|
|
14798
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 overflow-hidden", style: { width: "50%" }, children: /* @__PURE__ */ jsx(Star, { className: `${sizeClasses[size]} fill-haccent-500 text-haccent-500` }) })
|
|
14675
14799
|
] }) : /* @__PURE__ */ jsx(
|
|
14676
14800
|
Star,
|
|
14677
14801
|
{
|
|
14678
14802
|
className: `
|
|
14679
14803
|
${sizeClasses[size]}
|
|
14680
|
-
${isFilled ? "fill-
|
|
14681
|
-
${interactive && hoverRating > 0 && index < hoverRating ? "fill-
|
|
14804
|
+
${isFilled ? "fill-haccent-500 text-haccent-500" : "text-gray-300"}
|
|
14805
|
+
${interactive && hoverRating > 0 && index < hoverRating ? "fill-haccent-500 text-haccent-500" : ""}
|
|
14682
14806
|
`
|
|
14683
14807
|
}
|
|
14684
14808
|
)
|
|
@@ -14722,12 +14846,12 @@ function RatingDistribution({ reviews, averageRating }) {
|
|
|
14722
14846
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
14723
14847
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 w-16", children: [
|
|
14724
14848
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-700", children: rating }),
|
|
14725
|
-
/* @__PURE__ */ jsx(Star, { className: "size-3 fill-
|
|
14849
|
+
/* @__PURE__ */ jsx(Star, { className: "size-3 fill-haccent-500 text-haccent-500" })
|
|
14726
14850
|
] }),
|
|
14727
14851
|
/* @__PURE__ */ jsx("div", { className: "flex-1 h-2 bg-gray-200 rounded-full overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
14728
14852
|
"div",
|
|
14729
14853
|
{
|
|
14730
|
-
className: "h-full bg-
|
|
14854
|
+
className: "h-full bg-haccent-500 transition-all duration-300",
|
|
14731
14855
|
style: { width: `${percentage}%` }
|
|
14732
14856
|
}
|
|
14733
14857
|
) }),
|
|
@@ -14745,7 +14869,7 @@ function RatingDistribution({ reviews, averageRating }) {
|
|
|
14745
14869
|
function ReviewCard({ review, showProductInfo = false }) {
|
|
14746
14870
|
const reviewDate = new Date(review.createdAt);
|
|
14747
14871
|
const replyDate = review.replyDate ? new Date(review.replyDate) : null;
|
|
14748
|
-
return /* @__PURE__ */ jsxs("div", { className: "border border-gray-200 rounded-lg p-4 bg-
|
|
14872
|
+
return /* @__PURE__ */ jsxs("div", { className: "border border-gray-200 rounded-lg p-4 bg-hprimary-50", children: [
|
|
14749
14873
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between mb-3", children: [
|
|
14750
14874
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
14751
14875
|
/* @__PURE__ */ jsx("div", { className: "w-10 h-10 bg-hsecondary/10 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsx(User, { className: "size-5 text-hsecondary" }) }),
|
|
@@ -14756,7 +14880,7 @@ function ReviewCard({ review, showProductInfo = false }) {
|
|
|
14756
14880
|
] }),
|
|
14757
14881
|
/* @__PURE__ */ jsx(StarRating, { rating: review.rating, size: "sm" })
|
|
14758
14882
|
] }),
|
|
14759
|
-
review.reviewType && /* @__PURE__ */ jsx("span", { className: "inline-block px-2 py-1 text-xs bg-
|
|
14883
|
+
review.reviewType && /* @__PURE__ */ jsx("span", { className: "inline-block px-2 py-1 text-xs bg-hprimary-100 text-gray-600 rounded mb-2", children: review.reviewType }),
|
|
14760
14884
|
/* @__PURE__ */ jsx("p", { className: "text-gray-700 text-sm leading-relaxed mb-3", children: review.review }),
|
|
14761
14885
|
review.reply && /* @__PURE__ */ jsxs("div", { className: "mt-4 pl-4 border-l-2 border-hsecondary bg-gray-50 p-3 rounded", children: [
|
|
14762
14886
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
@@ -14827,7 +14951,7 @@ function ReviewsList({ reviews, isLoading }) {
|
|
|
14827
14951
|
"button",
|
|
14828
14952
|
{
|
|
14829
14953
|
onClick: () => setFilterRating("all"),
|
|
14830
|
-
className: `px-3 py-1 text-sm rounded-full transition-colors ${filterRating === "all" ? "bg-
|
|
14954
|
+
className: `px-3 py-1 text-sm rounded-full transition-colors ${filterRating === "all" ? "bg-haccent-500 text-white" : "bg-gray-100 text-gray-700 hover:bg-gray-200"}`,
|
|
14831
14955
|
children: "All"
|
|
14832
14956
|
}
|
|
14833
14957
|
),
|
|
@@ -14835,7 +14959,7 @@ function ReviewsList({ reviews, isLoading }) {
|
|
|
14835
14959
|
"button",
|
|
14836
14960
|
{
|
|
14837
14961
|
onClick: () => setFilterRating(rating),
|
|
14838
|
-
className: `flex items-center gap-1 px-3 py-1 text-sm rounded-full transition-colors ${filterRating === rating ? "bg-
|
|
14962
|
+
className: `flex items-center gap-1 px-3 py-1 text-sm rounded-full transition-colors ${filterRating === rating ? "bg-haccent-500 text-white" : "bg-gray-100 text-gray-700 hover:bg-gray-200"}`,
|
|
14839
14963
|
children: [
|
|
14840
14964
|
rating,
|
|
14841
14965
|
/* @__PURE__ */ jsx(Star, { className: "size-3 fill-current" })
|
|
@@ -14852,7 +14976,7 @@ function ReviewsList({ reviews, isLoading }) {
|
|
|
14852
14976
|
{
|
|
14853
14977
|
value: sortBy,
|
|
14854
14978
|
onChange: (e) => setSortBy(e.target.value),
|
|
14855
|
-
className: "px-3 py-1 text-sm border border-gray-300 rounded-lg focus:ring-2 focus:ring-
|
|
14979
|
+
className: "px-3 py-1 text-sm border border-gray-300 rounded-lg focus:ring-2 focus:ring-haccent-500 focus:border-transparent",
|
|
14856
14980
|
children: [
|
|
14857
14981
|
/* @__PURE__ */ jsx("option", { value: "recent", children: "Most Recent" }),
|
|
14858
14982
|
/* @__PURE__ */ jsx("option", { value: "oldest", children: "Oldest First" }),
|
|
@@ -15121,7 +15245,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15121
15245
|
"button",
|
|
15122
15246
|
{
|
|
15123
15247
|
onClick: () => router.push(buildPath("/shop")),
|
|
15124
|
-
className: "flex items-center gap-2
|
|
15248
|
+
className: "flex items-center gap-2 text-[13px] text-hmuted hover:text-hprimary transition-colors",
|
|
15125
15249
|
children: [
|
|
15126
15250
|
/* @__PURE__ */ jsx(ChevronLeft, { className: "size-4" }),
|
|
15127
15251
|
"Back to Shop"
|
|
@@ -15160,7 +15284,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15160
15284
|
className: "object-contain"
|
|
15161
15285
|
}
|
|
15162
15286
|
) : null,
|
|
15163
|
-
/* @__PURE__ */ jsx("div", { className: "absolute top-6 left-6 flex flex-col gap-3", children: discount > 0 && /* @__PURE__ */ jsx("div", { className: "bg-
|
|
15287
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-6 left-6 flex flex-col gap-3", children: discount > 0 && /* @__PURE__ */ jsx("div", { className: "bg-hsecondary text-white rounded-full px-4 py-2", children: /* @__PURE__ */ jsxs("span", { className: "font-bold text-[12px] uppercase tracking-wide", children: [
|
|
15164
15288
|
"Save ",
|
|
15165
15289
|
discount,
|
|
15166
15290
|
"%"
|
|
@@ -15192,21 +15316,21 @@ function ProductDetailScreen({ productId }) {
|
|
|
15192
15316
|
] }) }) }),
|
|
15193
15317
|
/* @__PURE__ */ jsxs("aside", { className: "space-y-6 lg:sticky lg:top-24", children: [
|
|
15194
15318
|
/* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
15195
|
-
/* @__PURE__ */ jsxs("p", { className: "
|
|
15319
|
+
/* @__PURE__ */ jsxs("p", { className: "text-[12px] text-hprimary uppercase tracking-wide font-medium mb-2", children: [
|
|
15196
15320
|
product.brand,
|
|
15197
15321
|
" \u2022 ",
|
|
15198
15322
|
product.categoryIds?.[0]?.name || "Uncategorized"
|
|
15199
15323
|
] }),
|
|
15200
|
-
/* @__PURE__ */ jsx("h1", { className: "text-3xl font-
|
|
15324
|
+
/* @__PURE__ */ jsx("h1", { className: "text-3xl font-semibold text-hsecondary tracking-[-1.5px] mb-3", children: selectedVariant?.name || product.name }),
|
|
15201
15325
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
15202
15326
|
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-1", children: [...Array(5)].map((_, i) => /* @__PURE__ */ jsx(
|
|
15203
15327
|
Star,
|
|
15204
15328
|
{
|
|
15205
|
-
className: `size-4 ${i < Math.floor(reviewStats.averageRating) ? "text-
|
|
15329
|
+
className: `size-4 ${i < Math.floor(reviewStats.averageRating) ? "text-haccent-500 fill-haccent-500" : "text-gray-300"}`
|
|
15206
15330
|
},
|
|
15207
15331
|
i
|
|
15208
15332
|
)) }),
|
|
15209
|
-
/* @__PURE__ */ jsxs("span", { className: "
|
|
15333
|
+
/* @__PURE__ */ jsxs("span", { className: "text-[14px] text-hmuted", children: [
|
|
15210
15334
|
reviewStats.averageRating,
|
|
15211
15335
|
" (",
|
|
15212
15336
|
reviewStats.reviewCount,
|
|
@@ -15216,16 +15340,16 @@ function ProductDetailScreen({ productId }) {
|
|
|
15216
15340
|
] })
|
|
15217
15341
|
] }),
|
|
15218
15342
|
selectedVariant && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-6 pb-6 border-b-2 border-gray-100", children: [
|
|
15219
|
-
/* @__PURE__ */ jsxs("span", { className: "font-
|
|
15343
|
+
/* @__PURE__ */ jsxs("span", { className: "font-bold text-[40px] text-hsecondary", children: [
|
|
15220
15344
|
"$",
|
|
15221
15345
|
variantPrice.toFixed(2)
|
|
15222
15346
|
] }),
|
|
15223
15347
|
variantComparePrice && variantComparePrice > variantPrice && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15224
|
-
/* @__PURE__ */ jsxs("span", { className: "
|
|
15348
|
+
/* @__PURE__ */ jsxs("span", { className: "text-[24px] text-hmuted line-through", children: [
|
|
15225
15349
|
"$",
|
|
15226
15350
|
variantComparePrice.toFixed(2)
|
|
15227
15351
|
] }),
|
|
15228
|
-
/* @__PURE__ */ jsx("div", { className: "px-3 py-1 rounded-full bg-
|
|
15352
|
+
/* @__PURE__ */ jsx("div", { className: "px-3 py-1 rounded-full bg-hsecondary/10", children: /* @__PURE__ */ jsxs("span", { className: "font-semibold text-[13px] text-hsecondary", children: [
|
|
15229
15353
|
"Save $",
|
|
15230
15354
|
formatPrice(variantComparePrice - variantPrice)
|
|
15231
15355
|
] }) })
|
|
@@ -15234,19 +15358,19 @@ function ProductDetailScreen({ productId }) {
|
|
|
15234
15358
|
selectedVariant && /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
|
|
15235
15359
|
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 mb-2", children: selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15236
15360
|
/* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-red-500" }),
|
|
15237
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
15361
|
+
/* @__PURE__ */ jsx("span", { className: "text-[13px] text-red-600 font-medium", children: "Out of Stock" })
|
|
15238
15362
|
] }) : selectedVariant.inventoryStatus === "LOW_STOCK" /* LOWSTOCK */ || selectedVariant.inventoryCount <= 10 ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15239
15363
|
/* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-hprimary animate-pulse" }),
|
|
15240
|
-
/* @__PURE__ */ jsxs("span", { className: "
|
|
15364
|
+
/* @__PURE__ */ jsxs("span", { className: "text-[13px] text-hprimary font-medium", children: [
|
|
15241
15365
|
"Only ",
|
|
15242
15366
|
selectedVariant.inventoryCount,
|
|
15243
15367
|
" left in stock - Order soon!"
|
|
15244
15368
|
] })
|
|
15245
15369
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15246
15370
|
/* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-green-500" }),
|
|
15247
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
15371
|
+
/* @__PURE__ */ jsx("span", { className: "text-[13px] text-green-600 font-medium", children: "In Stock" })
|
|
15248
15372
|
] }) }),
|
|
15249
|
-
/* @__PURE__ */ jsxs("p", { className: "
|
|
15373
|
+
/* @__PURE__ */ jsxs("p", { className: "text-[12px] text-hmuted", children: [
|
|
15250
15374
|
"SKU: ",
|
|
15251
15375
|
selectedVariant?.sku || product?.sku
|
|
15252
15376
|
] })
|
|
@@ -15254,12 +15378,12 @@ function ProductDetailScreen({ productId }) {
|
|
|
15254
15378
|
product.description && /* @__PURE__ */ jsx(
|
|
15255
15379
|
"div",
|
|
15256
15380
|
{
|
|
15257
|
-
className: "
|
|
15381
|
+
className: "text-[14px] text-hmuted leading-[1.7] mb-8 max-w-full overflow-hidden break-words",
|
|
15258
15382
|
dangerouslySetInnerHTML: { __html: product.description }
|
|
15259
15383
|
}
|
|
15260
15384
|
),
|
|
15261
15385
|
product?.variants && product.variants.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
|
|
15262
|
-
/* @__PURE__ */ jsx("h3", { className: "font-
|
|
15386
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-[14px] text-hsecondary mb-3", children: "Select Variant" }),
|
|
15263
15387
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-3", children: product.variants.map((variant) => {
|
|
15264
15388
|
const isSelected = selectedVariant?._id === variant._id;
|
|
15265
15389
|
const variantImage = variant.media?.[0]?.file || product.media?.[0]?.file || product.images?.[0] || PLACEHOLDER_IMAGE_SRC;
|
|
@@ -15295,7 +15419,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15295
15419
|
}) })
|
|
15296
15420
|
] }),
|
|
15297
15421
|
/* @__PURE__ */ jsxs("div", { className: "mb-8", children: [
|
|
15298
|
-
/* @__PURE__ */ jsx("h3", { className: "font-
|
|
15422
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-[14px] text-hsecondary mb-3", children: "Quantity" }),
|
|
15299
15423
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
15300
15424
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4 bg-gray-100 rounded-full px-6 py-3", children: [
|
|
15301
15425
|
/* @__PURE__ */ jsx(
|
|
@@ -15303,18 +15427,18 @@ function ProductDetailScreen({ productId }) {
|
|
|
15303
15427
|
{
|
|
15304
15428
|
type: "button",
|
|
15305
15429
|
onClick: () => setQuantity((current) => Math.max(1, current - 1)),
|
|
15306
|
-
className: "font-
|
|
15430
|
+
className: "font-bold text-[18px] text-hsecondary hover:text-hprimary transition-colors",
|
|
15307
15431
|
"aria-label": "Increase quantity",
|
|
15308
15432
|
children: "-"
|
|
15309
15433
|
}
|
|
15310
15434
|
),
|
|
15311
|
-
/* @__PURE__ */ jsx("span", { className: "font-
|
|
15435
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-[16px] text-hsecondary min-w-[30px] text-center", children: quantity }),
|
|
15312
15436
|
/* @__PURE__ */ jsx(
|
|
15313
15437
|
"button",
|
|
15314
15438
|
{
|
|
15315
15439
|
onClick: () => setQuantity(Math.min(selectedVariant?.inventoryCount || product.inventoryCount || 999, quantity + 1)),
|
|
15316
15440
|
disabled: quantity >= (selectedVariant?.inventoryCount || product.inventoryCount || 0),
|
|
15317
|
-
className: "font-
|
|
15441
|
+
className: "font-bold text-[18px] text-hsecondary hover:text-hprimary transition-colors disabled:opacity-50",
|
|
15318
15442
|
children: "+"
|
|
15319
15443
|
}
|
|
15320
15444
|
)
|
|
@@ -15329,7 +15453,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15329
15453
|
/* @__PURE__ */ jsx(
|
|
15330
15454
|
"button",
|
|
15331
15455
|
{
|
|
15332
|
-
className: "flex-1 font-
|
|
15456
|
+
className: "flex-1 font-medium text-[14px] px-8 py-4 rounded-full transition-all duration-300 flex items-center justify-center gap-3 bg-hsecondary text-white hover:bg-hsecondary/80 hover:shadow-lg disabled:opacity-50 disabled:cursor-not-allowed",
|
|
15333
15457
|
onClick: handleAddToCart,
|
|
15334
15458
|
disabled: !selectedVariant || selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ || isAddingToCart,
|
|
15335
15459
|
children: isAddingToCart ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -15358,29 +15482,29 @@ function ProductDetailScreen({ productId }) {
|
|
|
15358
15482
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
15359
15483
|
/* @__PURE__ */ jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx(Truck, { className: "size-5 text-hprimary" }) }),
|
|
15360
15484
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
15361
|
-
/* @__PURE__ */ jsx("p", { className: "font-
|
|
15362
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
15485
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold text-[12px] text-hsecondary mb-1", children: "Free Shipping" }),
|
|
15486
|
+
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-hmuted", children: "On all orders" })
|
|
15363
15487
|
] })
|
|
15364
15488
|
] }),
|
|
15365
15489
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
15366
15490
|
/* @__PURE__ */ jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx(RotateCcw, { className: "size-5 text-hprimary" }) }),
|
|
15367
15491
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
15368
|
-
/* @__PURE__ */ jsx("p", { className: "font-
|
|
15369
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
15492
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold text-[12px] text-hsecondary mb-1", children: "Easy Returns" }),
|
|
15493
|
+
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-hmuted", children: "30-day return policy" })
|
|
15370
15494
|
] })
|
|
15371
15495
|
] }),
|
|
15372
15496
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
15373
15497
|
/* @__PURE__ */ jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx(Shield, { className: "size-5 text-hprimary" }) }),
|
|
15374
15498
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
15375
|
-
/* @__PURE__ */ jsx("p", { className: "font-
|
|
15376
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
15499
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold text-[12px] text-hsecondary mb-1", children: "Secure Checkout" }),
|
|
15500
|
+
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-hmuted", children: "Safe & protected" })
|
|
15377
15501
|
] })
|
|
15378
15502
|
] }),
|
|
15379
15503
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
15380
15504
|
/* @__PURE__ */ jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx(Package, { className: "size-5 text-hprimary" }) }),
|
|
15381
15505
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
15382
|
-
/* @__PURE__ */ jsx("p", { className: "font-
|
|
15383
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
15506
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold text-[12px] text-hsecondary mb-1", children: "Quality Guaranteed" }),
|
|
15507
|
+
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-hmuted", children: "Premium materials" })
|
|
15384
15508
|
] })
|
|
15385
15509
|
] })
|
|
15386
15510
|
] })
|
|
@@ -15391,35 +15515,35 @@ function ProductDetailScreen({ productId }) {
|
|
|
15391
15515
|
"button",
|
|
15392
15516
|
{
|
|
15393
15517
|
onClick: () => setActiveTab(tab),
|
|
15394
|
-
className: `font-
|
|
15518
|
+
className: `font-medium text-[14px] px-6 py-4 transition-all ${activeTab === tab ? "text-hprimary border-b-2 border-hprimary -mb-0.5" : "text-hmuted hover:text-hprimary"}`,
|
|
15395
15519
|
children: tab.charAt(0).toUpperCase() + tab.slice(1)
|
|
15396
15520
|
},
|
|
15397
15521
|
tab
|
|
15398
15522
|
)) }),
|
|
15399
15523
|
/* @__PURE__ */ jsxs("div", { className: "bg-white rounded-[24px] p-8 border-2 border-gray-100", children: [
|
|
15400
15524
|
activeTab === "description" && /* @__PURE__ */ jsxs("div", { children: [
|
|
15401
|
-
/* @__PURE__ */ jsx("h3", { className: "font-
|
|
15525
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-hsecondary mb-4", children: "Product Description" }),
|
|
15402
15526
|
/* @__PURE__ */ jsx(
|
|
15403
15527
|
"div",
|
|
15404
15528
|
{
|
|
15405
|
-
className: "
|
|
15529
|
+
className: "text-[14px] text-hmuted leading-[1.8] mb-4 max-w-full overflow-hidden break-words",
|
|
15406
15530
|
dangerouslySetInnerHTML: { __html: product.description }
|
|
15407
15531
|
}
|
|
15408
15532
|
),
|
|
15409
15533
|
/* @__PURE__ */ jsxs("div", { className: "mt-6", children: [
|
|
15410
|
-
/* @__PURE__ */ jsx("h4", { className: "font-
|
|
15411
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
15534
|
+
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-[13px] text-hsecondary mb-3", children: "Last updated:" }),
|
|
15535
|
+
/* @__PURE__ */ jsx("p", { className: "text-[14px] text-hmuted", children: lastUpdatedLabel })
|
|
15412
15536
|
] }),
|
|
15413
15537
|
/* @__PURE__ */ jsxs("div", { className: "mt-6", children: [
|
|
15414
|
-
/* @__PURE__ */ jsx("h4", { className: "font-
|
|
15415
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
15538
|
+
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-[13px] text-hsecondary mb-3", children: "Shipped from:" }),
|
|
15539
|
+
/* @__PURE__ */ jsx("p", { className: "text-[14px] text-hmuted", children: "Local pharmacy distribution center" })
|
|
15416
15540
|
] })
|
|
15417
15541
|
] }),
|
|
15418
15542
|
activeTab === "reviews" && /* @__PURE__ */ jsx(ProductReviewsSection, { productId })
|
|
15419
15543
|
] })
|
|
15420
15544
|
] }),
|
|
15421
15545
|
relatedProducts.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
15422
|
-
/* @__PURE__ */ jsx("h2", { className: "font-
|
|
15546
|
+
/* @__PURE__ */ jsx("h2", { className: "font-semibold text-hsecondary mb-8 text-2xl", children: "You May Also Like" }),
|
|
15423
15547
|
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6", children: relatedProducts.map((relatedProduct) => /* @__PURE__ */ jsx(
|
|
15424
15548
|
ProductCard,
|
|
15425
15549
|
{
|
|
@@ -15464,9 +15588,9 @@ function CartItem({ item }) {
|
|
|
15464
15588
|
initial: { opacity: 0, y: 20 },
|
|
15465
15589
|
animate: { opacity: 1, y: 0 },
|
|
15466
15590
|
exit: { opacity: 0, x: -100 },
|
|
15467
|
-
className: "bg-white border-2 border-gray-100 rounded-[24px] p-6 hover:border-hsecondary/30 transition-all duration-300",
|
|
15468
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex gap-
|
|
15469
|
-
/* @__PURE__ */ jsx("div", { className: "w-28 h-28 rounded-[16px] overflow-hidden bg-gray-50 shrink-0", children: /* @__PURE__ */ jsx(
|
|
15591
|
+
className: "bg-white border-2 border-gray-100 rounded-[24px] p-4 md:p-6 hover:border-hsecondary/30 transition-all duration-300",
|
|
15592
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex gap-3 md:gap-4", children: [
|
|
15593
|
+
/* @__PURE__ */ jsx("div", { className: "w-20 h-20 md:w-28 md:h-28 rounded-[16px] overflow-hidden bg-gray-50 shrink-0", children: /* @__PURE__ */ jsx(
|
|
15470
15594
|
Image4,
|
|
15471
15595
|
{
|
|
15472
15596
|
src: item.productVariantData.media[0]?.file || PLACEHOLDER_IMAGE_SRC,
|
|
@@ -15479,8 +15603,8 @@ function CartItem({ item }) {
|
|
|
15479
15603
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
15480
15604
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-4 mb-3", children: [
|
|
15481
15605
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
15482
|
-
/* @__PURE__ */ jsx("h3", { className: "font-
|
|
15483
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center gap-3", children: /* @__PURE__ */ jsxs("span", { className: "
|
|
15606
|
+
/* @__PURE__ */ jsx("h3", { className: "font-semibold text-[#2B4B7C] mb-2", children: item.productVariantData.name }),
|
|
15607
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center gap-3", children: /* @__PURE__ */ jsxs("span", { className: "text-[12px] text-[#676c80]", children: [
|
|
15484
15608
|
"Variant: ",
|
|
15485
15609
|
/* @__PURE__ */ jsx("span", { className: "font-medium text-[#2B4B7C]", children: item.productVariantData.name })
|
|
15486
15610
|
] }) })
|
|
@@ -15496,31 +15620,33 @@ function CartItem({ item }) {
|
|
|
15496
15620
|
}
|
|
15497
15621
|
)
|
|
15498
15622
|
] }),
|
|
15499
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
|
|
15500
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 bg-gray-50 rounded-full px-4 py-2", children: [
|
|
15623
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between gap-4 mt-auto", children: [
|
|
15624
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 bg-gray-50 rounded-full px-3 py-1.5 md:px-4 md:py-2 w-fit", children: [
|
|
15501
15625
|
/* @__PURE__ */ jsx(
|
|
15502
15626
|
"button",
|
|
15503
15627
|
{
|
|
15504
15628
|
onClick: () => handleUpdateQuantity(item.quantity - 1),
|
|
15505
15629
|
disabled: isUpdating || item.quantity <= 1,
|
|
15506
15630
|
className: "p-1 hover:bg-white rounded-full transition-colors",
|
|
15507
|
-
|
|
15631
|
+
"aria-label": "Decrease quantity",
|
|
15632
|
+
children: /* @__PURE__ */ jsx(Minus, { className: "size-3 md:size-4 text-[#2B4B7C]" })
|
|
15508
15633
|
}
|
|
15509
15634
|
),
|
|
15510
|
-
/* @__PURE__ */ jsx("span", { className: "font-[
|
|
15635
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-[13px] md:text-[14px] text-[#2B4B7C] min-w-[20px] text-center", children: item.quantity }),
|
|
15511
15636
|
/* @__PURE__ */ jsx(
|
|
15512
15637
|
"button",
|
|
15513
15638
|
{
|
|
15514
15639
|
onClick: () => handleUpdateQuantity(item.quantity + 1),
|
|
15515
15640
|
disabled: isUpdating || item.quantity >= (item.productVariantData.inventoryCount || 999),
|
|
15516
15641
|
className: "p-1 hover:bg-white rounded-full transition-colors",
|
|
15517
|
-
|
|
15642
|
+
"aria-label": "Increase quantity",
|
|
15643
|
+
children: /* @__PURE__ */ jsx(Plus, { className: "size-3 md:size-4 text-[#2B4B7C]" })
|
|
15518
15644
|
}
|
|
15519
15645
|
)
|
|
15520
15646
|
] }),
|
|
15521
|
-
/* @__PURE__ */ jsxs("div", { className: "text-right", children: [
|
|
15522
|
-
/* @__PURE__ */ jsx("p", { className: "font-[
|
|
15523
|
-
/* @__PURE__ */ jsxs("p", { className: "
|
|
15647
|
+
/* @__PURE__ */ jsxs("div", { className: "text-left sm:text-right", children: [
|
|
15648
|
+
/* @__PURE__ */ jsx("p", { className: "font-bold text-[16px] md:text-[18px] text-hsecondary", children: formatPrice(itemTotal) }),
|
|
15649
|
+
/* @__PURE__ */ jsxs("p", { className: "text-[10px] md:text-[11px] text-[#676c80]", children: [
|
|
15524
15650
|
formatPrice(unitPrice),
|
|
15525
15651
|
" each"
|
|
15526
15652
|
] })
|
|
@@ -15596,10 +15722,10 @@ function CartScreen() {
|
|
|
15596
15722
|
}
|
|
15597
15723
|
router.push(buildPath("/checkout"));
|
|
15598
15724
|
};
|
|
15599
|
-
return /* @__PURE__ */ jsx("div", { className: "min-h-screen bg-white", children: /* @__PURE__ */ jsx("div", { className: "max-w-[1400px] mx-auto px-
|
|
15600
|
-
/* @__PURE__ */ jsxs("div", { className: "mb-12", children: [
|
|
15601
|
-
/* @__PURE__ */ jsx("h1", { className: "font-
|
|
15602
|
-
/* @__PURE__ */ jsxs("p", { className: "
|
|
15725
|
+
return /* @__PURE__ */ jsx("div", { className: "min-h-screen bg-white", children: /* @__PURE__ */ jsx("div", { className: "max-w-[1400px] mx-auto px-4 md:px-12", children: /* @__PURE__ */ jsxs("div", { className: "py-8", children: [
|
|
15726
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-8 md:mb-12", children: [
|
|
15727
|
+
/* @__PURE__ */ jsx("h1", { className: "font-semibold text-hsecondary tracking-[-1px] md:tracking-[-2px] mb-2 text-3xl md:text-4xl", children: "Shopping Cart" }),
|
|
15728
|
+
/* @__PURE__ */ jsxs("p", { className: "text-[14px] md:text-[16px] text-hmuted", children: [
|
|
15603
15729
|
itemCount,
|
|
15604
15730
|
" ",
|
|
15605
15731
|
itemCount === 1 ? "item" : "items",
|
|
@@ -15628,19 +15754,19 @@ function CartScreen() {
|
|
|
15628
15754
|
initial: { opacity: 0, y: 24 },
|
|
15629
15755
|
animate: { opacity: 1, y: 0 },
|
|
15630
15756
|
transition: { delay: 0.1 },
|
|
15631
|
-
className: "
|
|
15632
|
-
children: /* @__PURE__ */ jsxs("div", { className: "bg-linear-to-br from-hsecondary/10 to-hsecondary/10 rounded-[24px] p-8 border-2 border-hsecondary/20 sticky top-24", children: [
|
|
15633
|
-
/* @__PURE__ */ jsx("h2", { className: "font-
|
|
15757
|
+
className: "lg:sticky lg:top-24 h-fit lg:col-span-1",
|
|
15758
|
+
children: /* @__PURE__ */ jsxs("div", { className: "bg-hsecondary/[0.03] md:bg-linear-to-br md:from-hsecondary/10 md:to-hsecondary/10 rounded-[24px] p-6 md:p-8 border-2 border-hsecondary/10 md:border-hsecondary/20 lg:sticky lg:top-24", children: [
|
|
15759
|
+
/* @__PURE__ */ jsx("h2", { className: "font-semibold text-hsecondary mb-6", children: "Order Summary" }),
|
|
15634
15760
|
/* @__PURE__ */ jsxs("div", { className: "space-y-4 mb-6", children: [
|
|
15635
15761
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
15636
|
-
/* @__PURE__ */ jsxs("span", { className: "
|
|
15762
|
+
/* @__PURE__ */ jsxs("span", { className: "text-[14px] text-hmuted", children: [
|
|
15637
15763
|
"Subtotal (",
|
|
15638
15764
|
itemCount,
|
|
15639
15765
|
" ",
|
|
15640
15766
|
itemCount === 1 ? "item" : "items",
|
|
15641
15767
|
")"
|
|
15642
15768
|
] }),
|
|
15643
|
-
/* @__PURE__ */ jsx("span", { className: "font-
|
|
15769
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-[14px] text-hsecondary", children: formatPrice(subtotal) })
|
|
15644
15770
|
] }),
|
|
15645
15771
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-sm", children: [
|
|
15646
15772
|
/* @__PURE__ */ jsx("span", { className: "text-gray-600", children: "Shipping" }),
|
|
@@ -16630,8 +16756,8 @@ function CheckoutScreen() {
|
|
|
16630
16756
|
className: "space-y-8",
|
|
16631
16757
|
children: [
|
|
16632
16758
|
/* @__PURE__ */ jsxs("div", { className: "mb-12", children: [
|
|
16633
|
-
/* @__PURE__ */ jsx("h1", { className: "font-
|
|
16634
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
16759
|
+
/* @__PURE__ */ jsx("h1", { className: "font-semibold text-[#2B4B7C] mb-2 text-3xl", children: "Checkout" }),
|
|
16760
|
+
/* @__PURE__ */ jsx("p", { className: "text-[14px] text-[#676c80] text-md leading-relaxed", children: "Complete your order information below" })
|
|
16635
16761
|
] }),
|
|
16636
16762
|
/* @__PURE__ */ jsx("div", { className: "bg-white border-2 border-gray-100 rounded-[24px] p-8", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-8", children: [
|
|
16637
16763
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -16726,7 +16852,7 @@ function CheckoutScreen() {
|
|
|
16726
16852
|
] }) }),
|
|
16727
16853
|
isDelivery !== null && /* @__PURE__ */ jsxs("section", { className: "bg-white border-2 border-gray-100 rounded-[24px] p-8 text-[#2B4B7C]", children: [
|
|
16728
16854
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-between gap-4", children: /* @__PURE__ */ jsxs("div", { children: [
|
|
16729
|
-
/* @__PURE__ */ jsx("h2", { className: "font-
|
|
16855
|
+
/* @__PURE__ */ jsx("h2", { className: "font-semibold text-[#2B4B7C] mb-2 text-2xl", children: isDelivery ? "Delivery Address" : "Contact Information" }),
|
|
16730
16856
|
/* @__PURE__ */ jsx("p", { className: "text-sm text-slate-500", children: "We use temperature-aware packaging and real-time tracking on every shipment." })
|
|
16731
16857
|
] }) }),
|
|
16732
16858
|
/* @__PURE__ */ jsxs("div", { className: "mt-6 grid grid-cols-1 gap-4 md:grid-cols-2", children: [
|
|
@@ -16860,7 +16986,7 @@ function CheckoutScreen() {
|
|
|
16860
16986
|
isDelivery === true && selectedAddressId && /* @__PURE__ */ jsxs("div", { className: "bg-white border-2 border-gray-100 rounded-[24px] p-8 text-[#2B4B7C]", children: [
|
|
16861
16987
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 text-xl font-semibold text-gray-900 pb-4 mb-8 border-b", children: [
|
|
16862
16988
|
/* @__PURE__ */ jsx(Truck, { className: "w-8 h-8 flex items-center justify-center text-[#2B4B7C]" }),
|
|
16863
|
-
/* @__PURE__ */ jsx("h2", { className: "font-
|
|
16989
|
+
/* @__PURE__ */ jsx("h2", { className: "font-semibold text-[#2B4B7C] text-2xl", children: "Shipping Options" })
|
|
16864
16990
|
] }),
|
|
16865
16991
|
shippingRatesLoading ? /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center py-12", children: [
|
|
16866
16992
|
/* @__PURE__ */ jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-haccent" }),
|
|
@@ -16968,18 +17094,18 @@ function CheckoutScreen() {
|
|
|
16968
17094
|
transition: { duration: 0.5, ease: "easeOut", delay: 0.1 },
|
|
16969
17095
|
className: "space-y-10 lg:sticky lg:top-24 lg:col-span-1",
|
|
16970
17096
|
children: /* @__PURE__ */ jsxs("div", { className: "bg-linear-to-br from-hsecondary/10 to-hsecondary/10 rounded-[24px] p-8 border-2 border-hsecondary/20 sticky top-24", children: [
|
|
16971
|
-
/* @__PURE__ */ jsx("h2", { className: "font-
|
|
17097
|
+
/* @__PURE__ */ jsx("h2", { className: "font-semibold text-hsecondary mb-6 text-2xl", children: "Order Summary" }),
|
|
16972
17098
|
/* @__PURE__ */ jsxs("section", { className: "mt-8 pt-6 border-t border-slate-100", children: [
|
|
16973
17099
|
/* @__PURE__ */ jsx("div", { className: "space-y-4 mb-6", children: cart?.cartBody?.items?.map((item) => /* @__PURE__ */ jsxs("div", { className: "flex gap-3", children: [
|
|
16974
17100
|
/* @__PURE__ */ jsx("div", { className: "w-16 h-16 rounded-xl overflow-hidden bg-white shrink-0", children: /* @__PURE__ */ jsx(Image4, { src: item.productVariantData?.media?.[0]?.file || PLACEHOLDER_IMAGE_SRC, alt: item.productVariantData.name, className: "w-full h-full object-cover", height: 200, width: 200 }) }),
|
|
16975
17101
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
16976
|
-
/* @__PURE__ */ jsx("p", { className: "font-
|
|
16977
|
-
/* @__PURE__ */ jsxs("p", { className: "
|
|
17102
|
+
/* @__PURE__ */ jsx("p", { className: "font-medium text-[12px] text-[#2B4B7C] mb-1", children: item?.productVariantData?.name }),
|
|
17103
|
+
/* @__PURE__ */ jsxs("p", { className: "text-[11px] text-[#676c80]", children: [
|
|
16978
17104
|
item?.productVariantData?.brand,
|
|
16979
17105
|
" \u2022 Qty: ",
|
|
16980
17106
|
item.quantity
|
|
16981
17107
|
] }),
|
|
16982
|
-
/* @__PURE__ */ jsx("p", { className: "font-
|
|
17108
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold text-[12px] text-hsecondary mt-1", children: formatPrice(item.productVariantData.finalPrice * item.quantity) })
|
|
16983
17109
|
] })
|
|
16984
17110
|
] }, item.productVariantId || item.id)) }),
|
|
16985
17111
|
/* @__PURE__ */ jsx("div", { className: "h-px bg-hsecondary/20 my-4" }),
|
|
@@ -17016,11 +17142,11 @@ function CheckoutScreen() {
|
|
|
17016
17142
|
] }),
|
|
17017
17143
|
/* @__PURE__ */ jsx("div", { className: "h-px bg-hsecondary/20 mt-6" }),
|
|
17018
17144
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-6", children: [
|
|
17019
|
-
/* @__PURE__ */ jsx("span", { className: "font-
|
|
17020
|
-
/* @__PURE__ */ jsx("span", { className: "font-
|
|
17145
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-[16px] text-hsecondary", children: "Total" }),
|
|
17146
|
+
/* @__PURE__ */ jsx("span", { className: "font-bold text-[24px] text-hsecondary", children: formatPrice(total) })
|
|
17021
17147
|
] })
|
|
17022
17148
|
] }),
|
|
17023
|
-
/* @__PURE__ */ jsx("div", { className: "bg-white/80 rounded-xl p-4", children: /* @__PURE__ */ jsxs("p", { className: "
|
|
17149
|
+
/* @__PURE__ */ jsx("div", { className: "bg-white/80 rounded-xl p-4", children: /* @__PURE__ */ jsxs("p", { className: "text-[11px] text-[#676c80] leading-[1.6]", children: [
|
|
17024
17150
|
/* @__PURE__ */ jsx("strong", { className: "text-hsecondary", children: "Payment:" }),
|
|
17025
17151
|
" We'll contact you to arrange payment upon pickup or delivery. We accept cash, credit cards, and all major payment methods."
|
|
17026
17152
|
] }) })
|
|
@@ -17057,7 +17183,7 @@ function CheckoutScreen() {
|
|
|
17057
17183
|
{
|
|
17058
17184
|
type: "submit",
|
|
17059
17185
|
disabled: isSubmitting,
|
|
17060
|
-
className: "font-
|
|
17186
|
+
className: "font-medium text-[14px] px-6 py-3 rounded-full text-white hover:bg-[#d66f45] hover:shadow-lg transition-all duration-300 mt-4 w-full bg-hsecondary hover:bg-[#2B4B7C] flex items-center justify-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
17061
17187
|
children: [
|
|
17062
17188
|
/* @__PURE__ */ jsx(CreditCard, { className: "h-5 w-5" }),
|
|
17063
17189
|
isSubmitting ? "Placing order..." : "Place Secure Order"
|
|
@@ -17931,7 +18057,7 @@ function AccountOverviewTab() {
|
|
|
17931
18057
|
icon: Package,
|
|
17932
18058
|
label: "Total Orders",
|
|
17933
18059
|
value: totalOrders,
|
|
17934
|
-
color: "bg-
|
|
18060
|
+
color: "bg-hprimary-100 text-[#5B9BD5]"
|
|
17935
18061
|
},
|
|
17936
18062
|
{
|
|
17937
18063
|
icon: CheckCircle,
|
|
@@ -17987,7 +18113,7 @@ function AccountOverviewTab() {
|
|
|
17987
18113
|
] }),
|
|
17988
18114
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
17989
18115
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
17990
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-
|
|
18116
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-hprimary-100", children: /* @__PURE__ */ jsx(User, { className: "h-5 w-5 text-hsecondary" }) }),
|
|
17991
18117
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
17992
18118
|
/* @__PURE__ */ jsx("p", { className: "text-xs text-hmuted", children: "Full Name" }),
|
|
17993
18119
|
/* @__PURE__ */ jsxs("p", { className: "text-sm font-medium text-hsecondary", children: [
|
|
@@ -17998,21 +18124,21 @@ function AccountOverviewTab() {
|
|
|
17998
18124
|
] })
|
|
17999
18125
|
] }),
|
|
18000
18126
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18001
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-
|
|
18127
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-hprimary-100", children: /* @__PURE__ */ jsx(Mail, { className: "h-5 w-5 text-hsecondary" }) }),
|
|
18002
18128
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
18003
18129
|
/* @__PURE__ */ jsx("p", { className: "text-xs text-hmuted", children: "E-mail Address" }),
|
|
18004
18130
|
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-hsecondary", children: user.email })
|
|
18005
18131
|
] })
|
|
18006
18132
|
] }),
|
|
18007
18133
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18008
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-
|
|
18134
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-hprimary-100", children: /* @__PURE__ */ jsx(Phone, { className: "h-5 w-5 text-hsecondary" }) }),
|
|
18009
18135
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
18010
18136
|
/* @__PURE__ */ jsx("p", { className: "text-xs text-hmuted", children: "Phone Number" }),
|
|
18011
18137
|
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-hsecondary", children: user.phoneNumber || "Not provided" })
|
|
18012
18138
|
] })
|
|
18013
18139
|
] }),
|
|
18014
18140
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18015
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-
|
|
18141
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-hprimary-100", children: /* @__PURE__ */ jsx(MapPin, { className: "h-5 w-5 text-hsecondary" }) }),
|
|
18016
18142
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
18017
18143
|
/* @__PURE__ */ jsx("p", { className: "text-xs text-hmuted", children: "Date of Birth" }),
|
|
18018
18144
|
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-hsecondary", children: "Not provided" })
|
|
@@ -18509,7 +18635,7 @@ function AccountReviewsTab() {
|
|
|
18509
18635
|
"button",
|
|
18510
18636
|
{
|
|
18511
18637
|
onClick: () => window.location.reload(),
|
|
18512
|
-
className: "text-
|
|
18638
|
+
className: "text-haccent-500 hover:underline text-sm",
|
|
18513
18639
|
children: "Try again"
|
|
18514
18640
|
}
|
|
18515
18641
|
)
|
|
@@ -18517,14 +18643,14 @@ function AccountReviewsTab() {
|
|
|
18517
18643
|
}
|
|
18518
18644
|
if (!reviews || reviews.length === 0) {
|
|
18519
18645
|
return /* @__PURE__ */ jsx("div", { className: "p-6", children: /* @__PURE__ */ jsxs("div", { className: "text-center py-12", children: [
|
|
18520
|
-
/* @__PURE__ */ jsx("div", { className: "size-16 rounded-full bg-
|
|
18646
|
+
/* @__PURE__ */ jsx("div", { className: "size-16 rounded-full bg-haccent-500/10 flex items-center justify-center mx-auto mb-4", children: /* @__PURE__ */ jsx(Star, { className: "size-8 text-haccent-500" }) }),
|
|
18521
18647
|
/* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-gray-900 mb-2", children: "No reviews yet" }),
|
|
18522
18648
|
/* @__PURE__ */ jsx("p", { className: "text-gray-600 mb-6", children: "Share your experience with products you've purchased" }),
|
|
18523
18649
|
/* @__PURE__ */ jsxs(
|
|
18524
18650
|
"button",
|
|
18525
18651
|
{
|
|
18526
18652
|
onClick: () => router.push(buildPath("/reviews")),
|
|
18527
|
-
className: "inline-flex items-center gap-2 px-6 py-3 bg-
|
|
18653
|
+
className: "inline-flex items-center gap-2 px-6 py-3 bg-haccent-500 text-white rounded-lg font-medium hover:bg-[#d66f40] transition-colors",
|
|
18528
18654
|
children: [
|
|
18529
18655
|
/* @__PURE__ */ jsx(Star, { className: "size-4" }),
|
|
18530
18656
|
"Write Your First Review"
|
|
@@ -18759,7 +18885,7 @@ function OrderCard({ order, onDelete }) {
|
|
|
18759
18885
|
"button",
|
|
18760
18886
|
{
|
|
18761
18887
|
onClick: handleReviewClick,
|
|
18762
|
-
className: "inline-flex items-center gap-2 rounded-lg border border-
|
|
18888
|
+
className: "inline-flex items-center gap-2 rounded-lg border border-haccent-500 bg-white hover:bg-haccent-500/5 text-haccent-500 px-4 py-2 text-sm transition-colors",
|
|
18763
18889
|
onPointerDown: (e) => e.stopPropagation(),
|
|
18764
18890
|
children: [
|
|
18765
18891
|
/* @__PURE__ */ jsx(Star, { className: "w-4 h-4" }),
|
|
@@ -18927,8 +19053,8 @@ function ReviewPromptBanner({
|
|
|
18927
19053
|
router.push(buildPath("/reviews"));
|
|
18928
19054
|
};
|
|
18929
19055
|
if (!isVisible) return null;
|
|
18930
|
-
return /* @__PURE__ */ jsx("div", { className: "bg-gradient-to-r from-
|
|
18931
|
-
/* @__PURE__ */ jsx("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx("div", { className: "size-10 rounded-full bg-
|
|
19056
|
+
return /* @__PURE__ */ jsx("div", { className: "bg-gradient-to-r from-haccent-500/10 to-haccent-500/5 border border-haccent-500/20 rounded-lg p-4 mb-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-4", children: [
|
|
19057
|
+
/* @__PURE__ */ jsx("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx("div", { className: "size-10 rounded-full bg-haccent-500/20 flex items-center justify-center", children: /* @__PURE__ */ jsx(Star, { className: "size-5 text-haccent-500" }) }) }),
|
|
18932
19058
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
18933
19059
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-4", children: [
|
|
18934
19060
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -18956,7 +19082,7 @@ function ReviewPromptBanner({
|
|
|
18956
19082
|
"button",
|
|
18957
19083
|
{
|
|
18958
19084
|
onClick: handleReviewClick,
|
|
18959
|
-
className: "mt-3 inline-flex items-center gap-2 px-4 py-2 bg-
|
|
19085
|
+
className: "mt-3 inline-flex items-center gap-2 px-4 py-2 bg-haccent-500 text-white text-sm font-medium rounded-lg hover:bg-[#d66f40] transition-colors",
|
|
18960
19086
|
children: [
|
|
18961
19087
|
/* @__PURE__ */ jsx(Star, { className: "size-4" }),
|
|
18962
19088
|
"Write a Review"
|
|
@@ -20109,41 +20235,24 @@ function SearchPage() {
|
|
|
20109
20235
|
setHasSearched(false);
|
|
20110
20236
|
return;
|
|
20111
20237
|
}
|
|
20238
|
+
if (sanitizedQuery.length < 2) {
|
|
20239
|
+
setProducts([]);
|
|
20240
|
+
setIsLoading(false);
|
|
20241
|
+
setHasSearched(false);
|
|
20242
|
+
return;
|
|
20243
|
+
}
|
|
20112
20244
|
try {
|
|
20113
20245
|
setIsLoading(true);
|
|
20114
20246
|
const api = new ProductsApi(AXIOS_CONFIG);
|
|
20115
|
-
|
|
20116
|
-
|
|
20117
|
-
// searchTerm
|
|
20118
|
-
void 0,
|
|
20119
|
-
// maxPrice
|
|
20120
|
-
void 0,
|
|
20121
|
-
// minPrice
|
|
20122
|
-
void 0,
|
|
20123
|
-
// brandFilter
|
|
20124
|
-
void 0,
|
|
20125
|
-
// availability
|
|
20126
|
-
"relevance",
|
|
20127
|
-
// sort
|
|
20128
|
-
void 0,
|
|
20129
|
-
// subCategoryId
|
|
20130
|
-
void 0,
|
|
20131
|
-
// categoryId
|
|
20132
|
-
true,
|
|
20133
|
-
// isActive
|
|
20134
|
-
20,
|
|
20135
|
-
// limit
|
|
20136
|
-
1
|
|
20137
|
-
// page
|
|
20138
|
-
);
|
|
20139
|
-
console.log("Search API Response:", {
|
|
20247
|
+
const response = await api.smartSearch(sanitizedQuery, 20);
|
|
20248
|
+
console.log("Smart Search API Response:", {
|
|
20140
20249
|
query: sanitizedQuery,
|
|
20141
20250
|
status: response.status,
|
|
20142
|
-
|
|
20143
|
-
|
|
20251
|
+
productsCount: response.data?.products?.length,
|
|
20252
|
+
scores: response.data?.scores
|
|
20144
20253
|
});
|
|
20145
|
-
if (response.data?.
|
|
20146
|
-
const transformedProducts = response.data.
|
|
20254
|
+
if (response.data?.products) {
|
|
20255
|
+
const transformedProducts = response.data.products.map((item) => ({
|
|
20147
20256
|
...item,
|
|
20148
20257
|
id: item._id || ""
|
|
20149
20258
|
}));
|
|
@@ -20156,7 +20265,7 @@ function SearchPage() {
|
|
|
20156
20265
|
}
|
|
20157
20266
|
setHasSearched(true);
|
|
20158
20267
|
} catch (error) {
|
|
20159
|
-
console.error("Error fetching search results:", error);
|
|
20268
|
+
console.error("Error fetching smart search results:", error);
|
|
20160
20269
|
if (error instanceof Error) {
|
|
20161
20270
|
console.error("Error details:", error.message);
|
|
20162
20271
|
}
|
|
@@ -20797,7 +20906,7 @@ function ReviewForm({
|
|
|
20797
20906
|
{
|
|
20798
20907
|
id: "reviewType",
|
|
20799
20908
|
...register("reviewType"),
|
|
20800
|
-
className: "w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-
|
|
20909
|
+
className: "w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-haccent-500 focus:border-transparent",
|
|
20801
20910
|
children: [
|
|
20802
20911
|
/* @__PURE__ */ jsx("option", { value: "Product Review", children: "Product Review" }),
|
|
20803
20912
|
/* @__PURE__ */ jsx("option", { value: "Quality Review", children: "Quality Review" }),
|
|
@@ -20826,7 +20935,7 @@ function ReviewForm({
|
|
|
20826
20935
|
...register("review"),
|
|
20827
20936
|
rows: 5,
|
|
20828
20937
|
placeholder: "Share your experience with this product...",
|
|
20829
|
-
className: "w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-
|
|
20938
|
+
className: "w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-haccent-500 focus:border-transparent resize-none"
|
|
20830
20939
|
}
|
|
20831
20940
|
),
|
|
20832
20941
|
errors.review && /* @__PURE__ */ jsx("p", { className: "text-red-500 text-xs mt-1", children: errors.review.message })
|
|
@@ -20837,7 +20946,7 @@ function ReviewForm({
|
|
|
20837
20946
|
{
|
|
20838
20947
|
type: "submit",
|
|
20839
20948
|
disabled: isLoading,
|
|
20840
|
-
className: "flex-1 bg-
|
|
20949
|
+
className: "flex-1 bg-haccent-500 text-white py-3 px-6 rounded-lg font-medium hover:bg-[#d66f40] transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",
|
|
20841
20950
|
children: isLoading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20842
20951
|
/* @__PURE__ */ jsx(Loader2, { className: "size-4 animate-spin" }),
|
|
20843
20952
|
"Submitting..."
|
|
@@ -20896,7 +21005,7 @@ function OrderReviewsScreen() {
|
|
|
20896
21005
|
"button",
|
|
20897
21006
|
{
|
|
20898
21007
|
onClick: () => router.back(),
|
|
20899
|
-
className: "text-
|
|
21008
|
+
className: "text-haccent-500 hover:underline",
|
|
20900
21009
|
children: "Go Back"
|
|
20901
21010
|
}
|
|
20902
21011
|
)
|
|
@@ -20981,7 +21090,7 @@ function OrderReviewsScreen() {
|
|
|
20981
21090
|
return /* @__PURE__ */ jsx(
|
|
20982
21091
|
"div",
|
|
20983
21092
|
{
|
|
20984
|
-
className: "bg-white rounded-lg border border-gray-200 p-4 cursor-pointer hover:border-
|
|
21093
|
+
className: "bg-white rounded-lg border border-gray-200 p-4 cursor-pointer hover:border-haccent-500 hover:shadow-md transition-all",
|
|
20985
21094
|
onClick: () => {
|
|
20986
21095
|
const possibleProductId = item.productId || item.product?._id || item.product?.id || variantData?.productId || variantData?.product?._id || variantData?.product?.id || variantId;
|
|
20987
21096
|
const productData = {
|
|
@@ -21012,7 +21121,7 @@ function OrderReviewsScreen() {
|
|
|
21012
21121
|
item.quantity
|
|
21013
21122
|
] })
|
|
21014
21123
|
] }),
|
|
21015
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 text-
|
|
21124
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 text-haccent-500", children: /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: "Review Now" }) })
|
|
21016
21125
|
] })
|
|
21017
21126
|
},
|
|
21018
21127
|
`${variantId}-${index}`
|
|
@@ -21037,14 +21146,14 @@ function OrderReviewsScreen() {
|
|
|
21037
21146
|
"button",
|
|
21038
21147
|
{
|
|
21039
21148
|
onClick: () => router.push("/shop"),
|
|
21040
|
-
className: "px-6 py-3 bg-
|
|
21149
|
+
className: "px-6 py-3 bg-haccent-500 text-white rounded-lg hover:bg-[#d66f40] transition-colors",
|
|
21041
21150
|
children: "Start Shopping"
|
|
21042
21151
|
}
|
|
21043
21152
|
)
|
|
21044
21153
|
] }) : /* @__PURE__ */ jsx("div", { className: "space-y-4", children: completedOrders.map((order) => /* @__PURE__ */ jsx(
|
|
21045
21154
|
"div",
|
|
21046
21155
|
{
|
|
21047
|
-
className: "bg-white rounded-lg border border-gray-200 p-6 cursor-pointer hover:border-
|
|
21156
|
+
className: "bg-white rounded-lg border border-gray-200 p-6 cursor-pointer hover:border-haccent-500 hover:shadow-md transition-all",
|
|
21048
21157
|
onClick: () => handleOrderClick(order),
|
|
21049
21158
|
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
21050
21159
|
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
@@ -21062,7 +21171,7 @@ function OrderReviewsScreen() {
|
|
|
21062
21171
|
] }),
|
|
21063
21172
|
order.createdAt && /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500", children: formatDistanceToNow(new Date(order.createdAt), { addSuffix: true }) })
|
|
21064
21173
|
] }),
|
|
21065
|
-
/* @__PURE__ */ jsx("div", { className: "text-right", children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 text-
|
|
21174
|
+
/* @__PURE__ */ jsx("div", { className: "text-right", children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 text-haccent-500", children: /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: "Review Products" }) }) })
|
|
21066
21175
|
] })
|
|
21067
21176
|
},
|
|
21068
21177
|
order.id || order._id
|
|
@@ -22175,7 +22284,7 @@ function Header() {
|
|
|
22175
22284
|
),
|
|
22176
22285
|
/* @__PURE__ */ jsx("div", { className: "absolute right-0 top-full mt-2 w-56 rounded-lg border border-slate-200 bg-white shadow-lg z-20", children: /* @__PURE__ */ jsxs("div", { className: "p-2", children: [
|
|
22177
22286
|
/* @__PURE__ */ jsxs("div", { className: "px-3 py-2 border-b border-slate-200 mb-1", children: [
|
|
22178
|
-
/* @__PURE__ */ jsxs("p", { className: "text-sm font-medium text-
|
|
22287
|
+
/* @__PURE__ */ jsxs("p", { className: "text-sm font-medium text-hprimary-900 truncate", children: [
|
|
22179
22288
|
user?.firstname,
|
|
22180
22289
|
" ",
|
|
22181
22290
|
user?.lastname
|
|
@@ -22518,6 +22627,6 @@ function NotificationDrawer() {
|
|
|
22518
22627
|
] }) });
|
|
22519
22628
|
}
|
|
22520
22629
|
|
|
22521
|
-
export { AccountReviewsTab, AddressAddressTypeEnum, AddressCreatedRequestAddressTypeEnum, AddressesScreen,
|
|
22630
|
+
export { AccountReviewsTab, AddressAddressTypeEnum, AddressCreatedRequestAddressTypeEnum, AddressesScreen, AuthProvider, Badge, BulkChannelToggleDtoCategoryEnum, Button, CartItem, CartProvider, CartScreen, ChangePasswordScreen, CheckoutScreen, CreateAddressDtoAddressTypeEnum, CreateDiscountDtoStateEnum, CreateDiscountDtoTypeEnum, CreateDiscountDtoValueTypeEnum, CreateStoreAddressDtoAddressTypeEnum, CreateUserDtoCustomerTypeEnum, CreateUserDtoRoleEnum, CurrentOrdersScreen, DiscountStateEnum, DiscountTypeEnum, DiscountValueTypeEnum, EcommerceProvider, EditProfileScreen, EmptyState, Footer, ForgotPasswordScreen, Header, Input, InventoryAlertDtoAlertTypeEnum, LoginScreen, ManualDiscountDtoValueTypeEnum, ManualOrderDTOOrderStatusEnum, ManualOrderDTOPaymentMethodEnum, ManualOrderDTOPaymentStatusEnum, Modal, NewAddressPage as NewAddressScreen, NotificationBell, NotificationCard, NotificationCenterProvider, NotificationDrawer, NotificationDtoTypeEnum, NotificationSettingsScreen, OrderCard, OrderCardSkeleton, OrderDetailScreen, OrderOrderTypeEnum, OrderReviewsScreen, OrderTimeLineDTOTypeEnum, OrderTypeEnum, OrdersScreen, PaymentPaymentMethodEnum, PaymentPaymentStatusEnum, PaymentTimeLineDTOTitleEnum, PopulatedDiscountStateEnum, PopulatedDiscountTypeEnum, PopulatedDiscountValueTypeEnum, PopulatedOrderOrderTypeEnum, PopulatedOrderTypeEnum, PreferenceUpdateItemTypeEnum, ProductCard, ProductCardSkeleton, ProductDetailScreen, ProductReviewsSection, ProductVariantInventoryStatusEnum, AccountPage as ProfileScreen, RatingDistribution, RegisterScreen, ReorderProductsDtoContainerTypeEnum, ResetPasswordScreen, ReviewCard, ReviewForm, ReviewPromptBanner, ReviewsList, SearchPage as SearchResultsScreen, ShipmentDetailsDtoStatusEnum, ShippingInfoStatusEnum, ShopScreen, SingleProductMediaTypeEnum, Skeleton, StarRating, ThemeProvider, UpdateAddressDtoAddressTypeEnum, UpdateDiscountDtoStateEnum, UpdateDiscountDtoTypeEnum, UpdateDiscountDtoValueTypeEnum, UpdateManualShipmentStatusDtoStatusEnum, UpdateUserDtoCustomerTypeEnum, UpdateUserDtoRoleEnum, UserEntityCustomerTypeEnum, UserEntityRoleEnum, UserWithNoIdCustomerTypeEnum, UserWithNoIdRoleEnum, WishlistProvider, WishlistScreen, formatDate, formatPrice, generateColorShades, getApiConfiguration, getInitials, hexToRgb, initializeApiAdapter, truncate, useAddresses, useAuth, useBasePath, useCart, useCategories, useCreateReview, useCurrentOrders, useDeleteReview, useNotificationCenter, useOrder, useOrders, useProduct, useProductReviews, useProducts, useReviewStats, useReviewsByRating, useStoreCapabilities, useTheme, useUpdateReview, useUserReviews, useWishlist };
|
|
22522
22631
|
//# sourceMappingURL=index.mjs.map
|
|
22523
22632
|
//# sourceMappingURL=index.mjs.map
|