hey-pharmacist-ecommerce 1.1.41 → 1.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +370 -370
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +370 -370
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/AccountAddressesTab.tsx +9 -9
- package/src/components/AccountOrdersTab.tsx +11 -11
- package/src/components/AccountOverviewTab.tsx +21 -21
- package/src/components/AccountPaymentTab.tsx +2 -2
- package/src/components/AccountReviewsTab.tsx +1 -1
- package/src/components/AccountSettingsTab.tsx +6 -6
- package/src/components/AddressFormModal.tsx +2 -2
- package/src/components/CartItem.tsx +2 -2
- package/src/components/FilterChips.tsx +7 -7
- package/src/components/Footer.tsx +9 -9
- package/src/components/Header.tsx +7 -7
- package/src/components/NotificationBell.tsx +3 -3
- package/src/components/NotificationDrawer.tsx +1 -1
- package/src/components/NotificationModal.tsx +1 -1
- package/src/components/OrderCard.tsx +2 -2
- package/src/components/ProductCard.tsx +6 -6
- package/src/components/QuickViewModal.tsx +23 -23
- package/src/components/ReviewCard.tsx +4 -4
- package/src/components/TabNavigation.tsx +2 -2
- package/src/components/ui/Badge.tsx +2 -2
- package/src/components/ui/Button.tsx +3 -3
- package/src/components/ui/ConfirmModal.tsx +3 -3
- package/src/components/ui/Input.tsx +1 -1
- package/src/providers/ThemeProvider.tsx +2 -2
- package/src/screens/AddressesScreen.tsx +6 -6
- package/src/screens/CartScreen.tsx +19 -19
- package/src/screens/ChangePasswordScreen.tsx +2 -2
- package/src/screens/CheckoutScreen.tsx +21 -21
- package/src/screens/CurrentOrdersScreen.tsx +4 -4
- package/src/screens/EditProfileScreen.tsx +1 -1
- package/src/screens/ForgotPasswordScreen.tsx +11 -11
- package/src/screens/LoginScreen.tsx +12 -12
- package/src/screens/OrderDetailScreen.tsx +30 -30
- package/src/screens/OrdersScreen.tsx +3 -3
- package/src/screens/ProductDetailScreen.tsx +48 -48
- package/src/screens/ProfileScreen.tsx +2 -2
- package/src/screens/RegisterScreen.tsx +15 -15
- package/src/screens/ResetPasswordScreen.tsx +14 -14
- package/src/screens/SearchResultsScreen.tsx +7 -7
- package/src/screens/ShopScreen.tsx +50 -50
- package/src/screens/WishlistScreen.tsx +22 -22
- package/src/styles/globals.css +43 -43
package/dist/index.js
CHANGED
|
@@ -248,7 +248,7 @@ function ThemeProvider({ config, children }) {
|
|
|
248
248
|
vars.push(`--hp-secondary: ${config.colors.secondary}`);
|
|
249
249
|
vars.push(`--hp-accent: ${config.colors.accent}`);
|
|
250
250
|
vars.push(`--hp-accent-dark: ${config.colors.accentDark}`);
|
|
251
|
-
vars.push(`--hp-text-
|
|
251
|
+
vars.push(`--hp-text-hmuted: ${config.colors.textMuted}`);
|
|
252
252
|
Object.entries(primaryShades).forEach(([shade, rgb]) => {
|
|
253
253
|
vars.push(`--hp-primary-${shade}: ${rgb}`);
|
|
254
254
|
});
|
|
@@ -270,7 +270,7 @@ function ThemeProvider({ config, children }) {
|
|
|
270
270
|
root.style.setProperty("--hp-secondary", config.colors.secondary);
|
|
271
271
|
root.style.setProperty("--hp-accent", config.colors.accent);
|
|
272
272
|
root.style.setProperty("--hp-accent-dark", config.colors.accentDark);
|
|
273
|
-
root.style.setProperty("--hp-text-
|
|
273
|
+
root.style.setProperty("--hp-text-hmuted", config.colors.textMuted);
|
|
274
274
|
Object.entries(primaryShades).forEach(([shade, rgb]) => {
|
|
275
275
|
root.style.setProperty(`--hp-primary-${shade}`, rgb);
|
|
276
276
|
});
|
|
@@ -12780,17 +12780,17 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12780
12780
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-8", children: [
|
|
12781
12781
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between mb-6", children: [
|
|
12782
12782
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
12783
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-
|
|
12784
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-['Poppins',sans-serif] font-semibold text-
|
|
12783
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-hprimary uppercase tracking-wide font-medium mb-2", children: product.brand }),
|
|
12784
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-['Poppins',sans-serif] font-semibold text-hsecondary tracking-[-1px]", children: displayName }),
|
|
12785
12785
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mt-2", children: [
|
|
12786
12786
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", children: [...Array(5)].map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
12787
12787
|
lucideReact.Star,
|
|
12788
12788
|
{
|
|
12789
|
-
className: `size-4 ${i < Math.floor(product.summary?.averageRating || 0) ? "text-
|
|
12789
|
+
className: `size-4 ${i < Math.floor(product.summary?.averageRating || 0) ? "text-haccent fill-accent" : "text-gray-300"}`
|
|
12790
12790
|
},
|
|
12791
12791
|
i
|
|
12792
12792
|
)) }),
|
|
12793
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[13px] text-
|
|
12793
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[13px] text-hmuted", children: [
|
|
12794
12794
|
product.summary?.averageRating || 0,
|
|
12795
12795
|
" (",
|
|
12796
12796
|
product.summary?.reviewCount || 0,
|
|
@@ -12803,7 +12803,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12803
12803
|
{
|
|
12804
12804
|
onClick: onClose,
|
|
12805
12805
|
className: "p-2 hover:bg-gray-100 rounded-full transition-colors",
|
|
12806
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-6 text-
|
|
12806
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-6 text-hmuted" })
|
|
12807
12807
|
}
|
|
12808
12808
|
)
|
|
12809
12809
|
] }),
|
|
@@ -12818,7 +12818,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12818
12818
|
className: "w-full h-full object-contain"
|
|
12819
12819
|
}
|
|
12820
12820
|
),
|
|
12821
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-4 left-4 flex flex-col gap-2", children: isDiscounted && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-
|
|
12821
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-4 left-4 flex flex-col gap-2", children: isDiscounted && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-haccent text-white rounded-full px-3 py-1.5", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] font-bold text-[11px] uppercase", children: [
|
|
12822
12822
|
"-",
|
|
12823
12823
|
discountAmount,
|
|
12824
12824
|
"%"
|
|
@@ -12827,7 +12827,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12827
12827
|
selectedVariant.media.length > 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-3", children: selectedVariant.media.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
12828
12828
|
"div",
|
|
12829
12829
|
{
|
|
12830
|
-
className: `aspect-square rounded-xl overflow-hidden cursor-pointer transition-opacity ${selectedImageIndex === index ? "ring-2 ring-
|
|
12830
|
+
className: `aspect-square rounded-xl overflow-hidden cursor-pointer transition-opacity ${selectedImageIndex === index ? "ring-2 ring-hprimary" : "bg-gray-50 hover:opacity-75"}`,
|
|
12831
12831
|
onClick: () => setSelectedImageIndex(index),
|
|
12832
12832
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12833
12833
|
"img",
|
|
@@ -12843,16 +12843,16 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12843
12843
|
] }),
|
|
12844
12844
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
|
|
12845
12845
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-4", children: [
|
|
12846
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] font-bold text-[32px] text-
|
|
12846
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] font-bold text-[32px] text-haccent", children: [
|
|
12847
12847
|
"$",
|
|
12848
12848
|
displayPrice.toFixed(2)
|
|
12849
12849
|
] }),
|
|
12850
|
-
isDiscounted && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[20px] text-
|
|
12850
|
+
isDiscounted && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[20px] text-hmuted line-through", children: [
|
|
12851
12851
|
"$",
|
|
12852
12852
|
displayOriginalPrice.toFixed(2)
|
|
12853
12853
|
] })
|
|
12854
12854
|
] }),
|
|
12855
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6", children: selectedVariant.inventoryCount === 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] text-[12px] text-red-500 font-medium", children: "Out of Stock" }) : selectedVariant.inventoryCount <= 10 ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[12px] text-
|
|
12855
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6", children: selectedVariant.inventoryCount === 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] text-[12px] text-red-500 font-medium", children: "Out of Stock" }) : selectedVariant.inventoryCount <= 10 ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[12px] text-hprimary font-medium flex items-center gap-1", children: [
|
|
12856
12856
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Package, { className: "size-3" }),
|
|
12857
12857
|
"Only ",
|
|
12858
12858
|
selectedVariant.inventoryCount,
|
|
@@ -12864,14 +12864,14 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12864
12864
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12865
12865
|
"div",
|
|
12866
12866
|
{
|
|
12867
|
-
className: "font-['Poppins',sans-serif] text-[14px] text-
|
|
12867
|
+
className: "font-['Poppins',sans-serif] text-[14px] text-hmuted leading-[1.7] mb-6 max-w-full overflow-hidden break-words",
|
|
12868
12868
|
dangerouslySetInnerHTML: { __html: product.description }
|
|
12869
12869
|
}
|
|
12870
12870
|
),
|
|
12871
12871
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6", children: [
|
|
12872
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-
|
|
12872
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-hsecondary mb-3", children: [
|
|
12873
12873
|
"Selected Variant: ",
|
|
12874
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-normal text-
|
|
12874
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-normal text-hmuted", children: product.variants[selectedVariantIndex].name })
|
|
12875
12875
|
] }),
|
|
12876
12876
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-3", children: product.variants.map((variant, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
12877
12877
|
"button",
|
|
@@ -12881,7 +12881,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12881
12881
|
setSelectedSizeIndex(0);
|
|
12882
12882
|
setSelectedImageIndex(0);
|
|
12883
12883
|
},
|
|
12884
|
-
className: `size-10 rounded-full border-2 transition-all ${selectedVariantIndex === index ? "border-
|
|
12884
|
+
className: `size-10 rounded-full border-2 transition-all ${selectedVariantIndex === index ? "border-hprimary scale-110" : "border-gray-200 hover:border-hprimary-50"}`,
|
|
12885
12885
|
style: { backgroundColor: variant.colorHex },
|
|
12886
12886
|
title: variant.color,
|
|
12887
12887
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -12899,11 +12899,11 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12899
12899
|
)) })
|
|
12900
12900
|
] }),
|
|
12901
12901
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6 p-4 bg-gray-50 rounded-xl", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-2", children: product.tags.slice(0, 3).map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start gap-2", children: [
|
|
12902
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-4 text-
|
|
12903
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] text-[12px] text-
|
|
12902
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-4 text-hprimary shrink-0 mt-0.5" }),
|
|
12903
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] text-[12px] text-hmuted", children: feature })
|
|
12904
12904
|
] }, index)) }) }),
|
|
12905
12905
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6", children: [
|
|
12906
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-
|
|
12906
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-hsecondary mb-3", children: "Quantity" }),
|
|
12907
12907
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
|
|
12908
12908
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12909
12909
|
"button",
|
|
@@ -12911,7 +12911,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12911
12911
|
onClick: () => handleQuantityChange(quantity - 1),
|
|
12912
12912
|
disabled: quantity <= 1,
|
|
12913
12913
|
className: "p-2 rounded-full border border-gray-200 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
12914
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Minus, { className: "size-4 text-
|
|
12914
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Minus, { className: "size-4 text-hsecondary" })
|
|
12915
12915
|
}
|
|
12916
12916
|
),
|
|
12917
12917
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-8 text-center font-medium", children: quantity }),
|
|
@@ -12921,7 +12921,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12921
12921
|
onClick: () => handleQuantityChange(quantity + 1),
|
|
12922
12922
|
disabled: quantity >= (selectedVariant.inventoryCount || 10),
|
|
12923
12923
|
className: "p-2 rounded-full border border-gray-200 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
12924
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-4 text-
|
|
12924
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-4 text-hsecondary" })
|
|
12925
12925
|
}
|
|
12926
12926
|
)
|
|
12927
12927
|
] })
|
|
@@ -12932,7 +12932,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12932
12932
|
{
|
|
12933
12933
|
onClick: handleAddToCart,
|
|
12934
12934
|
disabled: addedToCart || selectedVariant.inventoryCount === 0,
|
|
12935
|
-
className: `w-full font-['Poppins',sans-serif] 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-
|
|
12935
|
+
className: `w-full font-['Poppins',sans-serif] 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"}`,
|
|
12936
12936
|
children: isAddingToCart ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
12937
12937
|
/* @__PURE__ */ jsxRuntime.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: [
|
|
12938
12938
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
|
|
@@ -12951,7 +12951,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
|
|
|
12951
12951
|
onClick: () => {
|
|
12952
12952
|
onClose();
|
|
12953
12953
|
},
|
|
12954
|
-
className: "w-full font-['Poppins',sans-serif] font-medium text-[13px] px-6 py-3 rounded-full bg-white text-
|
|
12954
|
+
className: "w-full font-['Poppins',sans-serif] 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",
|
|
12955
12955
|
children: [
|
|
12956
12956
|
"View Full Details",
|
|
12957
12957
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ExternalLink, { className: "size-4" })
|
|
@@ -13062,7 +13062,7 @@ function ProductCard({
|
|
|
13062
13062
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
13063
13063
|
framerMotion.motion.div,
|
|
13064
13064
|
{
|
|
13065
|
-
className: "bg-white rounded-[16px] overflow-hidden border-2 border-gray-100 hover:border-
|
|
13065
|
+
className: "bg-white rounded-[16px] overflow-hidden border-2 border-gray-100 hover:border-hsecondary hover:shadow-lg transition-all duration-300 group h-full flex flex-col",
|
|
13066
13066
|
whileHover: { y: -4 },
|
|
13067
13067
|
onMouseEnter: () => setIsHovered(true),
|
|
13068
13068
|
onMouseLeave: () => setIsHovered(false),
|
|
@@ -13114,7 +13114,7 @@ function ProductCard({
|
|
|
13114
13114
|
displayDiscountAmount,
|
|
13115
13115
|
"%"
|
|
13116
13116
|
] }) }) }),
|
|
13117
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-xs text-
|
|
13117
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-xs text-hsecondary uppercase tracking-wide font-medium", children: product.brand }) }),
|
|
13118
13118
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "h-[40px] mb-3", children: [
|
|
13119
13119
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-['Poppins',sans-serif] font-semibold text-[#2B4B7C] line-clamp-2", children: product.name }),
|
|
13120
13120
|
selectedVariant && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-['Poppins',sans-serif] text-[#676c80]", children: selectedVariant.name })
|
|
@@ -13134,7 +13134,7 @@ function ProductCard({
|
|
|
13134
13134
|
] })
|
|
13135
13135
|
] }),
|
|
13136
13136
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 mb-3", children: [
|
|
13137
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] font-bold text-md text-
|
|
13137
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] font-bold text-md text-hprimary-600", children: [
|
|
13138
13138
|
"$",
|
|
13139
13139
|
displayFinalPrice.toFixed(2)
|
|
13140
13140
|
] }),
|
|
@@ -13158,7 +13158,7 @@ function ProductCard({
|
|
|
13158
13158
|
}
|
|
13159
13159
|
setIsImageLoaded(false);
|
|
13160
13160
|
},
|
|
13161
|
-
className: `relative w-8 h-8 rounded-full overflow-hidden border-2 transition-all ${selectedVariantId === variant.variantId ? "border-
|
|
13161
|
+
className: `relative w-8 h-8 rounded-full overflow-hidden border-2 transition-all ${selectedVariantId === variant.variantId ? "border-hprimary-500 ring-2 ring-hprimary-200" : "border-gray-200 hover:border-hprimary-300"}`,
|
|
13162
13162
|
"aria-label": `Select ${variant.variantName || "variant"}`,
|
|
13163
13163
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13164
13164
|
Image4__default.default,
|
|
@@ -13213,7 +13213,7 @@ function ProductCard({
|
|
|
13213
13213
|
}
|
|
13214
13214
|
},
|
|
13215
13215
|
disabled: isAddingToCart || variantImages.length > 0 && !selectedVariantId || displayInventoryCount === 0,
|
|
13216
|
-
className: "w-full font-['Poppins',sans-serif] font-medium text-[11px] px-3 py-2 rounded-full bg-
|
|
13216
|
+
className: "w-full font-['Poppins',sans-serif] 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",
|
|
13217
13217
|
children: [
|
|
13218
13218
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShoppingCart, { className: "h-4 w-4" }),
|
|
13219
13219
|
displayInventoryCount === 0 ? "Out of Stock" : "Add to Cart"
|
|
@@ -13277,11 +13277,11 @@ function Button({
|
|
|
13277
13277
|
children,
|
|
13278
13278
|
...props
|
|
13279
13279
|
}) {
|
|
13280
|
-
const baseStyles = "font-medium rounded-full transition-all duration-200 inline-flex items-center justify-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed focus:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-
|
|
13280
|
+
const baseStyles = "font-medium rounded-full transition-all duration-200 inline-flex items-center justify-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed focus:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-hprimary-500 hover:cursor-pointer";
|
|
13281
13281
|
const variants = {
|
|
13282
13282
|
primary: "bg-[#0E172B] text-white hover:bg-[#0E172B]/80 shadow-lg shadow-[#0E172B]/30 hover:shadow-xl hover:shadow-[#0E172B]/40",
|
|
13283
|
-
secondary: "bg-
|
|
13284
|
-
"outline-solid": "border-2 border-
|
|
13283
|
+
secondary: "bg-hsecondary-600 text-white hover:bg-hsecondary-700 shadow-lg shadow-secondary-500/30 hover:shadow-xl hover:shadow-secondary-500/40",
|
|
13284
|
+
"outline-solid": "border-2 border-hprimary-600 text-hprimary-600 hover:bg-hprimary-50",
|
|
13285
13285
|
ghost: "text-gray-700 hover:bg-gray-100"
|
|
13286
13286
|
};
|
|
13287
13287
|
const sizes = {
|
|
@@ -13333,7 +13333,7 @@ var Input = React10.forwardRef(
|
|
|
13333
13333
|
ref,
|
|
13334
13334
|
className: `
|
|
13335
13335
|
w-full px-4 py-3 rounded-lg border-2 transition-all duration-200
|
|
13336
|
-
${error ? "border-red-500 focus:border-red-600 focus:ring-red-500/20" : "border-gray-200 focus:border-
|
|
13336
|
+
${error ? "border-red-500 focus:border-red-600 focus:ring-red-500/20" : "border-gray-200 focus:border-hprimary-500 focus:ring-hprimary-500/20"}
|
|
13337
13337
|
focus:outline-hidden focus:ring-4
|
|
13338
13338
|
placeholder:text-gray-400
|
|
13339
13339
|
disabled:bg-gray-50 disabled:cursor-not-allowed
|
|
@@ -14001,11 +14001,11 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14001
14001
|
return lucideReact.Package;
|
|
14002
14002
|
};
|
|
14003
14003
|
const renderFiltersPanel = () => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `lg:w-72 ${showFilters ? "block rounded-full" : "hidden lg:block"}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white rounded-[24px] p-6 border-2 border-gray-100 sticky top-24", children: [
|
|
14004
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-
|
|
14004
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-hsecondary", children: "Filters" }),
|
|
14005
14005
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6", children: [
|
|
14006
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-
|
|
14006
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-hmuted mb-2 block font-medium", children: "Search Products" }),
|
|
14007
14007
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
14008
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-
|
|
14008
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-hmuted" }),
|
|
14009
14009
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14010
14010
|
"input",
|
|
14011
14011
|
{
|
|
@@ -14013,7 +14013,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14013
14013
|
placeholder: "Search...",
|
|
14014
14014
|
value: searchQuery,
|
|
14015
14015
|
onChange: handleInputChange,
|
|
14016
|
-
className: "w-full pl-10 pr-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-
|
|
14016
|
+
className: "w-full pl-10 pr-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-hprimary focus:outline-hidden font-['Poppins',sans-serif] text-[13px] text-hsecondary"
|
|
14017
14017
|
}
|
|
14018
14018
|
)
|
|
14019
14019
|
] })
|
|
@@ -14025,8 +14025,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14025
14025
|
onClick: () => toggleFilterSection("category"),
|
|
14026
14026
|
className: "w-full flex items-center justify-between mb-3",
|
|
14027
14027
|
children: [
|
|
14028
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-
|
|
14029
|
-
expandedFilterSections.category ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `size-4 text-
|
|
14028
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-hmuted font-medium cursor-pointer", children: "Category" }),
|
|
14029
|
+
expandedFilterSections.category ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.category ? "rotate-180" : ""}` }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.category ? "rotate-180" : ""}` })
|
|
14030
14030
|
]
|
|
14031
14031
|
}
|
|
14032
14032
|
),
|
|
@@ -14042,7 +14042,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14042
14042
|
if (!isExpanded) toggleCategoryExpand(categoryId);
|
|
14043
14043
|
handleCategoryChange(categoryId);
|
|
14044
14044
|
},
|
|
14045
|
-
className: `w-full text-left px-4 py-3 rounded-xl font-['Poppins',sans-serif] text-[13px] transition-all flex items-center gap-3 ${isCategoryActive ? "bg-
|
|
14045
|
+
className: `w-full text-left px-4 py-3 rounded-xl font-['Poppins',sans-serif] 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"}`,
|
|
14046
14046
|
children: [
|
|
14047
14047
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "size-4" }),
|
|
14048
14048
|
category.name
|
|
@@ -14059,8 +14059,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14059
14059
|
onClick: () => toggleFilterSection("brand"),
|
|
14060
14060
|
className: "w-full flex items-center justify-between mb-3",
|
|
14061
14061
|
children: [
|
|
14062
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-
|
|
14063
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `size-4 text-
|
|
14062
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-hmuted font-medium cursor-pointer", children: "Brand" }),
|
|
14063
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.brand ? "rotate-180" : ""}` })
|
|
14064
14064
|
]
|
|
14065
14065
|
}
|
|
14066
14066
|
),
|
|
@@ -14070,7 +14070,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14070
14070
|
"button",
|
|
14071
14071
|
{
|
|
14072
14072
|
onClick: () => handleBrandChange(brand),
|
|
14073
|
-
className: `w-full text-left px-4 py-3 rounded-xl font-['Poppins',sans-serif] text-[13px] transition-all ${isSelected ? "bg-
|
|
14073
|
+
className: `w-full text-left px-4 py-3 rounded-xl font-['Poppins',sans-serif] text-[13px] transition-all ${isSelected ? "bg-hprimary text-white shadow-lg" : "text-hsecondary hover:bg-gray-50 border-2 border-gray-100"}`,
|
|
14074
14074
|
children: brand
|
|
14075
14075
|
},
|
|
14076
14076
|
brand
|
|
@@ -14084,8 +14084,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14084
14084
|
onClick: () => toggleFilterSection("availability"),
|
|
14085
14085
|
className: "w-full flex items-center justify-between mb-3",
|
|
14086
14086
|
children: [
|
|
14087
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-
|
|
14088
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `size-4 text-
|
|
14087
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-hmuted font-medium cursor-pointer", children: "Availability" }),
|
|
14088
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.availability ? "rotate-180" : ""}` })
|
|
14089
14089
|
]
|
|
14090
14090
|
}
|
|
14091
14091
|
),
|
|
@@ -14093,7 +14093,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14093
14093
|
"button",
|
|
14094
14094
|
{
|
|
14095
14095
|
onClick: handleToggleStock,
|
|
14096
|
-
className: `w-full flex items-center justify-between px-4 py-3 rounded-xl font-['Poppins',sans-serif] text-[13px] transition-all border-2 ${inStockOnly ? "bg-
|
|
14096
|
+
className: `w-full flex items-center justify-between px-4 py-3 rounded-xl font-['Poppins',sans-serif] text-[13px] transition-all border-2 ${inStockOnly ? "bg-hprimary text-white shadow-lg" : "text-hsecondary hover:bg-gray-50 border-2 border-gray-100"}`,
|
|
14097
14097
|
children: "In Stock Only"
|
|
14098
14098
|
}
|
|
14099
14099
|
) })
|
|
@@ -14105,8 +14105,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14105
14105
|
onClick: () => toggleFilterSection("price"),
|
|
14106
14106
|
className: "w-full flex items-center justify-between mb-3",
|
|
14107
14107
|
children: [
|
|
14108
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-
|
|
14109
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `size-4 text-
|
|
14108
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "font-['Poppins',sans-serif] text-[12px] text-hmuted font-medium cursor-pointer", children: "Price Range" }),
|
|
14109
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `size-4 text-hmuted transition-transform ${expandedFilterSections.price ? "rotate-180" : ""}` })
|
|
14110
14110
|
]
|
|
14111
14111
|
}
|
|
14112
14112
|
),
|
|
@@ -14118,7 +14118,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14118
14118
|
{
|
|
14119
14119
|
type: "button",
|
|
14120
14120
|
onClick: () => handlePriceRangeSelect(range.value),
|
|
14121
|
-
className: `w-full flex items-center justify-between px-4 py-3 rounded-xl font-['Poppins',sans-serif] text-[13px] transition-all border-2 ${isActive ? "bg-
|
|
14121
|
+
className: `w-full flex items-center justify-between px-4 py-3 rounded-xl font-['Poppins',sans-serif] text-[13px] transition-all border-2 ${isActive ? "bg-hprimary text-white shadow-lg" : "text-hsecondary hover:bg-gray-50 border-2 border-gray-100"}`,
|
|
14122
14122
|
children: range.label
|
|
14123
14123
|
},
|
|
14124
14124
|
range.value
|
|
@@ -14133,7 +14133,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14133
14133
|
placeholder: "Min",
|
|
14134
14134
|
value: customPrice.min,
|
|
14135
14135
|
onChange: (event) => setCustomPrice((current) => ({ ...current, min: event.target.value })),
|
|
14136
|
-
className: "w-1/2 px-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-
|
|
14136
|
+
className: "w-1/2 px-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-hprimary focus:outline-hidden font-['Poppins',sans-serif] text-[13px] text-hsecondary"
|
|
14137
14137
|
}
|
|
14138
14138
|
),
|
|
14139
14139
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -14144,7 +14144,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14144
14144
|
placeholder: "Max",
|
|
14145
14145
|
value: customPrice.max,
|
|
14146
14146
|
onChange: (event) => setCustomPrice((current) => ({ ...current, max: event.target.value })),
|
|
14147
|
-
className: "w-1/2 px-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-
|
|
14147
|
+
className: "w-1/2 px-4 py-2.5 rounded-xl border-2 border-gray-200 focus:border-hprimary focus:outline-hidden font-['Poppins',sans-serif] text-[13px] text-hsecondary"
|
|
14148
14148
|
}
|
|
14149
14149
|
)
|
|
14150
14150
|
] }),
|
|
@@ -14154,7 +14154,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14154
14154
|
type: "button",
|
|
14155
14155
|
onClick: applyCustomPrice,
|
|
14156
14156
|
disabled: !isCustomPriceDirty,
|
|
14157
|
-
className: "w-full rounded-lg border border-
|
|
14157
|
+
className: "w-full rounded-lg border border-hprimary bg-hprimary-10 px-4 py-2 text-sm font-medium text-hprimary transition hover:bg-hprimary-20 disabled:cursor-not-allowed disabled:border-slate-200 disabled:text-slate-400",
|
|
14158
14158
|
children: "Apply"
|
|
14159
14159
|
}
|
|
14160
14160
|
)
|
|
@@ -14173,7 +14173,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14173
14173
|
return lucideReact.Package;
|
|
14174
14174
|
};
|
|
14175
14175
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-h-screen bg-[#F9FAFB]", children: [
|
|
14176
|
-
/* @__PURE__ */ jsxRuntime.jsx("section", { className: "relative overflow-hidden bg-
|
|
14176
|
+
/* @__PURE__ */ jsxRuntime.jsx("section", { className: "relative overflow-hidden bg-hprimary-bg py-16 md:py-24", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14177
14177
|
framerMotion.motion.div,
|
|
14178
14178
|
{
|
|
14179
14179
|
initial: { opacity: 0, y: 24 },
|
|
@@ -14181,8 +14181,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14181
14181
|
className: "max-w-4xl mx-auto space-y-6 text-center",
|
|
14182
14182
|
children: [
|
|
14183
14183
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center gap-2 mb-4", children: [
|
|
14184
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Star, { className: "h-5 w-5 text-
|
|
14185
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-semibold uppercase tracking-wider text-
|
|
14184
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Star, { className: "h-5 w-5 text-hprimary fill-primary" }),
|
|
14185
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-semibold uppercase tracking-wider text-hprimary", children: "COMPLETE PHARMACY SHOP" })
|
|
14186
14186
|
] }),
|
|
14187
14187
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl md:text-4xl font-bold text-slate-900 leading-tight", children: "Medical Supplies & Wellness Products" }),
|
|
14188
14188
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base md:text-lg text-slate-600 max-w-2xl mx-auto", children: "From professional scrubs to vitamins, medicines to personal care - everything you need for health and wellness." }),
|
|
@@ -14201,7 +14201,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14201
14201
|
value: searchQuery,
|
|
14202
14202
|
onChange: handleInputChange,
|
|
14203
14203
|
onKeyDown: handleKeyDown,
|
|
14204
|
-
className: "flex h-16 w-full rounded-full border-0 bg-white px-5 pl-14 pr-5 text-base text-slate-900 placeholder-slate-400 shadow-lg focus:outline-hidden focus:ring-2 focus:ring-
|
|
14204
|
+
className: "flex h-16 w-full rounded-full border-0 bg-white px-5 pl-14 pr-5 text-base text-slate-900 placeholder-slate-400 shadow-lg focus:outline-hidden focus:ring-2 focus:ring-hprimary-500/30 disabled:opacity-50",
|
|
14205
14205
|
disabled: isSearching
|
|
14206
14206
|
}
|
|
14207
14207
|
)
|
|
@@ -14212,7 +14212,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14212
14212
|
}
|
|
14213
14213
|
) }) }),
|
|
14214
14214
|
/* @__PURE__ */ jsxRuntime.jsx("section", { className: "py-8 bg-white", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "container mx-auto px-4", children: [
|
|
14215
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl md:text-3xl font-['Poppins',sans-serif] font-semibold text-
|
|
14215
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl md:text-3xl font-['Poppins',sans-serif] font-semibold text-hsecondary mb-6", children: "Shop by Category" }),
|
|
14216
14216
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-4", children: [
|
|
14217
14217
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14218
14218
|
framerMotion.motion.button,
|
|
@@ -14220,11 +14220,11 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14220
14220
|
onClick: handleClearCategory,
|
|
14221
14221
|
initial: { opacity: 0, y: 20 },
|
|
14222
14222
|
animate: { opacity: 1, y: 0 },
|
|
14223
|
-
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-
|
|
14223
|
+
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"}`,
|
|
14224
14224
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
14225
|
-
/* @__PURE__ */ jsxRuntime.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-
|
|
14226
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: `font-['Poppins',sans-serif] font-semibold text-[14px] mb-1.5 ${!categoryFilter ? "text-white" : "text-
|
|
14227
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `font-['Poppins',sans-serif] text-[11px] ${!categoryFilter ? "text-white/80" : "text-
|
|
14225
|
+
/* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(lucideReact.Package, { className: `size-6 ${!categoryFilter ? "text-white" : "text-hprimary"}` }) }),
|
|
14226
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: `font-['Poppins',sans-serif] font-semibold text-[14px] mb-1.5 ${!categoryFilter ? "text-white" : "text-hsecondary"}`, children: "All Products" }),
|
|
14227
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `font-['Poppins',sans-serif] text-[11px] ${!categoryFilter ? "text-white/80" : "text-hmuted"}`, children: "Browse Everything" })
|
|
14228
14228
|
] })
|
|
14229
14229
|
}
|
|
14230
14230
|
),
|
|
@@ -14239,11 +14239,11 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14239
14239
|
animate: { opacity: 1, y: 0 },
|
|
14240
14240
|
transition: { delay: index * 0.1 },
|
|
14241
14241
|
onClick: () => handleCategoryChange(categoryId),
|
|
14242
|
-
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-
|
|
14242
|
+
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"}`,
|
|
14243
14243
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
14244
|
-
/* @__PURE__ */ jsxRuntime.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-
|
|
14245
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: `font-['Poppins',sans-serif] font-semibold text-[14px] mb-1.5 ${isSelected ? "text-white" : "text-
|
|
14246
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `font-['Poppins',sans-serif] text-[11px] ${isSelected ? "text-white/80" : "text-
|
|
14244
|
+
/* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(Icon, { className: `size-6 ${isSelected ? "text-white" : "text-hprimary"}` }) }),
|
|
14245
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: `font-['Poppins',sans-serif] font-semibold text-[14px] mb-1.5 ${isSelected ? "text-white" : "text-hsecondary"}`, children: category.name }),
|
|
14246
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `font-['Poppins',sans-serif] text-[11px] ${isSelected ? "text-white/80" : "text-hmuted"}`, children: category.description })
|
|
14247
14247
|
] })
|
|
14248
14248
|
},
|
|
14249
14249
|
categoryId
|
|
@@ -14267,7 +14267,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14267
14267
|
onChange: (event) => {
|
|
14268
14268
|
setSortOption(event.target.value);
|
|
14269
14269
|
},
|
|
14270
|
-
className: "appearance-none rounded-full border border-gray-200 bg-white py-2.5 pl-10 pr-9 text-sm font-medium text-gray-700 shadow-xs transition focus:outline-hidden focus:ring-1 focus:ring-
|
|
14270
|
+
className: "appearance-none rounded-full border border-gray-200 bg-white py-2.5 pl-10 pr-9 text-sm font-medium text-gray-700 shadow-xs transition focus:outline-hidden focus:ring-1 focus:ring-hsecondary focus:border-hprimary",
|
|
14271
14271
|
children: [
|
|
14272
14272
|
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "featured", children: "Featured products" }),
|
|
14273
14273
|
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "price-low-high", children: "Price: low to high" }),
|
|
@@ -14284,7 +14284,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14284
14284
|
{
|
|
14285
14285
|
type: "button",
|
|
14286
14286
|
onClick: () => setViewMode("grid"),
|
|
14287
|
-
className: `flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium transition ${viewMode === "grid" ? "bg-white text-
|
|
14287
|
+
className: `flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium transition ${viewMode === "grid" ? "bg-white text-hprimary shadow-md" : "text-gray-500 hover:text-gray-700"}`,
|
|
14288
14288
|
"aria-pressed": viewMode === "grid",
|
|
14289
14289
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LayoutGrid, { className: "h-4 w-4" })
|
|
14290
14290
|
}
|
|
@@ -14294,7 +14294,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14294
14294
|
{
|
|
14295
14295
|
type: "button",
|
|
14296
14296
|
onClick: () => setViewMode("list"),
|
|
14297
|
-
className: `flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium transition ${viewMode === "list" ? "bg-white text-
|
|
14297
|
+
className: `flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium transition ${viewMode === "list" ? "bg-white text-hprimary shadow-md" : "text-gray-500 hover:text-gray-700"}`,
|
|
14298
14298
|
"aria-pressed": viewMode === "list",
|
|
14299
14299
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LayoutList, { className: "h-4 w-4" })
|
|
14300
14300
|
}
|
|
@@ -14308,10 +14308,10 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14308
14308
|
{
|
|
14309
14309
|
type: "button",
|
|
14310
14310
|
onClick: chip.onRemove,
|
|
14311
|
-
className: "group flex items-center gap-2 rounded-full bg-
|
|
14311
|
+
className: "group flex items-center gap-2 rounded-full bg-hprimary-50 px-3 py-1.5 text-sm font-medium text-hprimary-700 transition hover:bg-hprimary-100",
|
|
14312
14312
|
children: [
|
|
14313
14313
|
chip.label,
|
|
14314
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4 text-
|
|
14314
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4 text-hprimary-500 group-hover:text-hprimary-700" })
|
|
14315
14315
|
]
|
|
14316
14316
|
},
|
|
14317
14317
|
chip.key
|
|
@@ -14359,7 +14359,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14359
14359
|
}
|
|
14360
14360
|
) }),
|
|
14361
14361
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-3", children: [
|
|
14362
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-2 text-xs font-semibold uppercase tracking-wide text-
|
|
14362
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-2 text-xs font-semibold uppercase tracking-wide text-hprimary-600", children: product.tags?.slice(0, 3).map((tag) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
14363
14363
|
"span",
|
|
14364
14364
|
{
|
|
14365
14365
|
className: "rounded-full bg-slate-100 px-3 py-1 text-gray-600",
|
|
@@ -14369,12 +14369,12 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14369
14369
|
)) }),
|
|
14370
14370
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-semibold text-gray-900 line-clamp-2", children: product.name }),
|
|
14371
14371
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-4 text-sm text-gray-500", children: [
|
|
14372
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-2 font-medium text-
|
|
14372
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-2 font-medium text-hprimary-600", children: [
|
|
14373
14373
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "h-4 w-4" }),
|
|
14374
14374
|
displayInventoryCount > 0 ? "In stock & ready to ship" : "Restocking soon"
|
|
14375
14375
|
] }),
|
|
14376
14376
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-2", children: [
|
|
14377
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "h-4 w-4 text-
|
|
14377
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "h-4 w-4 text-hprimary-500" }),
|
|
14378
14378
|
"Added ",
|
|
14379
14379
|
new Date(product.createdAt).toLocaleDateString()
|
|
14380
14380
|
] })
|
|
@@ -14392,7 +14392,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
|
|
|
14392
14392
|
event.stopPropagation();
|
|
14393
14393
|
router.push(buildPath(`/products/${product._id}`));
|
|
14394
14394
|
},
|
|
14395
|
-
className: "w-full font-['Poppins',sans-serif] font-medium text-sm px-3 py-2 rounded-xl bg-
|
|
14395
|
+
className: "w-full font-['Poppins',sans-serif] 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",
|
|
14396
14396
|
children: "View product"
|
|
14397
14397
|
}
|
|
14398
14398
|
)
|
|
@@ -14758,7 +14758,7 @@ function ReviewCard({ review, showProductInfo = false }) {
|
|
|
14758
14758
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border border-gray-200 rounded-lg p-4 bg-white", children: [
|
|
14759
14759
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between mb-3", children: [
|
|
14760
14760
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
14761
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-10 h-10 bg-
|
|
14761
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-10 h-10 bg-hsecondary/10 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.User, { className: "size-5 text-hsecondary" }) }),
|
|
14762
14762
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
14763
14763
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-gray-900", children: "Customer Review" }),
|
|
14764
14764
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500", children: dateFns.formatDistanceToNow(reviewDate, { addSuffix: true }) })
|
|
@@ -14768,9 +14768,9 @@ function ReviewCard({ review, showProductInfo = false }) {
|
|
|
14768
14768
|
] }),
|
|
14769
14769
|
review.reviewType && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-2 py-1 text-xs bg-gray-100 text-gray-600 rounded mb-2", children: review.reviewType }),
|
|
14770
14770
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-gray-700 text-sm leading-relaxed mb-3", children: review.review }),
|
|
14771
|
-
review.reply && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 pl-4 border-l-2 border-
|
|
14771
|
+
review.reply && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 pl-4 border-l-2 border-hsecondary bg-gray-50 p-3 rounded", children: [
|
|
14772
14772
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
14773
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MessageCircle, { className: "size-4 text-
|
|
14773
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MessageCircle, { className: "size-4 text-hsecondary" }),
|
|
14774
14774
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-medium text-gray-900", children: "Store Response" }),
|
|
14775
14775
|
replyDate && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500", children: dateFns.formatDistanceToNow(replyDate, { addSuffix: true }) })
|
|
14776
14776
|
] }),
|
|
@@ -15120,7 +15120,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15120
15120
|
}
|
|
15121
15121
|
if (!product) {
|
|
15122
15122
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-screen bg-slate-50", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container mx-auto px-4 py-16", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-3xl bg-white p-10 text-center shadow-xs", children: [
|
|
15123
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "mx-auto h-10 w-10 text-
|
|
15123
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "mx-auto h-10 w-10 text-hprimary-500" }),
|
|
15124
15124
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "mt-6 text-2xl font-semibold text-gray-900", children: "Product not found" }),
|
|
15125
15125
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-gray-600", children: "It may have been removed or is temporarily unavailable. Discover other pharmacy essentials in our catalogue." }),
|
|
15126
15126
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-6", children: /* @__PURE__ */ jsxRuntime.jsx(Link9__default.default, { href: "/shop", className: "inline-block", children: /* @__PURE__ */ jsxRuntime.jsx(Button, { children: "Browse products" }) }) })
|
|
@@ -15131,7 +15131,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15131
15131
|
"button",
|
|
15132
15132
|
{
|
|
15133
15133
|
onClick: () => router.push(buildPath("/shop")),
|
|
15134
|
-
className: "flex items-center gap-2 font-['Poppins',sans-serif] text-[13px] text-
|
|
15134
|
+
className: "flex items-center gap-2 font-['Poppins',sans-serif] text-[13px] text-hmuted hover:text-hprimary transition-colors",
|
|
15135
15135
|
children: [
|
|
15136
15136
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "size-4" }),
|
|
15137
15137
|
"Back to Shop"
|
|
@@ -15184,7 +15184,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15184
15184
|
{
|
|
15185
15185
|
type: "button",
|
|
15186
15186
|
onClick: () => setActiveImageIndex(index),
|
|
15187
|
-
className: `relative aspect-square overflow-hidden rounded-lg border-2 transition-all ${activeImageIndex === index ? "border-
|
|
15187
|
+
className: `relative aspect-square overflow-hidden rounded-lg border-2 transition-all ${activeImageIndex === index ? "border-hprimary-50 ring-2 ring-hprimary-80 ring-offset-2 shadow-md" : "border-slate-200 hover:border-hprimary-50"}`,
|
|
15188
15188
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15189
15189
|
Image4__default.default,
|
|
15190
15190
|
{
|
|
@@ -15202,12 +15202,12 @@ function ProductDetailScreen({ productId }) {
|
|
|
15202
15202
|
] }) }) }),
|
|
15203
15203
|
/* @__PURE__ */ jsxRuntime.jsxs("aside", { className: "space-y-6 lg:sticky lg:top-24", children: [
|
|
15204
15204
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
15205
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-['Poppins',sans-serif] text-[12px] text-
|
|
15205
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-['Poppins',sans-serif] text-[12px] text-hprimary uppercase tracking-wide font-medium mb-2", children: [
|
|
15206
15206
|
product.brand,
|
|
15207
15207
|
" \u2022 ",
|
|
15208
15208
|
product.categoryIds?.[0]?.name || "Uncategorized"
|
|
15209
15209
|
] }),
|
|
15210
|
-
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-['Poppins',sans-serif] font-semibold text-
|
|
15210
|
+
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-['Poppins',sans-serif] font-semibold text-hsecondary tracking-[-1.5px] mb-3", children: selectedVariant?.name || product.name }),
|
|
15211
15211
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
15212
15212
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1", children: [...Array(5)].map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
15213
15213
|
lucideReact.Star,
|
|
@@ -15216,7 +15216,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15216
15216
|
},
|
|
15217
15217
|
i
|
|
15218
15218
|
)) }),
|
|
15219
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[14px] text-
|
|
15219
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[14px] text-hmuted", children: [
|
|
15220
15220
|
reviewStats.averageRating,
|
|
15221
15221
|
" (",
|
|
15222
15222
|
reviewStats.reviewCount,
|
|
@@ -15231,7 +15231,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15231
15231
|
variantPrice.toFixed(2)
|
|
15232
15232
|
] }),
|
|
15233
15233
|
variantComparePrice && variantComparePrice > variantPrice && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
15234
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[24px] text-
|
|
15234
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[24px] text-hmuted line-through", children: [
|
|
15235
15235
|
"$",
|
|
15236
15236
|
variantComparePrice.toFixed(2)
|
|
15237
15237
|
] }),
|
|
@@ -15246,8 +15246,8 @@ function ProductDetailScreen({ productId }) {
|
|
|
15246
15246
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3 rounded-full bg-red-500" }),
|
|
15247
15247
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] text-[13px] text-red-600 font-medium", children: "Out of Stock" })
|
|
15248
15248
|
] }) : selectedVariant.inventoryStatus === "LOW_STOCK" /* LOWSTOCK */ || selectedVariant.inventoryCount <= 10 ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
15249
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3 rounded-full bg-
|
|
15250
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[13px] text-
|
|
15249
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3 rounded-full bg-hprimary animate-pulse" }),
|
|
15250
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[13px] text-hprimary font-medium", children: [
|
|
15251
15251
|
"Only ",
|
|
15252
15252
|
selectedVariant.inventoryCount,
|
|
15253
15253
|
" left in stock - Order soon!"
|
|
@@ -15256,7 +15256,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15256
15256
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3 rounded-full bg-green-500" }),
|
|
15257
15257
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] text-[13px] text-green-600 font-medium", children: "In Stock" })
|
|
15258
15258
|
] }) }),
|
|
15259
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-['Poppins',sans-serif] text-[12px] text-
|
|
15259
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-['Poppins',sans-serif] text-[12px] text-hmuted", children: [
|
|
15260
15260
|
"SKU: ",
|
|
15261
15261
|
selectedVariant?.sku || product?.sku
|
|
15262
15262
|
] })
|
|
@@ -15264,12 +15264,12 @@ function ProductDetailScreen({ productId }) {
|
|
|
15264
15264
|
product.description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
15265
15265
|
"div",
|
|
15266
15266
|
{
|
|
15267
|
-
className: "font-['Poppins',sans-serif] text-[14px] text-
|
|
15267
|
+
className: "font-['Poppins',sans-serif] text-[14px] text-hmuted leading-[1.7] mb-8 max-w-full overflow-hidden break-words",
|
|
15268
15268
|
dangerouslySetInnerHTML: { __html: product.description }
|
|
15269
15269
|
}
|
|
15270
15270
|
),
|
|
15271
15271
|
product?.variants && product.variants.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6", children: [
|
|
15272
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-
|
|
15272
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-hsecondary mb-3", children: "Select Variant" }),
|
|
15273
15273
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-3", children: product.variants.map((variant) => {
|
|
15274
15274
|
const isSelected = selectedVariant?._id === variant._id;
|
|
15275
15275
|
const variantImage = variant.media?.[0]?.file || product.media?.[0]?.file || product.images?.[0] || PLACEHOLDER_IMAGE_SRC;
|
|
@@ -15278,9 +15278,9 @@ function ProductDetailScreen({ productId }) {
|
|
|
15278
15278
|
{
|
|
15279
15279
|
type: "button",
|
|
15280
15280
|
onClick: () => handleVariantSelect(variant),
|
|
15281
|
-
className: `flex items-start gap-3 px-4 py-2.5 rounded-xl border-2 transition-all ${isSelected ? "border-
|
|
15281
|
+
className: `flex items-start gap-3 px-4 py-2.5 rounded-xl border-2 transition-all ${isSelected ? "border-hprimary bg-hprimary-5" : "border-gray-200 hover:border-hprimary-50"}`,
|
|
15282
15282
|
children: [
|
|
15283
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `relative h-12 w-12 shrink-0 overflow-hidden rounded-full border-2 ${isSelected ? "border-
|
|
15283
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `relative h-12 w-12 shrink-0 overflow-hidden rounded-full border-2 ${isSelected ? "border-hprimary" : "border-slate-200"}`, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15284
15284
|
Image4__default.default,
|
|
15285
15285
|
{
|
|
15286
15286
|
src: variantImage,
|
|
@@ -15291,13 +15291,13 @@ function ProductDetailScreen({ productId }) {
|
|
|
15291
15291
|
}
|
|
15292
15292
|
) }),
|
|
15293
15293
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
15294
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-start text-sm font-medium ${isSelected ? "text-
|
|
15294
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-start text-sm font-medium ${isSelected ? "text-hsecondary" : "text-slate-900"}`, children: variant.name }),
|
|
15295
15295
|
variant.sku && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-start text-xs text-slate-500 mt-0.5", children: [
|
|
15296
15296
|
"SKU: ",
|
|
15297
15297
|
variant.sku
|
|
15298
15298
|
] })
|
|
15299
15299
|
] }),
|
|
15300
|
-
isSelected && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-5 w-5 text-
|
|
15300
|
+
isSelected && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-5 w-5 text-hsecondary shrink-0" })
|
|
15301
15301
|
]
|
|
15302
15302
|
},
|
|
15303
15303
|
variant._id
|
|
@@ -15305,7 +15305,7 @@ function ProductDetailScreen({ productId }) {
|
|
|
15305
15305
|
}) })
|
|
15306
15306
|
] }),
|
|
15307
15307
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-8", children: [
|
|
15308
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-
|
|
15308
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-hsecondary mb-3", children: "Quantity" }),
|
|
15309
15309
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
15310
15310
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4 bg-gray-100 rounded-full px-6 py-3", children: [
|
|
15311
15311
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -15313,18 +15313,18 @@ function ProductDetailScreen({ productId }) {
|
|
|
15313
15313
|
{
|
|
15314
15314
|
type: "button",
|
|
15315
15315
|
onClick: () => setQuantity((current) => Math.max(1, current - 1)),
|
|
15316
|
-
className: "font-['Poppins',sans-serif] font-bold text-[18px] text-
|
|
15316
|
+
className: "font-['Poppins',sans-serif] font-bold text-[18px] text-hsecondary hover:text-hprimary transition-colors",
|
|
15317
15317
|
"aria-label": "Increase quantity",
|
|
15318
15318
|
children: "-"
|
|
15319
15319
|
}
|
|
15320
15320
|
),
|
|
15321
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] font-semibold text-[16px] text-
|
|
15321
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] font-semibold text-[16px] text-hsecondary min-w-[30px] text-center", children: quantity }),
|
|
15322
15322
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15323
15323
|
"button",
|
|
15324
15324
|
{
|
|
15325
15325
|
onClick: () => setQuantity(Math.min(selectedVariant?.inventoryCount || product.inventoryCount || 999, quantity + 1)),
|
|
15326
15326
|
disabled: quantity >= (selectedVariant?.inventoryCount || product.inventoryCount || 0),
|
|
15327
|
-
className: "font-['Poppins',sans-serif] font-bold text-[18px] text-
|
|
15327
|
+
className: "font-['Poppins',sans-serif] font-bold text-[18px] text-hsecondary hover:text-hprimary transition-colors disabled:opacity-50",
|
|
15328
15328
|
children: "+"
|
|
15329
15329
|
}
|
|
15330
15330
|
)
|
|
@@ -15357,40 +15357,40 @@ function ProductDetailScreen({ productId }) {
|
|
|
15357
15357
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15358
15358
|
"button",
|
|
15359
15359
|
{
|
|
15360
|
-
className: "sm:w-auto px-6 py-4 rounded-full border-2 border-
|
|
15360
|
+
className: "sm:w-auto px-6 py-4 rounded-full border-2 border-hprimary hover:bg-hprimary-5 transition-all flex items-center justify-center",
|
|
15361
15361
|
onClick: handleToggleFavorite,
|
|
15362
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heart, { className: `h-4 w-4 ${isFavorited ? "fill-red-500 text-red-500" : "text-
|
|
15362
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heart, { className: `h-4 w-4 ${isFavorited ? "fill-red-500 text-red-500" : "text-hprimary"}` })
|
|
15363
15363
|
}
|
|
15364
15364
|
)
|
|
15365
15365
|
] })
|
|
15366
15366
|
] }),
|
|
15367
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4 p-6 bg-linear-to-br from-
|
|
15367
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4 p-6 bg-linear-to-br from-hsecondary/5 to-hsecondary/5 rounded-[24px]", children: [
|
|
15368
15368
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
15369
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Truck, { className: "size-5 text-
|
|
15369
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Truck, { className: "size-5 text-hprimary" }) }),
|
|
15370
15370
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
15371
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-
|
|
15372
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-
|
|
15371
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-hsecondary mb-1", children: "Free Shipping" }),
|
|
15372
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-hmuted", children: "On all orders" })
|
|
15373
15373
|
] })
|
|
15374
15374
|
] }),
|
|
15375
15375
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
15376
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "size-5 text-
|
|
15376
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "size-5 text-hprimary" }) }),
|
|
15377
15377
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
15378
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-
|
|
15379
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-
|
|
15378
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-hsecondary mb-1", children: "Easy Returns" }),
|
|
15379
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-hmuted", children: "30-day return policy" })
|
|
15380
15380
|
] })
|
|
15381
15381
|
] }),
|
|
15382
15382
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
15383
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Shield, { className: "size-5 text-
|
|
15383
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Shield, { className: "size-5 text-hprimary" }) }),
|
|
15384
15384
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
15385
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-
|
|
15386
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-
|
|
15385
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-hsecondary mb-1", children: "Secure Checkout" }),
|
|
15386
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-hmuted", children: "Safe & protected" })
|
|
15387
15387
|
] })
|
|
15388
15388
|
] }),
|
|
15389
15389
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
15390
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Package, { className: "size-5 text-
|
|
15390
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-10 rounded-full bg-white flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Package, { className: "size-5 text-hprimary" }) }),
|
|
15391
15391
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
15392
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-
|
|
15393
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-
|
|
15392
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-hsecondary mb-1", children: "Quality Guaranteed" }),
|
|
15393
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[11px] text-hmuted", children: "Premium materials" })
|
|
15394
15394
|
] })
|
|
15395
15395
|
] })
|
|
15396
15396
|
] })
|
|
@@ -15401,35 +15401,35 @@ function ProductDetailScreen({ productId }) {
|
|
|
15401
15401
|
"button",
|
|
15402
15402
|
{
|
|
15403
15403
|
onClick: () => setActiveTab(tab),
|
|
15404
|
-
className: `font-['Poppins',sans-serif] font-medium text-[14px] px-6 py-4 transition-all ${activeTab === tab ? "text-
|
|
15404
|
+
className: `font-['Poppins',sans-serif] 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"}`,
|
|
15405
15405
|
children: tab.charAt(0).toUpperCase() + tab.slice(1)
|
|
15406
15406
|
},
|
|
15407
15407
|
tab
|
|
15408
15408
|
)) }),
|
|
15409
15409
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white rounded-[24px] p-8 border-2 border-gray-100", children: [
|
|
15410
15410
|
activeTab === "description" && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
15411
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-
|
|
15411
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-['Poppins',sans-serif] font-semibold text-hsecondary mb-4", children: "Product Description" }),
|
|
15412
15412
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15413
15413
|
"div",
|
|
15414
15414
|
{
|
|
15415
|
-
className: "font-['Poppins',sans-serif] text-[14px] text-
|
|
15415
|
+
className: "font-['Poppins',sans-serif] text-[14px] text-hmuted leading-[1.8] mb-4 max-w-full overflow-hidden break-words",
|
|
15416
15416
|
dangerouslySetInnerHTML: { __html: product.description }
|
|
15417
15417
|
}
|
|
15418
15418
|
),
|
|
15419
15419
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6", children: [
|
|
15420
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-
|
|
15421
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[14px] text-
|
|
15420
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-hsecondary mb-3", children: "Last updated:" }),
|
|
15421
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[14px] text-hmuted", children: lastUpdatedLabel })
|
|
15422
15422
|
] }),
|
|
15423
15423
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6", children: [
|
|
15424
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-
|
|
15425
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[14px] text-
|
|
15424
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-hsecondary mb-3", children: "Shipped from:" }),
|
|
15425
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] text-[14px] text-hmuted", children: "Local pharmacy distribution center" })
|
|
15426
15426
|
] })
|
|
15427
15427
|
] }),
|
|
15428
15428
|
activeTab === "reviews" && /* @__PURE__ */ jsxRuntime.jsx(ProductReviewsSection, { productId })
|
|
15429
15429
|
] })
|
|
15430
15430
|
] }),
|
|
15431
15431
|
relatedProducts.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
15432
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-['Poppins',sans-serif] font-semibold text-
|
|
15432
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-['Poppins',sans-serif] font-semibold text-hsecondary mb-8 text-2xl", children: "You May Also Like" }),
|
|
15433
15433
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6", children: relatedProducts.map((relatedProduct) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
15434
15434
|
ProductCard,
|
|
15435
15435
|
{
|
|
@@ -15474,7 +15474,7 @@ function CartItem({ item }) {
|
|
|
15474
15474
|
initial: { opacity: 0, y: 20 },
|
|
15475
15475
|
animate: { opacity: 1, y: 0 },
|
|
15476
15476
|
exit: { opacity: 0, x: -100 },
|
|
15477
|
-
className: "bg-white border-2 border-gray-100 rounded-[24px] p-6 hover:border-
|
|
15477
|
+
className: "bg-white border-2 border-gray-100 rounded-[24px] p-6 hover:border-hsecondary/30 transition-all duration-300",
|
|
15478
15478
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-4 pr-8", children: [
|
|
15479
15479
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-28 h-28 rounded-[16px] overflow-hidden bg-gray-50 shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15480
15480
|
Image4__default.default,
|
|
@@ -15529,7 +15529,7 @@ function CartItem({ item }) {
|
|
|
15529
15529
|
)
|
|
15530
15530
|
] }),
|
|
15531
15531
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-right", children: [
|
|
15532
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-bold text-[18px] text-
|
|
15532
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-bold text-[18px] text-hsecondary", children: formatPrice(itemTotal) }),
|
|
15533
15533
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-['Poppins',sans-serif] text-[11px] text-[#676c80]", children: [
|
|
15534
15534
|
formatPrice(unitPrice),
|
|
15535
15535
|
" each"
|
|
@@ -15555,17 +15555,17 @@ function CartScreen() {
|
|
|
15555
15555
|
animate: { opacity: 1, y: 0 },
|
|
15556
15556
|
className: "text-center space-y-6 max-w-md",
|
|
15557
15557
|
children: [
|
|
15558
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-full bg-gray-100 p-6", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShoppingBag, { className: "h-12 w-12 text-
|
|
15558
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-full bg-gray-100 p-6", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShoppingBag, { className: "h-12 w-12 text-hsecondary" }) }) }),
|
|
15559
15559
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
15560
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-
|
|
15561
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
15560
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-hsecondary", children: "Your cart is empty" }),
|
|
15561
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-hmuted", children: "Start adding products to your cart to see them here." })
|
|
15562
15562
|
] }),
|
|
15563
15563
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-3 justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15564
15564
|
"button",
|
|
15565
15565
|
{
|
|
15566
15566
|
type: "button",
|
|
15567
15567
|
onClick: () => router.push(buildPath("/shop")),
|
|
15568
|
-
className: "rounded-xl border-2 border-
|
|
15568
|
+
className: "rounded-xl border-2 border-hprimary bg-hsecondary text-white px-6 py-3 text-sm font-medium transition-colors flex items-center justify-center gap-2 hover:opacity-80",
|
|
15569
15569
|
children: [
|
|
15570
15570
|
"Discover products",
|
|
15571
15571
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { className: "h-5 w-5" })
|
|
@@ -15574,15 +15574,15 @@ function CartScreen() {
|
|
|
15574
15574
|
) }),
|
|
15575
15575
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 space-y-3 pt-6 border-t border-gray-200", children: [
|
|
15576
15576
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 text-sm text-slate-600", children: [
|
|
15577
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-
|
|
15577
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-hsecondary shrink-0 mt-0.5" }),
|
|
15578
15578
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Free shipping on all orders" })
|
|
15579
15579
|
] }),
|
|
15580
15580
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 text-sm text-slate-600", children: [
|
|
15581
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-
|
|
15581
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-hsecondary shrink-0 mt-0.5" }),
|
|
15582
15582
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Easy returns within 30 days" })
|
|
15583
15583
|
] }),
|
|
15584
15584
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 text-sm text-slate-600", children: [
|
|
15585
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-
|
|
15585
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-hsecondary shrink-0 mt-0.5" }),
|
|
15586
15586
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Secure checkout process" })
|
|
15587
15587
|
] })
|
|
15588
15588
|
] })
|
|
@@ -15608,8 +15608,8 @@ function CartScreen() {
|
|
|
15608
15608
|
};
|
|
15609
15609
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-screen bg-white", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-[1400px] mx-auto px-8 md:px-12", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "container mx-auto px-4 py-8", children: [
|
|
15610
15610
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-12", children: [
|
|
15611
|
-
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "font-['Poppins',sans-serif] font-semibold text-
|
|
15612
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-['Poppins',sans-serif] text-[16px] text-
|
|
15611
|
+
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "font-['Poppins',sans-serif] font-semibold text-hsecondary tracking-[-2px] mb-2 text-4xl", children: "Shopping Cart" }),
|
|
15612
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-['Poppins',sans-serif] text-[16px] text-hmuted", children: [
|
|
15613
15613
|
itemCount,
|
|
15614
15614
|
" ",
|
|
15615
15615
|
itemCount === 1 ? "item" : "items",
|
|
@@ -15639,26 +15639,26 @@ function CartScreen() {
|
|
|
15639
15639
|
animate: { opacity: 1, y: 0 },
|
|
15640
15640
|
transition: { delay: 0.1 },
|
|
15641
15641
|
className: "space-y-6 lg:sticky lg:top-24 h-fit lg:col-span-1",
|
|
15642
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-linear-to-br from-
|
|
15643
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-['Poppins',sans-serif] font-semibold text-
|
|
15642
|
+
children: /* @__PURE__ */ jsxRuntime.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: [
|
|
15643
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-['Poppins',sans-serif] font-semibold text-hsecondary mb-6", children: "Order Summary" }),
|
|
15644
15644
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 mb-6", children: [
|
|
15645
15645
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
15646
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[14px] text-
|
|
15646
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-['Poppins',sans-serif] text-[14px] text-hmuted", children: [
|
|
15647
15647
|
"Subtotal (",
|
|
15648
15648
|
itemCount,
|
|
15649
15649
|
" ",
|
|
15650
15650
|
itemCount === 1 ? "item" : "items",
|
|
15651
15651
|
")"
|
|
15652
15652
|
] }),
|
|
15653
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-
|
|
15653
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-hsecondary", children: formatPrice(subtotal) })
|
|
15654
15654
|
] }),
|
|
15655
15655
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-sm", children: [
|
|
15656
15656
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-600", children: "Shipping" }),
|
|
15657
15657
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-green-600", children: "Will be calculated at checkout" })
|
|
15658
15658
|
] }),
|
|
15659
15659
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t border-gray-200 pt-4 mt-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
15660
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-bold text-
|
|
15661
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-2xl font-bold text-
|
|
15660
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-bold text-hsecondary", children: "Total" }),
|
|
15661
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-2xl font-bold text-hprimary", children: formatPrice(total) })
|
|
15662
15662
|
] }) })
|
|
15663
15663
|
] }),
|
|
15664
15664
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
@@ -15667,7 +15667,7 @@ function CartScreen() {
|
|
|
15667
15667
|
{
|
|
15668
15668
|
type: "submit",
|
|
15669
15669
|
onClick: handleSubmit,
|
|
15670
|
-
className: "w-full rounded-full border-2 border-
|
|
15670
|
+
className: "w-full rounded-full border-2 border-hsecondary bg-hsecondary hover:bg-hsecondary/80 text-white px-4 py-3 text-sm font-medium transition-colors flex items-center justify-center gap-2",
|
|
15671
15671
|
children: [
|
|
15672
15672
|
"Proceed to Checkout",
|
|
15673
15673
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { className: "h-5 w-5" })
|
|
@@ -15686,11 +15686,11 @@ function CartScreen() {
|
|
|
15686
15686
|
] }),
|
|
15687
15687
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6 space-y-3 pt-6 border-t border-gray-200", children: [
|
|
15688
15688
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 text-sm text-slate-600", children: [
|
|
15689
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-
|
|
15689
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-hmuted shrink-0 mt-0.5" }),
|
|
15690
15690
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Easy returns within 30 days" })
|
|
15691
15691
|
] }),
|
|
15692
15692
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 text-sm text-slate-600", children: [
|
|
15693
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-
|
|
15693
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-5 w-5 text-hmuted shrink-0 mt-0.5" }),
|
|
15694
15694
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Secure checkout process" })
|
|
15695
15695
|
] })
|
|
15696
15696
|
] })
|
|
@@ -16055,11 +16055,11 @@ function AddressFormModal({ isOpen, onClose, onAddressAdded, onAddressUpdated, i
|
|
|
16055
16055
|
{
|
|
16056
16056
|
type: "button",
|
|
16057
16057
|
onClick: onClose,
|
|
16058
|
-
className: "flex flex-row items-center gap-2 px-6 py-2 border border-slate-200 rounded-xl text-slate-700 hover:opacity-80 transition-colors text-
|
|
16058
|
+
className: "flex flex-row items-center gap-2 px-6 py-2 border border-slate-200 rounded-xl text-slate-700 hover:opacity-80 transition-colors text-hsecondary text-sm",
|
|
16059
16059
|
children: "Cancel"
|
|
16060
16060
|
}
|
|
16061
16061
|
),
|
|
16062
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "submit", disabled: isSubmitting, className: "flex flex-row items-center gap-2 px-6 py-2 border border-slate-200 rounded-xl text-slate-700 hover:opacity-80 transition-colors bg-
|
|
16062
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "submit", disabled: isSubmitting, className: "flex flex-row items-center gap-2 px-6 py-2 border border-slate-200 rounded-xl text-slate-700 hover:opacity-80 transition-colors bg-hsecondary text-white text-sm", children: isSubmitting ? "Adding Address..." : "Add Address" })
|
|
16063
16063
|
] })
|
|
16064
16064
|
] })
|
|
16065
16065
|
}
|
|
@@ -16666,13 +16666,13 @@ function CheckoutScreen() {
|
|
|
16666
16666
|
setShippingPrice(0);
|
|
16667
16667
|
}
|
|
16668
16668
|
},
|
|
16669
|
-
className: `relative flex w-full items-center justify-between rounded-xl border-2 p-3 transition-all duration-200 ${active ? "border-
|
|
16669
|
+
className: `relative flex w-full items-center justify-between rounded-xl border-2 p-3 transition-all duration-200 ${active ? "border-hprimary-500 bg-hprimary-50" : "border-gray-200 hover:border-hprimary-300"}`,
|
|
16670
16670
|
children: [
|
|
16671
16671
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
16672
16672
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16673
16673
|
"div",
|
|
16674
16674
|
{
|
|
16675
|
-
className: `p-2 rounded-lg ${active ? "bg-
|
|
16675
|
+
className: `p-2 rounded-lg ${active ? "bg-hprimary-100 text-hprimary-600" : "bg-gray-100 text-gray-600"}`,
|
|
16676
16676
|
children: option.icon
|
|
16677
16677
|
}
|
|
16678
16678
|
),
|
|
@@ -16681,7 +16681,7 @@ function CheckoutScreen() {
|
|
|
16681
16681
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500", children: option.desc })
|
|
16682
16682
|
] })
|
|
16683
16683
|
] }),
|
|
16684
|
-
active && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-5 h-5 rounded-full bg-
|
|
16684
|
+
active && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-5 h-5 rounded-full bg-hprimary-500 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "w-3 h-3 text-white" }) })
|
|
16685
16685
|
]
|
|
16686
16686
|
},
|
|
16687
16687
|
option.id
|
|
@@ -16763,7 +16763,7 @@ function CheckoutScreen() {
|
|
|
16763
16763
|
userAddresses.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-4", children: userAddresses.map((addr) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16764
16764
|
"label",
|
|
16765
16765
|
{
|
|
16766
|
-
className: `group relative flex items-start gap-3 p-4 rounded-2xl border ${selectedAddressId === addr.id ? "border-
|
|
16766
|
+
className: `group relative flex items-start gap-3 p-4 rounded-2xl border ${selectedAddressId === addr.id ? "border-hprimary-500 bg-hprimary-50 shadow-xs" : "border-slate-200 bg-white"} cursor-pointer hover:border-hprimary-300 transition-colors`,
|
|
16767
16767
|
children: [
|
|
16768
16768
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16769
16769
|
"input",
|
|
@@ -16800,7 +16800,7 @@ function CheckoutScreen() {
|
|
|
16800
16800
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600", children: addr.country }),
|
|
16801
16801
|
addr.phone && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600 mt-1", children: addr.phone }),
|
|
16802
16802
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 flex items-center gap-2", children: [
|
|
16803
|
-
addr.isDefault && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center gap-1 rounded-full bg-
|
|
16803
|
+
addr.isDefault && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center gap-1 rounded-full bg-hprimary-100 px-2.5 py-0.5 text-xs font-semibold text-hprimary-700", children: "Default" }),
|
|
16804
16804
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
16805
16805
|
"button",
|
|
16806
16806
|
{
|
|
@@ -16810,7 +16810,7 @@ function CheckoutScreen() {
|
|
|
16810
16810
|
setEditingAddress(addr);
|
|
16811
16811
|
setIsAddressModalOpen(true);
|
|
16812
16812
|
},
|
|
16813
|
-
className: "inline-flex items-center gap-1 rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-medium text-slate-600 hover:border-
|
|
16813
|
+
className: "inline-flex items-center gap-1 rounded-full border border-slate-200 px-2.5 py-0.5 text-xs font-medium text-slate-600 hover:border-hprimary-300 hover:text-hprimary-600",
|
|
16814
16814
|
children: [
|
|
16815
16815
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Edit3, { className: "h-3.5 w-3.5" }),
|
|
16816
16816
|
" Edit"
|
|
@@ -16873,7 +16873,7 @@ function CheckoutScreen() {
|
|
|
16873
16873
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-['Poppins',sans-serif] font-semibold text-[#2B4B7C] text-2xl", children: "Shipping Options" })
|
|
16874
16874
|
] }),
|
|
16875
16875
|
shippingRatesLoading ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center py-12", children: [
|
|
16876
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-
|
|
16876
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-haccent" }),
|
|
16877
16877
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-3 text-gray-600", children: "Loading shipping options..." })
|
|
16878
16878
|
] }) : shippingRatesError ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center py-12", children: [
|
|
16879
16879
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-16 h-16 mx-auto mb-4 bg-red-100 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("svg", { className: "w-8 h-8 text-red-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }) }),
|
|
@@ -16889,7 +16889,7 @@ function CheckoutScreen() {
|
|
|
16889
16889
|
setSelectedShippingRateId(rate.objectId);
|
|
16890
16890
|
setShippingPrice(parseFloat(rate.amount));
|
|
16891
16891
|
},
|
|
16892
|
-
className: `relative p-5 border-2 rounded-xl cursor-pointer transition-all duration-200 hover:shadow-md ${isSelected ? "border-
|
|
16892
|
+
className: `relative p-5 border-2 rounded-xl cursor-pointer transition-all duration-200 hover:shadow-md ${isSelected ? "border-hprimary-500 bg-hprimary-50 ring-2 ring-hprimary-200" : "border-gray-200 hover:border-gray-300"}`,
|
|
16893
16893
|
children: [
|
|
16894
16894
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between", children: [
|
|
16895
16895
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-4 flex-1", children: [
|
|
@@ -16914,7 +16914,7 @@ function CheckoutScreen() {
|
|
|
16914
16914
|
" ",
|
|
16915
16915
|
rate.servicelevel?.name
|
|
16916
16916
|
] }),
|
|
16917
|
-
isTest && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-2 py-1 text-xs font-medium bg-
|
|
16917
|
+
isTest && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-2 py-1 text-xs font-medium bg-hprimary-100 text-hprimary-800 rounded-full", children: "TEST" })
|
|
16918
16918
|
] }),
|
|
16919
16919
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-sm text-gray-600", children: [
|
|
16920
16920
|
rate.durationTerms && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -16956,7 +16956,7 @@ function CheckoutScreen() {
|
|
|
16956
16956
|
] })
|
|
16957
16957
|
] })
|
|
16958
16958
|
] }),
|
|
16959
|
-
isSelected && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-3 right-3", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-6 h-6 bg-
|
|
16959
|
+
isSelected && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-3 right-3", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-6 h-6 bg-hprimary-500 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "w-4 h-4 text-white" }) }) })
|
|
16960
16960
|
]
|
|
16961
16961
|
},
|
|
16962
16962
|
rate.objectId
|
|
@@ -16977,8 +16977,8 @@ function CheckoutScreen() {
|
|
|
16977
16977
|
animate: { opacity: 1, y: 0 },
|
|
16978
16978
|
transition: { duration: 0.5, ease: "easeOut", delay: 0.1 },
|
|
16979
16979
|
className: "space-y-10 lg:sticky lg:top-24 lg:col-span-1",
|
|
16980
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-linear-to-br from-
|
|
16981
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-['Poppins',sans-serif] font-semibold text-
|
|
16980
|
+
children: /* @__PURE__ */ jsxRuntime.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: [
|
|
16981
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-['Poppins',sans-serif] font-semibold text-hsecondary mb-6 text-2xl", children: "Order Summary" }),
|
|
16982
16982
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "mt-8 pt-6 border-t border-slate-100", children: [
|
|
16983
16983
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4 mb-6", children: cart?.cartBody?.items?.map((item) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3", children: [
|
|
16984
16984
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-16 h-16 rounded-xl overflow-hidden bg-white shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(Image4__default.default, { src: item.productVariantData?.media?.[0]?.file || PLACEHOLDER_IMAGE_SRC, alt: item.productVariantData.name, className: "w-full h-full object-cover", height: 200, width: 200 }) }),
|
|
@@ -16989,10 +16989,10 @@ function CheckoutScreen() {
|
|
|
16989
16989
|
" \u2022 Qty: ",
|
|
16990
16990
|
item.quantity
|
|
16991
16991
|
] }),
|
|
16992
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-
|
|
16992
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-['Poppins',sans-serif] font-semibold text-[12px] text-hsecondary mt-1", children: formatPrice(item.productVariantData.finalPrice * item.quantity) })
|
|
16993
16993
|
] })
|
|
16994
16994
|
] }, item.productVariantId || item.id)) }),
|
|
16995
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-px bg-
|
|
16995
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-px bg-hsecondary/20 my-4" }),
|
|
16996
16996
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16997
16997
|
CouponCodeInput,
|
|
16998
16998
|
{
|
|
@@ -17024,14 +17024,14 @@ function CheckoutScreen() {
|
|
|
17024
17024
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Estimated tax" }),
|
|
17025
17025
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: formatPrice(tax) })
|
|
17026
17026
|
] }),
|
|
17027
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-px bg-
|
|
17027
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-px bg-hsecondary/20 mt-6" }),
|
|
17028
17028
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-6", children: [
|
|
17029
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] font-semibold text-[16px] text-
|
|
17030
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] font-bold text-[24px] text-
|
|
17029
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] font-semibold text-[16px] text-hsecondary", children: "Total" }),
|
|
17030
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-['Poppins',sans-serif] font-bold text-[24px] text-hsecondary", children: formatPrice(total) })
|
|
17031
17031
|
] })
|
|
17032
17032
|
] }),
|
|
17033
17033
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-white/80 rounded-xl p-4", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-['Poppins',sans-serif] text-[11px] text-[#676c80] leading-[1.6]", children: [
|
|
17034
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-
|
|
17034
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-hsecondary", children: "Payment:" }),
|
|
17035
17035
|
" We'll contact you to arrange payment upon pickup or delivery. We accept cash, credit cards, and all major payment methods."
|
|
17036
17036
|
] }) })
|
|
17037
17037
|
] }),
|
|
@@ -17067,7 +17067,7 @@ function CheckoutScreen() {
|
|
|
17067
17067
|
{
|
|
17068
17068
|
type: "submit",
|
|
17069
17069
|
disabled: isSubmitting,
|
|
17070
|
-
className: "font-['Poppins',sans-serif] 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-
|
|
17070
|
+
className: "font-['Poppins',sans-serif] 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",
|
|
17071
17071
|
children: [
|
|
17072
17072
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CreditCard, { className: "h-5 w-5" }),
|
|
17073
17073
|
isSubmitting ? "Placing order..." : "Place Secure Order"
|
|
@@ -17159,9 +17159,9 @@ function LoginScreen() {
|
|
|
17159
17159
|
className: "flex items-center justify-center px-6 py-12 lg:px-16",
|
|
17160
17160
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full max-w-lg space-y-10 text-center", children: [
|
|
17161
17161
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
17162
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { strokeWidth: 2, className: "h-16 w-16 mx-auto text-white rounded-full bg-
|
|
17163
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl text-
|
|
17164
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
17162
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { strokeWidth: 2, className: "h-16 w-16 mx-auto text-white rounded-full bg-hsecondary m-2 mb-4 px-4" }),
|
|
17163
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl text-hsecondary", children: "Welcome Back" }),
|
|
17164
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted", children: "Sign in to access your patient portal" })
|
|
17165
17165
|
] }),
|
|
17166
17166
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17167
17167
|
"form",
|
|
@@ -17179,10 +17179,10 @@ function LoginScreen() {
|
|
|
17179
17179
|
children: /* @__PURE__ */ jsxRuntime.jsx("span", { children: status.message })
|
|
17180
17180
|
}
|
|
17181
17181
|
),
|
|
17182
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-start text-
|
|
17183
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17182
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-start text-hsecondary", children: [
|
|
17183
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17184
17184
|
"Email Address ",
|
|
17185
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17185
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17186
17186
|
] }),
|
|
17187
17187
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17188
17188
|
Input,
|
|
@@ -17191,14 +17191,14 @@ function LoginScreen() {
|
|
|
17191
17191
|
placeholder: "you@example.com",
|
|
17192
17192
|
...register("email"),
|
|
17193
17193
|
error: errors.email?.message,
|
|
17194
|
-
className: "text-
|
|
17194
|
+
className: "text-hsecondary"
|
|
17195
17195
|
}
|
|
17196
17196
|
)
|
|
17197
17197
|
] }),
|
|
17198
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative text-start text-
|
|
17199
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17198
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative text-start text-hsecondary", children: [
|
|
17199
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17200
17200
|
"Password ",
|
|
17201
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17201
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17202
17202
|
] }),
|
|
17203
17203
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17204
17204
|
Input,
|
|
@@ -17223,7 +17223,7 @@ function LoginScreen() {
|
|
|
17223
17223
|
Link9__default.default,
|
|
17224
17224
|
{
|
|
17225
17225
|
href: buildPath("/forgot-password"),
|
|
17226
|
-
className: "font-medium text-
|
|
17226
|
+
className: "font-medium text-hprimary transition hover:opacity-80",
|
|
17227
17227
|
children: "Forgot password?"
|
|
17228
17228
|
}
|
|
17229
17229
|
) }),
|
|
@@ -17232,16 +17232,16 @@ function LoginScreen() {
|
|
|
17232
17232
|
{
|
|
17233
17233
|
type: "submit",
|
|
17234
17234
|
disabled: isSubmitting,
|
|
17235
|
-
className: "w-full bg-
|
|
17235
|
+
className: "w-full bg-hsecondary hover:opacity-80 text-white font-medium py-3 px-4 rounded-lg transition-colors disabled:opacity-70 disabled:cursor-not-allowed",
|
|
17236
17236
|
children: isSubmitting ? "Signing in..." : "Sign in"
|
|
17237
17237
|
}
|
|
17238
17238
|
)
|
|
17239
17239
|
]
|
|
17240
17240
|
}
|
|
17241
17241
|
),
|
|
17242
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-
|
|
17242
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-hmuted", children: [
|
|
17243
17243
|
"Don't have an account? ",
|
|
17244
|
-
/* @__PURE__ */ jsxRuntime.jsx(Link9__default.default, { href: buildPath("/register"), className: "font-medium text-
|
|
17244
|
+
/* @__PURE__ */ jsxRuntime.jsx(Link9__default.default, { href: buildPath("/register"), className: "font-medium text-hprimary transition hover:opacity-90", children: "Sign up" })
|
|
17245
17245
|
] }) })
|
|
17246
17246
|
] })
|
|
17247
17247
|
}
|
|
@@ -17306,9 +17306,9 @@ function RegisterScreen() {
|
|
|
17306
17306
|
className: "flex items-center justify-center px-6 py-12 lg:px-16",
|
|
17307
17307
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full max-w-xl space-y-10 text-center", children: [
|
|
17308
17308
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
17309
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserPlus, { strokeWidth: 2, className: "h-16 w-16 mx-auto text-white rounded-full bg-
|
|
17310
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl text-
|
|
17311
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
17309
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserPlus, { strokeWidth: 2, className: "h-16 w-16 mx-auto text-white rounded-full bg-hprimary m-2 mb-4 px-4" }),
|
|
17310
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl text-hsecondary", children: "Create Your Account" }),
|
|
17311
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted", children: "Join Holmdel Pharmacy Care for convenient healthcare access" })
|
|
17312
17312
|
] }),
|
|
17313
17313
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17314
17314
|
"form",
|
|
@@ -17321,9 +17321,9 @@ function RegisterScreen() {
|
|
|
17321
17321
|
children: [
|
|
17322
17322
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4 md:grid-cols-2 text-start", children: [
|
|
17323
17323
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
17324
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17324
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17325
17325
|
"First name ",
|
|
17326
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17326
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17327
17327
|
] }),
|
|
17328
17328
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17329
17329
|
Input,
|
|
@@ -17335,9 +17335,9 @@ function RegisterScreen() {
|
|
|
17335
17335
|
)
|
|
17336
17336
|
] }),
|
|
17337
17337
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
17338
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17338
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17339
17339
|
"Last name ",
|
|
17340
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17340
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17341
17341
|
] }),
|
|
17342
17342
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17343
17343
|
Input,
|
|
@@ -17350,9 +17350,9 @@ function RegisterScreen() {
|
|
|
17350
17350
|
] })
|
|
17351
17351
|
] }),
|
|
17352
17352
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
17353
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17353
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17354
17354
|
"Email Address ",
|
|
17355
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17355
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17356
17356
|
] }),
|
|
17357
17357
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17358
17358
|
Input,
|
|
@@ -17365,7 +17365,7 @@ function RegisterScreen() {
|
|
|
17365
17365
|
)
|
|
17366
17366
|
] }),
|
|
17367
17367
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
17368
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm text-
|
|
17368
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm text-hsecondary mb-3", children: "Phone Number" }),
|
|
17369
17369
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17370
17370
|
Input,
|
|
17371
17371
|
{
|
|
@@ -17377,9 +17377,9 @@ function RegisterScreen() {
|
|
|
17377
17377
|
)
|
|
17378
17378
|
] }),
|
|
17379
17379
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
17380
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17380
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17381
17381
|
"Password ",
|
|
17382
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17382
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17383
17383
|
] }),
|
|
17384
17384
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17385
17385
|
Input,
|
|
@@ -17401,9 +17401,9 @@ function RegisterScreen() {
|
|
|
17401
17401
|
)
|
|
17402
17402
|
] }),
|
|
17403
17403
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
17404
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17404
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17405
17405
|
"Confirm Password ",
|
|
17406
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17406
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17407
17407
|
] }),
|
|
17408
17408
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17409
17409
|
Input,
|
|
@@ -17425,11 +17425,11 @@ function RegisterScreen() {
|
|
|
17425
17425
|
)
|
|
17426
17426
|
] }),
|
|
17427
17427
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4 text-sm text-slate-600", children: [
|
|
17428
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Shield, { strokeWidth: 2, className: "mt-0.5 h-8 w-8 text-
|
|
17428
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Shield, { strokeWidth: 2, className: "mt-0.5 h-8 w-8 text-hprimary" }),
|
|
17429
17429
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
17430
17430
|
"By creating an account, you agree to our",
|
|
17431
17431
|
" ",
|
|
17432
|
-
/* @__PURE__ */ jsxRuntime.jsx(Link9__default.default, { href: buildPath("/terms"), className: "font-semibold text-
|
|
17432
|
+
/* @__PURE__ */ jsxRuntime.jsx(Link9__default.default, { href: buildPath("/terms"), className: "font-semibold text-hprimary hover:opacity-70", children: "Terms of Service" }),
|
|
17433
17433
|
" ",
|
|
17434
17434
|
"and",
|
|
17435
17435
|
" ",
|
|
@@ -17437,7 +17437,7 @@ function RegisterScreen() {
|
|
|
17437
17437
|
Link9__default.default,
|
|
17438
17438
|
{
|
|
17439
17439
|
href: buildPath("/privacy"),
|
|
17440
|
-
className: "font-semibold text-
|
|
17440
|
+
className: "font-semibold text-hprimary hover:opacity-70",
|
|
17441
17441
|
children: "Privacy Policy"
|
|
17442
17442
|
}
|
|
17443
17443
|
),
|
|
@@ -17449,16 +17449,16 @@ function RegisterScreen() {
|
|
|
17449
17449
|
{
|
|
17450
17450
|
type: "submit",
|
|
17451
17451
|
disabled: isSubmitting,
|
|
17452
|
-
className: "w-full bg-
|
|
17452
|
+
className: "w-full bg-hsecondary hover:opacity-80 text-white font-medium py-3 px-4 rounded-lg transition-colors disabled:opacity-70 disabled:cursor-not-allowed",
|
|
17453
17453
|
children: isSubmitting ? "Creating account..." : "Create my account"
|
|
17454
17454
|
}
|
|
17455
17455
|
)
|
|
17456
17456
|
]
|
|
17457
17457
|
}
|
|
17458
17458
|
),
|
|
17459
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-
|
|
17459
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-hmuted", children: [
|
|
17460
17460
|
"Already have an account? ",
|
|
17461
|
-
/* @__PURE__ */ jsxRuntime.jsx(Link9__default.default, { href: buildPath("/login"), className: "font-medium text-
|
|
17461
|
+
/* @__PURE__ */ jsxRuntime.jsx(Link9__default.default, { href: buildPath("/login"), className: "font-medium text-hprimary transition hover:opacity-90", children: "Sign in" })
|
|
17462
17462
|
] }) })
|
|
17463
17463
|
] })
|
|
17464
17464
|
}
|
|
@@ -17513,11 +17513,11 @@ function ForgotPasswordScreen() {
|
|
|
17513
17513
|
lucideReact.Mail,
|
|
17514
17514
|
{
|
|
17515
17515
|
strokeWidth: 2,
|
|
17516
|
-
className: "h-16 w-16 mx-auto text-white rounded-full bg-
|
|
17516
|
+
className: "h-16 w-16 mx-auto text-white rounded-full bg-hsecondary m-2 mb-4 px-4"
|
|
17517
17517
|
}
|
|
17518
17518
|
),
|
|
17519
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl text-
|
|
17520
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
17519
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl text-hsecondary", children: "Forgot Password?" }),
|
|
17520
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted", children: "No worries! Enter your email and we'll send you reset instructions." })
|
|
17521
17521
|
] }),
|
|
17522
17522
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17523
17523
|
"form",
|
|
@@ -17538,10 +17538,10 @@ function ForgotPasswordScreen() {
|
|
|
17538
17538
|
]
|
|
17539
17539
|
}
|
|
17540
17540
|
),
|
|
17541
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-start text-
|
|
17542
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17541
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-start text-hsecondary", children: [
|
|
17542
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17543
17543
|
"Email Address ",
|
|
17544
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17544
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17545
17545
|
] }),
|
|
17546
17546
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17547
17547
|
Input,
|
|
@@ -17550,7 +17550,7 @@ function ForgotPasswordScreen() {
|
|
|
17550
17550
|
placeholder: "you@example.com",
|
|
17551
17551
|
...register("email"),
|
|
17552
17552
|
error: errors.email?.message,
|
|
17553
|
-
className: "text-
|
|
17553
|
+
className: "text-hsecondary"
|
|
17554
17554
|
}
|
|
17555
17555
|
)
|
|
17556
17556
|
] }),
|
|
@@ -17559,7 +17559,7 @@ function ForgotPasswordScreen() {
|
|
|
17559
17559
|
{
|
|
17560
17560
|
type: "submit",
|
|
17561
17561
|
disabled: isSubmitting,
|
|
17562
|
-
className: "w-full bg-
|
|
17562
|
+
className: "w-full bg-hsecondary hover:opacity-80 text-white font-medium py-3 px-4 rounded-lg transition-colors disabled:opacity-70 disabled:cursor-not-allowed flex items-center justify-center gap-2",
|
|
17563
17563
|
children: isSubmitting ? "Sending..." : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
17564
17564
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Send, { className: "h-4 w-4" }),
|
|
17565
17565
|
"Send Reset Link"
|
|
@@ -17570,7 +17570,7 @@ function ForgotPasswordScreen() {
|
|
|
17570
17570
|
Link9__default.default,
|
|
17571
17571
|
{
|
|
17572
17572
|
href: buildPath("/login"),
|
|
17573
|
-
className: "flex items-center justify-center gap-2 text-sm font-medium text-
|
|
17573
|
+
className: "flex items-center justify-center gap-2 text-sm font-medium text-hprimary transition hover:opacity-80",
|
|
17574
17574
|
children: [
|
|
17575
17575
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, { className: "h-4 w-4" }),
|
|
17576
17576
|
"Back to login"
|
|
@@ -17580,14 +17580,14 @@ function ForgotPasswordScreen() {
|
|
|
17580
17580
|
]
|
|
17581
17581
|
}
|
|
17582
17582
|
),
|
|
17583
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-
|
|
17583
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-hmuted", children: [
|
|
17584
17584
|
"Don't have an account?",
|
|
17585
17585
|
" ",
|
|
17586
17586
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17587
17587
|
Link9__default.default,
|
|
17588
17588
|
{
|
|
17589
17589
|
href: buildPath("/register"),
|
|
17590
|
-
className: "font-medium text-
|
|
17590
|
+
className: "font-medium text-hprimary transition hover:opacity-90",
|
|
17591
17591
|
children: "Sign up"
|
|
17592
17592
|
}
|
|
17593
17593
|
)
|
|
@@ -17678,11 +17678,11 @@ function ResetPasswordScreen() {
|
|
|
17678
17678
|
lucideReact.Lock,
|
|
17679
17679
|
{
|
|
17680
17680
|
strokeWidth: 2,
|
|
17681
|
-
className: "h-16 w-16 mx-auto text-white rounded-full bg-
|
|
17681
|
+
className: "h-16 w-16 mx-auto text-white rounded-full bg-hsecondary m-2 mb-4 px-4"
|
|
17682
17682
|
}
|
|
17683
17683
|
),
|
|
17684
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl text-
|
|
17685
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
17684
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-4xl text-hsecondary", children: "Reset Password" }),
|
|
17685
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted", children: "Enter your new password below to reset your account password." })
|
|
17686
17686
|
] }),
|
|
17687
17687
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17688
17688
|
"form",
|
|
@@ -17703,10 +17703,10 @@ function ResetPasswordScreen() {
|
|
|
17703
17703
|
]
|
|
17704
17704
|
}
|
|
17705
17705
|
),
|
|
17706
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative text-start text-
|
|
17707
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17706
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative text-start text-hsecondary", children: [
|
|
17707
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17708
17708
|
"New Password ",
|
|
17709
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17709
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17710
17710
|
] }),
|
|
17711
17711
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17712
17712
|
Input,
|
|
@@ -17715,7 +17715,7 @@ function ResetPasswordScreen() {
|
|
|
17715
17715
|
placeholder: "Enter new password (min. 8 characters)",
|
|
17716
17716
|
...register("newPassword"),
|
|
17717
17717
|
error: errors.newPassword?.message,
|
|
17718
|
-
className: "text-
|
|
17718
|
+
className: "text-hsecondary"
|
|
17719
17719
|
}
|
|
17720
17720
|
),
|
|
17721
17721
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -17728,10 +17728,10 @@ function ResetPasswordScreen() {
|
|
|
17728
17728
|
}
|
|
17729
17729
|
)
|
|
17730
17730
|
] }),
|
|
17731
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative text-start text-
|
|
17732
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-
|
|
17731
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative text-start text-hsecondary", children: [
|
|
17732
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-sm text-hsecondary mb-3", children: [
|
|
17733
17733
|
"Confirm Password ",
|
|
17734
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
17734
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hprimary-500", children: "*" })
|
|
17735
17735
|
] }),
|
|
17736
17736
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17737
17737
|
Input,
|
|
@@ -17740,7 +17740,7 @@ function ResetPasswordScreen() {
|
|
|
17740
17740
|
placeholder: "Re-enter new password",
|
|
17741
17741
|
...register("confirmPassword"),
|
|
17742
17742
|
error: errors.confirmPassword?.message,
|
|
17743
|
-
className: "text-
|
|
17743
|
+
className: "text-hsecondary"
|
|
17744
17744
|
}
|
|
17745
17745
|
),
|
|
17746
17746
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -17758,19 +17758,19 @@ function ResetPasswordScreen() {
|
|
|
17758
17758
|
{
|
|
17759
17759
|
type: "submit",
|
|
17760
17760
|
disabled: isSubmitting || !token,
|
|
17761
|
-
className: "w-full bg-
|
|
17761
|
+
className: "w-full bg-hsecondary hover:opacity-80 text-white font-medium py-3 px-4 rounded-lg transition-colors disabled:opacity-70 disabled:cursor-not-allowed",
|
|
17762
17762
|
children: isSubmitting ? "Resetting Password..." : "Reset Password"
|
|
17763
17763
|
}
|
|
17764
17764
|
),
|
|
17765
17765
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 text-sm text-slate-600", children: [
|
|
17766
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "h-4 w-4 text-
|
|
17766
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "h-4 w-4 text-hprimary-600" }),
|
|
17767
17767
|
"Use a strong password that you haven't used elsewhere."
|
|
17768
17768
|
] }),
|
|
17769
17769
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-4 border-t border-slate-200", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17770
17770
|
Link9__default.default,
|
|
17771
17771
|
{
|
|
17772
17772
|
href: buildPath("/login"),
|
|
17773
|
-
className: "text-sm font-medium text-
|
|
17773
|
+
className: "text-sm font-medium text-hprimary transition hover:opacity-80",
|
|
17774
17774
|
children: "Back to login"
|
|
17775
17775
|
}
|
|
17776
17776
|
) })
|
|
@@ -17792,7 +17792,7 @@ function TabNavigation({ tabs: tabs2, activeTab, onTabChange }) {
|
|
|
17792
17792
|
className: `
|
|
17793
17793
|
flex items-center gap-2 px-6 py-3 mt-2 text-sm font-medium whitespace-nowrap
|
|
17794
17794
|
border-b-2 transition-colors
|
|
17795
|
-
${isActive ? "bg-
|
|
17795
|
+
${isActive ? "bg-hsecondary text-white rounded-xl hover:transition-all hover:duration-300 hover:ease-in-out hover:-translate-y-1" : "bg-white text-hmuted rounded-xl hover:text-hsecondary hover:transition-all hover:duration-150 hover:ease-in-out hover:-translate-y-1"}
|
|
17796
17796
|
`,
|
|
17797
17797
|
"aria-current": isActive ? "page" : void 0,
|
|
17798
17798
|
children: [
|
|
@@ -17911,8 +17911,8 @@ function useCurrentOrders() {
|
|
|
17911
17911
|
}
|
|
17912
17912
|
function Badge({ children, variant = "primary", size = "md", className = "" }) {
|
|
17913
17913
|
const variants = {
|
|
17914
|
-
primary: "bg-
|
|
17915
|
-
secondary: "bg-
|
|
17914
|
+
primary: "bg-hprimary-100 text-hprimary-700 border-hprimary-200",
|
|
17915
|
+
secondary: "bg-hsecondary-100 text-hsecondary-700 border-hsecondary-200",
|
|
17916
17916
|
success: "bg-green-100 text-green-700 border-green-200",
|
|
17917
17917
|
warning: "bg-yellow-100 text-yellow-700 border-yellow-200",
|
|
17918
17918
|
danger: "bg-red-100 text-red-700 border-red-200",
|
|
@@ -17972,7 +17972,7 @@ function AccountOverviewTab() {
|
|
|
17972
17972
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
17973
17973
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-12 w-12 items-center justify-center rounded-lg ${stat.color}`, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-6 w-6" }) }),
|
|
17974
17974
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
17975
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-2xl font-bold text-
|
|
17975
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-2xl font-bold text-hsecondary", children: stat.value }),
|
|
17976
17976
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600", children: stat.label })
|
|
17977
17977
|
] })
|
|
17978
17978
|
] })
|
|
@@ -17982,12 +17982,12 @@ function AccountOverviewTab() {
|
|
|
17982
17982
|
}) }),
|
|
17983
17983
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-slate-200 bg-white p-6", children: [
|
|
17984
17984
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-4", children: [
|
|
17985
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-
|
|
17985
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-hsecondary", children: "Profile Information" }),
|
|
17986
17986
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17987
17987
|
"button",
|
|
17988
17988
|
{
|
|
17989
17989
|
onClick: () => router.push(buildPath("/account/edit")),
|
|
17990
|
-
className: "flex items-center gap-1 text-sm text-
|
|
17990
|
+
className: "flex items-center gap-1 text-sm text-hprimary-600 hover:text-hprimary-700",
|
|
17991
17991
|
children: [
|
|
17992
17992
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Edit, { className: "h-4 w-4" }),
|
|
17993
17993
|
"Edit"
|
|
@@ -17997,10 +17997,10 @@ function AccountOverviewTab() {
|
|
|
17997
17997
|
] }),
|
|
17998
17998
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
17999
17999
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18000
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-[#DBEAFE]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.User, { className: "h-5 w-5 text-
|
|
18000
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-[#DBEAFE]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.User, { className: "h-5 w-5 text-hsecondary" }) }),
|
|
18001
18001
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
18002
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
18003
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium text-
|
|
18002
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-hmuted", children: "Full Name" }),
|
|
18003
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium text-hsecondary", children: [
|
|
18004
18004
|
user.firstname,
|
|
18005
18005
|
" ",
|
|
18006
18006
|
user.lastname
|
|
@@ -18008,31 +18008,31 @@ function AccountOverviewTab() {
|
|
|
18008
18008
|
] })
|
|
18009
18009
|
] }),
|
|
18010
18010
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18011
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-[#DBEAFE]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "h-5 w-5 text-
|
|
18011
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-[#DBEAFE]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "h-5 w-5 text-hsecondary" }) }),
|
|
18012
18012
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
18013
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
18014
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-
|
|
18013
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-hmuted", children: "E-mail Address" }),
|
|
18014
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-hsecondary", children: user.email })
|
|
18015
18015
|
] })
|
|
18016
18016
|
] }),
|
|
18017
18017
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18018
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-[#DBEAFE]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "h-5 w-5 text-
|
|
18018
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-[#DBEAFE]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "h-5 w-5 text-hsecondary" }) }),
|
|
18019
18019
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
18020
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
18021
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-
|
|
18020
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-hmuted", children: "Phone Number" }),
|
|
18021
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-hsecondary", children: user.phoneNumber || "Not provided" })
|
|
18022
18022
|
] })
|
|
18023
18023
|
] }),
|
|
18024
18024
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18025
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-[#DBEAFE]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "h-5 w-5 text-
|
|
18025
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-[#DBEAFE]", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "h-5 w-5 text-hsecondary" }) }),
|
|
18026
18026
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
18027
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
18028
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-
|
|
18027
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-hmuted", children: "Date of Birth" }),
|
|
18028
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-hsecondary", children: "Not provided" })
|
|
18029
18029
|
] })
|
|
18030
18030
|
] })
|
|
18031
18031
|
] })
|
|
18032
18032
|
] }),
|
|
18033
18033
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-slate-200 bg-white p-6", children: [
|
|
18034
18034
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-4", children: [
|
|
18035
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-
|
|
18035
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-hsecondary", children: "Recent Orders" }),
|
|
18036
18036
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18037
18037
|
"button",
|
|
18038
18038
|
{
|
|
@@ -18040,7 +18040,7 @@ function AccountOverviewTab() {
|
|
|
18040
18040
|
const event = new CustomEvent("switchTab", { detail: "orders" });
|
|
18041
18041
|
window.dispatchEvent(event);
|
|
18042
18042
|
},
|
|
18043
|
-
className: "text-sm text-
|
|
18043
|
+
className: "text-sm text-hprimary-600 hover:text-hprimary-700",
|
|
18044
18044
|
children: "View All \u2192"
|
|
18045
18045
|
}
|
|
18046
18046
|
)
|
|
@@ -18051,7 +18051,7 @@ function AccountOverviewTab() {
|
|
|
18051
18051
|
className: "h-16 animate-pulse rounded-lg bg-slate-50"
|
|
18052
18052
|
},
|
|
18053
18053
|
index
|
|
18054
|
-
)) }) : recentOrders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
18054
|
+
)) }) : recentOrders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted text-center py-8", children: "No orders yet" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: recentOrders.map((order) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
18055
18055
|
"div",
|
|
18056
18056
|
{
|
|
18057
18057
|
onClick: () => router.push(buildPath(`/account/orders/${order._id}`)),
|
|
@@ -18061,7 +18061,7 @@ function AccountOverviewTab() {
|
|
|
18061
18061
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-white", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Package, { className: "h-5 w-5 text-slate-600" }) }),
|
|
18062
18062
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
18063
18063
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
18064
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium text-
|
|
18064
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium text-hsecondary", children: [
|
|
18065
18065
|
"ORD-",
|
|
18066
18066
|
order._id?.slice(-6).toUpperCase()
|
|
18067
18067
|
] }),
|
|
@@ -18074,10 +18074,10 @@ function AccountOverviewTab() {
|
|
|
18074
18074
|
}
|
|
18075
18075
|
)
|
|
18076
18076
|
] }),
|
|
18077
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
18077
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-hmuted", children: formatDate(order.createdAt || /* @__PURE__ */ new Date(), "short") })
|
|
18078
18078
|
] })
|
|
18079
18079
|
] }),
|
|
18080
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-3", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-
|
|
18080
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-3", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-hsecondary", children: formatPrice(order.grandTotal || 0) }) })
|
|
18081
18081
|
]
|
|
18082
18082
|
},
|
|
18083
18083
|
order._id
|
|
@@ -18122,11 +18122,11 @@ function AccountOrdersTab() {
|
|
|
18122
18122
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between mb-4 pb-4 border-b border-slate-200", children: [
|
|
18123
18123
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
18124
18124
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
18125
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-base font-semibold text-
|
|
18125
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-base font-semibold text-hsecondary", children: [
|
|
18126
18126
|
"Order ORD-",
|
|
18127
18127
|
order._id?.slice(-6).toUpperCase()
|
|
18128
18128
|
] }),
|
|
18129
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-
|
|
18129
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-hmuted mb-4", children: [
|
|
18130
18130
|
"Placed on ",
|
|
18131
18131
|
formatDate(order.createdAt || /* @__PURE__ */ new Date(), "long")
|
|
18132
18132
|
] })
|
|
@@ -18141,8 +18141,8 @@ function AccountOrdersTab() {
|
|
|
18141
18141
|
)
|
|
18142
18142
|
] }),
|
|
18143
18143
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-right", children: [
|
|
18144
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
18145
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-bold text-
|
|
18144
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-hmuted mb-1", children: "Total Amount" }),
|
|
18145
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-bold text-hsecondary", children: formatPrice(order.grandTotal || 0) })
|
|
18146
18146
|
] })
|
|
18147
18147
|
] }),
|
|
18148
18148
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3 mb-4", children: order.items && order.items.length > 0 ? order.items.map((item, index) => {
|
|
@@ -18160,15 +18160,15 @@ function AccountOrdersTab() {
|
|
|
18160
18160
|
}
|
|
18161
18161
|
) }),
|
|
18162
18162
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
18163
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-
|
|
18164
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-
|
|
18163
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-hsecondary text-sm truncate", children: item.productVariantData?.name || "Unknown Product" }),
|
|
18164
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-hmuted", children: [
|
|
18165
18165
|
"Qty: ",
|
|
18166
18166
|
item.quantity
|
|
18167
18167
|
] })
|
|
18168
18168
|
] }),
|
|
18169
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-
|
|
18169
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-hsecondary text-sm", children: formatPrice(itemTotal) })
|
|
18170
18170
|
] }, item.productVariantId || index);
|
|
18171
|
-
}) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
18171
|
+
}) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted text-center py-2", children: "No items found" }) })
|
|
18172
18172
|
]
|
|
18173
18173
|
},
|
|
18174
18174
|
order._id
|
|
@@ -18199,15 +18199,15 @@ function ConfirmModal({
|
|
|
18199
18199
|
button: "primary"
|
|
18200
18200
|
},
|
|
18201
18201
|
info: {
|
|
18202
|
-
icon: "text-
|
|
18202
|
+
icon: "text-hsecondary bg-blue-100",
|
|
18203
18203
|
button: "primary"
|
|
18204
18204
|
}
|
|
18205
18205
|
};
|
|
18206
18206
|
const style = variantStyles[variant];
|
|
18207
18207
|
return /* @__PURE__ */ jsxRuntime.jsx(Modal, { isOpen, onClose, size: "sm", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center text-center", children: [
|
|
18208
18208
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `w-12 h-12 rounded-full ${style.icon} flex items-center justify-center mb-4`, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-6 h-6" }) }),
|
|
18209
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-semibold text-
|
|
18210
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
18209
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-semibold text-hsecondary mb-2", children: title }),
|
|
18210
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-hmuted mb-6", children: message }),
|
|
18211
18211
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 w-full justify-center", children: [
|
|
18212
18212
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18213
18213
|
"button",
|
|
@@ -18269,13 +18269,13 @@ function AccountAddressesTab() {
|
|
|
18269
18269
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6 bg-white rounded-xl", children: [
|
|
18270
18270
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6 flex items-center justify-between", children: [
|
|
18271
18271
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
18272
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-
|
|
18273
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
18272
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-hsecondary", children: "Saved Addresses" }),
|
|
18273
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted", children: "Manage your delivery and billing addresses" })
|
|
18274
18274
|
] }),
|
|
18275
18275
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
18276
18276
|
"button",
|
|
18277
18277
|
{
|
|
18278
|
-
className: "flex flex-row items-center gap-2 px-6 py-2 border border-slate-200 rounded-xl text-slate-700 hover:opacity-80 transition-colors bg-
|
|
18278
|
+
className: "flex flex-row items-center gap-2 px-6 py-2 border border-slate-200 rounded-xl text-slate-700 hover:opacity-80 transition-colors bg-hsecondary text-white text-sm",
|
|
18279
18279
|
onClick: () => {
|
|
18280
18280
|
setEditingAddress(void 0);
|
|
18281
18281
|
setIsAddressModalOpen(true);
|
|
@@ -18306,8 +18306,8 @@ function AccountAddressesTab() {
|
|
|
18306
18306
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
18307
18307
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "justify-between flex items-center", children: [
|
|
18308
18308
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-x-2", children: [
|
|
18309
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "h-4 w-4 text-
|
|
18310
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-
|
|
18309
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "h-4 w-4 text-hsecondary" }),
|
|
18310
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-hsecondary", children: address.name }),
|
|
18311
18311
|
address.isDefault && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center gap-1 rounded-full bg-green-100 px-2 py-1 text-xs font-semibold text-green-700", children: "Default" })
|
|
18312
18312
|
] }),
|
|
18313
18313
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-x-2", children: [
|
|
@@ -18318,7 +18318,7 @@ function AccountAddressesTab() {
|
|
|
18318
18318
|
setEditingAddress(address);
|
|
18319
18319
|
setIsAddressModalOpen(true);
|
|
18320
18320
|
},
|
|
18321
|
-
className: "inline-flex items-center gap-1 rounded-full border border-slate-200 px-2 py-1 text-xs font-medium text-
|
|
18321
|
+
className: "inline-flex items-center gap-1 rounded-full border border-slate-200 px-2 py-1 text-xs font-medium text-hmuted transition hover:border-hprimary-300 hover:text-hprimary-600",
|
|
18322
18322
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Edit3, { className: "h-3 w-3" })
|
|
18323
18323
|
}
|
|
18324
18324
|
),
|
|
@@ -18333,18 +18333,18 @@ function AccountAddressesTab() {
|
|
|
18333
18333
|
)
|
|
18334
18334
|
] })
|
|
18335
18335
|
] }),
|
|
18336
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-
|
|
18336
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-hmuted mt-1", children: [
|
|
18337
18337
|
address.street1,
|
|
18338
18338
|
address.street2 && `, ${address.street2}`
|
|
18339
18339
|
] }),
|
|
18340
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-
|
|
18340
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-hmuted", children: [
|
|
18341
18341
|
address.city,
|
|
18342
18342
|
", ",
|
|
18343
18343
|
address.state,
|
|
18344
18344
|
" ",
|
|
18345
18345
|
address.zip
|
|
18346
18346
|
] }),
|
|
18347
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
18347
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted", children: address.country }),
|
|
18348
18348
|
address.phone && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 mt-1", children: address.phone })
|
|
18349
18349
|
] })
|
|
18350
18350
|
},
|
|
@@ -18407,14 +18407,14 @@ function AccountSettingsTab() {
|
|
|
18407
18407
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6 space-y-6", children: [
|
|
18408
18408
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl border border-slate-200 bg-white p-6", children: [
|
|
18409
18409
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-4", children: [
|
|
18410
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { className: "h-5 w-5 text-
|
|
18411
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-
|
|
18410
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { className: "h-5 w-5 text-hsecondary" }),
|
|
18411
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-hsecondary", children: "Security" })
|
|
18412
18412
|
] }),
|
|
18413
18413
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
18414
18414
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between rounded-lg border border-slate-200 bg-slate-50 px-4 py-3", children: [
|
|
18415
18415
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
18416
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-
|
|
18417
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
18416
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-hsecondary", children: "Change Password" }),
|
|
18417
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-hmuted", children: "Update your account password" })
|
|
18418
18418
|
] }),
|
|
18419
18419
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18420
18420
|
Button,
|
|
@@ -18557,7 +18557,7 @@ function AccountReviewsTab() {
|
|
|
18557
18557
|
"button",
|
|
18558
18558
|
{
|
|
18559
18559
|
onClick: () => router.push(buildPath("/reviews")),
|
|
18560
|
-
className: "inline-flex items-center gap-2 px-4 py-2 border border-
|
|
18560
|
+
className: "inline-flex items-center gap-2 px-4 py-2 border border-hsecondary text-hsecondary rounded-lg font-medium hover:bg-hsecondary/5 transition-colors text-sm",
|
|
18561
18561
|
children: [
|
|
18562
18562
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MessageSquare, { className: "size-4" }),
|
|
18563
18563
|
"Write a Review"
|
|
@@ -18626,8 +18626,8 @@ function AccountPage() {
|
|
|
18626
18626
|
};
|
|
18627
18627
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-h-screen bg-linear-to-b from-[#F8FAFC] to-[#EBF4FB]", children: [
|
|
18628
18628
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container mx-auto px-4 py-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
18629
|
-
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-semibold text-
|
|
18630
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
18629
|
+
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-semibold text-hsecondary", children: "My Account" }),
|
|
18630
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted", children: "Manage your profile, orders, and preferences" })
|
|
18631
18631
|
] }) }) }) }),
|
|
18632
18632
|
/* @__PURE__ */ jsxRuntime.jsx(TabNavigation, { tabs, activeTab, onTabChange: setActiveTab }),
|
|
18633
18633
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "container mx-auto max-w-7xl", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-2xl shadow-xs", children: renderTabContent() }) })
|
|
@@ -18684,7 +18684,7 @@ function OrderCard({ order, onDelete }) {
|
|
|
18684
18684
|
children: [
|
|
18685
18685
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-4 pb-4 border-b border-gray-200", children: [
|
|
18686
18686
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
18687
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-base font-bold text-slate-900 group-hover:text-
|
|
18687
|
+
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-base font-bold text-slate-900 group-hover:text-hprimary transition-colors", children: [
|
|
18688
18688
|
"Order #",
|
|
18689
18689
|
(order._id || order.id || "").slice(-8).toUpperCase()
|
|
18690
18690
|
] }),
|
|
@@ -18757,7 +18757,7 @@ function OrderCard({ order, onDelete }) {
|
|
|
18757
18757
|
e.stopPropagation();
|
|
18758
18758
|
window.open(order?.payment?.hostedInvoiceUrl || "", "_blank");
|
|
18759
18759
|
},
|
|
18760
|
-
className: "inline-flex items-center gap-2 rounded-full border-2 border-
|
|
18760
|
+
className: "inline-flex items-center gap-2 rounded-full border-2 border-hprimary-500 bg-hprimary-500 hover:bg-hprimary-600 text-white px-4 py-2 text-sm transition-colors",
|
|
18761
18761
|
onPointerDown: (e) => e.stopPropagation(),
|
|
18762
18762
|
children: [
|
|
18763
18763
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CreditCard, { className: "w-4 h-4" }),
|
|
@@ -18837,7 +18837,7 @@ function FilterChips({
|
|
|
18837
18837
|
{
|
|
18838
18838
|
type: "button",
|
|
18839
18839
|
onClick: () => onSelect("All"),
|
|
18840
|
-
className: "ml-auto text-xs text-
|
|
18840
|
+
className: "ml-auto text-xs text-hprimary-600 hover:text-hprimary-700 font-medium",
|
|
18841
18841
|
children: "Clear"
|
|
18842
18842
|
}
|
|
18843
18843
|
)
|
|
@@ -18850,7 +18850,7 @@ function FilterChips({
|
|
|
18850
18850
|
{
|
|
18851
18851
|
type: "button",
|
|
18852
18852
|
onClick: () => onSelect(filter),
|
|
18853
|
-
className: `inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-all whitespace-nowrap ${isSelected ? isPrimary ? "border-
|
|
18853
|
+
className: `inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-all whitespace-nowrap ${isSelected ? isPrimary ? "border-hprimary-500 bg-hprimary-500 text-white shadow-xs" : "border-hsecondary-500 bg-hsecondary-500 text-white shadow-xs" : "border-slate-200 bg-white text-slate-700 hover:border-slate-300 hover:bg-slate-50"}`,
|
|
18854
18854
|
children: [
|
|
18855
18855
|
filter,
|
|
18856
18856
|
isSelected && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-3.5 w-3.5" })
|
|
@@ -18865,7 +18865,7 @@ function FilterChips({
|
|
|
18865
18865
|
{
|
|
18866
18866
|
type: "button",
|
|
18867
18867
|
onClick: () => setIsOverflowOpen((prev) => !prev),
|
|
18868
|
-
className: `inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-all whitespace-nowrap ${overflowFilters.includes(selected) ? isPrimary ? "border-
|
|
18868
|
+
className: `inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-all whitespace-nowrap ${overflowFilters.includes(selected) ? isPrimary ? "border-hprimary-500 bg-hprimary-50 text-hprimary-700" : "border-hsecondary-500 bg-hsecondary-50 text-hsecondary-700" : "border-slate-200 bg-white text-slate-700 hover:border-slate-300 hover:bg-slate-50"}`,
|
|
18869
18869
|
children: [
|
|
18870
18870
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: overflowFilters.includes(selected) ? selected : "More" }),
|
|
18871
18871
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `h-3.5 w-3.5 transition-transform ${isOverflowOpen ? "rotate-180" : ""}` })
|
|
@@ -18890,7 +18890,7 @@ function FilterChips({
|
|
|
18890
18890
|
onSelect(filter);
|
|
18891
18891
|
setIsOverflowOpen(false);
|
|
18892
18892
|
},
|
|
18893
|
-
className: `flex w-full items-center justify-between rounded-md px-3 py-2 text-sm font-medium transition ${isSelected ? isPrimary ? "bg-
|
|
18893
|
+
className: `flex w-full items-center justify-between rounded-md px-3 py-2 text-sm font-medium transition ${isSelected ? isPrimary ? "bg-hprimary-500 text-white" : "bg-hsecondary-500 text-white" : "text-slate-700 hover:bg-slate-100"}`,
|
|
18894
18894
|
children: [
|
|
18895
18895
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: filter }),
|
|
18896
18896
|
isSelected && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" })
|
|
@@ -19012,9 +19012,9 @@ function OrdersScreen() {
|
|
|
19012
19012
|
className: "space-y-6",
|
|
19013
19013
|
children: [
|
|
19014
19014
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-8", children: [
|
|
19015
|
-
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-black text-
|
|
19016
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium text-
|
|
19017
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-
|
|
19015
|
+
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-black text-hsecondary tracking-tight", children: "Order History" }),
|
|
19016
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium text-hmuted mt-1 flex items-center gap-2", children: [
|
|
19017
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-haccent animate-pulse" }),
|
|
19018
19018
|
filteredOrders.length,
|
|
19019
19019
|
" ",
|
|
19020
19020
|
filteredOrders.length === 1 ? "record found" : "records found",
|
|
@@ -19191,21 +19191,21 @@ function CurrentOrdersScreen() {
|
|
|
19191
19191
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg font-semibold text-slate-900", children: "Real-time milestones" }),
|
|
19192
19192
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 space-y-4 text-sm text-slate-600", children: [
|
|
19193
19193
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4", children: [
|
|
19194
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Warehouse, { className: "h-5 w-5 text-
|
|
19194
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Warehouse, { className: "h-5 w-5 text-hprimary-500" }),
|
|
19195
19195
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
19196
19196
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-slate-800", children: "Preparation" }),
|
|
19197
19197
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "Our pharmacists verify ingredients and pack thermo-sensitive items." })
|
|
19198
19198
|
] })
|
|
19199
19199
|
] }),
|
|
19200
19200
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4", children: [
|
|
19201
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Truck, { className: "h-5 w-5 text-
|
|
19201
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Truck, { className: "h-5 w-5 text-hprimary-500" }),
|
|
19202
19202
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
19203
19203
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-slate-800", children: "In transit" }),
|
|
19204
19204
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "Track live courier location with ETA updates tailored to your delivery window." })
|
|
19205
19205
|
] })
|
|
19206
19206
|
] }),
|
|
19207
19207
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4", children: [
|
|
19208
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.BellRing, { className: "h-5 w-5 text-
|
|
19208
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.BellRing, { className: "h-5 w-5 text-hprimary-500" }),
|
|
19209
19209
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
19210
19210
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-slate-800", children: "Arrival alerts" }),
|
|
19211
19211
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "Receive SMS and email notifications when parcels are out for delivery." })
|
|
@@ -19213,7 +19213,7 @@ function CurrentOrdersScreen() {
|
|
|
19213
19213
|
] })
|
|
19214
19214
|
] })
|
|
19215
19215
|
] }),
|
|
19216
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-3xl border border-
|
|
19216
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-3xl border border-hprimary-100 bg-hprimary-50/70 p-6 text-sm text-hprimary-700 shadow-xs", children: [
|
|
19217
19217
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold uppercase tracking-[0.3em]", children: "Need support?" }),
|
|
19218
19218
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-3 leading-relaxed", children: "Our fulfillment team is online 7 days a week. Message us if you need to adjust delivery instructions or review dosage guidance." })
|
|
19219
19219
|
] })
|
|
@@ -19419,7 +19419,7 @@ You can add it back at any time.`
|
|
|
19419
19419
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-semibold md:text-4xl", children: "Manage where your care arrives" }),
|
|
19420
19420
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "max-w-2xl text-sm text-slate-600", children: "Save home, office, or loved ones' addresses and choose a default for faster checkout and delivery." }),
|
|
19421
19421
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-3 text-xs text-slate-500", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-3 py-2", children: [
|
|
19422
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4 text-
|
|
19422
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4 text-hprimary-600" }),
|
|
19423
19423
|
"Default: ",
|
|
19424
19424
|
defaultAddress ? defaultAddress.name : "Not set"
|
|
19425
19425
|
] }) })
|
|
@@ -19487,14 +19487,14 @@ You can add it back at any time.`
|
|
|
19487
19487
|
{
|
|
19488
19488
|
initial: { opacity: 0, y: 24 },
|
|
19489
19489
|
animate: { opacity: 1, y: 0 },
|
|
19490
|
-
className: "group relative flex h-full flex-col rounded-3xl border border-slate-200 bg-white p-6 shadow-xs transition hover:-translate-y-1 hover:border-
|
|
19490
|
+
className: "group relative flex h-full flex-col rounded-3xl border border-slate-200 bg-white p-6 shadow-xs transition hover:-translate-y-1 hover:border-hprimary-200 hover:shadow-lg",
|
|
19491
19491
|
children: [
|
|
19492
19492
|
address.isDefault && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "absolute right-6 top-6 inline-flex items-center gap-2 rounded-full bg-amber-100 px-3 py-1 text-xs font-semibold text-amber-700", children: [
|
|
19493
19493
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Crown, { className: "h-4 w-4" }),
|
|
19494
19494
|
"Default"
|
|
19495
19495
|
] }),
|
|
19496
19496
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
19497
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-
|
|
19497
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-hprimary-50 p-3 text-hprimary-600", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.User, { className: "h-5 w-5" }) }),
|
|
19498
19498
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
19499
19499
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base font-semibold text-slate-900", children: address.name }),
|
|
19500
19500
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs uppercase tracking-[0.3em] text-slate-400", children: typeCopy.label })
|
|
@@ -19513,7 +19513,7 @@ You can add it back at any time.`
|
|
|
19513
19513
|
{
|
|
19514
19514
|
type: "button",
|
|
19515
19515
|
onClick: () => openEditModal(address),
|
|
19516
|
-
className: "inline-flex items-center gap-2 rounded-full border border-slate-200 px-3 py-1 text-sm font-medium text-slate-600 transition hover:border-
|
|
19516
|
+
className: "inline-flex items-center gap-2 rounded-full border border-slate-200 px-3 py-1 text-sm font-medium text-slate-600 transition hover:border-hprimary-300 hover:text-hprimary-600",
|
|
19517
19517
|
children: [
|
|
19518
19518
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Edit3, { className: "h-4 w-4" }),
|
|
19519
19519
|
"Edit"
|
|
@@ -19646,7 +19646,7 @@ You can add it back at any time.`
|
|
|
19646
19646
|
"select",
|
|
19647
19647
|
{
|
|
19648
19648
|
...register("addressType"),
|
|
19649
|
-
className: "rounded-xl border border-slate-200 px-3 py-2 text-sm text-slate-700 focus:border-
|
|
19649
|
+
className: "rounded-xl border border-slate-200 px-3 py-2 text-sm text-slate-700 focus:border-hprimary-400 focus:outline-hidden focus:ring-2 focus:ring-hprimary-500/20",
|
|
19650
19650
|
children: [
|
|
19651
19651
|
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "Shipping", children: "Shipping" }),
|
|
19652
19652
|
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "Billing", children: "Billing" }),
|
|
@@ -19662,7 +19662,7 @@ You can add it back at any time.`
|
|
|
19662
19662
|
{
|
|
19663
19663
|
type: "checkbox",
|
|
19664
19664
|
...register("isDefault"),
|
|
19665
|
-
className: "h-4 w-4 rounded-sm border-
|
|
19665
|
+
className: "h-4 w-4 rounded-sm border-hprimary-300 text-hprimary-600 focus:ring-hprimary-500"
|
|
19666
19666
|
}
|
|
19667
19667
|
)
|
|
19668
19668
|
] })
|
|
@@ -19827,25 +19827,25 @@ function WishlistScreen() {
|
|
|
19827
19827
|
className: "space-y-6",
|
|
19828
19828
|
children: [
|
|
19829
19829
|
!isAuthenticated && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-h-[40vh] items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-lg text-center space-y-6", children: [
|
|
19830
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-full bg-gray-100 p-6", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heart, { className: "h-12 w-12 text-
|
|
19830
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-full bg-gray-100 p-6", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heart, { className: "h-12 w-12 text-hsecondary" }) }) }),
|
|
19831
19831
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
19832
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-
|
|
19833
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
19832
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-hsecondary", children: "Sign in to see your favourites" }),
|
|
19833
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-hmuted", children: "Create your curated shelf of products and we'll keep them ready whenever you return." })
|
|
19834
19834
|
] }),
|
|
19835
19835
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
19836
19836
|
"button",
|
|
19837
19837
|
{
|
|
19838
19838
|
type: "button",
|
|
19839
19839
|
onClick: () => router.push(buildPath("/login")),
|
|
19840
|
-
className: "rounded-xl border-2 border-
|
|
19840
|
+
className: "rounded-xl border-2 border-hprimary bg-hprimary text-white px-6 py-3 text-sm font-medium transition-colors hover:opacity-80",
|
|
19841
19841
|
children: "Sign In"
|
|
19842
19842
|
}
|
|
19843
19843
|
)
|
|
19844
19844
|
] }) }),
|
|
19845
19845
|
isAuthenticated && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
19846
19846
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6", children: [
|
|
19847
|
-
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold text-
|
|
19848
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-
|
|
19847
|
+
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold text-hsecondary", children: "Wishlist" }),
|
|
19848
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-hmuted mt-1", children: [
|
|
19849
19849
|
wishlistCount,
|
|
19850
19850
|
" ",
|
|
19851
19851
|
wishlistCount === 1 ? "item" : "items",
|
|
@@ -19854,16 +19854,16 @@ function WishlistScreen() {
|
|
|
19854
19854
|
] })
|
|
19855
19855
|
] }),
|
|
19856
19856
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between mb-6", children: [
|
|
19857
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: onlyInStock && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
19857
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: onlyInStock && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted", children: "Showing items ready to ship" }) }),
|
|
19858
19858
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
|
|
19859
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "inline-flex cursor-pointer items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-600 transition hover:border-
|
|
19859
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "inline-flex cursor-pointer items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-600 transition hover:border-hprimary hover:text-hsecondary", children: [
|
|
19860
19860
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
19861
19861
|
"input",
|
|
19862
19862
|
{
|
|
19863
19863
|
type: "checkbox",
|
|
19864
19864
|
checked: onlyInStock,
|
|
19865
19865
|
onChange: (event) => setOnlyInStock(event.target.checked),
|
|
19866
|
-
className: "h-4 w-4 rounded-sm border-slate-300 text-
|
|
19866
|
+
className: "h-4 w-4 rounded-sm border-slate-300 text-hsecondary focus:ring-hsecondary"
|
|
19867
19867
|
}
|
|
19868
19868
|
),
|
|
19869
19869
|
"Only show in-stock"
|
|
@@ -19886,7 +19886,7 @@ function WishlistScreen() {
|
|
|
19886
19886
|
{
|
|
19887
19887
|
type: "button",
|
|
19888
19888
|
onClick: () => setViewMode("grid"),
|
|
19889
|
-
className: `flex items-center gap-1 px-3 py-1.5 text-sm font-medium transition rounded-full ${viewMode === "grid" ? "bg-white text-
|
|
19889
|
+
className: `flex items-center gap-1 px-3 py-1.5 text-sm font-medium transition rounded-full ${viewMode === "grid" ? "bg-white text-hprimary shadow-md" : "text-slate-600 hover:bg-white"}`,
|
|
19890
19890
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Grid, { className: "h-4 w-4" })
|
|
19891
19891
|
}
|
|
19892
19892
|
),
|
|
@@ -19895,7 +19895,7 @@ function WishlistScreen() {
|
|
|
19895
19895
|
{
|
|
19896
19896
|
type: "button",
|
|
19897
19897
|
onClick: () => setViewMode("list"),
|
|
19898
|
-
className: `flex items-center gap-1 px-3 py-1.5 text-sm font-medium transition rounded-full ${viewMode === "list" ? "bg-white text-
|
|
19898
|
+
className: `flex items-center gap-1 px-3 py-1.5 text-sm font-medium transition rounded-full ${viewMode === "list" ? "bg-white text-hprimary shadow-md" : "text-slate-600 hover:bg-white"}`,
|
|
19899
19899
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.List, { className: "h-4 w-4" })
|
|
19900
19900
|
}
|
|
19901
19901
|
)
|
|
@@ -19922,17 +19922,17 @@ function WishlistScreen() {
|
|
|
19922
19922
|
index
|
|
19923
19923
|
)) }),
|
|
19924
19924
|
!isLoading && wishlistCount === 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-h-[30vh] items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center space-y-6 max-w-md", children: [
|
|
19925
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-full bg-gray-100 p-6", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heart, { className: "h-12 w-12 text-
|
|
19925
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-full bg-gray-100 p-6", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heart, { className: "h-12 w-12 text-hsecondary" }) }) }),
|
|
19926
19926
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
19927
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-
|
|
19928
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
19927
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-hsecondary", children: "Your wishlist is empty" }),
|
|
19928
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-hmuted", children: "Start adding products to your wishlist to see them here." })
|
|
19929
19929
|
] }),
|
|
19930
19930
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap justify-center gap-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
19931
19931
|
"button",
|
|
19932
19932
|
{
|
|
19933
19933
|
type: "button",
|
|
19934
19934
|
onClick: () => router.push(buildPath("/shop")),
|
|
19935
|
-
className: "rounded-xl border-2 border-
|
|
19935
|
+
className: "rounded-xl border-2 border-hsecondary bg-hsecondary text-white px-6 py-3 text-sm font-medium transition-colors flex items-center justify-center gap-2 hover:opacity-80",
|
|
19936
19936
|
children: "Discover products"
|
|
19937
19937
|
}
|
|
19938
19938
|
) })
|
|
@@ -19985,11 +19985,11 @@ function WishlistScreen() {
|
|
|
19985
19985
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 flex-col gap-2", children: [
|
|
19986
19986
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
|
|
19987
19987
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
19988
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-
|
|
19989
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
19988
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-hsecondary", children: product.name }),
|
|
19989
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted", children: "General wellness" })
|
|
19990
19990
|
] }),
|
|
19991
19991
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-right", children: [
|
|
19992
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-bold text-
|
|
19992
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-bold text-hprimary", children: formatPrice(product.summary?.minPrice ?? 0) }),
|
|
19993
19993
|
product.summary?.hasDiscount && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-emerald-500", children: [
|
|
19994
19994
|
"You save ",
|
|
19995
19995
|
formatPrice(Math.max((product.summary?.maxPrice ?? 0) - (product.summary?.minPrice ?? 0), 0))
|
|
@@ -20013,7 +20013,7 @@ function WishlistScreen() {
|
|
|
20013
20013
|
{
|
|
20014
20014
|
size: "sm",
|
|
20015
20015
|
onClick: () => router.push(buildPath(`/products/${product._id}`)),
|
|
20016
|
-
className: "bg-
|
|
20016
|
+
className: "bg-hprimary-90 text-white hover:bg-hprimary-70",
|
|
20017
20017
|
children: "View details"
|
|
20018
20018
|
}
|
|
20019
20019
|
),
|
|
@@ -20033,13 +20033,13 @@ function WishlistScreen() {
|
|
|
20033
20033
|
)) }) }) }),
|
|
20034
20034
|
isAuthenticated && emptyAfterFiltering && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center rounded-lg border border-dashed border-gray-200 bg-gray-50 p-12 text-center", children: [
|
|
20035
20035
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-gray-200 text-gray-500", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Package, { className: "h-8 w-8" }) }),
|
|
20036
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mt-6 text-xl font-semibold text-
|
|
20037
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 max-w-md text-sm text-
|
|
20036
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mt-6 text-xl font-semibold text-hsecondary", children: "Nothing matches those filters" }),
|
|
20037
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 max-w-md text-sm text-hmuted", children: "Try showing out-of-stock items or adjust your sort order to revisit everything you've saved." }),
|
|
20038
20038
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20039
20039
|
"button",
|
|
20040
20040
|
{
|
|
20041
20041
|
type: "button",
|
|
20042
|
-
className: "mt-6 rounded-xl border-2 border-
|
|
20042
|
+
className: "mt-6 rounded-xl border-2 border-hprimary bg-white px-6 py-3 text-sm font-medium text-hsecondary hover:opacity-80 transition-colors",
|
|
20043
20043
|
onClick: () => setOnlyInStock(false),
|
|
20044
20044
|
children: "Show all saved products"
|
|
20045
20045
|
}
|
|
@@ -20218,7 +20218,7 @@ function SearchPage() {
|
|
|
20218
20218
|
onFocus: handleInputFocus,
|
|
20219
20219
|
onBlur: () => setTimeout(() => setShowSuggestions(false), 200),
|
|
20220
20220
|
placeholder: "Search for products...",
|
|
20221
|
-
className: "pl-10 pr-10 py-6 text-base rounded-lg border-gray-300 focus:ring-2 focus:ring-
|
|
20221
|
+
className: "pl-10 pr-10 py-6 text-base rounded-lg border-gray-300 focus:ring-2 focus:ring-hprimary-500 focus:border-hprimary-500",
|
|
20222
20222
|
autoComplete: "off"
|
|
20223
20223
|
}
|
|
20224
20224
|
),
|
|
@@ -20252,7 +20252,7 @@ function SearchPage() {
|
|
|
20252
20252
|
onClick: () => handleSuggestionClick(suggestion),
|
|
20253
20253
|
className: "w-full text-left px-3 py-2.5 hover:bg-gray-50 rounded-md transition-colors flex items-center gap-2 group",
|
|
20254
20254
|
children: [
|
|
20255
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "h-4 w-4 text-gray-400 group-hover:text-
|
|
20255
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "h-4 w-4 text-gray-400 group-hover:text-hprimary-500" }),
|
|
20256
20256
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-gray-700 group-hover:text-gray-900", children: suggestion })
|
|
20257
20257
|
]
|
|
20258
20258
|
},
|
|
@@ -20271,7 +20271,7 @@ function SearchPage() {
|
|
|
20271
20271
|
onClick: () => handleSuggestionClick(search),
|
|
20272
20272
|
className: "w-full text-left px-3 py-2.5 hover:bg-gray-50 rounded-md transition-colors flex items-center gap-2 group",
|
|
20273
20273
|
children: [
|
|
20274
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "h-4 w-4 text-gray-400 group-hover:text-
|
|
20274
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "h-4 w-4 text-gray-400 group-hover:text-hprimary-500" }),
|
|
20275
20275
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-gray-700 group-hover:text-gray-900", children: search })
|
|
20276
20276
|
]
|
|
20277
20277
|
},
|
|
@@ -20286,7 +20286,7 @@ function SearchPage() {
|
|
|
20286
20286
|
"button",
|
|
20287
20287
|
{
|
|
20288
20288
|
type: "submit",
|
|
20289
|
-
className: "mt-4 w-full bg-
|
|
20289
|
+
className: "mt-4 w-full bg-hprimary-600 hover:bg-hprimary-700 text-white font-medium py-2 px-4 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
|
|
20290
20290
|
disabled: !searchInput.trim(),
|
|
20291
20291
|
children: "Search"
|
|
20292
20292
|
}
|
|
@@ -20328,7 +20328,7 @@ function SearchPage() {
|
|
|
20328
20328
|
Link9__default.default,
|
|
20329
20329
|
{
|
|
20330
20330
|
href: buildPath("/shop"),
|
|
20331
|
-
className: "px-6 py-2.5 bg-
|
|
20331
|
+
className: "px-6 py-2.5 bg-hprimary-600 text-white rounded-lg hover:bg-hprimary-700 transition-colors font-medium",
|
|
20332
20332
|
children: "Browse All Products"
|
|
20333
20333
|
}
|
|
20334
20334
|
) }),
|
|
@@ -20345,7 +20345,7 @@ function SearchPage() {
|
|
|
20345
20345
|
)) })
|
|
20346
20346
|
] })
|
|
20347
20347
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center py-12", children: [
|
|
20348
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-16 h-16 bg-
|
|
20348
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-16 h-16 bg-hprimary-50 rounded-full flex items-center justify-center mx-auto mb-4", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "h-8 w-8 text-hprimary-500" }) }),
|
|
20349
20349
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-semibold text-gray-900 mb-2", children: "Start Searching" }),
|
|
20350
20350
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-gray-500 mb-6", children: "Enter a search term above to find products" }),
|
|
20351
20351
|
recentSearches.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-md mx-auto", children: [
|
|
@@ -20597,7 +20597,7 @@ function EditProfileScreen() {
|
|
|
20597
20597
|
className: "mx-auto max-w-3xl rounded-3xl border border-slate-200 bg-white p-8 shadow-xl shadow-primary-50",
|
|
20598
20598
|
children: [
|
|
20599
20599
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
20600
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-11 w-11 items-center justify-center rounded-2xl bg-
|
|
20600
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-11 w-11 items-center justify-center rounded-2xl bg-hprimary-50 text-hprimary-600", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.User, { className: "h-5 w-5" }) }),
|
|
20601
20601
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
20602
20602
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold uppercase tracking-[0.32em] text-slate-500", children: "Profile" }),
|
|
20603
20603
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-semibold text-slate-900", children: "Edit core information" })
|
|
@@ -21342,15 +21342,15 @@ function OrderDetailScreen({ id }) {
|
|
|
21342
21342
|
}, [order]);
|
|
21343
21343
|
if (isLoading) {
|
|
21344
21344
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-h-screen bg-slate-50 flex flex-col items-center justify-center p-4", children: [
|
|
21345
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-16 h-16 border-4 border-
|
|
21346
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
21345
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-16 h-16 border-4 border-hprimary-20 border-t-primary rounded-full animate-spin mb-4" }),
|
|
21346
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-hmuted font-medium animate-pulse", children: "Retrieving order details..." })
|
|
21347
21347
|
] });
|
|
21348
21348
|
}
|
|
21349
21349
|
if (error || !order) {
|
|
21350
21350
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-h-screen bg-slate-50 flex flex-col items-center justify-center p-4", children: [
|
|
21351
21351
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 bg-red-50 rounded-full mb-4", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "w-10 h-10 text-red-500" }) }),
|
|
21352
|
-
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-xl font-bold text-
|
|
21353
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
21352
|
+
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-xl font-bold text-hsecondary mb-2", children: "Order Not Found" }),
|
|
21353
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-hmuted mb-6", children: "We couldn't find the order you're looking for." }),
|
|
21354
21354
|
/* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: () => router.push(buildPath("/account")), children: "Back to Account" })
|
|
21355
21355
|
] });
|
|
21356
21356
|
}
|
|
@@ -21382,7 +21382,7 @@ function OrderDetailScreen({ id }) {
|
|
|
21382
21382
|
"button",
|
|
21383
21383
|
{
|
|
21384
21384
|
onClick: () => router.back(),
|
|
21385
|
-
className: "group flex items-center gap-2 text-
|
|
21385
|
+
className: "group flex items-center gap-2 text-hmuted hover:text-hsecondary transition-colors mb-6",
|
|
21386
21386
|
children: [
|
|
21387
21387
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-1.5 rounded-full bg-white shadow-xs group-hover:shadow-md transition-all", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "w-4 h-4" }) }),
|
|
21388
21388
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-semibold", children: "Back to History" })
|
|
@@ -21392,14 +21392,14 @@ function OrderDetailScreen({ id }) {
|
|
|
21392
21392
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row md:items-end justify-between gap-6 mb-8", children: [
|
|
21393
21393
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
21394
21394
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-2", children: [
|
|
21395
|
-
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-bold text-
|
|
21395
|
+
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-bold text-hsecondary", children: "Order Details" }),
|
|
21396
21396
|
/* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: getStatusVariant(status), children: status }),
|
|
21397
|
-
/* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "primary", className: "bg-
|
|
21397
|
+
/* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "primary", className: "bg-hprimary-100 text-hprimary-700 border-hprimary-200", children: order.orderType || "Pickup" })
|
|
21398
21398
|
] }),
|
|
21399
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-6 gap-y-2 text-sm text-
|
|
21399
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-6 gap-y-2 text-sm text-hmuted", children: [
|
|
21400
21400
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5 font-medium", children: [
|
|
21401
21401
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-60 text-xs uppercase tracking-widest font-bold", children: "ID:" }),
|
|
21402
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-
|
|
21402
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-hsecondary font-mono tracking-tight", children: [
|
|
21403
21403
|
"#",
|
|
21404
21404
|
id.toUpperCase()
|
|
21405
21405
|
] })
|
|
@@ -21410,7 +21410,7 @@ function OrderDetailScreen({ id }) {
|
|
|
21410
21410
|
] })
|
|
21411
21411
|
] })
|
|
21412
21412
|
] }),
|
|
21413
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-3", children: order.payment?.hostedInvoiceUrl && /* @__PURE__ */ jsxRuntime.jsxs(Button, { size: "sm", onClick: () => window.open(order.payment?.hostedInvoiceUrl, "_blank"), className: "bg-
|
|
21413
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-3", children: order.payment?.hostedInvoiceUrl && /* @__PURE__ */ jsxRuntime.jsxs(Button, { size: "sm", onClick: () => window.open(order.payment?.hostedInvoiceUrl, "_blank"), className: "bg-haccent hover:bg-haccent-dark border-none", children: [
|
|
21414
21414
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ExternalLink, { className: "w-4 h-4" }),
|
|
21415
21415
|
"Payment Details"
|
|
21416
21416
|
] }) })
|
|
@@ -21427,10 +21427,10 @@ function OrderDetailScreen({ id }) {
|
|
|
21427
21427
|
children: [
|
|
21428
21428
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6 border-b border-slate-100 bg-slate-50/50 flex items-center justify-between", children: [
|
|
21429
21429
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
21430
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Package, { className: "w-5 h-5 text-
|
|
21431
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-bold text-
|
|
21430
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Package, { className: "w-5 h-5 text-hsecondary" }),
|
|
21431
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-bold text-hsecondary", children: "Order Items" })
|
|
21432
21432
|
] }),
|
|
21433
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs font-bold bg-slate-200 text-
|
|
21433
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs font-bold bg-slate-200 text-hmuted px-2.5 py-1 rounded-full", children: [
|
|
21434
21434
|
items.length,
|
|
21435
21435
|
" ",
|
|
21436
21436
|
items.length === 1 ? "Product" : "Products"
|
|
@@ -21449,19 +21449,19 @@ function OrderDetailScreen({ id }) {
|
|
|
21449
21449
|
) }),
|
|
21450
21450
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 flex flex-col justify-between py-1", children: [
|
|
21451
21451
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
21452
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-bold text-
|
|
21453
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-x-4 gap-y-1 text-sm text-
|
|
21452
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-bold text-hsecondary text-lg group-hover:text-hprimary transition-colors leading-snug mb-1", children: item.productVariantData?.name }),
|
|
21453
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-x-4 gap-y-1 text-sm text-hmuted", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
21454
21454
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-slate-300" }),
|
|
21455
21455
|
"Quantity: ",
|
|
21456
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
21456
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-hsecondary font-bold", children: item.quantity })
|
|
21457
21457
|
] }) })
|
|
21458
21458
|
] }),
|
|
21459
21459
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
21460
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-
|
|
21460
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-hmuted text-sm", children: [
|
|
21461
21461
|
formatPrice(item.productVariantData?.finalPrice || 0),
|
|
21462
21462
|
" per unit"
|
|
21463
21463
|
] }),
|
|
21464
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-black text-
|
|
21464
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-black text-hsecondary", children: formatPrice((item.productVariantData?.finalPrice || 0) * item.quantity) })
|
|
21465
21465
|
] })
|
|
21466
21466
|
] })
|
|
21467
21467
|
] }, item._id || idx)) })
|
|
@@ -21471,11 +21471,11 @@ function OrderDetailScreen({ id }) {
|
|
|
21471
21471
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
21472
21472
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white p-6 rounded-3xl border border-slate-200 shadow-xs", children: [
|
|
21473
21473
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-4", children: [
|
|
21474
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "w-5 h-5 text-
|
|
21475
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-bold text-
|
|
21474
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "w-5 h-5 text-haccent" }),
|
|
21475
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-bold text-hsecondary", children: isDelivery ? "Shipping Address" : "Pickup Location" })
|
|
21476
21476
|
] }),
|
|
21477
|
-
activeAddress ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm text-
|
|
21478
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-bold text-
|
|
21477
|
+
activeAddress ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm text-hmuted leading-relaxed", children: [
|
|
21478
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-bold text-hsecondary text-base mb-1", children: activeAddress.name }),
|
|
21479
21479
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: activeAddress.street1 }),
|
|
21480
21480
|
activeAddress.street2 && /* @__PURE__ */ jsxRuntime.jsx("p", { children: activeAddress.street2 }),
|
|
21481
21481
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
@@ -21486,15 +21486,15 @@ function OrderDetailScreen({ id }) {
|
|
|
21486
21486
|
activeAddress.zip
|
|
21487
21487
|
] }),
|
|
21488
21488
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: activeAddress.country })
|
|
21489
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
21489
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-hmuted italic", children: "No address recorded" })
|
|
21490
21490
|
] }),
|
|
21491
21491
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white p-6 rounded-3xl border border-slate-200 shadow-xs", children: [
|
|
21492
21492
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-4", children: [
|
|
21493
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CreditCard, { className: "w-5 h-5 text-
|
|
21494
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-bold text-
|
|
21493
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CreditCard, { className: "w-5 h-5 text-haccent" }),
|
|
21494
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-bold text-hsecondary", children: "Payment Method" })
|
|
21495
21495
|
] }),
|
|
21496
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm text-
|
|
21497
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-bold text-
|
|
21496
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm text-hmuted leading-relaxed", children: [
|
|
21497
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-bold text-hsecondary text-base mb-1", children: order.payment?.paymentMethod ? order.payment.paymentMethod.replace("_", " ").toUpperCase() : "N/A" }),
|
|
21498
21498
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "flex items-center gap-2 mt-2", children: [
|
|
21499
21499
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-60", children: "Status:" }),
|
|
21500
21500
|
/* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: order.payment?.paymentStatus === "Paid" ? "success" : "warning", children: order.payment?.paymentStatus || "Processing" })
|
|
@@ -21512,7 +21512,7 @@ function OrderDetailScreen({ id }) {
|
|
|
21512
21512
|
{
|
|
21513
21513
|
initial: { opacity: 0, x: 20 },
|
|
21514
21514
|
animate: { opacity: 1, x: 0 },
|
|
21515
|
-
className: "bg-
|
|
21515
|
+
className: "bg-hsecondary p-8 rounded-[2rem] text-white shadow-xl shadow-secondary-20 sticky top-8",
|
|
21516
21516
|
children: [
|
|
21517
21517
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-bold mb-6 flex items-center gap-2", children: "Summary View" }),
|
|
21518
21518
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 mb-8", children: [
|
|
@@ -21528,7 +21528,7 @@ function OrderDetailScreen({ id }) {
|
|
|
21528
21528
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: "Tax" }),
|
|
21529
21529
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-bold text-white", children: formatPrice(order.tax || 0) })
|
|
21530
21530
|
] }),
|
|
21531
|
-
order.discountedAmount !== void 0 && order.discountedAmount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center text-
|
|
21531
|
+
order.discountedAmount !== void 0 && order.discountedAmount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center text-hprimary", children: [
|
|
21532
21532
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: "Discount" }),
|
|
21533
21533
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-bold", children: [
|
|
21534
21534
|
"-",
|
|
@@ -21544,7 +21544,7 @@ function OrderDetailScreen({ id }) {
|
|
|
21544
21544
|
] }) })
|
|
21545
21545
|
] }),
|
|
21546
21546
|
order.orderStatus === "Pending" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 bg-white/5 rounded-2xl border border-white/10 mb-8", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
21547
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Info, { className: "w-5 h-5 text-
|
|
21547
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Info, { className: "w-5 h-5 text-hprimary shrink-0 mt-0.5" }),
|
|
21548
21548
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
21549
21549
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-bold mb-1", children: "Order is processing" }),
|
|
21550
21550
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] text-white/60 leading-relaxed", children: "We've received your request and our pharmacists are reviewing it for safety and accuracy." })
|
|
@@ -21608,7 +21608,7 @@ function ChangePasswordScreen() {
|
|
|
21608
21608
|
className: "mx-auto max-w-2xl rounded-3xl border border-slate-200 bg-white p-8 shadow-xl shadow-primary-50",
|
|
21609
21609
|
children: [
|
|
21610
21610
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
21611
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-11 w-11 items-center justify-center rounded-2xl bg-
|
|
21611
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-11 w-11 items-center justify-center rounded-2xl bg-hprimary-50 text-hprimary-600", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { className: "h-5 w-5" }) }),
|
|
21612
21612
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
21613
21613
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold uppercase tracking-[0.32em] text-slate-500", children: "Security" }),
|
|
21614
21614
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-semibold text-slate-900", children: "Change password" })
|
|
@@ -21681,7 +21681,7 @@ function ChangePasswordScreen() {
|
|
|
21681
21681
|
] })
|
|
21682
21682
|
] }),
|
|
21683
21683
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6 flex items-center gap-2 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 text-sm text-slate-600", children: [
|
|
21684
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "h-4 w-4 text-
|
|
21684
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "h-4 w-4 text-hprimary-600" }),
|
|
21685
21685
|
"Strong passwords and up-to-date contact details help pharmacists verify changes quickly."
|
|
21686
21686
|
] })
|
|
21687
21687
|
]
|
|
@@ -21896,7 +21896,7 @@ function NotificationModal() {
|
|
|
21896
21896
|
style: { maxHeight: "calc(100vh - 120px)" },
|
|
21897
21897
|
children: [
|
|
21898
21898
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -top-1 right-5 w-3 h-3 bg-white border-l border-t border-gray-100 transform rotate-45 z-10" }),
|
|
21899
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-b bg-gradient-to-r from-
|
|
21899
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-b bg-gradient-to-r from-hprimary-50 to-white", children: [
|
|
21900
21900
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
21901
21901
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21902
21902
|
"h2",
|
|
@@ -21997,7 +21997,7 @@ function NotificationBell() {
|
|
|
21997
21997
|
id: "notification-bell-button",
|
|
21998
21998
|
onClick: handleToggle,
|
|
21999
21999
|
onMouseDown: (e) => e.stopPropagation(),
|
|
22000
|
-
className: `relative p-2.5 rounded-xl transition-all duration-300 group flex items-center justify-center ${isDrawerOpen ? "bg-
|
|
22000
|
+
className: `relative p-2.5 rounded-xl transition-all duration-300 group flex items-center justify-center ${isDrawerOpen ? "bg-hprimary-50 text-hprimary-600" : "hover:bg-gradient-to-br hover:from-hprimary-50 hover:to-hprimary-100/50 text-gray-700"}`,
|
|
22001
22001
|
"aria-label": "Notifications",
|
|
22002
22002
|
whileHover: isDrawerOpen ? {} : { scale: 1.05 },
|
|
22003
22003
|
whileTap: { scale: 0.95 },
|
|
@@ -22005,7 +22005,7 @@ function NotificationBell() {
|
|
|
22005
22005
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
22006
22006
|
lucideReact.Bell,
|
|
22007
22007
|
{
|
|
22008
|
-
className: `w-6 h-6 transition-colors duration-300 ${isDrawerOpen ? "text-
|
|
22008
|
+
className: `w-6 h-6 transition-colors duration-300 ${isDrawerOpen ? "text-hprimary-600 bg-gray-100 rounded-lg p-2 w-10 h-10 transition-all duration-300" : "group-hover:text-hprimary-600"}`,
|
|
22009
22009
|
strokeWidth: 2
|
|
22010
22010
|
}
|
|
22011
22011
|
),
|
|
@@ -22091,10 +22091,10 @@ function Header() {
|
|
|
22091
22091
|
Link9__default.default,
|
|
22092
22092
|
{
|
|
22093
22093
|
href: link.href,
|
|
22094
|
-
className: "text-gray-700 hover:text-
|
|
22094
|
+
className: "text-gray-700 hover:text-hprimary-600 font-medium transition-colors relative group",
|
|
22095
22095
|
children: [
|
|
22096
22096
|
link.label,
|
|
22097
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute bottom-0 left-0 w-0 h-0.5 bg-
|
|
22097
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute bottom-0 left-0 w-0 h-0.5 bg-hprimary-600 group-hover:w-full transition-all duration-300" })
|
|
22098
22098
|
]
|
|
22099
22099
|
},
|
|
22100
22100
|
link.href
|
|
@@ -22159,7 +22159,7 @@ function Header() {
|
|
|
22159
22159
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heart, { className: "w-6 h-6" }),
|
|
22160
22160
|
wishlistCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-1 bg-red-500 text-white text-xs font-bold rounded-full w-5 h-5 flex items-center justify-center", children: wishlistCount })
|
|
22161
22161
|
] }),
|
|
22162
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Link9__default.default, { href: buildPath("/cart"), className: "relative p-2 text-gray-700 hover:text-
|
|
22162
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Link9__default.default, { href: buildPath("/cart"), className: "relative p-2 text-gray-700 hover:text-hprimary-600 transition-colors", children: [
|
|
22163
22163
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShoppingCart, { className: "w-6 h-6" }),
|
|
22164
22164
|
cart?.cartBody?.items?.length && cart.cartBody?.items?.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-1 bg-red-500 text-white text-xs font-bold rounded-full w-5 h-5 flex items-center justify-center", children: cart.cartBody?.items?.length }) : null
|
|
22165
22165
|
] }),
|
|
@@ -22170,7 +22170,7 @@ function Header() {
|
|
|
22170
22170
|
onClick: () => setIsDropdownOpen(!isDropdownOpen),
|
|
22171
22171
|
className: "flex items-center gap-2 rounded-full border border-slate-200 bg-white px-3 py-2 hover:bg-slate-50 transition-colors",
|
|
22172
22172
|
children: [
|
|
22173
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-
|
|
22173
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-hprimary-100 text-xs font-semibold text-hprimary-700", children: getInitials(user?.firstname || "", user?.lastname || "") }),
|
|
22174
22174
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: `h-4 w-4 text-slate-400 transition-transform ${isDropdownOpen ? "rotate-180" : ""}` })
|
|
22175
22175
|
]
|
|
22176
22176
|
}
|
|
@@ -22185,7 +22185,7 @@ function Header() {
|
|
|
22185
22185
|
),
|
|
22186
22186
|
/* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsxs("div", { className: "p-2", children: [
|
|
22187
22187
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-3 py-2 border-b border-slate-200 mb-1", children: [
|
|
22188
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium text-
|
|
22188
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium text-hsecondary truncate", children: [
|
|
22189
22189
|
user?.firstname,
|
|
22190
22190
|
" ",
|
|
22191
22191
|
user?.lastname
|
|
@@ -22223,7 +22223,7 @@ function Header() {
|
|
|
22223
22223
|
Link9__default.default,
|
|
22224
22224
|
{
|
|
22225
22225
|
href: buildPath("/login"),
|
|
22226
|
-
className: "hidden sm:block px-4 py-2 bg-
|
|
22226
|
+
className: "hidden sm:block px-4 py-2 bg-hprimary-600 text-white rounded-lg hover:bg-hprimary-700 transition-colors font-medium",
|
|
22227
22227
|
children: "Sign In"
|
|
22228
22228
|
}
|
|
22229
22229
|
)
|
|
@@ -22260,7 +22260,7 @@ function Header() {
|
|
|
22260
22260
|
{
|
|
22261
22261
|
href: buildPath("/login"),
|
|
22262
22262
|
onClick: () => setIsMobileMenuOpen(false),
|
|
22263
|
-
className: "px-4 py-3 text-
|
|
22263
|
+
className: "px-4 py-3 text-hprimary-600 hover:bg-gray-50 rounded-lg font-medium",
|
|
22264
22264
|
children: "Sign In"
|
|
22265
22265
|
}
|
|
22266
22266
|
)
|
|
@@ -22304,7 +22304,7 @@ function Footer() {
|
|
|
22304
22304
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-gray-400 mb-6 max-w-md", children: "Your trusted online store for quality products. We deliver excellence with every order." }),
|
|
22305
22305
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
22306
22306
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
22307
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "w-5 h-5 text-
|
|
22307
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "w-5 h-5 text-hprimary-500" }),
|
|
22308
22308
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
22309
22309
|
"support@",
|
|
22310
22310
|
config.storeName.toLowerCase().replace(/\s+/g, ""),
|
|
@@ -22312,11 +22312,11 @@ function Footer() {
|
|
|
22312
22312
|
] })
|
|
22313
22313
|
] }),
|
|
22314
22314
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
22315
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "w-5 h-5 text-
|
|
22315
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "w-5 h-5 text-hprimary-500" }),
|
|
22316
22316
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "+1 (555) 123-4567" })
|
|
22317
22317
|
] }),
|
|
22318
22318
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
22319
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "w-5 h-5 text-
|
|
22319
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { className: "w-5 h-5 text-hprimary-500" }),
|
|
22320
22320
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "123 Store Street, City, Country" })
|
|
22321
22321
|
] })
|
|
22322
22322
|
] })
|
|
@@ -22327,7 +22327,7 @@ function Footer() {
|
|
|
22327
22327
|
Link9__default.default,
|
|
22328
22328
|
{
|
|
22329
22329
|
href: link.href,
|
|
22330
|
-
className: "hover:text-
|
|
22330
|
+
className: "hover:text-hprimary-500 transition-colors",
|
|
22331
22331
|
children: link.label
|
|
22332
22332
|
}
|
|
22333
22333
|
) }, link.href)) })
|
|
@@ -22338,7 +22338,7 @@ function Footer() {
|
|
|
22338
22338
|
Link9__default.default,
|
|
22339
22339
|
{
|
|
22340
22340
|
href: link.href,
|
|
22341
|
-
className: "hover:text-
|
|
22341
|
+
className: "hover:text-hprimary-500 transition-colors",
|
|
22342
22342
|
children: link.label
|
|
22343
22343
|
}
|
|
22344
22344
|
) }, link.href)) })
|
|
@@ -22349,7 +22349,7 @@ function Footer() {
|
|
|
22349
22349
|
Link9__default.default,
|
|
22350
22350
|
{
|
|
22351
22351
|
href: link.href,
|
|
22352
|
-
className: "hover:text-
|
|
22352
|
+
className: "hover:text-hprimary-500 transition-colors",
|
|
22353
22353
|
children: link.label
|
|
22354
22354
|
}
|
|
22355
22355
|
) }, link.href)) })
|
|
@@ -22368,7 +22368,7 @@ function Footer() {
|
|
|
22368
22368
|
"a",
|
|
22369
22369
|
{
|
|
22370
22370
|
href: "#",
|
|
22371
|
-
className: "w-10 h-10 bg-gray-800 hover:bg-
|
|
22371
|
+
className: "w-10 h-10 bg-gray-800 hover:bg-hprimary-600 rounded-full flex items-center justify-center transition-colors",
|
|
22372
22372
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Facebook, { className: "w-5 h-5" })
|
|
22373
22373
|
}
|
|
22374
22374
|
),
|
|
@@ -22376,7 +22376,7 @@ function Footer() {
|
|
|
22376
22376
|
"a",
|
|
22377
22377
|
{
|
|
22378
22378
|
href: "#",
|
|
22379
|
-
className: "w-10 h-10 bg-gray-800 hover:bg-
|
|
22379
|
+
className: "w-10 h-10 bg-gray-800 hover:bg-hprimary-600 rounded-full flex items-center justify-center transition-colors",
|
|
22380
22380
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Twitter, { className: "w-5 h-5" })
|
|
22381
22381
|
}
|
|
22382
22382
|
),
|
|
@@ -22384,7 +22384,7 @@ function Footer() {
|
|
|
22384
22384
|
"a",
|
|
22385
22385
|
{
|
|
22386
22386
|
href: "#",
|
|
22387
|
-
className: "w-10 h-10 bg-gray-800 hover:bg-
|
|
22387
|
+
className: "w-10 h-10 bg-gray-800 hover:bg-hprimary-600 rounded-full flex items-center justify-center transition-colors",
|
|
22388
22388
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Instagram, { className: "w-5 h-5" })
|
|
22389
22389
|
}
|
|
22390
22390
|
)
|
|
@@ -22517,7 +22517,7 @@ function NotificationDrawer() {
|
|
|
22517
22517
|
},
|
|
22518
22518
|
notification._id
|
|
22519
22519
|
)),
|
|
22520
|
-
isLoading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center py-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-6 h-6 border-2 border-
|
|
22520
|
+
isLoading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center py-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-6 h-6 border-2 border-hprimary-600 border-t-transparent rounded-full animate-spin" }) }),
|
|
22521
22521
|
!hasMore && notifications.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center py-4 text-sm text-gray-500", children: "You're all caught up! \u{1F389}" })
|
|
22522
22522
|
] })
|
|
22523
22523
|
}
|