hey-pharmacist-ecommerce 1.1.2 → 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.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React19 = require('react');
4
+ var React20 = require('react');
5
5
  var globalAxios4 = require('axios');
6
6
  var sonner = require('sonner');
7
7
  var reactQuery = require('@tanstack/react-query');
@@ -17,7 +17,7 @@ var zod = require('zod');
17
17
 
18
18
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
19
 
20
- var React19__default = /*#__PURE__*/_interopDefault(React19);
20
+ var React20__default = /*#__PURE__*/_interopDefault(React20);
21
21
  var globalAxios4__default = /*#__PURE__*/_interopDefault(globalAxios4);
22
22
  var Image3__default = /*#__PURE__*/_interopDefault(Image3);
23
23
  var dynamic__default = /*#__PURE__*/_interopDefault(dynamic);
@@ -68,16 +68,16 @@ function darken(r, g, b, amount) {
68
68
  }
69
69
 
70
70
  // src/providers/ThemeProvider.tsx
71
- var ThemeContext = React19.createContext(void 0);
71
+ var ThemeContext = React20.createContext(void 0);
72
72
  function useTheme() {
73
- const context = React19.useContext(ThemeContext);
73
+ const context = React20.useContext(ThemeContext);
74
74
  if (!context) {
75
75
  throw new Error("useTheme must be used within ThemeProvider");
76
76
  }
77
77
  return context;
78
78
  }
79
79
  function ThemeProvider({ config, children }) {
80
- React19.useEffect(() => {
80
+ React20.useEffect(() => {
81
81
  const primaryShades = generateColorShades(config.colors.primary);
82
82
  const secondaryShades = generateColorShades(config.colors.secondary);
83
83
  const accentShades = generateColorShades(config.colors.accent);
@@ -104,7 +104,7 @@ function ThemeProvider({ config, children }) {
104
104
  root.style.setProperty(`--header-to`, secondaryShades[600]);
105
105
  }
106
106
  }, [config]);
107
- return /* @__PURE__ */ React19__default.default.createElement(ThemeContext.Provider, { value: { config } }, children);
107
+ return /* @__PURE__ */ React20__default.default.createElement(ThemeContext.Provider, { value: { config } }, children);
108
108
  }
109
109
 
110
110
  // src/lib/Apis/configuration.ts
@@ -1895,19 +1895,19 @@ var AuthApi = class extends BaseAPI {
1895
1895
  };
1896
1896
 
1897
1897
  // src/providers/AuthProvider.tsx
1898
- var AuthContext = React19.createContext(void 0);
1898
+ var AuthContext = React20.createContext(void 0);
1899
1899
  function useAuth() {
1900
- const context = React19.useContext(AuthContext);
1900
+ const context = React20.useContext(AuthContext);
1901
1901
  if (!context) {
1902
1902
  throw new Error("useAuth must be used within AuthProvider");
1903
1903
  }
1904
1904
  return context;
1905
1905
  }
1906
1906
  function AuthProvider({ children }) {
1907
- const [user, setUser] = React19.useState(null);
1908
- const [isLoading, setIsLoading] = React19.useState(true);
1907
+ const [user, setUser] = React20.useState(null);
1908
+ const [isLoading, setIsLoading] = React20.useState(true);
1909
1909
  const USER_KEY = "ecommerce_user";
1910
- const refreshUser = React19.useCallback(async () => {
1910
+ const refreshUser = React20.useCallback(async () => {
1911
1911
  try {
1912
1912
  const token = getAuthToken();
1913
1913
  if (token) {
@@ -1921,7 +1921,7 @@ function AuthProvider({ children }) {
1921
1921
  setIsLoading(false);
1922
1922
  }
1923
1923
  }, []);
1924
- React19.useEffect(() => {
1924
+ React20.useEffect(() => {
1925
1925
  if (typeof window !== "undefined") {
1926
1926
  try {
1927
1927
  const cached = localStorage.getItem(USER_KEY);
@@ -2002,7 +2002,7 @@ function AuthProvider({ children }) {
2002
2002
  updateUser,
2003
2003
  refreshUser
2004
2004
  };
2005
- return /* @__PURE__ */ React19__default.default.createElement(AuthContext.Provider, { value }, children);
2005
+ return /* @__PURE__ */ React20__default.default.createElement(AuthContext.Provider, { value }, children);
2006
2006
  }
2007
2007
  var AddressesApiAxiosParamCreator = function(configuration) {
2008
2008
  return {
@@ -6707,19 +6707,19 @@ var PaymentPaymentStatusEnum = /* @__PURE__ */ ((PaymentPaymentStatusEnum2) => {
6707
6707
  })(PaymentPaymentStatusEnum || {});
6708
6708
 
6709
6709
  // src/providers/CartProvider.tsx
6710
- var CartContext = React19.createContext(void 0);
6710
+ var CartContext = React20.createContext(void 0);
6711
6711
  function useCart() {
6712
- const context = React19.useContext(CartContext);
6712
+ const context = React20.useContext(CartContext);
6713
6713
  if (!context) {
6714
6714
  throw new Error("useCart must be used within CartProvider");
6715
6715
  }
6716
6716
  return context;
6717
6717
  }
6718
6718
  function CartProvider({ children }) {
6719
- const [cart, setCart] = React19.useState(null);
6720
- const [isLoading, setIsLoading] = React19.useState(false);
6719
+ const [cart, setCart] = React20.useState(null);
6720
+ const [isLoading, setIsLoading] = React20.useState(false);
6721
6721
  const { isAuthenticated } = useAuth();
6722
- const refreshCart = React19.useCallback(async () => {
6722
+ const refreshCart = React20.useCallback(async () => {
6723
6723
  if (!isAuthenticated) {
6724
6724
  setCart(null);
6725
6725
  return;
@@ -6731,7 +6731,7 @@ function CartProvider({ children }) {
6731
6731
  console.error("Failed to fetch cart:", error);
6732
6732
  }
6733
6733
  }, [isAuthenticated]);
6734
- React19.useEffect(() => {
6734
+ React20.useEffect(() => {
6735
6735
  refreshCart();
6736
6736
  }, [refreshCart]);
6737
6737
  const addToCart = async (productId, quantity = 1, variantId) => {
@@ -6792,7 +6792,7 @@ function CartProvider({ children }) {
6792
6792
  clearCart,
6793
6793
  refreshCart
6794
6794
  };
6795
- return /* @__PURE__ */ React19__default.default.createElement(CartContext.Provider, { value }, children);
6795
+ return /* @__PURE__ */ React20__default.default.createElement(CartContext.Provider, { value }, children);
6796
6796
  }
6797
6797
  var BaseUrl = "https://api.heypharmacist.com";
6798
6798
  globalAxios4__default.default.interceptors.request.use(async (config) => {
@@ -6825,9 +6825,9 @@ var AXIOS_CONFIG = new Configuration({
6825
6825
  timeout: 2e4
6826
6826
  }
6827
6827
  });
6828
- var WishlistContext = React19.createContext(void 0);
6828
+ var WishlistContext = React20.createContext(void 0);
6829
6829
  function WishlistProvider({ children }) {
6830
- const [state, setState] = React19.useState({
6830
+ const [state, setState] = React20.useState({
6831
6831
  _id: "",
6832
6832
  createdAt: /* @__PURE__ */ new Date(),
6833
6833
  updatedAt: /* @__PURE__ */ new Date(),
@@ -6835,8 +6835,8 @@ function WishlistProvider({ children }) {
6835
6835
  products: []
6836
6836
  });
6837
6837
  const { isAuthenticated } = useAuth() || {};
6838
- const wishlistApi = React19.useMemo(() => new WishlistApi(AXIOS_CONFIG), []);
6839
- const fetchWishlist = React19.useCallback(async () => {
6838
+ const wishlistApi = React20.useMemo(() => new WishlistApi(AXIOS_CONFIG), []);
6839
+ const fetchWishlist = React20.useCallback(async () => {
6840
6840
  if (!isAuthenticated) {
6841
6841
  setState((prev) => ({
6842
6842
  ...prev,
@@ -6865,7 +6865,7 @@ function WishlistProvider({ children }) {
6865
6865
  }));
6866
6866
  }
6867
6867
  }, [isAuthenticated]);
6868
- React19.useEffect(() => {
6868
+ React20.useEffect(() => {
6869
6869
  fetchWishlist();
6870
6870
  }, [fetchWishlist]);
6871
6871
  const addToWishlist = async (product) => {
@@ -6927,7 +6927,7 @@ function WishlistProvider({ children }) {
6927
6927
  const refreshWishlist = async () => {
6928
6928
  await fetchWishlist();
6929
6929
  };
6930
- return /* @__PURE__ */ React19__default.default.createElement(
6930
+ return /* @__PURE__ */ React20__default.default.createElement(
6931
6931
  WishlistContext.Provider,
6932
6932
  {
6933
6933
  value: {
@@ -6944,20 +6944,37 @@ function WishlistProvider({ children }) {
6944
6944
  );
6945
6945
  }
6946
6946
  var useWishlist = () => {
6947
- const context = React19.useContext(WishlistContext);
6947
+ const context = React20.useContext(WishlistContext);
6948
6948
  if (context === void 0) {
6949
6949
  throw new Error("useWishlist must be used within a WishlistProvider");
6950
6950
  }
6951
6951
  return context;
6952
6952
  };
6953
- function EcommerceProvider({ config, children, withToaster = true }) {
6954
- React19.useEffect(() => {
6953
+ var BasePathContext = React20.createContext(void 0);
6954
+ function BasePathProvider({ basePath = "", children }) {
6955
+ const normalized = basePath ? basePath.startsWith("/") ? basePath : `/${basePath}` : "";
6956
+ const buildPath = (path) => {
6957
+ if (!normalized) return path;
6958
+ if (!path) return normalized;
6959
+ if (path.startsWith(normalized + "/")) return path;
6960
+ if (path.startsWith("/")) return `${normalized}${path}`;
6961
+ return `${normalized}/${path}`;
6962
+ };
6963
+ return /* @__PURE__ */ React20__default.default.createElement(BasePathContext.Provider, { value: { basePath: normalized, buildPath } }, children);
6964
+ }
6965
+ function useBasePath() {
6966
+ const ctx = React20.useContext(BasePathContext);
6967
+ if (!ctx) throw new Error("useBasePath must be used within BasePathProvider");
6968
+ return ctx;
6969
+ }
6970
+ function EcommerceProvider({ config, children, withToaster = true, basePath = "" }) {
6971
+ React20.useEffect(() => {
6955
6972
  initializeApiAdapter(config);
6956
6973
  }, [config]);
6957
- const [client] = React19__default.default.useState(
6974
+ const [client] = React20__default.default.useState(
6958
6975
  new reactQuery.QueryClient({ defaultOptions: { queries: { staleTime: 5e3 } } })
6959
6976
  );
6960
- return /* @__PURE__ */ React19__default.default.createElement(reactQuery.QueryClientProvider, { client }, /* @__PURE__ */ React19__default.default.createElement(ThemeProvider, { config }, /* @__PURE__ */ React19__default.default.createElement(AuthProvider, null, /* @__PURE__ */ React19__default.default.createElement(CartProvider, null, /* @__PURE__ */ React19__default.default.createElement(WishlistProvider, null, children, withToaster && /* @__PURE__ */ React19__default.default.createElement(sonner.Toaster, { position: "top-right", richColors: true }))))));
6977
+ return /* @__PURE__ */ React20__default.default.createElement(reactQuery.QueryClientProvider, { client }, /* @__PURE__ */ React20__default.default.createElement(ThemeProvider, { config }, /* @__PURE__ */ React20__default.default.createElement(BasePathProvider, { basePath }, /* @__PURE__ */ React20__default.default.createElement(AuthProvider, null, /* @__PURE__ */ React20__default.default.createElement(CartProvider, null, /* @__PURE__ */ React20__default.default.createElement(WishlistProvider, null, children, withToaster && /* @__PURE__ */ React20__default.default.createElement(sonner.Toaster, { position: "top-right", richColors: true })))))));
6961
6978
  }
6962
6979
 
6963
6980
  // src/lib/utils/format.ts
@@ -7000,14 +7017,15 @@ function ProductCard({
7000
7017
  className
7001
7018
  }) {
7002
7019
  const router = navigation.useRouter();
7003
- const [isFavorite, setIsFavorite] = React19.useState(isFavorited);
7020
+ const { buildPath } = useBasePath();
7021
+ const [isFavorite, setIsFavorite] = React20.useState(isFavorited);
7004
7022
  const { addToWishlist, removeFromWishlist, isInWishlist } = useWishlist();
7005
- const [isHovered, setIsHovered] = React19.useState(false);
7006
- const [isImageLoaded, setIsImageLoaded] = React19.useState(false);
7007
- const handleImageLoad = React19.useCallback(() => {
7023
+ const [isHovered, setIsHovered] = React20.useState(false);
7024
+ const [isImageLoaded, setIsImageLoaded] = React20.useState(false);
7025
+ const handleImageLoad = React20.useCallback(() => {
7008
7026
  setIsImageLoaded(true);
7009
7027
  }, []);
7010
- const handleCardClick = React19.useCallback((e) => {
7028
+ const handleCardClick = React20.useCallback((e) => {
7011
7029
  if (onClickProduct) {
7012
7030
  e.preventDefault();
7013
7031
  onClickProduct(product);
@@ -7031,7 +7049,7 @@ function ProductCard({
7031
7049
  sonner.toast.error("Failed to update wishlist");
7032
7050
  }
7033
7051
  };
7034
- React19.useEffect(() => {
7052
+ React20.useEffect(() => {
7035
7053
  setIsFavorite(isInWishlist(product?._id || "") || isFavorited);
7036
7054
  }, [isFavorited, isInWishlist, product?._id]);
7037
7055
  const handleKeyDown = (e) => {
@@ -7040,13 +7058,13 @@ function ProductCard({
7040
7058
  handleCardClick(e);
7041
7059
  }
7042
7060
  };
7043
- React19.useMemo(() => {
7061
+ React20.useMemo(() => {
7044
7062
  return {
7045
7063
  src: product.productMedia?.[0]?.file || "/placeholder-product.jpg",
7046
7064
  alt: product.name || "Product image"
7047
7065
  };
7048
7066
  }, [product.productMedia, product.name]);
7049
- return /* @__PURE__ */ React19__default.default.createElement(
7067
+ return /* @__PURE__ */ React20__default.default.createElement(
7050
7068
  framerMotion.motion.article,
7051
7069
  {
7052
7070
  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",
@@ -7059,7 +7077,7 @@ function ProductCard({
7059
7077
  onClick: handleCardClick,
7060
7078
  onKeyDown: handleKeyDown
7061
7079
  },
7062
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative h-48 w-full overflow-hidden bg-gray-50" }, /* @__PURE__ */ React19__default.default.createElement(framerMotion.AnimatePresence, null, !isImageLoaded && /* @__PURE__ */ React19__default.default.createElement(
7080
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative h-48 w-full overflow-hidden bg-gray-50" }, /* @__PURE__ */ React20__default.default.createElement(framerMotion.AnimatePresence, null, !isImageLoaded && /* @__PURE__ */ React20__default.default.createElement(
7063
7081
  framerMotion.motion.div,
7064
7082
  {
7065
7083
  className: "absolute inset-0 bg-gray-200 animate-pulse",
@@ -7067,7 +7085,7 @@ function ProductCard({
7067
7085
  exit: { opacity: 0 },
7068
7086
  transition: { duration: 0.2 }
7069
7087
  }
7070
- )), product.productMedia?.[0]?.file && /* @__PURE__ */ React19__default.default.createElement(
7088
+ )), product.productMedia?.[0]?.file && /* @__PURE__ */ React20__default.default.createElement(
7071
7089
  Image3__default.default,
7072
7090
  {
7073
7091
  src: product.productMedia?.[0]?.file || "/placeholder-product.jpg",
@@ -7078,7 +7096,7 @@ function ProductCard({
7078
7096
  priority: false,
7079
7097
  onLoad: handleImageLoad
7080
7098
  }
7081
- ), /* @__PURE__ */ React19__default.default.createElement("div", { className: "absolute top-3 left-3 flex flex-col gap-2 z-10" }, product.isDiscounted && /* @__PURE__ */ React19__default.default.createElement(
7099
+ ), /* @__PURE__ */ React20__default.default.createElement("div", { className: "absolute top-3 left-3 flex flex-col gap-2 z-10" }, product.isDiscounted && /* @__PURE__ */ React20__default.default.createElement(
7082
7100
  framerMotion.motion.span,
7083
7101
  {
7084
7102
  initial: { scale: 0.9, opacity: 0 },
@@ -7088,7 +7106,7 @@ function ProductCard({
7088
7106
  "-",
7089
7107
  product.discountAmount,
7090
7108
  "%"
7091
- ), product.inventoryCount === 0 && /* @__PURE__ */ React19__default.default.createElement(
7109
+ ), product.inventoryCount === 0 && /* @__PURE__ */ React20__default.default.createElement(
7092
7110
  framerMotion.motion.span,
7093
7111
  {
7094
7112
  initial: { scale: 0.9, opacity: 0 },
@@ -7096,7 +7114,7 @@ function ProductCard({
7096
7114
  className: "inline-flex items-center justify-center px-2.5 py-1 rounded-full text-xs font-bold text-white bg-red-600"
7097
7115
  },
7098
7116
  "Out of Stock"
7099
- )), showFavoriteButton && /* @__PURE__ */ React19__default.default.createElement(
7117
+ )), showFavoriteButton && /* @__PURE__ */ React20__default.default.createElement(
7100
7118
  framerMotion.motion.button,
7101
7119
  {
7102
7120
  type: "button",
@@ -7106,10 +7124,10 @@ function ProductCard({
7106
7124
  whileTap: { scale: 0.95 },
7107
7125
  "aria-label": isFavorite ? "Remove from wishlist" : "Add to wishlist"
7108
7126
  },
7109
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Heart, { className: `w-5 h-5 ${isFavorite ? "fill-current" : ""}` })
7127
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Heart, { className: `w-5 h-5 ${isFavorite ? "fill-current" : ""}` })
7110
7128
  )),
7111
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "absolute top-4 left-4 flex flex-col gap-2" }, product.inventoryCount === 0 && /* @__PURE__ */ React19__default.default.createElement("span", { className: "px-3 py-1 rounded-full text-sm font-bold bg-red-100 text-red-800" }, "Out of Stock")),
7112
- showFavoriteButton && /* @__PURE__ */ React19__default.default.createElement(
7129
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "absolute top-4 left-4 flex flex-col gap-2" }, product.inventoryCount === 0 && /* @__PURE__ */ React20__default.default.createElement("span", { className: "px-3 py-1 rounded-full text-sm font-bold bg-red-100 text-red-800" }, "Out of Stock")),
7130
+ showFavoriteButton && /* @__PURE__ */ React20__default.default.createElement(
7113
7131
  "button",
7114
7132
  {
7115
7133
  type: "button",
@@ -7117,21 +7135,21 @@ function ProductCard({
7117
7135
  className: `absolute top-2 right-2 p-2 rounded-full transition-colors ${isFavorite ? "text-red-500" : "text-gray-400 hover:text-red-500"}`,
7118
7136
  "aria-label": isFavorite ? "Remove from wishlist" : "Add to wishlist"
7119
7137
  },
7120
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Heart, { className: `w-5 h-5 ${isFavorite ? "fill-current" : ""}` })
7138
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Heart, { className: `w-5 h-5 ${isFavorite ? "fill-current" : ""}` })
7121
7139
  ),
7122
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "p-4" }, product.parentCategories && product.parentCategories?.length > 0 && /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-xs text-gray-500 uppercase tracking-wider mb-2" }, product.parentCategories?.map((category) => category?.name).join(", ") || "No categories"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mb-2" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("p", { className: "text-xs text-gray-400 mt-1" }, "SKU: ", product.sku)), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-baseline gap-2" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-2xl font-bold text-gray-900" }, formatPrice(product.finalPrice)), product.inventoryCount > 0 && /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-xs text-gray-500" }, product.inventoryCount > 0 ? "In Stock" : "Out of Stock")), product.priceBeforeDiscount && product.priceBeforeDiscount > product.finalPrice && /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-sm text-gray-500 line-through" }, formatPrice(product.priceBeforeDiscount)))),
7123
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-auto p-4 pt-0" }, /* @__PURE__ */ React19__default.default.createElement(
7140
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "p-4" }, product.parentCategories && product.parentCategories?.length > 0 && /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-xs text-gray-500 uppercase tracking-wider mb-2" }, product.parentCategories?.map((category) => category?.name).join(", ") || "No categories"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mb-2" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("p", { className: "text-xs text-gray-400 mt-1" }, "SKU: ", product.sku)), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-baseline gap-2" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-2xl font-bold text-gray-900" }, formatPrice(product.finalPrice)), product.inventoryCount > 0 && /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-xs text-gray-500" }, product.inventoryCount > 0 ? "In Stock" : "Out of Stock")), product.priceBeforeDiscount && product.priceBeforeDiscount > product.finalPrice && /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-sm text-gray-500 line-through" }, formatPrice(product.priceBeforeDiscount)))),
7141
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-auto p-4 pt-0" }, /* @__PURE__ */ React20__default.default.createElement(
7124
7142
  "button",
7125
7143
  {
7126
7144
  type: "button",
7127
7145
  onClick: (e) => {
7128
7146
  e.stopPropagation();
7129
- router.push(`/products/${product._id}`);
7147
+ router.push(buildPath(`/products/${product._id}`));
7130
7148
  },
7131
7149
  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`
7132
7150
  },
7133
7151
  "View Product"
7134
- ), showFavoriteButton && /* @__PURE__ */ React19__default.default.createElement(
7152
+ ), showFavoriteButton && /* @__PURE__ */ React20__default.default.createElement(
7135
7153
  "button",
7136
7154
  {
7137
7155
  type: "button",
@@ -7139,7 +7157,7 @@ function ProductCard({
7139
7157
  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",
7140
7158
  "aria-label": isFavorite ? "Remove from wishlist" : "Add to wishlist"
7141
7159
  },
7142
- /* @__PURE__ */ React19__default.default.createElement(
7160
+ /* @__PURE__ */ React20__default.default.createElement(
7143
7161
  lucideReact.Heart,
7144
7162
  {
7145
7163
  className: `mr-2 h-4 w-4 ${isFavorite ? "fill-red-500 text-red-500" : "text-primary-600"}`
@@ -7150,13 +7168,13 @@ function ProductCard({
7150
7168
  );
7151
7169
  }
7152
7170
  function Skeleton({ className = "" }) {
7153
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: `animate-pulse bg-gradient-to-r from-gray-200 via-gray-300 to-gray-200 bg-[length:200%_100%] rounded ${className}` });
7171
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: `animate-pulse bg-gradient-to-r from-gray-200 via-gray-300 to-gray-200 bg-[length:200%_100%] rounded ${className}` });
7154
7172
  }
7155
7173
  function ProductCardSkeleton() {
7156
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "bg-white rounded-2xl overflow-hidden shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-64 w-full" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "p-4 space-y-3" }, /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-6 w-3/4" }), /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-4 w-1/2" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex justify-between items-center pt-2" }, /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-8 w-24" }), /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-10 w-10 rounded-full" }))));
7174
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "bg-white rounded-2xl overflow-hidden shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-64 w-full" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "p-4 space-y-3" }, /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-6 w-3/4" }), /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-4 w-1/2" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex justify-between items-center pt-2" }, /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-8 w-24" }), /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-10 w-10 rounded-full" }))));
7157
7175
  }
7158
7176
  function OrderCardSkeleton() {
7159
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "bg-white rounded-2xl p-6 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-2 flex-1" }, /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-6 w-32" }), /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-4 w-48" })), /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-6 w-20 rounded-full" })), /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-4 w-full" }), /* @__PURE__ */ React19__default.default.createElement(Skeleton, { className: "h-4 w-2/3" })));
7177
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "bg-white rounded-2xl p-6 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-2 flex-1" }, /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-6 w-32" }), /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-4 w-48" })), /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-6 w-20 rounded-full" })), /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-4 w-full" }), /* @__PURE__ */ React20__default.default.createElement(Skeleton, { className: "h-4 w-2/3" })));
7160
7178
  }
7161
7179
  var MotionDiv = dynamic__default.default(() => import('framer-motion').then((mod) => mod.motion.div), {
7162
7180
  ssr: false
@@ -7182,14 +7200,14 @@ function Button({
7182
7200
  md: "px-6 py-3 text-base",
7183
7201
  lg: "px-8 py-4 text-lg"
7184
7202
  };
7185
- return /* @__PURE__ */ React19__default.default.createElement(
7203
+ return /* @__PURE__ */ React20__default.default.createElement(
7186
7204
  MotionDiv,
7187
7205
  {
7188
7206
  whileHover: { scale: 1.02 },
7189
7207
  whileTap: { scale: 0.98 },
7190
7208
  className: "inline-block"
7191
7209
  },
7192
- /* @__PURE__ */ React19__default.default.createElement(
7210
+ /* @__PURE__ */ React20__default.default.createElement(
7193
7211
  "button",
7194
7212
  {
7195
7213
  className: `${baseStyles} ${variants[variant]} ${sizes[size]} ${className}`,
@@ -7198,18 +7216,18 @@ function Button({
7198
7216
  "aria-busy": isLoading,
7199
7217
  ...props
7200
7218
  },
7201
- isLoading ? /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, /* @__PURE__ */ React19__default.default.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__default.default.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ React19__default.default.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
7219
+ isLoading ? /* @__PURE__ */ React20__default.default.createElement(React20__default.default.Fragment, null, /* @__PURE__ */ React20__default.default.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__default.default.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ React20__default.default.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
7202
7220
  )
7203
7221
  );
7204
7222
  }
7205
7223
 
7206
7224
  // src/components/EmptyState.tsx
7207
7225
  function EmptyState({ icon: Icon, title, description, actionLabel, onAction }) {
7208
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col items-center justify-center py-16 px-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "w-24 h-24 bg-gray-100 rounded-full flex items-center justify-center mb-6" }, /* @__PURE__ */ React19__default.default.createElement(Icon, { className: "w-12 h-12 text-gray-400" })), /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-2xl font-bold text-gray-900 mb-2" }, title), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-gray-600 text-center max-w-md mb-8" }, description), actionLabel && onAction && /* @__PURE__ */ React19__default.default.createElement(Button, { onClick: onAction }, actionLabel));
7226
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col items-center justify-center py-16 px-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "w-24 h-24 bg-gray-100 rounded-full flex items-center justify-center mb-6" }, /* @__PURE__ */ React20__default.default.createElement(Icon, { className: "w-12 h-12 text-gray-400" })), /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-2xl font-bold text-gray-900 mb-2" }, title), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-gray-600 text-center max-w-md mb-8" }, description), actionLabel && onAction && /* @__PURE__ */ React20__default.default.createElement(Button, { onClick: onAction }, actionLabel));
7209
7227
  }
7210
- var Input = React19.forwardRef(
7228
+ var Input = React20.forwardRef(
7211
7229
  ({ label, error, helperText, className = "", ...props }, ref) => {
7212
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "w-full" }, label && /* @__PURE__ */ React19__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, label), /* @__PURE__ */ React19__default.default.createElement(
7230
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "w-full" }, label && /* @__PURE__ */ React20__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, label), /* @__PURE__ */ React20__default.default.createElement(
7213
7231
  "input",
7214
7232
  {
7215
7233
  ref,
@@ -7223,21 +7241,21 @@ var Input = React19.forwardRef(
7223
7241
  `,
7224
7242
  ...props
7225
7243
  }
7226
- ), error && /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-2 text-sm text-red-600" }, error), helperText && !error && /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-2 text-sm text-gray-500" }, helperText));
7244
+ ), error && /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-2 text-sm text-red-600" }, error), helperText && !error && /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-2 text-sm text-gray-500" }, helperText));
7227
7245
  }
7228
7246
  );
7229
7247
  Input.displayName = "Input";
7230
7248
  function useProducts(filters, page = 1, limit = 20) {
7231
- const [products, setProducts] = React19.useState([]);
7232
- const [isLoading, setIsLoading] = React19.useState(true);
7233
- const [error, setError] = React19.useState(null);
7234
- const [pagination, setPagination] = React19.useState({
7249
+ const [products, setProducts] = React20.useState([]);
7250
+ const [isLoading, setIsLoading] = React20.useState(true);
7251
+ const [error, setError] = React20.useState(null);
7252
+ const [pagination, setPagination] = React20.useState({
7235
7253
  page: 1,
7236
7254
  limit: 20,
7237
7255
  total: 0,
7238
7256
  totalPages: 0
7239
7257
  });
7240
- const fetchProducts = React19.useCallback(async () => {
7258
+ const fetchProducts = React20.useCallback(async () => {
7241
7259
  setIsLoading(true);
7242
7260
  setError(null);
7243
7261
  try {
@@ -7293,16 +7311,16 @@ function useProducts(filters, page = 1, limit = 20) {
7293
7311
  }
7294
7312
  setIsLoading(false);
7295
7313
  }, [filters, page, limit]);
7296
- React19.useEffect(() => {
7314
+ React20.useEffect(() => {
7297
7315
  fetchProducts();
7298
7316
  }, [fetchProducts]);
7299
7317
  return { products, isLoading, error, pagination };
7300
7318
  }
7301
7319
  function useProduct(id) {
7302
- const [product, setProduct] = React19.useState(null);
7303
- const [isLoading, setIsLoading] = React19.useState(true);
7304
- const [error, setError] = React19.useState(null);
7305
- React19.useEffect(() => {
7320
+ const [product, setProduct] = React20.useState(null);
7321
+ const [isLoading, setIsLoading] = React20.useState(true);
7322
+ const [error, setError] = React20.useState(null);
7323
+ React20.useEffect(() => {
7306
7324
  const fetchProduct = async () => {
7307
7325
  setIsLoading(true);
7308
7326
  setError(null);
@@ -7319,10 +7337,10 @@ function useProduct(id) {
7319
7337
  return { product, isLoading, error };
7320
7338
  }
7321
7339
  function useCategories() {
7322
- const [categories, setCategories] = React19.useState([]);
7323
- const [isLoading, setIsLoading] = React19.useState(true);
7324
- const [error, setError] = React19.useState(null);
7325
- React19.useEffect(() => {
7340
+ const [categories, setCategories] = React20.useState([]);
7341
+ const [isLoading, setIsLoading] = React20.useState(true);
7342
+ const [error, setError] = React20.useState(null);
7343
+ React20.useEffect(() => {
7326
7344
  const fetchCategories = async () => {
7327
7345
  try {
7328
7346
  setIsLoading(true);
@@ -7343,19 +7361,20 @@ function useCategories() {
7343
7361
  // src/screens/ShopScreen.tsx
7344
7362
  function ShopScreen({ initialFilters = {}, categoryName }) {
7345
7363
  const router = navigation.useRouter();
7346
- const [filters, setFilters] = React19.useState(initialFilters);
7347
- const [page, setPage] = React19.useState(1);
7348
- const [showFilters, setShowFilters] = React19.useState(false);
7349
- const [searchQuery, setSearchQuery] = React19.useState("");
7350
- const [isSearching, setIsSearching] = React19.useState(false);
7351
- const [sortOption, setSortOption] = React19.useState("featured");
7352
- const [viewMode, setViewMode] = React19.useState("grid");
7353
- const [selectedPriceRange, setSelectedPriceRange] = React19.useState(null);
7354
- const [customPrice, setCustomPrice] = React19.useState({
7364
+ const { buildPath } = useBasePath();
7365
+ const [filters, setFilters] = React20.useState(initialFilters);
7366
+ const [page, setPage] = React20.useState(1);
7367
+ const [showFilters, setShowFilters] = React20.useState(false);
7368
+ const [searchQuery, setSearchQuery] = React20.useState("");
7369
+ const [isSearching, setIsSearching] = React20.useState(false);
7370
+ const [sortOption, setSortOption] = React20.useState("featured");
7371
+ const [viewMode, setViewMode] = React20.useState("grid");
7372
+ const [selectedPriceRange, setSelectedPriceRange] = React20.useState(null);
7373
+ const [customPrice, setCustomPrice] = React20.useState({
7355
7374
  min: "",
7356
7375
  max: ""
7357
7376
  });
7358
- const [expandedCategories, setExpandedCategories] = React19.useState({});
7377
+ const [expandedCategories, setExpandedCategories] = React20.useState({});
7359
7378
  const { products, isLoading, pagination } = useProducts(filters, page, 20);
7360
7379
  const { categories } = useCategories();
7361
7380
  const handleSearch = (e) => {
@@ -7375,7 +7394,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7375
7394
  router.push(`/search?q=${encodeURIComponent(searchQuery.trim())}`);
7376
7395
  }
7377
7396
  };
7378
- const priceRanges = React19.useMemo(
7397
+ const priceRanges = React20.useMemo(
7379
7398
  () => [
7380
7399
  { label: `Under ${formatPrice(25)}`, value: "under-25", min: void 0, max: 25 },
7381
7400
  { label: `${formatPrice(25)} - ${formatPrice(50)}`, value: "25-50", min: 25, max: 50 },
@@ -7384,13 +7403,13 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7384
7403
  ],
7385
7404
  []
7386
7405
  );
7387
- React19.useEffect(() => {
7406
+ React20.useEffect(() => {
7388
7407
  setCustomPrice({
7389
7408
  min: filters.minPrice !== void 0 ? String(filters.minPrice) : "",
7390
7409
  max: filters.maxPrice !== void 0 ? String(filters.maxPrice) : ""
7391
7410
  });
7392
7411
  }, [filters.minPrice, filters.maxPrice]);
7393
- React19.useEffect(() => {
7412
+ React20.useEffect(() => {
7394
7413
  const updates = {};
7395
7414
  if (filters.category) updates[filters.category] = true;
7396
7415
  if (filters.subCategory) {
@@ -7403,18 +7422,18 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7403
7422
  setExpandedCategories((prev) => ({ ...prev, ...updates }));
7404
7423
  }
7405
7424
  }, [filters.category, filters.subCategory, categories]);
7406
- const toggleCategoryExpand = React19.useCallback((id) => {
7425
+ const toggleCategoryExpand = React20.useCallback((id) => {
7407
7426
  setExpandedCategories((prev) => ({ ...prev, [id]: !prev[id] }));
7408
7427
  }, []);
7409
- const sortedCategories = React19.useMemo(
7428
+ const sortedCategories = React20.useMemo(
7410
7429
  () => [...categories].sort((a, b) => a.name?.localeCompare(b.name ?? "") ?? 0),
7411
7430
  [categories]
7412
7431
  );
7413
- const topCategories = React19.useMemo(
7432
+ const topCategories = React20.useMemo(
7414
7433
  () => [...categories].sort((a, b) => (b.productCount ?? 0) - (a.productCount ?? 0)).slice(0, 6),
7415
7434
  [categories]
7416
7435
  );
7417
- const productInsights = React19.useMemo(() => {
7436
+ const productInsights = React20.useMemo(() => {
7418
7437
  if (!products.length) {
7419
7438
  return { newArrivals: 0, inStockCount: 0 };
7420
7439
  }
@@ -7427,7 +7446,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7427
7446
  });
7428
7447
  return { newArrivals: newArrivals2, inStockCount };
7429
7448
  }, [products]);
7430
- const insightCards = React19.useMemo(
7449
+ const insightCards = React20.useMemo(
7431
7450
  () => [
7432
7451
  {
7433
7452
  id: "new",
@@ -7460,7 +7479,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7460
7479
  filters.newArrivals
7461
7480
  ]
7462
7481
  );
7463
- const filteredProducts = React19.useMemo(() => {
7482
+ const filteredProducts = React20.useMemo(() => {
7464
7483
  if (isLoading) return products;
7465
7484
  let items = [...products];
7466
7485
  if (filters.tags?.length) {
@@ -7472,7 +7491,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7472
7491
  }
7473
7492
  return items;
7474
7493
  }, [isLoading, products, filters.tags, filters.newArrivals]);
7475
- const sortedProducts = React19.useMemo(() => {
7494
+ const sortedProducts = React20.useMemo(() => {
7476
7495
  if (isLoading) {
7477
7496
  return filteredProducts;
7478
7497
  }
@@ -7491,14 +7510,14 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7491
7510
  }
7492
7511
  }, [isLoading, filteredProducts, sortOption]);
7493
7512
  const displayedProducts = sortedProducts;
7494
- const quickSearches = React19.useMemo(() => {
7513
+ const quickSearches = React20.useMemo(() => {
7495
7514
  const counts = /* @__PURE__ */ new Map();
7496
7515
  products.forEach((p) => {
7497
7516
  (p.tags || []).forEach((t) => counts.set(t, (counts.get(t) || 0) + 1));
7498
7517
  });
7499
7518
  return Array.from(counts.entries()).sort((a, b) => b[1] - a[1]).slice(0, 4).map(([tag]) => tag);
7500
7519
  }, [products]);
7501
- const handleQuickSearch = React19.useCallback((term) => {
7520
+ const handleQuickSearch = React20.useCallback((term) => {
7502
7521
  setSearchQuery("");
7503
7522
  setFilters((current) => ({
7504
7523
  ...current,
@@ -7507,7 +7526,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7507
7526
  }));
7508
7527
  setPage(1);
7509
7528
  }, []);
7510
- const handleCategoryChange = React19.useCallback(
7529
+ const handleCategoryChange = React20.useCallback(
7511
7530
  (categorySlug) => {
7512
7531
  setFilters((current) => {
7513
7532
  if (current.category === categorySlug) {
@@ -7524,7 +7543,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7524
7543
  },
7525
7544
  []
7526
7545
  );
7527
- const handleSubCategoryChange = React19.useCallback((parentCategoryId, subCategoryId) => {
7546
+ const handleSubCategoryChange = React20.useCallback((parentCategoryId, subCategoryId) => {
7528
7547
  setFilters((current) => {
7529
7548
  if (current.subCategory === subCategoryId) {
7530
7549
  const { subCategory, ...rest } = current;
@@ -7534,7 +7553,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7534
7553
  });
7535
7554
  setPage(1);
7536
7555
  }, []);
7537
- const handleToggleStock = React19.useCallback(() => {
7556
+ const handleToggleStock = React20.useCallback(() => {
7538
7557
  setFilters((current) => {
7539
7558
  if (current.inStock) {
7540
7559
  const { inStock, ...rest } = current;
@@ -7544,7 +7563,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7544
7563
  });
7545
7564
  setPage(1);
7546
7565
  }, []);
7547
- const handleToggleNewArrivals = React19.useCallback(() => {
7566
+ const handleToggleNewArrivals = React20.useCallback(() => {
7548
7567
  setFilters((current) => {
7549
7568
  if (current.newArrivals) {
7550
7569
  const { newArrivals: newArrivals2, ...rest } = current;
@@ -7554,21 +7573,21 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7554
7573
  });
7555
7574
  setPage(1);
7556
7575
  }, []);
7557
- const handleClearFilters = React19.useCallback(() => {
7576
+ const handleClearFilters = React20.useCallback(() => {
7558
7577
  setFilters({});
7559
7578
  setSearchQuery("");
7560
7579
  setSelectedPriceRange(null);
7561
7580
  setCustomPrice({ min: "", max: "" });
7562
7581
  setPage(1);
7563
7582
  }, []);
7564
- const handleRemoveCategory = React19.useCallback(() => {
7583
+ const handleRemoveCategory = React20.useCallback(() => {
7565
7584
  setFilters((current) => {
7566
7585
  const { category, subCategory, ...rest } = current;
7567
7586
  return rest;
7568
7587
  });
7569
7588
  setPage(1);
7570
7589
  }, []);
7571
- const handleRemoveSubCategory = React19.useCallback(() => {
7590
+ const handleRemoveSubCategory = React20.useCallback(() => {
7572
7591
  setFilters((current) => {
7573
7592
  const next = { ...current };
7574
7593
  delete next.subCategory;
@@ -7576,7 +7595,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7576
7595
  });
7577
7596
  setPage(1);
7578
7597
  }, []);
7579
- const handleRemoveSearch = React19.useCallback(() => {
7598
+ const handleRemoveSearch = React20.useCallback(() => {
7580
7599
  setFilters((current) => {
7581
7600
  const { search, ...rest } = current;
7582
7601
  return rest;
@@ -7584,14 +7603,14 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7584
7603
  setSearchQuery("");
7585
7604
  setPage(1);
7586
7605
  }, []);
7587
- const handleRemoveInStock = React19.useCallback(() => {
7606
+ const handleRemoveInStock = React20.useCallback(() => {
7588
7607
  setFilters((current) => {
7589
7608
  const { inStock, ...rest } = current;
7590
7609
  return rest;
7591
7610
  });
7592
7611
  setPage(1);
7593
7612
  }, []);
7594
- const handleRemovePrice = React19.useCallback(() => {
7613
+ const handleRemovePrice = React20.useCallback(() => {
7595
7614
  setFilters((current) => {
7596
7615
  const next = { ...current };
7597
7616
  delete next.minPrice;
@@ -7602,7 +7621,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7602
7621
  setCustomPrice({ min: "", max: "" });
7603
7622
  setPage(1);
7604
7623
  }, []);
7605
- const handleRemoveTag = React19.useCallback((tag) => {
7624
+ const handleRemoveTag = React20.useCallback((tag) => {
7606
7625
  setFilters((current) => {
7607
7626
  if (!current.tags) return current;
7608
7627
  const updated = current.tags.filter((item) => item !== tag);
@@ -7616,7 +7635,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7616
7635
  });
7617
7636
  setPage(1);
7618
7637
  }, []);
7619
- const handlePriceRangeSelect = React19.useCallback(
7638
+ const handlePriceRangeSelect = React20.useCallback(
7620
7639
  (value) => {
7621
7640
  const range = priceRanges.find((item) => item.value === value);
7622
7641
  if (selectedPriceRange === value) {
@@ -7655,7 +7674,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7655
7674
  },
7656
7675
  [priceRanges, selectedPriceRange]
7657
7676
  );
7658
- const applyCustomPrice = React19.useCallback(() => {
7677
+ const applyCustomPrice = React20.useCallback(() => {
7659
7678
  const rawMin = customPrice.min.trim();
7660
7679
  const rawMax = customPrice.max.trim();
7661
7680
  const minValue = rawMin !== "" ? Number(rawMin) : void 0;
@@ -7692,7 +7711,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7692
7711
  tags,
7693
7712
  newArrivals
7694
7713
  } = filters;
7695
- const activeFilterChips = React19.useMemo(() => {
7714
+ const activeFilterChips = React20.useMemo(() => {
7696
7715
  const chips = [];
7697
7716
  if (searchFilter) {
7698
7717
  chips.push({
@@ -7784,7 +7803,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7784
7803
  ]);
7785
7804
  const hasActiveFilters = activeFilterChips.length > 0;
7786
7805
  const isCustomPriceDirty = customPrice.min.trim() !== "" || customPrice.max.trim() !== "";
7787
- const renderFiltersPanel = () => /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-8" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-8" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-start justify-between gap-3" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, "Refine results"), /* @__PURE__ */ React19__default.default.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__default.default.createElement(
7806
+ const renderFiltersPanel = () => /* @__PURE__ */ React20__default.default.createElement(React20__default.default.Fragment, null, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-8" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-8" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-start justify-between gap-3" }, /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, "Refine results"), /* @__PURE__ */ React20__default.default.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__default.default.createElement(
7788
7807
  "button",
7789
7808
  {
7790
7809
  type: "button",
@@ -7792,10 +7811,10 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7792
7811
  className: "text-sm font-semibold text-primary-600 hover:text-primary-700"
7793
7812
  },
7794
7813
  "Clear all"
7795
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19__default.default.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Categories"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-2" }, sortedCategories.length === 0 && /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-sm text-gray-500" }, "No categories available yet."), sortedCategories.map((category) => {
7814
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20__default.default.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Categories"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-2" }, sortedCategories.length === 0 && /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-sm text-gray-500" }, "No categories available yet."), sortedCategories.map((category) => {
7796
7815
  const isCategoryActive = categoryFilter === category.id;
7797
7816
  const isExpanded = !!expandedCategories[category.id];
7798
- return /* @__PURE__ */ React19__default.default.createElement("div", { key: category.id, className: "rounded-xl border-gray-100 bg-white/50" }, /* @__PURE__ */ React19__default.default.createElement(
7817
+ return /* @__PURE__ */ React20__default.default.createElement("div", { key: category.id, className: "rounded-xl border-gray-100 bg-white/50" }, /* @__PURE__ */ React20__default.default.createElement(
7799
7818
  "div",
7800
7819
  {
7801
7820
  role: "button",
@@ -7806,8 +7825,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7806
7825
  },
7807
7826
  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"}`
7808
7827
  },
7809
- /* @__PURE__ */ React19__default.default.createElement("span", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-medium" }, category.name), category.productCount > 0 && /* @__PURE__ */ React19__default.default.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)),
7810
- /* @__PURE__ */ React19__default.default.createElement(
7828
+ /* @__PURE__ */ React20__default.default.createElement("span", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-medium" }, category.name), category.productCount > 0 && /* @__PURE__ */ React20__default.default.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)),
7829
+ /* @__PURE__ */ React20__default.default.createElement(
7811
7830
  "button",
7812
7831
  {
7813
7832
  type: "button",
@@ -7819,11 +7838,11 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7819
7838
  className: "rounded-md p-1 hover:bg-gray-100",
7820
7839
  "aria-label": isExpanded ? "Collapse" : "Expand"
7821
7840
  },
7822
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.ChevronDown, { className: `h-4 w-4 transition-transform ${isExpanded ? "rotate-180 text-primary-600" : "rotate-0 text-gray-400"}` })
7841
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.ChevronDown, { className: `h-4 w-4 transition-transform ${isExpanded ? "rotate-180 text-primary-600" : "rotate-0 text-gray-400"}` })
7823
7842
  )
7824
- ), isExpanded && Array.isArray(category.categorySubCategories) && category.categorySubCategories.length > 0 && /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-1 border-gray-100 px-2 pb-2 pl-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "divide-y divide-gray-100" }, category.categorySubCategories.map((sub) => {
7843
+ ), isExpanded && Array.isArray(category.categorySubCategories) && category.categorySubCategories.length > 0 && /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-1 border-gray-100 px-2 pb-2 pl-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "divide-y divide-gray-100" }, category.categorySubCategories.map((sub) => {
7825
7844
  const isSubActive = subCategoryFilter === sub.id;
7826
- return /* @__PURE__ */ React19__default.default.createElement(
7845
+ return /* @__PURE__ */ React20__default.default.createElement(
7827
7846
  "button",
7828
7847
  {
7829
7848
  key: sub.id,
@@ -7834,9 +7853,9 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7834
7853
  sub.name
7835
7854
  );
7836
7855
  }))));
7837
- }))))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React19__default.default.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Price"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, priceRanges.map((range) => {
7856
+ }))))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React20__default.default.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Price"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, priceRanges.map((range) => {
7838
7857
  const isActive = selectedPriceRange === range.value;
7839
- return /* @__PURE__ */ React19__default.default.createElement(
7858
+ return /* @__PURE__ */ React20__default.default.createElement(
7840
7859
  "button",
7841
7860
  {
7842
7861
  type: "button",
@@ -7846,7 +7865,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7846
7865
  },
7847
7866
  range.label
7848
7867
  );
7849
- })), /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid grid-cols-2 gap-3" }, /* @__PURE__ */ React19__default.default.createElement(
7868
+ })), /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid grid-cols-2 gap-3" }, /* @__PURE__ */ React20__default.default.createElement(
7850
7869
  Input,
7851
7870
  {
7852
7871
  type: "number",
@@ -7855,7 +7874,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7855
7874
  value: customPrice.min,
7856
7875
  onChange: (event) => setCustomPrice((current) => ({ ...current, min: event.target.value }))
7857
7876
  }
7858
- ), /* @__PURE__ */ React19__default.default.createElement(
7877
+ ), /* @__PURE__ */ React20__default.default.createElement(
7859
7878
  Input,
7860
7879
  {
7861
7880
  type: "number",
@@ -7864,7 +7883,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7864
7883
  value: customPrice.max,
7865
7884
  onChange: (event) => setCustomPrice((current) => ({ ...current, max: event.target.value }))
7866
7885
  }
7867
- )), /* @__PURE__ */ React19__default.default.createElement(
7886
+ )), /* @__PURE__ */ React20__default.default.createElement(
7868
7887
  "button",
7869
7888
  {
7870
7889
  type: "button",
@@ -7873,48 +7892,48 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7873
7892
  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"
7874
7893
  },
7875
7894
  "Apply price range"
7876
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19__default.default.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Availability"), /* @__PURE__ */ React19__default.default.createElement(
7895
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20__default.default.createElement("h4", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-gray-500" }, "Availability"), /* @__PURE__ */ React20__default.default.createElement(
7877
7896
  "button",
7878
7897
  {
7879
7898
  type: "button",
7880
7899
  onClick: handleToggleStock,
7881
7900
  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"}`
7882
7901
  },
7883
- /* @__PURE__ */ React19__default.default.createElement("span", null, "In stock only"),
7884
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-primary-500" })
7885
- ), /* @__PURE__ */ React19__default.default.createElement(
7902
+ /* @__PURE__ */ React20__default.default.createElement("span", null, "In stock only"),
7903
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-primary-500" })
7904
+ ), /* @__PURE__ */ React20__default.default.createElement(
7886
7905
  "button",
7887
7906
  {
7888
7907
  type: "button",
7889
7908
  onClick: handleToggleNewArrivals,
7890
7909
  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"}`
7891
7910
  },
7892
- /* @__PURE__ */ React19__default.default.createElement("span", null, "New arrivals (last 30 days)"),
7893
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-secondary-500" })
7911
+ /* @__PURE__ */ React20__default.default.createElement("span", null, "New arrivals (last 30 days)"),
7912
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-secondary-500" })
7894
7913
  ))));
7895
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(
7914
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(
7896
7915
  "div",
7897
7916
  {
7898
7917
  className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]",
7899
7918
  "aria-hidden": "true"
7900
7919
  }
7901
- ), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "relative container mx-auto px-4 py-24" }, /* @__PURE__ */ React19__default.default.createElement(
7920
+ ), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "relative container mx-auto px-4 py-24" }, /* @__PURE__ */ React20__default.default.createElement(
7902
7921
  framerMotion.motion.div,
7903
7922
  {
7904
7923
  initial: { opacity: 0, y: 24 },
7905
7924
  animate: { opacity: 1, y: 0 },
7906
7925
  className: "max-w-3xl space-y-8 text-center md:mx-auto md:text-left"
7907
7926
  },
7908
- /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4" }), "Wellness products, curated for you"),
7909
- /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-6xl" }, "Find pharmacy favorites crafted to keep your family thriving"),
7910
- /* @__PURE__ */ React19__default.default.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."),
7911
- /* @__PURE__ */ React19__default.default.createElement(
7927
+ /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4" }), "Wellness products, curated for you"),
7928
+ /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-6xl" }, "Find pharmacy favorites crafted to keep your family thriving"),
7929
+ /* @__PURE__ */ React20__default.default.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."),
7930
+ /* @__PURE__ */ React20__default.default.createElement(
7912
7931
  "form",
7913
7932
  {
7914
7933
  onSubmit: handleSearch,
7915
7934
  className: "mx-auto max-w-2xl md:mx-0"
7916
7935
  },
7917
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ React19__default.default.createElement(
7936
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ React20__default.default.createElement(
7918
7937
  "input",
7919
7938
  {
7920
7939
  type: "search",
@@ -7925,17 +7944,17 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7925
7944
  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",
7926
7945
  disabled: isSearching
7927
7946
  }
7928
- ), /* @__PURE__ */ React19__default.default.createElement(
7947
+ ), /* @__PURE__ */ React20__default.default.createElement(
7929
7948
  "button",
7930
7949
  {
7931
7950
  type: "submit",
7932
7951
  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",
7933
7952
  disabled: !searchQuery.trim() || isSearching
7934
7953
  },
7935
- isSearching ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "h-5 w-5 animate-spin rounded-full border-2 border-white border-t-transparent" }) : /* @__PURE__ */ React19__default.default.createElement(lucideReact.Search, { className: "h-5 w-5" })
7954
+ isSearching ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "h-5 w-5 animate-spin rounded-full border-2 border-white border-t-transparent" }) : /* @__PURE__ */ React20__default.default.createElement(lucideReact.Search, { className: "h-5 w-5" })
7936
7955
  ))
7937
7956
  )
7938
- ), /* @__PURE__ */ React19__default.default.createElement(
7957
+ ), /* @__PURE__ */ React20__default.default.createElement(
7939
7958
  framerMotion.motion.div,
7940
7959
  {
7941
7960
  initial: { opacity: 0, y: 24 },
@@ -7943,7 +7962,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7943
7962
  transition: { delay: 0.15 },
7944
7963
  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"
7945
7964
  },
7946
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, "Explore popular searches"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, quickSearches.map((term) => /* @__PURE__ */ React19__default.default.createElement(
7965
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, "Explore popular searches"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, quickSearches.map((term) => /* @__PURE__ */ React20__default.default.createElement(
7947
7966
  "button",
7948
7967
  {
7949
7968
  key: term,
@@ -7953,7 +7972,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7953
7972
  },
7954
7973
  term
7955
7974
  )))),
7956
- topCategories.length > 0 && /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-3 md:text-right" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, "Trending categories"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap justify-start gap-2 md:justify-end" }, topCategories.map((category) => /* @__PURE__ */ React19__default.default.createElement(
7975
+ topCategories.length > 0 && /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-3 md:text-right" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, "Trending categories"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap justify-start gap-2 md:justify-end" }, topCategories.map((category) => /* @__PURE__ */ React20__default.default.createElement(
7957
7976
  "button",
7958
7977
  {
7959
7978
  key: category.id,
@@ -7963,9 +7982,9 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7963
7982
  },
7964
7983
  category.name
7965
7984
  ))))
7966
- ), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-10 grid gap-4 md:grid-cols-3" }, insightCards.map((card, index) => {
7985
+ ), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-10 grid gap-4 md:grid-cols-3" }, insightCards.map((card, index) => {
7967
7986
  const Icon = card.icon;
7968
- return /* @__PURE__ */ React19__default.default.createElement(
7987
+ return /* @__PURE__ */ React20__default.default.createElement(
7969
7988
  framerMotion.motion.div,
7970
7989
  {
7971
7990
  key: card.id,
@@ -7978,10 +7997,10 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7978
7997
  "aria-pressed": card.id === "new" ? newArrivals ? "true" : "false" : void 0,
7979
7998
  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
7980
7999
  },
7981
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, card.label), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-2 text-3xl font-semibold text-white" }, card.value)), /* @__PURE__ */ React19__default.default.createElement("span", { className: "rounded-full bg-white/20 p-3 text-white" }, /* @__PURE__ */ React19__default.default.createElement(Icon, { className: "h-5 w-5" }))),
7982
- /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-3 text-sm text-white/70" }, card.helper)
8000
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-white/60" }, card.label), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-2 text-3xl font-semibold text-white" }, card.value)), /* @__PURE__ */ React20__default.default.createElement("span", { className: "rounded-full bg-white/20 p-3 text-white" }, /* @__PURE__ */ React20__default.default.createElement(Icon, { className: "h-5 w-5" }))),
8001
+ /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-3 text-sm text-white/70" }, card.helper)
7983
8002
  );
7984
- })))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative z-10 -mt-12 pb-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-8 lg:flex-row" }, /* @__PURE__ */ React19__default.default.createElement("aside", { className: "hidden w-72 flex-shrink-0 lg:block" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("main", { className: "flex-1 space-y-6" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-gray-100 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-2xl font-bold text-gray-900" }, "All products"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-1 text-sm text-gray-500" }, "Browse a pharmacy-grade catalogue with smart merchandising and modern UI.")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-3 md:flex-row md:items-center" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.ArrowUpDown, { className: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), /* @__PURE__ */ React19__default.default.createElement(
8003
+ })))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative z-10 -mt-12 pb-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-8 lg:flex-row" }, /* @__PURE__ */ React20__default.default.createElement("aside", { className: "hidden w-72 flex-shrink-0 lg:block" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("main", { className: "flex-1 space-y-6" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-gray-100 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-2xl font-bold text-gray-900" }, "All products"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-1 text-sm text-gray-500" }, "Browse a pharmacy-grade catalogue with smart merchandising and modern UI.")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-3 md:flex-row md:items-center" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.ArrowUpDown, { className: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), /* @__PURE__ */ React20__default.default.createElement(
7985
8004
  "select",
7986
8005
  {
7987
8006
  value: sortOption,
@@ -7990,11 +8009,11 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
7990
8009
  },
7991
8010
  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"
7992
8011
  },
7993
- /* @__PURE__ */ React19__default.default.createElement("option", { value: "featured" }, "Featured products"),
7994
- /* @__PURE__ */ React19__default.default.createElement("option", { value: "price-low-high" }, "Price: low to high"),
7995
- /* @__PURE__ */ React19__default.default.createElement("option", { value: "price-high-low" }, "Price: high to low"),
7996
- /* @__PURE__ */ React19__default.default.createElement("option", { value: "newest" }, "Newest arrivals")
7997
- ), /* @__PURE__ */ React19__default.default.createElement(lucideReact.ChevronDown, { className: "pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" })), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center rounded-xl border border-gray-200 bg-white shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement(
8012
+ /* @__PURE__ */ React20__default.default.createElement("option", { value: "featured" }, "Featured products"),
8013
+ /* @__PURE__ */ React20__default.default.createElement("option", { value: "price-low-high" }, "Price: low to high"),
8014
+ /* @__PURE__ */ React20__default.default.createElement("option", { value: "price-high-low" }, "Price: high to low"),
8015
+ /* @__PURE__ */ React20__default.default.createElement("option", { value: "newest" }, "Newest arrivals")
8016
+ ), /* @__PURE__ */ React20__default.default.createElement(lucideReact.ChevronDown, { className: "pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" })), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center rounded-xl border border-gray-200 bg-white shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement(
7998
8017
  "button",
7999
8018
  {
8000
8019
  type: "button",
@@ -8002,9 +8021,9 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8002
8021
  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"}`,
8003
8022
  "aria-pressed": viewMode === "grid"
8004
8023
  },
8005
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.LayoutGrid, { className: "h-4 w-4" }),
8024
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.LayoutGrid, { className: "h-4 w-4" }),
8006
8025
  "Grid"
8007
- ), /* @__PURE__ */ React19__default.default.createElement(
8026
+ ), /* @__PURE__ */ React20__default.default.createElement(
8008
8027
  "button",
8009
8028
  {
8010
8029
  type: "button",
@@ -8012,19 +8031,19 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8012
8031
  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"}`,
8013
8032
  "aria-pressed": viewMode === "list"
8014
8033
  },
8015
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.LayoutList, { className: "h-4 w-4" }),
8034
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.LayoutList, { className: "h-4 w-4" }),
8016
8035
  "List"
8017
- )))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-4 md:hidden" }, /* @__PURE__ */ React19__default.default.createElement(
8036
+ )))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-4 md:hidden" }, /* @__PURE__ */ React20__default.default.createElement(
8018
8037
  Button,
8019
8038
  {
8020
8039
  variant: "outline",
8021
8040
  className: "w-full",
8022
8041
  onClick: () => setShowFilters(true)
8023
8042
  },
8024
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.SlidersHorizontal, { className: "h-5 w-5" }),
8043
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.SlidersHorizontal, { className: "h-5 w-5" }),
8025
8044
  "Filters",
8026
- hasActiveFilters && /* @__PURE__ */ React19__default.default.createElement("span", { className: "ml-2 rounded-full bg-primary-600 px-2 py-0.5 text-xs font-semibold text-white" }, activeFilterChips.length)
8027
- )), hasActiveFilters && /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 flex flex-wrap items-center gap-2 border-t border-gray-100 pt-4" }, activeFilterChips.map((chip) => /* @__PURE__ */ React19__default.default.createElement(
8045
+ hasActiveFilters && /* @__PURE__ */ React20__default.default.createElement("span", { className: "ml-2 rounded-full bg-primary-600 px-2 py-0.5 text-xs font-semibold text-white" }, activeFilterChips.length)
8046
+ )), hasActiveFilters && /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 flex flex-wrap items-center gap-2 border-t border-gray-100 pt-4" }, activeFilterChips.map((chip) => /* @__PURE__ */ React20__default.default.createElement(
8028
8047
  "button",
8029
8048
  {
8030
8049
  key: chip.key,
@@ -8033,8 +8052,8 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8033
8052
  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"
8034
8053
  },
8035
8054
  chip.label,
8036
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.X, { className: "h-4 w-4 text-primary-500 group-hover:text-primary-700" })
8037
- )), /* @__PURE__ */ React19__default.default.createElement(
8055
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.X, { className: "h-4 w-4 text-primary-500 group-hover:text-primary-700" })
8056
+ )), /* @__PURE__ */ React20__default.default.createElement(
8038
8057
  "button",
8039
8058
  {
8040
8059
  type: "button",
@@ -8042,28 +8061,28 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8042
8061
  className: "text-sm font-semibold text-gray-500 hover:text-gray-700"
8043
8062
  },
8044
8063
  "Reset all"
8045
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-gray-100 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-3 text-sm text-gray-600 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19__default.default.createElement("span", null, isLoading ? "Loading products..." : `Showing ${displayedProducts.length} of ${pagination.total || displayedProducts.length} products`), /* @__PURE__ */ React19__default.default.createElement("span", { className: "inline-flex items-center gap-2 text-gray-400" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Clock, { className: "h-4 w-4" }), "Updated a moment ago")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6" }, isLoading ? /* @__PURE__ */ React19__default.default.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__default.default.createElement(ProductCardSkeleton, { key: index }))) : displayedProducts.length > 0 ? viewMode === "grid" ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 xl:grid-cols-3" }, displayedProducts.map((product) => /* @__PURE__ */ React19__default.default.createElement("div", { key: product.id, className: "h-full" }, /* @__PURE__ */ React19__default.default.createElement(
8064
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-gray-100 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-3 text-sm text-gray-600 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20__default.default.createElement("span", null, isLoading ? "Loading products..." : `Showing ${displayedProducts.length} of ${pagination.total || displayedProducts.length} products`), /* @__PURE__ */ React20__default.default.createElement("span", { className: "inline-flex items-center gap-2 text-gray-400" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Clock, { className: "h-4 w-4" }), "Updated a moment ago")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6" }, isLoading ? /* @__PURE__ */ React20__default.default.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__default.default.createElement(ProductCardSkeleton, { key: index }))) : displayedProducts.length > 0 ? viewMode === "grid" ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 xl:grid-cols-3" }, displayedProducts.map((product) => /* @__PURE__ */ React20__default.default.createElement("div", { key: product.id, className: "h-full" }, /* @__PURE__ */ React20__default.default.createElement(
8046
8065
  ProductCard,
8047
8066
  {
8048
8067
  product,
8049
8068
  onClickProduct: (item) => {
8050
8069
  const productData = encodeURIComponent(JSON.stringify(item));
8051
- router.push(`/products/${item.id}?product=${productData}`);
8070
+ router.push(buildPath(`/products/${item.id}?product=${productData}`));
8052
8071
  }
8053
8072
  }
8054
- )))) : /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-4" }, displayedProducts.map((product) => {
8073
+ )))) : /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-4" }, displayedProducts.map((product) => {
8055
8074
  product.priceBeforeDiscount && product.priceBeforeDiscount > product.finalPrice ? Math.round(
8056
8075
  (product.priceBeforeDiscount - product.finalPrice) / product.priceBeforeDiscount * 100
8057
8076
  ) : 0;
8058
- return /* @__PURE__ */ React19__default.default.createElement(
8077
+ return /* @__PURE__ */ React20__default.default.createElement(
8059
8078
  framerMotion.motion.div,
8060
8079
  {
8061
8080
  key: product.id,
8062
8081
  whileHover: { y: -4 },
8063
8082
  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",
8064
- onClick: () => router.push(`/products/${product.id}`)
8083
+ onClick: () => router.push(buildPath(`/products/${product.id}`))
8065
8084
  },
8066
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative h-48 w-full overflow-hidden rounded-2xl bg-gray-100 md:h-40 md:w-40" }, /* @__PURE__ */ React19__default.default.createElement(
8085
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative h-48 w-full overflow-hidden rounded-2xl bg-gray-100 md:h-40 md:w-40" }, /* @__PURE__ */ React20__default.default.createElement(
8067
8086
  Image3__default.default,
8068
8087
  {
8069
8088
  src: product.productMedia[0]?.file || "/placeholder-product.jpg",
@@ -8072,27 +8091,27 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8072
8091
  className: "object-cover transition duration-500 group-hover:scale-105"
8073
8092
  }
8074
8093
  )),
8075
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex-1 space-y-3" }, /* @__PURE__ */ React19__default.default.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__default.default.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__default.default.createElement(
8094
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex-1 space-y-3" }, /* @__PURE__ */ React20__default.default.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__default.default.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__default.default.createElement(
8076
8095
  "span",
8077
8096
  {
8078
8097
  key: tag,
8079
8098
  className: "rounded-full bg-slate-100 px-3 py-1 text-gray-600"
8080
8099
  },
8081
8100
  tag
8082
- ))), /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-xl font-semibold text-gray-900" }, product.name), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-gray-500" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "inline-flex items-center gap-2 font-medium text-primary-600" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), product.inventoryCount > 0 ? "In stock & ready to ship" : "Restocking soon"), /* @__PURE__ */ React19__default.default.createElement("span", { className: "inline-flex items-center gap-2" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Clock, { className: "h-4 w-4 text-primary-500" }), "Added ", new Date(product.createdAt).toLocaleDateString()))),
8083
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex w-full flex-col items-end gap-3 md:w-auto" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-right" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-3xl font-semibold text-gray-900" }, formatPrice(product.finalPrice)), product.priceBeforeDiscount && /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-gray-400 line-through" }, formatPrice(product.priceBeforeDiscount))), /* @__PURE__ */ React19__default.default.createElement(
8101
+ ))), /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-xl font-semibold text-gray-900" }, product.name), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-gray-500" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "inline-flex items-center gap-2 font-medium text-primary-600" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), product.inventoryCount > 0 ? "In stock & ready to ship" : "Restocking soon"), /* @__PURE__ */ React20__default.default.createElement("span", { className: "inline-flex items-center gap-2" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Clock, { className: "h-4 w-4 text-primary-500" }), "Added ", new Date(product.createdAt).toLocaleDateString()))),
8102
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex w-full flex-col items-end gap-3 md:w-auto" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-right" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-3xl font-semibold text-gray-900" }, formatPrice(product.finalPrice)), product.priceBeforeDiscount && /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-gray-400 line-through" }, formatPrice(product.priceBeforeDiscount))), /* @__PURE__ */ React20__default.default.createElement(
8084
8103
  Button,
8085
8104
  {
8086
8105
  size: "sm",
8087
8106
  onClick: (event) => {
8088
8107
  event.stopPropagation();
8089
- router.push(`/products/${product._id}`);
8108
+ router.push(buildPath(`/products/${product._id}`));
8090
8109
  }
8091
8110
  },
8092
8111
  "View product"
8093
8112
  ))
8094
8113
  );
8095
- })) : /* @__PURE__ */ React19__default.default.createElement(
8114
+ })) : /* @__PURE__ */ React20__default.default.createElement(
8096
8115
  EmptyState,
8097
8116
  {
8098
8117
  icon: lucideReact.Package,
@@ -8101,7 +8120,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8101
8120
  actionLabel: hasActiveFilters ? "Clear filters" : void 0,
8102
8121
  onAction: hasActiveFilters ? handleClearFilters : void 0
8103
8122
  }
8104
- )), pagination.totalPages > 1 && /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-10 flex flex-wrap items-center justify-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(
8123
+ )), pagination.totalPages > 1 && /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-10 flex flex-wrap items-center justify-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(
8105
8124
  Button,
8106
8125
  {
8107
8126
  variant: "outline",
@@ -8109,7 +8128,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8109
8128
  disabled: page === 1
8110
8129
  },
8111
8130
  "Previous"
8112
- ), /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-sm font-semibold text-gray-600" }, "Page ", page, " of ", pagination.totalPages), /* @__PURE__ */ React19__default.default.createElement(
8131
+ ), /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-sm font-semibold text-gray-600" }, "Page ", page, " of ", pagination.totalPages), /* @__PURE__ */ React20__default.default.createElement(
8113
8132
  Button,
8114
8133
  {
8115
8134
  variant: "outline",
@@ -8117,7 +8136,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8117
8136
  disabled: page === pagination.totalPages
8118
8137
  },
8119
8138
  "Next"
8120
- ))))))), /* @__PURE__ */ React19__default.default.createElement(framerMotion.AnimatePresence, null, showFilters && /* @__PURE__ */ React19__default.default.createElement(
8139
+ ))))))), /* @__PURE__ */ React20__default.default.createElement(framerMotion.AnimatePresence, null, showFilters && /* @__PURE__ */ React20__default.default.createElement(
8121
8140
  framerMotion.motion.div,
8122
8141
  {
8123
8142
  initial: { opacity: 0 },
@@ -8125,7 +8144,7 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8125
8144
  exit: { opacity: 0 },
8126
8145
  className: "fixed inset-0 z-50 bg-black/40 backdrop-blur-sm lg:hidden"
8127
8146
  },
8128
- /* @__PURE__ */ React19__default.default.createElement(
8147
+ /* @__PURE__ */ React20__default.default.createElement(
8129
8148
  framerMotion.motion.div,
8130
8149
  {
8131
8150
  initial: { y: "100%" },
@@ -8134,14 +8153,14 @@ function ShopScreen({ initialFilters = {}, categoryName }) {
8134
8153
  transition: { type: "spring", stiffness: 260, damping: 26 },
8135
8154
  className: "absolute inset-x-0 bottom-0 max-h-[85vh] overflow-y-auto rounded-t-3xl bg-white p-6 shadow-2xl"
8136
8155
  },
8137
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "mb-6 flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, "Filters"), /* @__PURE__ */ React19__default.default.createElement(
8156
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "mb-6 flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, "Filters"), /* @__PURE__ */ React20__default.default.createElement(
8138
8157
  "button",
8139
8158
  {
8140
8159
  type: "button",
8141
8160
  onClick: () => setShowFilters(false),
8142
8161
  className: "rounded-full border border-gray-200 p-2 text-gray-500 hover:text-gray-700"
8143
8162
  },
8144
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.X, { className: "h-4 w-4" })
8163
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.X, { className: "h-4 w-4" })
8145
8164
  )),
8146
8165
  renderFiltersPanel()
8147
8166
  )
@@ -8160,7 +8179,7 @@ function Badge({ children, variant = "primary", size = "md", className = "" }) {
8160
8179
  sm: "px-2 py-1 text-xs",
8161
8180
  md: "px-3 py-1 text-sm"
8162
8181
  };
8163
- return /* @__PURE__ */ React19__default.default.createElement("span", { className: `inline-flex items-center font-medium rounded-full border ${variants[variant]} ${sizes[size]} ${className}` }, children);
8182
+ return /* @__PURE__ */ React20__default.default.createElement("span", { className: `inline-flex items-center font-medium rounded-full border ${variants[variant]} ${sizes[size]} ${className}` }, children);
8164
8183
  }
8165
8184
  var safeFormatDate = (date, format = "long") => {
8166
8185
  if (!date) return "N/A";
@@ -8176,17 +8195,17 @@ function ProductDetailScreen({ productId }) {
8176
8195
  const router = navigation.useRouter();
8177
8196
  const { product: productData, isLoading } = useProduct(productId);
8178
8197
  const { addToCart } = useCart();
8179
- const [selectedVariant, setSelectedVariant] = React19.useState(null);
8180
- const [quantity, setQuantity] = React19.useState(1);
8181
- const [isAddingToCart, setIsAddingToCart] = React19.useState(false);
8182
- const [isFavorited, setIsFavorited] = React19.useState(false);
8183
- const [relatedProducts, setRelatedProducts] = React19.useState([]);
8184
- const [initialProductData, setInitialProductData] = React19.useState(null);
8185
- const [activeImageIndex, setActiveImageIndex] = React19.useState(0);
8186
- React19.useEffect(() => {
8198
+ const [selectedVariant, setSelectedVariant] = React20.useState(null);
8199
+ const [quantity, setQuantity] = React20.useState(1);
8200
+ const [isAddingToCart, setIsAddingToCart] = React20.useState(false);
8201
+ const [isFavorited, setIsFavorited] = React20.useState(false);
8202
+ const [relatedProducts, setRelatedProducts] = React20.useState([]);
8203
+ const [initialProductData, setInitialProductData] = React20.useState(null);
8204
+ const [activeImageIndex, setActiveImageIndex] = React20.useState(0);
8205
+ React20.useEffect(() => {
8187
8206
  setActiveImageIndex(0);
8188
8207
  }, [selectedVariant]);
8189
- const product = React19.useMemo(() => {
8208
+ const product = React20.useMemo(() => {
8190
8209
  if (initialProductData && !productData) {
8191
8210
  return initialProductData;
8192
8211
  }
@@ -8237,7 +8256,7 @@ function ProductDetailScreen({ productId }) {
8237
8256
  );
8238
8257
  const variantSku = currentVariant?.sku || product?.sku || "N/A";
8239
8258
  const variantInStock = currentVariant?.inventoryCount > 0;
8240
- React19.useEffect(() => {
8259
+ React20.useEffect(() => {
8241
8260
  if (typeof window === "undefined") return;
8242
8261
  const searchParams = new URLSearchParams(window.location.search);
8243
8262
  const productParam = searchParams.get("product");
@@ -8250,13 +8269,13 @@ function ProductDetailScreen({ productId }) {
8250
8269
  }
8251
8270
  }
8252
8271
  }, []);
8253
- React19.useEffect(() => {
8272
+ React20.useEffect(() => {
8254
8273
  if (product?.productVariants?.length > 0) {
8255
8274
  const newVariant = product?.productVariants?.[0];
8256
8275
  setSelectedVariant(newVariant);
8257
8276
  }
8258
8277
  }, [product?.productVariants]);
8259
- React19.useEffect(() => {
8278
+ React20.useEffect(() => {
8260
8279
  if (!product?.id) return;
8261
8280
  const fetchRelated = async () => {
8262
8281
  try {
@@ -8297,7 +8316,7 @@ function ProductDetailScreen({ productId }) {
8297
8316
  }
8298
8317
  };
8299
8318
  const { addToWishlist, removeFromWishlist, isInWishlist } = useWishlist();
8300
- React19.useEffect(() => {
8319
+ React20.useEffect(() => {
8301
8320
  if (product) {
8302
8321
  setIsFavorited(isInWishlist(product.id));
8303
8322
  }
@@ -8319,10 +8338,10 @@ function ProductDetailScreen({ productId }) {
8319
8338
  }
8320
8339
  };
8321
8340
  if (isLoading) {
8322
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "h-[520px] animate-pulse rounded-3xl bg-slate-200" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid grid-cols-3 gap-4" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React19__default.default.createElement("div", { key: index, className: "h-32 animate-pulse rounded-2xl bg-slate-200" })))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-4 rounded-3xl bg-white p-6 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "h-8 w-32 animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "h-10 w-48 animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "h-6 w-full animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "h-12 w-full animate-pulse rounded-2xl bg-slate-200" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "h-12 w-full animate-pulse rounded-2xl bg-slate-200" })))));
8341
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "h-[520px] animate-pulse rounded-3xl bg-slate-200" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid grid-cols-3 gap-4" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React20__default.default.createElement("div", { key: index, className: "h-32 animate-pulse rounded-2xl bg-slate-200" })))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-4 rounded-3xl bg-white p-6 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "h-8 w-32 animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "h-10 w-48 animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "h-6 w-full animate-pulse rounded-full bg-slate-200" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "h-12 w-full animate-pulse rounded-2xl bg-slate-200" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "h-12 w-full animate-pulse rounded-2xl bg-slate-200" })))));
8323
8342
  }
8324
8343
  if (!product) {
8325
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl bg-white p-10 text-center shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "mx-auto h-10 w-10 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("h1", { className: "mt-6 text-2xl font-semibold text-gray-900" }, "Product not found"), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "mt-6" }, /* @__PURE__ */ React19__default.default.createElement(Link8__default.default, { href: "/shop", className: "inline-block" }, /* @__PURE__ */ React19__default.default.createElement(Button, null, "Browse products"))))));
8344
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl bg-white p-10 text-center shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "mx-auto h-10 w-10 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("h1", { className: "mt-6 text-2xl font-semibold text-gray-900" }, "Product not found"), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "mt-6" }, /* @__PURE__ */ React20__default.default.createElement(Link8__default.default, { href: "/shop", className: "inline-block" }, /* @__PURE__ */ React20__default.default.createElement(Button, null, "Browse products"))))));
8326
8345
  }
8327
8346
  product.tags && product.tags.length > 0 ? product.tags.slice(0, 6) : ["Pharmacist approved", "Gentle on daily routines", "Backed by real customers"];
8328
8347
  const highlightCards = [
@@ -8342,29 +8361,29 @@ function ProductDetailScreen({ productId }) {
8342
8361
  description: "Average rating 4.8/5 with over 120 verified customer experiences."
8343
8362
  }
8344
8363
  ];
8345
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(
8364
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(
8346
8365
  "div",
8347
8366
  {
8348
8367
  className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]",
8349
8368
  "aria-hidden": "true"
8350
8369
  }
8351
- ), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement(
8370
+ ), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement(
8352
8371
  Button,
8353
8372
  {
8354
8373
  variant: "ghost",
8355
8374
  className: "text-white hover:bg-white/10",
8356
8375
  onClick: () => router.push("/shop")
8357
8376
  },
8358
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.ArrowLeft, { className: "h-5 w-5" }),
8377
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.ArrowLeft, { className: "h-5 w-5" }),
8359
8378
  "Continue shopping"
8360
- ), /* @__PURE__ */ React19__default.default.createElement("div", { className: "hidden items-center gap-3 text-sm text-white/80 md:flex" }, /* @__PURE__ */ React19__default.default.createElement(Link8__default.default, { href: "/", className: "transition hover:text-white" }, "Home"), /* @__PURE__ */ React19__default.default.createElement(lucideReact.ChevronRight, { className: "h-4 w-4" }), /* @__PURE__ */ React19__default.default.createElement(Link8__default.default, { href: "/shop", className: "transition hover:text-white" }, "Shop"), /* @__PURE__ */ React19__default.default.createElement(lucideReact.ChevronRight, { className: "h-4 w-4" }), /* @__PURE__ */ React19__default.default.createElement("span", { className: "truncate font-medium text-white" }, product.name))), /* @__PURE__ */ React19__default.default.createElement(
8379
+ ), /* @__PURE__ */ React20__default.default.createElement("div", { className: "hidden items-center gap-3 text-sm text-white/80 md:flex" }, /* @__PURE__ */ React20__default.default.createElement(Link8__default.default, { href: "/", className: "transition hover:text-white" }, "Home"), /* @__PURE__ */ React20__default.default.createElement(lucideReact.ChevronRight, { className: "h-4 w-4" }), /* @__PURE__ */ React20__default.default.createElement(Link8__default.default, { href: "/shop", className: "transition hover:text-white" }, "Shop"), /* @__PURE__ */ React20__default.default.createElement(lucideReact.ChevronRight, { className: "h-4 w-4" }), /* @__PURE__ */ React20__default.default.createElement("span", { className: "truncate font-medium text-white" }, product.name))), /* @__PURE__ */ React20__default.default.createElement(
8361
8380
  framerMotion.motion.div,
8362
8381
  {
8363
8382
  initial: { opacity: 0, y: 24 },
8364
8383
  animate: { opacity: 1, y: 0 },
8365
8384
  className: "max-w-3xl space-y-4"
8366
8385
  },
8367
- product.category && /* @__PURE__ */ React19__default.default.createElement(
8386
+ product.category && /* @__PURE__ */ React20__default.default.createElement(
8368
8387
  Badge,
8369
8388
  {
8370
8389
  variant: "secondary",
@@ -8372,9 +8391,9 @@ function ProductDetailScreen({ productId }) {
8372
8391
  },
8373
8392
  product.category
8374
8393
  ),
8375
- /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-5xl" }, product.name),
8376
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap items-center gap-3 text-sm text-white/80" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1 font-medium text-white" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4" }), "Ready to ship today"), /* @__PURE__ */ React19__default.default.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1 font-medium text-white" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Shield, { className: "h-4 w-4" }), "30-day happiness guarantee"))
8377
- )))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-10" }, /* @__PURE__ */ React19__default.default.createElement("section", { className: "rounded-3xl border border-white bg-white/70 p-6 shadow-xl shadow-primary-100/40 backdrop-blur" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-6 lg:grid-cols-[minmax(0,1fr)_220px]" }, /* @__PURE__ */ React19__default.default.createElement(
8394
+ /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-5xl" }, product.name),
8395
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap items-center gap-3 text-sm text-white/80" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1 font-medium text-white" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4" }), "Ready to ship today"), /* @__PURE__ */ React20__default.default.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1 font-medium text-white" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Shield, { className: "h-4 w-4" }), "30-day happiness guarantee"))
8396
+ )))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-10" }, /* @__PURE__ */ React20__default.default.createElement("section", { className: "rounded-3xl border border-white bg-white/70 p-6 shadow-xl shadow-primary-100/40 backdrop-blur" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-6 lg:grid-cols-[minmax(0,1fr)_220px]" }, /* @__PURE__ */ React20__default.default.createElement(
8378
8397
  framerMotion.motion.div,
8379
8398
  {
8380
8399
  key: variantImages[activeImageIndex],
@@ -8383,7 +8402,7 @@ function ProductDetailScreen({ productId }) {
8383
8402
  transition: { duration: 0.35 },
8384
8403
  className: "relative overflow-hidden rounded-3xl bg-slate-100 h-[420px] md:h-[560px]"
8385
8404
  },
8386
- /* @__PURE__ */ React19__default.default.createElement(
8405
+ /* @__PURE__ */ React20__default.default.createElement(
8387
8406
  Image3__default.default,
8388
8407
  {
8389
8408
  src: variantImages[activeImageIndex],
@@ -8394,7 +8413,7 @@ function ProductDetailScreen({ productId }) {
8394
8413
  className: "object-contain"
8395
8414
  }
8396
8415
  ),
8397
- discount > 0 && /* @__PURE__ */ React19__default.default.createElement(
8416
+ discount > 0 && /* @__PURE__ */ React20__default.default.createElement(
8398
8417
  Badge,
8399
8418
  {
8400
8419
  variant: "danger",
@@ -8404,7 +8423,7 @@ function ProductDetailScreen({ productId }) {
8404
8423
  discount,
8405
8424
  "%"
8406
8425
  ),
8407
- !variantInStock && /* @__PURE__ */ React19__default.default.createElement(
8426
+ !variantInStock && /* @__PURE__ */ React20__default.default.createElement(
8408
8427
  Badge,
8409
8428
  {
8410
8429
  variant: "secondary",
@@ -8412,7 +8431,7 @@ function ProductDetailScreen({ productId }) {
8412
8431
  },
8413
8432
  "Out of Stock"
8414
8433
  )
8415
- ), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-4" }, product?.productVariants?.length > 0 && /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-2xl border border-slate-200 bg-white p-4 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "mb-2 text-sm font-semibold uppercase tracking-[0.25em] text-slate-400" }, "Variant"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, product?.productVariants?.map((variant, index) => /* @__PURE__ */ React19__default.default.createElement(
8434
+ ), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-4" }, product?.productVariants?.length > 0 && /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-2xl border border-slate-200 bg-white p-4 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "mb-2 text-sm font-semibold uppercase tracking-[0.25em] text-slate-400" }, "Variant"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, product?.productVariants?.map((variant, index) => /* @__PURE__ */ React20__default.default.createElement(
8416
8435
  "button",
8417
8436
  {
8418
8437
  key: variant.id,
@@ -8421,7 +8440,7 @@ function ProductDetailScreen({ productId }) {
8421
8440
  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"}`
8422
8441
  },
8423
8442
  variant.name
8424
- )))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid grid-cols-3 gap-3" }, variantImages.map((image, index) => /* @__PURE__ */ React19__default.default.createElement(
8443
+ )))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid grid-cols-3 gap-3" }, variantImages.map((image, index) => /* @__PURE__ */ React20__default.default.createElement(
8425
8444
  "button",
8426
8445
  {
8427
8446
  key: image.src + index,
@@ -8429,7 +8448,7 @@ function ProductDetailScreen({ productId }) {
8429
8448
  onClick: () => setActiveImageIndex(index),
8430
8449
  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"}`
8431
8450
  },
8432
- /* @__PURE__ */ React19__default.default.createElement(
8451
+ /* @__PURE__ */ React20__default.default.createElement(
8433
8452
  Image3__default.default,
8434
8453
  {
8435
8454
  src: image.src,
@@ -8440,18 +8459,18 @@ function ProductDetailScreen({ productId }) {
8440
8459
  unoptimized: true
8441
8460
  }
8442
8461
  )
8443
- )))))), /* @__PURE__ */ React19__default.default.createElement("section", { className: "grid gap-6 lg:grid-cols-3" }, highlightCards.map((card) => {
8462
+ )))))), /* @__PURE__ */ React20__default.default.createElement("section", { className: "grid gap-6 lg:grid-cols-3" }, highlightCards.map((card) => {
8444
8463
  const Icon = card.icon;
8445
- return /* @__PURE__ */ React19__default.default.createElement(
8464
+ return /* @__PURE__ */ React20__default.default.createElement(
8446
8465
  "div",
8447
8466
  {
8448
8467
  key: card.title,
8449
8468
  className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-sm transition hover:-translate-y-1 hover:shadow-lg"
8450
8469
  },
8451
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "rounded-2xl bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React19__default.default.createElement(Icon, { className: "h-5 w-5" })), /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-base font-semibold text-slate-900" }, card.title)),
8452
- /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-3 text-sm leading-relaxed text-slate-600" }, card.description)
8470
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "rounded-2xl bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React20__default.default.createElement(Icon, { className: "h-5 w-5" })), /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-base font-semibold text-slate-900" }, card.title)),
8471
+ /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-3 text-sm leading-relaxed text-slate-600" }, card.description)
8453
8472
  );
8454
- })), /* @__PURE__ */ React19__default.default.createElement("section", { className: "grid gap-6 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap items-center gap-4 pb-6" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-1 text-amber-500" }, Array.from({ length: 5 }).map((_, index) => /* @__PURE__ */ React19__default.default.createElement(lucideReact.Star, { key: index, className: "h-4 w-4 fill-current" }))), /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-sm font-medium text-slate-500" }, "Rated 4.8 \u2022 Patients love the results")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-8" }, product.description && /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, "Description"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-base leading-relaxed text-slate-600", dangerouslySetInnerHTML: { __html: product.description } })))), /* @__PURE__ */ React19__default.default.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__default.default.createElement("h3", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-primary-500" }, "Care tips"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-4 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "leading-relaxed" }, "Store in a cool, dry place away from direct sunlight. Check packaging for allergen statements."), /* @__PURE__ */ React19__default.default.createElement("p", { className: "leading-relaxed" }, "Consult with your local pharmacist if you are combining with other treatments or have chronic conditions."), /* @__PURE__ */ React19__default.default.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__default.default.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Product insights"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 grid gap-6 md:grid-cols-2" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-2xl border border-slate-200 bg-slate-50/60 p-5" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-slate-500" }, "Availability"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-3 flex items-center gap-2 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Check, { className: "h-4 w-4 text-primary-500" }), product.inStock ? "Available for dispatch today" : "Currently restocking"), product.stock !== void 0 && /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "rounded-2xl border border-slate-200 bg-slate-50/60 p-5" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-slate-500" }, "Product details"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-3 space-y-2 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement("p", null, /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-medium text-slate-700" }, "Variant:"), " ", currentVariant.name), /* @__PURE__ */ React19__default.default.createElement("p", null, /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-medium text-slate-700" }, "SKU:"), " ", variantSku), /* @__PURE__ */ React19__default.default.createElement("p", null, /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-medium text-slate-700" }, "Status:"), " ", /* @__PURE__ */ React19__default.default.createElement("span", { className: variantInStock ? "text-green-600" : "text-amber-600" }, variantInStock ? "In Stock" : "Out of Stock")), /* @__PURE__ */ React19__default.default.createElement("p", null, /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-medium text-slate-700" }, "Last updated:"), " ", lastUpdatedLabel), /* @__PURE__ */ React19__default.default.createElement("p", null, /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-medium text-slate-700" }, "Ships from:"), " Local pharmacy distribution center")))))), /* @__PURE__ */ React19__default.default.createElement("aside", { className: "space-y-6 lg:sticky lg:top-24" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-100/40" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-baseline gap-3" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-3xl font-bold text-slate-900" }, selectedVariant ? formatPrice(selectedVariant.finalPrice) : formatPrice(product.price)), variantComparePrice && variantComparePrice > variantPrice && /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-base text-slate-400 line-through" }, formatPrice(variantComparePrice)), discount > 0 && /* @__PURE__ */ React19__default.default.createElement(Badge, { variant: "danger", size: "sm" }, "-", discount, "%")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 space-y-4" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), "Pharmacist verified product"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between rounded-2xl border border-slate-200 px-4 py-3" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-sm font-medium text-slate-600" }, "Qty"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center rounded-full border border-slate-200 bg-slate-50" }, /* @__PURE__ */ React19__default.default.createElement(
8473
+ })), /* @__PURE__ */ React20__default.default.createElement("section", { className: "grid gap-6 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap items-center gap-4 pb-6" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-1 text-amber-500" }, Array.from({ length: 5 }).map((_, index) => /* @__PURE__ */ React20__default.default.createElement(lucideReact.Star, { key: index, className: "h-4 w-4 fill-current" }))), /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-sm font-medium text-slate-500" }, "Rated 4.8 \u2022 Patients love the results")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-8" }, product.description && /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, "Description"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-base leading-relaxed text-slate-600", dangerouslySetInnerHTML: { __html: product.description } })))), /* @__PURE__ */ React20__default.default.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__default.default.createElement("h3", { className: "text-sm font-semibold uppercase tracking-[0.3em] text-primary-500" }, "Care tips"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-4 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "leading-relaxed" }, "Store in a cool, dry place away from direct sunlight. Check packaging for allergen statements."), /* @__PURE__ */ React20__default.default.createElement("p", { className: "leading-relaxed" }, "Consult with your local pharmacist if you are combining with other treatments or have chronic conditions."), /* @__PURE__ */ React20__default.default.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__default.default.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Product insights"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 grid gap-6 md:grid-cols-2" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-2xl border border-slate-200 bg-slate-50/60 p-5" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-slate-500" }, "Availability"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-3 flex items-center gap-2 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Check, { className: "h-4 w-4 text-primary-500" }), product.inStock ? "Available for dispatch today" : "Currently restocking"), product.stock !== void 0 && /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "rounded-2xl border border-slate-200 bg-slate-50/60 p-5" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-slate-500" }, "Product details"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-3 space-y-2 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement("p", null, /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-medium text-slate-700" }, "Variant:"), " ", currentVariant.name), /* @__PURE__ */ React20__default.default.createElement("p", null, /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-medium text-slate-700" }, "SKU:"), " ", variantSku), /* @__PURE__ */ React20__default.default.createElement("p", null, /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-medium text-slate-700" }, "Status:"), " ", /* @__PURE__ */ React20__default.default.createElement("span", { className: variantInStock ? "text-green-600" : "text-amber-600" }, variantInStock ? "In Stock" : "Out of Stock")), /* @__PURE__ */ React20__default.default.createElement("p", null, /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-medium text-slate-700" }, "Last updated:"), " ", lastUpdatedLabel), /* @__PURE__ */ React20__default.default.createElement("p", null, /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-medium text-slate-700" }, "Ships from:"), " Local pharmacy distribution center")))))), /* @__PURE__ */ React20__default.default.createElement("aside", { className: "space-y-6 lg:sticky lg:top-24" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-100/40" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-baseline gap-3" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-3xl font-bold text-slate-900" }, selectedVariant ? formatPrice(selectedVariant.finalPrice) : formatPrice(product.price)), variantComparePrice && variantComparePrice > variantPrice && /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-base text-slate-400 line-through" }, formatPrice(variantComparePrice)), discount > 0 && /* @__PURE__ */ React20__default.default.createElement(Badge, { variant: "danger", size: "sm" }, "-", discount, "%")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 space-y-4" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), "Pharmacist verified product"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between rounded-2xl border border-slate-200 px-4 py-3" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-sm font-medium text-slate-600" }, "Qty"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center rounded-full border border-slate-200 bg-slate-50" }, /* @__PURE__ */ React20__default.default.createElement(
8455
8474
  "button",
8456
8475
  {
8457
8476
  type: "button",
@@ -8459,8 +8478,8 @@ function ProductDetailScreen({ productId }) {
8459
8478
  className: "rounded-l-full p-2 hover:bg-primary-100/60",
8460
8479
  "aria-label": "Decrease quantity"
8461
8480
  },
8462
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Minus, { className: "h-4 w-4" })
8463
- ), /* @__PURE__ */ React19__default.default.createElement("span", { className: "w-12 text-center text-sm font-semibold text-slate-700" }, quantity), /* @__PURE__ */ React19__default.default.createElement(
8481
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Minus, { className: "h-4 w-4" })
8482
+ ), /* @__PURE__ */ React20__default.default.createElement("span", { className: "w-12 text-center text-sm font-semibold text-slate-700" }, quantity), /* @__PURE__ */ React20__default.default.createElement(
8464
8483
  "button",
8465
8484
  {
8466
8485
  type: "button",
@@ -8468,8 +8487,8 @@ function ProductDetailScreen({ productId }) {
8468
8487
  className: "rounded-r-full p-2 hover:bg-primary-100/60",
8469
8488
  "aria-label": "Increase quantity"
8470
8489
  },
8471
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Plus, { className: "h-4 w-4" })
8472
- )))), selectedVariant && /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-4 text-sm" }, selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ || selectedVariant.inventoryStatus === "LOW_STOCK" /* LOWSTOCK */ ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-red-600 font-medium" }, "Out of Stock") : /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-green-600 font-medium" }, "In Stock")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 space-x-3" }, /* @__PURE__ */ React19__default.default.createElement(
8490
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Plus, { className: "h-4 w-4" })
8491
+ )))), selectedVariant && /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-4 text-sm" }, selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ || selectedVariant.inventoryStatus === "LOW_STOCK" /* LOWSTOCK */ ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-red-600 font-medium" }, "Out of Stock") : /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-green-600 font-medium" }, "In Stock")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 space-x-3" }, /* @__PURE__ */ React20__default.default.createElement(
8473
8492
  Button,
8474
8493
  {
8475
8494
  size: "lg",
@@ -8478,9 +8497,9 @@ function ProductDetailScreen({ productId }) {
8478
8497
  isLoading: isAddingToCart,
8479
8498
  disabled: !selectedVariant || selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */
8480
8499
  },
8481
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.ShoppingCart, { className: "h-5 w-5" }),
8500
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.ShoppingCart, { className: "h-5 w-5" }),
8482
8501
  !selectedVariant ? "Select a variant" : selectedVariant.inventoryStatus === "OUT_OF_STOCK" /* OUTOFSTOCK */ ? "Out of Stock" : `Add to Cart`
8483
- ), /* @__PURE__ */ React19__default.default.createElement(
8502
+ ), /* @__PURE__ */ React20__default.default.createElement(
8484
8503
  Button,
8485
8504
  {
8486
8505
  size: "lg",
@@ -8488,18 +8507,18 @@ function ProductDetailScreen({ productId }) {
8488
8507
  className: "w-full",
8489
8508
  onClick: handleToggleFavorite
8490
8509
  },
8491
- /* @__PURE__ */ React19__default.default.createElement(
8510
+ /* @__PURE__ */ React20__default.default.createElement(
8492
8511
  lucideReact.Heart,
8493
8512
  {
8494
8513
  className: `h-5 w-5 ${isFavorited ? "fill-red-500 text-red-500" : "text-slate-500"}`
8495
8514
  }
8496
8515
  ),
8497
8516
  isFavorited ? "Saved" : "Save for later"
8498
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.25em]" }, "Need advice?"), /* @__PURE__ */ React19__default.default.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__default.default.createElement("section", { className: "mt-20" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "You may also like"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-1 text-sm text-slate-500" }, "Hand-picked recommendations that pair nicely with this product.")), /* @__PURE__ */ React19__default.default.createElement(Link8__default.default, { href: "/shop", className: "hidden md:inline-flex" }, /* @__PURE__ */ React19__default.default.createElement(Button, { variant: "ghost", className: "text-primary-600" }, "View all products"))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 grid gap-6 sm:grid-cols-2 lg:grid-cols-4" }, relatedProducts?.map((relatedProduct) => /* @__PURE__ */ React19__default.default.createElement(ProductCard, { key: relatedProduct.id, product: relatedProduct })))))));
8517
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.25em]" }, "Need advice?"), /* @__PURE__ */ React20__default.default.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__default.default.createElement("section", { className: "mt-20" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "You may also like"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-1 text-sm text-slate-500" }, "Hand-picked recommendations that pair nicely with this product.")), /* @__PURE__ */ React20__default.default.createElement(Link8__default.default, { href: "/shop", className: "hidden md:inline-flex" }, /* @__PURE__ */ React20__default.default.createElement(Button, { variant: "ghost", className: "text-primary-600" }, "View all products"))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 grid gap-6 sm:grid-cols-2 lg:grid-cols-4" }, relatedProducts?.map((relatedProduct) => /* @__PURE__ */ React20__default.default.createElement(ProductCard, { key: relatedProduct.id, product: relatedProduct })))))));
8499
8518
  }
8500
8519
  function CartItem({ item }) {
8501
8520
  const { updateQuantity, removeFromCart } = useCart();
8502
- const [isUpdating, setIsUpdating] = React19.useState(false);
8521
+ const [isUpdating, setIsUpdating] = React20.useState(false);
8503
8522
  const handleUpdateQuantity = async (newQuantity) => {
8504
8523
  if (newQuantity < 1) return;
8505
8524
  setIsUpdating(true);
@@ -8513,7 +8532,7 @@ function CartItem({ item }) {
8513
8532
  await removeFromCart(item.productVariantId);
8514
8533
  };
8515
8534
  const itemTotal = item.productVariantData.finalPrice * item.quantity;
8516
- return /* @__PURE__ */ React19__default.default.createElement(
8535
+ return /* @__PURE__ */ React20__default.default.createElement(
8517
8536
  framerMotion.motion.div,
8518
8537
  {
8519
8538
  layout: true,
@@ -8522,7 +8541,7 @@ function CartItem({ item }) {
8522
8541
  exit: { opacity: 0, x: -100 },
8523
8542
  className: "flex gap-4 bg-white p-4 rounded-xl border border-gray-200 hover:border-primary-300 transition-colors"
8524
8543
  },
8525
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative w-24 h-24 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100" }, /* @__PURE__ */ React19__default.default.createElement(
8544
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative w-24 h-24 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100" }, /* @__PURE__ */ React20__default.default.createElement(
8526
8545
  Image3__default.default,
8527
8546
  {
8528
8547
  src: item.productVariantData.productMedia[0]?.file || "/placeholder-product.jpg",
@@ -8531,39 +8550,39 @@ function CartItem({ item }) {
8531
8550
  className: "object-cover"
8532
8551
  }
8533
8552
  )),
8534
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900 truncate" }, item.productVariantData.name), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-gray-500 mt-1" }, formatPrice(item.productVariantData.finalPrice), " each"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3 mt-3" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center border-2 border-gray-200 rounded-lg" }, /* @__PURE__ */ React19__default.default.createElement(
8553
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900 truncate" }, item.productVariantData.name), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-gray-500 mt-1" }, formatPrice(item.productVariantData.finalPrice), " each"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3 mt-3" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center border-2 border-gray-200 rounded-lg" }, /* @__PURE__ */ React20__default.default.createElement(
8535
8554
  "button",
8536
8555
  {
8537
8556
  onClick: () => handleUpdateQuantity(item.quantity - 1),
8538
8557
  disabled: isUpdating || item.quantity <= 0,
8539
8558
  className: "p-2 hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
8540
8559
  },
8541
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Minus, { className: "w-4 h-4" })
8542
- ), /* @__PURE__ */ React19__default.default.createElement("span", { className: "px-4 font-medium min-w-[3rem] text-center" }, isUpdating ? /* @__PURE__ */ React19__default.default.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__default.default.createElement(
8560
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Minus, { className: "w-4 h-4" })
8561
+ ), /* @__PURE__ */ React20__default.default.createElement("span", { className: "px-4 font-medium min-w-[3rem] text-center" }, isUpdating ? /* @__PURE__ */ React20__default.default.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__default.default.createElement(
8543
8562
  "button",
8544
8563
  {
8545
8564
  onClick: () => handleUpdateQuantity(item.quantity + 1),
8546
8565
  disabled: isUpdating || item.quantity >= item.productVariantData.inventoryCount,
8547
8566
  className: "p-2 hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
8548
8567
  },
8549
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Plus, { className: "w-4 h-4" })
8550
- )), /* @__PURE__ */ React19__default.default.createElement(
8568
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Plus, { className: "w-4 h-4" })
8569
+ )), /* @__PURE__ */ React20__default.default.createElement(
8551
8570
  "button",
8552
8571
  {
8553
8572
  onClick: handleRemove,
8554
8573
  className: "p-2 text-red-600 hover:bg-red-50 rounded-lg transition-colors",
8555
8574
  "aria-label": "Remove item"
8556
8575
  },
8557
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Trash2, { className: "w-5 h-5" })
8576
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Trash2, { className: "w-5 h-5" })
8558
8577
  ))),
8559
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-right" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-xl font-bold text-gray-900" }, formatPrice(itemTotal)))
8578
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-right" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-xl font-bold text-gray-900" }, formatPrice(itemTotal)))
8560
8579
  );
8561
8580
  }
8562
8581
  function CartScreen() {
8563
8582
  const router = navigation.useRouter();
8564
8583
  const { cart, isLoading } = useCart();
8565
8584
  if (!cart || cart.cartBody.items.length === 0) {
8566
- return /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "mx-auto px-20 py-5 bg-white rounded-3xl" }, /* @__PURE__ */ React19__default.default.createElement(
8585
+ return /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "mx-auto px-20 py-5 bg-white rounded-3xl" }, /* @__PURE__ */ React20__default.default.createElement(
8567
8586
  EmptyState,
8568
8587
  {
8569
8588
  icon: lucideReact.ShoppingBag,
@@ -8578,16 +8597,16 @@ function CartScreen() {
8578
8597
  const shipping = 0;
8579
8598
  const tax = 0;
8580
8599
  const total = subtotal + shipping + tax;
8581
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16 mb-8" }, /* @__PURE__ */ React19__default.default.createElement(
8600
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16 mb-8" }, /* @__PURE__ */ React20__default.default.createElement(
8582
8601
  framerMotion.motion.div,
8583
8602
  {
8584
8603
  initial: { opacity: 0, y: 24 },
8585
8604
  animate: { opacity: 1, y: 0 },
8586
8605
  className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between"
8587
8606
  },
8588
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "max-w-2xl space-y-4" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.HeartPulse, { className: "h-4 w-4" }), "Wellness essentials, ready when you are"), /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Your curated cart"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-white/75 md:text-lg" }, "Review your selections, unlock exclusive perks, and check out with pharmacist-backed confidence.")),
8589
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur-md" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Cart summary"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-4 text-4xl font-semibold" }, formatPrice(total)), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-white/70" }, "Taxes and shipping calculated below"))
8590
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19__default.default.createElement(
8607
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "max-w-2xl space-y-4" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.HeartPulse, { className: "h-4 w-4" }), "Wellness essentials, ready when you are"), /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Your curated cart"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-white/75 md:text-lg" }, "Review your selections, unlock exclusive perks, and check out with pharmacist-backed confidence.")),
8608
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur-md" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Cart summary"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-4 text-4xl font-semibold" }, formatPrice(total)), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-white/70" }, "Taxes and shipping calculated below"))
8609
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20__default.default.createElement(
8591
8610
  framerMotion.motion.section,
8592
8611
  {
8593
8612
  initial: { opacity: 0, y: 24 },
@@ -8595,10 +8614,10 @@ function CartScreen() {
8595
8614
  transition: { delay: 0.05 },
8596
8615
  className: "space-y-6 rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50"
8597
8616
  },
8598
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap items-center justify-between gap-4" }, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Items (", cart.cartBody.items.length, ")"), /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), "Guaranteed cold-chain handling")),
8599
- isLoading && /* @__PURE__ */ React19__default.default.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__default.default.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"),
8600
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-5" }, cart.cartBody.items.map((item) => /* @__PURE__ */ React19__default.default.createElement(CartItem, { key: item.productVariantId, item })))
8601
- ), /* @__PURE__ */ React19__default.default.createElement(
8617
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap items-center justify-between gap-4" }, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Items (", cart.cartBody.items.length, ")"), /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), "Guaranteed cold-chain handling")),
8618
+ isLoading && /* @__PURE__ */ React20__default.default.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__default.default.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"),
8619
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-5" }, cart.cartBody.items.map((item) => /* @__PURE__ */ React20__default.default.createElement(CartItem, { key: item.productVariantId, item })))
8620
+ ), /* @__PURE__ */ React20__default.default.createElement(
8602
8621
  framerMotion.motion.aside,
8603
8622
  {
8604
8623
  initial: { opacity: 0, y: 24 },
@@ -8606,7 +8625,7 @@ function CartScreen() {
8606
8625
  transition: { delay: 0.1 },
8607
8626
  className: "space-y-6 lg:sticky lg:top-28"
8608
8627
  },
8609
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Checkout summary"), /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.BadgePercent, { className: "h-4 w-4" }), "Savings applied")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("span", null, "Subtotal"), /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-semibold text-slate-900" }, formatPrice(subtotal))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("span", null, "Shipping"), /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-semibold" }, "Will be calculated at checkout")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between text-base font-semibold text-slate-900" }, /* @__PURE__ */ React19__default.default.createElement("span", null, "Order total"), /* @__PURE__ */ React19__default.default.createElement("span", null, formatPrice(total))), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-2 text-xs text-slate-500" }, "Prices include pharmacy-grade quality control and packaging."))), /* @__PURE__ */ React19__default.default.createElement(
8628
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Checkout summary"), /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.BadgePercent, { className: "h-4 w-4" }), "Savings applied")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("span", null, "Subtotal"), /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-semibold text-slate-900" }, formatPrice(subtotal))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("span", null, "Shipping"), /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-semibold" }, "Will be calculated at checkout")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between text-base font-semibold text-slate-900" }, /* @__PURE__ */ React20__default.default.createElement("span", null, "Order total"), /* @__PURE__ */ React20__default.default.createElement("span", null, formatPrice(total))), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-2 text-xs text-slate-500" }, "Prices include pharmacy-grade quality control and packaging."))), /* @__PURE__ */ React20__default.default.createElement(
8610
8629
  Button,
8611
8630
  {
8612
8631
  size: "lg",
@@ -8614,8 +8633,8 @@ function CartScreen() {
8614
8633
  onClick: () => router.push("/checkout")
8615
8634
  },
8616
8635
  "Secure checkout",
8617
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.ArrowRight, { className: "h-5 w-5" })
8618
- ), /* @__PURE__ */ React19__default.default.createElement(
8636
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.ArrowRight, { className: "h-5 w-5" })
8637
+ ), /* @__PURE__ */ React20__default.default.createElement(
8619
8638
  "button",
8620
8639
  {
8621
8640
  type: "button",
@@ -8624,24 +8643,24 @@ function CartScreen() {
8624
8643
  },
8625
8644
  "Continue shopping"
8626
8645
  )),
8627
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Need help?"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-2 leading-relaxed" }, "Chat with a pharmacist to optimize your regimen or discuss substitutions before you check out."))
8646
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Need help?"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-2 leading-relaxed" }, "Chat with a pharmacist to optimize your regimen or discuss substitutions before you check out."))
8628
8647
  )))));
8629
8648
  }
8630
8649
  function useAddresses() {
8631
- const [addresses, setAddresses] = React19.useState([]);
8632
- const [isLoading, setIsLoading] = React19.useState(true);
8633
- const [error, setError] = React19.useState(null);
8634
- const refresh = React19.useCallback(async () => {
8650
+ const [addresses, setAddresses] = React20.useState([]);
8651
+ const [isLoading, setIsLoading] = React20.useState(true);
8652
+ const [error, setError] = React20.useState(null);
8653
+ const refresh = React20.useCallback(async () => {
8635
8654
  setIsLoading(true);
8636
8655
  setError(null);
8637
8656
  const response = await new AddressesApi(AXIOS_CONFIG).getMyAddresses();
8638
8657
  setAddresses(response.data || []);
8639
8658
  setIsLoading(false);
8640
8659
  }, []);
8641
- React19.useEffect(() => {
8660
+ React20.useEffect(() => {
8642
8661
  refresh();
8643
8662
  }, [refresh]);
8644
- const sortedAddresses = React19.useMemo(() => {
8663
+ const sortedAddresses = React20.useMemo(() => {
8645
8664
  return [...addresses].sort((a, b) => {
8646
8665
  if (a.isDefault === b.isDefault) {
8647
8666
  return (b.updatedAt.toISOString() || "").localeCompare(a.updatedAt.toISOString() || "");
@@ -8649,26 +8668,26 @@ function useAddresses() {
8649
8668
  return a.isDefault ? -1 : 1;
8650
8669
  });
8651
8670
  }, [addresses]);
8652
- const defaultAddress = React19.useMemo(
8671
+ const defaultAddress = React20.useMemo(
8653
8672
  () => sortedAddresses.find((address) => address.isDefault) || null,
8654
8673
  [sortedAddresses]
8655
8674
  );
8656
- const addAddress = React19.useCallback(async (payload) => {
8675
+ const addAddress = React20.useCallback(async (payload) => {
8657
8676
  const response = await new AddressesApi(AXIOS_CONFIG).createAddressForUser(payload);
8658
8677
  setAddresses((prev) => [...prev, response.data]);
8659
8678
  return response.data;
8660
8679
  }, []);
8661
- const updateAddress = React19.useCallback(async (id, payload) => {
8680
+ const updateAddress = React20.useCallback(async (id, payload) => {
8662
8681
  const response = await new AddressesApi(AXIOS_CONFIG).updateUserAddress(payload, id);
8663
8682
  setAddresses((prev) => prev.map((address) => address.id === id ? response.data : address));
8664
8683
  return response.data;
8665
8684
  }, []);
8666
- const removeAddress = React19.useCallback(async (id) => {
8685
+ const removeAddress = React20.useCallback(async (id) => {
8667
8686
  await new AddressesApi(AXIOS_CONFIG).deleteUserAddress(id);
8668
8687
  setAddresses((prev) => prev.filter((address) => address.id !== id));
8669
8688
  return;
8670
8689
  }, []);
8671
- const markAsDefault = React19.useCallback(async (id) => {
8690
+ const markAsDefault = React20.useCallback(async (id) => {
8672
8691
  const response = await new AddressesApi(AXIOS_CONFIG).updateDefaultAddress(id);
8673
8692
  setAddresses((prev) => prev.map((address) => address.id === id ? response.data : address));
8674
8693
  return response.data;
@@ -8686,7 +8705,7 @@ function useAddresses() {
8686
8705
  };
8687
8706
  }
8688
8707
  function Card({ className = "", ...props }) {
8689
- return /* @__PURE__ */ React19__default.default.createElement(
8708
+ return /* @__PURE__ */ React20__default.default.createElement(
8690
8709
  "div",
8691
8710
  {
8692
8711
  className: `rounded-lg border bg-white shadow-sm ${className}`,
@@ -8695,7 +8714,7 @@ function Card({ className = "", ...props }) {
8695
8714
  );
8696
8715
  }
8697
8716
  function Modal({ isOpen, onClose, title, children, size = "md" }) {
8698
- React19.useEffect(() => {
8717
+ React20.useEffect(() => {
8699
8718
  if (isOpen) {
8700
8719
  document.body.style.overflow = "hidden";
8701
8720
  } else {
@@ -8711,7 +8730,7 @@ function Modal({ isOpen, onClose, title, children, size = "md" }) {
8711
8730
  lg: "max-w-2xl",
8712
8731
  xl: "max-w-4xl"
8713
8732
  };
8714
- return /* @__PURE__ */ React19__default.default.createElement(framerMotion.AnimatePresence, null, isOpen && /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, /* @__PURE__ */ React19__default.default.createElement(
8733
+ return /* @__PURE__ */ React20__default.default.createElement(framerMotion.AnimatePresence, null, isOpen && /* @__PURE__ */ React20__default.default.createElement(React20__default.default.Fragment, null, /* @__PURE__ */ React20__default.default.createElement(
8715
8734
  framerMotion.motion.div,
8716
8735
  {
8717
8736
  initial: { opacity: 0 },
@@ -8720,7 +8739,7 @@ function Modal({ isOpen, onClose, title, children, size = "md" }) {
8720
8739
  onClick: onClose,
8721
8740
  className: "fixed inset-0 bg-black/50 backdrop-blur-sm z-50"
8722
8741
  }
8723
- ), /* @__PURE__ */ React19__default.default.createElement("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4" }, /* @__PURE__ */ React19__default.default.createElement(
8742
+ ), /* @__PURE__ */ React20__default.default.createElement("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4" }, /* @__PURE__ */ React20__default.default.createElement(
8724
8743
  framerMotion.motion.div,
8725
8744
  {
8726
8745
  initial: { opacity: 0, scale: 0.95, y: 20 },
@@ -8728,15 +8747,15 @@ function Modal({ isOpen, onClose, title, children, size = "md" }) {
8728
8747
  exit: { opacity: 0, scale: 0.95, y: 20 },
8729
8748
  className: `bg-white rounded-2xl shadow-2xl w-full ${sizes[size]} max-h-[90vh] overflow-hidden flex flex-col`
8730
8749
  },
8731
- title && /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between p-6 border-b border-gray-200" }, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-2xl font-bold text-gray-900" }, title), /* @__PURE__ */ React19__default.default.createElement(
8750
+ title && /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between p-6 border-b border-gray-200" }, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-2xl font-bold text-gray-900" }, title), /* @__PURE__ */ React20__default.default.createElement(
8732
8751
  "button",
8733
8752
  {
8734
8753
  onClick: onClose,
8735
8754
  className: "p-2 hover:bg-gray-100 rounded-lg transition-colors"
8736
8755
  },
8737
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.X, { className: "w-5 h-5" })
8756
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.X, { className: "w-5 h-5" })
8738
8757
  )),
8739
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex-1 overflow-y-auto p-6" }, children)
8758
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex-1 overflow-y-auto p-6" }, children)
8740
8759
  ))));
8741
8760
  }
8742
8761
  var addressSchema = zod.z.object({
@@ -8750,7 +8769,7 @@ var addressSchema = zod.z.object({
8750
8769
  phone: zod.z.string().min(10, "Phone number is required")
8751
8770
  });
8752
8771
  function AddressFormModal({ isOpen, onClose, onAddressAdded, onAddressUpdated, initialAddress }) {
8753
- const [isSubmitting, setIsSubmitting] = React19.useState(false);
8772
+ const [isSubmitting, setIsSubmitting] = React20.useState(false);
8754
8773
  const {
8755
8774
  register,
8756
8775
  handleSubmit,
@@ -8769,7 +8788,7 @@ function AddressFormModal({ isOpen, onClose, onAddressAdded, onAddressUpdated, i
8769
8788
  country: initialAddress?.country || "United States"
8770
8789
  }
8771
8790
  });
8772
- React19.useState(() => {
8791
+ React20.useState(() => {
8773
8792
  });
8774
8793
  const onSubmit = async (data) => {
8775
8794
  setIsSubmitting(true);
@@ -8907,7 +8926,7 @@ var PAYMENT_METHODS = [
8907
8926
  {
8908
8927
  label: "Card",
8909
8928
  value: "Card",
8910
- icon: /* @__PURE__ */ React19__default.default.createElement(lucideReact.CreditCard, { className: "w-5 h-5" }),
8929
+ icon: /* @__PURE__ */ React20__default.default.createElement(lucideReact.CreditCard, { className: "w-5 h-5" }),
8911
8930
  description: "Pay securely with your credit or debit card",
8912
8931
  className: "border-blue-500 hover:bg-blue-50",
8913
8932
  activeClass: "bg-blue-50 border-blue-500 text-blue-700"
@@ -8915,7 +8934,7 @@ var PAYMENT_METHODS = [
8915
8934
  {
8916
8935
  label: "Cash",
8917
8936
  value: "Cash",
8918
- icon: /* @__PURE__ */ React19__default.default.createElement(lucideReact.PackageCheck, { className: "w-5 h-5" }),
8937
+ icon: /* @__PURE__ */ React20__default.default.createElement(lucideReact.PackageCheck, { className: "w-5 h-5" }),
8919
8938
  description: "Pay with cash on delivery or at pickup",
8920
8939
  className: "border-amber-500 hover:bg-amber-50",
8921
8940
  activeClass: "bg-amber-50 border-amber-500 text-amber-700"
@@ -8923,7 +8942,7 @@ var PAYMENT_METHODS = [
8923
8942
  {
8924
8943
  label: "Credit",
8925
8944
  value: "Credit",
8926
- icon: /* @__PURE__ */ React19__default.default.createElement(lucideReact.ShieldCheck, { className: "w-5 h-5" }),
8945
+ icon: /* @__PURE__ */ React20__default.default.createElement(lucideReact.ShieldCheck, { className: "w-5 h-5" }),
8927
8946
  description: "Use your account credit",
8928
8947
  className: "border-emerald-500 hover:bg-emerald-50",
8929
8948
  activeClass: "bg-emerald-50 border-emerald-500 text-emerald-700"
@@ -8933,25 +8952,25 @@ function CheckoutScreen() {
8933
8952
  const router = navigation.useRouter();
8934
8953
  const { cart, clearCart } = useCart();
8935
8954
  const { isAuthenticated, user } = useAuth();
8936
- const [isSubmitting, setIsSubmitting] = React19.useState(false);
8937
- const [isDelivery, setIsDelivery] = React19.useState(true);
8938
- const [paymentMethod, setPaymentMethod] = React19.useState("Card");
8939
- const [error, setError] = React19.useState(null);
8940
- const [selectedAddressId, setSelectedAddressId] = React19.useState(null);
8941
- const [selectedStoreAddressId, setSelectedStoreAddressId] = React19.useState(null);
8942
- const [storeAddresses, setStoreAddresses] = React19.useState([]);
8943
- const [isAddressModalOpen, setIsAddressModalOpen] = React19.useState(false);
8944
- const [editingAddress, setEditingAddress] = React19.useState(null);
8945
- const [shippingPrice, setShippingPrice] = React19.useState(0);
8955
+ const [isSubmitting, setIsSubmitting] = React20.useState(false);
8956
+ const [isDelivery, setIsDelivery] = React20.useState(true);
8957
+ const [paymentMethod, setPaymentMethod] = React20.useState("Card");
8958
+ const [error, setError] = React20.useState(null);
8959
+ const [selectedAddressId, setSelectedAddressId] = React20.useState(null);
8960
+ const [selectedStoreAddressId, setSelectedStoreAddressId] = React20.useState(null);
8961
+ const [storeAddresses, setStoreAddresses] = React20.useState([]);
8962
+ const [isAddressModalOpen, setIsAddressModalOpen] = React20.useState(false);
8963
+ const [editingAddress, setEditingAddress] = React20.useState(null);
8964
+ const [shippingPrice, setShippingPrice] = React20.useState(0);
8946
8965
  const {
8947
8966
  addresses: userAddresses,
8948
8967
  defaultAddress
8949
8968
  } = useAddresses();
8950
- const [selectedShippingRateId, setSelectedShippingRateId] = React19.useState(null);
8951
- const [shippingRates, setShippingRates] = React19.useState([]);
8952
- const [shippingRatesLoading, setShippingRatesLoading] = React19.useState(false);
8953
- const [shippingRatesError, setShippingRatesError] = React19.useState(null);
8954
- const [storeData, setStoreData] = React19.useState(null);
8969
+ const [selectedShippingRateId, setSelectedShippingRateId] = React20.useState(null);
8970
+ const [shippingRates, setShippingRates] = React20.useState([]);
8971
+ const [shippingRatesLoading, setShippingRatesLoading] = React20.useState(false);
8972
+ const [shippingRatesError, setShippingRatesError] = React20.useState(null);
8973
+ const [storeData, setStoreData] = React20.useState(null);
8955
8974
  const { addresses, isLoading, refresh, removeAddress } = useAddresses();
8956
8975
  const {
8957
8976
  register,
@@ -8976,7 +8995,7 @@ function CheckoutScreen() {
8976
8995
  }
8977
8996
  });
8978
8997
  const sameAsShipping = watch("sameAsShipping", true);
8979
- React19.useEffect(() => {
8998
+ React20.useEffect(() => {
8980
8999
  if (sameAsShipping) {
8981
9000
  setValue("billing.name", watch("shipping.name"));
8982
9001
  setValue("billing.phone", watch("shipping.phone"));
@@ -8988,7 +9007,7 @@ function CheckoutScreen() {
8988
9007
  setValue("billing.country", watch("shipping.country"));
8989
9008
  }
8990
9009
  }, [sameAsShipping, watch("shipping.name"), watch("shipping.phone"), watch("shipping.street1"), watch("shipping.street2"), watch("shipping.city"), watch("shipping.state"), watch("shipping.zip"), watch("shipping.country")]);
8991
- React19.useEffect(() => {
9010
+ React20.useEffect(() => {
8992
9011
  if (defaultAddress && !selectedAddressId) {
8993
9012
  setSelectedAddressId(defaultAddress.id);
8994
9013
  setValue("shipping.name", defaultAddress.name);
@@ -9023,7 +9042,7 @@ function CheckoutScreen() {
9023
9042
  setShippingRates([]);
9024
9043
  setSelectedShippingRateId(null);
9025
9044
  };
9026
- React19.useEffect(() => {
9045
+ React20.useEffect(() => {
9027
9046
  if (!isDelivery || !selectedAddressId || !cart || cart?.cartBody?.items?.length === 0 || !cart?.cartBody?.items) {
9028
9047
  setShippingRates([]);
9029
9048
  setSelectedShippingRateId(null);
@@ -9052,7 +9071,7 @@ function CheckoutScreen() {
9052
9071
  }
9053
9072
  })();
9054
9073
  }, [isDelivery, selectedAddressId, cart]);
9055
- React19.useEffect(() => {
9074
+ React20.useEffect(() => {
9056
9075
  if (!isDelivery) {
9057
9076
  const stores = [
9058
9077
  { id: "store1", name: "Main Pharmacy", street1: "123 Main St", city: "Seattle" },
@@ -9126,7 +9145,7 @@ function CheckoutScreen() {
9126
9145
  }
9127
9146
  }
9128
9147
  setIsSubmitting(true);
9129
- sonner.toast("Submitting order...", { icon: /* @__PURE__ */ React19__default.default.createElement(lucideReact.CreditCard, { className: "h-4 w-4" }) });
9148
+ sonner.toast("Submitting order...", { icon: /* @__PURE__ */ React20__default.default.createElement(lucideReact.CreditCard, { className: "h-4 w-4" }) });
9130
9149
  try {
9131
9150
  const items = (cart?.cartBody?.items || []).map((item) => ({
9132
9151
  productVariantId: String(item.productVariantId),
@@ -9191,33 +9210,33 @@ function CheckoutScreen() {
9191
9210
  const subtotal = cart.total;
9192
9211
  const tax = 0;
9193
9212
  const total = subtotal + shippingPrice + tax;
9194
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19__default.default.createElement(
9213
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20__default.default.createElement(
9195
9214
  framerMotion.motion.div,
9196
9215
  {
9197
9216
  initial: { opacity: 0, y: 24 },
9198
9217
  animate: { opacity: 1, y: 0 },
9199
9218
  className: "space-y-6"
9200
9219
  },
9201
- /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), "Secure checkout"),
9202
- /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Provide delivery details"),
9203
- /* @__PURE__ */ React19__default.default.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."),
9204
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap gap-3" }, checkoutSteps.map((step) => /* @__PURE__ */ React19__default.default.createElement(
9220
+ /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), "Secure checkout"),
9221
+ /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Provide delivery details"),
9222
+ /* @__PURE__ */ React20__default.default.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."),
9223
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap gap-3" }, checkoutSteps.map((step) => /* @__PURE__ */ React20__default.default.createElement(
9205
9224
  "div",
9206
9225
  {
9207
9226
  key: step.id,
9208
9227
  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"}`
9209
9228
  },
9210
- /* @__PURE__ */ React19__default.default.createElement("span", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-white/20 text-xs font-bold" }, step.id),
9229
+ /* @__PURE__ */ React20__default.default.createElement("span", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-white/20 text-xs font-bold" }, step.id),
9211
9230
  step.label
9212
9231
  )))
9213
- )))), /* @__PURE__ */ React19__default.default.createElement("form", { onSubmit: handleSubmit(onSubmit) }, error && /* @__PURE__ */ React19__default.default.createElement("div", { className: "mb-4 text-red-600 font-semibold" }, error), /* @__PURE__ */ React19__default.default.createElement("div", { className: "pt-12 container mx-auto grid gap-10 px-4 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React19__default.default.createElement(
9232
+ )))), /* @__PURE__ */ React20__default.default.createElement("form", { onSubmit: handleSubmit(onSubmit) }, error && /* @__PURE__ */ React20__default.default.createElement("div", { className: "mb-4 text-red-600 font-semibold" }, error), /* @__PURE__ */ React20__default.default.createElement("div", { className: "pt-12 container mx-auto grid gap-10 px-4 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" }, /* @__PURE__ */ React20__default.default.createElement(
9214
9233
  framerMotion.motion.div,
9215
9234
  {
9216
9235
  initial: { opacity: 0, y: 24 },
9217
9236
  animate: { opacity: 1, y: 0 },
9218
9237
  className: "space-y-8"
9219
9238
  },
9220
- /* @__PURE__ */ React19__default.default.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap items-center justify-between gap-4" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Shipping information"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-500" }, "We use temperature-aware packaging and real-time tracking on every shipment.")), /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.Truck, { className: "h-4 w-4" }), "Dispatch in 12h")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 grid grid-cols-1 gap-4 md:grid-cols-2" }, isDelivery && /* @__PURE__ */ React19__default.default.createElement("div", { className: "md:col-span-2 space-y-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("label", { className: "block font-semibold" }, "Select Address"), /* @__PURE__ */ React19__default.default.createElement(
9239
+ /* @__PURE__ */ React20__default.default.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap items-center justify-between gap-4" }, /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Shipping information"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-500" }, "We use temperature-aware packaging and real-time tracking on every shipment.")), /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.Truck, { className: "h-4 w-4" }), "Dispatch in 12h")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 grid grid-cols-1 gap-4 md:grid-cols-2" }, isDelivery && /* @__PURE__ */ React20__default.default.createElement("div", { className: "md:col-span-2 space-y-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("label", { className: "block font-semibold" }, "Select Address"), /* @__PURE__ */ React20__default.default.createElement(
9221
9240
  Button,
9222
9241
  {
9223
9242
  type: "button",
@@ -9228,15 +9247,15 @@ function CheckoutScreen() {
9228
9247
  setIsAddressModalOpen(true);
9229
9248
  }
9230
9249
  },
9231
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Plus, { className: "h-4 w-4 mr-2" }),
9250
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Plus, { className: "h-4 w-4 mr-2" }),
9232
9251
  "Add New Address"
9233
- )), userAddresses.length > 0 ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4" }, userAddresses.map((addr) => /* @__PURE__ */ React19__default.default.createElement(
9252
+ )), userAddresses.length > 0 ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4" }, userAddresses.map((addr) => /* @__PURE__ */ React20__default.default.createElement(
9234
9253
  "label",
9235
9254
  {
9236
9255
  key: addr.id,
9237
9256
  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`
9238
9257
  },
9239
- /* @__PURE__ */ React19__default.default.createElement(
9258
+ /* @__PURE__ */ React20__default.default.createElement(
9240
9259
  "input",
9241
9260
  {
9242
9261
  type: "radio",
@@ -9257,7 +9276,7 @@ function CheckoutScreen() {
9257
9276
  className: "mt-1"
9258
9277
  }
9259
9278
  ),
9260
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold text-slate-900" }, addr.name), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-600" }, addr.street1), addr.street2 && /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-600" }, addr.street2), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-600" }, addr.city, ", ", addr.state, " ", addr.zip), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-600" }, addr.country), addr.phone && /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-600 mt-1" }, addr.phone), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-3 flex items-center gap-2" }, addr.isDefault && /* @__PURE__ */ React19__default.default.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__default.default.createElement(
9279
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold text-slate-900" }, addr.name), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-600" }, addr.street1), addr.street2 && /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-600" }, addr.street2), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-600" }, addr.city, ", ", addr.state, " ", addr.zip), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-600" }, addr.country), addr.phone && /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-600 mt-1" }, addr.phone), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-3 flex items-center gap-2" }, addr.isDefault && /* @__PURE__ */ React20__default.default.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__default.default.createElement(
9261
9280
  "button",
9262
9281
  {
9263
9282
  type: "button",
@@ -9268,9 +9287,9 @@ function CheckoutScreen() {
9268
9287
  },
9269
9288
  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"
9270
9289
  },
9271
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Edit3, { className: "h-3.5 w-3.5" }),
9290
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Edit3, { className: "h-3.5 w-3.5" }),
9272
9291
  " Edit"
9273
- ), /* @__PURE__ */ React19__default.default.createElement(
9292
+ ), /* @__PURE__ */ React20__default.default.createElement(
9274
9293
  "button",
9275
9294
  {
9276
9295
  type: "button",
@@ -9288,23 +9307,23 @@ function CheckoutScreen() {
9288
9307
  },
9289
9308
  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"
9290
9309
  },
9291
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Trash2, { className: "h-3.5 w-3.5" }),
9310
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Trash2, { className: "h-3.5 w-3.5" }),
9292
9311
  " Delete"
9293
9312
  )))
9294
- ))) : /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-center py-8 bg-slate-50 rounded-lg" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.MapPin, { className: "h-12 w-12 mx-auto text-slate-400" }), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-2 text-slate-600" }, "No addresses found"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-500" }, "Add a new address to continue"))), !isDelivery && storeAddresses.length > 0 && /* @__PURE__ */ React19__default.default.createElement("div", { className: "md:col-span-2" }, /* @__PURE__ */ React19__default.default.createElement("label", { className: "block mb-2 font-semibold" }, "Select Pickup Location"), /* @__PURE__ */ React19__default.default.createElement(
9313
+ ))) : /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-center py-8 bg-slate-50 rounded-lg" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.MapPin, { className: "h-12 w-12 mx-auto text-slate-400" }), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-2 text-slate-600" }, "No addresses found"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-500" }, "Add a new address to continue"))), !isDelivery && storeAddresses.length > 0 && /* @__PURE__ */ React20__default.default.createElement("div", { className: "md:col-span-2" }, /* @__PURE__ */ React20__default.default.createElement("label", { className: "block mb-2 font-semibold" }, "Select Pickup Location"), /* @__PURE__ */ React20__default.default.createElement(
9295
9314
  "select",
9296
9315
  {
9297
9316
  className: "w-full border rounded p-2",
9298
9317
  value: selectedStoreAddressId || "",
9299
9318
  onChange: (e) => setSelectedStoreAddressId(e.target.value)
9300
9319
  },
9301
- storeAddresses.map((addr) => /* @__PURE__ */ React19__default.default.createElement("option", { key: addr.id, value: addr.id }, addr.name, " - ", addr.street1, ", ", addr.city))
9320
+ storeAddresses.map((addr) => /* @__PURE__ */ React20__default.default.createElement("option", { key: addr.id, value: addr.id }, addr.name, " - ", addr.street1, ", ", addr.city))
9302
9321
  )))),
9303
- isDelivery && selectedAddressId && /* @__PURE__ */ React19__default.default.createElement(Card, { className: "p-6 border border-gray-200 rounded-xl shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3 text-xl font-semibold text-gray-900 pb-4 mb-6 border-b" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Truck, { className: "text-accent w-6 h-6" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "Shipping Options")), shippingRatesLoading ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-center py-12" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-accent" }), /* @__PURE__ */ React19__default.default.createElement("span", { className: "ml-3 text-gray-600" }, "Loading shipping options...")) : shippingRatesError ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "w-16 h-16 mx-auto mb-4 bg-red-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React19__default.default.createElement("svg", { className: "w-8 h-8 text-red-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("p", { className: "text-red-500 text-lg font-medium" }, "Error loading shipping options"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-red-400 text-sm mt-1" }, shippingRatesError)) : shippingRates && shippingRates.length > 0 ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-4" }, shippingRates.map((rate) => {
9322
+ isDelivery && selectedAddressId && /* @__PURE__ */ React20__default.default.createElement(Card, { className: "p-6 border border-gray-200 rounded-xl shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3 text-xl font-semibold text-gray-900 pb-4 mb-6 border-b" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Truck, { className: "text-accent w-6 h-6" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "Shipping Options")), shippingRatesLoading ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-center py-12" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-accent" }), /* @__PURE__ */ React20__default.default.createElement("span", { className: "ml-3 text-gray-600" }, "Loading shipping options...")) : shippingRatesError ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "w-16 h-16 mx-auto mb-4 bg-red-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React20__default.default.createElement("svg", { className: "w-8 h-8 text-red-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("p", { className: "text-red-500 text-lg font-medium" }, "Error loading shipping options"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-red-400 text-sm mt-1" }, shippingRatesError)) : shippingRates && shippingRates.length > 0 ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-4" }, shippingRates.map((rate) => {
9304
9323
  const isSelected = !!selectedShippingRateId && selectedShippingRateId === rate.objectId;
9305
9324
  const isTest = rate.test;
9306
9325
  const hasAttributes = rate.attributes && rate.attributes.length > 0;
9307
- return /* @__PURE__ */ React19__default.default.createElement(
9326
+ return /* @__PURE__ */ React20__default.default.createElement(
9308
9327
  "div",
9309
9328
  {
9310
9329
  key: rate.objectId,
@@ -9313,7 +9332,7 @@ function CheckoutScreen() {
9313
9332
  onMouseLeave: () => setShippingPrice(parseFloat(rate.amountLocal)),
9314
9333
  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"}`
9315
9334
  },
9316
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-start justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-start gap-4 flex-1" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React19__default.default.createElement(
9335
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-start justify-between" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-start gap-4 flex-1" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React20__default.default.createElement(
9317
9336
  Image3__default.default,
9318
9337
  {
9319
9338
  src: rate.providerImage75 || "/placeholder-product.jpg",
@@ -9326,18 +9345,18 @@ function CheckoutScreen() {
9326
9345
  width: 48,
9327
9346
  height: 48
9328
9347
  }
9329
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-2 mb-2" }, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, rate.provider, " ", rate.servicelevel?.name), isTest && /* @__PURE__ */ React19__default.default.createElement("span", { className: "px-2 py-1 text-xs font-medium bg-orange-100 text-orange-800 rounded-full" }, "TEST")), hasAttributes && /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap gap-2 mb-3" }, rate.attributes.map((attr) => /* @__PURE__ */ React19__default.default.createElement(
9348
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-2 mb-2" }, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, rate.provider, " ", rate.servicelevel?.name), isTest && /* @__PURE__ */ React20__default.default.createElement("span", { className: "px-2 py-1 text-xs font-medium bg-orange-100 text-orange-800 rounded-full" }, "TEST")), hasAttributes && /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap gap-2 mb-3" }, rate.attributes.map((attr) => /* @__PURE__ */ React20__default.default.createElement(
9330
9349
  "span",
9331
9350
  {
9332
9351
  key: attr,
9333
9352
  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"}`
9334
9353
  },
9335
9354
  attr
9336
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-1 text-sm text-gray-600" }, rate.durationTerms && /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19__default.default.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("span", null, rate.durationTerms)), rate.estimatedDays && /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19__default.default.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("span", null, "Estimated ", rate.estimatedDays, " day", rate.estimatedDays !== 1 ? "s" : "")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19__default.default.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("span", null, "Carrier: ", rate.provider)), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React19__default.default.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("span", null, "Currency: ", rate.currency))))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col items-end" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-2xl font-bold text-gray-900" }, formatPrice(parseFloat(rate.amount))), rate.amount !== rate.amountLocal && /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-sm text-gray-500" }, rate.amountLocal, " ", rate.currencyLocal))),
9337
- isSelected && /* @__PURE__ */ React19__default.default.createElement("div", { className: "absolute top-3 right-3" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "w-6 h-6 bg-primary-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Check, { className: "w-4 h-4 text-white" })))
9355
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-1 text-sm text-gray-600" }, rate.durationTerms && /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20__default.default.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("span", null, rate.durationTerms)), rate.estimatedDays && /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20__default.default.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("span", null, "Estimated ", rate.estimatedDays, " day", rate.estimatedDays !== 1 ? "s" : "")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20__default.default.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("span", null, "Carrier: ", rate.provider)), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React20__default.default.createElement("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("span", null, "Currency: ", rate.currency))))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col items-end" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-2xl font-bold text-gray-900" }, formatPrice(parseFloat(rate.amount))), rate.amount !== rate.amountLocal && /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-sm text-gray-500" }, rate.amountLocal, " ", rate.currencyLocal))),
9356
+ isSelected && /* @__PURE__ */ React20__default.default.createElement("div", { className: "absolute top-3 right-3" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "w-6 h-6 bg-primary-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Check, { className: "w-4 h-4 text-white" })))
9338
9357
  );
9339
- })) : /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "w-16 h-16 mx-auto mb-4 bg-gray-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Truck, { className: "w-8 h-8 text-gray-400" })), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-gray-500 text-lg font-medium" }, "No shipping options available"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-gray-400 text-sm mt-1" }, "Please check the shipping address or try a different location.")))
9340
- ), /* @__PURE__ */ React19__default.default.createElement(
9358
+ })) : /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "w-16 h-16 mx-auto mb-4 bg-gray-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Truck, { className: "w-8 h-8 text-gray-400" })), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-gray-500 text-lg font-medium" }, "No shipping options available"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-gray-400 text-sm mt-1" }, "Please check the shipping address or try a different location.")))
9359
+ ), /* @__PURE__ */ React20__default.default.createElement(
9341
9360
  framerMotion.motion.aside,
9342
9361
  {
9343
9362
  initial: { opacity: 0, y: 32 },
@@ -9345,22 +9364,22 @@ function CheckoutScreen() {
9345
9364
  transition: { duration: 0.5, ease: "easeOut", delay: 0.1 },
9346
9365
  className: "space-y-10 lg:sticky lg:top-24"
9347
9366
  },
9348
- /* @__PURE__ */ React19__default.default.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__default.default.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "Order Summary"), /* @__PURE__ */ React19__default.default.createElement("section", { className: "mt-6 space-y-4" }, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-xs font-semibold text-slate-700 uppercase tracking-wider" }, "Delivery Method"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid grid-cols-1 gap-3" }, [
9367
+ /* @__PURE__ */ React20__default.default.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__default.default.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "Order Summary"), /* @__PURE__ */ React20__default.default.createElement("section", { className: "mt-6 space-y-4" }, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-xs font-semibold text-slate-700 uppercase tracking-wider" }, "Delivery Method"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid grid-cols-1 gap-3" }, [
9349
9368
  {
9350
9369
  label: "Delivery",
9351
- icon: /* @__PURE__ */ React19__default.default.createElement(lucideReact.Truck, { className: "w-5 h-5" }),
9370
+ icon: /* @__PURE__ */ React20__default.default.createElement(lucideReact.Truck, { className: "w-5 h-5" }),
9352
9371
  value: true,
9353
9372
  desc: "Shipped to your address"
9354
9373
  },
9355
9374
  {
9356
9375
  label: "Pickup",
9357
- icon: /* @__PURE__ */ React19__default.default.createElement(lucideReact.MapPin, { className: "w-5 h-5" }),
9376
+ icon: /* @__PURE__ */ React20__default.default.createElement(lucideReact.MapPin, { className: "w-5 h-5" }),
9358
9377
  value: false,
9359
9378
  desc: "Collect from pharmacy"
9360
9379
  }
9361
9380
  ].map((option) => {
9362
9381
  const active = isDelivery === option.value;
9363
- return /* @__PURE__ */ React19__default.default.createElement(
9382
+ return /* @__PURE__ */ React20__default.default.createElement(
9364
9383
  "button",
9365
9384
  {
9366
9385
  key: option.label,
@@ -9369,18 +9388,18 @@ function CheckoutScreen() {
9369
9388
  "aria-pressed": active,
9370
9389
  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"}`
9371
9390
  },
9372
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(
9391
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(
9373
9392
  "div",
9374
9393
  {
9375
9394
  className: `p-2 rounded-lg ${active ? "bg-primary-100 text-primary-600" : "bg-slate-100 text-slate-600 group-hover:bg-slate-50"}`
9376
9395
  },
9377
9396
  option.icon
9378
- ), /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-left" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "font-medium text-slate-900" }, option.label), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-xs text-slate-500" }, option.desc))),
9379
- active && /* @__PURE__ */ React19__default.default.createElement("div", { className: "w-5 h-5 rounded-full bg-primary-500 flex items-center justify-center text-white shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Check, { className: "w-3 h-3" }))
9397
+ ), /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-left" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "font-medium text-slate-900" }, option.label), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-xs text-slate-500" }, option.desc))),
9398
+ active && /* @__PURE__ */ React20__default.default.createElement("div", { className: "w-5 h-5 rounded-full bg-primary-500 flex items-center justify-center text-white shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Check, { className: "w-3 h-3" }))
9380
9399
  );
9381
- }))), /* @__PURE__ */ React19__default.default.createElement("section", { className: "mt-8 space-y-4" }, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-xs font-semibold text-slate-700 uppercase tracking-wider" }, "Payment Method"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-3" }, PAYMENT_METHODS.map((pm) => {
9400
+ }))), /* @__PURE__ */ React20__default.default.createElement("section", { className: "mt-8 space-y-4" }, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-xs font-semibold text-slate-700 uppercase tracking-wider" }, "Payment Method"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-3" }, PAYMENT_METHODS.map((pm) => {
9382
9401
  const active = paymentMethod === pm.value;
9383
- return /* @__PURE__ */ React19__default.default.createElement(
9402
+ return /* @__PURE__ */ React20__default.default.createElement(
9384
9403
  "button",
9385
9404
  {
9386
9405
  key: pm.value,
@@ -9388,22 +9407,22 @@ function CheckoutScreen() {
9388
9407
  onClick: () => setPaymentMethod(pm.value),
9389
9408
  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`}`
9390
9409
  },
9391
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(
9410
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(
9392
9411
  "div",
9393
9412
  {
9394
9413
  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"}`
9395
9414
  },
9396
9415
  pm.icon
9397
- ), /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-sm font-medium text-slate-900" }, pm.label)),
9398
- active && /* @__PURE__ */ React19__default.default.createElement("div", { className: "w-4 h-4 rounded-full bg-primary-500 flex items-center justify-center text-white shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Check, { className: "w-2.5 h-2.5" }))
9416
+ ), /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-sm font-medium text-slate-900" }, pm.label)),
9417
+ active && /* @__PURE__ */ React20__default.default.createElement("div", { className: "w-4 h-4 rounded-full bg-primary-500 flex items-center justify-center text-white shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Check, { className: "w-2.5 h-2.5" }))
9399
9418
  );
9400
- })), /* @__PURE__ */ React19__default.default.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__default.default.createElement("section", { className: "mt-8 pt-6 border-t border-slate-100" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(
9419
+ })), /* @__PURE__ */ React20__default.default.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__default.default.createElement("section", { className: "mt-8 pt-6 border-t border-slate-100" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(
9401
9420
  "div",
9402
9421
  {
9403
9422
  key: item.productId,
9404
9423
  className: "flex gap-4 rounded-2xl border border-slate-100 p-4 hover:bg-slate-50/50 transition"
9405
9424
  },
9406
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex h-16 w-16 items-center justify-center rounded-xl bg-slate-100 text-slate-400" }, /* @__PURE__ */ React19__default.default.createElement(
9425
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex h-16 w-16 items-center justify-center rounded-xl bg-slate-100 text-slate-400" }, /* @__PURE__ */ React20__default.default.createElement(
9407
9426
  Image3__default.default,
9408
9427
  {
9409
9428
  src: item.productVariantData.productMedia?.[0]?.file || "/placeholder-product.jpg",
@@ -9413,9 +9432,9 @@ function CheckoutScreen() {
9413
9432
  className: "object-contain"
9414
9433
  }
9415
9434
  )),
9416
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm font-semibold text-slate-900" }, item?.productVariantData?.name), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-xs text-slate-500" }, "Qty ", item.quantity)),
9417
- /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm font-semibold text-slate-900" }, formatPrice(item.productVariantData.finalPrice * item.quantity))
9418
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 space-y-3 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("span", null, "Subtotal"), /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-semibold text-slate-900" }, formatPrice(subtotal))), isDelivery && /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("span", null, "Shipping"), /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-semibold" }, formatPrice(shippingPrice))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("span", null, "Estimated tax"), /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-semibold" }, formatPrice(tax))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between text-base font-semibold text-slate-900" }, /* @__PURE__ */ React19__default.default.createElement("span", null, "Total Due"), /* @__PURE__ */ React19__default.default.createElement("span", null, formatPrice(total))), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-1 text-xs text-slate-500" }, "Tax is estimated. Final amount confirmed after payment.")))), /* @__PURE__ */ React19__default.default.createElement(
9435
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm font-semibold text-slate-900" }, item?.productVariantData?.name), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-xs text-slate-500" }, "Qty ", item.quantity)),
9436
+ /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm font-semibold text-slate-900" }, formatPrice(item.productVariantData.finalPrice * item.quantity))
9437
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 space-y-3 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("span", null, "Subtotal"), /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-semibold text-slate-900" }, formatPrice(subtotal))), isDelivery && /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("span", null, "Shipping"), /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-semibold" }, formatPrice(shippingPrice))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("span", null, "Estimated tax"), /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-semibold" }, formatPrice(tax))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between text-base font-semibold text-slate-900" }, /* @__PURE__ */ React20__default.default.createElement("span", null, "Total Due"), /* @__PURE__ */ React20__default.default.createElement("span", null, formatPrice(total))), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-1 text-xs text-slate-500" }, "Tax is estimated. Final amount confirmed after payment.")))), /* @__PURE__ */ React20__default.default.createElement(
9419
9438
  Button,
9420
9439
  {
9421
9440
  type: "submit",
@@ -9423,11 +9442,11 @@ function CheckoutScreen() {
9423
9442
  isLoading: isSubmitting,
9424
9443
  className: "mt-6 w-full transition-transform hover:scale-[1.02] active:scale-[0.99]"
9425
9444
  },
9426
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.CreditCard, { className: "h-5 w-5" }),
9445
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.CreditCard, { className: "h-5 w-5" }),
9427
9446
  isSubmitting ? "Placing order..." : "Place Secure Order"
9428
- ), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-4 flex items-center justify-center gap-2 text-xs text-slate-500" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Lock, { className: "h-4 w-4" }), "Fully encrypted checkout \u2014 cancel anytime before shipment.")),
9429
- /* @__PURE__ */ React19__default.default.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__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.3em] text-primary-800" }, "Why Patients Choose Us"), /* @__PURE__ */ React19__default.default.createElement("ul", { className: "mt-4 space-y-3 text-primary-700 leading-relaxed" }, /* @__PURE__ */ React19__default.default.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.PackageCheck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "Pharmacy-grade verification on every order.")), /* @__PURE__ */ React19__default.default.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.ShieldCheck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "Cold-chain logistics for sensitive medications.")), /* @__PURE__ */ React19__default.default.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Truck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "Real-time tracking and SMS updates from prep to delivery."))))
9430
- ))), /* @__PURE__ */ React19__default.default.createElement(
9447
+ ), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-4 flex items-center justify-center gap-2 text-xs text-slate-500" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Lock, { className: "h-4 w-4" }), "Fully encrypted checkout \u2014 cancel anytime before shipment.")),
9448
+ /* @__PURE__ */ React20__default.default.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__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.3em] text-primary-800" }, "Why Patients Choose Us"), /* @__PURE__ */ React20__default.default.createElement("ul", { className: "mt-4 space-y-3 text-primary-700 leading-relaxed" }, /* @__PURE__ */ React20__default.default.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.PackageCheck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "Pharmacy-grade verification on every order.")), /* @__PURE__ */ React20__default.default.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.ShieldCheck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "Cold-chain logistics for sensitive medications.")), /* @__PURE__ */ React20__default.default.createElement("li", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Truck, { className: "mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "Real-time tracking and SMS updates from prep to delivery."))))
9449
+ ))), /* @__PURE__ */ React20__default.default.createElement(
9431
9450
  AddressFormModal,
9432
9451
  {
9433
9452
  isOpen: isAddressModalOpen,
@@ -9461,8 +9480,8 @@ function LoginScreen() {
9461
9480
  const searchParams = navigation.useSearchParams();
9462
9481
  const redirectUrl = searchParams?.get("redirect") || "/";
9463
9482
  const { login } = useAuth();
9464
- const [showPassword, setShowPassword] = React19.useState(false);
9465
- const [isSubmitting, setIsSubmitting] = React19.useState(false);
9483
+ const [showPassword, setShowPassword] = React20.useState(false);
9484
+ const [isSubmitting, setIsSubmitting] = React20.useState(false);
9466
9485
  const {
9467
9486
  register,
9468
9487
  handleSubmit,
@@ -9482,7 +9501,7 @@ function LoginScreen() {
9482
9501
  setIsSubmitting(false);
9483
9502
  }
9484
9503
  };
9485
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid min-h-screen overflow-hidden bg-white lg:grid-cols-[1.1fr_0.9fr]" }, /* @__PURE__ */ React19__default.default.createElement(
9504
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid min-h-screen overflow-hidden bg-white lg:grid-cols-[1.1fr_0.9fr]" }, /* @__PURE__ */ React20__default.default.createElement(
9486
9505
  framerMotion.motion.section,
9487
9506
  {
9488
9507
  initial: { opacity: 0, x: -24 },
@@ -9490,18 +9509,18 @@ function LoginScreen() {
9490
9509
  transition: { duration: 0.4 },
9491
9510
  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"
9492
9511
  },
9493
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.HeartPulse, { className: "h-4 w-4" }), "Hey Pharmacist"), /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight lg:text-5xl" }, "Pharmacy-grade care for your household"), /* @__PURE__ */ React19__default.default.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.")),
9494
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4 rounded-3xl bg-white/10 p-6 backdrop-blur" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.ShieldCheck, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-white/80" }, "HIPAA-compliant security keeps your health information protected.")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-white/80" }, "Pharmacists ready to chat in under 10 minutes for medication support."))),
9495
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React19__default.default.createElement("span", null, "Need an account?"), /* @__PURE__ */ React19__default.default.createElement(
9512
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.HeartPulse, { className: "h-4 w-4" }), "Hey Pharmacist"), /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight lg:text-5xl" }, "Pharmacy-grade care for your household"), /* @__PURE__ */ React20__default.default.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.")),
9513
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4 rounded-3xl bg-white/10 p-6 backdrop-blur" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.ShieldCheck, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-white/80" }, "HIPAA-compliant security keeps your health information protected.")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-white/80" }, "Pharmacists ready to chat in under 10 minutes for medication support."))),
9514
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React20__default.default.createElement("span", null, "Need an account?"), /* @__PURE__ */ React20__default.default.createElement(
9496
9515
  Link8__default.default,
9497
9516
  {
9498
9517
  href: "/register",
9499
9518
  className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-2 font-semibold transition hover:bg-white/25"
9500
9519
  },
9501
9520
  "Create one now",
9502
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.ArrowRight, { className: "h-4 w-4" })
9521
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.ArrowRight, { className: "h-4 w-4" })
9503
9522
  ))
9504
- ), /* @__PURE__ */ React19__default.default.createElement(
9523
+ ), /* @__PURE__ */ React20__default.default.createElement(
9505
9524
  framerMotion.motion.section,
9506
9525
  {
9507
9526
  initial: { opacity: 0, x: 24 },
@@ -9509,7 +9528,7 @@ function LoginScreen() {
9509
9528
  transition: { duration: 0.4 },
9510
9529
  className: "flex items-center justify-center px-6 py-12 lg:px-16"
9511
9530
  },
9512
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "w-full max-w-md space-y-10" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-3xl font-bold text-slate-900" }, "Sign in"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-500" }, "Welcome back! Enter your details to continue your personalized care plan.")), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement(
9531
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "w-full max-w-md space-y-10" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-3xl font-bold text-slate-900" }, "Sign in"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-500" }, "Welcome back! Enter your details to continue your personalized care plan.")), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement(
9513
9532
  Input,
9514
9533
  {
9515
9534
  type: "email",
@@ -9518,7 +9537,7 @@ function LoginScreen() {
9518
9537
  ...register("email"),
9519
9538
  error: errors.email?.message
9520
9539
  }
9521
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React19__default.default.createElement(
9540
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React20__default.default.createElement(
9522
9541
  Input,
9523
9542
  {
9524
9543
  type: showPassword ? "text" : "password",
@@ -9527,28 +9546,28 @@ function LoginScreen() {
9527
9546
  ...register("password"),
9528
9547
  error: errors.password?.message
9529
9548
  }
9530
- ), /* @__PURE__ */ React19__default.default.createElement(
9549
+ ), /* @__PURE__ */ React20__default.default.createElement(
9531
9550
  "button",
9532
9551
  {
9533
9552
  type: "button",
9534
9553
  onClick: () => setShowPassword((prev) => !prev),
9535
9554
  className: "absolute right-3 top-[42px] text-slate-400 transition hover:text-slate-600"
9536
9555
  },
9537
- showPassword ? /* @__PURE__ */ React19__default.default.createElement(lucideReact.EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React19__default.default.createElement(lucideReact.Eye, { className: "h-5 w-5" })
9538
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between text-sm" }, /* @__PURE__ */ React19__default.default.createElement("label", { className: "flex items-center gap-2 text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement(
9556
+ showPassword ? /* @__PURE__ */ React20__default.default.createElement(lucideReact.EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React20__default.default.createElement(lucideReact.Eye, { className: "h-5 w-5" })
9557
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between text-sm" }, /* @__PURE__ */ React20__default.default.createElement("label", { className: "flex items-center gap-2 text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement(
9539
9558
  "input",
9540
9559
  {
9541
9560
  type: "checkbox",
9542
9561
  className: "h-4 w-4 rounded border-slate-300 text-primary-600 focus:ring-primary-500"
9543
9562
  }
9544
- ), "Remember me"), /* @__PURE__ */ React19__default.default.createElement(
9563
+ ), "Remember me"), /* @__PURE__ */ React20__default.default.createElement(
9545
9564
  Link8__default.default,
9546
9565
  {
9547
9566
  href: "/forgot-password",
9548
9567
  className: "font-medium text-primary-600 transition hover:text-primary-700"
9549
9568
  },
9550
9569
  "Forgot password?"
9551
- )), /* @__PURE__ */ React19__default.default.createElement(
9570
+ )), /* @__PURE__ */ React20__default.default.createElement(
9552
9571
  Button,
9553
9572
  {
9554
9573
  type: "submit",
@@ -9557,7 +9576,7 @@ function LoginScreen() {
9557
9576
  className: "w-full"
9558
9577
  },
9559
9578
  "Sign in securely"
9560
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-slate-50 p-6 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Lock, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "Secure by design"), /* @__PURE__ */ React19__default.default.createElement("p", null, "Encrypted sessions, multi-factor ready, and privacy-first policies keep your personal data safe.")))))
9579
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-slate-50 p-6 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Lock, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "Secure by design"), /* @__PURE__ */ React20__default.default.createElement("p", null, "Encrypted sessions, multi-factor ready, and privacy-first policies keep your personal data safe.")))))
9561
9580
  )));
9562
9581
  }
9563
9582
  var registerSchema = zod.z.object({
@@ -9579,9 +9598,9 @@ var BENEFITS = [
9579
9598
  function RegisterScreen() {
9580
9599
  const router = navigation.useRouter();
9581
9600
  const { register: registerUser } = useAuth();
9582
- const [showPassword, setShowPassword] = React19.useState(false);
9583
- const [showConfirmPassword, setShowConfirmPassword] = React19.useState(false);
9584
- const [isSubmitting, setIsSubmitting] = React19.useState(false);
9601
+ const [showPassword, setShowPassword] = React20.useState(false);
9602
+ const [showConfirmPassword, setShowConfirmPassword] = React20.useState(false);
9603
+ const [isSubmitting, setIsSubmitting] = React20.useState(false);
9585
9604
  const {
9586
9605
  register,
9587
9606
  handleSubmit,
@@ -9607,7 +9626,7 @@ function RegisterScreen() {
9607
9626
  setIsSubmitting(false);
9608
9627
  }
9609
9628
  };
9610
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid min-h-screen overflow-hidden bg-white lg:grid-cols-[0.95fr_1.05fr]" }, /* @__PURE__ */ React19__default.default.createElement(
9629
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid min-h-screen overflow-hidden bg-white lg:grid-cols-[0.95fr_1.05fr]" }, /* @__PURE__ */ React20__default.default.createElement(
9611
9630
  framerMotion.motion.section,
9612
9631
  {
9613
9632
  initial: { opacity: 0, x: -24 },
@@ -9615,9 +9634,9 @@ function RegisterScreen() {
9615
9634
  transition: { duration: 0.4 },
9616
9635
  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"
9617
9636
  },
9618
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.HeartPulse, { className: "h-4 w-4" }), "Join Hey Pharmacist"), /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight lg:text-5xl" }, "Create your wellness account"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "max-w-xl text-white/80" }, "Unlock concierge-level pharmacy support, curated product recommendations, and smarter refills designed for busy families.")),
9619
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-4 rounded-3xl bg-white/10 p-6 backdrop-blur" }, BENEFITS.map((benefit) => /* @__PURE__ */ React19__default.default.createElement("div", { key: benefit, className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.CheckCircle2, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-white/85" }, benefit)))),
9620
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React19__default.default.createElement("span", null, "Already part of the community?"), /* @__PURE__ */ React19__default.default.createElement(
9637
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.HeartPulse, { className: "h-4 w-4" }), "Join Hey Pharmacist"), /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight lg:text-5xl" }, "Create your wellness account"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "max-w-xl text-white/80" }, "Unlock concierge-level pharmacy support, curated product recommendations, and smarter refills designed for busy families.")),
9638
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-4 rounded-3xl bg-white/10 p-6 backdrop-blur" }, BENEFITS.map((benefit) => /* @__PURE__ */ React20__default.default.createElement("div", { key: benefit, className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.CheckCircle2, { className: "h-5 w-5 text-white" }), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-white/85" }, benefit)))),
9639
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React20__default.default.createElement("span", null, "Already part of the community?"), /* @__PURE__ */ React20__default.default.createElement(
9621
9640
  Link8__default.default,
9622
9641
  {
9623
9642
  href: "/login",
@@ -9625,7 +9644,7 @@ function RegisterScreen() {
9625
9644
  },
9626
9645
  "Sign in"
9627
9646
  ))
9628
- ), /* @__PURE__ */ React19__default.default.createElement(
9647
+ ), /* @__PURE__ */ React20__default.default.createElement(
9629
9648
  framerMotion.motion.section,
9630
9649
  {
9631
9650
  initial: { opacity: 0, x: 24 },
@@ -9633,13 +9652,13 @@ function RegisterScreen() {
9633
9652
  transition: { duration: 0.4 },
9634
9653
  className: "flex items-center justify-center px-6 py-12 lg:px-16"
9635
9654
  },
9636
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "w-full max-w-lg space-y-10" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-3xl font-bold text-slate-900" }, "Create an account"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-500" }, "Start your personalized care journey with pharmacist-backed guidance.")), /* @__PURE__ */ React19__default.default.createElement(
9655
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "w-full max-w-lg space-y-10" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-3xl font-bold text-slate-900" }, "Create an account"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-500" }, "Start your personalized care journey with pharmacist-backed guidance.")), /* @__PURE__ */ React20__default.default.createElement(
9637
9656
  "form",
9638
9657
  {
9639
9658
  onSubmit: handleSubmit(onSubmit),
9640
9659
  className: "space-y-6 rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-50"
9641
9660
  },
9642
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19__default.default.createElement(
9661
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20__default.default.createElement(
9643
9662
  Input,
9644
9663
  {
9645
9664
  label: "First name",
@@ -9647,7 +9666,7 @@ function RegisterScreen() {
9647
9666
  ...register("firstName"),
9648
9667
  error: errors.firstName?.message
9649
9668
  }
9650
- ), /* @__PURE__ */ React19__default.default.createElement(
9669
+ ), /* @__PURE__ */ React20__default.default.createElement(
9651
9670
  Input,
9652
9671
  {
9653
9672
  label: "Last name",
@@ -9656,7 +9675,7 @@ function RegisterScreen() {
9656
9675
  error: errors.lastName?.message
9657
9676
  }
9658
9677
  )),
9659
- /* @__PURE__ */ React19__default.default.createElement(
9678
+ /* @__PURE__ */ React20__default.default.createElement(
9660
9679
  Input,
9661
9680
  {
9662
9681
  type: "email",
@@ -9666,7 +9685,7 @@ function RegisterScreen() {
9666
9685
  error: errors.email?.message
9667
9686
  }
9668
9687
  ),
9669
- /* @__PURE__ */ React19__default.default.createElement(
9688
+ /* @__PURE__ */ React20__default.default.createElement(
9670
9689
  Input,
9671
9690
  {
9672
9691
  type: "tel",
@@ -9676,7 +9695,7 @@ function RegisterScreen() {
9676
9695
  error: errors.phone?.message
9677
9696
  }
9678
9697
  ),
9679
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React19__default.default.createElement(
9698
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React20__default.default.createElement(
9680
9699
  Input,
9681
9700
  {
9682
9701
  type: showPassword ? "text" : "password",
@@ -9685,16 +9704,16 @@ function RegisterScreen() {
9685
9704
  ...register("password"),
9686
9705
  error: errors.password?.message
9687
9706
  }
9688
- ), /* @__PURE__ */ React19__default.default.createElement(
9707
+ ), /* @__PURE__ */ React20__default.default.createElement(
9689
9708
  "button",
9690
9709
  {
9691
9710
  type: "button",
9692
9711
  onClick: () => setShowPassword((prev) => !prev),
9693
9712
  className: "absolute right-3 top-[42px] text-slate-400 transition hover:text-slate-600"
9694
9713
  },
9695
- showPassword ? /* @__PURE__ */ React19__default.default.createElement(lucideReact.EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React19__default.default.createElement(lucideReact.Eye, { className: "h-5 w-5" })
9714
+ showPassword ? /* @__PURE__ */ React20__default.default.createElement(lucideReact.EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React20__default.default.createElement(lucideReact.Eye, { className: "h-5 w-5" })
9696
9715
  )),
9697
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React19__default.default.createElement(
9716
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React20__default.default.createElement(
9698
9717
  Input,
9699
9718
  {
9700
9719
  type: showConfirmPassword ? "text" : "password",
@@ -9703,16 +9722,16 @@ function RegisterScreen() {
9703
9722
  ...register("confirmPassword"),
9704
9723
  error: errors.confirmPassword?.message
9705
9724
  }
9706
- ), /* @__PURE__ */ React19__default.default.createElement(
9725
+ ), /* @__PURE__ */ React20__default.default.createElement(
9707
9726
  "button",
9708
9727
  {
9709
9728
  type: "button",
9710
9729
  onClick: () => setShowConfirmPassword((prev) => !prev),
9711
9730
  className: "absolute right-3 top-[42px] text-slate-400 transition hover:text-slate-600"
9712
9731
  },
9713
- showConfirmPassword ? /* @__PURE__ */ React19__default.default.createElement(lucideReact.EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React19__default.default.createElement(lucideReact.Eye, { className: "h-5 w-5" })
9732
+ showConfirmPassword ? /* @__PURE__ */ React20__default.default.createElement(lucideReact.EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React20__default.default.createElement(lucideReact.Eye, { className: "h-5 w-5" })
9714
9733
  )),
9715
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Shield, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "By creating an account, you agree to our", " ", /* @__PURE__ */ React19__default.default.createElement(Link8__default.default, { href: "/terms", className: "font-semibold text-primary-600 hover:text-primary-700" }, "Terms of Service"), " ", "and", " ", /* @__PURE__ */ React19__default.default.createElement(
9734
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Shield, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "By creating an account, you agree to our", " ", /* @__PURE__ */ React20__default.default.createElement(Link8__default.default, { href: "/terms", className: "font-semibold text-primary-600 hover:text-primary-700" }, "Terms of Service"), " ", "and", " ", /* @__PURE__ */ React20__default.default.createElement(
9716
9735
  Link8__default.default,
9717
9736
  {
9718
9737
  href: "/privacy",
@@ -9720,7 +9739,7 @@ function RegisterScreen() {
9720
9739
  },
9721
9740
  "Privacy Policy"
9722
9741
  ), ". We protect your information with bank-level encryption.")),
9723
- /* @__PURE__ */ React19__default.default.createElement(
9742
+ /* @__PURE__ */ React20__default.default.createElement(
9724
9743
  Button,
9725
9744
  {
9726
9745
  type: "submit",
@@ -9728,10 +9747,10 @@ function RegisterScreen() {
9728
9747
  isLoading: isSubmitting,
9729
9748
  className: "w-full"
9730
9749
  },
9731
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.UserPlus, { className: "h-5 w-5" }),
9750
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.UserPlus, { className: "h-5 w-5" }),
9732
9751
  "Create my account"
9733
9752
  )
9734
- ), /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-slate-50 p-6 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Heart, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "Members love us"), /* @__PURE__ */ React19__default.default.createElement("p", null, "92% of patients report improved adherence after receiving pharmacist touchpoints through their Hey Pharmacist account.")))))
9753
+ ), /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-slate-50 p-6 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Heart, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "Members love us"), /* @__PURE__ */ React20__default.default.createElement("p", null, "92% of patients report improved adherence after receiving pharmacist touchpoints through their Hey Pharmacist account.")))))
9735
9754
  )));
9736
9755
  }
9737
9756
  var profileSchema = zod.z.object({
@@ -9743,7 +9762,7 @@ var profileSchema = zod.z.object({
9743
9762
  function ProfileScreen() {
9744
9763
  const router = navigation.useRouter();
9745
9764
  const { user, updateUser, logout } = useAuth();
9746
- const [isSubmitting, setIsSubmitting] = React19.useState(false);
9765
+ const [isSubmitting, setIsSubmitting] = React20.useState(false);
9747
9766
  const {
9748
9767
  register,
9749
9768
  handleSubmit,
@@ -9797,15 +9816,15 @@ function ProfileScreen() {
9797
9816
  href: "/account/addresses"
9798
9817
  }
9799
9818
  ];
9800
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement(
9819
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement(
9801
9820
  framerMotion.motion.div,
9802
9821
  {
9803
9822
  initial: { opacity: 0, y: 24 },
9804
9823
  animate: { opacity: 1, y: 0 },
9805
9824
  className: "flex flex-col gap-8 md:flex-row md:items-center md:justify-between"
9806
9825
  },
9807
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-5" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.HeartPulse, { className: "h-4 w-4" }), "My account"), /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Hello, ", user.firstname, " ", user.lastname), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-white/80" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-2" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), "Account secured with multi-factor ready login"))),
9808
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col items-center gap-4 rounded-3xl bg-white/15 p-6 text-center backdrop-blur" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("p", { className: "text-sm text-white/80" }, user.email), /* @__PURE__ */ React19__default.default.createElement(
9826
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-5" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.HeartPulse, { className: "h-4 w-4" }), "My account"), /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Hello, ", user.firstname, " ", user.lastname), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-white/80" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-2" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.ShieldCheck, { className: "h-4 w-4" }), "Account secured with multi-factor ready login"))),
9827
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col items-center gap-4 rounded-3xl bg-white/15 p-6 text-center backdrop-blur" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("p", { className: "text-sm text-white/80" }, user.email), /* @__PURE__ */ React20__default.default.createElement(
9809
9828
  Button,
9810
9829
  {
9811
9830
  variant: "ghost",
@@ -9814,14 +9833,14 @@ function ProfileScreen() {
9814
9833
  },
9815
9834
  "Change password"
9816
9835
  ))
9817
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)]" }, /* @__PURE__ */ React19__default.default.createElement(
9836
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)]" }, /* @__PURE__ */ React20__default.default.createElement(
9818
9837
  framerMotion.motion.div,
9819
9838
  {
9820
9839
  initial: { opacity: 0, y: 24 },
9821
9840
  animate: { opacity: 1, y: 0 },
9822
9841
  className: "space-y-6"
9823
9842
  },
9824
- /* @__PURE__ */ React19__default.default.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Personal information"), /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "h-5 w-5 text-primary-500" })), /* @__PURE__ */ React19__default.default.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "mt-6 space-y-6" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19__default.default.createElement(
9843
+ /* @__PURE__ */ React20__default.default.createElement("section", { className: "rounded-3xl border border-slate-100 bg-white p-8 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-xl font-semibold text-slate-900" }, "Personal information"), /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "h-5 w-5 text-primary-500" })), /* @__PURE__ */ React20__default.default.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "mt-6 space-y-6" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20__default.default.createElement(
9825
9844
  Input,
9826
9845
  {
9827
9846
  label: "First name",
@@ -9829,7 +9848,7 @@ function ProfileScreen() {
9829
9848
  ...register("firstName"),
9830
9849
  error: errors.firstName?.message
9831
9850
  }
9832
- ), /* @__PURE__ */ React19__default.default.createElement(
9851
+ ), /* @__PURE__ */ React20__default.default.createElement(
9833
9852
  Input,
9834
9853
  {
9835
9854
  label: "Last name",
@@ -9837,7 +9856,7 @@ function ProfileScreen() {
9837
9856
  ...register("lastName"),
9838
9857
  error: errors.lastName?.message
9839
9858
  }
9840
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React19__default.default.createElement(
9859
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React20__default.default.createElement(
9841
9860
  Input,
9842
9861
  {
9843
9862
  type: "email",
@@ -9847,7 +9866,7 @@ function ProfileScreen() {
9847
9866
  ...register("email"),
9848
9867
  error: errors.email?.message
9849
9868
  }
9850
- ), /* @__PURE__ */ React19__default.default.createElement(lucideReact.Mail, { className: "absolute left-3 top-[38px] h-4 w-4 text-slate-400" })), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React19__default.default.createElement(
9869
+ ), /* @__PURE__ */ React20__default.default.createElement(lucideReact.Mail, { className: "absolute left-3 top-[38px] h-4 w-4 text-slate-400" })), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React20__default.default.createElement(
9851
9870
  Input,
9852
9871
  {
9853
9872
  type: "tel",
@@ -9857,7 +9876,7 @@ function ProfileScreen() {
9857
9876
  ...register("phone"),
9858
9877
  error: errors.phone?.message
9859
9878
  }
9860
- ), /* @__PURE__ */ React19__default.default.createElement(lucideReact.Phone, { className: "absolute left-3 top-[38px] h-4 w-4 text-slate-400" })), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap gap-4" }, /* @__PURE__ */ React19__default.default.createElement(
9879
+ ), /* @__PURE__ */ React20__default.default.createElement(lucideReact.Phone, { className: "absolute left-3 top-[38px] h-4 w-4 text-slate-400" })), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap gap-4" }, /* @__PURE__ */ React20__default.default.createElement(
9861
9880
  Button,
9862
9881
  {
9863
9882
  type: "submit",
@@ -9865,7 +9884,7 @@ function ProfileScreen() {
9865
9884
  isLoading: isSubmitting
9866
9885
  },
9867
9886
  "Save changes"
9868
- ), /* @__PURE__ */ React19__default.default.createElement(
9887
+ ), /* @__PURE__ */ React20__default.default.createElement(
9869
9888
  Button,
9870
9889
  {
9871
9890
  type: "button",
@@ -9875,16 +9894,16 @@ function ProfileScreen() {
9875
9894
  },
9876
9895
  "View recent orders"
9877
9896
  )))),
9878
- /* @__PURE__ */ React19__default.default.createElement("section", { className: "grid gap-4 md:grid-cols-2" }, quickLinks.map((item) => /* @__PURE__ */ React19__default.default.createElement(
9897
+ /* @__PURE__ */ React20__default.default.createElement("section", { className: "grid gap-4 md:grid-cols-2" }, quickLinks.map((item) => /* @__PURE__ */ React20__default.default.createElement(
9879
9898
  Link8__default.default,
9880
9899
  {
9881
9900
  key: item.href,
9882
9901
  href: item.href,
9883
9902
  className: "group rounded-3xl border border-slate-100 bg-white p-6 shadow-sm transition hover:-translate-y-1 hover:shadow-lg"
9884
9903
  },
9885
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "rounded-2xl bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React19__default.default.createElement(item.icon, { className: "h-5 w-5" })), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-base font-semibold text-slate-900 group-hover:text-primary-600" }, item.label), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-500" }, item.description)))
9904
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "rounded-2xl bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React20__default.default.createElement(item.icon, { className: "h-5 w-5" })), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-base font-semibold text-slate-900 group-hover:text-primary-600" }, item.label), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-500" }, item.description)))
9886
9905
  )))
9887
- ), /* @__PURE__ */ React19__default.default.createElement(
9906
+ ), /* @__PURE__ */ React20__default.default.createElement(
9888
9907
  framerMotion.motion.aside,
9889
9908
  {
9890
9909
  initial: { opacity: 0, y: 24 },
@@ -9892,7 +9911,7 @@ function ProfileScreen() {
9892
9911
  transition: { delay: 0.1 },
9893
9912
  className: "space-y-6"
9894
9913
  },
9895
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, "Care preferences"), /* @__PURE__ */ React19__default.default.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__default.default.createElement(
9914
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, "Care preferences"), /* @__PURE__ */ React20__default.default.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__default.default.createElement(
9896
9915
  Button,
9897
9916
  {
9898
9917
  variant: "outline",
@@ -9901,21 +9920,21 @@ function ProfileScreen() {
9901
9920
  },
9902
9921
  "Manage preferences"
9903
9922
  )),
9904
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Pharmacist tip"), /* @__PURE__ */ React19__default.default.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.")),
9905
- /* @__PURE__ */ React19__default.default.createElement(
9923
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Pharmacist tip"), /* @__PURE__ */ React20__default.default.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.")),
9924
+ /* @__PURE__ */ React20__default.default.createElement(
9906
9925
  "button",
9907
9926
  {
9908
9927
  onClick: handleLogout,
9909
9928
  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"
9910
9929
  },
9911
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.LogOut, { className: "h-4 w-4" }),
9930
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.LogOut, { className: "h-4 w-4" }),
9912
9931
  "Log out"
9913
9932
  )
9914
9933
  )))));
9915
9934
  }
9916
9935
  function OrderCard({ order }) {
9917
9936
  const config = order.orderStatus;
9918
- return /* @__PURE__ */ React19__default.default.createElement(
9937
+ return /* @__PURE__ */ React20__default.default.createElement(
9919
9938
  framerMotion.motion.div,
9920
9939
  {
9921
9940
  initial: { opacity: 0, y: 20 },
@@ -9923,9 +9942,9 @@ function OrderCard({ order }) {
9923
9942
  whileHover: { y: -4 },
9924
9943
  className: "bg-white rounded-2xl p-6 shadow-sm hover:shadow-xl transition-all duration-300 border border-gray-100"
9925
9944
  },
9926
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-lg font-bold text-gray-900 flex items-center gap-2" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Package, { className: "w-5 h-5 text-primary-600" }), "Order #", order?._id?.slice(0, 6) || ""), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-gray-500 mt-1 flex items-center gap-2" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Calendar, { className: "w-4 h-4" }), formatDate(order.createdAt || /* @__PURE__ */ new Date(), "long"))), /* @__PURE__ */ React19__default.default.createElement(Badge, { variant: config }, config)),
9927
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-2 mb-4" }, order.items?.slice(0, 2).map((item) => /* @__PURE__ */ React19__default.default.createElement("div", { key: item.productVariantId, className: "flex items-center gap-3 text-sm" }, /* @__PURE__ */ React19__default.default.createElement(Image3__default.default, { 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__default.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-medium text-gray-900 truncate" }, item.productVariantData.name), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-gray-500" }, "Qty: ", item.quantity)), /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold text-gray-900" }, formatPrice(item.productVariantData.finalPrice)))), order.items?.length && order.items?.length > 2 && /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-gray-500 pl-15" }, "+", order.items.length - 2, " more item", order.items.length - 2 > 1 ? "s" : "")),
9928
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex justify-between items-center pt-4 border-t border-gray-200" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-gray-500" }, "Total Amount"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-2xl font-bold text-gray-900" }, formatPrice(order.grandTotal || 0))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex gap-2" }, order.payment.paymentStatus !== "Paid" /* Paid */ && order.payment.paymentMethod === "Card" /* Card */ && /* @__PURE__ */ React19__default.default.createElement(
9945
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-lg font-bold text-gray-900 flex items-center gap-2" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Package, { className: "w-5 h-5 text-primary-600" }), "Order #", order?._id?.slice(0, 6) || ""), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-gray-500 mt-1 flex items-center gap-2" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Calendar, { className: "w-4 h-4" }), formatDate(order.createdAt || /* @__PURE__ */ new Date(), "long"))), /* @__PURE__ */ React20__default.default.createElement(Badge, { variant: config }, config)),
9946
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-2 mb-4" }, order.items?.slice(0, 2).map((item) => /* @__PURE__ */ React20__default.default.createElement("div", { key: item.productVariantId, className: "flex items-center gap-3 text-sm" }, /* @__PURE__ */ React20__default.default.createElement(Image3__default.default, { 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__default.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-medium text-gray-900 truncate" }, item.productVariantData.name), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-gray-500" }, "Qty: ", item.quantity)), /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold text-gray-900" }, formatPrice(item.productVariantData.finalPrice)))), order.items?.length && order.items?.length > 2 && /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-gray-500 pl-15" }, "+", order.items.length - 2, " more item", order.items.length - 2 > 1 ? "s" : "")),
9947
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex justify-between items-center pt-4 border-t border-gray-200" }, /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-gray-500" }, "Total Amount"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-2xl font-bold text-gray-900" }, formatPrice(order.grandTotal || 0))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex gap-2" }, order.payment.paymentStatus !== "Paid" /* Paid */ && order.payment.paymentMethod === "Card" /* Card */ && /* @__PURE__ */ React20__default.default.createElement(
9929
9948
  "a",
9930
9949
  {
9931
9950
  href: order?.payment?.paymentIntent?.hostedInvoiceUrl || "",
@@ -9933,16 +9952,16 @@ function OrderCard({ order }) {
9933
9952
  rel: "noopener noreferrer",
9934
9953
  className: "inline-flex items-center gap-2 px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors"
9935
9954
  },
9936
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.CreditCard, { className: "w-4 h-4" }),
9955
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.CreditCard, { className: "w-4 h-4" }),
9937
9956
  "Pay Now"
9938
9957
  )))
9939
9958
  );
9940
9959
  }
9941
9960
  function useOrders(page = 1, limit = 10, orderStatus, paymentStatus) {
9942
- const [orders, setOrders] = React19.useState([]);
9943
- const [isLoading, setIsLoading] = React19.useState(true);
9944
- const [error, setError] = React19.useState(null);
9945
- const [pagination, setPagination] = React19.useState({
9961
+ const [orders, setOrders] = React20.useState([]);
9962
+ const [isLoading, setIsLoading] = React20.useState(true);
9963
+ const [error, setError] = React20.useState(null);
9964
+ const [pagination, setPagination] = React20.useState({
9946
9965
  page: 1,
9947
9966
  limit: 10,
9948
9967
  total: 0,
@@ -9950,7 +9969,7 @@ function useOrders(page = 1, limit = 10, orderStatus, paymentStatus) {
9950
9969
  });
9951
9970
  const { user } = useAuth();
9952
9971
  const resolvedUserId = user?._id || user?.id;
9953
- const fetchOrders = React19.useCallback(async () => {
9972
+ const fetchOrders = React20.useCallback(async () => {
9954
9973
  setIsLoading(true);
9955
9974
  setError(null);
9956
9975
  try {
@@ -9977,7 +9996,7 @@ function useOrders(page = 1, limit = 10, orderStatus, paymentStatus) {
9977
9996
  setIsLoading(false);
9978
9997
  }
9979
9998
  }, [page, limit, resolvedUserId, orderStatus, paymentStatus]);
9980
- React19.useEffect(() => {
9999
+ React20.useEffect(() => {
9981
10000
  fetchOrders();
9982
10001
  }, [fetchOrders]);
9983
10002
  return {
@@ -9989,10 +10008,10 @@ function useOrders(page = 1, limit = 10, orderStatus, paymentStatus) {
9989
10008
  };
9990
10009
  }
9991
10010
  function useOrder(id) {
9992
- const [order, setOrder] = React19.useState(null);
9993
- const [isLoading, setIsLoading] = React19.useState(true);
9994
- const [error, setError] = React19.useState(null);
9995
- const fetchOrder = React19.useCallback(async () => {
10011
+ const [order, setOrder] = React20.useState(null);
10012
+ const [isLoading, setIsLoading] = React20.useState(true);
10013
+ const [error, setError] = React20.useState(null);
10014
+ const fetchOrder = React20.useCallback(async () => {
9996
10015
  setIsLoading(true);
9997
10016
  setError(null);
9998
10017
  try {
@@ -10004,7 +10023,7 @@ function useOrder(id) {
10004
10023
  setIsLoading(false);
10005
10024
  }
10006
10025
  }, [id]);
10007
- React19.useEffect(() => {
10026
+ React20.useEffect(() => {
10008
10027
  if (id) {
10009
10028
  fetchOrder();
10010
10029
  }
@@ -10012,10 +10031,10 @@ function useOrder(id) {
10012
10031
  return { order, isLoading, error, refetch: fetchOrder };
10013
10032
  }
10014
10033
  function useCurrentOrders() {
10015
- const [orders, setOrders] = React19.useState([]);
10016
- const [isLoading, setIsLoading] = React19.useState(true);
10017
- const [error, setError] = React19.useState(null);
10018
- const fetchCurrentOrders = React19.useCallback(async () => {
10034
+ const [orders, setOrders] = React20.useState([]);
10035
+ const [isLoading, setIsLoading] = React20.useState(true);
10036
+ const [error, setError] = React20.useState(null);
10037
+ const fetchCurrentOrders = React20.useCallback(async () => {
10019
10038
  setIsLoading(true);
10020
10039
  setError(null);
10021
10040
  try {
@@ -10027,7 +10046,7 @@ function useCurrentOrders() {
10027
10046
  setIsLoading(false);
10028
10047
  }
10029
10048
  }, []);
10030
- React19.useEffect(() => {
10049
+ React20.useEffect(() => {
10031
10050
  fetchCurrentOrders();
10032
10051
  }, [fetchCurrentOrders]);
10033
10052
  return { orders, isLoading, error, refetch: fetchCurrentOrders };
@@ -10041,11 +10060,11 @@ function FilterChips({
10041
10060
  maxVisible = 4,
10042
10061
  variant = "primary"
10043
10062
  }) {
10044
- const [isOverflowOpen, setIsOverflowOpen] = React19.useState(false);
10045
- const [filterSearchTerm, setFilterSearchTerm] = React19.useState("");
10046
- const overflowMenuRef = React19.useRef(null);
10063
+ const [isOverflowOpen, setIsOverflowOpen] = React20.useState(false);
10064
+ const [filterSearchTerm, setFilterSearchTerm] = React20.useState("");
10065
+ const overflowMenuRef = React20.useRef(null);
10047
10066
  const color = variant === "primary" ? "primary" : "secondary";
10048
- const { visibleFilters, overflowFilters } = React19.useMemo(() => {
10067
+ const { visibleFilters, overflowFilters } = React20.useMemo(() => {
10049
10068
  const basePrimary = filters.slice(0, maxVisible);
10050
10069
  if (basePrimary.includes(selected)) {
10051
10070
  return {
@@ -10065,18 +10084,18 @@ function FilterChips({
10065
10084
  overflowFilters: filters.filter((filter) => !uniquePrimary.includes(filter))
10066
10085
  };
10067
10086
  }, [filters, maxVisible, selected]);
10068
- const filteredOverflowFilters = React19.useMemo(() => {
10087
+ const filteredOverflowFilters = React20.useMemo(() => {
10069
10088
  if (!filterSearchTerm.trim()) return overflowFilters;
10070
10089
  return overflowFilters.filter(
10071
10090
  (filter) => filter.toLowerCase().includes(filterSearchTerm.toLowerCase())
10072
10091
  );
10073
10092
  }, [filterSearchTerm, overflowFilters]);
10074
- React19.useEffect(() => {
10093
+ React20.useEffect(() => {
10075
10094
  if (!isOverflowOpen) {
10076
10095
  setFilterSearchTerm("");
10077
10096
  }
10078
10097
  }, [isOverflowOpen]);
10079
- React19.useEffect(() => {
10098
+ React20.useEffect(() => {
10080
10099
  function handleClickOutside(event) {
10081
10100
  if (overflowMenuRef.current && !overflowMenuRef.current.contains(event.target)) {
10082
10101
  setIsOverflowOpen(false);
@@ -10089,7 +10108,7 @@ function FilterChips({
10089
10108
  document.removeEventListener("mousedown", handleClickOutside);
10090
10109
  };
10091
10110
  }, [isOverflowOpen]);
10092
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-3 md:flex-row md:items-center md:gap-4" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(Icon, { className: "h-4 w-4" }), label), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-3" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, visibleFilters.map((filter) => /* @__PURE__ */ React19__default.default.createElement(
10111
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-3 md:flex-row md:items-center md:gap-4" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(Icon, { className: "h-4 w-4" }), label), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-3" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, visibleFilters.map((filter) => /* @__PURE__ */ React20__default.default.createElement(
10093
10112
  "button",
10094
10113
  {
10095
10114
  key: filter,
@@ -10098,16 +10117,16 @@ function FilterChips({
10098
10117
  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`}`
10099
10118
  },
10100
10119
  filter
10101
- ))), overflowFilters.length > 0 && /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative", ref: overflowMenuRef }, /* @__PURE__ */ React19__default.default.createElement(
10120
+ ))), overflowFilters.length > 0 && /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative", ref: overflowMenuRef }, /* @__PURE__ */ React20__default.default.createElement(
10102
10121
  "button",
10103
10122
  {
10104
10123
  type: "button",
10105
10124
  onClick: () => setIsOverflowOpen((prev) => !prev),
10106
10125
  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"}`
10107
10126
  },
10108
- /* @__PURE__ */ React19__default.default.createElement("span", null, overflowFilters.includes(selected) ? selected : "More"),
10109
- /* @__PURE__ */ React19__default.default.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)
10110
- ), /* @__PURE__ */ React19__default.default.createElement(framerMotion.AnimatePresence, null, isOverflowOpen && /* @__PURE__ */ React19__default.default.createElement(
10127
+ /* @__PURE__ */ React20__default.default.createElement("span", null, overflowFilters.includes(selected) ? selected : "More"),
10128
+ /* @__PURE__ */ React20__default.default.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)
10129
+ ), /* @__PURE__ */ React20__default.default.createElement(framerMotion.AnimatePresence, null, isOverflowOpen && /* @__PURE__ */ React20__default.default.createElement(
10111
10130
  framerMotion.motion.div,
10112
10131
  {
10113
10132
  initial: { opacity: 0, y: 8 },
@@ -10116,7 +10135,7 @@ function FilterChips({
10116
10135
  transition: { duration: 0.15 },
10117
10136
  className: "absolute right-0 z-50 mt-2 w-64 rounded-2xl border border-slate-100 bg-white shadow-xl shadow-primary-50"
10118
10137
  },
10119
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "border-b border-slate-100 px-4 py-3" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Search, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400" }), /* @__PURE__ */ React19__default.default.createElement(
10138
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "border-b border-slate-100 px-4 py-3" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Search, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400" }), /* @__PURE__ */ React20__default.default.createElement(
10120
10139
  "input",
10121
10140
  {
10122
10141
  type: "text",
@@ -10126,7 +10145,7 @@ function FilterChips({
10126
10145
  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"
10127
10146
  }
10128
10147
  ))),
10129
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "max-h-60 overflow-y-auto px-2 py-2" }, filteredOverflowFilters.length > 0 ? filteredOverflowFilters.map((filter) => /* @__PURE__ */ React19__default.default.createElement(
10148
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "max-h-60 overflow-y-auto px-2 py-2" }, filteredOverflowFilters.length > 0 ? filteredOverflowFilters.map((filter) => /* @__PURE__ */ React20__default.default.createElement(
10130
10149
  "button",
10131
10150
  {
10132
10151
  key: filter,
@@ -10137,10 +10156,10 @@ function FilterChips({
10137
10156
  },
10138
10157
  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"}`
10139
10158
  },
10140
- /* @__PURE__ */ React19__default.default.createElement("span", null, filter),
10141
- selected === filter && /* @__PURE__ */ React19__default.default.createElement(lucideReact.Check, { className: "h-4 w-4" })
10142
- )) : /* @__PURE__ */ React19__default.default.createElement("p", { className: "px-3 py-4 text-sm text-slate-500" }, "No items found.")),
10143
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between gap-2 border-t border-slate-100 px-4 py-3" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-xs font-semibold uppercase tracking-wide text-slate-400" }, "Quick actions"), /* @__PURE__ */ React19__default.default.createElement(
10159
+ /* @__PURE__ */ React20__default.default.createElement("span", null, filter),
10160
+ selected === filter && /* @__PURE__ */ React20__default.default.createElement(lucideReact.Check, { className: "h-4 w-4" })
10161
+ )) : /* @__PURE__ */ React20__default.default.createElement("p", { className: "px-3 py-4 text-sm text-slate-500" }, "No items found.")),
10162
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between gap-2 border-t border-slate-100 px-4 py-3" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-xs font-semibold uppercase tracking-wide text-slate-400" }, "Quick actions"), /* @__PURE__ */ React20__default.default.createElement(
10144
10163
  "button",
10145
10164
  {
10146
10165
  type: "button",
@@ -10158,19 +10177,19 @@ var STATUS_FILTERS = ["All", ...Object.values(ManualOrderDTOOrderStatusEnum)];
10158
10177
  var PAYMENT_FILTERS = ["All", ...Object.values(PaymentPaymentStatusEnum)];
10159
10178
  function OrdersScreen() {
10160
10179
  const router = navigation.useRouter();
10161
- const [page, setPage] = React19.useState(1);
10162
- const [selectedFilter, setSelectedFilter] = React19.useState("All");
10163
- const [selectedPaymentFilter, setSelectedPaymentFilter] = React19.useState("All");
10180
+ const [page, setPage] = React20.useState(1);
10181
+ const [selectedFilter, setSelectedFilter] = React20.useState("All");
10182
+ const [selectedPaymentFilter, setSelectedPaymentFilter] = React20.useState("All");
10164
10183
  const { orders, isLoading, pagination } = useOrders(
10165
10184
  page,
10166
10185
  10,
10167
10186
  selectedFilter,
10168
10187
  selectedPaymentFilter
10169
10188
  );
10170
- const [isOverflowOpen, setIsOverflowOpen] = React19.useState(false);
10171
- const [filterSearchTerm, setFilterSearchTerm] = React19.useState("");
10172
- const overflowMenuRef = React19.useRef(null);
10173
- const filteredOrders = React19.useMemo(() => {
10189
+ const [isOverflowOpen, setIsOverflowOpen] = React20.useState(false);
10190
+ const [filterSearchTerm, setFilterSearchTerm] = React20.useState("");
10191
+ const overflowMenuRef = React20.useRef(null);
10192
+ const filteredOrders = React20.useMemo(() => {
10174
10193
  return orders.filter((order) => {
10175
10194
  const matchesStatus = selectedFilter === "All" || order?.orderStatus?.toLowerCase() === selectedFilter.toLowerCase();
10176
10195
  const matchesPayment = selectedPaymentFilter === "All" || order?.payment?.paymentStatus?.toLowerCase() === selectedPaymentFilter.toLowerCase();
@@ -10179,12 +10198,12 @@ function OrdersScreen() {
10179
10198
  }, [orders, selectedFilter, selectedPaymentFilter]);
10180
10199
  const hasOrders = filteredOrders.length > 0;
10181
10200
  const MAX_VISIBLE_FILTERS = 4;
10182
- React19.useEffect(() => {
10201
+ React20.useEffect(() => {
10183
10202
  if (!isOverflowOpen) {
10184
10203
  setFilterSearchTerm("");
10185
10204
  }
10186
10205
  }, [isOverflowOpen]);
10187
- React19.useEffect(() => {
10206
+ React20.useEffect(() => {
10188
10207
  function handleClickOutside(event) {
10189
10208
  if (overflowMenuRef.current && !overflowMenuRef.current.contains(event.target)) {
10190
10209
  setIsOverflowOpen(false);
@@ -10197,23 +10216,23 @@ function OrdersScreen() {
10197
10216
  document.removeEventListener("mousedown", handleClickOutside);
10198
10217
  };
10199
10218
  }, [isOverflowOpen]);
10200
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement(
10219
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement(
10201
10220
  framerMotion.motion.div,
10202
10221
  {
10203
10222
  initial: { opacity: 0, y: 24 },
10204
10223
  animate: { opacity: 1, y: 0 },
10205
10224
  className: "space-y-6"
10206
10225
  },
10207
- /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.CalendarDays, { className: "h-4 w-4" }), "Order history"),
10208
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "All of your pharmacy orders"), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick tip"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-3 text-sm text-white/80" }, "Use filters to review previous prescriptions, reorder favorites, or download invoices for insurance claims.")))
10209
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative -mt-16 pb-16 container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement(
10226
+ /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.CalendarDays, { className: "h-4 w-4" }), "Order history"),
10227
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "All of your pharmacy orders"), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick tip"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-3 text-sm text-white/80" }, "Use filters to review previous prescriptions, reorder favorites, or download invoices for insurance claims.")))
10228
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative -mt-16 pb-16 container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement(
10210
10229
  framerMotion.motion.div,
10211
10230
  {
10212
10231
  initial: { opacity: 0, y: 24 },
10213
10232
  animate: { opacity: 1, y: 0 },
10214
10233
  className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50"
10215
10234
  },
10216
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3 text-sm text-slate-500" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "Explore your complete order archive with pharmacist notes.")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-4 md:items-end" }, /* @__PURE__ */ React19__default.default.createElement(
10235
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3 text-sm text-slate-500" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "Explore your complete order archive with pharmacist notes.")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-4 md:items-end" }, /* @__PURE__ */ React20__default.default.createElement(
10217
10236
  FilterChips,
10218
10237
  {
10219
10238
  label: "Status filters",
@@ -10227,7 +10246,7 @@ function OrdersScreen() {
10227
10246
  maxVisible: MAX_VISIBLE_FILTERS,
10228
10247
  variant: "primary"
10229
10248
  }
10230
- ), /* @__PURE__ */ React19__default.default.createElement(
10249
+ ), /* @__PURE__ */ React20__default.default.createElement(
10231
10250
  FilterChips,
10232
10251
  {
10233
10252
  label: "Payment status",
@@ -10242,7 +10261,7 @@ function OrdersScreen() {
10242
10261
  variant: "primary"
10243
10262
  }
10244
10263
  ))),
10245
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 space-y-4" }, isLoading ? Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React19__default.default.createElement(OrderCardSkeleton, { key: index })) : hasOrders ? filteredOrders.map((order) => /* @__PURE__ */ React19__default.default.createElement(OrderCard, { key: order.id, order })) : /* @__PURE__ */ React19__default.default.createElement(
10264
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 space-y-4" }, isLoading ? Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React20__default.default.createElement(OrderCardSkeleton, { key: index })) : hasOrders ? filteredOrders.map((order) => /* @__PURE__ */ React20__default.default.createElement(OrderCard, { key: order.id, order })) : /* @__PURE__ */ React20__default.default.createElement(
10246
10265
  EmptyState,
10247
10266
  {
10248
10267
  icon: lucideReact.Package,
@@ -10252,16 +10271,16 @@ function OrdersScreen() {
10252
10271
  onAction: () => router.push("/shop")
10253
10272
  }
10254
10273
  )),
10255
- !isLoading && pagination.totalPages > 1 && hasOrders && /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-10 flex flex-wrap items-center justify-center gap-4" }, /* @__PURE__ */ React19__default.default.createElement(
10274
+ !isLoading && pagination.totalPages > 1 && hasOrders && /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-10 flex flex-wrap items-center justify-center gap-4" }, /* @__PURE__ */ React20__default.default.createElement(
10256
10275
  Button,
10257
10276
  {
10258
10277
  variant: "outline",
10259
10278
  onClick: () => setPage((current) => Math.max(1, current - 1)),
10260
10279
  disabled: page === 1
10261
10280
  },
10262
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.ChevronLeft, { className: "h-5 w-5" }),
10281
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.ChevronLeft, { className: "h-5 w-5" }),
10263
10282
  "Previous"
10264
- ), /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-sm font-semibold text-slate-600" }, "Page ", page, " of ", pagination.totalPages), /* @__PURE__ */ React19__default.default.createElement(
10283
+ ), /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-sm font-semibold text-slate-600" }, "Page ", page, " of ", pagination.totalPages), /* @__PURE__ */ React20__default.default.createElement(
10265
10284
  Button,
10266
10285
  {
10267
10286
  variant: "outline",
@@ -10269,7 +10288,7 @@ function OrdersScreen() {
10269
10288
  disabled: page === pagination.totalPages
10270
10289
  },
10271
10290
  "Next",
10272
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.ChevronRight, { className: "h-5 w-5" })
10291
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.ChevronRight, { className: "h-5 w-5" })
10273
10292
  ))
10274
10293
  ))));
10275
10294
  }
@@ -10277,17 +10296,17 @@ function CurrentOrdersScreen() {
10277
10296
  const router = navigation.useRouter();
10278
10297
  const { orders, isLoading } = useCurrentOrders();
10279
10298
  const hasOrders = orders.length > 0;
10280
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19__default.default.createElement(
10299
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20__default.default.createElement(
10281
10300
  framerMotion.motion.div,
10282
10301
  {
10283
10302
  initial: { opacity: 0, y: 24 },
10284
10303
  animate: { opacity: 1, y: 0 },
10285
10304
  className: "space-y-4"
10286
10305
  },
10287
- /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.Truck, { className: "h-4 w-4" }), "Live order tracking"),
10288
- /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Current orders"),
10289
- /* @__PURE__ */ React19__default.default.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.")
10290
- ), /* @__PURE__ */ React19__default.default.createElement(
10306
+ /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.Truck, { className: "h-4 w-4" }), "Live order tracking"),
10307
+ /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Current orders"),
10308
+ /* @__PURE__ */ React20__default.default.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.")
10309
+ ), /* @__PURE__ */ React20__default.default.createElement(
10291
10310
  framerMotion.motion.div,
10292
10311
  {
10293
10312
  initial: { opacity: 0, y: 24 },
@@ -10295,24 +10314,24 @@ function CurrentOrdersScreen() {
10295
10314
  transition: { delay: 0.1 },
10296
10315
  className: "rounded-3xl bg-white/15 p-6 backdrop-blur"
10297
10316
  },
10298
- /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick actions"),
10299
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-4 space-y-3 text-sm text-white/80" }, /* @__PURE__ */ React19__default.default.createElement(
10317
+ /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick actions"),
10318
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-4 space-y-3 text-sm text-white/80" }, /* @__PURE__ */ React20__default.default.createElement(
10300
10319
  Link8__default.default,
10301
10320
  {
10302
10321
  href: "/orders",
10303
10322
  className: "flex items-center justify-between rounded-2xl bg-white/10 px-4 py-3 transition hover:bg-white/20"
10304
10323
  },
10305
- /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-semibold text-white" }, "View order history"),
10306
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.ArrowUpRight, { className: "h-4 w-4" })
10307
- ), /* @__PURE__ */ React19__default.default.createElement("p", null, "Need help fast? Chat with a pharmacist and we will triage your request in under 10 minutes."))
10308
- )))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative -mt-16 pb-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement(
10324
+ /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-semibold text-white" }, "View order history"),
10325
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.ArrowUpRight, { className: "h-4 w-4" })
10326
+ ), /* @__PURE__ */ React20__default.default.createElement("p", null, "Need help fast? Chat with a pharmacist and we will triage your request in under 10 minutes."))
10327
+ )))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative -mt-16 pb-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement(
10309
10328
  framerMotion.motion.section,
10310
10329
  {
10311
10330
  initial: { opacity: 0, y: 24 },
10312
10331
  animate: { opacity: 1, y: 0 },
10313
10332
  className: "grid gap-6 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]"
10314
10333
  },
10315
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-6" }, isLoading ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-4" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React19__default.default.createElement(OrderCardSkeleton, { key: index }))) : hasOrders ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-4" }, orders.map((order) => /* @__PURE__ */ React19__default.default.createElement(OrderCard, { key: order.id, order }))) : /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-10 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement(
10334
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-6" }, isLoading ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-4" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React20__default.default.createElement(OrderCardSkeleton, { key: index }))) : hasOrders ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-4" }, orders.map((order) => /* @__PURE__ */ React20__default.default.createElement(OrderCard, { key: order.id, order }))) : /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-10 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement(
10316
10335
  EmptyState,
10317
10336
  {
10318
10337
  icon: lucideReact.PackageCheck,
@@ -10322,7 +10341,7 @@ function CurrentOrdersScreen() {
10322
10341
  onAction: () => router.push("/shop")
10323
10342
  }
10324
10343
  ))),
10325
- /* @__PURE__ */ React19__default.default.createElement("aside", { className: "space-y-6" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-lg font-semibold text-slate-900" }, "Real-time milestones"), /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-4 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Warehouse, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "Preparation"), /* @__PURE__ */ React19__default.default.createElement("p", null, "Our pharmacists verify ingredients and pack thermo-sensitive items."))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Truck, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "In transit"), /* @__PURE__ */ React19__default.default.createElement("p", null, "Track live courier location with ETA updates tailored to your delivery window."))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.BellRing, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "Arrival alerts"), /* @__PURE__ */ React19__default.default.createElement("p", null, "Receive SMS and email notifications when parcels are out for delivery."))))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Need support?"), /* @__PURE__ */ React19__default.default.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.")))
10344
+ /* @__PURE__ */ React20__default.default.createElement("aside", { className: "space-y-6" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50" }, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-lg font-semibold text-slate-900" }, "Real-time milestones"), /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-4 space-y-4 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Warehouse, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "Preparation"), /* @__PURE__ */ React20__default.default.createElement("p", null, "Our pharmacists verify ingredients and pack thermo-sensitive items."))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Truck, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "In transit"), /* @__PURE__ */ React20__default.default.createElement("p", null, "Track live courier location with ETA updates tailored to your delivery window."))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.BellRing, { className: "h-5 w-5 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold text-slate-800" }, "Arrival alerts"), /* @__PURE__ */ React20__default.default.createElement("p", null, "Receive SMS and email notifications when parcels are out for delivery."))))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "rounded-3xl border border-primary-100 bg-primary-50/70 p-6 text-sm text-primary-700 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "font-semibold uppercase tracking-[0.3em]" }, "Need support?"), /* @__PURE__ */ React20__default.default.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.")))
10326
10345
  ))));
10327
10346
  }
10328
10347
  var addressFormSchema = zod.z.object({
@@ -10355,12 +10374,12 @@ function formatAddressSnippet(address) {
10355
10374
  function getAddressTypeCopy(type) {
10356
10375
  switch (type) {
10357
10376
  case "Billing":
10358
- return { label: "Billing", icon: /* @__PURE__ */ React19__default.default.createElement(lucideReact.Home, { className: "h-4 w-4" }) };
10377
+ return { label: "Billing", icon: /* @__PURE__ */ React20__default.default.createElement(lucideReact.Home, { className: "h-4 w-4" }) };
10359
10378
  case "Both":
10360
- return { label: "Billing & Shipping", icon: /* @__PURE__ */ React19__default.default.createElement(lucideReact.Globe, { className: "h-4 w-4" }) };
10379
+ return { label: "Billing & Shipping", icon: /* @__PURE__ */ React20__default.default.createElement(lucideReact.Globe, { className: "h-4 w-4" }) };
10361
10380
  case "Shipping":
10362
10381
  default:
10363
- return { label: "Shipping", icon: /* @__PURE__ */ React19__default.default.createElement(lucideReact.MapPin, { className: "h-4 w-4" }) };
10382
+ return { label: "Shipping", icon: /* @__PURE__ */ React20__default.default.createElement(lucideReact.MapPin, { className: "h-4 w-4" }) };
10364
10383
  }
10365
10384
  }
10366
10385
  function AddressesScreen() {
@@ -10374,8 +10393,8 @@ function AddressesScreen() {
10374
10393
  removeAddress,
10375
10394
  markAsDefault
10376
10395
  } = useAddresses();
10377
- const [isModalOpen, setIsModalOpen] = React19.useState(false);
10378
- const [editingAddress, setEditingAddress] = React19.useState(null);
10396
+ const [isModalOpen, setIsModalOpen] = React20.useState(false);
10397
+ const [editingAddress, setEditingAddress] = React20.useState(null);
10379
10398
  const {
10380
10399
  register,
10381
10400
  handleSubmit,
@@ -10385,7 +10404,7 @@ function AddressesScreen() {
10385
10404
  resolver: zod$1.zodResolver(addressFormSchema),
10386
10405
  defaultValues: FORM_DEFAULTS
10387
10406
  });
10388
- React19.useEffect(() => {
10407
+ React20.useEffect(() => {
10389
10408
  if (editingAddress) {
10390
10409
  reset({
10391
10410
  fullName: editingAddress.name,
@@ -10480,7 +10499,7 @@ You can add it back at any time.`
10480
10499
  });
10481
10500
  }
10482
10501
  };
10483
- const stats = React19.useMemo(() => {
10502
+ const stats = React20.useMemo(() => {
10484
10503
  const shippingCount = addresses.filter((address) => address.addressType !== "Billing").length;
10485
10504
  const billingCount = addresses.filter((address) => address.addressType !== "Shipping").length;
10486
10505
  return [
@@ -10504,18 +10523,18 @@ You can add it back at any time.`
10504
10523
  }
10505
10524
  ];
10506
10525
  }, [addresses]);
10507
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.3),_transparent_60%)]" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19__default.default.createElement(
10526
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.3),_transparent_60%)]" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-6 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20__default.default.createElement(
10508
10527
  framerMotion.motion.div,
10509
10528
  {
10510
10529
  initial: { opacity: 0, y: 24 },
10511
10530
  animate: { opacity: 1, y: 0 },
10512
10531
  className: "space-y-5"
10513
10532
  },
10514
- /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.MapPin, { className: "h-4 w-4" }), "Address book"),
10515
- /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Manage where your care arrives"),
10516
- /* @__PURE__ */ React19__default.default.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."),
10517
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap items-center gap-3 text-sm text-white/75" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-white" }), "Default address: ", defaultAddress ? defaultAddress.name : "Not set"), /* @__PURE__ */ React19__default.default.createElement(Button, { variant: "ghost", className: "text-white hover:bg-white/10", onClick: openCreateModal }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Plus, { className: "h-5 w-5" }), "Add address"))
10518
- ), /* @__PURE__ */ React19__default.default.createElement(
10533
+ /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.MapPin, { className: "h-4 w-4" }), "Address book"),
10534
+ /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Manage where your care arrives"),
10535
+ /* @__PURE__ */ React20__default.default.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."),
10536
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap items-center gap-3 text-sm text-white/75" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "inline-flex items-center gap-2 rounded-full bg-white/10 px-3 py-1" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-white" }), "Default address: ", defaultAddress ? defaultAddress.name : "Not set"), /* @__PURE__ */ React20__default.default.createElement(Button, { variant: "ghost", className: "text-white hover:bg-white/10", onClick: openCreateModal }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Plus, { className: "h-5 w-5" }), "Add address"))
10537
+ ), /* @__PURE__ */ React20__default.default.createElement(
10519
10538
  framerMotion.motion.div,
10520
10539
  {
10521
10540
  initial: { opacity: 0, y: 24 },
@@ -10523,14 +10542,14 @@ You can add it back at any time.`
10523
10542
  transition: { delay: 0.1 },
10524
10543
  className: "grid gap-4 rounded-3xl bg-white/15 p-6 text-sm text-white/80 backdrop-blur"
10525
10544
  },
10526
- stats.map((stat) => /* @__PURE__ */ React19__default.default.createElement("div", { key: stat.id, className: "flex items-center justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-white/70" }, stat.label), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-white" }, stat.helper)), /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-3xl font-semibold text-white" }, stat.value)))
10527
- )))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, isLoading ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-3" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React19__default.default.createElement(
10545
+ stats.map((stat) => /* @__PURE__ */ React20__default.default.createElement("div", { key: stat.id, className: "flex items-center justify-between" }, /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-xs font-semibold uppercase tracking-[0.3em] text-white/70" }, stat.label), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-white" }, stat.helper)), /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-3xl font-semibold text-white" }, stat.value)))
10546
+ )))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative -mt-16 pb-20" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, isLoading ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-3" }, Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React20__default.default.createElement(
10528
10547
  "div",
10529
10548
  {
10530
10549
  key: index,
10531
10550
  className: "h-56 animate-pulse rounded-3xl border border-slate-100 bg-white"
10532
10551
  }
10533
- ))) : error ? /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-12 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement(
10552
+ ))) : error ? /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "rounded-3xl border border-slate-100 bg-white p-12 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement(
10534
10553
  EmptyState,
10535
10554
  {
10536
10555
  icon: lucideReact.MapPin,
@@ -10539,9 +10558,9 @@ You can add it back at any time.`
10539
10558
  actionLabel: "Add your first address",
10540
10559
  onAction: openCreateModal
10541
10560
  }
10542
- )) : /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-3" }, addresses.map((address) => {
10561
+ )) : /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4 sm:grid-cols-2 xl:grid-cols-3" }, addresses.map((address) => {
10543
10562
  const typeCopy = getAddressTypeCopy(address.addressType);
10544
- return /* @__PURE__ */ React19__default.default.createElement(
10563
+ return /* @__PURE__ */ React20__default.default.createElement(
10545
10564
  framerMotion.motion.div,
10546
10565
  {
10547
10566
  key: address.id,
@@ -10549,39 +10568,39 @@ You can add it back at any time.`
10549
10568
  animate: { opacity: 1, y: 0 },
10550
10569
  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"
10551
10570
  },
10552
- address.isDefault && /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.Crown, { className: "h-4 w-4" }), "Default"),
10553
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "rounded-full bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.User, { className: "h-5 w-5" })), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-base font-semibold text-slate-900" }, address.name), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-xs uppercase tracking-[0.3em] text-slate-400" }, typeCopy.label))),
10554
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 flex flex-1 flex-col gap-3 text-sm text-slate-600" }, /* @__PURE__ */ React19__default.default.createElement("p", null, formatAddressSnippet(address)), /* @__PURE__ */ React19__default.default.createElement("p", { className: "inline-flex items-center gap-2 text-slate-500" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Phone, { className: "h-4 w-4 text-slate-400" }), address.phone || "Not provided")),
10555
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "mt-6 flex items-center justify-between gap-3" }, /* @__PURE__ */ React19__default.default.createElement(
10571
+ address.isDefault && /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.Crown, { className: "h-4 w-4" }), "Default"),
10572
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "rounded-full bg-primary-50 p-3 text-primary-600" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.User, { className: "h-5 w-5" })), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-base font-semibold text-slate-900" }, address.name), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-xs uppercase tracking-[0.3em] text-slate-400" }, typeCopy.label))),
10573
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 flex flex-1 flex-col gap-3 text-sm text-slate-600" }, /* @__PURE__ */ React20__default.default.createElement("p", null, formatAddressSnippet(address)), /* @__PURE__ */ React20__default.default.createElement("p", { className: "inline-flex items-center gap-2 text-slate-500" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Phone, { className: "h-4 w-4 text-slate-400" }), address.phone || "Not provided")),
10574
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "mt-6 flex items-center justify-between gap-3" }, /* @__PURE__ */ React20__default.default.createElement(
10556
10575
  "button",
10557
10576
  {
10558
10577
  type: "button",
10559
10578
  onClick: () => openEditModal(address),
10560
10579
  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"
10561
10580
  },
10562
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Edit3, { className: "h-4 w-4" }),
10581
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Edit3, { className: "h-4 w-4" }),
10563
10582
  "Edit"
10564
- ), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-2" }, !address.isDefault && /* @__PURE__ */ React19__default.default.createElement(
10583
+ ), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-2" }, !address.isDefault && /* @__PURE__ */ React20__default.default.createElement(
10565
10584
  "button",
10566
10585
  {
10567
10586
  type: "button",
10568
10587
  onClick: () => handleSetDefault(address),
10569
10588
  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"
10570
10589
  },
10571
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Star, { className: "h-4 w-4" }),
10590
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Star, { className: "h-4 w-4" }),
10572
10591
  "Make default"
10573
- ), /* @__PURE__ */ React19__default.default.createElement(
10592
+ ), /* @__PURE__ */ React20__default.default.createElement(
10574
10593
  "button",
10575
10594
  {
10576
10595
  type: "button",
10577
10596
  onClick: () => handleDelete(address),
10578
10597
  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"
10579
10598
  },
10580
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Trash2, { className: "h-4 w-4" }),
10599
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Trash2, { className: "h-4 w-4" }),
10581
10600
  "Delete"
10582
10601
  )))
10583
10602
  );
10584
- })))), /* @__PURE__ */ React19__default.default.createElement(
10603
+ })))), /* @__PURE__ */ React20__default.default.createElement(
10585
10604
  Modal,
10586
10605
  {
10587
10606
  isOpen: isModalOpen,
@@ -10589,7 +10608,7 @@ You can add it back at any time.`
10589
10608
  title: editingAddress ? "Edit address" : "Add new address",
10590
10609
  size: "lg"
10591
10610
  },
10592
- /* @__PURE__ */ React19__default.default.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-6" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19__default.default.createElement(
10611
+ /* @__PURE__ */ React20__default.default.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-6" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20__default.default.createElement(
10593
10612
  Input,
10594
10613
  {
10595
10614
  label: "Full name",
@@ -10597,7 +10616,7 @@ You can add it back at any time.`
10597
10616
  ...register("fullName"),
10598
10617
  error: errors.fullName?.message
10599
10618
  }
10600
- ), /* @__PURE__ */ React19__default.default.createElement(
10619
+ ), /* @__PURE__ */ React20__default.default.createElement(
10601
10620
  Input,
10602
10621
  {
10603
10622
  label: "Phone number",
@@ -10605,7 +10624,7 @@ You can add it back at any time.`
10605
10624
  ...register("phone"),
10606
10625
  error: errors.phone?.message
10607
10626
  }
10608
- )), /* @__PURE__ */ React19__default.default.createElement(
10627
+ )), /* @__PURE__ */ React20__default.default.createElement(
10609
10628
  Input,
10610
10629
  {
10611
10630
  label: "Address line 1",
@@ -10613,7 +10632,7 @@ You can add it back at any time.`
10613
10632
  ...register("addressLine1"),
10614
10633
  error: errors.addressLine1?.message
10615
10634
  }
10616
- ), /* @__PURE__ */ React19__default.default.createElement(
10635
+ ), /* @__PURE__ */ React20__default.default.createElement(
10617
10636
  Input,
10618
10637
  {
10619
10638
  label: "Address line 2 (optional)",
@@ -10621,7 +10640,7 @@ You can add it back at any time.`
10621
10640
  ...register("addressLine2"),
10622
10641
  error: errors.addressLine2?.message
10623
10642
  }
10624
- ), /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19__default.default.createElement(
10643
+ ), /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20__default.default.createElement(
10625
10644
  Input,
10626
10645
  {
10627
10646
  label: "City",
@@ -10629,7 +10648,7 @@ You can add it back at any time.`
10629
10648
  ...register("city"),
10630
10649
  error: errors.city?.message
10631
10650
  }
10632
- ), /* @__PURE__ */ React19__default.default.createElement(
10651
+ ), /* @__PURE__ */ React20__default.default.createElement(
10633
10652
  Input,
10634
10653
  {
10635
10654
  label: "State / Region",
@@ -10637,7 +10656,7 @@ You can add it back at any time.`
10637
10656
  ...register("state"),
10638
10657
  error: errors.state?.message
10639
10658
  }
10640
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19__default.default.createElement(
10659
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20__default.default.createElement(
10641
10660
  Input,
10642
10661
  {
10643
10662
  label: "Postal code",
@@ -10645,7 +10664,7 @@ You can add it back at any time.`
10645
10664
  ...register("zipCode"),
10646
10665
  error: errors.zipCode?.message
10647
10666
  }
10648
- ), /* @__PURE__ */ React19__default.default.createElement(
10667
+ ), /* @__PURE__ */ React20__default.default.createElement(
10649
10668
  Input,
10650
10669
  {
10651
10670
  label: "Country",
@@ -10653,35 +10672,35 @@ You can add it back at any time.`
10653
10672
  ...register("country"),
10654
10673
  error: errors.country?.message
10655
10674
  }
10656
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React19__default.default.createElement("label", { className: "flex flex-col gap-2 rounded-2xl border border-slate-200 p-4" }, /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-sm font-semibold text-slate-700" }, "Address type"), /* @__PURE__ */ React19__default.default.createElement(
10675
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid gap-4 md:grid-cols-2" }, /* @__PURE__ */ React20__default.default.createElement("label", { className: "flex flex-col gap-2 rounded-2xl border border-slate-200 p-4" }, /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-sm font-semibold text-slate-700" }, "Address type"), /* @__PURE__ */ React20__default.default.createElement(
10657
10676
  "select",
10658
10677
  {
10659
10678
  ...register("addressType"),
10660
10679
  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"
10661
10680
  },
10662
- /* @__PURE__ */ React19__default.default.createElement("option", { value: "Shipping" }, "Shipping"),
10663
- /* @__PURE__ */ React19__default.default.createElement("option", { value: "Billing" }, "Billing"),
10664
- /* @__PURE__ */ React19__default.default.createElement("option", { value: "Both" }, "Billing & Shipping")
10665
- )), /* @__PURE__ */ React19__default.default.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__default.default.createElement("span", null, "Set as default address"), /* @__PURE__ */ React19__default.default.createElement(
10681
+ /* @__PURE__ */ React20__default.default.createElement("option", { value: "Shipping" }, "Shipping"),
10682
+ /* @__PURE__ */ React20__default.default.createElement("option", { value: "Billing" }, "Billing"),
10683
+ /* @__PURE__ */ React20__default.default.createElement("option", { value: "Both" }, "Billing & Shipping")
10684
+ )), /* @__PURE__ */ React20__default.default.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__default.default.createElement("span", null, "Set as default address"), /* @__PURE__ */ React20__default.default.createElement(
10666
10685
  "input",
10667
10686
  {
10668
10687
  type: "checkbox",
10669
10688
  ...register("isDefault"),
10670
10689
  className: "h-4 w-4 rounded border-primary-300 text-primary-600 focus:ring-primary-500"
10671
10690
  }
10672
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-end gap-3" }, /* @__PURE__ */ React19__default.default.createElement(Button, { type: "button", variant: "outline", onClick: closeModal }, "Cancel"), /* @__PURE__ */ React19__default.default.createElement(Button, { type: "submit", isLoading: isSubmitting }, editingAddress ? "Save changes" : "Save address")))
10691
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-end gap-3" }, /* @__PURE__ */ React20__default.default.createElement(Button, { type: "button", variant: "outline", onClick: closeModal }, "Cancel"), /* @__PURE__ */ React20__default.default.createElement(Button, { type: "submit", isLoading: isSubmitting }, editingAddress ? "Save changes" : "Save address")))
10673
10692
  ));
10674
10693
  }
10675
10694
  function useWishlistProducts(productIds = []) {
10676
- const [products, setProducts] = React19.useState([]);
10677
- const [isLoading, setIsLoading] = React19.useState(false);
10678
- const [error, setError] = React19.useState(null);
10679
- const [cache] = React19.useState(() => /* @__PURE__ */ new Map());
10680
- const uniqueIds = React19.useMemo(
10695
+ const [products, setProducts] = React20.useState([]);
10696
+ const [isLoading, setIsLoading] = React20.useState(false);
10697
+ const [error, setError] = React20.useState(null);
10698
+ const [cache] = React20.useState(() => /* @__PURE__ */ new Map());
10699
+ const uniqueIds = React20.useMemo(
10681
10700
  () => Array.from(new Set((productIds || []).filter(Boolean))),
10682
10701
  [productIds]
10683
10702
  );
10684
- const fetchProducts = React19.useCallback(async () => {
10703
+ const fetchProducts = React20.useCallback(async () => {
10685
10704
  if (uniqueIds.length === 0) {
10686
10705
  setProducts([]);
10687
10706
  setIsLoading(false);
@@ -10709,7 +10728,7 @@ function useWishlistProducts(productIds = []) {
10709
10728
  setIsLoading(false);
10710
10729
  }
10711
10730
  }, [cache, uniqueIds]);
10712
- React19.useEffect(() => {
10731
+ React20.useEffect(() => {
10713
10732
  fetchProducts();
10714
10733
  }, [fetchProducts]);
10715
10734
  return {
@@ -10728,6 +10747,7 @@ var SORT_OPTIONS = [
10728
10747
  ];
10729
10748
  function WishlistScreen() {
10730
10749
  const router = navigation.useRouter();
10750
+ const { buildPath } = useBasePath();
10731
10751
  const { isAuthenticated } = useAuth() || {};
10732
10752
  const {
10733
10753
  products: wishlistItems,
@@ -10740,10 +10760,10 @@ function WishlistScreen() {
10740
10760
  const { products: wishlistProducts, isLoading, error } = useWishlistProducts(
10741
10761
  wishlistItems
10742
10762
  );
10743
- const [onlyInStock, setOnlyInStock] = React19.useState(false);
10744
- const [viewMode, setViewMode] = React19.useState("list");
10745
- const [sortOption, setSortOption] = React19.useState("featured");
10746
- React19.useEffect(() => {
10763
+ const [onlyInStock, setOnlyInStock] = React20.useState(false);
10764
+ const [viewMode, setViewMode] = React20.useState("list");
10765
+ const [sortOption, setSortOption] = React20.useState("featured");
10766
+ React20.useEffect(() => {
10747
10767
  if (error) {
10748
10768
  sonner.toast.error("We had trouble loading your saved products. Please try again.");
10749
10769
  }
@@ -10765,11 +10785,11 @@ function WishlistScreen() {
10765
10785
  console.error("Error clearing wishlist:", err);
10766
10786
  }
10767
10787
  };
10768
- const totalValue = React19.useMemo(
10788
+ const totalValue = React20.useMemo(
10769
10789
  () => wishlistProducts.reduce((sum, product) => sum + (product.finalPrice ?? 0), 0),
10770
10790
  [wishlistProducts]
10771
10791
  );
10772
- React19.useMemo(
10792
+ React20.useMemo(
10773
10793
  () => wishlistProducts.reduce((sum, product) => {
10774
10794
  const before = product.priceBeforeDiscount ?? product.finalPrice ?? 0;
10775
10795
  const after = product.finalPrice ?? 0;
@@ -10778,11 +10798,11 @@ function WishlistScreen() {
10778
10798
  }, 0),
10779
10799
  [wishlistProducts]
10780
10800
  );
10781
- React19.useMemo(
10801
+ React20.useMemo(
10782
10802
  () => wishlistProducts.filter((product) => (product.inventoryCount ?? 0) > 0).length,
10783
10803
  [wishlistProducts]
10784
10804
  );
10785
- const processedProducts = React19.useMemo(() => {
10805
+ const processedProducts = React20.useMemo(() => {
10786
10806
  let list = [...wishlistProducts];
10787
10807
  if (onlyInStock) {
10788
10808
  list = list.filter((product) => (product.inventoryCount ?? 0) > 0);
@@ -10808,14 +10828,14 @@ function WishlistScreen() {
10808
10828
  return list;
10809
10829
  }, [wishlistProducts, onlyInStock, sortOption]);
10810
10830
  const emptyAfterFiltering = !isLoading && wishlistProducts.length > 0 && processedProducts.length === 0;
10811
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50 pb-16" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "absolute inset-0 opacity-40 mix-blend-soft-light", "aria-hidden": "true" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "absolute -top-1/2 right-1/2 h-[40rem] w-[40rem] rounded-full bg-white/10 blur-3xl" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "absolute left-1/4 top-1/4 h-48 w-48 rounded-full bg-white/20 blur-2xl" })), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "max-w-3xl space-y-6" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.Heart, { className: "h-4 w-4" }), "Wishlist"), /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-5xl" }, "Curate your pharmacy must-haves in one calming space"), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "relative -mt-20" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement(
10831
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50 pb-16" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "absolute inset-0 opacity-40 mix-blend-soft-light", "aria-hidden": "true" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "absolute -top-1/2 right-1/2 h-[40rem] w-[40rem] rounded-full bg-white/10 blur-3xl" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "absolute left-1/4 top-1/4 h-48 w-48 rounded-full bg-white/20 blur-2xl" })), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "max-w-3xl space-y-6" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.Heart, { className: "h-4 w-4" }), "Wishlist"), /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold leading-tight md:text-5xl" }, "Curate your pharmacy must-haves in one calming space"), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "relative -mt-20" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement(
10812
10832
  framerMotion.motion.div,
10813
10833
  {
10814
10834
  initial: { opacity: 0, y: 24 },
10815
10835
  animate: { opacity: 1, y: 0 },
10816
10836
  className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-xl shadow-primary-50"
10817
10837
  },
10818
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-6" }, !isAuthenticated && /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex min-h-[40vh] items-center justify-center" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-primary-50 text-primary-600" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Heart, { className: "h-8 w-8" })), /* @__PURE__ */ React19__default.default.createElement("h2", { className: "mt-6 text-3xl font-bold text-slate-900" }, "Sign in to see your favourites"), /* @__PURE__ */ React19__default.default.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__default.default.createElement(Button, { className: "mt-6", onClick: () => router.push("/login") }, "Sign In"))), isAuthenticated && /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-1" }, /* @__PURE__ */ React19__default.default.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "Your saved collection"), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-500" }, "Total value: ", /* @__PURE__ */ React19__default.default.createElement("span", { className: "font-semibold text-primary-600" }, formatPrice(totalValue)), onlyInStock && " \u2022 Showing items ready to ship")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap items-center gap-3" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(
10838
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-6" }, !isAuthenticated && /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex min-h-[40vh] items-center justify-center" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-primary-50 text-primary-600" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Heart, { className: "h-8 w-8" })), /* @__PURE__ */ React20__default.default.createElement("h2", { className: "mt-6 text-3xl font-bold text-slate-900" }, "Sign in to see your favourites"), /* @__PURE__ */ React20__default.default.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__default.default.createElement(Button, { className: "mt-6", onClick: () => router.push("/login") }, "Sign In"))), isAuthenticated && /* @__PURE__ */ React20__default.default.createElement(React20__default.default.Fragment, null, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-1" }, /* @__PURE__ */ React20__default.default.createElement("h2", { className: "text-2xl font-semibold text-slate-900" }, "Your saved collection"), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-500" }, "Total value: ", /* @__PURE__ */ React20__default.default.createElement("span", { className: "font-semibold text-primary-600" }, formatPrice(totalValue)), onlyInStock && " \u2022 Showing items ready to ship")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap items-center gap-3" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(
10819
10839
  "input",
10820
10840
  {
10821
10841
  type: "checkbox",
@@ -10823,54 +10843,54 @@ function WishlistScreen() {
10823
10843
  onChange: (event) => setOnlyInStock(event.target.checked),
10824
10844
  className: "h-4 w-4 rounded border-slate-300 text-primary-600 focus:ring-primary-500"
10825
10845
  }
10826
- ), "Only show in-stock"), /* @__PURE__ */ React19__default.default.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__default.default.createElement("span", null, "Sort"), /* @__PURE__ */ React19__default.default.createElement(
10846
+ ), "Only show in-stock"), /* @__PURE__ */ React20__default.default.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__default.default.createElement("span", null, "Sort"), /* @__PURE__ */ React20__default.default.createElement(
10827
10847
  "select",
10828
10848
  {
10829
10849
  value: sortOption,
10830
10850
  onChange: (event) => setSortOption(event.target.value),
10831
10851
  className: "bg-transparent text-sm font-medium text-slate-700 outline-none"
10832
10852
  },
10833
- SORT_OPTIONS.map((option) => /* @__PURE__ */ React19__default.default.createElement("option", { key: option.value, value: option.value }, option.label))
10834
- )), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex overflow-hidden rounded-full border border-slate-200 bg-slate-50" }, /* @__PURE__ */ React19__default.default.createElement(
10853
+ SORT_OPTIONS.map((option) => /* @__PURE__ */ React20__default.default.createElement("option", { key: option.value, value: option.value }, option.label))
10854
+ )), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex overflow-hidden rounded-full border border-slate-200 bg-slate-50" }, /* @__PURE__ */ React20__default.default.createElement(
10835
10855
  "button",
10836
10856
  {
10837
10857
  type: "button",
10838
10858
  onClick: () => setViewMode("grid"),
10839
10859
  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"}`
10840
10860
  },
10841
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Grid, { className: "h-4 w-4" }),
10861
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Grid, { className: "h-4 w-4" }),
10842
10862
  "Grid"
10843
- ), /* @__PURE__ */ React19__default.default.createElement(
10863
+ ), /* @__PURE__ */ React20__default.default.createElement(
10844
10864
  "button",
10845
10865
  {
10846
10866
  type: "button",
10847
10867
  onClick: () => setViewMode("list"),
10848
10868
  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"}`
10849
10869
  },
10850
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.List, { className: "h-4 w-4" }),
10870
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.List, { className: "h-4 w-4" }),
10851
10871
  "List"
10852
- )), wishlistCount > 0 && /* @__PURE__ */ React19__default.default.createElement(
10872
+ )), wishlistCount > 0 && /* @__PURE__ */ React20__default.default.createElement(
10853
10873
  Button,
10854
10874
  {
10855
10875
  variant: "ghost",
10856
10876
  className: "text-sm font-semibold text-slate-500 hover:text-red-500",
10857
10877
  onClick: handleClearWishlist
10858
10878
  },
10859
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Trash2, { className: "h-4 w-4" }),
10879
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Trash2, { className: "h-4 w-4" }),
10860
10880
  "Clear all"
10861
- ))), isLoading && /* @__PURE__ */ React19__default.default.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__default.default.createElement(
10881
+ ))), isLoading && /* @__PURE__ */ React20__default.default.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__default.default.createElement(
10862
10882
  "div",
10863
10883
  {
10864
10884
  key: index,
10865
10885
  className: "h-72 animate-pulse rounded-2xl border border-slate-200 bg-slate-100"
10866
10886
  }
10867
- ))), !isLoading && wishlistCount === 0 && /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex min-h-[30vh] items-center justify-center" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "mx-auto flex h-20 w-20 items-center justify-center rounded-full bg-primary-100 text-primary-600" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "h-10 w-10" })), /* @__PURE__ */ React19__default.default.createElement("h2", { className: "mt-6 text-4xl font-bold text-slate-900" }, "Start your wellness wishlist"), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "mt-8 flex flex-wrap justify-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(Button, { onClick: () => router.push("/shop") }, "Discover products"), /* @__PURE__ */ React19__default.default.createElement(Button, { variant: "outline", onClick: () => router.push("/categories") }, "Browse categories")))), !isLoading && processedProducts.length > 0 && /* @__PURE__ */ React19__default.default.createElement(React19__default.default.Fragment, null, viewMode === "grid" ? /* @__PURE__ */ React19__default.default.createElement(
10887
+ ))), !isLoading && wishlistCount === 0 && /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex min-h-[30vh] items-center justify-center" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "mx-auto flex h-20 w-20 items-center justify-center rounded-full bg-primary-100 text-primary-600" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "h-10 w-10" })), /* @__PURE__ */ React20__default.default.createElement("h2", { className: "mt-6 text-4xl font-bold text-slate-900" }, "Start your wellness wishlist"), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "mt-8 flex flex-wrap justify-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(Button, { onClick: () => router.push("/shop") }, "Discover products"), /* @__PURE__ */ React20__default.default.createElement(Button, { variant: "outline", onClick: () => router.push("/categories") }, "Browse categories")))), !isLoading && processedProducts.length > 0 && /* @__PURE__ */ React20__default.default.createElement(React20__default.default.Fragment, null, viewMode === "grid" ? /* @__PURE__ */ React20__default.default.createElement(
10868
10888
  framerMotion.motion.div,
10869
10889
  {
10870
10890
  layout: true,
10871
10891
  className: "grid grid-cols-1 gap-5 sm:grid-cols-2 xl:grid-cols-3"
10872
10892
  },
10873
- /* @__PURE__ */ React19__default.default.createElement(framerMotion.AnimatePresence, null, processedProducts.map((product) => /* @__PURE__ */ React19__default.default.createElement(
10893
+ /* @__PURE__ */ React20__default.default.createElement(framerMotion.AnimatePresence, null, processedProducts.map((product) => /* @__PURE__ */ React20__default.default.createElement(
10874
10894
  framerMotion.motion.div,
10875
10895
  {
10876
10896
  key: product.id,
@@ -10880,17 +10900,17 @@ function WishlistScreen() {
10880
10900
  exit: { opacity: 0, y: -20 },
10881
10901
  transition: { duration: 0.2 }
10882
10902
  },
10883
- /* @__PURE__ */ React19__default.default.createElement(
10903
+ /* @__PURE__ */ React20__default.default.createElement(
10884
10904
  ProductCard,
10885
10905
  {
10886
10906
  product,
10887
- onClickProduct: (p) => router.push(`/products/${p.id}`),
10907
+ onClickProduct: (p) => router.push(buildPath(`/products/${p.id}`)),
10888
10908
  onFavorite: () => handleRemoveFromWishlist(product.id),
10889
10909
  isFavorited: true
10890
10910
  }
10891
10911
  )
10892
10912
  )))
10893
- ) : /* @__PURE__ */ React19__default.default.createElement(framerMotion.motion.div, { layout: true, className: "space-y-4" }, /* @__PURE__ */ React19__default.default.createElement(framerMotion.AnimatePresence, null, processedProducts.map((product) => /* @__PURE__ */ React19__default.default.createElement(
10913
+ ) : /* @__PURE__ */ React20__default.default.createElement(framerMotion.motion.div, { layout: true, className: "space-y-4" }, /* @__PURE__ */ React20__default.default.createElement(framerMotion.AnimatePresence, null, processedProducts.map((product) => /* @__PURE__ */ React20__default.default.createElement(
10894
10914
  framerMotion.motion.div,
10895
10915
  {
10896
10916
  key: product.id,
@@ -10901,7 +10921,7 @@ function WishlistScreen() {
10901
10921
  transition: { duration: 0.2 },
10902
10922
  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"
10903
10923
  },
10904
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative h-28 w-full overflow-hidden rounded-2xl bg-white sm:w-40" }, /* @__PURE__ */ React19__default.default.createElement(
10924
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative h-28 w-full overflow-hidden rounded-2xl bg-white sm:w-40" }, /* @__PURE__ */ React20__default.default.createElement(
10905
10925
  Image3__default.default,
10906
10926
  {
10907
10927
  fill: true,
@@ -10910,14 +10930,14 @@ function WishlistScreen() {
10910
10930
  className: "h-full w-full object-cover"
10911
10931
  }
10912
10932
  )),
10913
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-1 flex-col gap-2" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap items-center justify-between gap-3" }, /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, product.name), /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm text-slate-500" }, product.parentCategories?.map((category) => category?.name).join(", ") || "General wellness")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "text-right" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-lg font-bold text-primary-600" }, formatPrice(product.finalPrice ?? 0)), product.isDiscounted && /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-xs text-emerald-500" }, "You save ", formatPrice(Math.max((product.priceBeforeDiscount ?? 0) - (product.finalPrice ?? 0), 0))))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap items-center gap-3 text-xs text-slate-500" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.Package, { className: "h-3.5 w-3.5" }), product.inventoryCount > 0 ? "In stock" : "Backordered"), product.totalSold > 0 && /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.Sparkles, { className: "h-3.5 w-3.5" }), product.totalSold, "+ purchased")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, /* @__PURE__ */ React19__default.default.createElement(
10933
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-1 flex-col gap-2" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap items-center justify-between gap-3" }, /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-lg font-semibold text-slate-900" }, product.name), /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm text-slate-500" }, product.parentCategories?.map((category) => category?.name).join(", ") || "General wellness")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "text-right" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-lg font-bold text-primary-600" }, formatPrice(product.finalPrice ?? 0)), product.isDiscounted && /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-xs text-emerald-500" }, "You save ", formatPrice(Math.max((product.priceBeforeDiscount ?? 0) - (product.finalPrice ?? 0), 0))))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap items-center gap-3 text-xs text-slate-500" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.Package, { className: "h-3.5 w-3.5" }), product.inventoryCount > 0 ? "In stock" : "Backordered"), product.totalSold > 0 && /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.Sparkles, { className: "h-3.5 w-3.5" }), product.totalSold, "+ purchased")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, /* @__PURE__ */ React20__default.default.createElement(
10914
10934
  Button,
10915
10935
  {
10916
10936
  size: "sm",
10917
10937
  onClick: () => router.push(`/products/${product.id}`)
10918
10938
  },
10919
10939
  "View details"
10920
- ), /* @__PURE__ */ React19__default.default.createElement(
10940
+ ), /* @__PURE__ */ React20__default.default.createElement(
10921
10941
  Button,
10922
10942
  {
10923
10943
  size: "sm",
@@ -10927,19 +10947,20 @@ function WishlistScreen() {
10927
10947
  },
10928
10948
  "Remove"
10929
10949
  )))
10930
- ))))), isAuthenticated && emptyAfterFiltering && /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-slate-200 text-slate-500" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Package, { className: "h-8 w-8" })), /* @__PURE__ */ React19__default.default.createElement("h3", { className: "mt-6 text-2xl font-semibold text-slate-900" }, "Nothing matches those filters"), /* @__PURE__ */ React19__default.default.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__default.default.createElement(Button, { className: "mt-6", variant: "outline", onClick: () => setOnlyInStock(false) }, "Show all saved products"))))
10950
+ ))))), isAuthenticated && emptyAfterFiltering && /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-slate-200 text-slate-500" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Package, { className: "h-8 w-8" })), /* @__PURE__ */ React20__default.default.createElement("h3", { className: "mt-6 text-2xl font-semibold text-slate-900" }, "Nothing matches those filters"), /* @__PURE__ */ React20__default.default.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__default.default.createElement(Button, { className: "mt-6", variant: "outline", onClick: () => setOnlyInStock(false) }, "Show all saved products"))))
10931
10951
  ))));
10932
10952
  }
10933
10953
  function SearchPage() {
10934
10954
  const router = navigation.useRouter();
10955
+ const { buildPath } = useBasePath();
10935
10956
  const searchParams = navigation.useSearchParams();
10936
10957
  const searchQuery = searchParams.get("q") || "";
10937
- const [products, setProducts] = React19.useState([]);
10938
- const [isLoading, setIsLoading] = React19.useState(true);
10939
- const [searchInput, setSearchInput] = React19.useState(searchQuery);
10940
- const [hasSearched, setHasSearched] = React19.useState(false);
10958
+ const [products, setProducts] = React20.useState([]);
10959
+ const [isLoading, setIsLoading] = React20.useState(true);
10960
+ const [searchInput, setSearchInput] = React20.useState(searchQuery);
10961
+ const [hasSearched, setHasSearched] = React20.useState(false);
10941
10962
  const { isInWishlist } = useWishlist();
10942
- React19.useEffect(() => {
10963
+ React20.useEffect(() => {
10943
10964
  const fetchSearchResults = async () => {
10944
10965
  if (!searchQuery.trim()) {
10945
10966
  setProducts([]);
@@ -11032,38 +11053,38 @@ function SearchPage() {
11032
11053
  {
11033
11054
  product,
11034
11055
  isFavorited: isInWishlist(product.id),
11035
- onClickProduct: (p) => router.push(`/products/${p.id}`)
11056
+ onClickProduct: (p) => router.push(buildPath(`/products/${p.id}`))
11036
11057
  }
11037
11058
  ))) : 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__default.default, { 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"))));
11038
11059
  }
11039
11060
  function CategoriesScreen() {
11040
11061
  const { categories, isLoading } = useCategories();
11041
11062
  const router = navigation.useRouter();
11042
- return /* @__PURE__ */ React19__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement(
11063
+ return /* @__PURE__ */ React20__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement(
11043
11064
  framerMotion.motion.div,
11044
11065
  {
11045
11066
  initial: { opacity: 0, y: 24 },
11046
11067
  animate: { opacity: 1, y: 0 },
11047
11068
  className: "space-y-6"
11048
11069
  },
11049
- /* @__PURE__ */ React19__default.default.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__default.default.createElement(lucideReact.Package, { className: "h-4 w-4" }), "Product Categories"),
11050
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React19__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Browse Our Product Range"), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur" }, /* @__PURE__ */ React19__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick tip"), /* @__PURE__ */ React19__default.default.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.")))
11051
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative -mt-16 pb-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement(
11070
+ /* @__PURE__ */ React20__default.default.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__default.default.createElement(lucideReact.Package, { className: "h-4 w-4" }), "Product Categories"),
11071
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React20__default.default.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Browse Our Product Range"), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "rounded-3xl bg-white/15 p-6 backdrop-blur" }, /* @__PURE__ */ React20__default.default.createElement("p", { className: "text-sm font-semibold uppercase tracking-[0.35em] text-white/70" }, "Quick tip"), /* @__PURE__ */ React20__default.default.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.")))
11072
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative -mt-16 pb-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement(
11052
11073
  framerMotion.motion.div,
11053
11074
  {
11054
11075
  initial: { opacity: 0, y: 24 },
11055
11076
  animate: { opacity: 1, y: 0 },
11056
11077
  className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50"
11057
11078
  },
11058
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3 text-sm text-slate-500 mb-6" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "Browse our complete product catalog organized by categories.")),
11059
- isLoading ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6" }, [...Array(8)].map((_, i) => /* @__PURE__ */ React19__default.default.createElement("div", { key: i, className: "animate-pulse" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "bg-gray-200 rounded-lg aspect-square mb-2" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "h-4 bg-gray-200 rounded w-3/4 mb-1" }), /* @__PURE__ */ React19__default.default.createElement("div", { className: "h-3 bg-gray-200 rounded w-1/2" })))) : categories.length > 0 ? /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6" }, categories.map((category) => /* @__PURE__ */ React19__default.default.createElement(
11079
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3 text-sm text-slate-500 mb-6" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "Browse our complete product catalog organized by categories.")),
11080
+ isLoading ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6" }, [...Array(8)].map((_, i) => /* @__PURE__ */ React20__default.default.createElement("div", { key: i, className: "animate-pulse" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "bg-gray-200 rounded-lg aspect-square mb-2" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "h-4 bg-gray-200 rounded w-3/4 mb-1" }), /* @__PURE__ */ React20__default.default.createElement("div", { className: "h-3 bg-gray-200 rounded w-1/2" })))) : categories.length > 0 ? /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6" }, categories.map((category) => /* @__PURE__ */ React20__default.default.createElement(
11060
11081
  Link8__default.default,
11061
11082
  {
11062
11083
  key: category.id,
11063
11084
  href: `/shop?category=${category.name}`,
11064
11085
  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"
11065
11086
  },
11066
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative aspect-square w-full overflow-hidden rounded-lg bg-gray-50 mb-3" }, category.image ? /* @__PURE__ */ React19__default.default.createElement(
11087
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative aspect-square w-full overflow-hidden rounded-lg bg-gray-50 mb-3" }, category.image ? /* @__PURE__ */ React20__default.default.createElement(
11067
11088
  Image3__default.default,
11068
11089
  {
11069
11090
  src: category.image,
@@ -11072,10 +11093,10 @@ function CategoriesScreen() {
11072
11093
  className: "object-cover transition-transform group-hover:scale-105",
11073
11094
  sizes: "(max-width: 768px) 50vw, (max-width: 1200px) 33vw, 25vw"
11074
11095
  }
11075
- ) : /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex h-full w-full items-center justify-center bg-gray-100 text-gray-400" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Package, { className: "h-12 w-12" }))),
11076
- /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900 group-hover:text-primary-600 transition-colors" }, category.name),
11077
- category.productCount > 0 && /* @__PURE__ */ React19__default.default.createElement("p", { className: "mt-1 text-sm text-gray-500" }, category.productCount, " ", category.productCount === 1 ? "product" : "products")
11078
- ))) : /* @__PURE__ */ React19__default.default.createElement(
11096
+ ) : /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex h-full w-full items-center justify-center bg-gray-100 text-gray-400" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Package, { className: "h-12 w-12" }))),
11097
+ /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900 group-hover:text-primary-600 transition-colors" }, category.name),
11098
+ category.productCount > 0 && /* @__PURE__ */ React20__default.default.createElement("p", { className: "mt-1 text-sm text-gray-500" }, category.productCount, " ", category.productCount === 1 ? "product" : "products")
11099
+ ))) : /* @__PURE__ */ React20__default.default.createElement(
11079
11100
  EmptyState,
11080
11101
  {
11081
11102
  title: "No categories found",
@@ -11089,7 +11110,7 @@ function CategoriesScreen() {
11089
11110
  }
11090
11111
  function NewAddressPage() {
11091
11112
  const router = navigation.useRouter();
11092
- const [isSubmitting, setIsSubmitting] = React19.useState(false);
11113
+ const [isSubmitting, setIsSubmitting] = React20.useState(false);
11093
11114
  const {
11094
11115
  register,
11095
11116
  handleSubmit,
@@ -11231,9 +11252,9 @@ function Header() {
11231
11252
  const { cart } = useCart() || { cart: { } };
11232
11253
  const { getWishlistCount } = useWishlist();
11233
11254
  const wishlistCount = getWishlistCount?.() || 0;
11234
- const [isMobileMenuOpen, setIsMobileMenuOpen] = React19.useState(false);
11235
- const [isSearchOpen, setIsSearchOpen] = React19.useState(false);
11236
- const [searchQuery, setSearchQuery] = React19.useState("");
11255
+ const [isMobileMenuOpen, setIsMobileMenuOpen] = React20.useState(false);
11256
+ const [isSearchOpen, setIsSearchOpen] = React20.useState(false);
11257
+ const [searchQuery, setSearchQuery] = React20.useState("");
11237
11258
  const navLinks = [
11238
11259
  { href: "/shop", label: "Shop" },
11239
11260
  { href: "/categories", label: "Categories" },
@@ -11241,7 +11262,7 @@ function Header() {
11241
11262
  { href: "/about", label: "About" },
11242
11263
  { href: "/contact", label: "Contact" }
11243
11264
  ];
11244
- return /* @__PURE__ */ React19__default.default.createElement("header", { className: "sticky top-0 z-40 bg-white/80 backdrop-blur-xl border-b border-gray-200 shadow-sm" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center justify-between h-20" }, /* @__PURE__ */ React19__default.default.createElement(Link8__default.default, { href: "/", className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative w-12 h-12" }, /* @__PURE__ */ React19__default.default.createElement(
11265
+ return /* @__PURE__ */ React20__default.default.createElement("header", { className: "sticky top-0 z-40 bg-white/80 backdrop-blur-xl border-b border-gray-200 shadow-sm" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center justify-between h-20" }, /* @__PURE__ */ React20__default.default.createElement(Link8__default.default, { href: "/", className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative w-12 h-12" }, /* @__PURE__ */ React20__default.default.createElement(
11245
11266
  Image3__default.default,
11246
11267
  {
11247
11268
  src: config.logo,
@@ -11249,7 +11270,7 @@ function Header() {
11249
11270
  fill: true,
11250
11271
  className: "object-contain"
11251
11272
  }
11252
- )), /* @__PURE__ */ React19__default.default.createElement("span", { className: "text-2xl font-bold text-gray-900 hidden sm:block" }, config.storeName)), /* @__PURE__ */ React19__default.default.createElement("nav", { className: "hidden lg:flex items-center gap-8" }, navLinks.map((link) => /* @__PURE__ */ React19__default.default.createElement(
11273
+ )), /* @__PURE__ */ React20__default.default.createElement("span", { className: "text-2xl font-bold text-gray-900 hidden sm:block" }, config.storeName)), /* @__PURE__ */ React20__default.default.createElement("nav", { className: "hidden lg:flex items-center gap-8" }, navLinks.map((link) => /* @__PURE__ */ React20__default.default.createElement(
11253
11274
  Link8__default.default,
11254
11275
  {
11255
11276
  key: link.href,
@@ -11257,16 +11278,16 @@ function Header() {
11257
11278
  className: "text-gray-700 hover:text-primary-600 font-medium transition-colors relative group"
11258
11279
  },
11259
11280
  link.label,
11260
- /* @__PURE__ */ React19__default.default.createElement("span", { className: "absolute bottom-0 left-0 w-0 h-0.5 bg-primary-600 group-hover:w-full transition-all duration-300" })
11261
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React19__default.default.createElement(
11281
+ /* @__PURE__ */ React20__default.default.createElement("span", { className: "absolute bottom-0 left-0 w-0 h-0.5 bg-primary-600 group-hover:w-full transition-all duration-300" })
11282
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React20__default.default.createElement(
11262
11283
  "button",
11263
11284
  {
11264
11285
  onClick: () => setIsSearchOpen(!isSearchOpen),
11265
11286
  className: "p-2 hover:bg-gray-100 rounded-lg transition-colors",
11266
11287
  "aria-label": "Search"
11267
11288
  },
11268
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Search, { className: "w-5 h-5 text-gray-700" })
11269
- ), /* @__PURE__ */ React19__default.default.createElement(framerMotion.AnimatePresence, null, isSearchOpen && /* @__PURE__ */ React19__default.default.createElement(
11289
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Search, { className: "w-5 h-5 text-gray-700" })
11290
+ ), /* @__PURE__ */ React20__default.default.createElement(framerMotion.AnimatePresence, null, isSearchOpen && /* @__PURE__ */ React20__default.default.createElement(
11270
11291
  framerMotion.motion.div,
11271
11292
  {
11272
11293
  initial: { opacity: 0, width: 0 },
@@ -11274,7 +11295,7 @@ function Header() {
11274
11295
  exit: { opacity: 0, width: 0 },
11275
11296
  className: "absolute right-0 top-full mt-2 bg-white rounded-lg shadow-lg overflow-hidden"
11276
11297
  },
11277
- /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center p-2 w-64" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Search, { className: "w-5 h-5 text-gray-400 mr-2" }), /* @__PURE__ */ React19__default.default.createElement(
11298
+ /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center p-2 w-64" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Search, { className: "w-5 h-5 text-gray-400 mr-2" }), /* @__PURE__ */ React20__default.default.createElement(
11278
11299
  "input",
11279
11300
  {
11280
11301
  type: "text",
@@ -11289,36 +11310,36 @@ function Header() {
11289
11310
  className: "w-full outline-none text-gray-700",
11290
11311
  autoFocus: true
11291
11312
  }
11292
- ), searchQuery && /* @__PURE__ */ React19__default.default.createElement(
11313
+ ), searchQuery && /* @__PURE__ */ React20__default.default.createElement(
11293
11314
  "button",
11294
11315
  {
11295
11316
  onClick: () => setSearchQuery(""),
11296
11317
  className: "text-gray-400 hover:text-gray-600"
11297
11318
  },
11298
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.X, { className: "w-4 h-4" })
11319
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.X, { className: "w-4 h-4" })
11299
11320
  ))
11300
- ))), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React19__default.default.createElement(Link8__default.default, { href: "/wishlist", className: "relative p-2 text-gray-700 hover:text-red-500 transition-colors" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Heart, { className: "w-6 h-6" }), wishlistCount > 0 && /* @__PURE__ */ React19__default.default.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__default.default.createElement(Link8__default.default, { href: "/cart", className: "relative p-2 text-gray-700 hover:text-primary-600 transition-colors" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.ShoppingCart, { className: "w-6 h-6" }), cart?.cartBody?.items?.length && cart.cartBody?.items?.length > 0 ? /* @__PURE__ */ React19__default.default.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__default.default.createElement(
11321
+ ))), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React20__default.default.createElement(Link8__default.default, { href: "/wishlist", className: "relative p-2 text-gray-700 hover:text-red-500 transition-colors" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Heart, { className: "w-6 h-6" }), wishlistCount > 0 && /* @__PURE__ */ React20__default.default.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__default.default.createElement(Link8__default.default, { href: "/cart", className: "relative p-2 text-gray-700 hover:text-primary-600 transition-colors" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.ShoppingCart, { className: "w-6 h-6" }), cart?.cartBody?.items?.length && cart.cartBody?.items?.length > 0 ? /* @__PURE__ */ React20__default.default.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__default.default.createElement(
11301
11322
  Link8__default.default,
11302
11323
  {
11303
11324
  href: "/account",
11304
11325
  className: "p-2 hover:bg-gray-100 rounded-lg transition-colors"
11305
11326
  },
11306
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.User, { className: "w-6 h-6 text-gray-700" })
11307
- ) : /* @__PURE__ */ React19__default.default.createElement(
11327
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.User, { className: "w-6 h-6 text-gray-700" })
11328
+ ) : /* @__PURE__ */ React20__default.default.createElement(
11308
11329
  Link8__default.default,
11309
11330
  {
11310
11331
  href: "/login",
11311
11332
  className: "hidden sm:block px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 transition-colors font-medium"
11312
11333
  },
11313
11334
  "Sign In"
11314
- )), /* @__PURE__ */ React19__default.default.createElement(
11335
+ )), /* @__PURE__ */ React20__default.default.createElement(
11315
11336
  "button",
11316
11337
  {
11317
11338
  className: "lg:hidden p-2 hover:bg-gray-100 rounded-lg transition-colors",
11318
11339
  onClick: () => setIsMobileMenuOpen(!isMobileMenuOpen)
11319
11340
  },
11320
- isMobileMenuOpen ? /* @__PURE__ */ React19__default.default.createElement(lucideReact.X, { className: "w-6 h-6" }) : /* @__PURE__ */ React19__default.default.createElement(lucideReact.Menu, { className: "w-6 h-6" })
11321
- )), /* @__PURE__ */ React19__default.default.createElement(framerMotion.AnimatePresence, null, isMobileMenuOpen && /* @__PURE__ */ React19__default.default.createElement(
11341
+ isMobileMenuOpen ? /* @__PURE__ */ React20__default.default.createElement(lucideReact.X, { className: "w-6 h-6" }) : /* @__PURE__ */ React20__default.default.createElement(lucideReact.Menu, { className: "w-6 h-6" })
11342
+ )), /* @__PURE__ */ React20__default.default.createElement(framerMotion.AnimatePresence, null, isMobileMenuOpen && /* @__PURE__ */ React20__default.default.createElement(
11322
11343
  framerMotion.motion.div,
11323
11344
  {
11324
11345
  initial: { opacity: 0, height: 0 },
@@ -11326,7 +11347,7 @@ function Header() {
11326
11347
  exit: { opacity: 0, height: 0 },
11327
11348
  className: "lg:hidden overflow-hidden border-t border-gray-200"
11328
11349
  },
11329
- /* @__PURE__ */ React19__default.default.createElement("nav", { className: "flex flex-col gap-1 py-2" }, navLinks.map((link) => /* @__PURE__ */ React19__default.default.createElement(
11350
+ /* @__PURE__ */ React20__default.default.createElement("nav", { className: "flex flex-col gap-1 py-2" }, navLinks.map((link) => /* @__PURE__ */ React20__default.default.createElement(
11330
11351
  Link8__default.default,
11331
11352
  {
11332
11353
  key: link.href,
@@ -11335,7 +11356,7 @@ function Header() {
11335
11356
  onClick: () => setIsMobileMenuOpen(false)
11336
11357
  },
11337
11358
  link.label
11338
- )), !isAuthenticated && /* @__PURE__ */ React19__default.default.createElement(
11359
+ )), !isAuthenticated && /* @__PURE__ */ React20__default.default.createElement(
11339
11360
  Link8__default.default,
11340
11361
  {
11341
11362
  href: "/login",
@@ -11367,48 +11388,48 @@ function Footer() {
11367
11388
  { label: "Shipping Info", href: "/shipping" },
11368
11389
  { label: "Returns", href: "/returns" }
11369
11390
  ]};
11370
- return /* @__PURE__ */ React19__default.default.createElement("footer", { className: "bg-gray-900 text-gray-300" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-12" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "lg:col-span-2" }, /* @__PURE__ */ React19__default.default.createElement("h3", { className: "text-2xl font-bold text-white mb-4" }, config.storeName), /* @__PURE__ */ React19__default.default.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__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Mail, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "support@", config.storeName.toLowerCase().replace(/\s+/g, ""), ".com")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.Phone, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "+1 (555) 123-4567")), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React19__default.default.createElement(lucideReact.MapPin, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React19__default.default.createElement("span", null, "123 Store Street, City, Country")))), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Shop"), /* @__PURE__ */ React19__default.default.createElement("ul", { className: "space-y-2" }, footerLinks.shop.map((link) => /* @__PURE__ */ React19__default.default.createElement("li", { key: link.href }, /* @__PURE__ */ React19__default.default.createElement(
11391
+ return /* @__PURE__ */ React20__default.default.createElement("footer", { className: "bg-gray-900 text-gray-300" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "container mx-auto px-4 py-16" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-12" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "lg:col-span-2" }, /* @__PURE__ */ React20__default.default.createElement("h3", { className: "text-2xl font-bold text-white mb-4" }, config.storeName), /* @__PURE__ */ React20__default.default.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__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Mail, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "support@", config.storeName.toLowerCase().replace(/\s+/g, ""), ".com")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.Phone, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "+1 (555) 123-4567")), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React20__default.default.createElement(lucideReact.MapPin, { className: "w-5 h-5 text-primary-500" }), /* @__PURE__ */ React20__default.default.createElement("span", null, "123 Store Street, City, Country")))), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Shop"), /* @__PURE__ */ React20__default.default.createElement("ul", { className: "space-y-2" }, footerLinks.shop.map((link) => /* @__PURE__ */ React20__default.default.createElement("li", { key: link.href }, /* @__PURE__ */ React20__default.default.createElement(
11371
11392
  Link8__default.default,
11372
11393
  {
11373
11394
  href: link.href,
11374
11395
  className: "hover:text-primary-500 transition-colors"
11375
11396
  },
11376
11397
  link.label
11377
- ))))), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Account"), /* @__PURE__ */ React19__default.default.createElement("ul", { className: "space-y-2" }, footerLinks.account.map((link) => /* @__PURE__ */ React19__default.default.createElement("li", { key: link.href }, /* @__PURE__ */ React19__default.default.createElement(
11398
+ ))))), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Account"), /* @__PURE__ */ React20__default.default.createElement("ul", { className: "space-y-2" }, footerLinks.account.map((link) => /* @__PURE__ */ React20__default.default.createElement("li", { key: link.href }, /* @__PURE__ */ React20__default.default.createElement(
11378
11399
  Link8__default.default,
11379
11400
  {
11380
11401
  href: link.href,
11381
11402
  className: "hover:text-primary-500 transition-colors"
11382
11403
  },
11383
11404
  link.label
11384
- ))))), /* @__PURE__ */ React19__default.default.createElement("div", null, /* @__PURE__ */ React19__default.default.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Support"), /* @__PURE__ */ React19__default.default.createElement("ul", { className: "space-y-2" }, footerLinks.support.map((link) => /* @__PURE__ */ React19__default.default.createElement("li", { key: link.href }, /* @__PURE__ */ React19__default.default.createElement(
11405
+ ))))), /* @__PURE__ */ React20__default.default.createElement("div", null, /* @__PURE__ */ React20__default.default.createElement("h4", { className: "text-lg font-semibold text-white mb-4" }, "Support"), /* @__PURE__ */ React20__default.default.createElement("ul", { className: "space-y-2" }, footerLinks.support.map((link) => /* @__PURE__ */ React20__default.default.createElement("li", { key: link.href }, /* @__PURE__ */ React20__default.default.createElement(
11385
11406
  Link8__default.default,
11386
11407
  {
11387
11408
  href: link.href,
11388
11409
  className: "hover:text-primary-500 transition-colors"
11389
11410
  },
11390
11411
  link.label
11391
- )))))), /* @__PURE__ */ React19__default.default.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__default.default.createElement("p", { className: "text-gray-400 text-sm" }, "\xA9 ", (/* @__PURE__ */ new Date()).getFullYear(), " ", config.storeName, ". All rights reserved."), /* @__PURE__ */ React19__default.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React19__default.default.createElement(
11412
+ )))))), /* @__PURE__ */ React20__default.default.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__default.default.createElement("p", { className: "text-gray-400 text-sm" }, "\xA9 ", (/* @__PURE__ */ new Date()).getFullYear(), " ", config.storeName, ". All rights reserved."), /* @__PURE__ */ React20__default.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React20__default.default.createElement(
11392
11413
  "a",
11393
11414
  {
11394
11415
  href: "#",
11395
11416
  className: "w-10 h-10 bg-gray-800 hover:bg-primary-600 rounded-full flex items-center justify-center transition-colors"
11396
11417
  },
11397
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Facebook, { className: "w-5 h-5" })
11398
- ), /* @__PURE__ */ React19__default.default.createElement(
11418
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Facebook, { className: "w-5 h-5" })
11419
+ ), /* @__PURE__ */ React20__default.default.createElement(
11399
11420
  "a",
11400
11421
  {
11401
11422
  href: "#",
11402
11423
  className: "w-10 h-10 bg-gray-800 hover:bg-primary-600 rounded-full flex items-center justify-center transition-colors"
11403
11424
  },
11404
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Twitter, { className: "w-5 h-5" })
11405
- ), /* @__PURE__ */ React19__default.default.createElement(
11425
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Twitter, { className: "w-5 h-5" })
11426
+ ), /* @__PURE__ */ React20__default.default.createElement(
11406
11427
  "a",
11407
11428
  {
11408
11429
  href: "#",
11409
11430
  className: "w-10 h-10 bg-gray-800 hover:bg-primary-600 rounded-full flex items-center justify-center transition-colors"
11410
11431
  },
11411
- /* @__PURE__ */ React19__default.default.createElement(lucideReact.Instagram, { className: "w-5 h-5" })
11432
+ /* @__PURE__ */ React20__default.default.createElement(lucideReact.Instagram, { className: "w-5 h-5" })
11412
11433
  )))));
11413
11434
  }
11414
11435
 
@@ -11454,6 +11475,7 @@ exports.initializeApiAdapter = initializeApiAdapter;
11454
11475
  exports.truncate = truncate;
11455
11476
  exports.useAddresses = useAddresses;
11456
11477
  exports.useAuth = useAuth;
11478
+ exports.useBasePath = useBasePath;
11457
11479
  exports.useCart = useCart;
11458
11480
  exports.useCategories = useCategories;
11459
11481
  exports.useCurrentOrders = useCurrentOrders;