hey-pharmacist-ecommerce 1.1.8 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -4,7 +4,7 @@ import globalAxios4 from 'axios';
4
4
  import { Toaster, toast } from 'sonner';
5
5
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
6
6
  import { motion, AnimatePresence } from 'framer-motion';
7
- import { Heart, Sparkles, ShieldCheck, TrendingUp, Search, ArrowUpDown, ChevronDown, LayoutGrid, LayoutList, SlidersHorizontal, X, Clock, Package, ArrowLeft, ChevronRight, Shield, Truck, Award, Star, Check, Minus, Plus, ShoppingCart, Trash2, ShoppingBag, HeartPulse, BadgePercent, ArrowRight, Edit3, MapPin, CreditCard, Lock, PackageCheck, EyeOff, Eye, CheckCircle2, UserPlus, Mail, Phone, LogOut, Calendar, CalendarDays, Filter, ChevronLeft, ArrowUpRight, Warehouse, BellRing, Crown, User, Grid, List, Menu, Facebook, Twitter, Instagram, Globe, Home } from 'lucide-react';
7
+ import { Heart, Sparkles, ShieldCheck, TrendingUp, Search, ArrowUpDown, ChevronDown, LayoutGrid, LayoutList, SlidersHorizontal, X, Clock, Package, ArrowLeft, ChevronRight, Shield, Truck, Award, Star, Check, Minus, Plus, ShoppingCart, Trash2, ShoppingBag, ArrowRight, BadgePercent, HeartPulse, Edit3, MapPin, CreditCard, Lock, PackageCheck, EyeOff, Eye, CheckCircle2, UserPlus, Mail, Phone, LogOut, Calendar, CalendarDays, Filter, ChevronLeft, ArrowUpRight, Warehouse, BellRing, Crown, User, Grid, List, Menu, Facebook, Twitter, Instagram, Globe, Home } from 'lucide-react';
8
8
  import Image3 from 'next/image';
9
9
  import { useRouter, useSearchParams } from 'next/navigation';
10
10
  import dynamic from 'next/dynamic';
@@ -8644,16 +8644,86 @@ function CartScreen() {
8644
8644
  const { cart, isLoading } = useCart();
8645
8645
  const { buildPath } = useBasePath();
8646
8646
  if (!cart || cart.cartBody.items.length === 0) {
8647
- return /* @__PURE__ */ React21.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__ */ React21.createElement("div", { className: "mx-auto px-20 py-5 bg-white rounded-3xl" }, /* @__PURE__ */ React21.createElement(
8648
- EmptyState,
8647
+ const highlights = [
8649
8648
  {
8650
- icon: ShoppingBag,
8651
- title: "Your bag feels a little empty",
8652
- description: "Add pharmacy favorites to unlock quick shipping, curated bundles, and personalized recommendations.",
8653
- actionLabel: "Discover products",
8654
- onAction: () => router.push(buildPath("/shop"))
8649
+ icon: ShieldCheck,
8650
+ title: "Pharmacist approved",
8651
+ description: "Every product passes pharmacist review and cold-chain handling standards."
8652
+ },
8653
+ {
8654
+ icon: BadgePercent,
8655
+ title: "Bundle savings",
8656
+ description: "Unlock tiered discounts when you combine vitamins, OTC, and wellness kits."
8657
+ },
8658
+ {
8659
+ icon: HeartPulse,
8660
+ title: "Personalized guidance",
8661
+ description: "Follow curated collections tailored to your health goals and routines."
8655
8662
  }
8656
- )));
8663
+ ];
8664
+ return /* @__PURE__ */ React21.createElement("div", { className: "relative min-h-screen overflow-hidden bg-slate-950" }, /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))]" }), /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0" }, /* @__PURE__ */ React21.createElement("div", { className: "pointer-events-none absolute -top-24 -left-20 h-96 w-96 rounded-full bg-white/20 blur-3xl opacity-60" }), /* @__PURE__ */ React21.createElement("div", { className: "pointer-events-none absolute bottom-0 right-0 h-[28rem] w-[28rem] rounded-full bg-secondary-500/40 blur-[220px] opacity-70" })), /* @__PURE__ */ React21.createElement("div", { className: "relative z-10 flex min-h-screen items-center px-6 py-20" }, /* @__PURE__ */ React21.createElement("div", { className: "mx-auto grid w-full max-w-6xl gap-12 lg:grid-cols-[minmax(0,1.25fr)_minmax(0,1fr)] lg:items-center" }, /* @__PURE__ */ React21.createElement(
8665
+ motion.div,
8666
+ {
8667
+ initial: { opacity: 0, y: 24 },
8668
+ animate: { opacity: 1, y: 0 },
8669
+ transition: { duration: 0.4 },
8670
+ className: "space-y-8 text-white"
8671
+ },
8672
+ /* @__PURE__ */ React21.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.3em] text-white/80 backdrop-blur" }, /* @__PURE__ */ React21.createElement(ShoppingBag, { className: "h-4 w-4" }), "Cart status"),
8673
+ /* @__PURE__ */ React21.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React21.createElement("h1", { className: "text-4xl font-bold md:text-5xl" }, "Your wellness cart is waiting for a refill"), /* @__PURE__ */ React21.createElement("p", { className: "max-w-xl text-lg text-white/75" }, "Build a pharmacist-curated bundle with fast shipping, personalized recommendations, and exclusive member perks designed to keep you feeling your best.")),
8674
+ /* @__PURE__ */ React21.createElement("div", { className: "flex flex-wrap gap-4" }, /* @__PURE__ */ React21.createElement(
8675
+ Button,
8676
+ {
8677
+ size: "lg",
8678
+ className: "bg-white text-primary-700 shadow-xl shadow-white/30 hover:bg-white/90 hover:text-primary-700",
8679
+ onClick: () => router.push(buildPath("/shop"))
8680
+ },
8681
+ "Discover products",
8682
+ /* @__PURE__ */ React21.createElement(ArrowRight, { className: "h-5 w-5" })
8683
+ ), /* @__PURE__ */ React21.createElement(
8684
+ "button",
8685
+ {
8686
+ type: "button",
8687
+ onClick: () => router.push(buildPath("/categories")),
8688
+ className: "inline-flex items-center gap-2 rounded-full border border-white/40 px-5 py-3 text-sm font-semibold text-white/80 transition hover:border-white hover:bg-white/10"
8689
+ },
8690
+ "Browse categories",
8691
+ /* @__PURE__ */ React21.createElement(ArrowRight, { className: "h-4 w-4" })
8692
+ )),
8693
+ /* @__PURE__ */ React21.createElement("div", { className: "grid gap-4 sm:grid-cols-2" }, highlights.map(({ icon: Icon, title, description }) => /* @__PURE__ */ React21.createElement(
8694
+ "div",
8695
+ {
8696
+ key: title,
8697
+ className: "rounded-2xl border border-white/15 bg-white/10 p-5 backdrop-blur transition hover:border-white/25 hover:bg-white/15"
8698
+ },
8699
+ /* @__PURE__ */ React21.createElement(Icon, { className: "h-6 w-6 text-white/90" }),
8700
+ /* @__PURE__ */ React21.createElement("p", { className: "mt-3 text-sm font-semibold text-white" }, title),
8701
+ /* @__PURE__ */ React21.createElement("p", { className: "mt-1 text-xs text-white/70" }, description)
8702
+ )))
8703
+ ), /* @__PURE__ */ React21.createElement(
8704
+ motion.div,
8705
+ {
8706
+ initial: { opacity: 0, y: 24 },
8707
+ animate: { opacity: 1, y: 0 },
8708
+ transition: { delay: 0.1, duration: 0.4 },
8709
+ className: "rounded-[32px] border border-white/10 bg-white/10 p-10 backdrop-blur-2xl shadow-[0_40px_120px_-45px_rgba(12,5,40,0.6)]"
8710
+ },
8711
+ /* @__PURE__ */ React21.createElement("div", { className: "flex h-16 w-16 items-center justify-center rounded-2xl bg-white/20" }, /* @__PURE__ */ React21.createElement(ShoppingBag, { className: "h-8 w-8 text-white" })),
8712
+ /* @__PURE__ */ React21.createElement("h2", { className: "mt-6 text-3xl font-semibold text-white" }, "Still building your bag?"),
8713
+ /* @__PURE__ */ React21.createElement("p", { className: "mt-3 text-sm text-white/80" }, "Add supplements, wellness tools, and everyday pharmacy favorites to personalize your routine. We'll keep them chilled, curated, and ready for doorstep delivery."),
8714
+ /* @__PURE__ */ React21.createElement("ul", { className: "mt-6 space-y-3 text-sm text-white/80" }, /* @__PURE__ */ React21.createElement("li", { className: "flex items-center gap-2 rounded-xl bg-white/10 px-4 py-3" }, /* @__PURE__ */ React21.createElement(ShieldCheck, { className: "h-5 w-5 text-white" }), "Pharmacist oversight on every order"), /* @__PURE__ */ React21.createElement("li", { className: "flex items-center gap-2 rounded-xl bg-white/10 px-4 py-3" }, /* @__PURE__ */ React21.createElement(BadgePercent, { className: "h-5 w-5 text-white" }), "Member-only savings unlock at checkout"), /* @__PURE__ */ React21.createElement("li", { className: "flex items-center gap-2 rounded-xl bg-white/10 px-4 py-3" }, /* @__PURE__ */ React21.createElement(HeartPulse, { className: "h-5 w-5 text-white" }), "Personalized care plans for each purchase")),
8715
+ /* @__PURE__ */ React21.createElement(
8716
+ Button,
8717
+ {
8718
+ size: "lg",
8719
+ variant: "outline",
8720
+ className: "mt-8 w-full border-white/40 text-white hover:border-white hover:bg-white/10",
8721
+ onClick: () => router.push(buildPath("/shop"))
8722
+ },
8723
+ "Start building my cart",
8724
+ /* @__PURE__ */ React21.createElement(ArrowRight, { className: "h-5 w-5" })
8725
+ )
8726
+ ))));
8657
8727
  }
8658
8728
  const subtotal = cart.total;
8659
8729
  const shipping = 0;
@@ -9589,7 +9659,7 @@ function LoginScreen() {
9589
9659
  /* @__PURE__ */ React21.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React21.createElement("span", null, "Need an account?"), /* @__PURE__ */ React21.createElement(
9590
9660
  Link8,
9591
9661
  {
9592
- href: "/register",
9662
+ href: buildPath("/register"),
9593
9663
  className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-2 font-semibold transition hover:bg-white/25"
9594
9664
  },
9595
9665
  "Create one now",
@@ -9638,7 +9708,7 @@ function LoginScreen() {
9638
9708
  ), "Remember me"), /* @__PURE__ */ React21.createElement(
9639
9709
  Link8,
9640
9710
  {
9641
- href: "/forgot-password",
9711
+ href: buildPath("/forgot-password"),
9642
9712
  className: "font-medium text-primary-600 transition hover:text-primary-700"
9643
9713
  },
9644
9714
  "Forgot password?"
@@ -9715,7 +9785,7 @@ function RegisterScreen() {
9715
9785
  /* @__PURE__ */ React21.createElement("div", { className: "flex items-center gap-6 text-sm text-white/80" }, /* @__PURE__ */ React21.createElement("span", null, "Already part of the community?"), /* @__PURE__ */ React21.createElement(
9716
9786
  Link8,
9717
9787
  {
9718
- href: "/login",
9788
+ href: buildPath("/login"),
9719
9789
  className: "inline-flex items-center gap-2 rounded-full bg-white/15 px-4 py-2 font-semibold transition hover:bg-white/25"
9720
9790
  },
9721
9791
  "Sign in"
@@ -9807,10 +9877,10 @@ function RegisterScreen() {
9807
9877
  },
9808
9878
  showConfirmPassword ? /* @__PURE__ */ React21.createElement(EyeOff, { className: "h-5 w-5" }) : /* @__PURE__ */ React21.createElement(Eye, { className: "h-5 w-5" })
9809
9879
  )),
9810
- /* @__PURE__ */ React21.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4 text-sm text-slate-600" }, /* @__PURE__ */ React21.createElement(Shield, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React21.createElement("span", null, "By creating an account, you agree to our", " ", /* @__PURE__ */ React21.createElement(Link8, { href: "/terms", className: "font-semibold text-primary-600 hover:text-primary-700" }, "Terms of Service"), " ", "and", " ", /* @__PURE__ */ React21.createElement(
9880
+ /* @__PURE__ */ React21.createElement("div", { className: "flex items-start gap-3 rounded-2xl bg-slate-50 p-4 text-sm text-slate-600" }, /* @__PURE__ */ React21.createElement(Shield, { className: "mt-0.5 h-5 w-5 text-primary-500" }), /* @__PURE__ */ React21.createElement("span", null, "By creating an account, you agree to our", " ", /* @__PURE__ */ React21.createElement(Link8, { href: buildPath("/terms"), className: "font-semibold text-primary-600 hover:text-primary-700" }, "Terms of Service"), " ", "and", " ", /* @__PURE__ */ React21.createElement(
9811
9881
  Link8,
9812
9882
  {
9813
- href: "/privacy",
9883
+ href: buildPath("/privacy"),
9814
9884
  className: "font-semibold text-primary-600 hover:text-primary-700"
9815
9885
  },
9816
9886
  "Privacy Policy"