import { o as __toESM } from "../_runtime.mjs";
import { h as require_react, m as require_jsx_runtime } from "../_libs/react+tanstack__react-query.mjs";
import { i as Truck, l as ShoppingCart, n as X, t as Zap } from "../_libs/lucide-react.mjs";
import { a as p, l as Quantifier, n as BottomDialog, s as MyTouchableOpacity, u as SearchBar } from "./src-u_N1opJl.mjs";
import { a as useUpdateCartItem, i as useRemoveFromCart, n as useAddToCart, r as useGetCart } from "./cart-query-hooks-Bz8ID9jY.mjs";
import { a as useStores, n as useBanners, r as useSlots, t as useAllProducts } from "./prominent-api-hooks-CNVDntUD.mjs";
import { l as useNavigate } from "../_libs/@tanstack/react-router+[...].mjs";
import { t as create } from "../_libs/zustand.mjs";
import { t as require_dayjs_min } from "../_libs/dayjs.mjs";
//#region node_modules/.nitro/vite/services/ssr/assets/home-BxXKVXbQ.js
var import_react = /* @__PURE__ */ __toESM(require_react());
var import_jsx_runtime = require_jsx_runtime();
var import_dayjs_min = /* @__PURE__ */ __toESM(require_dayjs_min());
var useCartStore = create((set) => ({
	addedToCartProduct: null,
	setAddedToCartProduct: (product) => set({ addedToCartProduct: product }),
	clearAddedToCartProduct: () => set({ addedToCartProduct: null })
}));
var formatTimeRange = (deliveryTime) => {
	const time = (0, import_dayjs_min.default)(deliveryTime);
	const endTime = time.add(1, "hour");
	const startPeriod = time.format("A");
	const endPeriod = endTime.format("A");
	if (startPeriod === endPeriod) return `${time.format("h")}-${endTime.format("h")} ${startPeriod}`;
	else return `${time.format("h:mm")} ${startPeriod} - ${endTime.format("h:mm")} ${endPeriod}`;
};
function AddToCartDialog() {
	const navigate = useNavigate();
	const { addedToCartProduct, clearAddedToCartProduct } = useCartStore();
	const [quantity, setQuantity] = (0, import_react.useState)(1);
	const [selectedSlotId, setSelectedSlotId] = (0, import_react.useState)(null);
	const [selectedFlashDelivery, setSelectedFlashDelivery] = (0, import_react.useState)(false);
	const { data: slotsData } = useSlots();
	const { data: cartData } = useGetCart();
	const isFlashDeliveryEnabled = true;
	const addToCart = useAddToCart("regular");
	const updateItem = useUpdateCartItem("regular");
	const removeItem = useRemoveFromCart("regular");
	const isOpen = !!addedToCartProduct;
	const product = addedToCartProduct?.product;
	(0, import_react.useEffect)(() => {
		if (isOpen && product) {
			const cartItem = cartData?.items?.find((item) => item.productId === product.id);
			const cartQuantity = cartItem?.quantity || 0;
			setQuantity(cartQuantity === 0 ? 1 : cartQuantity);
			setSelectedSlotId(cartItem?.slotId || null);
		}
	}, [
		isOpen,
		cartData,
		product
	]);
	const { slotMap, productSlotIdsMap } = (0, import_react.useMemo)(() => {
		const slotMap = {};
		const productSlotIdsMap = {};
		if (slotsData?.slots) slotsData.slots.forEach((slot) => {
			slotMap[slot.id] = slot;
			slot.products?.forEach((p) => {
				if (!productSlotIdsMap[p.id]) productSlotIdsMap[p.id] = [];
				productSlotIdsMap[p.id].push(slot.id);
			});
		});
		return {
			slotMap,
			productSlotIdsMap
		};
	}, [slotsData]);
	const availableSlotIds = productSlotIdsMap[product?.id] || [];
	const availableSlots = availableSlotIds.map((slotId) => slotMap[slotId]).filter(Boolean).filter((slot) => (0, import_dayjs_min.default)(slot.deliveryTime).isAfter((0, import_dayjs_min.default)()));
	const cartItem = cartData?.items?.find((item) => item.productId === product?.id);
	const isUpdate = (cartItem?.quantity || 0) >= 1;
	const showFlashOption = (slotsData?.productAvailability?.find((pa) => pa.id === product?.id))?.isFlashAvailable === true && isFlashDeliveryEnabled;
	const handleAddToCart = () => {
		if (selectedFlashDelivery) {
			navigate({ to: "/flash" });
			clearAddedToCartProduct();
			return;
		}
		if (isUpdate && cartItem) updateItem.mutate({
			productId: product.id,
			quantity,
			slotId: selectedSlotId,
			deliveryDate: selectedSlotId ? slotMap[selectedSlotId]?.deliveryTime : null
		}, { onSuccess: () => clearAddedToCartProduct() });
		else {
			const slotId = selectedSlotId ?? availableSlotIds[0] ?? 0;
			addToCart.mutate({
				productId: product.id,
				quantity,
				storeId: product.storeId || 1,
				slotId,
				deliveryDate: slotMap[slotId]?.deliveryTime || null
			}, { onSuccess: () => clearAddedToCartProduct() });
		}
	};
	const handleRemove = () => {
		if (cartItem) removeItem.mutate(product.id, { onSuccess: () => clearAddedToCartProduct() });
		else clearAddedToCartProduct();
	};
	if (!isOpen || !addedToCartProduct) return null;
	return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BottomDialog, {
		open: isOpen,
		onClose: clearAddedToCartProduct,
		children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
			className: "px-2",
			children: [
				/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
					className: "flex items-start gap-3 mb-4",
					children: [
						/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
							className: "flex h-10 w-10 items-center justify-center rounded-full bg-blue-50",
							children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Truck, { className: "h-5 w-5 text-blue-500" })
						}),
						/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
							className: "flex-1",
							children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
								weight: "bold",
								className: "text-lg",
								children: "Select Delivery Slot"
							}), product?.name && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(p, {
								className: "text-sm text-gray-500",
								children: [
									product.name,
									" (",
									product.productQuantity,
									product.unitNotation ? ` ${product.unitNotation}` : "",
									")"
								]
							})]
						}),
						/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
							onClick: clearAddedToCartProduct,
							className: "text-gray-400 hover:text-gray-600",
							children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(X, { className: "h-5 w-5" })
						})
					]
				}),
				/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
					className: "max-h-[40vh] space-y-3 overflow-y-auto mb-4",
					children: availableSlots.map((slot) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(MyTouchableOpacity, {
						onClick: () => {
							setSelectedSlotId(slot.id);
							setSelectedFlashDelivery(false);
						},
						className: `flex items-start gap-3 rounded-xl border bg-gray-50 p-4 ${selectedSlotId === slot.id ? "border-brand-500" : "border-gray-100"}`,
						children: [
							/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Truck, { className: "mt-0.5 h-5 w-5 shrink-0 text-blue-500" }),
							/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(p, {
								weight: "bold",
								className: "flex-1 text-sm",
								children: [(0, import_dayjs_min.default)(slot.deliveryTime).format("ddd, DD MMM • "), formatTimeRange(slot.deliveryTime)]
							}),
							selectedSlotId === slot.id ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
								className: "h-6 w-6 shrink-0 text-brand-500",
								fill: "currentColor",
								viewBox: "0 0 24 24",
								children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" })
							}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
								className: "h-6 w-6 shrink-0 text-gray-300",
								fill: "currentColor",
								viewBox: "0 0 24 24",
								children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" })
							})
						]
					}, slot.id))
				}),
				showFlashOption && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(MyTouchableOpacity, {
					onClick: () => {
						setSelectedFlashDelivery(true);
						setSelectedSlotId(null);
					},
					className: `flex items-center gap-3 rounded-xl border p-4 mb-4 ${selectedFlashDelivery ? "border-pink-500 bg-pink-50" : "border-pink-200 bg-pink-50"}`,
					children: [
						/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Zap, { className: "h-5 w-5 shrink-0 text-pink-500" }),
						/* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
							weight: "bold",
							className: "flex-1 text-sm",
							children: "1 hr Delivery"
						}),
						selectedFlashDelivery ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
							className: "h-6 w-6 shrink-0 text-pink-500",
							fill: "currentColor",
							viewBox: "0 0 24 24",
							children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" })
						}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
							className: "h-6 w-6 shrink-0 text-pink-300",
							fill: "currentColor",
							viewBox: "0 0 24 24",
							children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" })
						})
					]
				}),
				/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
					className: "mb-4",
					children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
						weight: "bold",
						className: "mb-2 text-sm",
						children: "Quantity"
					}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
						className: "flex items-center gap-3",
						children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Quantifier, {
							value: quantity,
							setValue: setQuantity,
							step: 1,
							unit: product?.unitNotation
						}), isUpdate && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MyTouchableOpacity, {
							onClick: handleRemove,
							className: "rounded-lg border border-red-200 bg-red-50 p-2",
							children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
								className: "h-5 w-5 text-red-500",
								fill: "none",
								stroke: "currentColor",
								viewBox: "0 0 24 24",
								children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
									strokeLinecap: "round",
									strokeLinejoin: "round",
									strokeWidth: 2,
									d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
								})
							})
						})]
					})]
				}),
				/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
					className: "flex gap-3 pb-4",
					children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", {
						onClick: handleAddToCart,
						disabled: !selectedSlotId && !selectedFlashDelivery || addToCart.isPending || updateItem.isPending,
						className: `flex flex-1 items-center justify-center gap-2 rounded-xl py-3 font-bold text-white transition-colors ${!selectedSlotId && !selectedFlashDelivery || addToCart.isPending || updateItem.isPending ? "bg-brand-500/50" : "bg-brand-500 hover:bg-brand-600"}`,
						children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShoppingCart, { className: "h-4 w-4" }), addToCart.isPending || updateItem.isPending ? isUpdate ? "Updating..." : "Adding..." : isUpdate ? "Update Item" : "Add to Cart"]
					}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
						onClick: clearAddedToCartProduct,
						className: "flex-1 rounded-xl bg-gray-100 py-3 font-bold text-gray-700 hover:bg-gray-200 transition-colors",
						children: "Cancel"
					})]
				})
			]
		})
	});
}
function HomePage() {
	const navigate = useNavigate();
	const { data: productsData } = useAllProducts();
	const { data: storesData } = useStores();
	const { data: bannersData } = useBanners();
	const { setAddedToCartProduct } = useCartStore();
	const stores = storesData?.stores || [];
	const banners = bannersData?.banners || [];
	const allProducts = productsData?.products || [];
	const handleAddToCart = (product) => {
		setAddedToCartProduct({
			productId: product.id,
			product
		});
	};
	return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
		className: "mx-auto min-h-screen max-w-7xl bg-white",
		children: [
			/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
				className: "sticky top-0 z-10 bg-white/95 backdrop-blur-sm px-4 md:px-6 lg:px-8 pt-4 pb-3 border-b border-gray-100",
				children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SearchBar, {
					placeholder: "Search products here...",
					onSearch: (q) => navigate({
						to: "/home/search",
						search: { q }
					})
				})
			}),
			/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
				className: "px-4 md:px-6 lg:px-8",
				children: [
					banners.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
						className: "mt-4 mb-8 overflow-hidden rounded-xl",
						children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BannerCarousel, { banners })
					}),
					/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
						className: "mb-8",
						children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
							className: "flex items-center justify-between mb-4",
							children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
								weight: "bold",
								className: "text-lg md:text-xl",
								children: "Our Stores"
							})
						}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
							className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-3 md:gap-4",
							children: stores.map((store) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StoreCard, {
								store,
								onClick: () => navigate({
									to: "/stores/$storeId",
									params: { storeId: String(store.id) }
								})
							}, store.id))
						})]
					}),
					/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
						className: "mb-24",
						children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
							className: "flex items-center justify-between mb-4",
							children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
								weight: "bold",
								className: "text-lg md:text-xl",
								children: "All Products"
							})
						}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
							className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-3 md:gap-4",
							children: allProducts.slice(0, 30).map((product) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProductCard, {
								product,
								onClick: () => navigate({
									to: "/home/product/$id",
									params: { id: String(product.id) }
								}),
								onAddToCart: () => handleAddToCart(product)
							}, product.id))
						})]
					})
				]
			}),
			/* @__PURE__ */ (0, import_jsx_runtime.jsx)(FloatingCartBar, { onClick: () => navigate({ to: "/cart" }) }),
			/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AddToCartDialog, {})
		]
	});
}
function BannerCarousel({ banners }) {
	const [index, setIndex] = (0, import_react.useState)(0);
	const images = banners.map((b) => b.imageUrl).filter(Boolean);
	(0, import_react.useEffect)(() => {
		if (images.length <= 1) return;
		const timer = setInterval(() => {
			setIndex((i) => (i + 1) % images.length);
		}, 4e3);
		return () => clearInterval(timer);
	}, [images.length]);
	if (images.length === 0) return null;
	return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
		className: "relative group",
		children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
			src: images[index],
			alt: "Banner",
			className: "h-36 sm:h-44 md:h-52 lg:h-64 w-full rounded-xl object-cover transition-all duration-500"
		}), images.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
			/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
				onClick: () => setIndex((i) => (i - 1 + images.length) % images.length),
				className: "absolute left-2 top-1/2 -translate-y-1/2 bg-black/30 hover:bg-black/50 text-white rounded-full p-1.5 opacity-0 group-hover:opacity-100 transition-opacity",
				children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
					className: "w-4 h-4",
					fill: "none",
					stroke: "currentColor",
					viewBox: "0 0 24 24",
					children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
						strokeLinecap: "round",
						strokeLinejoin: "round",
						strokeWidth: 2,
						d: "M15 19l-7-7 7-7"
					})
				})
			}),
			/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
				onClick: () => setIndex((i) => (i + 1) % images.length),
				className: "absolute right-2 top-1/2 -translate-y-1/2 bg-black/30 hover:bg-black/50 text-white rounded-full p-1.5 opacity-0 group-hover:opacity-100 transition-opacity",
				children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
					className: "w-4 h-4",
					fill: "none",
					stroke: "currentColor",
					viewBox: "0 0 24 24",
					children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
						strokeLinecap: "round",
						strokeLinejoin: "round",
						strokeWidth: 2,
						d: "M9 5l7 7-7 7"
					})
				})
			}),
			/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
				className: "absolute bottom-3 left-1/2 flex -translate-x-1/2 gap-1.5",
				children: images.map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
					onClick: () => setIndex(i),
					className: `h-2 rounded-full transition-all ${i === index ? "w-6 bg-white" : "w-2 bg-white/50"}`
				}, i))
			})
		] })]
	});
}
function StoreCard({ store, onClick }) {
	return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(MyTouchableOpacity, {
		onClick,
		className: "rounded-xl border border-gray-100 bg-white p-3 shadow-sm hover:shadow-md transition-shadow",
		children: [
			/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
				className: "mb-2 aspect-square w-full overflow-hidden rounded-lg bg-gray-100",
				children: store.signedImageUrl ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
					src: store.signedImageUrl,
					alt: store.name,
					className: "h-full w-full object-cover"
				}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
					className: "flex h-full items-center justify-center text-gray-400",
					children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
						className: "w-8 h-8",
						fill: "none",
						stroke: "currentColor",
						viewBox: "0 0 24 24",
						children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
							strokeLinecap: "round",
							strokeLinejoin: "round",
							strokeWidth: 1.5,
							d: "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"
						})
					})
				})
			}),
			/* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
				weight: "semibold",
				className: "text-sm truncate",
				children: store.name
			}),
			/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(p, {
				className: "text-xs text-gray-500",
				children: [store.productCount || 0, " products"]
			})
		]
	});
}
function ProductCard({ product, onClick, onAddToCart }) {
	const imageUrl = product.images?.[0];
	const hasDiscount = product.marketPrice != null && product.marketPrice > product.price;
	return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
		className: "rounded-xl border border-gray-100 bg-white p-3 shadow-sm hover:shadow-md transition-shadow",
		children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(MyTouchableOpacity, {
			onClick,
			children: [
				/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
					className: "mb-2 aspect-square w-full overflow-hidden rounded-lg bg-gray-100",
					children: imageUrl ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", {
						src: imageUrl,
						alt: product.name,
						className: "h-full w-full object-cover"
					}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
						className: "flex h-full items-center justify-center text-gray-300",
						children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
							className: "w-10 h-10",
							fill: "none",
							stroke: "currentColor",
							viewBox: "0 0 24 24",
							children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
								strokeLinecap: "round",
								strokeLinejoin: "round",
								strokeWidth: 1.5,
								d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
							})
						})
					})
				}),
				/* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
					weight: "semibold",
					className: "text-sm leading-tight line-clamp-2 mb-1",
					children: product.name
				}),
				/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
					className: "flex items-baseline gap-1.5",
					children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(p, {
						weight: "bold",
						className: "text-brand-600 text-sm md:text-base",
						children: ["₹", product.price]
					}), hasDiscount && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(p, {
						className: "text-xs text-gray-400 line-through",
						children: ["₹", product.marketPrice]
					})]
				}),
				/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(p, {
					className: "text-[11px] text-gray-400 mb-2",
					children: ["/", product.unit]
				}),
				product.nextDeliveryDate && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
					className: "mb-3 flex items-center gap-1 self-start rounded-lg bg-brand-50 px-2 py-1 border border-brand-100",
					children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Truck, { className: "h-3 w-3 text-brand-600" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
						className: "text-[10px] font-bold text-brand-700",
						children: (0, import_dayjs_min.default)(product.nextDeliveryDate).format("ddd, DD MMM • h:mm A")
					})]
				})
			]
		}), onAddToCart && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", {
			onClick: (e) => {
				e.stopPropagation();
				onAddToCart();
			},
			className: "flex w-full items-center justify-center gap-2 rounded-lg bg-brand-500 py-2 text-sm font-bold text-white hover:bg-brand-600 transition-colors",
			children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShoppingCart, { className: "h-4 w-4" }), "Add to Cart"]
		})]
	});
}
function FloatingCartBar({ onClick }) {
	const { data: cartData } = useGetCart("regular");
	const { data: productsData } = useAllProducts();
	const products = productsData?.products || [];
	const productsById = {};
	products.forEach((p) => {
		productsById[p.id] = p;
	});
	const cartItems = cartData?.items || [];
	const itemCount = cartItems.length;
	const totalCartValue = cartItems.reduce((sum, item) => {
		return sum + (productsById[item.productId]?.price ?? 0) * item.quantity;
	}, 0);
	const freeDeliveryThreshold = 149;
	const remainingForFreeDelivery = Math.max(0, freeDeliveryThreshold - totalCartValue);
	return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
		className: "fixed bottom-0 left-0 right-0 z-20 bg-brand-600 px-4 py-2 md:px-6 md:py-3 shadow-lg",
		children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
			className: "mx-auto flex max-w-7xl items-center justify-between",
			children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
				className: "flex-1",
				children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
					className: "flex items-center gap-2",
					children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(p, {
						weight: "bold",
						className: "text-sm text-white",
						children: ["₹", totalCartValue]
					}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
						className: "text-xs text-white/80",
						children: itemCount === 0 ? "No items in cart" : `• ${itemCount} ${itemCount === 1 ? "item" : "items"}`
					})]
				}), remainingForFreeDelivery > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(p, {
					className: "text-[10px] font-bold text-white/70",
					children: [
						"₹",
						remainingForFreeDelivery,
						" more for FREE Delivery"
					]
				}) : itemCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
					className: "flex items-center gap-1",
					children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
						className: "h-3 w-3 text-emerald-300",
						fill: "currentColor",
						viewBox: "0 0 24 24",
						children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" })
					}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(p, {
						className: "text-[10px] font-bold text-emerald-300",
						children: "Free Delivery Unlocked"
					})]
				}) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(p, {
					className: "text-[10px] text-white/50",
					children: [
						"Shop for ₹",
						freeDeliveryThreshold,
						"+ for free shipping"
					]
				})]
			}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
				onClick,
				className: "rounded-full bg-white px-4 py-2 text-sm font-bold text-brand-600 shadow-md hover:bg-gray-100 transition-colors",
				children: "Go to Cart"
			})]
		})
	});
}
//#endregion
export { HomePage as component };
