hey-pharmacist-ecommerce 1.1.17 → 1.1.18

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 CHANGED
@@ -7301,7 +7301,11 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
7301
7301
  };
7302
7302
  const selectedVariant = product.productVariants[selectedVariantIndex];
7303
7303
  selectedVariant.productMedia[selectedSizeIndex];
7304
- const displayPrice = product.finalPrice;
7304
+ const displayPrice = selectedVariant.finalPrice;
7305
+ const displayOriginalPrice = selectedVariant.retailPrice;
7306
+ const isDiscounted = selectedVariant.isDiscounted;
7307
+ const discountAmount = selectedVariant.discountAmount;
7308
+ const displayName = selectedVariant.name || product.name;
7305
7309
  const handleAddToCart = async () => {
7306
7310
  if (!product || !selectedVariant) return;
7307
7311
  setIsAddingToCart(true);
@@ -7338,7 +7342,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
7338
7342
  className: "bg-white rounded-[32px] max-w-5xl w-full max-h-[90vh] overflow-y-auto",
7339
7343
  onClick: (e) => e.stopPropagation()
7340
7344
  },
7341
- /* @__PURE__ */ React.createElement("div", { className: "p-8" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-start justify-between mb-6" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("p", { className: "font-['Poppins',sans-serif] text-[11px] text-primary uppercase tracking-wide font-medium mb-2" }, product.brand, " \u2022 ", product.parentCategories[0].name), /* @__PURE__ */ React.createElement("h2", { className: "font-['Poppins',sans-serif] font-semibold text-secondary tracking-[-1px]" }, product.name), /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 mt-2" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-0.5" }, [...Array(5)].map((_, i) => /* @__PURE__ */ React.createElement(
7345
+ /* @__PURE__ */ React.createElement("div", { className: "p-8" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-start justify-between mb-6" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("p", { className: "font-['Poppins',sans-serif] text-[11px] text-primary uppercase tracking-wide font-medium mb-2" }, product.brand, " \u2022 ", product.parentCategories[0].name), /* @__PURE__ */ React.createElement("h2", { className: "font-['Poppins',sans-serif] font-semibold text-secondary tracking-[-1px]" }, displayName), /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 mt-2" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-0.5" }, [...Array(5)].map((_, i) => /* @__PURE__ */ React.createElement(
7342
7346
  lucideReact.Star,
7343
7347
  {
7344
7348
  key: i,
@@ -7358,7 +7362,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
7358
7362
  alt: product.name,
7359
7363
  className: "w-full h-full object-cover"
7360
7364
  }
7361
- ), /* @__PURE__ */ React.createElement("div", { className: "absolute top-4 left-4 flex flex-col gap-2" }, product.finalPrice && /* @__PURE__ */ React.createElement("div", { className: "bg-accent text-white rounded-full px-3 py-1.5" }, /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[11px] uppercase" }, "-", product.discountAmount, "%")))), selectedVariant.productMedia.length > 1 && /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-4 gap-3" }, selectedVariant.productMedia.map((image, index) => /* @__PURE__ */ React.createElement(
7365
+ ), /* @__PURE__ */ React.createElement("div", { className: "absolute top-4 left-4 flex flex-col gap-2" }, isDiscounted && /* @__PURE__ */ React.createElement("div", { className: "bg-accent text-white rounded-full px-3 py-1.5" }, /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[11px] uppercase" }, "-", discountAmount, "%")))), selectedVariant.productMedia.length > 1 && /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-4 gap-3" }, selectedVariant.productMedia.map((image, index) => /* @__PURE__ */ React.createElement(
7362
7366
  "div",
7363
7367
  {
7364
7368
  key: index,
@@ -7373,7 +7377,7 @@ function QuickViewModal({ product, onClose, onNavigateToProduct }) {
7373
7377
  className: "w-full h-full object-cover"
7374
7378
  }
7375
7379
  )
7376
- )))), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-3 mb-4" }, /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[32px] text-accent" }, "$", displayPrice.toFixed(2)), product.isDiscounted && /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] text-[20px] text-muted line-through" }, "$", product.finalPrice.toFixed(2))), /* @__PURE__ */ React.createElement("div", { className: "mb-6" }, selectedVariant.inventoryCount === 0 ? /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] text-[12px] text-red-500 font-medium" }, "Out of Stock") : selectedVariant.inventoryCount <= 10 ? /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] text-[12px] text-orange-500 font-medium flex items-center gap-1" }, /* @__PURE__ */ React.createElement(lucideReact.Package, { className: "size-3" }), "Only ", selectedVariant.inventoryCount, " left in stock") : /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] text-[12px] text-green-600 font-medium flex items-center gap-1" }, /* @__PURE__ */ React.createElement(lucideReact.Package, { className: "size-3" }), "In Stock")), /* @__PURE__ */ React.createElement("p", { className: "font-['Poppins',sans-serif] text-[14px] text-muted leading-[1.7] mb-6" }, /* @__PURE__ */ React.createElement("div", { dangerouslySetInnerHTML: { __html: product.description } })), /* @__PURE__ */ React.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React.createElement("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-secondary mb-3" }, "Selected Variant: ", /* @__PURE__ */ React.createElement("span", { className: "font-normal text-muted" }, product.productVariants[selectedVariantIndex].name)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap gap-3" }, product.productVariants.map((variant, index) => /* @__PURE__ */ React.createElement(
7380
+ )))), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-3 mb-4" }, /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[32px] text-accent" }, "$", displayPrice.toFixed(2)), isDiscounted && /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] text-[20px] text-muted line-through" }, "$", displayOriginalPrice.toFixed(2))), /* @__PURE__ */ React.createElement("div", { className: "mb-6" }, selectedVariant.inventoryCount === 0 ? /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] text-[12px] text-red-500 font-medium" }, "Out of Stock") : selectedVariant.inventoryCount <= 10 ? /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] text-[12px] text-primary font-medium flex items-center gap-1" }, /* @__PURE__ */ React.createElement(lucideReact.Package, { className: "size-3" }), "Only ", selectedVariant.inventoryCount, " left in stock") : /* @__PURE__ */ React.createElement("span", { className: "font-['Poppins',sans-serif] text-[12px] text-green-600 font-medium flex items-center gap-1" }, /* @__PURE__ */ React.createElement(lucideReact.Package, { className: "size-3" }), "In Stock")), /* @__PURE__ */ React.createElement("p", { className: "font-['Poppins',sans-serif] text-[14px] text-muted leading-[1.7] mb-6" }, /* @__PURE__ */ React.createElement("div", { dangerouslySetInnerHTML: { __html: product.description } })), /* @__PURE__ */ React.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React.createElement("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-secondary mb-3" }, "Selected Variant: ", /* @__PURE__ */ React.createElement("span", { className: "font-normal text-muted" }, product.productVariants[selectedVariantIndex].name)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap gap-3" }, product.productVariants.map((variant, index) => /* @__PURE__ */ React.createElement(
7377
7381
  "button",
7378
7382
  {
7379
7383
  key: variant.id,
@@ -7506,6 +7510,21 @@ function ProductCard({
7506
7510
  const displayName = React21.useMemo(() => {
7507
7511
  return selectedVariant?.name || product.name;
7508
7512
  }, [selectedVariant, product.name]);
7513
+ const displayFinalPrice = React21.useMemo(() => {
7514
+ return selectedVariant?.finalPrice ?? product.finalPrice;
7515
+ }, [selectedVariant, product.finalPrice]);
7516
+ const displayPriceBeforeDiscount = React21.useMemo(() => {
7517
+ return selectedVariant?.retailPrice ?? product.priceBeforeDiscount;
7518
+ }, [selectedVariant, product.priceBeforeDiscount]);
7519
+ const displayIsDiscounted = React21.useMemo(() => {
7520
+ return selectedVariant ? selectedVariant.isDiscounted : product.isDiscounted;
7521
+ }, [selectedVariant, product.isDiscounted]);
7522
+ const displayDiscountAmount = React21.useMemo(() => {
7523
+ return selectedVariant ? selectedVariant.discountAmount : product.discountAmount;
7524
+ }, [selectedVariant, product.discountAmount]);
7525
+ const displayInventoryCount = React21.useMemo(() => {
7526
+ return selectedVariant ? selectedVariant.inventoryCount : product.inventoryCount;
7527
+ }, [selectedVariant, product.inventoryCount]);
7509
7528
  const imageSource = React21.useMemo(() => {
7510
7529
  const src = selectedVariantImage || product.productMedia?.[0]?.file || "/placeholder-product.jpg";
7511
7530
  return {
@@ -7560,15 +7579,15 @@ function ProductCard({
7560
7579
  },
7561
7580
  /* @__PURE__ */ React21__default.default.createElement(lucideReact.Eye, { className: "size-4 text-[#2B4B7C]" })
7562
7581
  ),
7563
- product.inventoryCount === 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "absolute inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "bg-white rounded-full px-4 py-2" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[11px] text-[#2B4B7C] uppercase" }, "Out of Stock")))
7582
+ displayInventoryCount === 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "absolute inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "bg-white rounded-full px-4 py-2" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[11px] text-[#2B4B7C] uppercase" }, "Out of Stock")))
7564
7583
  ),
7565
- /* @__PURE__ */ React21__default.default.createElement("div", { className: "p-4 flex-1 flex flex-col" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "p-0 flex-1 flex flex-col" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1 mb-2 flex-wrap" }, product.isDiscounted && /* @__PURE__ */ React21__default.default.createElement("span", { className: "bg-[#E67E50] text-white rounded-full px-2 py-0.5 flex items-center gap-1" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[8px] uppercase" }, "-", product.discountAmount, "%"))), /* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-1" }, /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-['Poppins',sans-serif] text-xs text-[#5B9BD5] uppercase tracking-wide font-medium" }, product.brand)), /* @__PURE__ */ React21__default.default.createElement("h3", { className: "text-sm font-['Poppins',sans-serif] font-semibold text-[#2B4B7C] mb-3" }, displayName), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1.5 mb-2" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-0.5" }, [...Array(5)].map((_, i) => /* @__PURE__ */ React21__default.default.createElement(
7584
+ /* @__PURE__ */ React21__default.default.createElement("div", { className: "p-4 flex-1 flex flex-col" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "p-0 flex-1 flex flex-col" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1 mb-2 flex-wrap" }, displayIsDiscounted && /* @__PURE__ */ React21__default.default.createElement("span", { className: "bg-[#E67E50] text-white rounded-full px-2 py-0.5 flex items-center gap-1" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[8px] uppercase" }, "-", displayDiscountAmount, "%"))), /* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-1" }, /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-['Poppins',sans-serif] text-xs text-[#5B9BD5] uppercase tracking-wide font-medium" }, product.brand)), /* @__PURE__ */ React21__default.default.createElement("h3", { className: "text-sm font-['Poppins',sans-serif] font-semibold text-[#2B4B7C] mb-3" }, displayName), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1.5 mb-2" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-0.5" }, [...Array(5)].map((_, i) => /* @__PURE__ */ React21__default.default.createElement(
7566
7585
  lucideReact.Star,
7567
7586
  {
7568
7587
  key: i,
7569
7588
  className: `size-4 ${i < Math.floor(product.rating ? product.rating : 0) ? "text-[#E67E50] fill-[#E67E50]" : "text-gray-300"}`
7570
7589
  }
7571
- ))), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[10px] text-[#676c80]" }, "(", product.reviews?.length || 0, ")")), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1.5 mb-3" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-md text-primary-600" }, "$", product.finalPrice.toFixed(2)), product.isDiscounted && /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-sm text-[#676c80] line-through" }, "$", formatPrice(product.priceBeforeDiscount))), variantImages.length > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1.5 mb-3" }, variantImages.map((variant, index) => /* @__PURE__ */ React21__default.default.createElement(
7590
+ ))), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[10px] text-[#676c80]" }, "(", product.reviews?.length || 0, ")")), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1.5 mb-3" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-md text-primary-600" }, "$", displayFinalPrice.toFixed(2)), displayIsDiscounted && /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-sm text-[#676c80] line-through" }, "$", formatPrice(displayPriceBeforeDiscount))), variantImages.length > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1.5 mb-3" }, variantImages.map((variant, index) => /* @__PURE__ */ React21__default.default.createElement(
7572
7591
  "button",
7573
7592
  {
7574
7593
  key: variant.variantId || index,
@@ -7620,11 +7639,11 @@ function ProductCard({
7620
7639
  console.error("Failed to add to cart", error);
7621
7640
  }
7622
7641
  },
7623
- disabled: isAddingToCart || variantImages.length > 0 && !selectedVariantId,
7642
+ disabled: isAddingToCart || variantImages.length > 0 && !selectedVariantId || displayInventoryCount === 0,
7624
7643
  className: "w-full font-['Poppins',sans-serif] font-medium text-[11px] px-3 py-2 rounded-full bg-[#5B9BD5] text-white hover:bg-[#4a8ac4] hover:shadow-lg transition-all duration-300 flex items-center justify-center gap-1.5 disabled:opacity-50 disabled:cursor-not-allowed"
7625
7644
  },
7626
7645
  /* @__PURE__ */ React21__default.default.createElement(lucideReact.ShoppingCart, { className: "h-4 w-4" }),
7627
- selectedVariant?.inventoryCount === 0 ? "Out of Stock" : "Add to Cart"
7646
+ displayInventoryCount === 0 ? "Out of Stock" : "Add to Cart"
7628
7647
  ))
7629
7648
  ), showQuickView && /* @__PURE__ */ React21__default.default.createElement(
7630
7649
  QuickViewModal,
@@ -8469,7 +8488,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8469
8488
  animate: { opacity: 1, y: 0 },
8470
8489
  className: "max-w-4xl mx-auto space-y-6 text-center"
8471
8490
  },
8472
- /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-center gap-2 mb-4" }, /* @__PURE__ */ React21__default.default.createElement(lucideReact.Star, { className: "h-5 w-5 text-orange-500 fill-orange-500" }), /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-sm font-semibold uppercase tracking-wider text-orange-500" }, "COMPLETE PHARMACY SHOP")),
8491
+ /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-center gap-2 mb-4" }, /* @__PURE__ */ React21__default.default.createElement(lucideReact.Star, { className: "h-5 w-5 text-primary fill-primary" }), /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-sm font-semibold uppercase tracking-wider text-primary" }, "COMPLETE PHARMACY SHOP")),
8473
8492
  /* @__PURE__ */ React21__default.default.createElement("h1", { className: "text-3xl md:text-4xl font-bold text-slate-900 leading-tight" }, "Medical Supplies & Wellness Products"),
8474
8493
  /* @__PURE__ */ React21__default.default.createElement("p", { className: "text-base md:text-lg text-slate-600 max-w-2xl mx-auto" }, "From professional scrubs to vitamins, medicines to personal care - everything you need for health and wellness."),
8475
8494
  /* @__PURE__ */ React21__default.default.createElement(
@@ -8726,6 +8745,7 @@ function ProductDetailScreen({ productId }) {
8726
8745
  const variantImages = getVariantImages();
8727
8746
  const variantPrice = selectedVariant?.finalPrice || currentVariant?.finalPrice || product?.price || 0;
8728
8747
  const variantComparePrice = selectedVariant?.retailPrice || (currentVariant && "retailPrice" in currentVariant ? currentVariant.retailPrice : null) || product?.compareAtPrice;
8748
+ const discount = variantComparePrice && variantPrice && variantComparePrice > variantPrice ? Math.round((variantComparePrice - variantPrice) / variantComparePrice * 100) : 0;
8729
8749
  const lastUpdatedLabel = safeFormatDate(
8730
8750
  currentVariant && "updatedAt" in currentVariant && currentVariant.updatedAt ? currentVariant.updatedAt : product?.updatedAt
8731
8751
  );
@@ -8870,7 +8890,7 @@ function ProductDetailScreen({ productId }) {
8870
8890
  className: "object-contain"
8871
8891
  }
8872
8892
  ) : null,
8873
- /* @__PURE__ */ React21__default.default.createElement("div", { className: "absolute top-6 left-6 flex flex-col gap-3" }, product.salePrice && /* @__PURE__ */ React21__default.default.createElement("div", { className: "bg-[#E67E50] text-white rounded-full px-4 py-2" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[12px] uppercase tracking-wide" }, "Save ", product.discount, "%")))
8893
+ /* @__PURE__ */ React21__default.default.createElement("div", { className: "absolute top-6 left-6 flex flex-col gap-3" }, discount > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "bg-[#E67E50] text-white rounded-full px-4 py-2" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[12px] uppercase tracking-wide" }, "Save ", discount, "%")))
8874
8894
  ), variantImages.length > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "grid grid-cols-8 gap-2" }, variantImages.map((image, index) => /* @__PURE__ */ React21__default.default.createElement(
8875
8895
  "button",
8876
8896
  {
@@ -8890,13 +8910,13 @@ function ProductDetailScreen({ productId }) {
8890
8910
  unoptimized: true
8891
8911
  }
8892
8912
  )
8893
- )))))), /* @__PURE__ */ React21__default.default.createElement("aside", { className: "space-y-6 lg:sticky lg:top-24" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-4" }, /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-['Poppins',sans-serif] text-[12px] text-primary uppercase tracking-wide font-medium mb-2" }, product.brand, " \u2022 ", product.parentCategories?.[0].name), /* @__PURE__ */ React21__default.default.createElement("h1", { className: "text-3xl font-['Poppins',sans-serif] font-semibold text-secondary tracking-[-1.5px] mb-3" }, product.name), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1" }, [...Array(5)].map((_, i) => /* @__PURE__ */ React21__default.default.createElement(
8913
+ )))))), /* @__PURE__ */ React21__default.default.createElement("aside", { className: "space-y-6 lg:sticky lg:top-24" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-4" }, /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-['Poppins',sans-serif] text-[12px] text-primary uppercase tracking-wide font-medium mb-2" }, product.brand, " \u2022 ", product.parentCategories?.[0].name), /* @__PURE__ */ React21__default.default.createElement("h1", { className: "text-3xl font-['Poppins',sans-serif] font-semibold text-secondary tracking-[-1.5px] mb-3" }, selectedVariant?.name || product.name), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-1" }, [...Array(5)].map((_, i) => /* @__PURE__ */ React21__default.default.createElement(
8894
8914
  lucideReact.Star,
8895
8915
  {
8896
8916
  key: i,
8897
8917
  className: `size-4 ${i < Math.floor(product.rating) ? "text-[#E67E50] fill-[#E67E50]" : "text-gray-300"}`
8898
8918
  }
8899
- ))), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[14px] text-muted" }, product.rating, " (", product.reviewCount ? product.reviewCount : 0, " reviews)")), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-3 mb-6 pb-6 border-b-2 border-gray-100" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[40px] text-[#E67E50]" }, selectedVariant ? formatPrice(selectedVariant.finalPrice) : formatPrice(product.finalPrice || product.price || 0)), variantComparePrice && variantComparePrice > variantPrice && /* @__PURE__ */ React21__default.default.createElement(React21__default.default.Fragment, null, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[24px] text-muted line-through" }, "$", product.price.toFixed(2)), /* @__PURE__ */ React21__default.default.createElement("div", { className: "px-3 py-1 rounded-full bg-[#E67E50]/10" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-[#E67E50]" }, "Save $", formatPrice(variantComparePrice))))), selectedVariant && /* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-2 mb-2" }, selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ || selectedVariant.inventoryStatus === "LOW_STOCK" /* LOWSTOCK */ ? /* @__PURE__ */ React21__default.default.createElement(React21__default.default.Fragment, null, /* @__PURE__ */ React21__default.default.createElement("div", { className: "size-3 rounded-full bg-red-500" }), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[13px] text-red-600 font-medium" }, "Out of Stock")) : selectedVariant.inventoryCount <= 10 ? /* @__PURE__ */ React21__default.default.createElement(React21__default.default.Fragment, null, /* @__PURE__ */ React21__default.default.createElement("div", { className: "size-3 rounded-full bg-orange-500 animate-pulse" }), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[13px] text-orange-600 font-medium" }, "Only ", selectedVariant.inventoryCount, " left in stock - Order soon!")) : /* @__PURE__ */ React21__default.default.createElement(React21__default.default.Fragment, null, /* @__PURE__ */ React21__default.default.createElement("div", { className: "size-3 rounded-full bg-green-500" }), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[13px] text-green-600 font-medium" }, "In Stock"))), /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-['Poppins',sans-serif] text-[12px] text-muted" }, "SKU: ", selectedVariant?.sku)), product.description && /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-['Poppins',sans-serif] text-[14px] text-muted leading-[1.7] mb-8" }, /* @__PURE__ */ React21__default.default.createElement("div", { dangerouslySetInnerHTML: { __html: product.description } })), product?.productVariants && product.productVariants.length > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React21__default.default.createElement("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-secondary mb-3" }, "Select Variant"), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex flex-wrap gap-3" }, product.productVariants.map((variant) => {
8919
+ ))), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[14px] text-muted" }, product.rating, " (", product.reviewCount ? product.reviewCount : 0, " reviews)")), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-3 mb-6 pb-6 border-b-2 border-gray-100" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-bold text-[40px] text-[#E67E50]" }, "$", variantPrice.toFixed(2)), variantComparePrice && variantComparePrice > variantPrice && /* @__PURE__ */ React21__default.default.createElement(React21__default.default.Fragment, null, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[24px] text-muted line-through" }, "$", variantComparePrice.toFixed(2)), /* @__PURE__ */ React21__default.default.createElement("div", { className: "px-3 py-1 rounded-full bg-[#E67E50]/10" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-semibold text-[13px] text-[#E67E50]" }, "Save $", formatPrice(variantComparePrice - variantPrice))))), selectedVariant && /* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-2 mb-2" }, selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ || selectedVariant.inventoryStatus === "LOW_STOCK" /* LOWSTOCK */ ? /* @__PURE__ */ React21__default.default.createElement(React21__default.default.Fragment, null, /* @__PURE__ */ React21__default.default.createElement("div", { className: "size-3 rounded-full bg-red-500" }), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[13px] text-red-600 font-medium" }, "Out of Stock")) : selectedVariant.inventoryCount <= 10 ? /* @__PURE__ */ React21__default.default.createElement(React21__default.default.Fragment, null, /* @__PURE__ */ React21__default.default.createElement("div", { className: "size-3 rounded-full bg-primary animate-pulse" }), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[13px] text-primary font-medium" }, "Only ", selectedVariant.inventoryCount, " left in stock - Order soon!")) : /* @__PURE__ */ React21__default.default.createElement(React21__default.default.Fragment, null, /* @__PURE__ */ React21__default.default.createElement("div", { className: "size-3 rounded-full bg-green-500" }), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[13px] text-green-600 font-medium" }, "In Stock"))), /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-['Poppins',sans-serif] text-[12px] text-muted" }, "SKU: ", selectedVariant?.sku)), product.description && /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-['Poppins',sans-serif] text-[14px] text-muted leading-[1.7] mb-8" }, /* @__PURE__ */ React21__default.default.createElement("div", { dangerouslySetInnerHTML: { __html: product.description } })), product?.productVariants && product.productVariants.length > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React21__default.default.createElement("h3", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-secondary mb-3" }, "Select Variant"), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex flex-wrap gap-3" }, product.productVariants.map((variant) => {
8900
8920
  const isSelected = selectedVariant?.id === variant.id;
8901
8921
  const variantImage = variant.productMedia?.[0]?.file || product.productMedia?.[0]?.file || product.images?.[0] || "/placeholder-product.jpg";
8902
8922
  return /* @__PURE__ */ React21__default.default.createElement(
@@ -9104,7 +9124,7 @@ function CartScreen() {
9104
9124
  transition: { delay: 0.1 },
9105
9125
  className: "space-y-6 lg:sticky lg:top-24 h-fit lg:col-span-1"
9106
9126
  },
9107
- /* @__PURE__ */ React21__default.default.createElement("div", { className: "bg-gradient-to-br from-[#5B9BD5]/10 to-[#2B4B7C]/10 rounded-[24px] p-8 border-2 border-[#5B9BD5]/20 sticky top-24" }, /* @__PURE__ */ React21__default.default.createElement("h2", { className: "font-['Poppins',sans-serif] font-semibold text-secondary mb-6" }, "Order Summary"), /* @__PURE__ */ React21__default.default.createElement("div", { className: "space-y-4 mb-6" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[14px] text-muted" }, "Subtotal (", itemCount, " ", itemCount === 1 ? "item" : "items", ")"), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-secondary" }, formatPrice(subtotal))), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-between text-sm" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-gray-600" }, "Shipping"), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-semibold text-green-600" }, "Will be calculated at checkout")), /* @__PURE__ */ React21__default.default.createElement("div", { className: "border-t border-gray-200 pt-4 mt-4" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-lg font-bold text-secondary" }, "Total"), /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-2xl font-bold text-orange-600" }, formatPrice(total))))), /* @__PURE__ */ React21__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React21__default.default.createElement(
9127
+ /* @__PURE__ */ React21__default.default.createElement("div", { className: "bg-gradient-to-br from-[#5B9BD5]/10 to-[#2B4B7C]/10 rounded-[24px] p-8 border-2 border-[#5B9BD5]/20 sticky top-24" }, /* @__PURE__ */ React21__default.default.createElement("h2", { className: "font-['Poppins',sans-serif] font-semibold text-secondary mb-6" }, "Order Summary"), /* @__PURE__ */ React21__default.default.createElement("div", { className: "space-y-4 mb-6" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] text-[14px] text-muted" }, "Subtotal (", itemCount, " ", itemCount === 1 ? "item" : "items", ")"), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-['Poppins',sans-serif] font-semibold text-[14px] text-secondary" }, formatPrice(subtotal))), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-between text-sm" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-gray-600" }, "Shipping"), /* @__PURE__ */ React21__default.default.createElement("span", { className: "font-semibold text-green-600" }, "Will be calculated at checkout")), /* @__PURE__ */ React21__default.default.createElement("div", { className: "border-t border-gray-200 pt-4 mt-4" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-lg font-bold text-secondary" }, "Total"), /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-2xl font-bold text-primary" }, formatPrice(total))))), /* @__PURE__ */ React21__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React21__default.default.createElement(
9108
9128
  "button",
9109
9129
  {
9110
9130
  type: "submit",
@@ -9856,7 +9876,7 @@ function CheckoutScreen() {
9856
9876
  width: 48,
9857
9877
  height: 48
9858
9878
  }
9859
- )), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-2 mb-2" }, /* @__PURE__ */ React21__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, rate.provider, " ", rate.servicelevel?.name), isTest && /* @__PURE__ */ React21__default.default.createElement("span", { className: "px-2 py-1 text-xs font-medium bg-orange-100 text-orange-800 rounded-full" }, "TEST")), hasAttributes && /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex flex-wrap gap-2 mb-3" }, rate.attributes.map((attr) => /* @__PURE__ */ React21__default.default.createElement(
9879
+ )), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-2 mb-2" }, /* @__PURE__ */ React21__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, rate.provider, " ", rate.servicelevel?.name), isTest && /* @__PURE__ */ React21__default.default.createElement("span", { className: "px-2 py-1 text-xs font-medium bg-primary-100 text-primary-800 rounded-full" }, "TEST")), hasAttributes && /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex flex-wrap gap-2 mb-3" }, rate.attributes.map((attr) => /* @__PURE__ */ React21__default.default.createElement(
9860
9880
  "span",
9861
9881
  {
9862
9882
  key: attr,