hey-pharmacist-ecommerce 1.1.1 → 1.1.3

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.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import React19, { createContext, forwardRef, useContext, useEffect, useState, useCallback, useMemo, useRef } from 'react';
2
+ import React20, { createContext, forwardRef, useContext, useEffect, useState, useCallback, useMemo, useRef } from 'react';
3
3
  import globalAxios4 from 'axios';
4
4
  import { Toaster, toast } from 'sonner';
5
5
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
@@ -93,8 +93,8 @@ function ThemeProvider({ config, children }) {
93
93
  root.style.setProperty(`--header-via`, primaryShades[600]);
94
94
  root.style.setProperty(`--header-to`, secondaryShades[600]);
95
95
  }
96
- }, [config.colors]);
97
- return /* @__PURE__ */ React19.createElement(ThemeContext.Provider, { value: { config } }, children);
96
+ }, [config]);
97
+ return /* @__PURE__ */ React20.createElement(ThemeContext.Provider, { value: { config } }, children);
98
98
  }
99
99
 
100
100
  // src/lib/Apis/configuration.ts
@@ -1992,7 +1992,7 @@ function AuthProvider({ children }) {
1992
1992
  updateUser,
1993
1993
  refreshUser
1994
1994
  };
1995
- return /* @__PURE__ */ React19.createElement(AuthContext.Provider, { value }, children);
1995
+ return /* @__PURE__ */ React20.createElement(AuthContext.Provider, { value }, children);
1996
1996
  }
1997
1997
  var AddressesApiAxiosParamCreator = function(configuration) {
1998
1998
  return {
@@ -6782,7 +6782,7 @@ function CartProvider({ children }) {
6782
6782
  clearCart,
6783
6783
  refreshCart
6784
6784
  };
6785
- return /* @__PURE__ */ React19.createElement(CartContext.Provider, { value }, children);
6785
+ return /* @__PURE__ */ React20.createElement(CartContext.Provider, { value }, children);
6786
6786
  }
6787
6787
  var BaseUrl = "https://api.heypharmacist.com";
6788
6788
  globalAxios4.interceptors.request.use(async (config) => {
@@ -6917,7 +6917,7 @@ function WishlistProvider({ children }) {
6917
6917
  const refreshWishlist = async () => {
6918
6918
  await fetchWishlist();
6919
6919
  };
6920
- return /* @__PURE__ */ React19.createElement(
6920
+ return /* @__PURE__ */ React20.createElement(
6921
6921
  WishlistContext.Provider,
6922
6922
  {
6923
6923
  value: {
@@ -6940,14 +6940,31 @@ var useWishlist = () => {
6940
6940
  }
6941
6941
  return context;
6942
6942
  };
6943
- function EcommerceProvider({ config, children, withToaster = true }) {
6943
+ var BasePathContext = createContext(void 0);
6944
+ function BasePathProvider({ basePath = "", children }) {
6945
+ const normalized = basePath ? basePath.startsWith("/") ? basePath : `/${basePath}` : "";
6946
+ const buildPath = (path) => {
6947
+ if (!normalized) return path;
6948
+ if (!path) return normalized;
6949
+ if (path.startsWith(normalized + "/")) return path;
6950
+ if (path.startsWith("/")) return `${normalized}${path}`;
6951
+ return `${normalized}/${path}`;
6952
+ };
6953
+ return /* @__PURE__ */ React20.createElement(BasePathContext.Provider, { value: { basePath: normalized, buildPath } }, children);
6954
+ }
6955
+ function useBasePath() {
6956
+ const ctx = useContext(BasePathContext);
6957
+ if (!ctx) throw new Error("useBasePath must be used within BasePathProvider");
6958
+ return ctx;
6959
+ }
6960
+ function EcommerceProvider({ config, children, withToaster = true, basePath = "" }) {
6944
6961
  useEffect(() => {
6945
6962
  initializeApiAdapter(config);
6946
6963
  }, [config]);
6947
- const [client] = React19.useState(
6964
+ const [client] = React20.useState(
6948
6965
  new QueryClient({ defaultOptions: { queries: { staleTime: 5e3 } } })
6949
6966
  );
6950
- return /* @__PURE__ */ React19.createElement(QueryClientProvider, { client }, /* @__PURE__ */ React19.createElement(ThemeProvider, { config }, /* @__PURE__ */ React19.createElement(AuthProvider, null, /* @__PURE__ */ React19.createElement(CartProvider, null, /* @__PURE__ */ React19.createElement(WishlistProvider, null, children, withToaster && /* @__PURE__ */ React19.createElement(Toaster, { position: "top-right", richColors: true }))))));
6967
+ return /* @__PURE__ */ React20.createElement(QueryClientProvider, { client }, /* @__PURE__ */ React20.createElement(ThemeProvider, { config }, /* @__PURE__ */ React20.createElement(BasePathProvider, { basePath }, /* @__PURE__ */ React20.createElement(AuthProvider, null, /* @__PURE__ */ React20.createElement(CartProvider, null, /* @__PURE__ */ React20.createElement(WishlistProvider, null, children, withToaster && /* @__PURE__ */ React20.createElement(Toaster, { position: "top-right", richColors: true })))))));
6951
6968
  }
6952
6969
 
6953
6970
  // src/lib/utils/format.ts
@@ -6990,6 +7007,7 @@ function ProductCard({
6990
7007
  className
6991
7008
  }) {
6992
7009
  const router = useRouter();
7010
+ const { buildPath } = useBasePath();
6993
7011
  const [isFavorite, setIsFavorite] = useState(isFavorited);
6994
7012
  const { addToWishlist, removeFromWishlist, isInWishlist } = useWishlist();
6995
7013
  const [isHovered, setIsHovered] = useState(false);
@@ -7036,7 +7054,7 @@ function ProductCard({
7036
7054
  alt: product.name || "Product image"
7037
7055
  };
7038
7056
  }, [product.productMedia, product.name]);
7039
- return /* @__PURE__ */ React19.createElement(
7057
+ return /* @__PURE__ */ React20.createElement(
7040
7058
  motion.article,
7041
7059
  {
7042
7060
  className: "relative group bg-white rounded-xl overflow-hidden shadow-sm hover:shadow-md transition-all duration-300 border border-gray-100 hover:border-gray-200 flex h-[420px] flex-col",
@@ -7049,7 +7067,7 @@ function ProductCard({
7049
7067
  onClick: handleCardClick,
7050
7068
  onKeyDown: handleKeyDown
7051
7069
  },
7052
- /* @__PURE__ */ React19.createElement("div", { className: "relative h-48 w-full overflow-hidden bg-gray-50" }, /* @__PURE__ */ React19.createElement(AnimatePresence, null, !isImageLoaded && /* @__PURE__ */ React19.createElement(
7070
+ /* @__PURE__ */ React20.createElement("div", { className: "relative h-48 w-full overflow-hidden bg-gray-50" }, /* @__PURE__ */ React20.createElement(AnimatePresence, null, !isImageLoaded && /* @__PURE__ */ React20.createElement(
7053
7071
  motion.div,
7054
7072
  {
7055
7073
  className: "absolute inset-0 bg-gray-200 animate-pulse",
@@ -7057,7 +7075,7 @@ function ProductCard({
7057
7075
  exit: { opacity: 0 },
7058
7076
  transition: { duration: 0.2 }
7059
7077
  }
7060
- )), product.productMedia?.[0]?.file && /* @__PURE__ */ React19.createElement(
7078
+ )), product.productMedia?.[0]?.file && /* @__PURE__ */ React20.createElement(
7061
7079
  Image3,
7062
7080
  {
7063
7081
  src: product.productMedia?.[0]?.file || "/placeholder-product.jpg",
@@ -7068,7 +7086,7 @@ function ProductCard({
7068
7086
  priority: false,
7069
7087
  onLoad: handleImageLoad
7070
7088
  }
7071
- ), /* @__PURE__ */ React19.createElement("div", { className: "absolute top-3 left-3 flex flex-col gap-2 z-10" }, product.isDiscounted && /* @__PURE__ */ React19.createElement(
7089
+ ), /* @__PURE__ */ React20.createElement("div", { className: "absolute top-3 left-3 flex flex-col gap-2 z-10" }, product.isDiscounted && /* @__PURE__ */ React20.createElement(
7072
7090
  motion.span,
7073
7091
  {
7074
7092
  initial: { scale: 0.9, opacity: 0 },
@@ -7078,7 +7096,7 @@ function ProductCard({
7078
7096
  "-",
7079
7097
  product.discountAmount,
7080
7098
  "%"
7081
- ), product.inventoryCount === 0 && /* @__PURE__ */ React19.createElement(
7099
+ ), product.inventoryCount === 0 && /* @__PURE__ */ React20.createElement(
7082
7100
  motion.span,
7083
7101
  {
7084
7102
  initial: { scale: 0.9, opacity: 0 },
@@ -7086,7 +7104,7 @@ function ProductCard({
7086
7104
  className: "inline-flex items-center justify-center px-2.5 py-1 rounded-full text-xs font-bold text-white bg-red-600"
7087
7105
  },
7088
7106
  "Out of Stock"
7089
- )), showFavoriteButton && /* @__PURE__ */ React19.createElement(
7107
+ )), showFavoriteButton && /* @__PURE__ */ React20.createElement(
7090
7108
  motion.button,
7091
7109
  {
7092
7110
  type: "button",
@@ -7096,10 +7114,10 @@ function ProductCard({
7096
7114
  whileTap: { scale: 0.95 },
7097
7115
  "aria-label": isFavorite ? "Remove from wishlist" : "Add to wishlist"
7098
7116
  },
7099
- /* @__PURE__ */ React19.createElement(Heart, { className: `w-5 h-5 ${isFavorite ? "fill-current" : ""}` })
7117
+ /* @__PURE__ */ React20.createElement(Heart, { className: `w-5 h-5 ${isFavorite ? "fill-current" : ""}` })
7100
7118
  )),
7101
- /* @__PURE__ */ React19.createElement("div", { className: "absolute top-4 left-4 flex flex-col gap-2" }, product.inventoryCount === 0 && /* @__PURE__ */ React19.createElement("span", { className: "px-3 py-1 rounded-full text-sm font-bold bg-red-100 text-red-800" }, "Out of Stock")),
7102
- showFavoriteButton && /* @__PURE__ */ React19.createElement(
7119
+ /* @__PURE__ */ React20.createElement("div", { className: "absolute top-4 left-4 flex flex-col gap-2" }, product.inventoryCount === 0 && /* @__PURE__ */ React20.createElement("span", { className: "px-3 py-1 rounded-full text-sm font-bold bg-red-100 text-red-800" }, "Out of Stock")),
7120
+ showFavoriteButton && /* @__PURE__ */ React20.createElement(
7103
7121
  "button",
7104
7122
  {
7105
7123
  type: "button",
@@ -7107,21 +7125,21 @@ function ProductCard({
7107
7125
  className: `absolute top-2 right-2 p-2 rounded-full transition-colors ${isFavorite ? "text-red-500" : "text-gray-400 hover:text-red-500"}`,
7108
7126
  "aria-label": isFavorite ? "Remove from wishlist" : "Add to wishlist"
7109
7127
  },
7110
- /* @__PURE__ */ React19.createElement(Heart, { className: `w-5 h-5 ${isFavorite ? "fill-current" : ""}` })
7128
+ /* @__PURE__ */ React20.createElement(Heart, { className: `w-5 h-5 ${isFavorite ? "fill-current" : ""}` })
7111
7129
  ),
7112
- /* @__PURE__ */ React19.createElement("div", { className: "p-4" }, product.parentCategories && product.parentCategories?.length > 0 && /* @__PURE__ */ React19.createElement("p", { className: "text-xs text-gray-500 uppercase tracking-wider mb-2" }, product.parentCategories?.map((category) => category?.name).join(", ") || "No categories"), /* @__PURE__ */ React19.createElement("div", { className: "mb-2" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-semibold text-gray-900 line-clamp-1 group-hover:text-primary-600 transition-colors" }, product.name), product?.sku && /* @__PURE__ */ React19.createElement("p", { className: "text-xs text-gray-400 mt-1" }, "SKU: ", product.sku)), /* @__PURE__ */ React19.createElement("div", { className: "flex items-baseline gap-2" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React19.createElement("span", { className: "text-2xl font-bold text-gray-900" }, formatPrice(product.finalPrice)), product.inventoryCount > 0 && /* @__PURE__ */ React19.createElement("span", { className: "text-xs text-gray-500" }, product.inventoryCount > 0 ? "In Stock" : "Out of Stock")), product.priceBeforeDiscount && product.priceBeforeDiscount > product.finalPrice && /* @__PURE__ */ React19.createElement("span", { className: "text-sm text-gray-500 line-through" }, formatPrice(product.priceBeforeDiscount)))),
7113
- /* @__PURE__ */ React19.createElement("div", { className: "mt-auto p-4 pt-0" }, /* @__PURE__ */ React19.createElement(
7130
+ /* @__PURE__ */ React20.createElement("div", { className: "p-4" }, product.parentCategories && product.parentCategories?.length > 0 && /* @__PURE__ */ React20.createElement("p", { className: "text-xs text-gray-500 uppercase tracking-wider mb-2" }, product.parentCategories?.map((category) => category?.name).join(", ") || "No categories"), /* @__PURE__ */ React20.createElement("div", { className: "mb-2" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-semibold text-gray-900 line-clamp-1 group-hover:text-primary-600 transition-colors" }, product.name), product?.sku && /* @__PURE__ */ React20.createElement("p", { className: "text-xs text-gray-400 mt-1" }, "SKU: ", product.sku)), /* @__PURE__ */ React20.createElement("div", { className: "flex items-baseline gap-2" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React20.createElement("span", { className: "text-2xl font-bold text-gray-900" }, formatPrice(product.finalPrice)), product.inventoryCount > 0 && /* @__PURE__ */ React20.createElement("span", { className: "text-xs text-gray-500" }, product.inventoryCount > 0 ? "In Stock" : "Out of Stock")), product.priceBeforeDiscount && product.priceBeforeDiscount > product.finalPrice && /* @__PURE__ */ React20.createElement("span", { className: "text-sm text-gray-500 line-through" }, formatPrice(product.priceBeforeDiscount)))),
7131
+ /* @__PURE__ */ React20.createElement("div", { className: "mt-auto p-4 pt-0" }, /* @__PURE__ */ React20.createElement(
7114
7132
  "button",
7115
7133
  {
7116
7134
  type: "button",
7117
7135
  onClick: (e) => {
7118
7136
  e.stopPropagation();
7119
- router.push(`/products/${product._id}`);
7137
+ router.push(buildPath(`/products/${product._id}`));
7120
7138
  },
7121
7139
  className: `w-full flex items-center justify-center rounded-md px-3 py-2 text-sm font-medium bg-primary-600 hover:bg-primary-700 text-white`
7122
7140
  },
7123
7141
  "View Product"
7124
- ), showFavoriteButton && /* @__PURE__ */ React19.createElement(
7142
+ ), showFavoriteButton && /* @__PURE__ */ React20.createElement(
7125
7143
  "button",
7126
7144
  {
7127
7145
  type: "button",
@@ -7129,7 +7147,7 @@ function ProductCard({
7129
7147
  className: "mt-2 w-full flex items-center justify-center rounded-md border border-gray-300 bg-white px-3 py-2 text-sm font-medium text-primary-600 hover:bg-gray-50",
7130
7148
  "aria-label": isFavorite ? "Remove from wishlist" : "Add to wishlist"
7131
7149
  },
7132
- /* @__PURE__ */ React19.createElement(
7150
+ /* @__PURE__ */ React20.createElement(
7133
7151
  Heart,
7134
7152
  {
7135
7153
  className: `mr-2 h-4 w-4 ${isFavorite ? "fill-red-500 text-red-500" : "text-primary-600"}`
@@ -7140,13 +7158,13 @@ function ProductCard({
7140
7158
  );
7141
7159
  }
7142
7160
  function Skeleton({ className = "" }) {
7143
- return /* @__PURE__ */ React19.createElement("div", { className: `animate-pulse bg-gradient-to-r from-gray-200 via-gray-300 to-gray-200 bg-[length:200%_100%] rounded ${className}` });
7161
+ return /* @__PURE__ */ React20.createElement("div", { className: `animate-pulse bg-gradient-to-r from-gray-200 via-gray-300 to-gray-200 bg-[length:200%_100%] rounded ${className}` });
7144
7162
  }
7145
7163
  function ProductCardSkeleton() {
7146
- return /* @__PURE__ */ React19.createElement("div", { className: "bg-white rounded-2xl overflow-hidden shadow-sm" }, /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-64 w-full" }), /* @__PURE__ */ React19.createElement("div", { className: "p-4 space-y-3" }, /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-6 w-3/4" }), /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-4 w-1/2" }), /* @__PURE__ */ React19.createElement("div", { className: "flex justify-between items-center pt-2" }, /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-8 w-24" }), /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-10 w-10 rounded-full" }))));
7164
+ return /* @__PURE__ */ React20.createElement("div", { className: "bg-white rounded-2xl overflow-hidden shadow-sm" }, /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-64 w-full" }), /* @__PURE__ */ React20.createElement("div", { className: "p-4 space-y-3" }, /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-6 w-3/4" }), /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-4 w-1/2" }), /* @__PURE__ */ React20.createElement("div", { className: "flex justify-between items-center pt-2" }, /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-8 w-24" }), /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-10 w-10 rounded-full" }))));
7147
7165
  }
7148
7166
  function OrderCardSkeleton() {
7149
- return /* @__PURE__ */ React19.createElement("div", { className: "bg-white rounded-2xl p-6 shadow-sm" }, /* @__PURE__ */ React19.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-2 flex-1" }, /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-6 w-32" }), /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-4 w-48" })), /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-6 w-20 rounded-full" })), /* @__PURE__ */ React19.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-4 w-full" }), /* @__PURE__ */ React19.createElement(Skeleton, { className: "h-4 w-2/3" })));
7167
+ return /* @__PURE__ */ React20.createElement("div", { className: "bg-white rounded-2xl p-6 shadow-sm" }, /* @__PURE__ */ React20.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-2 flex-1" }, /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-6 w-32" }), /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-4 w-48" })), /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-6 w-20 rounded-full" })), /* @__PURE__ */ React20.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-4 w-full" }), /* @__PURE__ */ React20.createElement(Skeleton, { className: "h-4 w-2/3" })));
7150
7168
  }
7151
7169
  var MotionDiv = dynamic(() => import('framer-motion').then((mod) => mod.motion.div), {
7152
7170
  ssr: false
@@ -7172,14 +7190,14 @@ function Button({
7172
7190
  md: "px-6 py-3 text-base",
7173
7191
  lg: "px-8 py-4 text-lg"
7174
7192
  };
7175
- return /* @__PURE__ */ React19.createElement(
7193
+ return /* @__PURE__ */ React20.createElement(
7176
7194
  MotionDiv,
7177
7195
  {
7178
7196
  whileHover: { scale: 1.02 },
7179
7197
  whileTap: { scale: 0.98 },
7180
7198
  className: "inline-block"
7181
7199
  },
7182
- /* @__PURE__ */ React19.createElement(
7200
+ /* @__PURE__ */ React20.createElement(
7183
7201
  "button",
7184
7202
  {
7185
7203
  className: `${baseStyles} ${variants[variant]} ${sizes[size]} ${className}`,
@@ -7188,18 +7206,18 @@ function Button({
7188
7206
  "aria-busy": isLoading,
7189
7207
  ...props
7190
7208
  },
7191
- isLoading ? /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement("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" }, /* @__PURE__ */ React19.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ React19.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })), "Loading...") : children
7209
+ isLoading ? /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement("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" }, /* @__PURE__ */ React20.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ React20.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })), "Loading...") : children
7192
7210
  )
7193
7211
  );
7194
7212
  }
7195
7213
 
7196
7214
  // src/components/EmptyState.tsx
7197
7215
  function EmptyState({ icon: Icon, title, description, actionLabel, onAction }) {
7198
- return /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col items-center justify-center py-16 px-4" }, /* @__PURE__ */ React19.createElement("div", { className: "w-24 h-24 bg-gray-100 rounded-full flex items-center justify-center mb-6" }, /* @__PURE__ */ React19.createElement(Icon, { className: "w-12 h-12 text-gray-400" })), /* @__PURE__ */ React19.createElement("h3", { className: "text-2xl font-bold text-gray-900 mb-2" }, title), /* @__PURE__ */ React19.createElement("p", { className: "text-gray-600 text-center max-w-md mb-8" }, description), actionLabel && onAction && /* @__PURE__ */ React19.createElement(Button, { onClick: onAction }, actionLabel));
7216
+ return /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col items-center justify-center py-16 px-4" }, /* @__PURE__ */ React20.createElement("div", { className: "w-24 h-24 bg-gray-100 rounded-full flex items-center justify-center mb-6" }, /* @__PURE__ */ React20.createElement(Icon, { className: "w-12 h-12 text-gray-400" })), /* @__PURE__ */ React20.createElement("h3", { className: "text-2xl font-bold text-gray-900 mb-2" }, title), /* @__PURE__ */ React20.createElement("p", { className: "text-gray-600 text-center max-w-md mb-8" }, description), actionLabel && onAction && /* @__PURE__ */ React20.createElement(Button, { onClick: onAction }, actionLabel));
7199
7217
  }
7200
7218
  var Input = forwardRef(
7201
7219
  ({ label, error, helperText, className = "", ...props }, ref) => {
7202
- return /* @__PURE__ */ React19.createElement("div", { className: "w-full" }, label && /* @__PURE__ */ React19.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, label), /* @__PURE__ */ React19.createElement(
7220
+ return /* @__PURE__ */ React20.createElement("div", { className: "w-full" }, label && /* @__PURE__ */ React20.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, label), /* @__PURE__ */ React20.createElement(
7203
7221
  "input",
7204
7222
  {
7205
7223
  ref,
@@ -7213,7 +7231,7 @@ var Input = forwardRef(
7213
7231
  `,
7214
7232
  ...props
7215
7233
  }
7216
- ), error && /* @__PURE__ */ React19.createElement("p", { className: "mt-2 text-sm text-red-600" }, error), helperText && !error && /* @__PURE__ */ React19.createElement("p", { className: "mt-2 text-sm text-gray-500" }, helperText));
7234
+ ), error && /* @__PURE__ */ React20.createElement("p", { className: "mt-2 text-sm text-red-600" }, error), helperText && !error && /* @__PURE__ */ React20.createElement("p", { className: "mt-2 text-sm text-gray-500" }, helperText));
7217
7235
  }
7218
7236
  );
7219
7237
  Input.displayName = "Input";
@@ -7333,6 +7351,7 @@ function useCategories() {
7333
7351
  // src/screens/ShopScreen.tsx
7334
7352
  function ShopScreen({ initialFilters = {}, categoryName }) {
7335
7353
  const router = useRouter();
7354
+ const { buildPath } = useBasePath();
7336
7355
  const [filters, setFilters] = useState(initialFilters);
7337
7356
  const [page, setPage] = useState(1);
7338
7357
  const [showFilters, setShowFilters] = useState(false);
@@ -7774,7 +7793,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7774
7793
  ]);
7775
7794
  const hasActiveFilters = activeFilterChips.length > 0;
7776
7795
  const isCustomPriceDirty = customPrice.min.trim() !== "" || customPrice.max.trim() !== "";
7777
- const renderFiltersPanel = () => /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement("div", { className: "space-y-8" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-8" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-start justify-between gap-3" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, "Refine results"), /* @__PURE__ */ React19.createElement("p", { className: "mt-1 text-sm text-gray-500" }, "Filter by category, price, and availability to find the perfect fit faster.")), hasActiveFilters && /* @__PURE__ */ React19.createElement(
7796
+ const renderFiltersPanel = () => /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement("div", { className: "space-y-8" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-8" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-start justify-between gap-3" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, "Refine results"), /* @__PURE__ */ React20.createElement("p", { className: "mt-1 text-sm text-gray-500" }, "Filter by category, price, and availability to find the perfect fit faster.")), hasActiveFilters && /* @__PURE__ */ React20.createElement(
7778
7797
  "button",
7779
7798
  {
7780
7799
  type: "button",
@@ -7782,10 +7801,10 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7782
7801
  className: "text-sm font-semibold text-primary-600 hover:text-primary-700"
7783
7802
  },
7784
7803
  "Clear all"
7785
- )), /* @__PURE__ */ React19.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Categories"), /* @__PURE__ */ React19.createElement("div", { className: "space-y-2" }, sortedCategories.length === 0 && /* @__PURE__ */ React19.createElement("span", { className: "text-sm text-gray-500" }, "No categories available yet."), sortedCategories.map((category) => {
7804
+ )), /* @__PURE__ */ React20.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Categories"), /* @__PURE__ */ React20.createElement("div", { className: "space-y-2" }, sortedCategories.length === 0 && /* @__PURE__ */ React20.createElement("span", { className: "text-sm text-gray-500" }, "No categories available yet."), sortedCategories.map((category) => {
7786
7805
  const isCategoryActive = categoryFilter === category.id;
7787
7806
  const isExpanded = !!expandedCategories[category.id];
7788
- return /* @__PURE__ */ React19.createElement("div", { key: category.id, className: "rounded-xl border-gray-100 bg-white/50" }, /* @__PURE__ */ React19.createElement(
7807
+ return /* @__PURE__ */ React20.createElement("div", { key: category.id, className: "rounded-xl border-gray-100 bg-white/50" }, /* @__PURE__ */ React20.createElement(
7789
7808
  "div",
7790
7809
  {
7791
7810
  role: "button",
@@ -7796,8 +7815,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7796
7815
  },
7797
7816
  className: `flex w-full items-center justify-between rounded-xl px-3 py-2 text-sm font-medium transition ${isCategoryActive ? "text-primary-700 bg-primary-50" : "text-gray-700 hover:text-primary-700 hover:bg-primary-50/50"}`
7798
7817
  },
7799
- /* @__PURE__ */ React19.createElement("span", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19.createElement("span", { className: "font-medium" }, category.name), category.productCount > 0 && /* @__PURE__ */ React19.createElement("span", { className: `ml-1 rounded-full bg-gray-100 px-2 py-0.5 text-xs ${isCategoryActive ? "text-primary-700" : "text-gray-500"}` }, category.productCount)),
7800
- /* @__PURE__ */ React19.createElement(
7818
+ /* @__PURE__ */ React20.createElement("span", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20.createElement("span", { className: "font-medium" }, category.name), category.productCount > 0 && /* @__PURE__ */ React20.createElement("span", { className: `ml-1 rounded-full bg-gray-100 px-2 py-0.5 text-xs ${isCategoryActive ? "text-primary-700" : "text-gray-500"}` }, category.productCount)),
7819
+ /* @__PURE__ */ React20.createElement(
7801
7820
  "button",
7802
7821
  {
7803
7822
  type: "button",
@@ -7809,11 +7828,11 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7809
7828
  className: "rounded-md p-1 hover:bg-gray-100",
7810
7829
  "aria-label": isExpanded ? "Collapse" : "Expand"
7811
7830
  },
7812
- /* @__PURE__ */ React19.createElement(ChevronDown, { className: `h-4 w-4 transition-transform ${isExpanded ? "rotate-180 text-primary-600" : "rotate-0 text-gray-400"}` })
7831
+ /* @__PURE__ */ React20.createElement(ChevronDown, { className: `h-4 w-4 transition-transform ${isExpanded ? "rotate-180 text-primary-600" : "rotate-0 text-gray-400"}` })
7813
7832
  )
7814
- ), isExpanded && Array.isArray(category.categorySubCategories) && category.categorySubCategories.length > 0 && /* @__PURE__ */ React19.createElement("div", { className: "mt-1 border-gray-100 px-2 pb-2 pl-4" }, /* @__PURE__ */ React19.createElement("div", { className: "divide-y divide-gray-100" }, category.categorySubCategories.map((sub) => {
7833
+ ), isExpanded && Array.isArray(category.categorySubCategories) && category.categorySubCategories.length > 0 && /* @__PURE__ */ React20.createElement("div", { className: "mt-1 border-gray-100 px-2 pb-2 pl-4" }, /* @__PURE__ */ React20.createElement("div", { className: "divide-y divide-gray-100" }, category.categorySubCategories.map((sub) => {
7815
7834
  const isSubActive = subCategoryFilter === sub.id;
7816
- return /* @__PURE__ */ React19.createElement(
7835
+ return /* @__PURE__ */ React20.createElement(
7817
7836
  "button",
7818
7837
  {
7819
7838
  key: sub.id,
@@ -7824,9 +7843,9 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7824
7843
  sub.name
7825
7844
  );
7826
7845
  }))));
7827
- }))))), /* @__PURE__ */ React19.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React19.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Price"), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap gap-2" }, priceRanges.map((range) => {
7846
+ }))))), /* @__PURE__ */ React20.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React20.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Price"), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap gap-2" }, priceRanges.map((range) => {
7828
7847
  const isActive = selectedPriceRange === range.value;
7829
- return /* @__PURE__ */ React19.createElement(
7848
+ return /* @__PURE__ */ React20.createElement(
7830
7849
  "button",
7831
7850
  {
7832
7851
  type: "button",
@@ -7836,7 +7855,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7836
7855
  },
7837
7856
  range.label
7838
7857
  );
7839
- })), /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-2 gap-3" }, /* @__PURE__ */ React19.createElement(
7858
+ })), /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-2 gap-3" }, /* @__PURE__ */ React20.createElement(
7840
7859
  Input,
7841
7860
  {
7842
7861
  type: "number",
@@ -7845,7 +7864,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7845
7864
  value: customPrice.min,
7846
7865
  onChange: (event) => setCustomPrice((current) => ({ ...current, min: event.target.value }))
7847
7866
  }
7848
- ), /* @__PURE__ */ React19.createElement(
7867
+ ), /* @__PURE__ */ React20.createElement(
7849
7868
  Input,
7850
7869
  {
7851
7870
  type: "number",
@@ -7854,7 +7873,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7854
7873
  value: customPrice.max,
7855
7874
  onChange: (event) => setCustomPrice((current) => ({ ...current, max: event.target.value }))
7856
7875
  }
7857
- )), /* @__PURE__ */ React19.createElement(
7876
+ )), /* @__PURE__ */ React20.createElement(
7858
7877
  "button",
7859
7878
  {
7860
7879
  type: "button",
@@ -7863,48 +7882,48 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7863
7882
  className: "w-full rounded-xl border border-primary-500 bg-primary-500/10 px-4 py-2.5 text-sm font-semibold text-primary-700 transition hover:bg-primary-500/20 disabled:cursor-not-allowed disabled:border-gray-200 disabled:text-gray-400"
7864
7883
  },
7865
7884
  "Apply price range"
7866
- )), /* @__PURE__ */ React19.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Availability"), /* @__PURE__ */ React19.createElement(
7885
+ )), /* @__PURE__ */ React20.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Availability"), /* @__PURE__ */ React20.createElement(
7867
7886
  "button",
7868
7887
  {
7869
7888
  type: "button",
7870
7889
  onClick: handleToggleStock,
7871
7890
  className: `flex w-full items-center justify-between rounded-xl border px-4 py-3 text-sm font-medium transition ${inStockOnly ? "border-primary-500 bg-primary-50 text-primary-700" : "border-gray-200 bg-white text-gray-600 hover:border-primary-300 hover:text-primary-600"}`
7872
7891
  },
7873
- /* @__PURE__ */ React19.createElement("span", null, "In stock only"),
7874
- /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-4 w-4 text-primary-500" })
7875
- ), /* @__PURE__ */ React19.createElement(
7892
+ /* @__PURE__ */ React20.createElement("span", null, "In stock only"),
7893
+ /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-4 w-4 text-primary-500" })
7894
+ ), /* @__PURE__ */ React20.createElement(
7876
7895
  "button",
7877
7896
  {
7878
7897
  type: "button",
7879
7898
  onClick: handleToggleNewArrivals,
7880
7899
  className: `mt-2 flex w-full items-center justify-between rounded-xl border px-4 py-3 text-sm font-medium transition ${newArrivals ? "border-secondary-500 bg-secondary-50 text-secondary-700" : "border-gray-200 bg-white text-gray-600 hover:border-secondary-300 hover:text-secondary-600"}`
7881
7900
  },
7882
- /* @__PURE__ */ React19.createElement("span", null, "New arrivals (last 30 days)"),
7883
- /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-4 w-4 text-secondary-500" })
7901
+ /* @__PURE__ */ React20.createElement("span", null, "New arrivals (last 30 days)"),
7902
+ /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-4 w-4 text-secondary-500" })
7884
7903
  ))));
7885
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white" }, /* @__PURE__ */ React19.createElement(
7904
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white" }, /* @__PURE__ */ React20.createElement(
7886
7905
  "div",
7887
7906
  {
7888
7907
  className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]",
7889
7908
  "aria-hidden": "true"
7890
7909
  }
7891
- ), /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_bottom_right,_rgba(94,234,212,0.35),_transparent_55%)] opacity-60" }), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4 py-24" }, /* @__PURE__ */ React19.createElement(
7910
+ ), /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_bottom_right,_rgba(94,234,212,0.35),_transparent_55%)] opacity-60" }), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4 py-24" }, /* @__PURE__ */ React20.createElement(
7892
7911
  motion.div,
7893
7912
  {
7894
7913
  initial: { opacity: 0, y: 24 },
7895
7914
  animate: { opacity: 1, y: 0 },
7896
7915
  className: "max-w-3xl space-y-8 text-center md:mx-auto md:text-left"
7897
7916
  },
7898
- /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-4 py-2 text-sm font-semibold tracking-wide text-white/80 backdrop-blur" }, /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-4 w-4" }), "Wellness products, curated for you"),
7899
- /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-6xl" }, "Find pharmacy favorites crafted to keep your family thriving"),
7900
- /* @__PURE__ */ React19.createElement("p", { className: "text-lg text-white/80 md:text-xl" }, "Explore a modern storefront with real-time inventory, smart filters, and rich product details designed to make healthier choices easier."),
7901
- /* @__PURE__ */ React19.createElement(
7917
+ /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-4 py-2 text-sm font-semibold tracking-wide text-white/80 backdrop-blur" }, /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-4 w-4" }), "Wellness products, curated for you"),
7918
+ /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-6xl" }, "Find pharmacy favorites crafted to keep your family thriving"),
7919
+ /* @__PURE__ */ React20.createElement("p", { className: "text-lg text-white/80 md:text-xl" }, "Explore a modern storefront with real-time inventory, smart filters, and rich product details designed to make healthier choices easier."),
7920
+ /* @__PURE__ */ React20.createElement(
7902
7921
  "form",
7903
7922
  {
7904
7923
  onSubmit: handleSearch,
7905
7924
  className: "mx-auto max-w-2xl md:mx-0"
7906
7925
  },
7907
- /* @__PURE__ */ React19.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ React19.createElement(
7926
+ /* @__PURE__ */ React20.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ React20.createElement(
7908
7927
  "input",
7909
7928
  {
7910
7929
  type: "search",
@@ -7915,17 +7934,17 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7915
7934
  className: "flex h-12 w-full rounded-xl border border-white/20 bg-white/10 px-4 py-2 pr-14 text-lg text-white placeholder-white/60 shadow-2xl shadow-primary-900/20 backdrop-blur focus:border-white/30 focus:outline-none focus:ring-2 focus:ring-white/20 disabled:opacity-50",
7916
7935
  disabled: isSearching
7917
7936
  }
7918
- ), /* @__PURE__ */ React19.createElement(
7937
+ ), /* @__PURE__ */ React20.createElement(
7919
7938
  "button",
7920
7939
  {
7921
7940
  type: "submit",
7922
7941
  className: "absolute right-2 top-1/2 -translate-y-1/2 rounded-xl bg-white/20 p-3 text-white transition hover:bg-white/30 disabled:opacity-50",
7923
7942
  disabled: !searchQuery.trim() || isSearching
7924
7943
  },
7925
- isSearching ? /* @__PURE__ */ React19.createElement("div", { className: "h-5 w-5 animate-spin rounded-full border-2 border-white border-t-transparent" }) : /* @__PURE__ */ React19.createElement(Search, { className: "h-5 w-5" })
7944
+ isSearching ? /* @__PURE__ */ React20.createElement("div", { className: "h-5 w-5 animate-spin rounded-full border-2 border-white border-t-transparent" }) : /* @__PURE__ */ React20.createElement(Search, { className: "h-5 w-5" })
7926
7945
  ))
7927
7946
  )
7928
- ), /* @__PURE__ */ React19.createElement(
7947
+ ), /* @__PURE__ */ React20.createElement(
7929
7948
  motion.div,
7930
7949
  {
7931
7950
  initial: { opacity: 0, y: 24 },
@@ -7933,7 +7952,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7933
7952
  transition: { delay: 0.15 },
7934
7953
  className: "mt-12 flex flex-col gap-6 rounded-3xl border border-white/20 bg-white/10 p-6 backdrop-blur md:flex-row md:items-center md:justify-between"
7935
7954
  },
7936
- /* @__PURE__ */ React19.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, "Explore popular searches"), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap gap-2" }, quickSearches.map((term) => /* @__PURE__ */ React19.createElement(
7955
+ /* @__PURE__ */ React20.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, "Explore popular searches"), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap gap-2" }, quickSearches.map((term) => /* @__PURE__ */ React20.createElement(
7937
7956
  "button",
7938
7957
  {
7939
7958
  key: term,
@@ -7943,7 +7962,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7943
7962
  },
7944
7963
  term
7945
7964
  )))),
7946
- topCategories.length > 0 && /* @__PURE__ */ React19.createElement("div", { className: "space-y-3 md:text-right" }, /* @__PURE__ */ React19.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, "Trending categories"), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap justify-start gap-2 md:justify-end" }, topCategories.map((category) => /* @__PURE__ */ React19.createElement(
7965
+ topCategories.length > 0 && /* @__PURE__ */ React20.createElement("div", { className: "space-y-3 md:text-right" }, /* @__PURE__ */ React20.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, "Trending categories"), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap justify-start gap-2 md:justify-end" }, topCategories.map((category) => /* @__PURE__ */ React20.createElement(
7947
7966
  "button",
7948
7967
  {
7949
7968
  key: category.id,
@@ -7953,9 +7972,9 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7953
7972
  },
7954
7973
  category.name
7955
7974
  ))))
7956
- ), /* @__PURE__ */ React19.createElement("div", { className: "mt-10 grid gap-4 md:grid-cols-3" }, insightCards.map((card, index) => {
7975
+ ), /* @__PURE__ */ React20.createElement("div", { className: "mt-10 grid gap-4 md:grid-cols-3" }, insightCards.map((card, index) => {
7957
7976
  const Icon = card.icon;
7958
- return /* @__PURE__ */ React19.createElement(
7977
+ return /* @__PURE__ */ React20.createElement(
7959
7978
  motion.div,
7960
7979
  {
7961
7980
  key: card.id,
@@ -7968,10 +7987,10 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7968
7987
  "aria-pressed": card.id === "new" ? newArrivals ? "true" : "false" : void 0,
7969
7988
  title: card.id === "new" ? newArrivals ? "Filter active: showing products from the last 30 days" : "Click to filter products from the last 30 days" : void 0
7970
7989
  },
7971
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, card.label), /* @__PURE__ */ React19.createElement("p", { className: "mt-2 text-3xl font-semibold text-white" }, card.value)), /* @__PURE__ */ React19.createElement("span", { className: "rounded-full bg-white/20 p-3 text-white" }, /* @__PURE__ */ React19.createElement(Icon, { className: "h-5 w-5" }))),
7972
- /* @__PURE__ */ React19.createElement("p", { className: "mt-3 text-sm text-white/70" }, card.helper)
7990
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, card.label), /* @__PURE__ */ React20.createElement("p", { className: "mt-2 text-3xl font-semibold text-white" }, card.value)), /* @__PURE__ */ React20.createElement("span", { className: "rounded-full bg-white/20 p-3 text-white" }, /* @__PURE__ */ React20.createElement(Icon, { className: "h-5 w-5" }))),
7991
+ /* @__PURE__ */ React20.createElement("p", { className: "mt-3 text-sm text-white/70" }, card.helper)
7973
7992
  );
7974
- })))), /* @__PURE__ */ React19.createElement("div", { className: "relative z-10 -mt-12 pb-16" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-8 lg:flex-row" }, /* @__PURE__ */ React19.createElement("aside", { className: "hidden w-72 flex-shrink-0 lg:block" }, /* @__PURE__ */ React19.createElement("div", { className: "sticky top-24 rounded-3xl border border-gray-100 bg-white p-6 shadow-xl shadow-gray-200/40" }, renderFiltersPanel())), /* @__PURE__ */ React19.createElement("main", { className: "flex-1 space-y-6" }, /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-gray-100 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("h2", { className: "text-2xl font-bold text-gray-900" }, "All products"), /* @__PURE__ */ React19.createElement("p", { className: "mt-1 text-sm text-gray-500" }, "Browse a pharmacy-grade catalogue with smart merchandising and modern UI.")), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-3 md:flex-row md:items-center" }, /* @__PURE__ */ React19.createElement("div", { className: "relative" }, /* @__PURE__ */ React19.createElement(ArrowUpDown, { className: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), /* @__PURE__ */ React19.createElement(
7993
+ })))), /* @__PURE__ */ React20.createElement("div", { className: "relative z-10 -mt-12 pb-16" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-8 lg:flex-row" }, /* @__PURE__ */ React20.createElement("aside", { className: "hidden w-72 flex-shrink-0 lg:block" }, /* @__PURE__ */ React20.createElement("div", { className: "sticky top-24 rounded-3xl border border-gray-100 bg-white p-6 shadow-xl shadow-gray-200/40" }, renderFiltersPanel())), /* @__PURE__ */ React20.createElement("main", { className: "flex-1 space-y-6" }, /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-gray-100 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("h2", { className: "text-2xl font-bold text-gray-900" }, "All products"), /* @__PURE__ */ React20.createElement("p", { className: "mt-1 text-sm text-gray-500" }, "Browse a pharmacy-grade catalogue with smart merchandising and modern UI.")), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-3 md:flex-row md:items-center" }, /* @__PURE__ */ React20.createElement("div", { className: "relative" }, /* @__PURE__ */ React20.createElement(ArrowUpDown, { className: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), /* @__PURE__ */ React20.createElement(
7975
7994
  "select",
7976
7995
  {
7977
7996
  value: sortOption,
@@ -7980,11 +7999,11 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7980
7999
  },
7981
8000
  className: "appearance-none rounded-xl border border-gray-200 bg-white py-2.5 pl-10 pr-9 text-sm font-medium text-gray-700 shadow-sm transition focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/30"
7982
8001
  },
7983
- /* @__PURE__ */ React19.createElement("option", { value: "featured" }, "Featured products"),
7984
- /* @__PURE__ */ React19.createElement("option", { value: "price-low-high" }, "Price: low to high"),
7985
- /* @__PURE__ */ React19.createElement("option", { value: "price-high-low" }, "Price: high to low"),
7986
- /* @__PURE__ */ React19.createElement("option", { value: "newest" }, "Newest arrivals")
7987
- ), /* @__PURE__ */ React19.createElement(ChevronDown, { className: "pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" })), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center rounded-xl border border-gray-200 bg-white shadow-sm" }, /* @__PURE__ */ React19.createElement(
8002
+ /* @__PURE__ */ React20.createElement("option", { value: "featured" }, "Featured products"),
8003
+ /* @__PURE__ */ React20.createElement("option", { value: "price-low-high" }, "Price: low to high"),
8004
+ /* @__PURE__ */ React20.createElement("option", { value: "price-high-low" }, "Price: high to low"),
8005
+ /* @__PURE__ */ React20.createElement("option", { value: "newest" }, "Newest arrivals")
8006
+ ), /* @__PURE__ */ React20.createElement(ChevronDown, { className: "pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" })), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center rounded-xl border border-gray-200 bg-white shadow-sm" }, /* @__PURE__ */ React20.createElement(
7988
8007
  "button",
7989
8008
  {
7990
8009
  type: "button",
@@ -7992,9 +8011,9 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7992
8011
  className: `flex items-center gap-2 rounded-l-xl px-4 py-2 text-sm font-medium transition ${viewMode === "grid" ? "bg-primary-50 text-primary-600" : "text-gray-500 hover:text-gray-700"}`,
7993
8012
  "aria-pressed": viewMode === "grid"
7994
8013
  },
7995
- /* @__PURE__ */ React19.createElement(LayoutGrid, { className: "h-4 w-4" }),
8014
+ /* @__PURE__ */ React20.createElement(LayoutGrid, { className: "h-4 w-4" }),
7996
8015
  "Grid"
7997
- ), /* @__PURE__ */ React19.createElement(
8016
+ ), /* @__PURE__ */ React20.createElement(
7998
8017
  "button",
7999
8018
  {
8000
8019
  type: "button",
@@ -8002,19 +8021,19 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8002
8021
  className: `flex items-center gap-2 rounded-r-xl px-4 py-2 text-sm font-medium transition ${viewMode === "list" ? "bg-primary-50 text-primary-600" : "text-gray-500 hover:text-gray-700"}`,
8003
8022
  "aria-pressed": viewMode === "list"
8004
8023
  },
8005
- /* @__PURE__ */ React19.createElement(LayoutList, { className: "h-4 w-4" }),
8024
+ /* @__PURE__ */ React20.createElement(LayoutList, { className: "h-4 w-4" }),
8006
8025
  "List"
8007
- )))), /* @__PURE__ */ React19.createElement("div", { className: "mt-4 md:hidden" }, /* @__PURE__ */ React19.createElement(
8026
+ )))), /* @__PURE__ */ React20.createElement("div", { className: "mt-4 md:hidden" }, /* @__PURE__ */ React20.createElement(
8008
8027
  Button,
8009
8028
  {
8010
8029
  variant: "outline",
8011
8030
  className: "w-full",
8012
8031
  onClick: () => setShowFilters(true)
8013
8032
  },
8014
- /* @__PURE__ */ React19.createElement(SlidersHorizontal, { className: "h-5 w-5" }),
8033
+ /* @__PURE__ */ React20.createElement(SlidersHorizontal, { className: "h-5 w-5" }),
8015
8034
  "Filters",
8016
- hasActiveFilters && /* @__PURE__ */ React19.createElement("span", { className: "ml-2 rounded-full bg-primary-600 px-2 py-0.5 text-xs font-semibold text-white" }, activeFilterChips.length)
8017
- )), hasActiveFilters && /* @__PURE__ */ React19.createElement("div", { className: "mt-6 flex flex-wrap items-center gap-2 border-t border-gray-100 pt-4" }, activeFilterChips.map((chip) => /* @__PURE__ */ React19.createElement(
8035
+ hasActiveFilters && /* @__PURE__ */ React20.createElement("span", { className: "ml-2 rounded-full bg-primary-600 px-2 py-0.5 text-xs font-semibold text-white" }, activeFilterChips.length)
8036
+ )), hasActiveFilters && /* @__PURE__ */ React20.createElement("div", { className: "mt-6 flex flex-wrap items-center gap-2 border-t border-gray-100 pt-4" }, activeFilterChips.map((chip) => /* @__PURE__ */ React20.createElement(
8018
8037
  "button",
8019
8038
  {
8020
8039
  key: chip.key,
@@ -8023,8 +8042,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8023
8042
  className: "group flex items-center gap-2 rounded-full bg-primary-50 px-3 py-1.5 text-sm font-medium text-primary-700 transition hover:bg-primary-100"
8024
8043
  },
8025
8044
  chip.label,
8026
- /* @__PURE__ */ React19.createElement(X, { className: "h-4 w-4 text-primary-500 group-hover:text-primary-700" })
8027
- )), /* @__PURE__ */ React19.createElement(
8045
+ /* @__PURE__ */ React20.createElement(X, { className: "h-4 w-4 text-primary-500 group-hover:text-primary-700" })
8046
+ )), /* @__PURE__ */ React20.createElement(
8028
8047
  "button",
8029
8048
  {
8030
8049
  type: "button",
@@ -8032,28 +8051,28 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8032
8051
  className: "text-sm font-semibold text-gray-500 hover:text-gray-700"
8033
8052
  },
8034
8053
  "Reset all"
8035
- ))), /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-gray-100 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-3 text-sm text-gray-600 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19.createElement("span", null, isLoading ? "Loading products..." : `Showing ${displayedProducts.length} of ${pagination.total || displayedProducts.length} products`), /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 text-gray-400" }, /* @__PURE__ */ React19.createElement(Clock, { className: "h-4 w-4" }), "Updated a moment ago")), /* @__PURE__ */ React19.createElement("div", { className: "mt-6" }, isLoading ? /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 xl:grid-cols-3" }, Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ React19.createElement(ProductCardSkeleton, { key: index }))) : displayedProducts.length > 0 ? viewMode === "grid" ? /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 xl:grid-cols-3" }, displayedProducts.map((product) => /* @__PURE__ */ React19.createElement("div", { key: product.id, className: "h-full" }, /* @__PURE__ */ React19.createElement(
8054
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-gray-100 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-3 text-sm text-gray-600 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20.createElement("span", null, isLoading ? "Loading products..." : `Showing ${displayedProducts.length} of ${pagination.total || displayedProducts.length} products`), /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 text-gray-400" }, /* @__PURE__ */ React20.createElement(Clock, { className: "h-4 w-4" }), "Updated a moment ago")), /* @__PURE__ */ React20.createElement("div", { className: "mt-6" }, isLoading ? /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 xl:grid-cols-3" }, Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ React20.createElement(ProductCardSkeleton, { key: index }))) : displayedProducts.length > 0 ? viewMode === "grid" ? /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 xl:grid-cols-3" }, displayedProducts.map((product) => /* @__PURE__ */ React20.createElement("div", { key: product.id, className: "h-full" }, /* @__PURE__ */ React20.createElement(
8036
8055
  ProductCard,
8037
8056
  {
8038
8057
  product,
8039
8058
  onClickProduct: (item) => {
8040
8059
  const productData = encodeURIComponent(JSON.stringify(item));
8041
- router.push(`/products/${item.id}?product=${productData}`);
8060
+ router.push(buildPath(`/products/${item.id}?product=${productData}`));
8042
8061
  }
8043
8062
  }
8044
- )))) : /* @__PURE__ */ React19.createElement("div", { className: "space-y-4" }, displayedProducts.map((product) => {
8063
+ )))) : /* @__PURE__ */ React20.createElement("div", { className: "space-y-4" }, displayedProducts.map((product) => {
8045
8064
  product.priceBeforeDiscount && product.priceBeforeDiscount > product.finalPrice ? Math.round(
8046
8065
  (product.priceBeforeDiscount - product.finalPrice) / product.priceBeforeDiscount * 100
8047
8066
  ) : 0;
8048
- return /* @__PURE__ */ React19.createElement(
8067
+ return /* @__PURE__ */ React20.createElement(
8049
8068
  motion.div,
8050
8069
  {
8051
8070
  key: product.id,
8052
8071
  whileHover: { y: -4 },
8053
8072
  className: "group flex cursor-pointer flex-col gap-6 rounded-2xl border border-gray-100 bg-white p-5 shadow-sm transition hover:shadow-xl md:flex-row md:items-start",
8054
- onClick: () => router.push(`/products/${product.id}`)
8073
+ onClick: () => router.push(buildPath(`/products/${product.id}`))
8055
8074
  },
8056
- /* @__PURE__ */ React19.createElement("div", { className: "relative h-48 w-full overflow-hidden rounded-2xl bg-gray-100 md:h-40 md:w-40" }, /* @__PURE__ */ React19.createElement(
8075
+ /* @__PURE__ */ React20.createElement("div", { className: "relative h-48 w-full overflow-hidden rounded-2xl bg-gray-100 md:h-40 md:w-40" }, /* @__PURE__ */ React20.createElement(
8057
8076
  Image3,
8058
8077
  {
8059
8078
  src: product.productMedia[0]?.file || "/placeholder-product.jpg",
@@ -8062,27 +8081,27 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8062
8081
  className: "object-cover transition duration-500 group-hover:scale-105"
8063
8082
  }
8064
8083
  )),
8065
- /* @__PURE__ */ React19.createElement("div", { className: "flex-1 space-y-3" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center gap-2 text-xs font-semibold uppercase tracking-wide text-primary-600" }, product.parentCategories.length > 0 && /* @__PURE__ */ React19.createElement("span", { className: "rounded-full bg-primary-50 px-3 py-1 text-primary-700" }, product.parentCategories.map((category) => category?.name).join(", ")), product.tags?.slice(0, 3).map((tag) => /* @__PURE__ */ React19.createElement(
8084
+ /* @__PURE__ */ React20.createElement("div", { className: "flex-1 space-y-3" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center gap-2 text-xs font-semibold uppercase tracking-wide text-primary-600" }, product.parentCategories.length > 0 && /* @__PURE__ */ React20.createElement("span", { className: "rounded-full bg-primary-50 px-3 py-1 text-primary-700" }, product.parentCategories.map((category) => category?.name).join(", ")), product.tags?.slice(0, 3).map((tag) => /* @__PURE__ */ React20.createElement(
8066
8085
  "span",
8067
8086
  {
8068
8087
  key: tag,
8069
8088
  className: "rounded-full bg-slate-100 px-3 py-1 text-gray-600"
8070
8089
  },
8071
8090
  tag
8072
- ))), /* @__PURE__ */ React19.createElement("h3", { className: "text-xl font-semibold text-gray-900" }, product.name), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-gray-500" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 font-medium text-primary-600" }, /* @__PURE__ */ React19.createElement(ShieldCheck, { className: "h-4 w-4" }), product.inventoryCount > 0 ? "In stock & ready to ship" : "Restocking soon"), /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2" }, /* @__PURE__ */ React19.createElement(Clock, { className: "h-4 w-4 text-primary-500" }), "Added ", new Date(product.createdAt).toLocaleDateString()))),
8073
- /* @__PURE__ */ React19.createElement("div", { className: "flex w-full flex-col items-end gap-3 md:w-auto" }, /* @__PURE__ */ React19.createElement("div", { className: "text-right" }, /* @__PURE__ */ React19.createElement("p", { className: "text-3xl font-semibold text-gray-900" }, formatPrice(product.finalPrice)), product.priceBeforeDiscount && /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-gray-400 line-through" }, formatPrice(product.priceBeforeDiscount))), /* @__PURE__ */ React19.createElement(
8091
+ ))), /* @__PURE__ */ React20.createElement("h3", { className: "text-xl font-semibold text-gray-900" }, product.name), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-gray-500" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 font-medium text-primary-600" }, /* @__PURE__ */ React20.createElement(ShieldCheck, { className: "h-4 w-4" }), product.inventoryCount > 0 ? "In stock & ready to ship" : "Restocking soon"), /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2" }, /* @__PURE__ */ React20.createElement(Clock, { className: "h-4 w-4 text-primary-500" }), "Added ", new Date(product.createdAt).toLocaleDateString()))),
8092
+ /* @__PURE__ */ React20.createElement("div", { className: "flex w-full flex-col items-end gap-3 md:w-auto" }, /* @__PURE__ */ React20.createElement("div", { className: "text-right" }, /* @__PURE__ */ React20.createElement("p", { className: "text-3xl font-semibold text-gray-900" }, formatPrice(product.finalPrice)), product.priceBeforeDiscount && /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-gray-400 line-through" }, formatPrice(product.priceBeforeDiscount))), /* @__PURE__ */ React20.createElement(
8074
8093
  Button,
8075
8094
  {
8076
8095
  size: "sm",
8077
8096
  onClick: (event) => {
8078
8097
  event.stopPropagation();
8079
- router.push(`/products/${product._id}`);
8098
+ router.push(buildPath(`/products/${product._id}`));
8080
8099
  }
8081
8100
  },
8082
8101
  "View product"
8083
8102
  ))
8084
8103
  );
8085
- })) : /* @__PURE__ */ React19.createElement(
8104
+ })) : /* @__PURE__ */ React20.createElement(
8086
8105
  EmptyState,
8087
8106
  {
8088
8107
  icon: Package,
@@ -8091,7 +8110,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8091
8110
  actionLabel: hasActiveFilters ? "Clear filters" : void 0,
8092
8111
  onAction: hasActiveFilters ? handleClearFilters : void 0
8093
8112
  }
8094
- )), pagination.totalPages > 1 && /* @__PURE__ */ React19.createElement("div", { className: "mt-10 flex flex-wrap items-center justify-center gap-3" }, /* @__PURE__ */ React19.createElement(
8113
+ )), pagination.totalPages > 1 && /* @__PURE__ */ React20.createElement("div", { className: "mt-10 flex flex-wrap items-center justify-center gap-3" }, /* @__PURE__ */ React20.createElement(
8095
8114
  Button,
8096
8115
  {
8097
8116
  variant: "outline",
@@ -8099,7 +8118,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8099
8118
  disabled: page === 1
8100
8119
  },
8101
8120
  "Previous"
8102
- ), /* @__PURE__ */ React19.createElement("span", { className: "text-sm font-semibold text-gray-600" }, "Page ", page, " of ", pagination.totalPages), /* @__PURE__ */ React19.createElement(
8121
+ ), /* @__PURE__ */ React20.createElement("span", { className: "text-sm font-semibold text-gray-600" }, "Page ", page, " of ", pagination.totalPages), /* @__PURE__ */ React20.createElement(
8103
8122
  Button,
8104
8123
  {
8105
8124
  variant: "outline",
@@ -8107,7 +8126,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8107
8126
  disabled: page === pagination.totalPages
8108
8127
  },
8109
8128
  "Next"
8110
- ))))))), /* @__PURE__ */ React19.createElement(AnimatePresence, null, showFilters && /* @__PURE__ */ React19.createElement(
8129
+ ))))))), /* @__PURE__ */ React20.createElement(AnimatePresence, null, showFilters && /* @__PURE__ */ React20.createElement(
8111
8130
  motion.div,
8112
8131
  {
8113
8132
  initial: { opacity: 0 },
@@ -8115,7 +8134,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8115
8134
  exit: { opacity: 0 },
8116
8135
  className: "fixed inset-0 z-50 bg-black/40 backdrop-blur-sm lg:hidden"
8117
8136
  },
8118
- /* @__PURE__ */ React19.createElement(
8137
+ /* @__PURE__ */ React20.createElement(
8119
8138
  motion.div,
8120
8139
  {
8121
8140
  initial: { y: "100%" },
@@ -8124,14 +8143,14 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8124
8143
  transition: { type: "spring", stiffness: 260, damping: 26 },
8125
8144
  className: "absolute inset-x-0 bottom-0 max-h-[85vh] overflow-y-auto rounded-t-3xl bg-white p-6 shadow-2xl"
8126
8145
  },
8127
- /* @__PURE__ */ React19.createElement("div", { className: "mb-6 flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, "Filters"), /* @__PURE__ */ React19.createElement(
8146
+ /* @__PURE__ */ React20.createElement("div", { className: "mb-6 flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, "Filters"), /* @__PURE__ */ React20.createElement(
8128
8147
  "button",
8129
8148
  {
8130
8149
  type: "button",
8131
8150
  onClick: () => setShowFilters(false),
8132
8151
  className: "rounded-full border border-gray-200 p-2 text-gray-500 hover:text-gray-700"
8133
8152
  },
8134
- /* @__PURE__ */ React19.createElement(X, { className: "h-4 w-4" })
8153
+ /* @__PURE__ */ React20.createElement(X, { className: "h-4 w-4" })
8135
8154
  )),
8136
8155
  renderFiltersPanel()
8137
8156
  )
@@ -8150,7 +8169,7 @@ function Badge({ children, variant = "primary", size = "md", className = "" }) {
8150
8169
  sm: "px-2 py-1 text-xs",
8151
8170
  md: "px-3 py-1 text-sm"
8152
8171
  };
8153
- return /* @__PURE__ */ React19.createElement("span", { className: `inline-flex items-center font-medium rounded-full border ${variants[variant]} ${sizes[size]} ${className}` }, children);
8172
+ return /* @__PURE__ */ React20.createElement("span", { className: `inline-flex items-center font-medium rounded-full border ${variants[variant]} ${sizes[size]} ${className}` }, children);
8154
8173
  }
8155
8174
  var safeFormatDate = (date, format = "long") => {
8156
8175
  if (!date) return "N/A";
@@ -8309,10 +8328,10 @@ function ProductDetailScreen({ productId }) {
8309
8328
  }
8310
8329
  };
8311
8330
  if (isLoading) {
8312
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React19.createElement("div", { className: "h-[520px] animate-pulse rounded-3xl bg-slate-200" }), /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-3 gap-4" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React19.createElement("div", { key: index, className: "h-32 animate-pulse rounded-2xl bg-slate-200" })))), /* @__PURE__ */ React19.createElement("div", { className: "space-y-4 rounded-3xl bg-white p-6 shadow-sm" }, /* @__PURE__ */ React19.createElement("div", { className: "h-8 w-32 animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React19.createElement("div", { className: "h-10 w-48 animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React19.createElement("div", { className: "h-6 w-full animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React19.createElement("div", { className: "h-12 w-full animate-pulse rounded-2xl bg-slate-200" }), /* @__PURE__ */ React19.createElement("div", { className: "h-12 w-full animate-pulse rounded-2xl bg-slate-200" })))));
8331
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React20.createElement("div", { className: "h-[520px] animate-pulse rounded-3xl bg-slate-200" }), /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-3 gap-4" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React20.createElement("div", { key: index, className: "h-32 animate-pulse rounded-2xl bg-slate-200" })))), /* @__PURE__ */ React20.createElement("div", { className: "space-y-4 rounded-3xl bg-white p-6 shadow-sm" }, /* @__PURE__ */ React20.createElement("div", { className: "h-8 w-32 animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React20.createElement("div", { className: "h-10 w-48 animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React20.createElement("div", { className: "h-6 w-full animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React20.createElement("div", { className: "h-12 w-full animate-pulse rounded-2xl bg-slate-200" }), /* @__PURE__ */ React20.createElement("div", { className: "h-12 w-full animate-pulse rounded-2xl bg-slate-200" })))));
8313
8332
  }
8314
8333
  if (!product) {
8315
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl bg-white p-10 text-center shadow-sm" }, /* @__PURE__ */ React19.createElement(Sparkles, { className: "mx-auto h-10 w-10 text-primary-500" }), /* @__PURE__ */ React19.createElement("h1", { className: "mt-6 text-2xl font-semibold text-gray-900" }, "Product not found"), /* @__PURE__ */ React19.createElement("p", { className: "mt-2 text-gray-600" }, "It may have been removed or is temporarily unavailable. Discover other pharmacy essentials in our catalogue."), /* @__PURE__ */ React19.createElement("div", { className: "mt-6" }, /* @__PURE__ */ React19.createElement(Link8, { href: "/shop", className: "inline-block" }, /* @__PURE__ */ React19.createElement(Button, null, "Browse products"))))));
8334
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl bg-white p-10 text-center shadow-sm" }, /* @__PURE__ */ React20.createElement(Sparkles, { className: "mx-auto h-10 w-10 text-primary-500" }), /* @__PURE__ */ React20.createElement("h1", { className: "mt-6 text-2xl font-semibold text-gray-900" }, "Product not found"), /* @__PURE__ */ React20.createElement("p", { className: "mt-2 text-gray-600" }, "It may have been removed or is temporarily unavailable. Discover other pharmacy essentials in our catalogue."), /* @__PURE__ */ React20.createElement("div", { className: "mt-6" }, /* @__PURE__ */ React20.createElement(Link8, { href: "/shop", className: "inline-block" }, /* @__PURE__ */ React20.createElement(Button, null, "Browse products"))))));
8316
8335
  }
8317
8336
  product.tags && product.tags.length > 0 ? product.tags.slice(0, 6) : ["Pharmacist approved", "Gentle on daily routines", "Backed by real customers"];
8318
8337
  const highlightCards = [
@@ -8332,29 +8351,29 @@ function ProductDetailScreen({ productId }) {
8332
8351
  description: "Average rating 4.8/5 with over 120 verified customer experiences."
8333
8352
  }
8334
8353
  ];
8335
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React19.createElement(
8354
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React20.createElement(
8336
8355
  "div",
8337
8356
  {
8338
8357
  className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]",
8339
8358
  "aria-hidden": "true"
8340
8359
  }
8341
- ), /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_bottom_right,_rgba(255,255,255,0.25),_transparent_55%)] opacity-70" }), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement(
8360
+ ), /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_bottom_right,_rgba(255,255,255,0.25),_transparent_55%)] opacity-70" }), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement(
8342
8361
  Button,
8343
8362
  {
8344
8363
  variant: "ghost",
8345
8364
  className: "text-white hover:bg-white/10",
8346
8365
  onClick: () => router.push("/shop")
8347
8366
  },
8348
- /* @__PURE__ */ React19.createElement(ArrowLeft, { className: "h-5 w-5" }),
8367
+ /* @__PURE__ */ React20.createElement(ArrowLeft, { className: "h-5 w-5" }),
8349
8368
  "Continue shopping"
8350
- ), /* @__PURE__ */ React19.createElement("div", { className: "hidden items-center gap-3 text-sm text-white/80 md:flex" }, /* @__PURE__ */ React19.createElement(Link8, { href: "/", className: "transition hover:text-white" }, "Home"), /* @__PURE__ */ React19.createElement(ChevronRight, { className: "h-4 w-4" }), /* @__PURE__ */ React19.createElement(Link8, { href: "/shop", className: "transition hover:text-white" }, "Shop"), /* @__PURE__ */ React19.createElement(ChevronRight, { className: "h-4 w-4" }), /* @__PURE__ */ React19.createElement("span", { className: "truncate font-medium text-white" }, product.name))), /* @__PURE__ */ React19.createElement(
8369
+ ), /* @__PURE__ */ React20.createElement("div", { className: "hidden items-center gap-3 text-sm text-white/80 md:flex" }, /* @__PURE__ */ React20.createElement(Link8, { href: "/", className: "transition hover:text-white" }, "Home"), /* @__PURE__ */ React20.createElement(ChevronRight, { className: "h-4 w-4" }), /* @__PURE__ */ React20.createElement(Link8, { href: "/shop", className: "transition hover:text-white" }, "Shop"), /* @__PURE__ */ React20.createElement(ChevronRight, { className: "h-4 w-4" }), /* @__PURE__ */ React20.createElement("span", { className: "truncate font-medium text-white" }, product.name))), /* @__PURE__ */ React20.createElement(
8351
8370
  motion.div,
8352
8371
  {
8353
8372
  initial: { opacity: 0, y: 24 },
8354
8373
  animate: { opacity: 1, y: 0 },
8355
8374
  className: "max-w-3xl space-y-4"
8356
8375
  },
8357
- product.category && /* @__PURE__ */ React19.createElement(
8376
+ product.category && /* @__PURE__ */ React20.createElement(
8358
8377
  Badge,
8359
8378
  {
8360
8379
  variant: "secondary",
@@ -8362,9 +8381,9 @@ function ProductDetailScreen({ productId }) {
8362
8381
  },
8363
8382
  product.category
8364
8383
  ),
8365
- /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-5xl" }, product.name),
8366
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center gap-3 text-sm text-white/80" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1 font-medium text-white" }, /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-4 w-4" }), "Ready to ship today"), /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1 font-medium text-white" }, /* @__PURE__ */ React19.createElement(Shield, { className: "h-4 w-4" }), "30-day happiness guarantee"))
8367
- )))), /* @__PURE__ */ React19.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-10" }, /* @__PURE__ */ React19.createElement("section", { className: "rounded-3xl border border-white bg-white/70 p-6 shadow-xl shadow-primary-100/40 backdrop-blur" }, /* @__PURE__ */ React19.createElement("div", { className: "grid gap-6 lg:grid-cols-[minmax(0,1fr)_220px]" }, /* @__PURE__ */ React19.createElement(
8384
+ /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-5xl" }, product.name),
8385
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center gap-3 text-sm text-white/80" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1 font-medium text-white" }, /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-4 w-4" }), "Ready to ship today"), /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1 font-medium text-white" }, /* @__PURE__ */ React20.createElement(Shield, { className: "h-4 w-4" }), "30-day happiness guarantee"))
8386
+ )))), /* @__PURE__ */ React20.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-10" }, /* @__PURE__ */ React20.createElement("section", { className: "rounded-3xl border border-white bg-white/70 p-6 shadow-xl shadow-primary-100/40 backdrop-blur" }, /* @__PURE__ */ React20.createElement("div", { className: "grid gap-6 lg:grid-cols-[minmax(0,1fr)_220px]" }, /* @__PURE__ */ React20.createElement(
8368
8387
  motion.div,
8369
8388
  {
8370
8389
  key: variantImages[activeImageIndex],
@@ -8373,7 +8392,7 @@ function ProductDetailScreen({ productId }) {
8373
8392
  transition: { duration: 0.35 },
8374
8393
  className: "relative overflow-hidden rounded-3xl bg-slate-100 h-[420px] md:h-[560px]"
8375
8394
  },
8376
- /* @__PURE__ */ React19.createElement(
8395
+ /* @__PURE__ */ React20.createElement(
8377
8396
  Image3,
8378
8397
  {
8379
8398
  src: variantImages[activeImageIndex],
@@ -8384,7 +8403,7 @@ function ProductDetailScreen({ productId }) {
8384
8403
  className: "object-contain"
8385
8404
  }
8386
8405
  ),
8387
- discount > 0 && /* @__PURE__ */ React19.createElement(
8406
+ discount > 0 && /* @__PURE__ */ React20.createElement(
8388
8407
  Badge,
8389
8408
  {
8390
8409
  variant: "danger",
@@ -8394,7 +8413,7 @@ function ProductDetailScreen({ productId }) {
8394
8413
  discount,
8395
8414
  "%"
8396
8415
  ),
8397
- !variantInStock && /* @__PURE__ */ React19.createElement(
8416
+ !variantInStock && /* @__PURE__ */ React20.createElement(
8398
8417
  Badge,
8399
8418
  {
8400
8419
  variant: "secondary",
@@ -8402,7 +8421,7 @@ function ProductDetailScreen({ productId }) {
8402
8421
  },
8403
8422
  "Out of Stock"
8404
8423
  )
8405
- ), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-4" }, product?.productVariants?.length > 0 && /* @__PURE__ */ React19.createElement("div", { className: "rounded-2xl border border-slate-200 bg-white p-4 shadow-sm" }, /* @__PURE__ */ React19.createElement("p", { className: "mb-2 text-sm font-semibold uppercase tracking-[0.25em] text-slate-400" }, "Variant"), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap gap-2" }, product?.productVariants?.map((variant, index) => /* @__PURE__ */ React19.createElement(
8424
+ ), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-4" }, product?.productVariants?.length > 0 && /* @__PURE__ */ React20.createElement("div", { className: "rounded-2xl border border-slate-200 bg-white p-4 shadow-sm" }, /* @__PURE__ */ React20.createElement("p", { className: "mb-2 text-sm font-semibold uppercase tracking-[0.25em] text-slate-400" }, "Variant"), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap gap-2" }, product?.productVariants?.map((variant, index) => /* @__PURE__ */ React20.createElement(
8406
8425
  "button",
8407
8426
  {
8408
8427
  key: variant.id,
@@ -8411,7 +8430,7 @@ function ProductDetailScreen({ productId }) {
8411
8430
  className: `rounded-full px-4 py-2 text-sm font-medium transition ${selectedVariant?.id === variant.id ? "bg-primary-600 text-white" : "bg-slate-100 text-slate-700 hover:bg-slate-200"}`
8412
8431
  },
8413
8432
  variant.name
8414
- )))), /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-3 gap-3" }, variantImages.map((image, index) => /* @__PURE__ */ React19.createElement(
8433
+ )))), /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-3 gap-3" }, variantImages.map((image, index) => /* @__PURE__ */ React20.createElement(
8415
8434
  "button",
8416
8435
  {
8417
8436
  key: image.src + index,
@@ -8419,7 +8438,7 @@ function ProductDetailScreen({ productId }) {
8419
8438
  onClick: () => setActiveImageIndex(index),
8420
8439
  className: `relative aspect-square overflow-hidden rounded-2xl border transition ${activeImageIndex === index ? "border-primary-500 shadow-lg shadow-primary-200/60" : "border-transparent hover:border-primary-200"}`
8421
8440
  },
8422
- /* @__PURE__ */ React19.createElement(
8441
+ /* @__PURE__ */ React20.createElement(
8423
8442
  Image3,
8424
8443
  {
8425
8444
  src: image.src,
@@ -8430,18 +8449,18 @@ function ProductDetailScreen({ productId }) {
8430
8449
  unoptimized: true
8431
8450
  }
8432
8451
  )
8433
- )))))), /* @__PURE__ */ React19.createElement("section", { className: "grid gap-6 lg:grid-cols-3" }, highlightCards.map((card) => {
8452
+ )))))), /* @__PURE__ */ React20.createElement("section", { className: "grid gap-6 lg:grid-cols-3" }, highlightCards.map((card) => {
8434
8453
  const Icon = card.icon;
8435
- return /* @__PURE__ */ React19.createElement(
8454
+ return /* @__PURE__ */ React20.createElement(
8436
8455
  "div",
8437
8456
  {
8438
8457
  key: card.title,
8439
8458
  className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-sm transition hover:-translate-y-1 hover:shadow-lg"
8440
8459
  },
8441
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement("span", { className: "rounded-2xl bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React19.createElement(Icon, { className: "h-5 w-5" })), /* @__PURE__ */ React19.createElement("h3", { className: "text-base font-semibold text-slate-900" }, card.title)),
8442
- /* @__PURE__ */ React19.createElement("p", { className: "mt-3 text-sm leading-relaxed text-slate-600" }, card.description)
8460
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement("span", { className: "rounded-2xl bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React20.createElement(Icon, { className: "h-5 w-5" })), /* @__PURE__ */ React20.createElement("h3", { className: "text-base font-semibold text-slate-900" }, card.title)),
8461
+ /* @__PURE__ */ React20.createElement("p", { className: "mt-3 text-sm leading-relaxed text-slate-600" }, card.description)
8443
8462
  );
8444
- })), /* @__PURE__ */ React19.createElement("section", { className: "grid gap-6 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-sm" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center gap-4 pb-6" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-1 text-amber-500" }, Array.from({ length: 5 }).map((_, index) => /* @__PURE__ */ React19.createElement(Star, { key: index, className: "h-4 w-4 fill-current" }))), /* @__PURE__ */ React19.createElement("span", { className: "text-sm font-medium text-slate-500" }, "Rated 4.8 \u2022 Patients love the results")), /* @__PURE__ */ React19.createElement("div", { className: "space-y-8" }, product.description && /* @__PURE__ */ React19.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, "Description"), /* @__PURE__ */ React19.createElement("p", { className: "text-base leading-relaxed text-slate-600", dangerouslySetInnerHTML: { __html: product.description } })))), /* @__PURE__ */ React19.createElement("div", { className: "h-full rounded-3xl border border-slate-100 bg-gradient-to-br from-primary-50 via-white to-secondary-50 p-8 shadow-sm" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-primary-500" }, "Care tips"), /* @__PURE__ */ React19.createElement("div", { className: "mt-4 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("p", { className: "leading-relaxed" }, "Store in a cool, dry place away from direct sunlight. Check packaging for allergen statements."), /* @__PURE__ */ React19.createElement("p", { className: "leading-relaxed" }, "Consult with your local pharmacist if you are combining with other treatments or have chronic conditions."), /* @__PURE__ */ React19.createElement("p", { className: "rounded-2xl bg-white/60 p-4 leading-relaxed text-primary-700" }, "Questions? Our care team is on standby \u2014 reach us via chat for tailored support before you checkout.")))), /* @__PURE__ */ React19.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-sm" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Product insights"), /* @__PURE__ */ React19.createElement("div", { className: "mt-6 grid gap-6 md:grid-cols-2" }, /* @__PURE__ */ React19.createElement("div", { className: "rounded-2xl border border-slate-200 bg-slate-50/60 p-5" }, /* @__PURE__ */ React19.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-slate-500" }, "Availability"), /* @__PURE__ */ React19.createElement("div", { className: "mt-3 flex items-center gap-2 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement(Check, { className: "h-4 w-4 text-primary-500" }), product.inStock ? "Available for dispatch today" : "Currently restocking"), product.stock !== void 0 && /* @__PURE__ */ React19.createElement("p", { className: "mt-2 text-xs text-slate-500" }, product.stock > 0 ? `${product.stock} units remaining in inventory` : "Join the waitlist to be notified first")), /* @__PURE__ */ React19.createElement("div", { className: "rounded-2xl border border-slate-200 bg-slate-50/60 p-5" }, /* @__PURE__ */ React19.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-slate-500" }, "Product details"), /* @__PURE__ */ React19.createElement("div", { className: "mt-3 space-y-2 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("p", null, /* @__PURE__ */ React19.createElement("span", { className: "font-medium text-slate-700" }, "Variant:"), " ", currentVariant.name), /* @__PURE__ */ React19.createElement("p", null, /* @__PURE__ */ React19.createElement("span", { className: "font-medium text-slate-700" }, "SKU:"), " ", variantSku), /* @__PURE__ */ React19.createElement("p", null, /* @__PURE__ */ React19.createElement("span", { className: "font-medium text-slate-700" }, "Status:"), " ", /* @__PURE__ */ React19.createElement("span", { className: variantInStock ? "text-green-600" : "text-amber-600" }, variantInStock ? "In Stock" : "Out of Stock")), /* @__PURE__ */ React19.createElement("p", null, /* @__PURE__ */ React19.createElement("span", { className: "font-medium text-slate-700" }, "Last updated:"), " ", lastUpdatedLabel), /* @__PURE__ */ React19.createElement("p", null, /* @__PURE__ */ React19.createElement("span", { className: "font-medium text-slate-700" }, "Ships from:"), " Local pharmacy distribution center")))))), /* @__PURE__ */ React19.createElement("aside", { className: "space-y-6 lg:sticky lg:top-24" }, /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-100/40" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-baseline gap-3" }, /* @__PURE__ */ React19.createElement("p", { className: "text-3xl font-bold text-slate-900" }, selectedVariant ? formatPrice(selectedVariant.finalPrice) : formatPrice(product.price)), variantComparePrice && variantComparePrice > variantPrice && /* @__PURE__ */ React19.createElement("p", { className: "text-base text-slate-400 line-through" }, formatPrice(variantComparePrice)), discount > 0 && /* @__PURE__ */ React19.createElement(Badge, { variant: "danger", size: "sm" }, "-", discount, "%")), /* @__PURE__ */ React19.createElement("div", { className: "mt-6 space-y-4" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3 rounded-2xl bg-primary-50/80 px-4 py-3 text-sm font-medium text-primary-700" }, /* @__PURE__ */ React19.createElement(ShieldCheck, { className: "h-4 w-4" }), "Pharmacist verified product"), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between rounded-2xl border border-slate-200 px-4 py-3" }, /* @__PURE__ */ React19.createElement("span", { className: "text-sm font-medium text-slate-600" }, "Qty"), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center rounded-full border border-slate-200 bg-slate-50" }, /* @__PURE__ */ React19.createElement(
8463
+ })), /* @__PURE__ */ React20.createElement("section", { className: "grid gap-6 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-sm" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center gap-4 pb-6" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-1 text-amber-500" }, Array.from({ length: 5 }).map((_, index) => /* @__PURE__ */ React20.createElement(Star, { key: index, className: "h-4 w-4 fill-current" }))), /* @__PURE__ */ React20.createElement("span", { className: "text-sm font-medium text-slate-500" }, "Rated 4.8 \u2022 Patients love the results")), /* @__PURE__ */ React20.createElement("div", { className: "space-y-8" }, product.description && /* @__PURE__ */ React20.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, "Description"), /* @__PURE__ */ React20.createElement("p", { className: "text-base leading-relaxed text-slate-600", dangerouslySetInnerHTML: { __html: product.description } })))), /* @__PURE__ */ React20.createElement("div", { className: "h-full rounded-3xl border border-slate-100 bg-gradient-to-br from-primary-50 via-white to-secondary-50 p-8 shadow-sm" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-primary-500" }, "Care tips"), /* @__PURE__ */ React20.createElement("div", { className: "mt-4 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("p", { className: "leading-relaxed" }, "Store in a cool, dry place away from direct sunlight. Check packaging for allergen statements."), /* @__PURE__ */ React20.createElement("p", { className: "leading-relaxed" }, "Consult with your local pharmacist if you are combining with other treatments or have chronic conditions."), /* @__PURE__ */ React20.createElement("p", { className: "rounded-2xl bg-white/60 p-4 leading-relaxed text-primary-700" }, "Questions? Our care team is on standby \u2014 reach us via chat for tailored support before you checkout.")))), /* @__PURE__ */ React20.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-sm" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Product insights"), /* @__PURE__ */ React20.createElement("div", { className: "mt-6 grid gap-6 md:grid-cols-2" }, /* @__PURE__ */ React20.createElement("div", { className: "rounded-2xl border border-slate-200 bg-slate-50/60 p-5" }, /* @__PURE__ */ React20.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-slate-500" }, "Availability"), /* @__PURE__ */ React20.createElement("div", { className: "mt-3 flex items-center gap-2 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement(Check, { className: "h-4 w-4 text-primary-500" }), product.inStock ? "Available for dispatch today" : "Currently restocking"), product.stock !== void 0 && /* @__PURE__ */ React20.createElement("p", { className: "mt-2 text-xs text-slate-500" }, product.stock > 0 ? `${product.stock} units remaining in inventory` : "Join the waitlist to be notified first")), /* @__PURE__ */ React20.createElement("div", { className: "rounded-2xl border border-slate-200 bg-slate-50/60 p-5" }, /* @__PURE__ */ React20.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-slate-500" }, "Product details"), /* @__PURE__ */ React20.createElement("div", { className: "mt-3 space-y-2 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("p", null, /* @__PURE__ */ React20.createElement("span", { className: "font-medium text-slate-700" }, "Variant:"), " ", currentVariant.name), /* @__PURE__ */ React20.createElement("p", null, /* @__PURE__ */ React20.createElement("span", { className: "font-medium text-slate-700" }, "SKU:"), " ", variantSku), /* @__PURE__ */ React20.createElement("p", null, /* @__PURE__ */ React20.createElement("span", { className: "font-medium text-slate-700" }, "Status:"), " ", /* @__PURE__ */ React20.createElement("span", { className: variantInStock ? "text-green-600" : "text-amber-600" }, variantInStock ? "In Stock" : "Out of Stock")), /* @__PURE__ */ React20.createElement("p", null, /* @__PURE__ */ React20.createElement("span", { className: "font-medium text-slate-700" }, "Last updated:"), " ", lastUpdatedLabel), /* @__PURE__ */ React20.createElement("p", null, /* @__PURE__ */ React20.createElement("span", { className: "font-medium text-slate-700" }, "Ships from:"), " Local pharmacy distribution center")))))), /* @__PURE__ */ React20.createElement("aside", { className: "space-y-6 lg:sticky lg:top-24" }, /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-100/40" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-baseline gap-3" }, /* @__PURE__ */ React20.createElement("p", { className: "text-3xl font-bold text-slate-900" }, selectedVariant ? formatPrice(selectedVariant.finalPrice) : formatPrice(product.price)), variantComparePrice && variantComparePrice > variantPrice && /* @__PURE__ */ React20.createElement("p", { className: "text-base text-slate-400 line-through" }, formatPrice(variantComparePrice)), discount > 0 && /* @__PURE__ */ React20.createElement(Badge, { variant: "danger", size: "sm" }, "-", discount, "%")), /* @__PURE__ */ React20.createElement("div", { className: "mt-6 space-y-4" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3 rounded-2xl bg-primary-50/80 px-4 py-3 text-sm font-medium text-primary-700" }, /* @__PURE__ */ React20.createElement(ShieldCheck, { className: "h-4 w-4" }), "Pharmacist verified product"), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between rounded-2xl border border-slate-200 px-4 py-3" }, /* @__PURE__ */ React20.createElement("span", { className: "text-sm font-medium text-slate-600" }, "Qty"), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center rounded-full border border-slate-200 bg-slate-50" }, /* @__PURE__ */ React20.createElement(
8445
8464
  "button",
8446
8465
  {
8447
8466
  type: "button",
@@ -8449,8 +8468,8 @@ function ProductDetailScreen({ productId }) {
8449
8468
  className: "rounded-l-full p-2 hover:bg-primary-100/60",
8450
8469
  "aria-label": "Decrease quantity"
8451
8470
  },
8452
- /* @__PURE__ */ React19.createElement(Minus, { className: "h-4 w-4" })
8453
- ), /* @__PURE__ */ React19.createElement("span", { className: "w-12 text-center text-sm font-semibold text-slate-700" }, quantity), /* @__PURE__ */ React19.createElement(
8471
+ /* @__PURE__ */ React20.createElement(Minus, { className: "h-4 w-4" })
8472
+ ), /* @__PURE__ */ React20.createElement("span", { className: "w-12 text-center text-sm font-semibold text-slate-700" }, quantity), /* @__PURE__ */ React20.createElement(
8454
8473
  "button",
8455
8474
  {
8456
8475
  type: "button",
@@ -8458,8 +8477,8 @@ function ProductDetailScreen({ productId }) {
8458
8477
  className: "rounded-r-full p-2 hover:bg-primary-100/60",
8459
8478
  "aria-label": "Increase quantity"
8460
8479
  },
8461
- /* @__PURE__ */ React19.createElement(Plus, { className: "h-4 w-4" })
8462
- )))), selectedVariant && /* @__PURE__ */ React19.createElement("div", { className: "mt-4 text-sm" }, selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ || selectedVariant.inventoryStatus === "LOW_STOCK" /* LOWSTOCK */ ? /* @__PURE__ */ React19.createElement("div", { className: "text-red-600 font-medium" }, "Out of Stock") : /* @__PURE__ */ React19.createElement("div", { className: "text-green-600 font-medium" }, "In Stock")), /* @__PURE__ */ React19.createElement("div", { className: "mt-6 space-x-3" }, /* @__PURE__ */ React19.createElement(
8480
+ /* @__PURE__ */ React20.createElement(Plus, { className: "h-4 w-4" })
8481
+ )))), selectedVariant && /* @__PURE__ */ React20.createElement("div", { className: "mt-4 text-sm" }, selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ || selectedVariant.inventoryStatus === "LOW_STOCK" /* LOWSTOCK */ ? /* @__PURE__ */ React20.createElement("div", { className: "text-red-600 font-medium" }, "Out of Stock") : /* @__PURE__ */ React20.createElement("div", { className: "text-green-600 font-medium" }, "In Stock")), /* @__PURE__ */ React20.createElement("div", { className: "mt-6 space-x-3" }, /* @__PURE__ */ React20.createElement(
8463
8482
  Button,
8464
8483
  {
8465
8484
  size: "lg",
@@ -8468,9 +8487,9 @@ function ProductDetailScreen({ productId }) {
8468
8487
  isLoading: isAddingToCart,
8469
8488
  disabled: !selectedVariant || selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */
8470
8489
  },
8471
- /* @__PURE__ */ React19.createElement(ShoppingCart, { className: "h-5 w-5" }),
8490
+ /* @__PURE__ */ React20.createElement(ShoppingCart, { className: "h-5 w-5" }),
8472
8491
  !selectedVariant ? "Select a variant" : selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ ? "Out of Stock" : `Add to Cart`
8473
- ), /* @__PURE__ */ React19.createElement(
8492
+ ), /* @__PURE__ */ React20.createElement(
8474
8493
  Button,
8475
8494
  {
8476
8495
  size: "lg",
@@ -8478,14 +8497,14 @@ function ProductDetailScreen({ productId }) {
8478
8497
  className: "w-full",
8479
8498
  onClick: handleToggleFavorite
8480
8499
  },
8481
- /* @__PURE__ */ React19.createElement(
8500
+ /* @__PURE__ */ React20.createElement(
8482
8501
  Heart,
8483
8502
  {
8484
8503
  className: `h-5 w-5 ${isFavorited ? "fill-red-500 text-red-500" : "text-slate-500"}`
8485
8504
  }
8486
8505
  ),
8487
8506
  isFavorited ? "Saved" : "Save for later"
8488
- ))), /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold uppercase tracking-[0.25em]" }, "Need advice?"), /* @__PURE__ */ React19.createElement("p", { className: "mt-2 leading-relaxed" }, "Chat with a pharmacist in real time before completing your purchase. We will help you choose supporting supplements and answer dosing questions.")))), relatedProducts.length > 0 && /* @__PURE__ */ React19.createElement("section", { className: "mt-20" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "You may also like"), /* @__PURE__ */ React19.createElement("p", { className: "mt-1 text-sm text-slate-500" }, "Hand-picked recommendations that pair nicely with this product.")), /* @__PURE__ */ React19.createElement(Link8, { href: "/shop", className: "hidden md:inline-flex" }, /* @__PURE__ */ React19.createElement(Button, { variant: "ghost", className: "text-primary-600" }, "View all products"))), /* @__PURE__ */ React19.createElement("div", { className: "mt-6 grid gap-6 sm:grid-cols-2 lg:grid-cols-4" }, relatedProducts?.map((relatedProduct) => /* @__PURE__ */ React19.createElement(ProductCard, { key: relatedProduct.id, product: relatedProduct })))))));
8507
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold uppercase tracking-[0.25em]" }, "Need advice?"), /* @__PURE__ */ React20.createElement("p", { className: "mt-2 leading-relaxed" }, "Chat with a pharmacist in real time before completing your purchase. We will help you choose supporting supplements and answer dosing questions.")))), relatedProducts.length > 0 && /* @__PURE__ */ React20.createElement("section", { className: "mt-20" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "You may also like"), /* @__PURE__ */ React20.createElement("p", { className: "mt-1 text-sm text-slate-500" }, "Hand-picked recommendations that pair nicely with this product.")), /* @__PURE__ */ React20.createElement(Link8, { href: "/shop", className: "hidden md:inline-flex" }, /* @__PURE__ */ React20.createElement(Button, { variant: "ghost", className: "text-primary-600" }, "View all products"))), /* @__PURE__ */ React20.createElement("div", { className: "mt-6 grid gap-6 sm:grid-cols-2 lg:grid-cols-4" }, relatedProducts?.map((relatedProduct) => /* @__PURE__ */ React20.createElement(ProductCard, { key: relatedProduct.id, product: relatedProduct })))))));
8489
8508
  }
8490
8509
  function CartItem({ item }) {
8491
8510
  const { updateQuantity, removeFromCart } = useCart();
@@ -8503,7 +8522,7 @@ function CartItem({ item }) {
8503
8522
  await removeFromCart(item.productVariantId);
8504
8523
  };
8505
8524
  const itemTotal = item.productVariantData.finalPrice * item.quantity;
8506
- return /* @__PURE__ */ React19.createElement(
8525
+ return /* @__PURE__ */ React20.createElement(
8507
8526
  motion.div,
8508
8527
  {
8509
8528
  layout: true,
@@ -8512,7 +8531,7 @@ function CartItem({ item }) {
8512
8531
  exit: { opacity: 0, x: -100 },
8513
8532
  className: "flex gap-4 bg-white p-4 rounded-xl border border-gray-200 hover:border-primary-300 transition-colors"
8514
8533
  },
8515
- /* @__PURE__ */ React19.createElement("div", { className: "relative w-24 h-24 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100" }, /* @__PURE__ */ React19.createElement(
8534
+ /* @__PURE__ */ React20.createElement("div", { className: "relative w-24 h-24 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100" }, /* @__PURE__ */ React20.createElement(
8516
8535
  Image3,
8517
8536
  {
8518
8537
  src: item.productVariantData.productMedia[0]?.file || "/placeholder-product.jpg",
@@ -8521,39 +8540,39 @@ function CartItem({ item }) {
8521
8540
  className: "object-cover"
8522
8541
  }
8523
8542
  )),
8524
- /* @__PURE__ */ React19.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-semibold text-gray-900 truncate" }, item.productVariantData.name), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-gray-500 mt-1" }, formatPrice(item.productVariantData.finalPrice), " each"), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3 mt-3" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center border-2 border-gray-200 rounded-lg" }, /* @__PURE__ */ React19.createElement(
8543
+ /* @__PURE__ */ React20.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-semibold text-gray-900 truncate" }, item.productVariantData.name), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-gray-500 mt-1" }, formatPrice(item.productVariantData.finalPrice), " each"), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3 mt-3" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center border-2 border-gray-200 rounded-lg" }, /* @__PURE__ */ React20.createElement(
8525
8544
  "button",
8526
8545
  {
8527
8546
  onClick: () => handleUpdateQuantity(item.quantity - 1),
8528
8547
  disabled: isUpdating || item.quantity <= 0,
8529
8548
  className: "p-2 hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
8530
8549
  },
8531
- /* @__PURE__ */ React19.createElement(Minus, { className: "w-4 h-4" })
8532
- ), /* @__PURE__ */ React19.createElement("span", { className: "px-4 font-medium min-w-[3rem] text-center" }, isUpdating ? /* @__PURE__ */ React19.createElement("span", { className: "inline-block h-4 w-4 align-middle animate-spin rounded-full border-2 border-gray-300 border-t-gray-600" }) : item.quantity), /* @__PURE__ */ React19.createElement(
8550
+ /* @__PURE__ */ React20.createElement(Minus, { className: "w-4 h-4" })
8551
+ ), /* @__PURE__ */ React20.createElement("span", { className: "px-4 font-medium min-w-[3rem] text-center" }, isUpdating ? /* @__PURE__ */ React20.createElement("span", { className: "inline-block h-4 w-4 align-middle animate-spin rounded-full border-2 border-gray-300 border-t-gray-600" }) : item.quantity), /* @__PURE__ */ React20.createElement(
8533
8552
  "button",
8534
8553
  {
8535
8554
  onClick: () => handleUpdateQuantity(item.quantity + 1),
8536
8555
  disabled: isUpdating || item.quantity >= item.productVariantData.inventoryCount,
8537
8556
  className: "p-2 hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
8538
8557
  },
8539
- /* @__PURE__ */ React19.createElement(Plus, { className: "w-4 h-4" })
8540
- )), /* @__PURE__ */ React19.createElement(
8558
+ /* @__PURE__ */ React20.createElement(Plus, { className: "w-4 h-4" })
8559
+ )), /* @__PURE__ */ React20.createElement(
8541
8560
  "button",
8542
8561
  {
8543
8562
  onClick: handleRemove,
8544
8563
  className: "p-2 text-red-600 hover:bg-red-50 rounded-lg transition-colors",
8545
8564
  "aria-label": "Remove item"
8546
8565
  },
8547
- /* @__PURE__ */ React19.createElement(Trash2, { className: "w-5 h-5" })
8566
+ /* @__PURE__ */ React20.createElement(Trash2, { className: "w-5 h-5" })
8548
8567
  ))),
8549
- /* @__PURE__ */ React19.createElement("div", { className: "text-right" }, /* @__PURE__ */ React19.createElement("p", { className: "text-xl font-bold text-gray-900" }, formatPrice(itemTotal)))
8568
+ /* @__PURE__ */ React20.createElement("div", { className: "text-right" }, /* @__PURE__ */ React20.createElement("p", { className: "text-xl font-bold text-gray-900" }, formatPrice(itemTotal)))
8550
8569
  );
8551
8570
  }
8552
8571
  function CartScreen() {
8553
8572
  const router = useRouter();
8554
8573
  const { cart, isLoading } = useCart();
8555
8574
  if (!cart || cart.cartBody.items.length === 0) {
8556
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-gradient-to-br from-primary-700 via-primary-600 to-secondary-600 flex items-center justify-center" }, /* @__PURE__ */ React19.createElement("div", { className: "mx-auto px-20 py-5 bg-white rounded-3xl" }, /* @__PURE__ */ React19.createElement(
8575
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-gradient-to-br from-primary-700 via-primary-600 to-secondary-600 flex items-center justify-center" }, /* @__PURE__ */ React20.createElement("div", { className: "mx-auto px-20 py-5 bg-white rounded-3xl" }, /* @__PURE__ */ React20.createElement(
8557
8576
  EmptyState,
8558
8577
  {
8559
8578
  icon: ShoppingBag,
@@ -8568,16 +8587,16 @@ function CartScreen() {
8568
8587
  const shipping = 0;
8569
8588
  const tax = 0;
8570
8589
  const total = subtotal + shipping + tax;
8571
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4 py-16 mb-8" }, /* @__PURE__ */ React19.createElement(
8590
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4 py-16 mb-8" }, /* @__PURE__ */ React20.createElement(
8572
8591
  motion.div,
8573
8592
  {
8574
8593
  initial: { opacity: 0, y: 24 },
8575
8594
  animate: { opacity: 1, y: 0 },
8576
8595
  className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between"
8577
8596
  },
8578
- /* @__PURE__ */ React19.createElement("div", { className: "max-w-2xl space-y-4" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold tracking-wide text-white/80 backdrop-blur" }, /* @__PURE__ */ React19.createElement(HeartPulse, { className: "h-4 w-4" }), "Wellness essentials, ready when you are"), /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Your curated cart"), /* @__PURE__ */ React19.createElement("p", { className: "text-white/75 md:text-lg" }, "Review your selections, unlock exclusive perks, and check out with pharmacist-backed confidence.")),
8579
- /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur-md" }, /* @__PURE__ */ React19.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Cart summary"), /* @__PURE__ */ React19.createElement("p", { className: "mt-4 text-4xl font-semibold" }, formatPrice(total)), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-white/70" }, "Taxes and shipping calculated below"))
8580
- ))), /* @__PURE__ */ React19.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19.createElement(
8597
+ /* @__PURE__ */ React20.createElement("div", { className: "max-w-2xl space-y-4" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold tracking-wide text-white/80 backdrop-blur" }, /* @__PURE__ */ React20.createElement(HeartPulse, { className: "h-4 w-4" }), "Wellness essentials, ready when you are"), /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Your curated cart"), /* @__PURE__ */ React20.createElement("p", { className: "text-white/75 md:text-lg" }, "Review your selections, unlock exclusive perks, and check out with pharmacist-backed confidence.")),
8598
+ /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur-md" }, /* @__PURE__ */ React20.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Cart summary"), /* @__PURE__ */ React20.createElement("p", { className: "mt-4 text-4xl font-semibold" }, formatPrice(total)), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-white/70" }, "Taxes and shipping calculated below"))
8599
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20.createElement(
8581
8600
  motion.section,
8582
8601
  {
8583
8602
  initial: { opacity: 0, y: 24 },
@@ -8585,10 +8604,10 @@ function CartScreen() {
8585
8604
  transition: { delay: 0.05 },
8586
8605
  className: "space-y-6 rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50"
8587
8606
  },
8588
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center justify-between gap-4" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Items (", cart.cartBody.items.length, ")"), /* @__PURE__ */ React19.createElement("div", { className: "inline-flex items-center gap-2 rounded-full bg-primary-50 px-3 py-1 text-xs font-semibold uppercase tracking-wide text-primary-700" }, /* @__PURE__ */ React19.createElement(ShieldCheck, { className: "h-4 w-4" }), "Guaranteed cold-chain handling")),
8589
- isLoading && /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2 rounded-xl border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-block h-3 w-3 animate-spin rounded-full border-2 border-slate-300 border-t-slate-600" }), "Updating cart\u2026"),
8590
- /* @__PURE__ */ React19.createElement("div", { className: "space-y-5" }, cart.cartBody.items.map((item) => /* @__PURE__ */ React19.createElement(CartItem, { key: item.productVariantId, item })))
8591
- ), /* @__PURE__ */ React19.createElement(
8607
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center justify-between gap-4" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Items (", cart.cartBody.items.length, ")"), /* @__PURE__ */ React20.createElement("div", { className: "inline-flex items-center gap-2 rounded-full bg-primary-50 px-3 py-1 text-xs font-semibold uppercase tracking-wide text-primary-700" }, /* @__PURE__ */ React20.createElement(ShieldCheck, { className: "h-4 w-4" }), "Guaranteed cold-chain handling")),
8608
+ isLoading && /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-2 rounded-xl border border-slate-200 bg-slate-50 px-3 py-2 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-block h-3 w-3 animate-spin rounded-full border-2 border-slate-300 border-t-slate-600" }), "Updating cart\u2026"),
8609
+ /* @__PURE__ */ React20.createElement("div", { className: "space-y-5" }, cart.cartBody.items.map((item) => /* @__PURE__ */ React20.createElement(CartItem, { key: item.productVariantId, item })))
8610
+ ), /* @__PURE__ */ React20.createElement(
8592
8611
  motion.aside,
8593
8612
  {
8594
8613
  initial: { opacity: 0, y: 24 },
@@ -8596,7 +8615,7 @@ function CartScreen() {
8596
8615
  transition: { delay: 0.1 },
8597
8616
  className: "space-y-6 lg:sticky lg:top-28"
8598
8617
  },
8599
- /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Checkout summary"), /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-primary-50 px-3 py-1 text-xs font-semibold text-primary-700" }, /* @__PURE__ */ React19.createElement(BadgePercent, { className: "h-4 w-4" }), "Savings applied")), /* @__PURE__ */ React19.createElement("div", { className: "mt-6 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("span", null, "Subtotal"), /* @__PURE__ */ React19.createElement("span", { className: "font-semibold text-slate-900" }, formatPrice(subtotal))), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("span", null, "Shipping"), /* @__PURE__ */ React19.createElement("span", { className: "font-semibold" }, "Will be calculated at checkout")), /* @__PURE__ */ React19.createElement("div", { className: "rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between text-base font-semibold text-slate-900" }, /* @__PURE__ */ React19.createElement("span", null, "Order total"), /* @__PURE__ */ React19.createElement("span", null, formatPrice(total))), /* @__PURE__ */ React19.createElement("p", { className: "mt-2 text-xs text-slate-500" }, "Prices include pharmacy-grade quality control and packaging."))), /* @__PURE__ */ React19.createElement(
8618
+ /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Checkout summary"), /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-primary-50 px-3 py-1 text-xs font-semibold text-primary-700" }, /* @__PURE__ */ React20.createElement(BadgePercent, { className: "h-4 w-4" }), "Savings applied")), /* @__PURE__ */ React20.createElement("div", { className: "mt-6 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("span", null, "Subtotal"), /* @__PURE__ */ React20.createElement("span", { className: "font-semibold text-slate-900" }, formatPrice(subtotal))), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("span", null, "Shipping"), /* @__PURE__ */ React20.createElement("span", { className: "font-semibold" }, "Will be calculated at checkout")), /* @__PURE__ */ React20.createElement("div", { className: "rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between text-base font-semibold text-slate-900" }, /* @__PURE__ */ React20.createElement("span", null, "Order total"), /* @__PURE__ */ React20.createElement("span", null, formatPrice(total))), /* @__PURE__ */ React20.createElement("p", { className: "mt-2 text-xs text-slate-500" }, "Prices include pharmacy-grade quality control and packaging."))), /* @__PURE__ */ React20.createElement(
8600
8619
  Button,
8601
8620
  {
8602
8621
  size: "lg",
@@ -8604,8 +8623,8 @@ function CartScreen() {
8604
8623
  onClick: () => router.push("/checkout")
8605
8624
  },
8606
8625
  "Secure checkout",
8607
- /* @__PURE__ */ React19.createElement(ArrowRight, { className: "h-5 w-5" })
8608
- ), /* @__PURE__ */ React19.createElement(
8626
+ /* @__PURE__ */ React20.createElement(ArrowRight, { className: "h-5 w-5" })
8627
+ ), /* @__PURE__ */ React20.createElement(
8609
8628
  "button",
8610
8629
  {
8611
8630
  type: "button",
@@ -8614,7 +8633,7 @@ function CartScreen() {
8614
8633
  },
8615
8634
  "Continue shopping"
8616
8635
  )),
8617
- /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Need help?"), /* @__PURE__ */ React19.createElement("p", { className: "mt-2 leading-relaxed" }, "Chat with a pharmacist to optimize your regimen or discuss substitutions before you check out."))
8636
+ /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Need help?"), /* @__PURE__ */ React20.createElement("p", { className: "mt-2 leading-relaxed" }, "Chat with a pharmacist to optimize your regimen or discuss substitutions before you check out."))
8618
8637
  )))));
8619
8638
  }
8620
8639
  function useAddresses() {
@@ -8676,7 +8695,7 @@ function useAddresses() {
8676
8695
  };
8677
8696
  }
8678
8697
  function Card({ className = "", ...props }) {
8679
- return /* @__PURE__ */ React19.createElement(
8698
+ return /* @__PURE__ */ React20.createElement(
8680
8699
  "div",
8681
8700
  {
8682
8701
  className: `rounded-lg border bg-white shadow-sm ${className}`,
@@ -8701,7 +8720,7 @@ function Modal({ isOpen, onClose, title, children, size = "md" }) {
8701
8720
  lg: "max-w-2xl",
8702
8721
  xl: "max-w-4xl"
8703
8722
  };
8704
- return /* @__PURE__ */ React19.createElement(AnimatePresence, null, isOpen && /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
8723
+ return /* @__PURE__ */ React20.createElement(AnimatePresence, null, isOpen && /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(
8705
8724
  motion.div,
8706
8725
  {
8707
8726
  initial: { opacity: 0 },
@@ -8710,7 +8729,7 @@ function Modal({ isOpen, onClose, title, children, size = "md" }) {
8710
8729
  onClick: onClose,
8711
8730
  className: "fixed inset-0 bg-black/50 backdrop-blur-sm z-50"
8712
8731
  }
8713
- ), /* @__PURE__ */ React19.createElement("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4" }, /* @__PURE__ */ React19.createElement(
8732
+ ), /* @__PURE__ */ React20.createElement("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4" }, /* @__PURE__ */ React20.createElement(
8714
8733
  motion.div,
8715
8734
  {
8716
8735
  initial: { opacity: 0, scale: 0.95, y: 20 },
@@ -8718,15 +8737,15 @@ function Modal({ isOpen, onClose, title, children, size = "md" }) {
8718
8737
  exit: { opacity: 0, scale: 0.95, y: 20 },
8719
8738
  className: `bg-white rounded-2xl shadow-2xl w-full ${sizes[size]} max-h-[90vh] overflow-hidden flex flex-col`
8720
8739
  },
8721
- title && /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between p-6 border-b border-gray-200" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-2xl font-bold text-gray-900" }, title), /* @__PURE__ */ React19.createElement(
8740
+ title && /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between p-6 border-b border-gray-200" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-2xl font-bold text-gray-900" }, title), /* @__PURE__ */ React20.createElement(
8722
8741
  "button",
8723
8742
  {
8724
8743
  onClick: onClose,
8725
8744
  className: "p-2 hover:bg-gray-100 rounded-lg transition-colors"
8726
8745
  },
8727
- /* @__PURE__ */ React19.createElement(X, { className: "w-5 h-5" })
8746
+ /* @__PURE__ */ React20.createElement(X, { className: "w-5 h-5" })
8728
8747
  )),
8729
- /* @__PURE__ */ React19.createElement("div", { className: "flex-1 overflow-y-auto p-6" }, children)
8748
+ /* @__PURE__ */ React20.createElement("div", { className: "flex-1 overflow-y-auto p-6" }, children)
8730
8749
  ))));
8731
8750
  }
8732
8751
  var addressSchema = z.object({
@@ -8897,7 +8916,7 @@ var PAYMENT_METHODS = [
8897
8916
  {
8898
8917
  label: "Card",
8899
8918
  value: "Card",
8900
- icon: /* @__PURE__ */ React19.createElement(CreditCard, { className: "w-5 h-5" }),
8919
+ icon: /* @__PURE__ */ React20.createElement(CreditCard, { className: "w-5 h-5" }),
8901
8920
  description: "Pay securely with your credit or debit card",
8902
8921
  className: "border-blue-500 hover:bg-blue-50",
8903
8922
  activeClass: "bg-blue-50 border-blue-500 text-blue-700"
@@ -8905,7 +8924,7 @@ var PAYMENT_METHODS = [
8905
8924
  {
8906
8925
  label: "Cash",
8907
8926
  value: "Cash",
8908
- icon: /* @__PURE__ */ React19.createElement(PackageCheck, { className: "w-5 h-5" }),
8927
+ icon: /* @__PURE__ */ React20.createElement(PackageCheck, { className: "w-5 h-5" }),
8909
8928
  description: "Pay with cash on delivery or at pickup",
8910
8929
  className: "border-amber-500 hover:bg-amber-50",
8911
8930
  activeClass: "bg-amber-50 border-amber-500 text-amber-700"
@@ -8913,7 +8932,7 @@ var PAYMENT_METHODS = [
8913
8932
  {
8914
8933
  label: "Credit",
8915
8934
  value: "Credit",
8916
- icon: /* @__PURE__ */ React19.createElement(ShieldCheck, { className: "w-5 h-5" }),
8935
+ icon: /* @__PURE__ */ React20.createElement(ShieldCheck, { className: "w-5 h-5" }),
8917
8936
  description: "Use your account credit",
8918
8937
  className: "border-emerald-500 hover:bg-emerald-50",
8919
8938
  activeClass: "bg-emerald-50 border-emerald-500 text-emerald-700"
@@ -9116,7 +9135,7 @@ function CheckoutScreen() {
9116
9135
  }
9117
9136
  }
9118
9137
  setIsSubmitting(true);
9119
- toast("Submitting order...", { icon: /* @__PURE__ */ React19.createElement(CreditCard, { className: "h-4 w-4" }) });
9138
+ toast("Submitting order...", { icon: /* @__PURE__ */ React20.createElement(CreditCard, { className: "h-4 w-4" }) });
9120
9139
  try {
9121
9140
  const items = (cart?.cartBody?.items || []).map((item) => ({
9122
9141
  productVariantId: String(item.productVariantId),
@@ -9181,33 +9200,33 @@ function CheckoutScreen() {
9181
9200
  const subtotal = cart.total;
9182
9201
  const tax = 0;
9183
9202
  const total = subtotal + shippingPrice + tax;
9184
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19.createElement(
9203
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20.createElement(
9185
9204
  motion.div,
9186
9205
  {
9187
9206
  initial: { opacity: 0, y: 24 },
9188
9207
  animate: { opacity: 1, y: 0 },
9189
9208
  className: "space-y-6"
9190
9209
  },
9191
- /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React19.createElement(ShieldCheck, { className: "h-4 w-4" }), "Secure checkout"),
9192
- /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Provide delivery details"),
9193
- /* @__PURE__ */ React19.createElement("p", { className: "text-white/75 md:text-lg" }, "Our pharmacists handle every package with care. Share your shipping and billing information so we can dispatch your order within the next 12 hours."),
9194
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap gap-3" }, checkoutSteps.map((step) => /* @__PURE__ */ React19.createElement(
9210
+ /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React20.createElement(ShieldCheck, { className: "h-4 w-4" }), "Secure checkout"),
9211
+ /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Provide delivery details"),
9212
+ /* @__PURE__ */ React20.createElement("p", { className: "text-white/75 md:text-lg" }, "Our pharmacists handle every package with care. Share your shipping and billing information so we can dispatch your order within the next 12 hours."),
9213
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap gap-3" }, checkoutSteps.map((step) => /* @__PURE__ */ React20.createElement(
9195
9214
  "div",
9196
9215
  {
9197
9216
  key: step.id,
9198
9217
  className: `flex items-center gap-3 rounded-2xl px-4 py-2 text-sm font-semibold ${step.status === "complete" ? "bg-white/20 text-white" : step.status === "current" ? "bg-white text-primary-700" : "bg-white/10 text-white/60"}`
9199
9218
  },
9200
- /* @__PURE__ */ React19.createElement("span", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-white/20 text-xs font-bold" }, step.id),
9219
+ /* @__PURE__ */ React20.createElement("span", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-white/20 text-xs font-bold" }, step.id),
9201
9220
  step.label
9202
9221
  )))
9203
- )))), /* @__PURE__ */ React19.createElement("form", { onSubmit: handleSubmit(onSubmit) }, error && /* @__PURE__ */ React19.createElement("div", { className: "mb-4 text-red-600 font-semibold" }, error), /* @__PURE__ */ React19.createElement("div", { className: "pt-12 container mx-auto grid gap-10 px-4 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19.createElement(
9222
+ )))), /* @__PURE__ */ React20.createElement("form", { onSubmit: handleSubmit(onSubmit) }, error && /* @__PURE__ */ React20.createElement("div", { className: "mb-4 text-red-600 font-semibold" }, error), /* @__PURE__ */ React20.createElement("div", { className: "pt-12 container mx-auto grid gap-10 px-4 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20.createElement(
9204
9223
  motion.div,
9205
9224
  {
9206
9225
  initial: { opacity: 0, y: 24 },
9207
9226
  animate: { opacity: 1, y: 0 },
9208
9227
  className: "space-y-8"
9209
9228
  },
9210
- /* @__PURE__ */ React19.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center justify-between gap-4" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Shipping information"), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-500" }, "We use temperature-aware packaging and real-time tracking on every shipment.")), /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-primary-50 px-3 py-1 text-xs font-semibold uppercase tracking-wide text-primary-700" }, /* @__PURE__ */ React19.createElement(Truck, { className: "h-4 w-4" }), "Dispatch in 12h")), /* @__PURE__ */ React19.createElement("div", { className: "mt-6 grid grid-cols-1 gap-4 md:grid-cols-2" }, isDelivery && /* @__PURE__ */ React19.createElement("div", { className: "md:col-span-2 space-y-4" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("label", { className: "block font-semibold" }, "Select Address"), /* @__PURE__ */ React19.createElement(
9229
+ /* @__PURE__ */ React20.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center justify-between gap-4" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Shipping information"), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-500" }, "We use temperature-aware packaging and real-time tracking on every shipment.")), /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-primary-50 px-3 py-1 text-xs font-semibold uppercase tracking-wide text-primary-700" }, /* @__PURE__ */ React20.createElement(Truck, { className: "h-4 w-4" }), "Dispatch in 12h")), /* @__PURE__ */ React20.createElement("div", { className: "mt-6 grid grid-cols-1 gap-4 md:grid-cols-2" }, isDelivery && /* @__PURE__ */ React20.createElement("div", { className: "md:col-span-2 space-y-4" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("label", { className: "block font-semibold" }, "Select Address"), /* @__PURE__ */ React20.createElement(
9211
9230
  Button,
9212
9231
  {
9213
9232
  type: "button",
@@ -9218,15 +9237,15 @@ function CheckoutScreen() {
9218
9237
  setIsAddressModalOpen(true);
9219
9238
  }
9220
9239
  },
9221
- /* @__PURE__ */ React19.createElement(Plus, { className: "h-4 w-4 mr-2" }),
9240
+ /* @__PURE__ */ React20.createElement(Plus, { className: "h-4 w-4 mr-2" }),
9222
9241
  "Add New Address"
9223
- )), userAddresses.length > 0 ? /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4" }, userAddresses.map((addr) => /* @__PURE__ */ React19.createElement(
9242
+ )), userAddresses.length > 0 ? /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4" }, userAddresses.map((addr) => /* @__PURE__ */ React20.createElement(
9224
9243
  "label",
9225
9244
  {
9226
9245
  key: addr.id,
9227
9246
  className: `group relative flex items-start gap-3 p-4 rounded-2xl border ${selectedAddressId === addr.id ? "border-primary-500 bg-primary-50 shadow-sm" : "border-slate-200 bg-white"} cursor-pointer hover:border-primary-300 transition-colors`
9228
9247
  },
9229
- /* @__PURE__ */ React19.createElement(
9248
+ /* @__PURE__ */ React20.createElement(
9230
9249
  "input",
9231
9250
  {
9232
9251
  type: "radio",
@@ -9247,7 +9266,7 @@ function CheckoutScreen() {
9247
9266
  className: "mt-1"
9248
9267
  }
9249
9268
  ),
9250
- /* @__PURE__ */ React19.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold text-slate-900" }, addr.name), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-600" }, addr.street1), addr.street2 && /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-600" }, addr.street2), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-600" }, addr.city, ", ", addr.state, " ", addr.zip), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-600" }, addr.country), addr.phone && /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-600 mt-1" }, addr.phone), /* @__PURE__ */ React19.createElement("div", { className: "mt-3 flex items-center gap-2" }, addr.isDefault && /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-primary-100 px-2.5 py-0.5 text-xs font-semibold text-primary-700" }, "Default"), /* @__PURE__ */ React19.createElement(
9269
+ /* @__PURE__ */ React20.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold text-slate-900" }, addr.name), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-600" }, addr.street1), addr.street2 && /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-600" }, addr.street2), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-600" }, addr.city, ", ", addr.state, " ", addr.zip), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-600" }, addr.country), addr.phone && /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-600 mt-1" }, addr.phone), /* @__PURE__ */ React20.createElement("div", { className: "mt-3 flex items-center gap-2" }, addr.isDefault && /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-primary-100 px-2.5 py-0.5 text-xs font-semibold text-primary-700" }, "Default"), /* @__PURE__ */ React20.createElement(
9251
9270
  "button",
9252
9271
  {
9253
9272
  type: "button",
@@ -9258,9 +9277,9 @@ function CheckoutScreen() {
9258
9277
  },
9259
9278
  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-primary-300 hover:text-primary-600"
9260
9279
  },
9261
- /* @__PURE__ */ React19.createElement(Edit3, { className: "h-3.5 w-3.5" }),
9280
+ /* @__PURE__ */ React20.createElement(Edit3, { className: "h-3.5 w-3.5" }),
9262
9281
  " Edit"
9263
- ), /* @__PURE__ */ React19.createElement(
9282
+ ), /* @__PURE__ */ React20.createElement(
9264
9283
  "button",
9265
9284
  {
9266
9285
  type: "button",
@@ -9278,23 +9297,23 @@ function CheckoutScreen() {
9278
9297
  },
9279
9298
  className: "inline-flex items-center gap-1 rounded-full border border-red-200 px-2.5 py-0.5 text-xs font-semibold text-red-600 hover:border-red-300 hover:text-red-700"
9280
9299
  },
9281
- /* @__PURE__ */ React19.createElement(Trash2, { className: "h-3.5 w-3.5" }),
9300
+ /* @__PURE__ */ React20.createElement(Trash2, { className: "h-3.5 w-3.5" }),
9282
9301
  " Delete"
9283
9302
  )))
9284
- ))) : /* @__PURE__ */ React19.createElement("div", { className: "text-center py-8 bg-slate-50 rounded-lg" }, /* @__PURE__ */ React19.createElement(MapPin, { className: "h-12 w-12 mx-auto text-slate-400" }), /* @__PURE__ */ React19.createElement("p", { className: "mt-2 text-slate-600" }, "No addresses found"), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-500" }, "Add a new address to continue"))), !isDelivery && storeAddresses.length > 0 && /* @__PURE__ */ React19.createElement("div", { className: "md:col-span-2" }, /* @__PURE__ */ React19.createElement("label", { className: "block mb-2 font-semibold" }, "Select Pickup Location"), /* @__PURE__ */ React19.createElement(
9303
+ ))) : /* @__PURE__ */ React20.createElement("div", { className: "text-center py-8 bg-slate-50 rounded-lg" }, /* @__PURE__ */ React20.createElement(MapPin, { className: "h-12 w-12 mx-auto text-slate-400" }), /* @__PURE__ */ React20.createElement("p", { className: "mt-2 text-slate-600" }, "No addresses found"), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-500" }, "Add a new address to continue"))), !isDelivery && storeAddresses.length > 0 && /* @__PURE__ */ React20.createElement("div", { className: "md:col-span-2" }, /* @__PURE__ */ React20.createElement("label", { className: "block mb-2 font-semibold" }, "Select Pickup Location"), /* @__PURE__ */ React20.createElement(
9285
9304
  "select",
9286
9305
  {
9287
9306
  className: "w-full border rounded p-2",
9288
9307
  value: selectedStoreAddressId || "",
9289
9308
  onChange: (e) => setSelectedStoreAddressId(e.target.value)
9290
9309
  },
9291
- storeAddresses.map((addr) => /* @__PURE__ */ React19.createElement("option", { key: addr.id, value: addr.id }, addr.name, " - ", addr.street1, ", ", addr.city))
9310
+ storeAddresses.map((addr) => /* @__PURE__ */ React20.createElement("option", { key: addr.id, value: addr.id }, addr.name, " - ", addr.street1, ", ", addr.city))
9292
9311
  )))),
9293
- isDelivery && selectedAddressId && /* @__PURE__ */ React19.createElement(Card, { className: "p-6 border border-gray-200 rounded-xl shadow-sm" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3 text-xl font-semibold text-gray-900 pb-4 mb-6 border-b" }, /* @__PURE__ */ React19.createElement(Truck, { className: "text-accent w-6 h-6" }), /* @__PURE__ */ React19.createElement("span", null, "Shipping Options")), shippingRatesLoading ? /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-center py-12" }, /* @__PURE__ */ React19.createElement("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-accent" }), /* @__PURE__ */ React19.createElement("span", { className: "ml-3 text-gray-600" }, "Loading shipping options...")) : shippingRatesError ? /* @__PURE__ */ React19.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React19.createElement("div", { className: "w-16 h-16 mx-auto mb-4 bg-red-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React19.createElement("svg", { className: "w-8 h-8 text-red-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }))), /* @__PURE__ */ React19.createElement("p", { className: "text-red-500 text-lg font-medium" }, "Error loading shipping options"), /* @__PURE__ */ React19.createElement("p", { className: "text-red-400 text-sm mt-1" }, shippingRatesError)) : shippingRates && shippingRates.length > 0 ? /* @__PURE__ */ React19.createElement("div", { className: "space-y-4" }, shippingRates.map((rate) => {
9312
+ isDelivery && selectedAddressId && /* @__PURE__ */ React20.createElement(Card, { className: "p-6 border border-gray-200 rounded-xl shadow-sm" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3 text-xl font-semibold text-gray-900 pb-4 mb-6 border-b" }, /* @__PURE__ */ React20.createElement(Truck, { className: "text-accent w-6 h-6" }), /* @__PURE__ */ React20.createElement("span", null, "Shipping Options")), shippingRatesLoading ? /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-center py-12" }, /* @__PURE__ */ React20.createElement("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-accent" }), /* @__PURE__ */ React20.createElement("span", { className: "ml-3 text-gray-600" }, "Loading shipping options...")) : shippingRatesError ? /* @__PURE__ */ React20.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React20.createElement("div", { className: "w-16 h-16 mx-auto mb-4 bg-red-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React20.createElement("svg", { className: "w-8 h-8 text-red-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }))), /* @__PURE__ */ React20.createElement("p", { className: "text-red-500 text-lg font-medium" }, "Error loading shipping options"), /* @__PURE__ */ React20.createElement("p", { className: "text-red-400 text-sm mt-1" }, shippingRatesError)) : shippingRates && shippingRates.length > 0 ? /* @__PURE__ */ React20.createElement("div", { className: "space-y-4" }, shippingRates.map((rate) => {
9294
9313
  const isSelected = !!selectedShippingRateId && selectedShippingRateId === rate.objectId;
9295
9314
  const isTest = rate.test;
9296
9315
  const hasAttributes = rate.attributes && rate.attributes.length > 0;
9297
- return /* @__PURE__ */ React19.createElement(
9316
+ return /* @__PURE__ */ React20.createElement(
9298
9317
  "div",
9299
9318
  {
9300
9319
  key: rate.objectId,
@@ -9303,7 +9322,7 @@ function CheckoutScreen() {
9303
9322
  onMouseLeave: () => setShippingPrice(parseFloat(rate.amountLocal)),
9304
9323
  className: `relative p-5 border-2 rounded-xl cursor-pointer transition-all duration-200 hover:shadow-md ${isSelected ? "border-primary-500 bg-primary-50 ring-2 ring-primary-200" : "border-gray-200 hover:border-gray-300"}`
9305
9324
  },
9306
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-start justify-between" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-start gap-4 flex-1" }, /* @__PURE__ */ React19.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React19.createElement(
9325
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-start justify-between" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-start gap-4 flex-1" }, /* @__PURE__ */ React20.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React20.createElement(
9307
9326
  Image3,
9308
9327
  {
9309
9328
  src: rate.providerImage75 || "/placeholder-product.jpg",
@@ -9316,18 +9335,18 @@ function CheckoutScreen() {
9316
9335
  width: 48,
9317
9336
  height: 48
9318
9337
  }
9319
- )), /* @__PURE__ */ React19.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2 mb-2" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, rate.provider, " ", rate.servicelevel?.name), isTest && /* @__PURE__ */ React19.createElement("span", { className: "px-2 py-1 text-xs font-medium bg-orange-100 text-orange-800 rounded-full" }, "TEST")), hasAttributes && /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap gap-2 mb-3" }, rate.attributes.map((attr) => /* @__PURE__ */ React19.createElement(
9338
+ )), /* @__PURE__ */ React20.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-2 mb-2" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, rate.provider, " ", rate.servicelevel?.name), isTest && /* @__PURE__ */ React20.createElement("span", { className: "px-2 py-1 text-xs font-medium bg-orange-100 text-orange-800 rounded-full" }, "TEST")), hasAttributes && /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap gap-2 mb-3" }, rate.attributes.map((attr) => /* @__PURE__ */ React20.createElement(
9320
9339
  "span",
9321
9340
  {
9322
9341
  key: attr,
9323
9342
  className: `px-2 py-1 text-xs font-medium rounded-full ${attr === "FASTEST" ? "bg-green-100 text-green-800" : attr === "BESTVALUE" ? "bg-blue-100 text-blue-800" : attr === "CHEAPEST" ? "bg-purple-100 text-purple-800" : "bg-gray-100 text-gray-800"}`
9324
9343
  },
9325
9344
  attr
9326
- ))), /* @__PURE__ */ React19.createElement("div", { className: "space-y-1 text-sm text-gray-600" }, rate.durationTerms && /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" })), /* @__PURE__ */ React19.createElement("span", null, rate.durationTerms)), rate.estimatedDays && /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" })), /* @__PURE__ */ React19.createElement("span", null, "Estimated ", rate.estimatedDays, " day", rate.estimatedDays !== 1 ? "s" : "")), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M9 5H7a2 2 0 00-2 2v10a2 2 0 002 2h8a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" })), /* @__PURE__ */ React19.createElement("span", null, "Carrier: ", rate.provider)), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1" })), /* @__PURE__ */ React19.createElement("span", null, "Currency: ", rate.currency))))), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col items-end" }, /* @__PURE__ */ React19.createElement("div", { className: "text-2xl font-bold text-gray-900" }, formatPrice(parseFloat(rate.amount))), rate.amount !== rate.amountLocal && /* @__PURE__ */ React19.createElement("div", { className: "text-sm text-gray-500" }, rate.amountLocal, " ", rate.currencyLocal))),
9327
- isSelected && /* @__PURE__ */ React19.createElement("div", { className: "absolute top-3 right-3" }, /* @__PURE__ */ React19.createElement("div", { className: "w-6 h-6 bg-primary-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React19.createElement(Check, { className: "w-4 h-4 text-white" })))
9345
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "space-y-1 text-sm text-gray-600" }, rate.durationTerms && /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" })), /* @__PURE__ */ React20.createElement("span", null, rate.durationTerms)), rate.estimatedDays && /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" })), /* @__PURE__ */ React20.createElement("span", null, "Estimated ", rate.estimatedDays, " day", rate.estimatedDays !== 1 ? "s" : "")), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M9 5H7a2 2 0 00-2 2v10a2 2 0 002 2h8a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" })), /* @__PURE__ */ React20.createElement("span", null, "Carrier: ", rate.provider)), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1" })), /* @__PURE__ */ React20.createElement("span", null, "Currency: ", rate.currency))))), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col items-end" }, /* @__PURE__ */ React20.createElement("div", { className: "text-2xl font-bold text-gray-900" }, formatPrice(parseFloat(rate.amount))), rate.amount !== rate.amountLocal && /* @__PURE__ */ React20.createElement("div", { className: "text-sm text-gray-500" }, rate.amountLocal, " ", rate.currencyLocal))),
9346
+ isSelected && /* @__PURE__ */ React20.createElement("div", { className: "absolute top-3 right-3" }, /* @__PURE__ */ React20.createElement("div", { className: "w-6 h-6 bg-primary-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React20.createElement(Check, { className: "w-4 h-4 text-white" })))
9328
9347
  );
9329
- })) : /* @__PURE__ */ React19.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React19.createElement("div", { className: "w-16 h-16 mx-auto mb-4 bg-gray-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React19.createElement(Truck, { className: "w-8 h-8 text-gray-400" })), /* @__PURE__ */ React19.createElement("p", { className: "text-gray-500 text-lg font-medium" }, "No shipping options available"), /* @__PURE__ */ React19.createElement("p", { className: "text-gray-400 text-sm mt-1" }, "Please check the shipping address or try a different location.")))
9330
- ), /* @__PURE__ */ React19.createElement(
9348
+ })) : /* @__PURE__ */ React20.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React20.createElement("div", { className: "w-16 h-16 mx-auto mb-4 bg-gray-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React20.createElement(Truck, { className: "w-8 h-8 text-gray-400" })), /* @__PURE__ */ React20.createElement("p", { className: "text-gray-500 text-lg font-medium" }, "No shipping options available"), /* @__PURE__ */ React20.createElement("p", { className: "text-gray-400 text-sm mt-1" }, "Please check the shipping address or try a different location.")))
9349
+ ), /* @__PURE__ */ React20.createElement(
9331
9350
  motion.aside,
9332
9351
  {
9333
9352
  initial: { opacity: 0, y: 32 },
@@ -9335,22 +9354,22 @@ function CheckoutScreen() {
9335
9354
  transition: { duration: 0.5, ease: "easeOut", delay: 0.1 },
9336
9355
  className: "space-y-10 lg:sticky lg:top-24"
9337
9356
  },
9338
- /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-xl shadow-primary-50/50 transition hover:shadow-primary-100/60" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "Order Summary"), /* @__PURE__ */ React19.createElement("section", { className: "mt-6 space-y-4" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-xs font-semibold text-slate-700 uppercase tracking-wider" }, "Delivery Method"), /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-1 gap-3" }, [
9357
+ /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-xl shadow-primary-50/50 transition hover:shadow-primary-100/60" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "Order Summary"), /* @__PURE__ */ React20.createElement("section", { className: "mt-6 space-y-4" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-xs font-semibold text-slate-700 uppercase tracking-wider" }, "Delivery Method"), /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-1 gap-3" }, [
9339
9358
  {
9340
9359
  label: "Delivery",
9341
- icon: /* @__PURE__ */ React19.createElement(Truck, { className: "w-5 h-5" }),
9360
+ icon: /* @__PURE__ */ React20.createElement(Truck, { className: "w-5 h-5" }),
9342
9361
  value: true,
9343
9362
  desc: "Shipped to your address"
9344
9363
  },
9345
9364
  {
9346
9365
  label: "Pickup",
9347
- icon: /* @__PURE__ */ React19.createElement(MapPin, { className: "w-5 h-5" }),
9366
+ icon: /* @__PURE__ */ React20.createElement(MapPin, { className: "w-5 h-5" }),
9348
9367
  value: false,
9349
9368
  desc: "Collect from pharmacy"
9350
9369
  }
9351
9370
  ].map((option) => {
9352
9371
  const active = isDelivery === option.value;
9353
- return /* @__PURE__ */ React19.createElement(
9372
+ return /* @__PURE__ */ React20.createElement(
9354
9373
  "button",
9355
9374
  {
9356
9375
  key: option.label,
@@ -9359,18 +9378,18 @@ function CheckoutScreen() {
9359
9378
  "aria-pressed": active,
9360
9379
  className: `relative flex w-full items-center justify-between rounded-xl border-2 p-3 transition-all duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-400 focus-visible:ring-offset-2 ${active ? "border-primary-500 bg-primary-50 shadow-sm" : "border-slate-200 bg-white hover:border-primary-200 hover:bg-primary-50/40"}`
9361
9380
  },
9362
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement(
9381
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement(
9363
9382
  "div",
9364
9383
  {
9365
9384
  className: `p-2 rounded-lg ${active ? "bg-primary-100 text-primary-600" : "bg-slate-100 text-slate-600 group-hover:bg-slate-50"}`
9366
9385
  },
9367
9386
  option.icon
9368
- ), /* @__PURE__ */ React19.createElement("div", { className: "text-left" }, /* @__PURE__ */ React19.createElement("div", { className: "font-medium text-slate-900" }, option.label), /* @__PURE__ */ React19.createElement("p", { className: "text-xs text-slate-500" }, option.desc))),
9369
- active && /* @__PURE__ */ React19.createElement("div", { className: "w-5 h-5 rounded-full bg-primary-500 flex items-center justify-center text-white shadow-sm" }, /* @__PURE__ */ React19.createElement(Check, { className: "w-3 h-3" }))
9387
+ ), /* @__PURE__ */ React20.createElement("div", { className: "text-left" }, /* @__PURE__ */ React20.createElement("div", { className: "font-medium text-slate-900" }, option.label), /* @__PURE__ */ React20.createElement("p", { className: "text-xs text-slate-500" }, option.desc))),
9388
+ active && /* @__PURE__ */ React20.createElement("div", { className: "w-5 h-5 rounded-full bg-primary-500 flex items-center justify-center text-white shadow-sm" }, /* @__PURE__ */ React20.createElement(Check, { className: "w-3 h-3" }))
9370
9389
  );
9371
- }))), /* @__PURE__ */ React19.createElement("section", { className: "mt-8 space-y-4" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-xs font-semibold text-slate-700 uppercase tracking-wider" }, "Payment Method"), /* @__PURE__ */ React19.createElement("div", { className: "space-y-3" }, PAYMENT_METHODS.map((pm) => {
9390
+ }))), /* @__PURE__ */ React20.createElement("section", { className: "mt-8 space-y-4" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-xs font-semibold text-slate-700 uppercase tracking-wider" }, "Payment Method"), /* @__PURE__ */ React20.createElement("div", { className: "space-y-3" }, PAYMENT_METHODS.map((pm) => {
9372
9391
  const active = paymentMethod === pm.value;
9373
- return /* @__PURE__ */ React19.createElement(
9392
+ return /* @__PURE__ */ React20.createElement(
9374
9393
  "button",
9375
9394
  {
9376
9395
  key: pm.value,
@@ -9378,22 +9397,22 @@ function CheckoutScreen() {
9378
9397
  onClick: () => setPaymentMethod(pm.value),
9379
9398
  className: `w-full flex items-center justify-between rounded-xl border-2 p-3 transition-all duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 ${active ? `${pm.activeClass} border-current shadow-sm` : `${pm.className} border-slate-200 hover:border-primary-200 hover:shadow-sm`}`
9380
9399
  },
9381
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement(
9400
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement(
9382
9401
  "div",
9383
9402
  {
9384
9403
  className: `p-1.5 rounded-md ${pm.value === "Card" ? "bg-blue-100 text-blue-600" : pm.value === "Cash" ? "bg-amber-100 text-amber-600" : "bg-emerald-100 text-emerald-600"} ${active ? "bg-opacity-30" : "bg-opacity-100"}`
9385
9404
  },
9386
9405
  pm.icon
9387
- ), /* @__PURE__ */ React19.createElement("span", { className: "text-sm font-medium text-slate-900" }, pm.label)),
9388
- active && /* @__PURE__ */ React19.createElement("div", { className: "w-4 h-4 rounded-full bg-primary-500 flex items-center justify-center text-white shadow-sm" }, /* @__PURE__ */ React19.createElement(Check, { className: "w-2.5 h-2.5" }))
9406
+ ), /* @__PURE__ */ React20.createElement("span", { className: "text-sm font-medium text-slate-900" }, pm.label)),
9407
+ active && /* @__PURE__ */ React20.createElement("div", { className: "w-4 h-4 rounded-full bg-primary-500 flex items-center justify-center text-white shadow-sm" }, /* @__PURE__ */ React20.createElement(Check, { className: "w-2.5 h-2.5" }))
9389
9408
  );
9390
- })), /* @__PURE__ */ React19.createElement("p", { className: "text-xs text-slate-500 mt-2 pl-1 leading-relaxed" }, paymentMethod === "Card" && "You will be redirected to a secure payment page.", paymentMethod === "Cash" && "Pay with cash at the time of delivery or pickup.", paymentMethod === "Credit" && "Use your available account credit for this order.")), /* @__PURE__ */ React19.createElement("section", { className: "mt-8 pt-6 border-t border-slate-100" }, /* @__PURE__ */ React19.createElement("div", { className: "max-h-60 space-y-4 overflow-y-auto pr-2 scrollbar-thin scrollbar-thumb-slate-200 hover:scrollbar-thumb-slate-300" }, cart?.cartBody?.items?.map((item) => /* @__PURE__ */ React19.createElement(
9409
+ })), /* @__PURE__ */ React20.createElement("p", { className: "text-xs text-slate-500 mt-2 pl-1 leading-relaxed" }, paymentMethod === "Card" && "You will be redirected to a secure payment page.", paymentMethod === "Cash" && "Pay with cash at the time of delivery or pickup.", paymentMethod === "Credit" && "Use your available account credit for this order.")), /* @__PURE__ */ React20.createElement("section", { className: "mt-8 pt-6 border-t border-slate-100" }, /* @__PURE__ */ React20.createElement("div", { className: "max-h-60 space-y-4 overflow-y-auto pr-2 scrollbar-thin scrollbar-thumb-slate-200 hover:scrollbar-thumb-slate-300" }, cart?.cartBody?.items?.map((item) => /* @__PURE__ */ React20.createElement(
9391
9410
  "div",
9392
9411
  {
9393
9412
  key: item.productId,
9394
9413
  className: "flex gap-4 rounded-2xl border border-slate-100 p-4 hover:bg-slate-50/50 transition"
9395
9414
  },
9396
- /* @__PURE__ */ React19.createElement("div", { className: "flex h-16 w-16 items-center justify-center rounded-xl bg-slate-100 text-slate-400" }, /* @__PURE__ */ React19.createElement(
9415
+ /* @__PURE__ */ React20.createElement("div", { className: "flex h-16 w-16 items-center justify-center rounded-xl bg-slate-100 text-slate-400" }, /* @__PURE__ */ React20.createElement(
9397
9416
  Image3,
9398
9417
  {
9399
9418
  src: item.productVariantData.productMedia?.[0]?.file || "/placeholder-product.jpg",
@@ -9403,9 +9422,9 @@ function CheckoutScreen() {
9403
9422
  className: "object-contain"
9404
9423
  }
9405
9424
  )),
9406
- /* @__PURE__ */ React19.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React19.createElement("p", { className: "text-sm font-semibold text-slate-900" }, item?.productVariantData?.name), /* @__PURE__ */ React19.createElement("p", { className: "text-xs text-slate-500" }, "Qty ", item.quantity)),
9407
- /* @__PURE__ */ React19.createElement("p", { className: "text-sm font-semibold text-slate-900" }, formatPrice(item.productVariantData.finalPrice * item.quantity))
9408
- ))), /* @__PURE__ */ React19.createElement("div", { className: "mt-6 space-y-3 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("span", null, "Subtotal"), /* @__PURE__ */ React19.createElement("span", { className: "font-semibold text-slate-900" }, formatPrice(subtotal))), isDelivery && /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("span", null, "Shipping"), /* @__PURE__ */ React19.createElement("span", { className: "font-semibold" }, formatPrice(shippingPrice))), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("span", null, "Estimated tax"), /* @__PURE__ */ React19.createElement("span", { className: "font-semibold" }, formatPrice(tax))), /* @__PURE__ */ React19.createElement("div", { className: "rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between text-base font-semibold text-slate-900" }, /* @__PURE__ */ React19.createElement("span", null, "Total Due"), /* @__PURE__ */ React19.createElement("span", null, formatPrice(total))), /* @__PURE__ */ React19.createElement("p", { className: "mt-1 text-xs text-slate-500" }, "Tax is estimated. Final amount confirmed after payment.")))), /* @__PURE__ */ React19.createElement(
9425
+ /* @__PURE__ */ React20.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React20.createElement("p", { className: "text-sm font-semibold text-slate-900" }, item?.productVariantData?.name), /* @__PURE__ */ React20.createElement("p", { className: "text-xs text-slate-500" }, "Qty ", item.quantity)),
9426
+ /* @__PURE__ */ React20.createElement("p", { className: "text-sm font-semibold text-slate-900" }, formatPrice(item.productVariantData.finalPrice * item.quantity))
9427
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "mt-6 space-y-3 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("span", null, "Subtotal"), /* @__PURE__ */ React20.createElement("span", { className: "font-semibold text-slate-900" }, formatPrice(subtotal))), isDelivery && /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("span", null, "Shipping"), /* @__PURE__ */ React20.createElement("span", { className: "font-semibold" }, formatPrice(shippingPrice))), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("span", null, "Estimated tax"), /* @__PURE__ */ React20.createElement("span", { className: "font-semibold" }, formatPrice(tax))), /* @__PURE__ */ React20.createElement("div", { className: "rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between text-base font-semibold text-slate-900" }, /* @__PURE__ */ React20.createElement("span", null, "Total Due"), /* @__PURE__ */ React20.createElement("span", null, formatPrice(total))), /* @__PURE__ */ React20.createElement("p", { className: "mt-1 text-xs text-slate-500" }, "Tax is estimated. Final amount confirmed after payment.")))), /* @__PURE__ */ React20.createElement(
9409
9428
  Button,
9410
9429
  {
9411
9430
  type: "submit",
@@ -9413,11 +9432,11 @@ function CheckoutScreen() {
9413
9432
  isLoading: isSubmitting,
9414
9433
  className: "mt-6 w-full transition-transform hover:scale-[1.02] active:scale-[0.99]"
9415
9434
  },
9416
- /* @__PURE__ */ React19.createElement(CreditCard, { className: "h-5 w-5" }),
9435
+ /* @__PURE__ */ React20.createElement(CreditCard, { className: "h-5 w-5" }),
9417
9436
  isSubmitting ? "Placing order..." : "Place Secure Order"
9418
- ), /* @__PURE__ */ React19.createElement("p", { className: "mt-4 flex items-center justify-center gap-2 text-xs text-slate-500" }, /* @__PURE__ */ React19.createElement(Lock, { className: "h-4 w-4" }), "Fully encrypted checkout \u2014 cancel anytime before shipment.")),
9419
- /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/80 p-6 text-sm text-primary-700 shadow-sm hover:shadow-md transition-shadow" }, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold uppercase tracking-[0.3em] text-primary-800" }, "Why Patients Choose Us"), /* @__PURE__ */ React19.createElement("ul", { className: "mt-4 space-y-3 text-primary-700 leading-relaxed" }, /* @__PURE__ */ React19.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19.createElement(PackageCheck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React19.createElement("span", null, "Pharmacy-grade verification on every order.")), /* @__PURE__ */ React19.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19.createElement(ShieldCheck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React19.createElement("span", null, "Cold-chain logistics for sensitive medications.")), /* @__PURE__ */ React19.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19.createElement(Truck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React19.createElement("span", null, "Real-time tracking and SMS updates from prep to delivery."))))
9420
- ))), /* @__PURE__ */ React19.createElement(
9437
+ ), /* @__PURE__ */ React20.createElement("p", { className: "mt-4 flex items-center justify-center gap-2 text-xs text-slate-500" }, /* @__PURE__ */ React20.createElement(Lock, { className: "h-4 w-4" }), "Fully encrypted checkout \u2014 cancel anytime before shipment.")),
9438
+ /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/80 p-6 text-sm text-primary-700 shadow-sm hover:shadow-md transition-shadow" }, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold uppercase tracking-[0.3em] text-primary-800" }, "Why Patients Choose Us"), /* @__PURE__ */ React20.createElement("ul", { className: "mt-4 space-y-3 text-primary-700 leading-relaxed" }, /* @__PURE__ */ React20.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20.createElement(PackageCheck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React20.createElement("span", null, "Pharmacy-grade verification on every order.")), /* @__PURE__ */ React20.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20.createElement(ShieldCheck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React20.createElement("span", null, "Cold-chain logistics for sensitive medications.")), /* @__PURE__ */ React20.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20.createElement(Truck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React20.createElement("span", null, "Real-time tracking and SMS updates from prep to delivery."))))
9439
+ ))), /* @__PURE__ */ React20.createElement(
9421
9440
  AddressFormModal,
9422
9441
  {
9423
9442
  isOpen: isAddressModalOpen,
@@ -9472,7 +9491,7 @@ function LoginScreen() {
9472
9491
  setIsSubmitting(false);
9473
9492
  }
9474
9493
  };
9475
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("div", { className: "grid min-h-screen overflow-hidden bg-white lg:grid-cols-[1.1fr_0.9fr]" }, /* @__PURE__ */ React19.createElement(
9494
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("div", { className: "grid min-h-screen overflow-hidden bg-white lg:grid-cols-[1.1fr_0.9fr]" }, /* @__PURE__ */ React20.createElement(
9476
9495
  motion.section,
9477
9496
  {
9478
9497
  initial: { opacity: 0, x: -24 },
@@ -9480,18 +9499,18 @@ function LoginScreen() {
9480
9499
  transition: { duration: 0.4 },
9481
9500
  className: "relative flex flex-col justify-between bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] px-10 py-14 text-white"
9482
9501
  },
9483
- /* @__PURE__ */ React19.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React19.createElement(HeartPulse, { className: "h-4 w-4" }), "Hey Pharmacist"), /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold leading-tight lg:text-5xl" }, "Pharmacy-grade care for your household"), /* @__PURE__ */ React19.createElement("p", { className: "max-w-xl text-white/80" }, "Log in to unlock personalized regimens, pharmacist support, and fast delivery on wellness essentials curated just for you.")),
9484
- /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4 rounded-3xl bg-white/10 p-6 backdrop-blur" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement(ShieldCheck, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-white/80" }, "HIPAA-compliant security keeps your health information protected.")), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-white/80" }, "Pharmacists ready to chat in under 10 minutes for medication support."))),
9485
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React19.createElement("span", null, "Need an account?"), /* @__PURE__ */ React19.createElement(
9502
+ /* @__PURE__ */ React20.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React20.createElement(HeartPulse, { className: "h-4 w-4" }), "Hey Pharmacist"), /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold leading-tight lg:text-5xl" }, "Pharmacy-grade care for your household"), /* @__PURE__ */ React20.createElement("p", { className: "max-w-xl text-white/80" }, "Log in to unlock personalized regimens, pharmacist support, and fast delivery on wellness essentials curated just for you.")),
9503
+ /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4 rounded-3xl bg-white/10 p-6 backdrop-blur" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement(ShieldCheck, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-white/80" }, "HIPAA-compliant security keeps your health information protected.")), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-white/80" }, "Pharmacists ready to chat in under 10 minutes for medication support."))),
9504
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React20.createElement("span", null, "Need an account?"), /* @__PURE__ */ React20.createElement(
9486
9505
  Link8,
9487
9506
  {
9488
9507
  href: "/register",
9489
9508
  className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-2 font-semibold transition hover:bg-white/25"
9490
9509
  },
9491
9510
  "Create one now",
9492
- /* @__PURE__ */ React19.createElement(ArrowRight, { className: "h-4 w-4" })
9511
+ /* @__PURE__ */ React20.createElement(ArrowRight, { className: "h-4 w-4" })
9493
9512
  ))
9494
- ), /* @__PURE__ */ React19.createElement(
9513
+ ), /* @__PURE__ */ React20.createElement(
9495
9514
  motion.section,
9496
9515
  {
9497
9516
  initial: { opacity: 0, x: 24 },
@@ -9499,7 +9518,7 @@ function LoginScreen() {
9499
9518
  transition: { duration: 0.4 },
9500
9519
  className: "flex items-center justify-center px-6 py-12 lg:px-16"
9501
9520
  },
9502
- /* @__PURE__ */ React19.createElement("div", { className: "w-full max-w-md space-y-10" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-3xl font-bold text-slate-900" }, "Sign in"), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-500" }, "Welcome back! Enter your details to continue your personalized care plan.")), /* @__PURE__ */ React19.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-6 rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement(
9521
+ /* @__PURE__ */ React20.createElement("div", { className: "w-full max-w-md space-y-10" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-3xl font-bold text-slate-900" }, "Sign in"), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-500" }, "Welcome back! Enter your details to continue your personalized care plan.")), /* @__PURE__ */ React20.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-6 rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement(
9503
9522
  Input,
9504
9523
  {
9505
9524
  type: "email",
@@ -9508,7 +9527,7 @@ function LoginScreen() {
9508
9527
  ...register("email"),
9509
9528
  error: errors.email?.message
9510
9529
  }
9511
- )), /* @__PURE__ */ React19.createElement("div", { className: "relative" }, /* @__PURE__ */ React19.createElement(
9530
+ )), /* @__PURE__ */ React20.createElement("div", { className: "relative" }, /* @__PURE__ */ React20.createElement(
9512
9531
  Input,
9513
9532
  {
9514
9533
  type: showPassword ? "text" : "password",
@@ -9517,28 +9536,28 @@ function LoginScreen() {
9517
9536
  ...register("password"),
9518
9537
  error: errors.password?.message
9519
9538
  }
9520
- ), /* @__PURE__ */ React19.createElement(
9539
+ ), /* @__PURE__ */ React20.createElement(
9521
9540
  "button",
9522
9541
  {
9523
9542
  type: "button",
9524
9543
  onClick: () => setShowPassword((prev) => !prev),
9525
9544
  className: "absolute right-3 top-[42px] text-slate-400 transition hover:text-slate-600"
9526
9545
  },
9527
- showPassword ? /* @__PURE__ */ React19.createElement(EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React19.createElement(Eye, { className: "h-5 w-5" })
9528
- )), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between text-sm" }, /* @__PURE__ */ React19.createElement("label", { className: "flex items-center gap-2 text-slate-600" }, /* @__PURE__ */ React19.createElement(
9546
+ showPassword ? /* @__PURE__ */ React20.createElement(EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React20.createElement(Eye, { className: "h-5 w-5" })
9547
+ )), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between text-sm" }, /* @__PURE__ */ React20.createElement("label", { className: "flex items-center gap-2 text-slate-600" }, /* @__PURE__ */ React20.createElement(
9529
9548
  "input",
9530
9549
  {
9531
9550
  type: "checkbox",
9532
9551
  className: "h-4 w-4 rounded border-slate-300 text-primary-600 focus:ring-primary-500"
9533
9552
  }
9534
- ), "Remember me"), /* @__PURE__ */ React19.createElement(
9553
+ ), "Remember me"), /* @__PURE__ */ React20.createElement(
9535
9554
  Link8,
9536
9555
  {
9537
9556
  href: "/forgot-password",
9538
9557
  className: "font-medium text-primary-600 transition hover:text-primary-700"
9539
9558
  },
9540
9559
  "Forgot password?"
9541
- )), /* @__PURE__ */ React19.createElement(
9560
+ )), /* @__PURE__ */ React20.createElement(
9542
9561
  Button,
9543
9562
  {
9544
9563
  type: "submit",
@@ -9547,7 +9566,7 @@ function LoginScreen() {
9547
9566
  className: "w-full"
9548
9567
  },
9549
9568
  "Sign in securely"
9550
- )), /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-slate-50 p-6 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19.createElement(Lock, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold text-slate-800" }, "Secure by design"), /* @__PURE__ */ React19.createElement("p", null, "Encrypted sessions, multi-factor ready, and privacy-first policies keep your personal data safe.")))))
9569
+ )), /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-slate-50 p-6 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20.createElement(Lock, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold text-slate-800" }, "Secure by design"), /* @__PURE__ */ React20.createElement("p", null, "Encrypted sessions, multi-factor ready, and privacy-first policies keep your personal data safe.")))))
9551
9570
  )));
9552
9571
  }
9553
9572
  var registerSchema = z.object({
@@ -9597,7 +9616,7 @@ function RegisterScreen() {
9597
9616
  setIsSubmitting(false);
9598
9617
  }
9599
9618
  };
9600
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("div", { className: "grid min-h-screen overflow-hidden bg-white lg:grid-cols-[0.95fr_1.05fr]" }, /* @__PURE__ */ React19.createElement(
9619
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("div", { className: "grid min-h-screen overflow-hidden bg-white lg:grid-cols-[0.95fr_1.05fr]" }, /* @__PURE__ */ React20.createElement(
9601
9620
  motion.section,
9602
9621
  {
9603
9622
  initial: { opacity: 0, x: -24 },
@@ -9605,9 +9624,9 @@ function RegisterScreen() {
9605
9624
  transition: { duration: 0.4 },
9606
9625
  className: "flex flex-col justify-between bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] px-10 py-14 text-white"
9607
9626
  },
9608
- /* @__PURE__ */ React19.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React19.createElement(HeartPulse, { className: "h-4 w-4" }), "Join Hey Pharmacist"), /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold leading-tight lg:text-5xl" }, "Create your wellness account"), /* @__PURE__ */ React19.createElement("p", { className: "max-w-xl text-white/80" }, "Unlock concierge-level pharmacy support, curated product recommendations, and smarter refills designed for busy families.")),
9609
- /* @__PURE__ */ React19.createElement("div", { className: "space-y-4 rounded-3xl bg-white/10 p-6 backdrop-blur" }, BENEFITS.map((benefit) => /* @__PURE__ */ React19.createElement("div", { key: benefit, className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement(CheckCircle2, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-white/85" }, benefit)))),
9610
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React19.createElement("span", null, "Already part of the community?"), /* @__PURE__ */ React19.createElement(
9627
+ /* @__PURE__ */ React20.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React20.createElement(HeartPulse, { className: "h-4 w-4" }), "Join Hey Pharmacist"), /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold leading-tight lg:text-5xl" }, "Create your wellness account"), /* @__PURE__ */ React20.createElement("p", { className: "max-w-xl text-white/80" }, "Unlock concierge-level pharmacy support, curated product recommendations, and smarter refills designed for busy families.")),
9628
+ /* @__PURE__ */ React20.createElement("div", { className: "space-y-4 rounded-3xl bg-white/10 p-6 backdrop-blur" }, BENEFITS.map((benefit) => /* @__PURE__ */ React20.createElement("div", { key: benefit, className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement(CheckCircle2, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-white/85" }, benefit)))),
9629
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React20.createElement("span", null, "Already part of the community?"), /* @__PURE__ */ React20.createElement(
9611
9630
  Link8,
9612
9631
  {
9613
9632
  href: "/login",
@@ -9615,7 +9634,7 @@ function RegisterScreen() {
9615
9634
  },
9616
9635
  "Sign in"
9617
9636
  ))
9618
- ), /* @__PURE__ */ React19.createElement(
9637
+ ), /* @__PURE__ */ React20.createElement(
9619
9638
  motion.section,
9620
9639
  {
9621
9640
  initial: { opacity: 0, x: 24 },
@@ -9623,13 +9642,13 @@ function RegisterScreen() {
9623
9642
  transition: { duration: 0.4 },
9624
9643
  className: "flex items-center justify-center px-6 py-12 lg:px-16"
9625
9644
  },
9626
- /* @__PURE__ */ React19.createElement("div", { className: "w-full max-w-lg space-y-10" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-3xl font-bold text-slate-900" }, "Create an account"), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-500" }, "Start your personalized care journey with pharmacist-backed guidance.")), /* @__PURE__ */ React19.createElement(
9645
+ /* @__PURE__ */ React20.createElement("div", { className: "w-full max-w-lg space-y-10" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-3xl font-bold text-slate-900" }, "Create an account"), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-500" }, "Start your personalized care journey with pharmacist-backed guidance.")), /* @__PURE__ */ React20.createElement(
9627
9646
  "form",
9628
9647
  {
9629
9648
  onSubmit: handleSubmit(onSubmit),
9630
9649
  className: "space-y-6 rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-50"
9631
9650
  },
9632
- /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19.createElement(
9651
+ /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20.createElement(
9633
9652
  Input,
9634
9653
  {
9635
9654
  label: "First name",
@@ -9637,7 +9656,7 @@ function RegisterScreen() {
9637
9656
  ...register("firstName"),
9638
9657
  error: errors.firstName?.message
9639
9658
  }
9640
- ), /* @__PURE__ */ React19.createElement(
9659
+ ), /* @__PURE__ */ React20.createElement(
9641
9660
  Input,
9642
9661
  {
9643
9662
  label: "Last name",
@@ -9646,7 +9665,7 @@ function RegisterScreen() {
9646
9665
  error: errors.lastName?.message
9647
9666
  }
9648
9667
  )),
9649
- /* @__PURE__ */ React19.createElement(
9668
+ /* @__PURE__ */ React20.createElement(
9650
9669
  Input,
9651
9670
  {
9652
9671
  type: "email",
@@ -9656,7 +9675,7 @@ function RegisterScreen() {
9656
9675
  error: errors.email?.message
9657
9676
  }
9658
9677
  ),
9659
- /* @__PURE__ */ React19.createElement(
9678
+ /* @__PURE__ */ React20.createElement(
9660
9679
  Input,
9661
9680
  {
9662
9681
  type: "tel",
@@ -9666,7 +9685,7 @@ function RegisterScreen() {
9666
9685
  error: errors.phone?.message
9667
9686
  }
9668
9687
  ),
9669
- /* @__PURE__ */ React19.createElement("div", { className: "relative" }, /* @__PURE__ */ React19.createElement(
9688
+ /* @__PURE__ */ React20.createElement("div", { className: "relative" }, /* @__PURE__ */ React20.createElement(
9670
9689
  Input,
9671
9690
  {
9672
9691
  type: showPassword ? "text" : "password",
@@ -9675,16 +9694,16 @@ function RegisterScreen() {
9675
9694
  ...register("password"),
9676
9695
  error: errors.password?.message
9677
9696
  }
9678
- ), /* @__PURE__ */ React19.createElement(
9697
+ ), /* @__PURE__ */ React20.createElement(
9679
9698
  "button",
9680
9699
  {
9681
9700
  type: "button",
9682
9701
  onClick: () => setShowPassword((prev) => !prev),
9683
9702
  className: "absolute right-3 top-[42px] text-slate-400 transition hover:text-slate-600"
9684
9703
  },
9685
- showPassword ? /* @__PURE__ */ React19.createElement(EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React19.createElement(Eye, { className: "h-5 w-5" })
9704
+ showPassword ? /* @__PURE__ */ React20.createElement(EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React20.createElement(Eye, { className: "h-5 w-5" })
9686
9705
  )),
9687
- /* @__PURE__ */ React19.createElement("div", { className: "relative" }, /* @__PURE__ */ React19.createElement(
9706
+ /* @__PURE__ */ React20.createElement("div", { className: "relative" }, /* @__PURE__ */ React20.createElement(
9688
9707
  Input,
9689
9708
  {
9690
9709
  type: showConfirmPassword ? "text" : "password",
@@ -9693,16 +9712,16 @@ function RegisterScreen() {
9693
9712
  ...register("confirmPassword"),
9694
9713
  error: errors.confirmPassword?.message
9695
9714
  }
9696
- ), /* @__PURE__ */ React19.createElement(
9715
+ ), /* @__PURE__ */ React20.createElement(
9697
9716
  "button",
9698
9717
  {
9699
9718
  type: "button",
9700
9719
  onClick: () => setShowConfirmPassword((prev) => !prev),
9701
9720
  className: "absolute right-3 top-[42px] text-slate-400 transition hover:text-slate-600"
9702
9721
  },
9703
- showConfirmPassword ? /* @__PURE__ */ React19.createElement(EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React19.createElement(Eye, { className: "h-5 w-5" })
9722
+ showConfirmPassword ? /* @__PURE__ */ React20.createElement(EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React20.createElement(Eye, { className: "h-5 w-5" })
9704
9723
  )),
9705
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement(Shield, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19.createElement("span", null, "By creating an account, you agree to our", " ", /* @__PURE__ */ React19.createElement(Link8, { href: "/terms", className: "font-semibold text-primary-600 hover:text-primary-700" }, "Terms of Service"), " ", "and", " ", /* @__PURE__ */ React19.createElement(
9724
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement(Shield, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20.createElement("span", null, "By creating an account, you agree to our", " ", /* @__PURE__ */ React20.createElement(Link8, { href: "/terms", className: "font-semibold text-primary-600 hover:text-primary-700" }, "Terms of Service"), " ", "and", " ", /* @__PURE__ */ React20.createElement(
9706
9725
  Link8,
9707
9726
  {
9708
9727
  href: "/privacy",
@@ -9710,7 +9729,7 @@ function RegisterScreen() {
9710
9729
  },
9711
9730
  "Privacy Policy"
9712
9731
  ), ". We protect your information with bank-level encryption.")),
9713
- /* @__PURE__ */ React19.createElement(
9732
+ /* @__PURE__ */ React20.createElement(
9714
9733
  Button,
9715
9734
  {
9716
9735
  type: "submit",
@@ -9718,10 +9737,10 @@ function RegisterScreen() {
9718
9737
  isLoading: isSubmitting,
9719
9738
  className: "w-full"
9720
9739
  },
9721
- /* @__PURE__ */ React19.createElement(UserPlus, { className: "h-5 w-5" }),
9740
+ /* @__PURE__ */ React20.createElement(UserPlus, { className: "h-5 w-5" }),
9722
9741
  "Create my account"
9723
9742
  )
9724
- ), /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-slate-50 p-6 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19.createElement(Heart, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold text-slate-800" }, "Members love us"), /* @__PURE__ */ React19.createElement("p", null, "92% of patients report improved adherence after receiving pharmacist touchpoints through their Hey Pharmacist account.")))))
9743
+ ), /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-slate-50 p-6 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20.createElement(Heart, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold text-slate-800" }, "Members love us"), /* @__PURE__ */ React20.createElement("p", null, "92% of patients report improved adherence after receiving pharmacist touchpoints through their Hey Pharmacist account.")))))
9725
9744
  )));
9726
9745
  }
9727
9746
  var profileSchema = z.object({
@@ -9787,15 +9806,15 @@ function ProfileScreen() {
9787
9806
  href: "/account/addresses"
9788
9807
  }
9789
9808
  ];
9790
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement(
9809
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement(
9791
9810
  motion.div,
9792
9811
  {
9793
9812
  initial: { opacity: 0, y: 24 },
9794
9813
  animate: { opacity: 1, y: 0 },
9795
9814
  className: "flex flex-col gap-8 md:flex-row md:items-center md:justify-between"
9796
9815
  },
9797
- /* @__PURE__ */ React19.createElement("div", { className: "space-y-5" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React19.createElement(HeartPulse, { className: "h-4 w-4" }), "My account"), /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Hello, ", user.firstname, " ", user.lastname), /* @__PURE__ */ React19.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Manage profile details, shipping preferences, and personalized recommendations. Our pharmacists keep your care plan up to date."), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-white/80" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-2" }, /* @__PURE__ */ React19.createElement(ShieldCheck, { className: "h-4 w-4" }), "Account secured with multi-factor ready login"))),
9798
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col items-center gap-4 rounded-3xl bg-white/15 p-6 text-center backdrop-blur" }, /* @__PURE__ */ React19.createElement("div", { className: "flex h-24 w-24 items-center justify-center rounded-full bg-white/20 text-3xl font-bold text-white" }, getInitials(user?.firstname || "", user?.lastname || "") || ""), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-white/80" }, user.email), /* @__PURE__ */ React19.createElement(
9816
+ /* @__PURE__ */ React20.createElement("div", { className: "space-y-5" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React20.createElement(HeartPulse, { className: "h-4 w-4" }), "My account"), /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Hello, ", user.firstname, " ", user.lastname), /* @__PURE__ */ React20.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Manage profile details, shipping preferences, and personalized recommendations. Our pharmacists keep your care plan up to date."), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-white/80" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-2" }, /* @__PURE__ */ React20.createElement(ShieldCheck, { className: "h-4 w-4" }), "Account secured with multi-factor ready login"))),
9817
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col items-center gap-4 rounded-3xl bg-white/15 p-6 text-center backdrop-blur" }, /* @__PURE__ */ React20.createElement("div", { className: "flex h-24 w-24 items-center justify-center rounded-full bg-white/20 text-3xl font-bold text-white" }, getInitials(user?.firstname || "", user?.lastname || "") || ""), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-white/80" }, user.email), /* @__PURE__ */ React20.createElement(
9799
9818
  Button,
9800
9819
  {
9801
9820
  variant: "ghost",
@@ -9804,14 +9823,14 @@ function ProfileScreen() {
9804
9823
  },
9805
9824
  "Change password"
9806
9825
  ))
9807
- ))), /* @__PURE__ */ React19.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)]" }, /* @__PURE__ */ React19.createElement(
9826
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)]" }, /* @__PURE__ */ React20.createElement(
9808
9827
  motion.div,
9809
9828
  {
9810
9829
  initial: { opacity: 0, y: 24 },
9811
9830
  animate: { opacity: 1, y: 0 },
9812
9831
  className: "space-y-6"
9813
9832
  },
9814
- /* @__PURE__ */ React19.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Personal information"), /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-5 w-5 text-primary-500" })), /* @__PURE__ */ React19.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "mt-6 space-y-6" }, /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19.createElement(
9833
+ /* @__PURE__ */ React20.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Personal information"), /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-5 w-5 text-primary-500" })), /* @__PURE__ */ React20.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "mt-6 space-y-6" }, /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20.createElement(
9815
9834
  Input,
9816
9835
  {
9817
9836
  label: "First name",
@@ -9819,7 +9838,7 @@ function ProfileScreen() {
9819
9838
  ...register("firstName"),
9820
9839
  error: errors.firstName?.message
9821
9840
  }
9822
- ), /* @__PURE__ */ React19.createElement(
9841
+ ), /* @__PURE__ */ React20.createElement(
9823
9842
  Input,
9824
9843
  {
9825
9844
  label: "Last name",
@@ -9827,7 +9846,7 @@ function ProfileScreen() {
9827
9846
  ...register("lastName"),
9828
9847
  error: errors.lastName?.message
9829
9848
  }
9830
- )), /* @__PURE__ */ React19.createElement("div", { className: "relative" }, /* @__PURE__ */ React19.createElement(
9849
+ )), /* @__PURE__ */ React20.createElement("div", { className: "relative" }, /* @__PURE__ */ React20.createElement(
9831
9850
  Input,
9832
9851
  {
9833
9852
  type: "email",
@@ -9837,7 +9856,7 @@ function ProfileScreen() {
9837
9856
  ...register("email"),
9838
9857
  error: errors.email?.message
9839
9858
  }
9840
- ), /* @__PURE__ */ React19.createElement(Mail, { className: "absolute left-3 top-[38px] h-4 w-4 text-slate-400" })), /* @__PURE__ */ React19.createElement("div", { className: "relative" }, /* @__PURE__ */ React19.createElement(
9859
+ ), /* @__PURE__ */ React20.createElement(Mail, { className: "absolute left-3 top-[38px] h-4 w-4 text-slate-400" })), /* @__PURE__ */ React20.createElement("div", { className: "relative" }, /* @__PURE__ */ React20.createElement(
9841
9860
  Input,
9842
9861
  {
9843
9862
  type: "tel",
@@ -9847,7 +9866,7 @@ function ProfileScreen() {
9847
9866
  ...register("phone"),
9848
9867
  error: errors.phone?.message
9849
9868
  }
9850
- ), /* @__PURE__ */ React19.createElement(Phone, { className: "absolute left-3 top-[38px] h-4 w-4 text-slate-400" })), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap gap-4" }, /* @__PURE__ */ React19.createElement(
9869
+ ), /* @__PURE__ */ React20.createElement(Phone, { className: "absolute left-3 top-[38px] h-4 w-4 text-slate-400" })), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap gap-4" }, /* @__PURE__ */ React20.createElement(
9851
9870
  Button,
9852
9871
  {
9853
9872
  type: "submit",
@@ -9855,7 +9874,7 @@ function ProfileScreen() {
9855
9874
  isLoading: isSubmitting
9856
9875
  },
9857
9876
  "Save changes"
9858
- ), /* @__PURE__ */ React19.createElement(
9877
+ ), /* @__PURE__ */ React20.createElement(
9859
9878
  Button,
9860
9879
  {
9861
9880
  type: "button",
@@ -9865,16 +9884,16 @@ function ProfileScreen() {
9865
9884
  },
9866
9885
  "View recent orders"
9867
9886
  )))),
9868
- /* @__PURE__ */ React19.createElement("section", { className: "grid gap-4 md:grid-cols-2" }, quickLinks.map((item) => /* @__PURE__ */ React19.createElement(
9887
+ /* @__PURE__ */ React20.createElement("section", { className: "grid gap-4 md:grid-cols-2" }, quickLinks.map((item) => /* @__PURE__ */ React20.createElement(
9869
9888
  Link8,
9870
9889
  {
9871
9890
  key: item.href,
9872
9891
  href: item.href,
9873
9892
  className: "group rounded-3xl border border-slate-100 bg-white p-6 shadow-sm transition hover:-translate-y-1 hover:shadow-lg"
9874
9893
  },
9875
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement("span", { className: "rounded-2xl bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React19.createElement(item.icon, { className: "h-5 w-5" })), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "text-base font-semibold text-slate-900 group-hover:text-primary-600" }, item.label), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-500" }, item.description)))
9894
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement("span", { className: "rounded-2xl bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React20.createElement(item.icon, { className: "h-5 w-5" })), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "text-base font-semibold text-slate-900 group-hover:text-primary-600" }, item.label), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-500" }, item.description)))
9876
9895
  )))
9877
- ), /* @__PURE__ */ React19.createElement(
9896
+ ), /* @__PURE__ */ React20.createElement(
9878
9897
  motion.aside,
9879
9898
  {
9880
9899
  initial: { opacity: 0, y: 24 },
@@ -9882,7 +9901,7 @@ function ProfileScreen() {
9882
9901
  transition: { delay: 0.1 },
9883
9902
  className: "space-y-6"
9884
9903
  },
9885
- /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, "Care preferences"), /* @__PURE__ */ React19.createElement("p", { className: "mt-3 text-sm text-slate-600" }, "Customize how we support you. Set refill reminders or manage communication preferences to stay aligned with your wellness goals."), /* @__PURE__ */ React19.createElement(
9904
+ /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, "Care preferences"), /* @__PURE__ */ React20.createElement("p", { className: "mt-3 text-sm text-slate-600" }, "Customize how we support you. Set refill reminders or manage communication preferences to stay aligned with your wellness goals."), /* @__PURE__ */ React20.createElement(
9886
9905
  Button,
9887
9906
  {
9888
9907
  variant: "outline",
@@ -9891,21 +9910,21 @@ function ProfileScreen() {
9891
9910
  },
9892
9911
  "Manage preferences"
9893
9912
  )),
9894
- /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Pharmacist tip"), /* @__PURE__ */ React19.createElement("p", { className: "mt-3 leading-relaxed" }, "Keep your phone number current so pharmacists can reach you quickly with dosage advice or time-sensitive updates about your order.")),
9895
- /* @__PURE__ */ React19.createElement(
9913
+ /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Pharmacist tip"), /* @__PURE__ */ React20.createElement("p", { className: "mt-3 leading-relaxed" }, "Keep your phone number current so pharmacists can reach you quickly with dosage advice or time-sensitive updates about your order.")),
9914
+ /* @__PURE__ */ React20.createElement(
9896
9915
  "button",
9897
9916
  {
9898
9917
  onClick: handleLogout,
9899
9918
  className: "flex w-full items-center justify-center gap-2 rounded-3xl border border-red-200 bg-red-50 px-4 py-3 text-sm font-semibold text-red-600 transition hover:bg-red-100"
9900
9919
  },
9901
- /* @__PURE__ */ React19.createElement(LogOut, { className: "h-4 w-4" }),
9920
+ /* @__PURE__ */ React20.createElement(LogOut, { className: "h-4 w-4" }),
9902
9921
  "Log out"
9903
9922
  )
9904
9923
  )))));
9905
9924
  }
9906
9925
  function OrderCard({ order }) {
9907
9926
  const config = order.orderStatus;
9908
- return /* @__PURE__ */ React19.createElement(
9927
+ return /* @__PURE__ */ React20.createElement(
9909
9928
  motion.div,
9910
9929
  {
9911
9930
  initial: { opacity: 0, y: 20 },
@@ -9913,9 +9932,9 @@ function OrderCard({ order }) {
9913
9932
  whileHover: { y: -4 },
9914
9933
  className: "bg-white rounded-2xl p-6 shadow-sm hover:shadow-xl transition-all duration-300 border border-gray-100"
9915
9934
  },
9916
- /* @__PURE__ */ React19.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-bold text-gray-900 flex items-center gap-2" }, /* @__PURE__ */ React19.createElement(Package, { className: "w-5 h-5 text-primary-600" }), "Order #", order?._id?.slice(0, 6) || ""), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-gray-500 mt-1 flex items-center gap-2" }, /* @__PURE__ */ React19.createElement(Calendar, { className: "w-4 h-4" }), formatDate(order.createdAt || /* @__PURE__ */ new Date(), "long"))), /* @__PURE__ */ React19.createElement(Badge, { variant: config }, config)),
9917
- /* @__PURE__ */ React19.createElement("div", { className: "space-y-2 mb-4" }, order.items?.slice(0, 2).map((item) => /* @__PURE__ */ React19.createElement("div", { key: item.productVariantId, className: "flex items-center gap-3 text-sm" }, /* @__PURE__ */ React19.createElement(Image3, { src: item?.productVariantData?.productMedia?.[0]?.file || "/placeholder-product.jpg", alt: item?.productVariantData?.name || "Product image", width: 48, height: 48, className: "w-12 h-12 rounded-lg bg-gray-100 flex-shrink-0" }), /* @__PURE__ */ React19.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React19.createElement("p", { className: "font-medium text-gray-900 truncate" }, item.productVariantData.name), /* @__PURE__ */ React19.createElement("p", { className: "text-gray-500" }, "Qty: ", item.quantity)), /* @__PURE__ */ React19.createElement("p", { className: "font-semibold text-gray-900" }, formatPrice(item.productVariantData.finalPrice)))), order.items?.length && order.items?.length > 2 && /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-gray-500 pl-15" }, "+", order.items.length - 2, " more item", order.items.length - 2 > 1 ? "s" : "")),
9918
- /* @__PURE__ */ React19.createElement("div", { className: "flex justify-between items-center pt-4 border-t border-gray-200" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-gray-500" }, "Total Amount"), /* @__PURE__ */ React19.createElement("p", { className: "text-2xl font-bold text-gray-900" }, formatPrice(order.grandTotal || 0))), /* @__PURE__ */ React19.createElement("div", { className: "flex gap-2" }, order.payment.paymentStatus !== "Paid" /* Paid */ && order.payment.paymentMethod === "Card" /* Card */ && /* @__PURE__ */ React19.createElement(
9935
+ /* @__PURE__ */ React20.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-bold text-gray-900 flex items-center gap-2" }, /* @__PURE__ */ React20.createElement(Package, { className: "w-5 h-5 text-primary-600" }), "Order #", order?._id?.slice(0, 6) || ""), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-gray-500 mt-1 flex items-center gap-2" }, /* @__PURE__ */ React20.createElement(Calendar, { className: "w-4 h-4" }), formatDate(order.createdAt || /* @__PURE__ */ new Date(), "long"))), /* @__PURE__ */ React20.createElement(Badge, { variant: config }, config)),
9936
+ /* @__PURE__ */ React20.createElement("div", { className: "space-y-2 mb-4" }, order.items?.slice(0, 2).map((item) => /* @__PURE__ */ React20.createElement("div", { key: item.productVariantId, className: "flex items-center gap-3 text-sm" }, /* @__PURE__ */ React20.createElement(Image3, { src: item?.productVariantData?.productMedia?.[0]?.file || "/placeholder-product.jpg", alt: item?.productVariantData?.name || "Product image", width: 48, height: 48, className: "w-12 h-12 rounded-lg bg-gray-100 flex-shrink-0" }), /* @__PURE__ */ React20.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React20.createElement("p", { className: "font-medium text-gray-900 truncate" }, item.productVariantData.name), /* @__PURE__ */ React20.createElement("p", { className: "text-gray-500" }, "Qty: ", item.quantity)), /* @__PURE__ */ React20.createElement("p", { className: "font-semibold text-gray-900" }, formatPrice(item.productVariantData.finalPrice)))), order.items?.length && order.items?.length > 2 && /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-gray-500 pl-15" }, "+", order.items.length - 2, " more item", order.items.length - 2 > 1 ? "s" : "")),
9937
+ /* @__PURE__ */ React20.createElement("div", { className: "flex justify-between items-center pt-4 border-t border-gray-200" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-gray-500" }, "Total Amount"), /* @__PURE__ */ React20.createElement("p", { className: "text-2xl font-bold text-gray-900" }, formatPrice(order.grandTotal || 0))), /* @__PURE__ */ React20.createElement("div", { className: "flex gap-2" }, order.payment.paymentStatus !== "Paid" /* Paid */ && order.payment.paymentMethod === "Card" /* Card */ && /* @__PURE__ */ React20.createElement(
9919
9938
  "a",
9920
9939
  {
9921
9940
  href: order?.payment?.paymentIntent?.hostedInvoiceUrl || "",
@@ -9923,7 +9942,7 @@ function OrderCard({ order }) {
9923
9942
  rel: "noopener noreferrer",
9924
9943
  className: "inline-flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors"
9925
9944
  },
9926
- /* @__PURE__ */ React19.createElement(CreditCard, { className: "w-4 h-4" }),
9945
+ /* @__PURE__ */ React20.createElement(CreditCard, { className: "w-4 h-4" }),
9927
9946
  "Pay Now"
9928
9947
  )))
9929
9948
  );
@@ -10079,7 +10098,7 @@ function FilterChips({
10079
10098
  document.removeEventListener("mousedown", handleClickOutside);
10080
10099
  };
10081
10100
  }, [isOverflowOpen]);
10082
- return /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-3 md:flex-row md:items-center md:gap-4" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-3 py-1 text-xs font-semibold uppercase tracking-wide text-slate-600" }, /* @__PURE__ */ React19.createElement(Icon, { className: "h-4 w-4" }), label), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-3" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap gap-2" }, visibleFilters.map((filter) => /* @__PURE__ */ React19.createElement(
10101
+ return /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-3 md:flex-row md:items-center md:gap-4" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-3 py-1 text-xs font-semibold uppercase tracking-wide text-slate-600" }, /* @__PURE__ */ React20.createElement(Icon, { className: "h-4 w-4" }), label), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-3" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap gap-2" }, visibleFilters.map((filter) => /* @__PURE__ */ React20.createElement(
10083
10102
  "button",
10084
10103
  {
10085
10104
  key: filter,
@@ -10088,16 +10107,16 @@ function FilterChips({
10088
10107
  className: `rounded-full border px-3 py-1 text-sm font-medium transition ${selected === filter ? `border-${color}-600 bg-${color}-600 text-white shadow-lg shadow-${color}-500/30` : `border-slate-200 bg-slate-50 text-slate-600 hover:border-${color}-300 hover:text-${color}-600`}`
10089
10108
  },
10090
10109
  filter
10091
- ))), overflowFilters.length > 0 && /* @__PURE__ */ React19.createElement("div", { className: "relative", ref: overflowMenuRef }, /* @__PURE__ */ React19.createElement(
10110
+ ))), overflowFilters.length > 0 && /* @__PURE__ */ React20.createElement("div", { className: "relative", ref: overflowMenuRef }, /* @__PURE__ */ React20.createElement(
10092
10111
  "button",
10093
10112
  {
10094
10113
  type: "button",
10095
10114
  onClick: () => setIsOverflowOpen((prev) => !prev),
10096
10115
  className: `flex items-center gap-2 rounded-full border px-3 py-1 text-sm font-medium transition ${overflowFilters.includes(selected) ? `border-${color}-600 bg-${color}-50 text-${color}-700 shadow-lg shadow-${color}-500/20` : "border-slate-200 bg-white text-slate-600 hover:border-slate-300"}`
10097
10116
  },
10098
- /* @__PURE__ */ React19.createElement("span", null, overflowFilters.includes(selected) ? selected : "More"),
10099
- /* @__PURE__ */ React19.createElement("span", { className: `inline-flex h-5 min-w-[1.5rem] items-center justify-center rounded-full bg-${color}-100 px-1 text-xs font-semibold text-${color}-600` }, overflowFilters.length)
10100
- ), /* @__PURE__ */ React19.createElement(AnimatePresence, null, isOverflowOpen && /* @__PURE__ */ React19.createElement(
10117
+ /* @__PURE__ */ React20.createElement("span", null, overflowFilters.includes(selected) ? selected : "More"),
10118
+ /* @__PURE__ */ React20.createElement("span", { className: `inline-flex h-5 min-w-[1.5rem] items-center justify-center rounded-full bg-${color}-100 px-1 text-xs font-semibold text-${color}-600` }, overflowFilters.length)
10119
+ ), /* @__PURE__ */ React20.createElement(AnimatePresence, null, isOverflowOpen && /* @__PURE__ */ React20.createElement(
10101
10120
  motion.div,
10102
10121
  {
10103
10122
  initial: { opacity: 0, y: 8 },
@@ -10106,7 +10125,7 @@ function FilterChips({
10106
10125
  transition: { duration: 0.15 },
10107
10126
  className: "absolute right-0 z-50 mt-2 w-64 rounded-2xl border border-slate-100 bg-white shadow-xl shadow-primary-50"
10108
10127
  },
10109
- /* @__PURE__ */ React19.createElement("div", { className: "border-b border-slate-100 px-4 py-3" }, /* @__PURE__ */ React19.createElement("div", { className: "relative" }, /* @__PURE__ */ React19.createElement(Search, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400" }), /* @__PURE__ */ React19.createElement(
10128
+ /* @__PURE__ */ React20.createElement("div", { className: "border-b border-slate-100 px-4 py-3" }, /* @__PURE__ */ React20.createElement("div", { className: "relative" }, /* @__PURE__ */ React20.createElement(Search, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400" }), /* @__PURE__ */ React20.createElement(
10110
10129
  "input",
10111
10130
  {
10112
10131
  type: "text",
@@ -10116,7 +10135,7 @@ function FilterChips({
10116
10135
  className: "w-full rounded-full border border-slate-200 bg-slate-50 py-2 pl-9 pr-3 text-sm text-slate-600 outline-none transition focus:border-primary-300 focus:bg-white focus:ring-2 focus:ring-primary-200"
10117
10136
  }
10118
10137
  ))),
10119
- /* @__PURE__ */ React19.createElement("div", { className: "max-h-60 overflow-y-auto px-2 py-2" }, filteredOverflowFilters.length > 0 ? filteredOverflowFilters.map((filter) => /* @__PURE__ */ React19.createElement(
10138
+ /* @__PURE__ */ React20.createElement("div", { className: "max-h-60 overflow-y-auto px-2 py-2" }, filteredOverflowFilters.length > 0 ? filteredOverflowFilters.map((filter) => /* @__PURE__ */ React20.createElement(
10120
10139
  "button",
10121
10140
  {
10122
10141
  key: filter,
@@ -10127,10 +10146,10 @@ function FilterChips({
10127
10146
  },
10128
10147
  className: `flex w-full items-center justify-between rounded-xl px-3 py-2 text-sm font-medium transition ${selected === filter ? `bg-${color}-600 text-white shadow-lg shadow-${color}-500/30` : "text-slate-600 hover:bg-slate-100"}`
10129
10148
  },
10130
- /* @__PURE__ */ React19.createElement("span", null, filter),
10131
- selected === filter && /* @__PURE__ */ React19.createElement(Check, { className: "h-4 w-4" })
10132
- )) : /* @__PURE__ */ React19.createElement("p", { className: "px-3 py-4 text-sm text-slate-500" }, "No items found.")),
10133
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between gap-2 border-t border-slate-100 px-4 py-3" }, /* @__PURE__ */ React19.createElement("span", { className: "text-xs font-semibold uppercase tracking-wide text-slate-400" }, "Quick actions"), /* @__PURE__ */ React19.createElement(
10149
+ /* @__PURE__ */ React20.createElement("span", null, filter),
10150
+ selected === filter && /* @__PURE__ */ React20.createElement(Check, { className: "h-4 w-4" })
10151
+ )) : /* @__PURE__ */ React20.createElement("p", { className: "px-3 py-4 text-sm text-slate-500" }, "No items found.")),
10152
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between gap-2 border-t border-slate-100 px-4 py-3" }, /* @__PURE__ */ React20.createElement("span", { className: "text-xs font-semibold uppercase tracking-wide text-slate-400" }, "Quick actions"), /* @__PURE__ */ React20.createElement(
10134
10153
  "button",
10135
10154
  {
10136
10155
  type: "button",
@@ -10187,23 +10206,23 @@ function OrdersScreen() {
10187
10206
  document.removeEventListener("mousedown", handleClickOutside);
10188
10207
  };
10189
10208
  }, [isOverflowOpen]);
10190
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement(
10209
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement(
10191
10210
  motion.div,
10192
10211
  {
10193
10212
  initial: { opacity: 0, y: 24 },
10194
10213
  animate: { opacity: 1, y: 0 },
10195
10214
  className: "space-y-6"
10196
10215
  },
10197
- /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React19.createElement(CalendarDays, { className: "h-4 w-4" }), "Order history"),
10198
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "All of your pharmacy orders"), /* @__PURE__ */ React19.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Access receipts, shipping statuses, and reorder suggestions in one organized timeline curated by our pharmacists.")), /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur" }, /* @__PURE__ */ React19.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick tip"), /* @__PURE__ */ React19.createElement("p", { className: "mt-3 text-sm text-white/80" }, "Use filters to review previous prescriptions, reorder favorites, or download invoices for insurance claims.")))
10199
- ))), /* @__PURE__ */ React19.createElement("div", { className: "relative -mt-16 pb-16 container mx-auto px-4" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19.createElement(
10216
+ /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React20.createElement(CalendarDays, { className: "h-4 w-4" }), "Order history"),
10217
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "All of your pharmacy orders"), /* @__PURE__ */ React20.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Access receipts, shipping statuses, and reorder suggestions in one organized timeline curated by our pharmacists.")), /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur" }, /* @__PURE__ */ React20.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick tip"), /* @__PURE__ */ React20.createElement("p", { className: "mt-3 text-sm text-white/80" }, "Use filters to review previous prescriptions, reorder favorites, or download invoices for insurance claims.")))
10218
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "relative -mt-16 pb-16 container mx-auto px-4" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20.createElement(
10200
10219
  motion.div,
10201
10220
  {
10202
10221
  initial: { opacity: 0, y: 24 },
10203
10222
  animate: { opacity: 1, y: 0 },
10204
10223
  className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50"
10205
10224
  },
10206
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3 text-sm text-slate-500" }, /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-4 w-4 text-primary-500" }), /* @__PURE__ */ React19.createElement("span", null, "Explore your complete order archive with pharmacist notes.")), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-4 md:items-end" }, /* @__PURE__ */ React19.createElement(
10225
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3 text-sm text-slate-500" }, /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-4 w-4 text-primary-500" }), /* @__PURE__ */ React20.createElement("span", null, "Explore your complete order archive with pharmacist notes.")), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-4 md:items-end" }, /* @__PURE__ */ React20.createElement(
10207
10226
  FilterChips,
10208
10227
  {
10209
10228
  label: "Status filters",
@@ -10217,7 +10236,7 @@ function OrdersScreen() {
10217
10236
  maxVisible: MAX_VISIBLE_FILTERS,
10218
10237
  variant: "primary"
10219
10238
  }
10220
- ), /* @__PURE__ */ React19.createElement(
10239
+ ), /* @__PURE__ */ React20.createElement(
10221
10240
  FilterChips,
10222
10241
  {
10223
10242
  label: "Payment status",
@@ -10232,7 +10251,7 @@ function OrdersScreen() {
10232
10251
  variant: "primary"
10233
10252
  }
10234
10253
  ))),
10235
- /* @__PURE__ */ React19.createElement("div", { className: "mt-6 space-y-4" }, isLoading ? Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React19.createElement(OrderCardSkeleton, { key: index })) : hasOrders ? filteredOrders.map((order) => /* @__PURE__ */ React19.createElement(OrderCard, { key: order.id, order })) : /* @__PURE__ */ React19.createElement(
10254
+ /* @__PURE__ */ React20.createElement("div", { className: "mt-6 space-y-4" }, isLoading ? Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React20.createElement(OrderCardSkeleton, { key: index })) : hasOrders ? filteredOrders.map((order) => /* @__PURE__ */ React20.createElement(OrderCard, { key: order.id, order })) : /* @__PURE__ */ React20.createElement(
10236
10255
  EmptyState,
10237
10256
  {
10238
10257
  icon: Package,
@@ -10242,16 +10261,16 @@ function OrdersScreen() {
10242
10261
  onAction: () => router.push("/shop")
10243
10262
  }
10244
10263
  )),
10245
- !isLoading && pagination.totalPages > 1 && hasOrders && /* @__PURE__ */ React19.createElement("div", { className: "mt-10 flex flex-wrap items-center justify-center gap-4" }, /* @__PURE__ */ React19.createElement(
10264
+ !isLoading && pagination.totalPages > 1 && hasOrders && /* @__PURE__ */ React20.createElement("div", { className: "mt-10 flex flex-wrap items-center justify-center gap-4" }, /* @__PURE__ */ React20.createElement(
10246
10265
  Button,
10247
10266
  {
10248
10267
  variant: "outline",
10249
10268
  onClick: () => setPage((current) => Math.max(1, current - 1)),
10250
10269
  disabled: page === 1
10251
10270
  },
10252
- /* @__PURE__ */ React19.createElement(ChevronLeft, { className: "h-5 w-5" }),
10271
+ /* @__PURE__ */ React20.createElement(ChevronLeft, { className: "h-5 w-5" }),
10253
10272
  "Previous"
10254
- ), /* @__PURE__ */ React19.createElement("span", { className: "text-sm font-semibold text-slate-600" }, "Page ", page, " of ", pagination.totalPages), /* @__PURE__ */ React19.createElement(
10273
+ ), /* @__PURE__ */ React20.createElement("span", { className: "text-sm font-semibold text-slate-600" }, "Page ", page, " of ", pagination.totalPages), /* @__PURE__ */ React20.createElement(
10255
10274
  Button,
10256
10275
  {
10257
10276
  variant: "outline",
@@ -10259,7 +10278,7 @@ function OrdersScreen() {
10259
10278
  disabled: page === pagination.totalPages
10260
10279
  },
10261
10280
  "Next",
10262
- /* @__PURE__ */ React19.createElement(ChevronRight, { className: "h-5 w-5" })
10281
+ /* @__PURE__ */ React20.createElement(ChevronRight, { className: "h-5 w-5" })
10263
10282
  ))
10264
10283
  ))));
10265
10284
  }
@@ -10267,17 +10286,17 @@ function CurrentOrdersScreen() {
10267
10286
  const router = useRouter();
10268
10287
  const { orders, isLoading } = useCurrentOrders();
10269
10288
  const hasOrders = orders.length > 0;
10270
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19.createElement(
10289
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20.createElement(
10271
10290
  motion.div,
10272
10291
  {
10273
10292
  initial: { opacity: 0, y: 24 },
10274
10293
  animate: { opacity: 1, y: 0 },
10275
10294
  className: "space-y-4"
10276
10295
  },
10277
- /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React19.createElement(Truck, { className: "h-4 w-4" }), "Live order tracking"),
10278
- /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Current orders"),
10279
- /* @__PURE__ */ React19.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Follow your pharmacy orders from preparation to delivery. Real-time updates, SMS alerts, and pharmacist oversight come standard.")
10280
- ), /* @__PURE__ */ React19.createElement(
10296
+ /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React20.createElement(Truck, { className: "h-4 w-4" }), "Live order tracking"),
10297
+ /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Current orders"),
10298
+ /* @__PURE__ */ React20.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Follow your pharmacy orders from preparation to delivery. Real-time updates, SMS alerts, and pharmacist oversight come standard.")
10299
+ ), /* @__PURE__ */ React20.createElement(
10281
10300
  motion.div,
10282
10301
  {
10283
10302
  initial: { opacity: 0, y: 24 },
@@ -10285,24 +10304,24 @@ function CurrentOrdersScreen() {
10285
10304
  transition: { delay: 0.1 },
10286
10305
  className: "rounded-3xl bg-white/15 p-6 backdrop-blur"
10287
10306
  },
10288
- /* @__PURE__ */ React19.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick actions"),
10289
- /* @__PURE__ */ React19.createElement("div", { className: "mt-4 space-y-3 text-sm text-white/80" }, /* @__PURE__ */ React19.createElement(
10307
+ /* @__PURE__ */ React20.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick actions"),
10308
+ /* @__PURE__ */ React20.createElement("div", { className: "mt-4 space-y-3 text-sm text-white/80" }, /* @__PURE__ */ React20.createElement(
10290
10309
  Link8,
10291
10310
  {
10292
10311
  href: "/orders",
10293
10312
  className: "flex items-center justify-between rounded-2xl bg-white/10 px-4 py-3 transition hover:bg-white/20"
10294
10313
  },
10295
- /* @__PURE__ */ React19.createElement("span", { className: "font-semibold text-white" }, "View order history"),
10296
- /* @__PURE__ */ React19.createElement(ArrowUpRight, { className: "h-4 w-4" })
10297
- ), /* @__PURE__ */ React19.createElement("p", null, "Need help fast? Chat with a pharmacist and we will triage your request in under 10 minutes."))
10298
- )))), /* @__PURE__ */ React19.createElement("div", { className: "relative -mt-16 pb-16" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19.createElement(
10314
+ /* @__PURE__ */ React20.createElement("span", { className: "font-semibold text-white" }, "View order history"),
10315
+ /* @__PURE__ */ React20.createElement(ArrowUpRight, { className: "h-4 w-4" })
10316
+ ), /* @__PURE__ */ React20.createElement("p", null, "Need help fast? Chat with a pharmacist and we will triage your request in under 10 minutes."))
10317
+ )))), /* @__PURE__ */ React20.createElement("div", { className: "relative -mt-16 pb-16" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20.createElement(
10299
10318
  motion.section,
10300
10319
  {
10301
10320
  initial: { opacity: 0, y: 24 },
10302
10321
  animate: { opacity: 1, y: 0 },
10303
10322
  className: "grid gap-6 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]"
10304
10323
  },
10305
- /* @__PURE__ */ React19.createElement("div", { className: "space-y-6" }, isLoading ? /* @__PURE__ */ React19.createElement("div", { className: "space-y-4" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React19.createElement(OrderCardSkeleton, { key: index }))) : hasOrders ? /* @__PURE__ */ React19.createElement("div", { className: "space-y-4" }, orders.map((order) => /* @__PURE__ */ React19.createElement(OrderCard, { key: order.id, order }))) : /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-10 shadow-sm" }, /* @__PURE__ */ React19.createElement(
10324
+ /* @__PURE__ */ React20.createElement("div", { className: "space-y-6" }, isLoading ? /* @__PURE__ */ React20.createElement("div", { className: "space-y-4" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React20.createElement(OrderCardSkeleton, { key: index }))) : hasOrders ? /* @__PURE__ */ React20.createElement("div", { className: "space-y-4" }, orders.map((order) => /* @__PURE__ */ React20.createElement(OrderCard, { key: order.id, order }))) : /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-10 shadow-sm" }, /* @__PURE__ */ React20.createElement(
10306
10325
  EmptyState,
10307
10326
  {
10308
10327
  icon: PackageCheck,
@@ -10312,7 +10331,7 @@ function CurrentOrdersScreen() {
10312
10331
  onAction: () => router.push("/shop")
10313
10332
  }
10314
10333
  ))),
10315
- /* @__PURE__ */ React19.createElement("aside", { className: "space-y-6" }, /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-lg font-semibold text-slate-900" }, "Real-time milestones"), /* @__PURE__ */ React19.createElement("div", { className: "mt-4 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19.createElement(Warehouse, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold text-slate-800" }, "Preparation"), /* @__PURE__ */ React19.createElement("p", null, "Our pharmacists verify ingredients and pack thermo-sensitive items."))), /* @__PURE__ */ React19.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19.createElement(Truck, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold text-slate-800" }, "In transit"), /* @__PURE__ */ React19.createElement("p", null, "Track live courier location with ETA updates tailored to your delivery window."))), /* @__PURE__ */ React19.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19.createElement(BellRing, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold text-slate-800" }, "Arrival alerts"), /* @__PURE__ */ React19.createElement("p", null, "Receive SMS and email notifications when parcels are out for delivery."))))), /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React19.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Need support?"), /* @__PURE__ */ React19.createElement("p", { className: "mt-3 leading-relaxed" }, "Our fulfillment team is online 7 days a week. Message us if you need to adjust delivery instructions or review dosage guidance.")))
10334
+ /* @__PURE__ */ React20.createElement("aside", { className: "space-y-6" }, /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-lg font-semibold text-slate-900" }, "Real-time milestones"), /* @__PURE__ */ React20.createElement("div", { className: "mt-4 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20.createElement(Warehouse, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold text-slate-800" }, "Preparation"), /* @__PURE__ */ React20.createElement("p", null, "Our pharmacists verify ingredients and pack thermo-sensitive items."))), /* @__PURE__ */ React20.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20.createElement(Truck, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold text-slate-800" }, "In transit"), /* @__PURE__ */ React20.createElement("p", null, "Track live courier location with ETA updates tailored to your delivery window."))), /* @__PURE__ */ React20.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20.createElement(BellRing, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold text-slate-800" }, "Arrival alerts"), /* @__PURE__ */ React20.createElement("p", null, "Receive SMS and email notifications when parcels are out for delivery."))))), /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React20.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Need support?"), /* @__PURE__ */ React20.createElement("p", { className: "mt-3 leading-relaxed" }, "Our fulfillment team is online 7 days a week. Message us if you need to adjust delivery instructions or review dosage guidance.")))
10316
10335
  ))));
10317
10336
  }
10318
10337
  var addressFormSchema = z.object({
@@ -10345,12 +10364,12 @@ function formatAddressSnippet(address) {
10345
10364
  function getAddressTypeCopy(type) {
10346
10365
  switch (type) {
10347
10366
  case "Billing":
10348
- return { label: "Billing", icon: /* @__PURE__ */ React19.createElement(Home, { className: "h-4 w-4" }) };
10367
+ return { label: "Billing", icon: /* @__PURE__ */ React20.createElement(Home, { className: "h-4 w-4" }) };
10349
10368
  case "Both":
10350
- return { label: "Billing & Shipping", icon: /* @__PURE__ */ React19.createElement(Globe, { className: "h-4 w-4" }) };
10369
+ return { label: "Billing & Shipping", icon: /* @__PURE__ */ React20.createElement(Globe, { className: "h-4 w-4" }) };
10351
10370
  case "Shipping":
10352
10371
  default:
10353
- return { label: "Shipping", icon: /* @__PURE__ */ React19.createElement(MapPin, { className: "h-4 w-4" }) };
10372
+ return { label: "Shipping", icon: /* @__PURE__ */ React20.createElement(MapPin, { className: "h-4 w-4" }) };
10354
10373
  }
10355
10374
  }
10356
10375
  function AddressesScreen() {
@@ -10494,18 +10513,18 @@ You can add it back at any time.`
10494
10513
  }
10495
10514
  ];
10496
10515
  }, [addresses]);
10497
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.3),_transparent_60%)]" }), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19.createElement(
10516
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.3),_transparent_60%)]" }), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20.createElement(
10498
10517
  motion.div,
10499
10518
  {
10500
10519
  initial: { opacity: 0, y: 24 },
10501
10520
  animate: { opacity: 1, y: 0 },
10502
10521
  className: "space-y-5"
10503
10522
  },
10504
- /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React19.createElement(MapPin, { className: "h-4 w-4" }), "Address book"),
10505
- /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Manage where your care arrives"),
10506
- /* @__PURE__ */ React19.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Add home, office, or loved ones' addresses and toggle a default for lightning-fast checkout and delivery."),
10507
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center gap-3 text-sm text-white/75" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1" }, /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-4 w-4 text-white" }), "Default address: ", defaultAddress ? defaultAddress.name : "Not set"), /* @__PURE__ */ React19.createElement(Button, { variant: "ghost", className: "text-white hover:bg-white/10", onClick: openCreateModal }, /* @__PURE__ */ React19.createElement(Plus, { className: "h-5 w-5" }), "Add address"))
10508
- ), /* @__PURE__ */ React19.createElement(
10523
+ /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React20.createElement(MapPin, { className: "h-4 w-4" }), "Address book"),
10524
+ /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Manage where your care arrives"),
10525
+ /* @__PURE__ */ React20.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Add home, office, or loved ones' addresses and toggle a default for lightning-fast checkout and delivery."),
10526
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center gap-3 text-sm text-white/75" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1" }, /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-4 w-4 text-white" }), "Default address: ", defaultAddress ? defaultAddress.name : "Not set"), /* @__PURE__ */ React20.createElement(Button, { variant: "ghost", className: "text-white hover:bg-white/10", onClick: openCreateModal }, /* @__PURE__ */ React20.createElement(Plus, { className: "h-5 w-5" }), "Add address"))
10527
+ ), /* @__PURE__ */ React20.createElement(
10509
10528
  motion.div,
10510
10529
  {
10511
10530
  initial: { opacity: 0, y: 24 },
@@ -10513,14 +10532,14 @@ You can add it back at any time.`
10513
10532
  transition: { delay: 0.1 },
10514
10533
  className: "grid gap-4 rounded-3xl bg-white/15 p-6 text-sm text-white/80 backdrop-blur"
10515
10534
  },
10516
- stats.map((stat) => /* @__PURE__ */ React19.createElement("div", { key: stat.id, className: "flex items-center justify-between" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-white/70" }, stat.label), /* @__PURE__ */ React19.createElement("p", { className: "text-white" }, stat.helper)), /* @__PURE__ */ React19.createElement("span", { className: "text-3xl font-semibold text-white" }, stat.value)))
10517
- )))), /* @__PURE__ */ React19.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, isLoading ? /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-3" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React19.createElement(
10535
+ stats.map((stat) => /* @__PURE__ */ React20.createElement("div", { key: stat.id, className: "flex items-center justify-between" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-white/70" }, stat.label), /* @__PURE__ */ React20.createElement("p", { className: "text-white" }, stat.helper)), /* @__PURE__ */ React20.createElement("span", { className: "text-3xl font-semibold text-white" }, stat.value)))
10536
+ )))), /* @__PURE__ */ React20.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, isLoading ? /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-3" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React20.createElement(
10518
10537
  "div",
10519
10538
  {
10520
10539
  key: index,
10521
10540
  className: "h-56 animate-pulse rounded-3xl border border-slate-100 bg-white"
10522
10541
  }
10523
- ))) : error ? /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-red-100 bg-red-50 p-6 text-sm text-red-700" }, error.message) : addresses.length === 0 ? /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-12 shadow-sm" }, /* @__PURE__ */ React19.createElement(
10542
+ ))) : error ? /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-red-100 bg-red-50 p-6 text-sm text-red-700" }, error.message) : addresses.length === 0 ? /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-12 shadow-sm" }, /* @__PURE__ */ React20.createElement(
10524
10543
  EmptyState,
10525
10544
  {
10526
10545
  icon: MapPin,
@@ -10529,9 +10548,9 @@ You can add it back at any time.`
10529
10548
  actionLabel: "Add your first address",
10530
10549
  onAction: openCreateModal
10531
10550
  }
10532
- )) : /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-3" }, addresses.map((address) => {
10551
+ )) : /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-3" }, addresses.map((address) => {
10533
10552
  const typeCopy = getAddressTypeCopy(address.addressType);
10534
- return /* @__PURE__ */ React19.createElement(
10553
+ return /* @__PURE__ */ React20.createElement(
10535
10554
  motion.div,
10536
10555
  {
10537
10556
  key: address.id,
@@ -10539,39 +10558,39 @@ You can add it back at any time.`
10539
10558
  animate: { opacity: 1, y: 0 },
10540
10559
  className: "group relative flex h-full flex-col rounded-3xl border border-slate-100 bg-white p-6 shadow-sm transition hover:-translate-y-1 hover:shadow-xl"
10541
10560
  },
10542
- address.isDefault && /* @__PURE__ */ React19.createElement("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" }, /* @__PURE__ */ React19.createElement(Crown, { className: "h-4 w-4" }), "Default"),
10543
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement("span", { className: "rounded-full bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React19.createElement(User, { className: "h-5 w-5" })), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("p", { className: "text-base font-semibold text-slate-900" }, address.name), /* @__PURE__ */ React19.createElement("p", { className: "text-xs uppercase tracking-[0.3em] text-slate-400" }, typeCopy.label))),
10544
- /* @__PURE__ */ React19.createElement("div", { className: "mt-6 flex flex-1 flex-col gap-3 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("p", null, formatAddressSnippet(address)), /* @__PURE__ */ React19.createElement("p", { className: "inline-flex items-center gap-2 text-slate-500" }, /* @__PURE__ */ React19.createElement(Phone, { className: "h-4 w-4 text-slate-400" }), address.phone || "Not provided")),
10545
- /* @__PURE__ */ React19.createElement("div", { className: "mt-6 flex items-center justify-between gap-3" }, /* @__PURE__ */ React19.createElement(
10561
+ address.isDefault && /* @__PURE__ */ React20.createElement("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" }, /* @__PURE__ */ React20.createElement(Crown, { className: "h-4 w-4" }), "Default"),
10562
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement("span", { className: "rounded-full bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React20.createElement(User, { className: "h-5 w-5" })), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("p", { className: "text-base font-semibold text-slate-900" }, address.name), /* @__PURE__ */ React20.createElement("p", { className: "text-xs uppercase tracking-[0.3em] text-slate-400" }, typeCopy.label))),
10563
+ /* @__PURE__ */ React20.createElement("div", { className: "mt-6 flex flex-1 flex-col gap-3 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("p", null, formatAddressSnippet(address)), /* @__PURE__ */ React20.createElement("p", { className: "inline-flex items-center gap-2 text-slate-500" }, /* @__PURE__ */ React20.createElement(Phone, { className: "h-4 w-4 text-slate-400" }), address.phone || "Not provided")),
10564
+ /* @__PURE__ */ React20.createElement("div", { className: "mt-6 flex items-center justify-between gap-3" }, /* @__PURE__ */ React20.createElement(
10546
10565
  "button",
10547
10566
  {
10548
10567
  type: "button",
10549
10568
  onClick: () => openEditModal(address),
10550
10569
  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-primary-300 hover:text-primary-600"
10551
10570
  },
10552
- /* @__PURE__ */ React19.createElement(Edit3, { className: "h-4 w-4" }),
10571
+ /* @__PURE__ */ React20.createElement(Edit3, { className: "h-4 w-4" }),
10553
10572
  "Edit"
10554
- ), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2" }, !address.isDefault && /* @__PURE__ */ React19.createElement(
10573
+ ), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-2" }, !address.isDefault && /* @__PURE__ */ React20.createElement(
10555
10574
  "button",
10556
10575
  {
10557
10576
  type: "button",
10558
10577
  onClick: () => handleSetDefault(address),
10559
10578
  className: "inline-flex items-center gap-2 rounded-full border border-amber-200 px-3 py-1 text-sm font-semibold text-amber-600 transition hover:border-amber-300 hover:text-amber-700"
10560
10579
  },
10561
- /* @__PURE__ */ React19.createElement(Star, { className: "h-4 w-4" }),
10580
+ /* @__PURE__ */ React20.createElement(Star, { className: "h-4 w-4" }),
10562
10581
  "Make default"
10563
- ), /* @__PURE__ */ React19.createElement(
10582
+ ), /* @__PURE__ */ React20.createElement(
10564
10583
  "button",
10565
10584
  {
10566
10585
  type: "button",
10567
10586
  onClick: () => handleDelete(address),
10568
10587
  className: "inline-flex items-center gap-2 rounded-full border border-red-200 px-3 py-1 text-sm font-semibold text-red-600 transition hover:border-red-300 hover:text-red-700"
10569
10588
  },
10570
- /* @__PURE__ */ React19.createElement(Trash2, { className: "h-4 w-4" }),
10589
+ /* @__PURE__ */ React20.createElement(Trash2, { className: "h-4 w-4" }),
10571
10590
  "Delete"
10572
10591
  )))
10573
10592
  );
10574
- })))), /* @__PURE__ */ React19.createElement(
10593
+ })))), /* @__PURE__ */ React20.createElement(
10575
10594
  Modal,
10576
10595
  {
10577
10596
  isOpen: isModalOpen,
@@ -10579,7 +10598,7 @@ You can add it back at any time.`
10579
10598
  title: editingAddress ? "Edit address" : "Add new address",
10580
10599
  size: "lg"
10581
10600
  },
10582
- /* @__PURE__ */ React19.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-6" }, /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19.createElement(
10601
+ /* @__PURE__ */ React20.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-6" }, /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20.createElement(
10583
10602
  Input,
10584
10603
  {
10585
10604
  label: "Full name",
@@ -10587,7 +10606,7 @@ You can add it back at any time.`
10587
10606
  ...register("fullName"),
10588
10607
  error: errors.fullName?.message
10589
10608
  }
10590
- ), /* @__PURE__ */ React19.createElement(
10609
+ ), /* @__PURE__ */ React20.createElement(
10591
10610
  Input,
10592
10611
  {
10593
10612
  label: "Phone number",
@@ -10595,7 +10614,7 @@ You can add it back at any time.`
10595
10614
  ...register("phone"),
10596
10615
  error: errors.phone?.message
10597
10616
  }
10598
- )), /* @__PURE__ */ React19.createElement(
10617
+ )), /* @__PURE__ */ React20.createElement(
10599
10618
  Input,
10600
10619
  {
10601
10620
  label: "Address line 1",
@@ -10603,7 +10622,7 @@ You can add it back at any time.`
10603
10622
  ...register("addressLine1"),
10604
10623
  error: errors.addressLine1?.message
10605
10624
  }
10606
- ), /* @__PURE__ */ React19.createElement(
10625
+ ), /* @__PURE__ */ React20.createElement(
10607
10626
  Input,
10608
10627
  {
10609
10628
  label: "Address line 2 (optional)",
@@ -10611,7 +10630,7 @@ You can add it back at any time.`
10611
10630
  ...register("addressLine2"),
10612
10631
  error: errors.addressLine2?.message
10613
10632
  }
10614
- ), /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19.createElement(
10633
+ ), /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20.createElement(
10615
10634
  Input,
10616
10635
  {
10617
10636
  label: "City",
@@ -10619,7 +10638,7 @@ You can add it back at any time.`
10619
10638
  ...register("city"),
10620
10639
  error: errors.city?.message
10621
10640
  }
10622
- ), /* @__PURE__ */ React19.createElement(
10641
+ ), /* @__PURE__ */ React20.createElement(
10623
10642
  Input,
10624
10643
  {
10625
10644
  label: "State / Region",
@@ -10627,7 +10646,7 @@ You can add it back at any time.`
10627
10646
  ...register("state"),
10628
10647
  error: errors.state?.message
10629
10648
  }
10630
- )), /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19.createElement(
10649
+ )), /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20.createElement(
10631
10650
  Input,
10632
10651
  {
10633
10652
  label: "Postal code",
@@ -10635,7 +10654,7 @@ You can add it back at any time.`
10635
10654
  ...register("zipCode"),
10636
10655
  error: errors.zipCode?.message
10637
10656
  }
10638
- ), /* @__PURE__ */ React19.createElement(
10657
+ ), /* @__PURE__ */ React20.createElement(
10639
10658
  Input,
10640
10659
  {
10641
10660
  label: "Country",
@@ -10643,23 +10662,23 @@ You can add it back at any time.`
10643
10662
  ...register("country"),
10644
10663
  error: errors.country?.message
10645
10664
  }
10646
- )), /* @__PURE__ */ React19.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19.createElement("label", { className: "flex flex-col gap-2 rounded-2xl border border-slate-200 p-4" }, /* @__PURE__ */ React19.createElement("span", { className: "text-sm font-semibold text-slate-700" }, "Address type"), /* @__PURE__ */ React19.createElement(
10665
+ )), /* @__PURE__ */ React20.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20.createElement("label", { className: "flex flex-col gap-2 rounded-2xl border border-slate-200 p-4" }, /* @__PURE__ */ React20.createElement("span", { className: "text-sm font-semibold text-slate-700" }, "Address type"), /* @__PURE__ */ React20.createElement(
10647
10666
  "select",
10648
10667
  {
10649
10668
  ...register("addressType"),
10650
10669
  className: "rounded-xl border border-slate-200 px-3 py-2 text-sm text-slate-700 focus:border-primary-400 focus:outline-none focus:ring-2 focus:ring-primary-500/20"
10651
10670
  },
10652
- /* @__PURE__ */ React19.createElement("option", { value: "Shipping" }, "Shipping"),
10653
- /* @__PURE__ */ React19.createElement("option", { value: "Billing" }, "Billing"),
10654
- /* @__PURE__ */ React19.createElement("option", { value: "Both" }, "Billing & Shipping")
10655
- )), /* @__PURE__ */ React19.createElement("label", { className: "flex items-center justify-between gap-4 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 text-sm font-medium text-slate-700" }, /* @__PURE__ */ React19.createElement("span", null, "Set as default address"), /* @__PURE__ */ React19.createElement(
10671
+ /* @__PURE__ */ React20.createElement("option", { value: "Shipping" }, "Shipping"),
10672
+ /* @__PURE__ */ React20.createElement("option", { value: "Billing" }, "Billing"),
10673
+ /* @__PURE__ */ React20.createElement("option", { value: "Both" }, "Billing & Shipping")
10674
+ )), /* @__PURE__ */ React20.createElement("label", { className: "flex items-center justify-between gap-4 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 text-sm font-medium text-slate-700" }, /* @__PURE__ */ React20.createElement("span", null, "Set as default address"), /* @__PURE__ */ React20.createElement(
10656
10675
  "input",
10657
10676
  {
10658
10677
  type: "checkbox",
10659
10678
  ...register("isDefault"),
10660
10679
  className: "h-4 w-4 rounded border-primary-300 text-primary-600 focus:ring-primary-500"
10661
10680
  }
10662
- ))), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-end gap-3" }, /* @__PURE__ */ React19.createElement(Button, { type: "button", variant: "outline", onClick: closeModal }, "Cancel"), /* @__PURE__ */ React19.createElement(Button, { type: "submit", isLoading: isSubmitting }, editingAddress ? "Save changes" : "Save address")))
10681
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-end gap-3" }, /* @__PURE__ */ React20.createElement(Button, { type: "button", variant: "outline", onClick: closeModal }, "Cancel"), /* @__PURE__ */ React20.createElement(Button, { type: "submit", isLoading: isSubmitting }, editingAddress ? "Save changes" : "Save address")))
10663
10682
  ));
10664
10683
  }
10665
10684
  function useWishlistProducts(productIds = []) {
@@ -10718,6 +10737,7 @@ var SORT_OPTIONS = [
10718
10737
  ];
10719
10738
  function WishlistScreen() {
10720
10739
  const router = useRouter();
10740
+ const { buildPath } = useBasePath();
10721
10741
  const { isAuthenticated } = useAuth() || {};
10722
10742
  const {
10723
10743
  products: wishlistItems,
@@ -10798,14 +10818,14 @@ function WishlistScreen() {
10798
10818
  return list;
10799
10819
  }, [wishlistProducts, onlyInStock, sortOption]);
10800
10820
  const emptyAfterFiltering = !isLoading && wishlistProducts.length > 0 && processedProducts.length === 0;
10801
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50 pb-16" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] pb-32 pt-16 text-white" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 opacity-40 mix-blend-soft-light", "aria-hidden": "true" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute -top-1/2 right-1/2 h-[40rem] w-[40rem] rounded-full bg-white/10 blur-3xl" }), /* @__PURE__ */ React19.createElement("div", { className: "absolute left-1/4 top-1/4 h-48 w-48 rounded-full bg-white/20 blur-2xl" })), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4" }, /* @__PURE__ */ React19.createElement("div", { className: "max-w-3xl space-y-6" }, /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React19.createElement(Heart, { className: "h-4 w-4" }), "Wishlist"), /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-5xl" }, "Curate your pharmacy must-haves in one calming space"), /* @__PURE__ */ React19.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "We keep your favourite products ready for reorder, refill reminders, and quick checkout\u2014exactly when you need them.")))), /* @__PURE__ */ React19.createElement("div", { className: "relative -mt-20" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19.createElement(
10821
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50 pb-16" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] pb-32 pt-16 text-white" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 opacity-40 mix-blend-soft-light", "aria-hidden": "true" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute -top-1/2 right-1/2 h-[40rem] w-[40rem] rounded-full bg-white/10 blur-3xl" }), /* @__PURE__ */ React20.createElement("div", { className: "absolute left-1/4 top-1/4 h-48 w-48 rounded-full bg-white/20 blur-2xl" })), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4" }, /* @__PURE__ */ React20.createElement("div", { className: "max-w-3xl space-y-6" }, /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React20.createElement(Heart, { className: "h-4 w-4" }), "Wishlist"), /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-5xl" }, "Curate your pharmacy must-haves in one calming space"), /* @__PURE__ */ React20.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "We keep your favourite products ready for reorder, refill reminders, and quick checkout\u2014exactly when you need them.")))), /* @__PURE__ */ React20.createElement("div", { className: "relative -mt-20" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20.createElement(
10802
10822
  motion.div,
10803
10823
  {
10804
10824
  initial: { opacity: 0, y: 24 },
10805
10825
  animate: { opacity: 1, y: 0 },
10806
10826
  className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-xl shadow-primary-50"
10807
10827
  },
10808
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-6" }, !isAuthenticated && /* @__PURE__ */ React19.createElement("div", { className: "flex min-h-[40vh] items-center justify-center" }, /* @__PURE__ */ React19.createElement("div", { className: "max-w-lg rounded-3xl border border-slate-100 bg-white p-10 text-center shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19.createElement("div", { className: "mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-primary-50 text-primary-600" }, /* @__PURE__ */ React19.createElement(Heart, { className: "h-8 w-8" })), /* @__PURE__ */ React19.createElement("h2", { className: "mt-6 text-3xl font-bold text-slate-900" }, "Sign in to see your favourites"), /* @__PURE__ */ React19.createElement("p", { className: "mt-3 text-slate-500" }, "Create your curated shelf of products and we'll keep them ready whenever you return."), /* @__PURE__ */ React19.createElement(Button, { className: "mt-6", onClick: () => router.push("/login") }, "Sign In"))), isAuthenticated && /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-1" }, /* @__PURE__ */ React19.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "Your saved collection"), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-500" }, "Total value: ", /* @__PURE__ */ React19.createElement("span", { className: "font-semibold text-primary-600" }, formatPrice(totalValue)), onlyInStock && " \u2022 Showing items ready to ship")), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center gap-3" }, /* @__PURE__ */ React19.createElement("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-primary-200 hover:text-primary-600" }, /* @__PURE__ */ React19.createElement(
10828
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-6" }, !isAuthenticated && /* @__PURE__ */ React20.createElement("div", { className: "flex min-h-[40vh] items-center justify-center" }, /* @__PURE__ */ React20.createElement("div", { className: "max-w-lg rounded-3xl border border-slate-100 bg-white p-10 text-center shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20.createElement("div", { className: "mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-primary-50 text-primary-600" }, /* @__PURE__ */ React20.createElement(Heart, { className: "h-8 w-8" })), /* @__PURE__ */ React20.createElement("h2", { className: "mt-6 text-3xl font-bold text-slate-900" }, "Sign in to see your favourites"), /* @__PURE__ */ React20.createElement("p", { className: "mt-3 text-slate-500" }, "Create your curated shelf of products and we'll keep them ready whenever you return."), /* @__PURE__ */ React20.createElement(Button, { className: "mt-6", onClick: () => router.push("/login") }, "Sign In"))), isAuthenticated && /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-1" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "Your saved collection"), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-500" }, "Total value: ", /* @__PURE__ */ React20.createElement("span", { className: "font-semibold text-primary-600" }, formatPrice(totalValue)), onlyInStock && " \u2022 Showing items ready to ship")), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center gap-3" }, /* @__PURE__ */ React20.createElement("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-primary-200 hover:text-primary-600" }, /* @__PURE__ */ React20.createElement(
10809
10829
  "input",
10810
10830
  {
10811
10831
  type: "checkbox",
@@ -10813,54 +10833,54 @@ function WishlistScreen() {
10813
10833
  onChange: (event) => setOnlyInStock(event.target.checked),
10814
10834
  className: "h-4 w-4 rounded border-slate-300 text-primary-600 focus:ring-primary-500"
10815
10835
  }
10816
- ), "Only show in-stock"), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm text-slate-600" }, /* @__PURE__ */ React19.createElement("span", null, "Sort"), /* @__PURE__ */ React19.createElement(
10836
+ ), "Only show in-stock"), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm text-slate-600" }, /* @__PURE__ */ React20.createElement("span", null, "Sort"), /* @__PURE__ */ React20.createElement(
10817
10837
  "select",
10818
10838
  {
10819
10839
  value: sortOption,
10820
10840
  onChange: (event) => setSortOption(event.target.value),
10821
10841
  className: "bg-transparent text-sm font-medium text-slate-700 outline-none"
10822
10842
  },
10823
- SORT_OPTIONS.map((option) => /* @__PURE__ */ React19.createElement("option", { key: option.value, value: option.value }, option.label))
10824
- )), /* @__PURE__ */ React19.createElement("div", { className: "flex overflow-hidden rounded-full border border-slate-200 bg-slate-50" }, /* @__PURE__ */ React19.createElement(
10843
+ SORT_OPTIONS.map((option) => /* @__PURE__ */ React20.createElement("option", { key: option.value, value: option.value }, option.label))
10844
+ )), /* @__PURE__ */ React20.createElement("div", { className: "flex overflow-hidden rounded-full border border-slate-200 bg-slate-50" }, /* @__PURE__ */ React20.createElement(
10825
10845
  "button",
10826
10846
  {
10827
10847
  type: "button",
10828
10848
  onClick: () => setViewMode("grid"),
10829
10849
  className: `flex items-center gap-1 px-3 py-1.5 text-sm font-medium transition ${viewMode === "grid" ? "bg-primary-600 text-white shadow-lg shadow-primary-500/30" : "text-slate-600 hover:bg-white"}`
10830
10850
  },
10831
- /* @__PURE__ */ React19.createElement(Grid, { className: "h-4 w-4" }),
10851
+ /* @__PURE__ */ React20.createElement(Grid, { className: "h-4 w-4" }),
10832
10852
  "Grid"
10833
- ), /* @__PURE__ */ React19.createElement(
10853
+ ), /* @__PURE__ */ React20.createElement(
10834
10854
  "button",
10835
10855
  {
10836
10856
  type: "button",
10837
10857
  onClick: () => setViewMode("list"),
10838
10858
  className: `flex items-center gap-1 px-3 py-1.5 text-sm font-medium transition ${viewMode === "list" ? "bg-primary-600 text-white shadow-lg shadow-primary-500/30" : "text-slate-600 hover:bg-white"}`
10839
10859
  },
10840
- /* @__PURE__ */ React19.createElement(List, { className: "h-4 w-4" }),
10860
+ /* @__PURE__ */ React20.createElement(List, { className: "h-4 w-4" }),
10841
10861
  "List"
10842
- )), wishlistCount > 0 && /* @__PURE__ */ React19.createElement(
10862
+ )), wishlistCount > 0 && /* @__PURE__ */ React20.createElement(
10843
10863
  Button,
10844
10864
  {
10845
10865
  variant: "ghost",
10846
10866
  className: "text-sm font-semibold text-slate-500 hover:text-red-500",
10847
10867
  onClick: handleClearWishlist
10848
10868
  },
10849
- /* @__PURE__ */ React19.createElement(Trash2, { className: "h-4 w-4" }),
10869
+ /* @__PURE__ */ React20.createElement(Trash2, { className: "h-4 w-4" }),
10850
10870
  "Clear all"
10851
- ))), isLoading && /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3" }, Array.from({ length: Math.min(wishlistCount || 3, 6) }).map((_, index) => /* @__PURE__ */ React19.createElement(
10871
+ ))), isLoading && /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3" }, Array.from({ length: Math.min(wishlistCount || 3, 6) }).map((_, index) => /* @__PURE__ */ React20.createElement(
10852
10872
  "div",
10853
10873
  {
10854
10874
  key: index,
10855
10875
  className: "h-72 animate-pulse rounded-2xl border border-slate-200 bg-slate-100"
10856
10876
  }
10857
- ))), !isLoading && wishlistCount === 0 && /* @__PURE__ */ React19.createElement("div", { className: "flex min-h-[30vh] items-center justify-center" }, /* @__PURE__ */ React19.createElement("div", { className: "max-w-2xl rounded-3xl border border-slate-100 bg-white p-12 text-center shadow-xl shadow-primary-50" }, /* @__PURE__ */ React19.createElement("div", { className: "mx-auto flex h-20 w-20 items-center justify-center rounded-full bg-primary-100 text-primary-600" }, /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-10 w-10" })), /* @__PURE__ */ React19.createElement("h2", { className: "mt-6 text-4xl font-bold text-slate-900" }, "Start your wellness wishlist"), /* @__PURE__ */ React19.createElement("p", { className: "mt-4 text-lg text-slate-500" }, "Bookmark pharmacy essentials, supplements, or skincare picks and we'll keep them safe until you're ready to checkout."), /* @__PURE__ */ React19.createElement("div", { className: "mt-8 flex flex-wrap justify-center gap-3" }, /* @__PURE__ */ React19.createElement(Button, { onClick: () => router.push("/shop") }, "Discover products"), /* @__PURE__ */ React19.createElement(Button, { variant: "outline", onClick: () => router.push("/categories") }, "Browse categories")))), !isLoading && processedProducts.length > 0 && /* @__PURE__ */ React19.createElement(React19.Fragment, null, viewMode === "grid" ? /* @__PURE__ */ React19.createElement(
10877
+ ))), !isLoading && wishlistCount === 0 && /* @__PURE__ */ React20.createElement("div", { className: "flex min-h-[30vh] items-center justify-center" }, /* @__PURE__ */ React20.createElement("div", { className: "max-w-2xl rounded-3xl border border-slate-100 bg-white p-12 text-center shadow-xl shadow-primary-50" }, /* @__PURE__ */ React20.createElement("div", { className: "mx-auto flex h-20 w-20 items-center justify-center rounded-full bg-primary-100 text-primary-600" }, /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-10 w-10" })), /* @__PURE__ */ React20.createElement("h2", { className: "mt-6 text-4xl font-bold text-slate-900" }, "Start your wellness wishlist"), /* @__PURE__ */ React20.createElement("p", { className: "mt-4 text-lg text-slate-500" }, "Bookmark pharmacy essentials, supplements, or skincare picks and we'll keep them safe until you're ready to checkout."), /* @__PURE__ */ React20.createElement("div", { className: "mt-8 flex flex-wrap justify-center gap-3" }, /* @__PURE__ */ React20.createElement(Button, { onClick: () => router.push("/shop") }, "Discover products"), /* @__PURE__ */ React20.createElement(Button, { variant: "outline", onClick: () => router.push("/categories") }, "Browse categories")))), !isLoading && processedProducts.length > 0 && /* @__PURE__ */ React20.createElement(React20.Fragment, null, viewMode === "grid" ? /* @__PURE__ */ React20.createElement(
10858
10878
  motion.div,
10859
10879
  {
10860
10880
  layout: true,
10861
10881
  className: "grid grid-cols-1 gap-5 sm:grid-cols-2 xl:grid-cols-3"
10862
10882
  },
10863
- /* @__PURE__ */ React19.createElement(AnimatePresence, null, processedProducts.map((product) => /* @__PURE__ */ React19.createElement(
10883
+ /* @__PURE__ */ React20.createElement(AnimatePresence, null, processedProducts.map((product) => /* @__PURE__ */ React20.createElement(
10864
10884
  motion.div,
10865
10885
  {
10866
10886
  key: product.id,
@@ -10870,17 +10890,17 @@ function WishlistScreen() {
10870
10890
  exit: { opacity: 0, y: -20 },
10871
10891
  transition: { duration: 0.2 }
10872
10892
  },
10873
- /* @__PURE__ */ React19.createElement(
10893
+ /* @__PURE__ */ React20.createElement(
10874
10894
  ProductCard,
10875
10895
  {
10876
10896
  product,
10877
- onClickProduct: (p) => router.push(`/products/${p.id}`),
10897
+ onClickProduct: (p) => router.push(buildPath(`/products/${p.id}`)),
10878
10898
  onFavorite: () => handleRemoveFromWishlist(product.id),
10879
10899
  isFavorited: true
10880
10900
  }
10881
10901
  )
10882
10902
  )))
10883
- ) : /* @__PURE__ */ React19.createElement(motion.div, { layout: true, className: "space-y-4" }, /* @__PURE__ */ React19.createElement(AnimatePresence, null, processedProducts.map((product) => /* @__PURE__ */ React19.createElement(
10903
+ ) : /* @__PURE__ */ React20.createElement(motion.div, { layout: true, className: "space-y-4" }, /* @__PURE__ */ React20.createElement(AnimatePresence, null, processedProducts.map((product) => /* @__PURE__ */ React20.createElement(
10884
10904
  motion.div,
10885
10905
  {
10886
10906
  key: product.id,
@@ -10891,7 +10911,7 @@ function WishlistScreen() {
10891
10911
  transition: { duration: 0.2 },
10892
10912
  className: "flex flex-col gap-4 rounded-2xl border border-slate-100 bg-slate-50 p-4 shadow-sm shadow-primary-50 sm:flex-row sm:items-center"
10893
10913
  },
10894
- /* @__PURE__ */ React19.createElement("div", { className: "relative h-28 w-full overflow-hidden rounded-2xl bg-white sm:w-40" }, /* @__PURE__ */ React19.createElement(
10914
+ /* @__PURE__ */ React20.createElement("div", { className: "relative h-28 w-full overflow-hidden rounded-2xl bg-white sm:w-40" }, /* @__PURE__ */ React20.createElement(
10895
10915
  Image3,
10896
10916
  {
10897
10917
  fill: true,
@@ -10900,14 +10920,14 @@ function WishlistScreen() {
10900
10920
  className: "h-full w-full object-cover"
10901
10921
  }
10902
10922
  )),
10903
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-1 flex-col gap-2" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center justify-between gap-3" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, product.name), /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-slate-500" }, product.parentCategories?.map((category) => category?.name).join(", ") || "General wellness")), /* @__PURE__ */ React19.createElement("div", { className: "text-right" }, /* @__PURE__ */ React19.createElement("p", { className: "text-lg font-bold text-primary-600" }, formatPrice(product.finalPrice ?? 0)), product.isDiscounted && /* @__PURE__ */ React19.createElement("p", { className: "text-xs text-emerald-500" }, "You save ", formatPrice(Math.max((product.priceBeforeDiscount ?? 0) - (product.finalPrice ?? 0), 0))))), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap items-center gap-3 text-xs text-slate-500" }, /* @__PURE__ */ React19.createElement("span", { className: `inline-flex items-center gap-1 rounded-full px-2.5 py-1 font-medium ${product.inventoryCount > 0 ? "bg-emerald-100 text-emerald-700" : "bg-rose-100 text-rose-700"}` }, /* @__PURE__ */ React19.createElement(Package, { className: "h-3.5 w-3.5" }), product.inventoryCount > 0 ? "In stock" : "Backordered"), product.totalSold > 0 && /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-slate-200 px-2.5 py-1 font-medium text-slate-700" }, /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-3.5 w-3.5" }), product.totalSold, "+ purchased")), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-wrap gap-2" }, /* @__PURE__ */ React19.createElement(
10923
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-1 flex-col gap-2" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center justify-between gap-3" }, /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, product.name), /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-slate-500" }, product.parentCategories?.map((category) => category?.name).join(", ") || "General wellness")), /* @__PURE__ */ React20.createElement("div", { className: "text-right" }, /* @__PURE__ */ React20.createElement("p", { className: "text-lg font-bold text-primary-600" }, formatPrice(product.finalPrice ?? 0)), product.isDiscounted && /* @__PURE__ */ React20.createElement("p", { className: "text-xs text-emerald-500" }, "You save ", formatPrice(Math.max((product.priceBeforeDiscount ?? 0) - (product.finalPrice ?? 0), 0))))), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap items-center gap-3 text-xs text-slate-500" }, /* @__PURE__ */ React20.createElement("span", { className: `inline-flex items-center gap-1 rounded-full px-2.5 py-1 font-medium ${product.inventoryCount > 0 ? "bg-emerald-100 text-emerald-700" : "bg-rose-100 text-rose-700"}` }, /* @__PURE__ */ React20.createElement(Package, { className: "h-3.5 w-3.5" }), product.inventoryCount > 0 ? "In stock" : "Backordered"), product.totalSold > 0 && /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-1 rounded-full bg-slate-200 px-2.5 py-1 font-medium text-slate-700" }, /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-3.5 w-3.5" }), product.totalSold, "+ purchased")), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-wrap gap-2" }, /* @__PURE__ */ React20.createElement(
10904
10924
  Button,
10905
10925
  {
10906
10926
  size: "sm",
10907
10927
  onClick: () => router.push(`/products/${product.id}`)
10908
10928
  },
10909
10929
  "View details"
10910
- ), /* @__PURE__ */ React19.createElement(
10930
+ ), /* @__PURE__ */ React20.createElement(
10911
10931
  Button,
10912
10932
  {
10913
10933
  size: "sm",
@@ -10917,11 +10937,12 @@ function WishlistScreen() {
10917
10937
  },
10918
10938
  "Remove"
10919
10939
  )))
10920
- ))))), isAuthenticated && emptyAfterFiltering && /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50 p-12 text-center" }, /* @__PURE__ */ React19.createElement("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-slate-200 text-slate-500" }, /* @__PURE__ */ React19.createElement(Package, { className: "h-8 w-8" })), /* @__PURE__ */ React19.createElement("h3", { className: "mt-6 text-2xl font-semibold text-slate-900" }, "Nothing matches those filters"), /* @__PURE__ */ React19.createElement("p", { className: "mt-2 max-w-md text-sm text-slate-500" }, "Try showing out-of-stock items or adjust your sort order to revisit everything you\u2019ve saved."), /* @__PURE__ */ React19.createElement(Button, { className: "mt-6", variant: "outline", onClick: () => setOnlyInStock(false) }, "Show all saved products"))))
10940
+ ))))), isAuthenticated && emptyAfterFiltering && /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col items-center justify-center rounded-2xl border border-dashed border-slate-200 bg-slate-50 p-12 text-center" }, /* @__PURE__ */ React20.createElement("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-slate-200 text-slate-500" }, /* @__PURE__ */ React20.createElement(Package, { className: "h-8 w-8" })), /* @__PURE__ */ React20.createElement("h3", { className: "mt-6 text-2xl font-semibold text-slate-900" }, "Nothing matches those filters"), /* @__PURE__ */ React20.createElement("p", { className: "mt-2 max-w-md text-sm text-slate-500" }, "Try showing out-of-stock items or adjust your sort order to revisit everything you\u2019ve saved."), /* @__PURE__ */ React20.createElement(Button, { className: "mt-6", variant: "outline", onClick: () => setOnlyInStock(false) }, "Show all saved products"))))
10921
10941
  ))));
10922
10942
  }
10923
10943
  function SearchPage() {
10924
10944
  const router = useRouter();
10945
+ const { buildPath } = useBasePath();
10925
10946
  const searchParams = useSearchParams();
10926
10947
  const searchQuery = searchParams.get("q") || "";
10927
10948
  const [products, setProducts] = useState([]);
@@ -11022,38 +11043,38 @@ function SearchPage() {
11022
11043
  {
11023
11044
  product,
11024
11045
  isFavorited: isInWishlist(product.id),
11025
- onClickProduct: (p) => router.push(`/products/${p.id}`)
11046
+ onClickProduct: (p) => router.push(buildPath(`/products/${p.id}`))
11026
11047
  }
11027
11048
  ))) : hasSearched ? /* @__PURE__ */ React.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React.createElement("div", { className: "text-gray-500 text-lg mb-4" }, 'No products found for "', searchQuery, '"'), /* @__PURE__ */ React.createElement("p", { className: "text-gray-500 mb-6" }, "Try different keywords or check out our", " ", /* @__PURE__ */ React.createElement(Link8, { href: "/shop", className: "text-primary-600 hover:underline ml-1 font-medium" }, "featured products"))) : /* @__PURE__ */ React.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React.createElement("p", { className: "text-gray-500" }, "Enter a search term to find products"))));
11028
11049
  }
11029
11050
  function CategoriesScreen() {
11030
11051
  const { categories, isLoading } = useCategories();
11031
11052
  const router = useRouter();
11032
- return /* @__PURE__ */ React19.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement(
11053
+ return /* @__PURE__ */ React20.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement(
11033
11054
  motion.div,
11034
11055
  {
11035
11056
  initial: { opacity: 0, y: 24 },
11036
11057
  animate: { opacity: 1, y: 0 },
11037
11058
  className: "space-y-6"
11038
11059
  },
11039
- /* @__PURE__ */ React19.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React19.createElement(Package, { className: "h-4 w-4" }), "Product Categories"),
11040
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React19.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Browse Our Product Range"), /* @__PURE__ */ React19.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Explore our comprehensive selection of healthcare products, carefully curated by our pharmacists to meet all your wellness needs.")), /* @__PURE__ */ React19.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur" }, /* @__PURE__ */ React19.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick tip"), /* @__PURE__ */ React19.createElement("p", { className: "mt-3 text-sm text-white/80" }, "Use the categories below to quickly find the products you're looking for, or use the search function for specific items.")))
11041
- ))), /* @__PURE__ */ React19.createElement("div", { className: "relative -mt-16 pb-16" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19.createElement(
11060
+ /* @__PURE__ */ React20.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-3 py-1 text-sm font-semibold uppercase tracking-[0.35em] text-white/70 backdrop-blur" }, /* @__PURE__ */ React20.createElement(Package, { className: "h-4 w-4" }), "Product Categories"),
11061
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React20.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Browse Our Product Range"), /* @__PURE__ */ React20.createElement("p", { className: "max-w-2xl text-white/80 md:text-lg" }, "Explore our comprehensive selection of healthcare products, carefully curated by our pharmacists to meet all your wellness needs.")), /* @__PURE__ */ React20.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur" }, /* @__PURE__ */ React20.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick tip"), /* @__PURE__ */ React20.createElement("p", { className: "mt-3 text-sm text-white/80" }, "Use the categories below to quickly find the products you're looking for, or use the search function for specific items.")))
11062
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "relative -mt-16 pb-16" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20.createElement(
11042
11063
  motion.div,
11043
11064
  {
11044
11065
  initial: { opacity: 0, y: 24 },
11045
11066
  animate: { opacity: 1, y: 0 },
11046
11067
  className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50"
11047
11068
  },
11048
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3 text-sm text-slate-500 mb-6" }, /* @__PURE__ */ React19.createElement(Sparkles, { className: "h-4 w-4 text-primary-500" }), /* @__PURE__ */ React19.createElement("span", null, "Browse our complete product catalog organized by categories.")),
11049
- isLoading ? /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6" }, [...Array(8)].map((_, i) => /* @__PURE__ */ React19.createElement("div", { key: i, className: "animate-pulse" }, /* @__PURE__ */ React19.createElement("div", { className: "bg-gray-200 rounded-lg aspect-square mb-2" }), /* @__PURE__ */ React19.createElement("div", { className: "h-4 bg-gray-200 rounded w-3/4 mb-1" }), /* @__PURE__ */ React19.createElement("div", { className: "h-3 bg-gray-200 rounded w-1/2" })))) : categories.length > 0 ? /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6" }, categories.map((category) => /* @__PURE__ */ React19.createElement(
11069
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3 text-sm text-slate-500 mb-6" }, /* @__PURE__ */ React20.createElement(Sparkles, { className: "h-4 w-4 text-primary-500" }), /* @__PURE__ */ React20.createElement("span", null, "Browse our complete product catalog organized by categories.")),
11070
+ isLoading ? /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6" }, [...Array(8)].map((_, i) => /* @__PURE__ */ React20.createElement("div", { key: i, className: "animate-pulse" }, /* @__PURE__ */ React20.createElement("div", { className: "bg-gray-200 rounded-lg aspect-square mb-2" }), /* @__PURE__ */ React20.createElement("div", { className: "h-4 bg-gray-200 rounded w-3/4 mb-1" }), /* @__PURE__ */ React20.createElement("div", { className: "h-3 bg-gray-200 rounded w-1/2" })))) : categories.length > 0 ? /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6" }, categories.map((category) => /* @__PURE__ */ React20.createElement(
11050
11071
  Link8,
11051
11072
  {
11052
11073
  key: category.id,
11053
11074
  href: `/shop?category=${category.name}`,
11054
11075
  className: "group block overflow-hidden rounded-xl border border-gray-100 bg-white p-4 text-center transition hover:shadow-lg hover:border-primary-500"
11055
11076
  },
11056
- /* @__PURE__ */ React19.createElement("div", { className: "relative aspect-square w-full overflow-hidden rounded-lg bg-gray-50 mb-3" }, category.image ? /* @__PURE__ */ React19.createElement(
11077
+ /* @__PURE__ */ React20.createElement("div", { className: "relative aspect-square w-full overflow-hidden rounded-lg bg-gray-50 mb-3" }, category.image ? /* @__PURE__ */ React20.createElement(
11057
11078
  Image3,
11058
11079
  {
11059
11080
  src: category.image,
@@ -11062,10 +11083,10 @@ function CategoriesScreen() {
11062
11083
  className: "object-cover transition-transform group-hover:scale-105",
11063
11084
  sizes: "(max-width: 768px) 50vw, (max-width: 1200px) 33vw, 25vw"
11064
11085
  }
11065
- ) : /* @__PURE__ */ React19.createElement("div", { className: "flex h-full w-full items-center justify-center bg-gray-100 text-gray-400" }, /* @__PURE__ */ React19.createElement(Package, { className: "h-12 w-12" }))),
11066
- /* @__PURE__ */ React19.createElement("h3", { className: "text-lg font-semibold text-gray-900 group-hover:text-primary-600 transition-colors" }, category.name),
11067
- category.productCount > 0 && /* @__PURE__ */ React19.createElement("p", { className: "mt-1 text-sm text-gray-500" }, category.productCount, " ", category.productCount === 1 ? "product" : "products")
11068
- ))) : /* @__PURE__ */ React19.createElement(
11086
+ ) : /* @__PURE__ */ React20.createElement("div", { className: "flex h-full w-full items-center justify-center bg-gray-100 text-gray-400" }, /* @__PURE__ */ React20.createElement(Package, { className: "h-12 w-12" }))),
11087
+ /* @__PURE__ */ React20.createElement("h3", { className: "text-lg font-semibold text-gray-900 group-hover:text-primary-600 transition-colors" }, category.name),
11088
+ category.productCount > 0 && /* @__PURE__ */ React20.createElement("p", { className: "mt-1 text-sm text-gray-500" }, category.productCount, " ", category.productCount === 1 ? "product" : "products")
11089
+ ))) : /* @__PURE__ */ React20.createElement(
11069
11090
  EmptyState,
11070
11091
  {
11071
11092
  title: "No categories found",
@@ -11231,7 +11252,7 @@ function Header() {
11231
11252
  { href: "/about", label: "About" },
11232
11253
  { href: "/contact", label: "Contact" }
11233
11254
  ];
11234
- return /* @__PURE__ */ React19.createElement("header", { className: "sticky top-0 z-40 bg-white/80 backdrop-blur-xl border-b border-gray-200 shadow-sm" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center justify-between h-20" }, /* @__PURE__ */ React19.createElement(Link8, { href: "/", className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement("div", { className: "relative w-12 h-12" }, /* @__PURE__ */ React19.createElement(
11255
+ return /* @__PURE__ */ React20.createElement("header", { className: "sticky top-0 z-40 bg-white/80 backdrop-blur-xl border-b border-gray-200 shadow-sm" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between h-20" }, /* @__PURE__ */ React20.createElement(Link8, { href: "/", className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement("div", { className: "relative w-12 h-12" }, /* @__PURE__ */ React20.createElement(
11235
11256
  Image3,
11236
11257
  {
11237
11258
  src: config.logo,
@@ -11239,7 +11260,7 @@ function Header() {
11239
11260
  fill: true,
11240
11261
  className: "object-contain"
11241
11262
  }
11242
- )), /* @__PURE__ */ React19.createElement("span", { className: "text-2xl font-bold text-gray-900 hidden sm:block" }, config.storeName)), /* @__PURE__ */ React19.createElement("nav", { className: "hidden lg:flex items-center gap-8" }, navLinks.map((link) => /* @__PURE__ */ React19.createElement(
11263
+ )), /* @__PURE__ */ React20.createElement("span", { className: "text-2xl font-bold text-gray-900 hidden sm:block" }, config.storeName)), /* @__PURE__ */ React20.createElement("nav", { className: "hidden lg:flex items-center gap-8" }, navLinks.map((link) => /* @__PURE__ */ React20.createElement(
11243
11264
  Link8,
11244
11265
  {
11245
11266
  key: link.href,
@@ -11247,16 +11268,16 @@ function Header() {
11247
11268
  className: "text-gray-700 hover:text-primary-600 font-medium transition-colors relative group"
11248
11269
  },
11249
11270
  link.label,
11250
- /* @__PURE__ */ React19.createElement("span", { className: "absolute bottom-0 left-0 w-0 h-0.5 bg-primary-600 group-hover:w-full transition-all duration-300" })
11251
- ))), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React19.createElement("div", { className: "relative" }, /* @__PURE__ */ React19.createElement(
11271
+ /* @__PURE__ */ React20.createElement("span", { className: "absolute bottom-0 left-0 w-0 h-0.5 bg-primary-600 group-hover:w-full transition-all duration-300" })
11272
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React20.createElement("div", { className: "relative" }, /* @__PURE__ */ React20.createElement(
11252
11273
  "button",
11253
11274
  {
11254
11275
  onClick: () => setIsSearchOpen(!isSearchOpen),
11255
11276
  className: "p-2 hover:bg-gray-100 rounded-lg transition-colors",
11256
11277
  "aria-label": "Search"
11257
11278
  },
11258
- /* @__PURE__ */ React19.createElement(Search, { className: "w-5 h-5 text-gray-700" })
11259
- ), /* @__PURE__ */ React19.createElement(AnimatePresence, null, isSearchOpen && /* @__PURE__ */ React19.createElement(
11279
+ /* @__PURE__ */ React20.createElement(Search, { className: "w-5 h-5 text-gray-700" })
11280
+ ), /* @__PURE__ */ React20.createElement(AnimatePresence, null, isSearchOpen && /* @__PURE__ */ React20.createElement(
11260
11281
  motion.div,
11261
11282
  {
11262
11283
  initial: { opacity: 0, width: 0 },
@@ -11264,7 +11285,7 @@ function Header() {
11264
11285
  exit: { opacity: 0, width: 0 },
11265
11286
  className: "absolute right-0 top-full mt-2 bg-white rounded-lg shadow-lg overflow-hidden"
11266
11287
  },
11267
- /* @__PURE__ */ React19.createElement("div", { className: "flex items-center p-2 w-64" }, /* @__PURE__ */ React19.createElement(Search, { className: "w-5 h-5 text-gray-400 mr-2" }), /* @__PURE__ */ React19.createElement(
11288
+ /* @__PURE__ */ React20.createElement("div", { className: "flex items-center p-2 w-64" }, /* @__PURE__ */ React20.createElement(Search, { className: "w-5 h-5 text-gray-400 mr-2" }), /* @__PURE__ */ React20.createElement(
11268
11289
  "input",
11269
11290
  {
11270
11291
  type: "text",
@@ -11279,36 +11300,36 @@ function Header() {
11279
11300
  className: "w-full outline-none text-gray-700",
11280
11301
  autoFocus: true
11281
11302
  }
11282
- ), searchQuery && /* @__PURE__ */ React19.createElement(
11303
+ ), searchQuery && /* @__PURE__ */ React20.createElement(
11283
11304
  "button",
11284
11305
  {
11285
11306
  onClick: () => setSearchQuery(""),
11286
11307
  className: "text-gray-400 hover:text-gray-600"
11287
11308
  },
11288
- /* @__PURE__ */ React19.createElement(X, { className: "w-4 h-4" })
11309
+ /* @__PURE__ */ React20.createElement(X, { className: "w-4 h-4" })
11289
11310
  ))
11290
- ))), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React19.createElement(Link8, { href: "/wishlist", className: "relative p-2 text-gray-700 hover:text-red-500 transition-colors" }, /* @__PURE__ */ React19.createElement(Heart, { className: "w-6 h-6" }), wishlistCount > 0 && /* @__PURE__ */ React19.createElement("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" }, wishlistCount)), /* @__PURE__ */ React19.createElement(Link8, { href: "/cart", className: "relative p-2 text-gray-700 hover:text-primary-600 transition-colors" }, /* @__PURE__ */ React19.createElement(ShoppingCart, { className: "w-6 h-6" }), cart?.cartBody?.items?.length && cart.cartBody?.items?.length > 0 ? /* @__PURE__ */ React19.createElement("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" }, cart.cartBody?.items?.length) : null), isAuthenticated ? /* @__PURE__ */ React19.createElement(
11311
+ ))), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React20.createElement(Link8, { href: "/wishlist", className: "relative p-2 text-gray-700 hover:text-red-500 transition-colors" }, /* @__PURE__ */ React20.createElement(Heart, { className: "w-6 h-6" }), wishlistCount > 0 && /* @__PURE__ */ React20.createElement("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" }, wishlistCount)), /* @__PURE__ */ React20.createElement(Link8, { href: "/cart", className: "relative p-2 text-gray-700 hover:text-primary-600 transition-colors" }, /* @__PURE__ */ React20.createElement(ShoppingCart, { className: "w-6 h-6" }), cart?.cartBody?.items?.length && cart.cartBody?.items?.length > 0 ? /* @__PURE__ */ React20.createElement("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" }, cart.cartBody?.items?.length) : null), isAuthenticated ? /* @__PURE__ */ React20.createElement(
11291
11312
  Link8,
11292
11313
  {
11293
11314
  href: "/account",
11294
11315
  className: "p-2 hover:bg-gray-100 rounded-lg transition-colors"
11295
11316
  },
11296
- /* @__PURE__ */ React19.createElement(User, { className: "w-6 h-6 text-gray-700" })
11297
- ) : /* @__PURE__ */ React19.createElement(
11317
+ /* @__PURE__ */ React20.createElement(User, { className: "w-6 h-6 text-gray-700" })
11318
+ ) : /* @__PURE__ */ React20.createElement(
11298
11319
  Link8,
11299
11320
  {
11300
11321
  href: "/login",
11301
11322
  className: "hidden sm:block px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors font-medium"
11302
11323
  },
11303
11324
  "Sign In"
11304
- )), /* @__PURE__ */ React19.createElement(
11325
+ )), /* @__PURE__ */ React20.createElement(
11305
11326
  "button",
11306
11327
  {
11307
11328
  className: "lg:hidden p-2 hover:bg-gray-100 rounded-lg transition-colors",
11308
11329
  onClick: () => setIsMobileMenuOpen(!isMobileMenuOpen)
11309
11330
  },
11310
- isMobileMenuOpen ? /* @__PURE__ */ React19.createElement(X, { className: "w-6 h-6" }) : /* @__PURE__ */ React19.createElement(Menu, { className: "w-6 h-6" })
11311
- )), /* @__PURE__ */ React19.createElement(AnimatePresence, null, isMobileMenuOpen && /* @__PURE__ */ React19.createElement(
11331
+ isMobileMenuOpen ? /* @__PURE__ */ React20.createElement(X, { className: "w-6 h-6" }) : /* @__PURE__ */ React20.createElement(Menu, { className: "w-6 h-6" })
11332
+ )), /* @__PURE__ */ React20.createElement(AnimatePresence, null, isMobileMenuOpen && /* @__PURE__ */ React20.createElement(
11312
11333
  motion.div,
11313
11334
  {
11314
11335
  initial: { opacity: 0, height: 0 },
@@ -11316,7 +11337,7 @@ function Header() {
11316
11337
  exit: { opacity: 0, height: 0 },
11317
11338
  className: "lg:hidden overflow-hidden border-t border-gray-200"
11318
11339
  },
11319
- /* @__PURE__ */ React19.createElement("nav", { className: "flex flex-col gap-1 py-2" }, navLinks.map((link) => /* @__PURE__ */ React19.createElement(
11340
+ /* @__PURE__ */ React20.createElement("nav", { className: "flex flex-col gap-1 py-2" }, navLinks.map((link) => /* @__PURE__ */ React20.createElement(
11320
11341
  Link8,
11321
11342
  {
11322
11343
  key: link.href,
@@ -11325,7 +11346,7 @@ function Header() {
11325
11346
  onClick: () => setIsMobileMenuOpen(false)
11326
11347
  },
11327
11348
  link.label
11328
- )), !isAuthenticated && /* @__PURE__ */ React19.createElement(
11349
+ )), !isAuthenticated && /* @__PURE__ */ React20.createElement(
11329
11350
  Link8,
11330
11351
  {
11331
11352
  href: "/login",
@@ -11357,51 +11378,51 @@ function Footer() {
11357
11378
  { label: "Shipping Info", href: "/shipping" },
11358
11379
  { label: "Returns", href: "/returns" }
11359
11380
  ]};
11360
- return /* @__PURE__ */ React19.createElement("footer", { className: "bg-gray-900 text-gray-300" }, /* @__PURE__ */ React19.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-12" }, /* @__PURE__ */ React19.createElement("div", { className: "lg:col-span-2" }, /* @__PURE__ */ React19.createElement("h3", { className: "text-2xl font-bold text-white mb-4" }, config.storeName), /* @__PURE__ */ React19.createElement("p", { className: "text-gray-400 mb-6 max-w-md" }, "Your trusted online store for quality products. We deliver excellence with every order."), /* @__PURE__ */ React19.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement(Mail, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React19.createElement("span", null, "support@", config.storeName.toLowerCase().replace(/\s+/g, ""), ".com")), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement(Phone, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React19.createElement("span", null, "+1 (555) 123-4567")), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19.createElement(MapPin, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React19.createElement("span", null, "123 Store Street, City, Country")))), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Shop"), /* @__PURE__ */ React19.createElement("ul", { className: "space-y-2" }, footerLinks.shop.map((link) => /* @__PURE__ */ React19.createElement("li", { key: link.href }, /* @__PURE__ */ React19.createElement(
11381
+ return /* @__PURE__ */ React20.createElement("footer", { className: "bg-gray-900 text-gray-300" }, /* @__PURE__ */ React20.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-12" }, /* @__PURE__ */ React20.createElement("div", { className: "lg:col-span-2" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-2xl font-bold text-white mb-4" }, config.storeName), /* @__PURE__ */ React20.createElement("p", { className: "text-gray-400 mb-6 max-w-md" }, "Your trusted online store for quality products. We deliver excellence with every order."), /* @__PURE__ */ React20.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement(Mail, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React20.createElement("span", null, "support@", config.storeName.toLowerCase().replace(/\s+/g, ""), ".com")), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement(Phone, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React20.createElement("span", null, "+1 (555) 123-4567")), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20.createElement(MapPin, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React20.createElement("span", null, "123 Store Street, City, Country")))), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Shop"), /* @__PURE__ */ React20.createElement("ul", { className: "space-y-2" }, footerLinks.shop.map((link) => /* @__PURE__ */ React20.createElement("li", { key: link.href }, /* @__PURE__ */ React20.createElement(
11361
11382
  Link8,
11362
11383
  {
11363
11384
  href: link.href,
11364
11385
  className: "hover:text-primary-500 transition-colors"
11365
11386
  },
11366
11387
  link.label
11367
- ))))), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Account"), /* @__PURE__ */ React19.createElement("ul", { className: "space-y-2" }, footerLinks.account.map((link) => /* @__PURE__ */ React19.createElement("li", { key: link.href }, /* @__PURE__ */ React19.createElement(
11388
+ ))))), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Account"), /* @__PURE__ */ React20.createElement("ul", { className: "space-y-2" }, footerLinks.account.map((link) => /* @__PURE__ */ React20.createElement("li", { key: link.href }, /* @__PURE__ */ React20.createElement(
11368
11389
  Link8,
11369
11390
  {
11370
11391
  href: link.href,
11371
11392
  className: "hover:text-primary-500 transition-colors"
11372
11393
  },
11373
11394
  link.label
11374
- ))))), /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Support"), /* @__PURE__ */ React19.createElement("ul", { className: "space-y-2" }, footerLinks.support.map((link) => /* @__PURE__ */ React19.createElement("li", { key: link.href }, /* @__PURE__ */ React19.createElement(
11395
+ ))))), /* @__PURE__ */ React20.createElement("div", null, /* @__PURE__ */ React20.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Support"), /* @__PURE__ */ React20.createElement("ul", { className: "space-y-2" }, footerLinks.support.map((link) => /* @__PURE__ */ React20.createElement("li", { key: link.href }, /* @__PURE__ */ React20.createElement(
11375
11396
  Link8,
11376
11397
  {
11377
11398
  href: link.href,
11378
11399
  className: "hover:text-primary-500 transition-colors"
11379
11400
  },
11380
11401
  link.label
11381
- )))))), /* @__PURE__ */ React19.createElement("div", { className: "border-t border-gray-800 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center gap-4" }, /* @__PURE__ */ React19.createElement("p", { className: "text-gray-400 text-sm" }, "\xA9 ", (/* @__PURE__ */ new Date()).getFullYear(), " ", config.storeName, ". All rights reserved."), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React19.createElement(
11402
+ )))))), /* @__PURE__ */ React20.createElement("div", { className: "border-t border-gray-800 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center gap-4" }, /* @__PURE__ */ React20.createElement("p", { className: "text-gray-400 text-sm" }, "\xA9 ", (/* @__PURE__ */ new Date()).getFullYear(), " ", config.storeName, ". All rights reserved."), /* @__PURE__ */ React20.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React20.createElement(
11382
11403
  "a",
11383
11404
  {
11384
11405
  href: "#",
11385
11406
  className: "w-10 h-10 bg-gray-800 hover:bg-primary-600 rounded-full flex items-center justify-center transition-colors"
11386
11407
  },
11387
- /* @__PURE__ */ React19.createElement(Facebook, { className: "w-5 h-5" })
11388
- ), /* @__PURE__ */ React19.createElement(
11408
+ /* @__PURE__ */ React20.createElement(Facebook, { className: "w-5 h-5" })
11409
+ ), /* @__PURE__ */ React20.createElement(
11389
11410
  "a",
11390
11411
  {
11391
11412
  href: "#",
11392
11413
  className: "w-10 h-10 bg-gray-800 hover:bg-primary-600 rounded-full flex items-center justify-center transition-colors"
11393
11414
  },
11394
- /* @__PURE__ */ React19.createElement(Twitter, { className: "w-5 h-5" })
11395
- ), /* @__PURE__ */ React19.createElement(
11415
+ /* @__PURE__ */ React20.createElement(Twitter, { className: "w-5 h-5" })
11416
+ ), /* @__PURE__ */ React20.createElement(
11396
11417
  "a",
11397
11418
  {
11398
11419
  href: "#",
11399
11420
  className: "w-10 h-10 bg-gray-800 hover:bg-primary-600 rounded-full flex items-center justify-center transition-colors"
11400
11421
  },
11401
- /* @__PURE__ */ React19.createElement(Instagram, { className: "w-5 h-5" })
11422
+ /* @__PURE__ */ React20.createElement(Instagram, { className: "w-5 h-5" })
11402
11423
  )))));
11403
11424
  }
11404
11425
 
11405
- export { AddressesScreen, AuthProvider, Badge, Button, CartItem, CartProvider, CartScreen, CategoriesScreen, CheckoutScreen, CurrentOrdersScreen, EcommerceProvider, EmptyState, Footer, Header, Input, LoginScreen, Modal, NewAddressPage as NewAddressScreen, OrderCard, OrderCardSkeleton, OrdersScreen, ProductCard, ProductCardSkeleton, ProductDetailScreen, ProfileScreen, RegisterScreen, SearchPage as SearchResultsScreen, ShopScreen, Skeleton, ThemeProvider, WishlistProvider, WishlistScreen, formatDate, formatPrice, generateColorShades, getApiConfiguration, getInitials, hexToRgb, initializeApiAdapter, truncate, useAddresses, useAuth, useCart, useCategories, useCurrentOrders, useOrder, useOrders, useProduct, useProducts, useTheme, useWishlist };
11426
+ export { AddressesScreen, AuthProvider, Badge, Button, CartItem, CartProvider, CartScreen, CategoriesScreen, CheckoutScreen, CurrentOrdersScreen, EcommerceProvider, EmptyState, Footer, Header, Input, LoginScreen, Modal, NewAddressPage as NewAddressScreen, OrderCard, OrderCardSkeleton, OrdersScreen, ProductCard, ProductCardSkeleton, ProductDetailScreen, ProfileScreen, RegisterScreen, SearchPage as SearchResultsScreen, ShopScreen, Skeleton, ThemeProvider, WishlistProvider, WishlistScreen, formatDate, formatPrice, generateColorShades, getApiConfiguration, getInitials, hexToRgb, initializeApiAdapter, truncate, useAddresses, useAuth, useBasePath, useCart, useCategories, useCurrentOrders, useOrder, useOrders, useProduct, useProducts, useTheme, useWishlist };
11406
11427
  //# sourceMappingURL=index.mjs.map
11407
11428
  //# sourceMappingURL=index.mjs.map