@burdenoff/microfe-atheletebridge 2026.625.1 → 2026.625.2

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.
Files changed (91) hide show
  1. package/dist/atheletebridge/pages/HomePage.js +272 -268
  2. package/dist/atheletebridge/pages/HomePage.js.map +1 -1
  3. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js +90 -82
  4. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js.map +1 -1
  5. package/dist/atheletebridge/pages/admin/AdminDashboard.js +76 -44
  6. package/dist/atheletebridge/pages/admin/AdminDashboard.js.map +1 -1
  7. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js +63 -55
  8. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js.map +1 -1
  9. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js +244 -237
  10. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js.map +1 -1
  11. package/dist/atheletebridge/pages/admin/AdminProfilePage.js +59 -57
  12. package/dist/atheletebridge/pages/admin/AdminProfilePage.js.map +1 -1
  13. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js +110 -106
  14. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js.map +1 -1
  15. package/dist/atheletebridge/pages/admin/CartManagementPage.js +166 -159
  16. package/dist/atheletebridge/pages/admin/CartManagementPage.js.map +1 -1
  17. package/dist/atheletebridge/pages/admin/UserManagementPage.js +310 -303
  18. package/dist/atheletebridge/pages/admin/UserManagementPage.js.map +1 -1
  19. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js +86 -81
  20. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  21. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js +170 -166
  22. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  23. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js +141 -109
  24. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  25. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js +139 -134
  26. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  27. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js +109 -107
  28. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
  29. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js +318 -318
  30. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  31. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js +262 -262
  32. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js.map +1 -1
  33. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js +170 -162
  34. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js.map +1 -1
  35. package/dist/atheletebridge/pages/common/HelpSupportPage.js +292 -298
  36. package/dist/atheletebridge/pages/common/HelpSupportPage.js.map +1 -1
  37. package/dist/atheletebridge/pages/common/NotificationCenterPage.js +99 -91
  38. package/dist/atheletebridge/pages/common/NotificationCenterPage.js.map +1 -1
  39. package/dist/atheletebridge/pages/common/SettingsPage.js +742 -734
  40. package/dist/atheletebridge/pages/common/SettingsPage.js.map +1 -1
  41. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js +364 -356
  42. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js.map +1 -1
  43. package/dist/atheletebridge/pages/customer/CartDetailPage.js +276 -241
  44. package/dist/atheletebridge/pages/customer/CartDetailPage.js.map +1 -1
  45. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js +260 -250
  46. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js.map +1 -1
  47. package/dist/atheletebridge/pages/customer/CheckoutPage.js +93 -89
  48. package/dist/atheletebridge/pages/customer/CheckoutPage.js.map +1 -1
  49. package/dist/atheletebridge/pages/customer/CustomerDashboard.js +430 -387
  50. package/dist/atheletebridge/pages/customer/CustomerDashboard.js.map +1 -1
  51. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js +526 -490
  52. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js.map +1 -1
  53. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js +523 -512
  54. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js.map +1 -1
  55. package/dist/atheletebridge/pages/customer/FavoritesPage.js +83 -75
  56. package/dist/atheletebridge/pages/customer/FavoritesPage.js.map +1 -1
  57. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js +116 -108
  58. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js.map +1 -1
  59. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js +65 -61
  60. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js.map +1 -1
  61. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js +80 -75
  62. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js.map +1 -1
  63. package/dist/atheletebridge/pages/customer/ReviewsPage.js +80 -72
  64. package/dist/atheletebridge/pages/customer/ReviewsPage.js.map +1 -1
  65. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js +62 -55
  66. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js.map +1 -1
  67. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js +93 -61
  68. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js.map +1 -1
  69. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js +89 -84
  70. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  71. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js +60 -55
  72. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js.map +1 -1
  73. package/dist/atheletebridge/pages/investor/InvestorDashboard.js +345 -311
  74. package/dist/atheletebridge/pages/investor/InvestorDashboard.js.map +1 -1
  75. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js +37 -32
  76. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  77. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js +75 -67
  78. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js.map +1 -1
  79. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js +385 -381
  80. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js.map +1 -1
  81. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js +352 -319
  82. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js.map +1 -1
  83. package/dist/atheletebridge/pages/worker/WorkerDashboard.js +353 -318
  84. package/dist/atheletebridge/pages/worker/WorkerDashboard.js.map +1 -1
  85. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js +133 -128
  86. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js.map +1 -1
  87. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js +81 -77
  88. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js.map +1 -1
  89. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js +352 -344
  90. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js.map +1 -1
  91. package/package.json +3 -3
@@ -4,24 +4,25 @@ import { PageLayout as n } from "../../components/PageLayout.js";
4
4
  import { useOrders as r } from "../../hooks/useAthleteBridgeApi.js";
5
5
  import { formatCurrency as i, formatDate as a } from "../../utils/formatters.js";
6
6
  import { useState as o } from "react";
7
- import { AlertTriangle as s, Award as c, BarChart3 as l, Bell as u, Camera as d, CheckCircle2 as f, ChevronRight as p, Edit3 as m, Heart as h, IndianRupee as g, MapPin as _, Save as v, Settings as y, Shield as b, ShoppingBag as x, User as S, UserCircle as C, X as w } from "lucide-react";
8
- import { jsx as T, jsxs as E } from "react/jsx-runtime";
7
+ import { AlertTriangle as s, Award as c, BarChart3 as l, Bell as ee, Camera as u, CheckCircle2 as d, ChevronRight as f, Edit3 as p, Heart as m, IndianRupee as h, MapPin as g, Save as _, Settings as v, Shield as y, ShoppingBag as b, User as x, UserCircle as S, X as C } from "lucide-react";
8
+ import { jsx as w, jsxs as T } from "react/jsx-runtime";
9
+ import { EmphasisPanel as E, NextSteps as D, PagePurpose as O } from "@burdenoff/fe-libs/ui";
9
10
  //#region src/atheletebridge/pages/customer/CustomerProfilePage.tsx
10
- var D = [
11
+ var k = [
11
12
  "vegetarian",
12
13
  "vegan",
13
14
  "jain",
14
15
  "keto",
15
16
  "gluten-free",
16
17
  "low-carb"
17
- ], O = [
18
+ ], A = [
18
19
  "nuts",
19
20
  "dairy",
20
21
  "eggs",
21
22
  "soy",
22
23
  "shellfish",
23
24
  "gluten"
24
- ], k = [{
25
+ ], j = [{
25
26
  id: "addr-1",
26
27
  label: "Home",
27
28
  street: "123, MG Road",
@@ -40,22 +41,22 @@ var D = [
40
41
  pincode: "560066",
41
42
  isDefault: !1
42
43
  }];
43
- function A() {
44
- let { navigateTo: A, currentUser: j } = e(), { data: M = [], isLoading: N } = r({ customerId: j?.id }), [P, F] = o("profile"), [I, L] = o(!1), R = {
45
- firstName: j?.firstName || j?.name?.split(" ")[0] || "Customer",
46
- lastName: j?.lastName || j?.name?.split(" ").slice(1).join(" ") || "",
47
- email: j?.email || "",
44
+ function M() {
45
+ let { navigateTo: M, currentUser: N } = e(), { data: P = [], isLoading: F } = r({ customerId: N?.id }), [I, L] = o("profile"), [R, z] = o(!1), B = {
46
+ firstName: N?.firstName || N?.name?.split(" ")[0] || "Customer",
47
+ lastName: N?.lastName || N?.name?.split(" ").slice(1).join(" ") || "",
48
+ email: N?.email || "",
48
49
  phone: "+91 98765 43210",
49
- profilePicture: j?.avatar,
50
+ profilePicture: N?.avatar,
50
51
  isEmailVerified: !0,
51
52
  isPhoneVerified: !0,
52
53
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
53
54
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
54
- }, [z, B] = o({
55
- firstName: R.firstName,
56
- lastName: R.lastName,
57
- email: R.email,
58
- phone: R.phone,
55
+ }, [V, H] = o({
56
+ firstName: B.firstName,
57
+ lastName: B.lastName,
58
+ email: B.email,
59
+ phone: B.phone,
59
60
  emergencyContact: {
60
61
  name: "Priya Sharma",
61
62
  phone: "+91 98765 43211",
@@ -69,60 +70,60 @@ function A() {
69
70
  newsletter: !1,
70
71
  sms: !0
71
72
  }
72
- }), [V, H] = o({ ...z }), U = {
73
- totalOrders: M.length,
74
- totalSpent: M.reduce((e, t) => e + t.total, 0),
75
- loyaltyPoints: Math.floor(M.reduce((e, t) => e + t.total, 0) / 10),
76
- avgOrderValue: M.length > 0 ? Math.floor(M.reduce((e, t) => e + t.total, 0) / M.length) : 0,
73
+ }), [U, W] = o({ ...V }), G = {
74
+ totalOrders: P.length,
75
+ totalSpent: P.reduce((e, t) => e + t.total, 0),
76
+ loyaltyPoints: Math.floor(P.reduce((e, t) => e + t.total, 0) / 10),
77
+ avgOrderValue: P.length > 0 ? Math.floor(P.reduce((e, t) => e + t.total, 0) / P.length) : 0,
77
78
  favoriteCategory: "South Indian",
78
- memberSince: R.createdAt
79
- }, W = N, G = () => {
80
- H({ ...z }), L(!0);
81
- }, K = () => {
82
- H({ ...z }), L(!1);
83
- }, q = () => {
84
- B({ ...V }), L(!1), alert("Profile updated successfully");
79
+ memberSince: B.createdAt
80
+ }, K = F, q = () => {
81
+ W({ ...V }), z(!0);
85
82
  }, J = () => {
86
- B({ ...V }), alert("Preferences saved successfully");
87
- }, Y = (e, t) => {
88
- H((n) => ({
83
+ W({ ...V }), z(!1);
84
+ }, Y = () => {
85
+ H({ ...U }), z(!1), alert("Profile updated successfully");
86
+ }, X = () => {
87
+ H({ ...U }), alert("Preferences saved successfully");
88
+ }, Z = (e, t) => {
89
+ W((n) => ({
89
90
  ...n,
90
91
  [e]: t
91
92
  }));
92
- }, X = (e, t) => {
93
- H((n) => ({
93
+ }, Q = (e, t) => {
94
+ W((n) => ({
94
95
  ...n,
95
96
  emergencyContact: {
96
97
  ...n.emergencyContact,
97
98
  [e]: t
98
99
  }
99
100
  }));
100
- }, Z = (e, t) => {
101
- H((n) => ({
101
+ }, te = (e, t) => {
102
+ W((n) => ({
102
103
  ...n,
103
104
  notifications: {
104
105
  ...n.notifications,
105
106
  [e]: t
106
107
  }
107
108
  }));
108
- }, Q = (e, t, n) => {
109
- H((r) => {
109
+ }, $ = (e, t, n) => {
110
+ W((r) => {
110
111
  let i = r[e], a = n ? [...i, t] : i.filter((e) => e !== t);
111
112
  return {
112
113
  ...r,
113
114
  [e]: a
114
115
  };
115
116
  });
116
- }, $ = [
117
+ }, ne = [
117
118
  {
118
119
  key: "profile",
119
120
  label: "Profile Info",
120
- icon: C
121
+ icon: S
121
122
  },
122
123
  {
123
124
  key: "preferences",
124
125
  label: "Preferences",
125
- icon: y
126
+ icon: v
126
127
  },
127
128
  {
128
129
  key: "stats",
@@ -130,492 +131,527 @@ function A() {
130
131
  icon: l
131
132
  }
132
133
  ];
133
- return W ? /* @__PURE__ */ T(n, {
134
+ return K ? /* @__PURE__ */ w(n, {
134
135
  title: "My Profile",
135
- children: /* @__PURE__ */ E("div", {
136
+ children: /* @__PURE__ */ T("div", {
136
137
  className: "flex flex-col items-center justify-center py-16 text-center",
137
- children: [/* @__PURE__ */ T("div", { className: "animate-spin rounded-full h-12 w-12 border-b-2 border-foreground mx-auto mb-4" }), /* @__PURE__ */ T("p", {
138
+ children: [/* @__PURE__ */ w("div", { className: "animate-spin rounded-full h-12 w-12 border-b-2 border-foreground mx-auto mb-4" }), /* @__PURE__ */ w("p", {
138
139
  className: "text-sm text-text-secondary",
139
140
  children: "Loading profile..."
140
141
  })]
141
142
  })
142
- }) : /* @__PURE__ */ E(n, {
143
+ }) : /* @__PURE__ */ T(n, {
143
144
  title: "My Profile",
144
145
  description: "Manage your personal information and preferences",
145
- children: [/* @__PURE__ */ E("div", {
146
- className: "flex flex-col items-center sm:flex-row sm:items-start gap-6 rounded-lg border border-border-subtle bg-bg-surface p-6",
147
- children: [
148
- /* @__PURE__ */ E("div", {
149
- className: "relative",
150
- children: [/* @__PURE__ */ T("div", {
151
- className: "h-24 w-24 rounded-full bg-bg-sunken overflow-hidden",
152
- children: R.profilePicture ? /* @__PURE__ */ T("img", {
153
- src: R.profilePicture,
154
- alt: `${R.firstName} ${R.lastName}`,
155
- className: "h-full w-full object-cover"
156
- }) : /* @__PURE__ */ T("div", {
157
- className: "flex h-full w-full items-center justify-center text-text-secondary",
158
- children: /* @__PURE__ */ T(S, { className: "h-10 w-10" })
159
- })
160
- }), /* @__PURE__ */ T("button", {
161
- type: "button",
162
- className: "absolute bottom-0 right-0 flex h-8 w-8 items-center justify-center rounded-full bg-foreground text-background shadow-sm hover:opacity-90 transition-opacity",
163
- children: /* @__PURE__ */ T(d, { className: "h-4 w-4" })
164
- })]
165
- }),
166
- /* @__PURE__ */ E("div", {
167
- className: "flex-1 text-center sm:text-left",
168
- children: [
169
- /* @__PURE__ */ E("h2", {
170
- className: "text-xl font-semibold text-text-primary",
171
- children: [
172
- z.firstName,
173
- " ",
174
- z.lastName
175
- ]
176
- }),
177
- /* @__PURE__ */ T("p", {
178
- className: "mt-1 text-sm text-text-secondary",
179
- children: z.email
180
- }),
181
- /* @__PURE__ */ T("p", {
182
- className: "mt-0.5 text-sm text-text-secondary",
183
- children: z.phone
184
- }),
185
- /* @__PURE__ */ E("div", {
186
- className: "flex flex-wrap items-center justify-center sm:justify-start gap-2 mt-2",
187
- children: [/* @__PURE__ */ E("span", {
188
- className: t("inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium", R.isEmailVerified ? "bg-green-500/20 text-green-600 dark:text-green-400" : "bg-status-error-bg/20 text-status-error-text"),
189
- children: [/* @__PURE__ */ T(f, { className: "h-3 w-3" }), R.isEmailVerified ? "Email Verified" : "Email Not Verified"]
190
- }), /* @__PURE__ */ E("span", {
191
- className: t("inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium", R.isPhoneVerified ? "bg-green-500/20 text-green-600 dark:text-green-400" : "bg-status-error-bg/20 text-status-error-text"),
192
- children: [/* @__PURE__ */ T(f, { className: "h-3 w-3" }), R.isPhoneVerified ? "Phone Verified" : "Phone Not Verified"]
193
- })]
194
- })
195
- ]
196
- }),
197
- /* @__PURE__ */ E("div", {
198
- className: "text-center sm:text-right",
199
- children: [/* @__PURE__ */ T("p", {
200
- className: "text-2xl font-bold text-text-primary",
201
- children: U.loyaltyPoints
202
- }), /* @__PURE__ */ T("p", {
203
- className: "text-xs text-text-secondary",
204
- children: "Loyalty Points"
205
- })]
206
- })
207
- ]
208
- }), /* @__PURE__ */ E("div", {
209
- className: "mt-6 rounded-lg border border-border-subtle bg-bg-surface",
210
- children: [/* @__PURE__ */ T("div", {
211
- className: "border-b border-border-subtle",
212
- children: /* @__PURE__ */ T("nav", {
213
- className: "flex -mb-px overflow-x-auto",
214
- children: $.map((e) => {
215
- let n = e.icon;
216
- return /* @__PURE__ */ E("button", {
217
- type: "button",
218
- className: t("flex items-center gap-2 py-3.5 px-5 text-sm font-medium whitespace-nowrap transition-colors", P === e.key ? "border-b-2 border-foreground text-text-primary" : "text-text-secondary hover:text-text-primary"),
219
- onClick: () => F(e.key),
220
- children: [/* @__PURE__ */ T(n, { className: "h-4 w-4" }), e.label]
221
- }, e.key);
222
- })
223
- })
224
- }), /* @__PURE__ */ E("div", {
225
- className: "p-5 md:p-6",
146
+ children: [
147
+ /* @__PURE__ */ w(O, {
148
+ className: "mb-6",
149
+ children: "Your account, your way. Keep your name and contact details up to date, verify your email and phone, manage notification preferences, and track your loyalty points and ordering stats — all from one place."
150
+ }),
151
+ /* @__PURE__ */ T(E, {
152
+ className: "flex flex-col items-center sm:flex-row sm:items-start gap-6 p-6",
226
153
  children: [
227
- P === "profile" && /* @__PURE__ */ E("div", {
228
- className: "space-y-6",
229
- children: [
230
- /* @__PURE__ */ E("div", {
231
- className: "flex justify-between items-center",
232
- children: [/* @__PURE__ */ T("h3", {
233
- className: "text-lg font-semibold text-text-primary",
234
- children: "Personal Information"
235
- }), I ? /* @__PURE__ */ E("div", {
236
- className: "flex gap-2",
237
- children: [/* @__PURE__ */ E("button", {
238
- type: "button",
239
- onClick: q,
240
- className: "flex items-center gap-1.5 rounded-lg bg-foreground px-3 py-1.5 text-xs font-medium text-background hover:opacity-90 transition-opacity",
241
- children: [/* @__PURE__ */ T(v, { className: "h-3 w-3" }), "Save"]
242
- }), /* @__PURE__ */ E("button", {
243
- type: "button",
244
- onClick: K,
245
- className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-accent transition-colors",
246
- children: [/* @__PURE__ */ T(w, { className: "h-3 w-3" }), "Cancel"]
247
- })]
248
- }) : /* @__PURE__ */ E("button", {
249
- type: "button",
250
- onClick: G,
251
- className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-accent transition-colors",
252
- children: [/* @__PURE__ */ T(m, { className: "h-3 w-3" }), "Edit Profile"]
253
- })]
254
- }),
255
- /* @__PURE__ */ E("div", {
256
- className: "grid grid-cols-1 md:grid-cols-2 gap-5",
257
- children: [
258
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
259
- className: "block text-sm font-medium text-text-primary mb-1.5",
260
- children: "First Name"
261
- }), /* @__PURE__ */ T("input", {
262
- type: "text",
263
- value: I ? V.firstName : z.firstName,
264
- onChange: (e) => Y("firstName", e.target.value),
265
- disabled: !I,
266
- className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !I && "bg-bg-sunken cursor-not-allowed", I && "bg-bg-surface")
267
- })] }),
268
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
269
- className: "block text-sm font-medium text-text-primary mb-1.5",
270
- children: "Last Name"
271
- }), /* @__PURE__ */ T("input", {
272
- type: "text",
273
- value: I ? V.lastName : z.lastName,
274
- onChange: (e) => Y("lastName", e.target.value),
275
- disabled: !I,
276
- className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !I && "bg-bg-sunken cursor-not-allowed", I && "bg-bg-surface")
277
- })] }),
278
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
279
- className: "block text-sm font-medium text-text-primary mb-1.5",
280
- children: "Email"
281
- }), /* @__PURE__ */ T("input", {
282
- type: "email",
283
- value: I ? V.email : z.email,
284
- onChange: (e) => Y("email", e.target.value),
285
- disabled: !I,
286
- className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !I && "bg-bg-sunken cursor-not-allowed", I && "bg-bg-surface")
287
- })] }),
288
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
289
- className: "block text-sm font-medium text-text-primary mb-1.5",
290
- children: "Phone"
291
- }), /* @__PURE__ */ T("input", {
292
- type: "tel",
293
- value: I ? V.phone : z.phone,
294
- onChange: (e) => Y("phone", e.target.value),
295
- disabled: !I,
296
- className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !I && "bg-bg-sunken cursor-not-allowed", I && "bg-bg-surface")
297
- })] })
298
- ]
299
- }),
300
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("h4", {
301
- className: "text-base font-semibold text-text-primary mb-3",
302
- children: "Primary Address"
303
- }), /* @__PURE__ */ E("div", {
304
- className: "rounded-lg bg-bg-sunken/50 p-4",
305
- children: [
306
- /* @__PURE__ */ T("p", {
307
- className: "text-sm font-medium text-text-primary",
308
- children: k[0].street
309
- }),
310
- /* @__PURE__ */ T("p", {
311
- className: "text-sm text-text-secondary",
312
- children: k[0].area
313
- }),
314
- /* @__PURE__ */ E("p", {
315
- className: "text-sm text-text-secondary",
316
- children: [
317
- k[0].city,
318
- ", ",
319
- k[0].state,
320
- " - ",
321
- k[0].pincode
322
- ]
323
- }),
324
- /* @__PURE__ */ E("button", {
325
- type: "button",
326
- onClick: () => A("/customer/addresses"),
327
- className: "mt-2 flex items-center gap-1 text-xs font-medium text-text-secondary hover:text-text-primary transition-colors",
328
- children: [
329
- /* @__PURE__ */ T(_, { className: "h-3 w-3" }),
330
- "Manage Addresses",
331
- /* @__PURE__ */ T(p, { className: "h-3 w-3" })
332
- ]
333
- })
334
- ]
335
- })] }),
336
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ E("h4", {
337
- className: "text-base font-semibold text-text-primary mb-3 flex items-center gap-2",
338
- children: [/* @__PURE__ */ T(s, { className: "h-4 w-4 text-text-secondary" }), "Emergency Contact"]
339
- }), /* @__PURE__ */ E("div", {
340
- className: "grid grid-cols-1 md:grid-cols-3 gap-4",
341
- children: [
342
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
343
- className: "block text-sm font-medium text-text-primary mb-1.5",
344
- children: "Name"
345
- }), /* @__PURE__ */ T("input", {
346
- type: "text",
347
- value: I ? V.emergencyContact.name : z.emergencyContact.name,
348
- onChange: (e) => X("name", e.target.value),
349
- disabled: !I,
350
- className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !I && "bg-bg-sunken cursor-not-allowed", I && "bg-bg-surface")
351
- })] }),
352
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
353
- className: "block text-sm font-medium text-text-primary mb-1.5",
354
- children: "Phone"
355
- }), /* @__PURE__ */ T("input", {
356
- type: "tel",
357
- value: I ? V.emergencyContact.phone : z.emergencyContact.phone,
358
- onChange: (e) => X("phone", e.target.value),
359
- disabled: !I,
360
- className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !I && "bg-bg-sunken cursor-not-allowed", I && "bg-bg-surface")
361
- })] }),
362
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
363
- className: "block text-sm font-medium text-text-primary mb-1.5",
364
- children: "Relationship"
365
- }), /* @__PURE__ */ T("input", {
366
- type: "text",
367
- value: I ? V.emergencyContact.relationship : z.emergencyContact.relationship,
368
- onChange: (e) => X("relationship", e.target.value),
369
- disabled: !I,
370
- className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !I && "bg-bg-sunken cursor-not-allowed", I && "bg-bg-surface")
371
- })] })
372
- ]
373
- })] }),
374
- I && /* @__PURE__ */ E("div", {
375
- className: "flex gap-3 pt-4 border-t border-border-subtle",
376
- children: [/* @__PURE__ */ E("button", {
377
- type: "button",
378
- onClick: q,
379
- className: "flex items-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
380
- children: [/* @__PURE__ */ T(v, { className: "h-4 w-4" }), "Save Changes"]
381
- }), /* @__PURE__ */ T("button", {
382
- type: "button",
383
- onClick: K,
384
- className: "flex items-center gap-2 rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
385
- children: "Cancel"
386
- })]
154
+ /* @__PURE__ */ T("div", {
155
+ className: "relative",
156
+ children: [/* @__PURE__ */ w("div", {
157
+ className: "h-24 w-24 rounded-full bg-bg-sunken overflow-hidden",
158
+ children: B.profilePicture ? /* @__PURE__ */ w("img", {
159
+ src: B.profilePicture,
160
+ alt: `${B.firstName} ${B.lastName}`,
161
+ className: "h-full w-full object-cover"
162
+ }) : /* @__PURE__ */ w("div", {
163
+ className: "flex h-full w-full items-center justify-center text-text-secondary",
164
+ children: /* @__PURE__ */ w(x, { className: "h-10 w-10" })
387
165
  })
388
- ]
166
+ }), /* @__PURE__ */ w("button", {
167
+ type: "button",
168
+ className: "absolute bottom-0 right-0 flex h-8 w-8 items-center justify-center rounded-full bg-foreground text-background shadow-sm hover:opacity-90 transition-opacity",
169
+ children: /* @__PURE__ */ w(u, { className: "h-4 w-4" })
170
+ })]
389
171
  }),
390
- P === "preferences" && /* @__PURE__ */ E("div", {
391
- className: "space-y-8",
172
+ /* @__PURE__ */ T("div", {
173
+ className: "flex-1 text-center sm:text-left",
392
174
  children: [
393
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ E("h3", {
394
- className: "text-lg font-semibold text-text-primary mb-4 flex items-center gap-2",
395
- children: [/* @__PURE__ */ T(u, { className: "h-4 w-4 text-text-secondary" }), "Notification Preferences"]
396
- }), /* @__PURE__ */ T("div", {
397
- className: "space-y-3",
175
+ /* @__PURE__ */ T("h2", {
176
+ className: "text-xl font-semibold text-text-primary",
398
177
  children: [
399
- {
400
- key: "orderUpdates",
401
- label: "Order status updates"
402
- },
403
- {
404
- key: "promotions",
405
- label: "Promotional offers and discounts"
406
- },
407
- {
408
- key: "newsletter",
409
- label: "Newsletter and food recommendations"
410
- },
411
- {
412
- key: "sms",
413
- label: "SMS notifications"
414
- }
415
- ].map((e) => /* @__PURE__ */ E("label", {
416
- className: "flex items-center gap-3 cursor-pointer",
417
- children: [/* @__PURE__ */ T("input", {
418
- type: "checkbox",
419
- checked: V.notifications[e.key],
420
- onChange: (t) => Z(e.key, t.target.checked),
421
- className: "h-4 w-4 rounded border-border-subtle text-text-primary focus:ring-[var(--color-focus-ring)]"
422
- }), /* @__PURE__ */ T("span", {
423
- className: "text-sm text-text-primary",
424
- children: e.label
425
- })]
426
- }, e.key))
427
- })] }),
428
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ E("h3", {
429
- className: "text-lg font-semibold text-text-primary mb-4 flex items-center gap-2",
430
- children: [/* @__PURE__ */ T(h, { className: "h-4 w-4 text-text-secondary" }), "Dietary Preferences"]
431
- }), /* @__PURE__ */ T("div", {
432
- className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-3",
433
- children: D.map((e) => /* @__PURE__ */ E("label", {
434
- className: "flex items-center gap-2 cursor-pointer",
435
- children: [/* @__PURE__ */ T("input", {
436
- type: "checkbox",
437
- checked: V.dietary.includes(e),
438
- onChange: (t) => Q("dietary", e, t.target.checked),
439
- className: "h-4 w-4 rounded border-border-subtle text-text-primary focus:ring-[var(--color-focus-ring)]"
440
- }), /* @__PURE__ */ T("span", {
441
- className: "text-sm text-text-primary capitalize",
442
- children: e
443
- })]
444
- }, e))
445
- })] }),
446
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ E("h3", {
447
- className: "text-lg font-semibold text-text-primary mb-4 flex items-center gap-2",
448
- children: [/* @__PURE__ */ T(s, { className: "h-4 w-4 text-status-error-text" }), "Food Allergies"]
449
- }), /* @__PURE__ */ T("div", {
450
- className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-3",
451
- children: O.map((e) => /* @__PURE__ */ E("label", {
452
- className: "flex items-center gap-2 cursor-pointer",
453
- children: [/* @__PURE__ */ T("input", {
454
- type: "checkbox",
455
- checked: V.allergies.includes(e),
456
- onChange: (t) => Q("allergies", e, t.target.checked),
457
- className: "h-4 w-4 rounded border-border-subtle text-status-error-text focus:ring-destructive"
458
- }), /* @__PURE__ */ T("span", {
459
- className: "text-sm text-text-primary capitalize",
460
- children: e
461
- })]
462
- }, e))
463
- })] }),
178
+ V.firstName,
179
+ " ",
180
+ V.lastName
181
+ ]
182
+ }),
183
+ /* @__PURE__ */ w("p", {
184
+ className: "mt-1 text-sm text-text-secondary",
185
+ children: V.email
186
+ }),
187
+ /* @__PURE__ */ w("p", {
188
+ className: "mt-0.5 text-sm text-text-secondary",
189
+ children: V.phone
190
+ }),
464
191
  /* @__PURE__ */ T("div", {
465
- className: "pt-4 border-t border-border-subtle",
466
- children: /* @__PURE__ */ E("button", {
467
- type: "button",
468
- onClick: J,
469
- className: "flex items-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
470
- children: [/* @__PURE__ */ T(v, { className: "h-4 w-4" }), "Save Preferences"]
471
- })
192
+ className: "flex flex-wrap items-center justify-center sm:justify-start gap-2 mt-2",
193
+ children: [/* @__PURE__ */ T("span", {
194
+ className: t("inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium", B.isEmailVerified ? "bg-green-500/20 text-green-600 dark:text-green-400" : "bg-status-error-bg/20 text-status-error-text"),
195
+ children: [/* @__PURE__ */ w(d, { className: "h-3 w-3" }), B.isEmailVerified ? "Email Verified" : "Email Not Verified"]
196
+ }), /* @__PURE__ */ T("span", {
197
+ className: t("inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium", B.isPhoneVerified ? "bg-green-500/20 text-green-600 dark:text-green-400" : "bg-status-error-bg/20 text-status-error-text"),
198
+ children: [/* @__PURE__ */ w(d, { className: "h-3 w-3" }), B.isPhoneVerified ? "Phone Verified" : "Phone Not Verified"]
199
+ })]
472
200
  })
473
201
  ]
474
202
  }),
475
- P === "stats" && /* @__PURE__ */ E("div", {
476
- className: "space-y-8",
477
- children: [/* @__PURE__ */ E("div", {
478
- className: "grid grid-cols-1 md:grid-cols-3 gap-4",
203
+ /* @__PURE__ */ T("div", {
204
+ className: "text-center sm:text-right",
205
+ children: [/* @__PURE__ */ w("p", {
206
+ className: "text-2xl font-bold text-text-primary",
207
+ children: G.loyaltyPoints
208
+ }), /* @__PURE__ */ w("p", {
209
+ className: "text-xs text-text-secondary",
210
+ children: "Loyalty Points"
211
+ })]
212
+ })
213
+ ]
214
+ }),
215
+ /* @__PURE__ */ w(D, {
216
+ className: "mt-6",
217
+ storageKey: "atheletebridge-customer-profile",
218
+ steps: [
219
+ {
220
+ id: "verify",
221
+ label: "Verify your email & phone",
222
+ description: "Verified contacts keep your account secure and unlock order updates.",
223
+ icon: /* @__PURE__ */ w(d, { className: "h-4 w-4" }),
224
+ onClick: () => L("profile"),
225
+ done: B.isEmailVerified && B.isPhoneVerified
226
+ },
227
+ {
228
+ id: "preferences",
229
+ label: "Set your notification preferences",
230
+ description: "Choose which order updates and offers you want to hear about.",
231
+ icon: /* @__PURE__ */ w(v, { className: "h-4 w-4" }),
232
+ onClick: () => L("preferences")
233
+ },
234
+ {
235
+ id: "addresses",
236
+ label: "Manage your saved addresses",
237
+ description: "Keep delivery locations current for faster checkout.",
238
+ icon: /* @__PURE__ */ w(S, { className: "h-4 w-4" }),
239
+ onClick: () => M("/customer/addresses")
240
+ }
241
+ ]
242
+ }),
243
+ /* @__PURE__ */ T("div", {
244
+ className: "mt-6 rounded-lg border border-border-subtle bg-bg-surface",
245
+ children: [/* @__PURE__ */ w("div", {
246
+ className: "border-b border-border-subtle",
247
+ children: /* @__PURE__ */ w("nav", {
248
+ className: "flex -mb-px overflow-x-auto",
249
+ children: ne.map((e) => {
250
+ let n = e.icon;
251
+ return /* @__PURE__ */ T("button", {
252
+ type: "button",
253
+ className: t("flex items-center gap-2 py-3.5 px-5 text-sm font-medium whitespace-nowrap transition-colors", I === e.key ? "border-b-2 border-foreground text-text-primary" : "text-text-secondary hover:text-text-primary"),
254
+ onClick: () => L(e.key),
255
+ children: [/* @__PURE__ */ w(n, { className: "h-4 w-4" }), e.label]
256
+ }, e.key);
257
+ })
258
+ })
259
+ }), /* @__PURE__ */ T("div", {
260
+ className: "p-5 md:p-6",
261
+ children: [
262
+ I === "profile" && /* @__PURE__ */ T("div", {
263
+ className: "space-y-6",
479
264
  children: [
480
- /* @__PURE__ */ E("div", {
481
- className: "rounded-lg bg-blue-500/10 p-5 border border-blue-500/20",
482
- children: [/* @__PURE__ */ E("div", {
483
- className: "flex items-center gap-2 mb-2",
484
- children: [/* @__PURE__ */ T(x, { className: "h-4 w-4 text-blue-600 dark:text-blue-400" }), /* @__PURE__ */ T("h4", {
485
- className: "text-sm font-medium text-blue-600 dark:text-blue-400",
486
- children: "Total Orders"
265
+ /* @__PURE__ */ T("div", {
266
+ className: "flex justify-between items-center",
267
+ children: [/* @__PURE__ */ w("h3", {
268
+ className: "text-lg font-semibold text-text-primary",
269
+ children: "Personal Information"
270
+ }), R ? /* @__PURE__ */ T("div", {
271
+ className: "flex gap-2",
272
+ children: [/* @__PURE__ */ T("button", {
273
+ type: "button",
274
+ onClick: Y,
275
+ className: "flex items-center gap-1.5 rounded-lg bg-foreground px-3 py-1.5 text-xs font-medium text-background hover:opacity-90 transition-opacity",
276
+ children: [/* @__PURE__ */ w(_, { className: "h-3 w-3" }), "Save"]
277
+ }), /* @__PURE__ */ T("button", {
278
+ type: "button",
279
+ onClick: J,
280
+ className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-accent transition-colors",
281
+ children: [/* @__PURE__ */ w(C, { className: "h-3 w-3" }), "Cancel"]
487
282
  })]
488
- }), /* @__PURE__ */ T("p", {
489
- className: "text-3xl font-bold text-blue-600 dark:text-blue-400",
490
- children: U.totalOrders
283
+ }) : /* @__PURE__ */ T("button", {
284
+ type: "button",
285
+ onClick: q,
286
+ className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-accent transition-colors",
287
+ children: [/* @__PURE__ */ w(p, { className: "h-3 w-3" }), "Edit Profile"]
491
288
  })]
492
289
  }),
493
- /* @__PURE__ */ E("div", {
494
- className: "rounded-lg bg-green-500/10 p-5 border border-green-500/20",
495
- children: [/* @__PURE__ */ E("div", {
496
- className: "flex items-center gap-2 mb-2",
497
- children: [/* @__PURE__ */ T(g, { className: "h-4 w-4 text-green-600 dark:text-green-400" }), /* @__PURE__ */ T("h4", {
498
- className: "text-sm font-medium text-green-600 dark:text-green-400",
499
- children: "Total Spent"
500
- })]
501
- }), /* @__PURE__ */ T("p", {
502
- className: "text-3xl font-bold text-green-600 dark:text-green-400",
503
- children: i(U.totalSpent, { minimumFractionDigits: 0 })
504
- })]
290
+ /* @__PURE__ */ T("div", {
291
+ className: "grid grid-cols-1 md:grid-cols-2 gap-5",
292
+ children: [
293
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("label", {
294
+ className: "block text-sm font-medium text-text-primary mb-1.5",
295
+ children: "First Name"
296
+ }), /* @__PURE__ */ w("input", {
297
+ type: "text",
298
+ value: R ? U.firstName : V.firstName,
299
+ onChange: (e) => Z("firstName", e.target.value),
300
+ disabled: !R,
301
+ className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !R && "bg-bg-sunken cursor-not-allowed", R && "bg-bg-surface")
302
+ })] }),
303
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("label", {
304
+ className: "block text-sm font-medium text-text-primary mb-1.5",
305
+ children: "Last Name"
306
+ }), /* @__PURE__ */ w("input", {
307
+ type: "text",
308
+ value: R ? U.lastName : V.lastName,
309
+ onChange: (e) => Z("lastName", e.target.value),
310
+ disabled: !R,
311
+ className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !R && "bg-bg-sunken cursor-not-allowed", R && "bg-bg-surface")
312
+ })] }),
313
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("label", {
314
+ className: "block text-sm font-medium text-text-primary mb-1.5",
315
+ children: "Email"
316
+ }), /* @__PURE__ */ w("input", {
317
+ type: "email",
318
+ value: R ? U.email : V.email,
319
+ onChange: (e) => Z("email", e.target.value),
320
+ disabled: !R,
321
+ className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !R && "bg-bg-sunken cursor-not-allowed", R && "bg-bg-surface")
322
+ })] }),
323
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("label", {
324
+ className: "block text-sm font-medium text-text-primary mb-1.5",
325
+ children: "Phone"
326
+ }), /* @__PURE__ */ w("input", {
327
+ type: "tel",
328
+ value: R ? U.phone : V.phone,
329
+ onChange: (e) => Z("phone", e.target.value),
330
+ disabled: !R,
331
+ className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !R && "bg-bg-sunken cursor-not-allowed", R && "bg-bg-surface")
332
+ })] })
333
+ ]
505
334
  }),
506
- /* @__PURE__ */ E("div", {
507
- className: "rounded-lg bg-purple-500/10 p-5 border border-purple-500/20",
508
- children: [/* @__PURE__ */ E("div", {
509
- className: "flex items-center gap-2 mb-2",
510
- children: [/* @__PURE__ */ T(c, { className: "h-4 w-4 text-purple-600 dark:text-purple-400" }), /* @__PURE__ */ T("h4", {
511
- className: "text-sm font-medium text-purple-600 dark:text-purple-400",
512
- children: "Loyalty Points"
513
- })]
514
- }), /* @__PURE__ */ T("p", {
515
- className: "text-3xl font-bold text-purple-600 dark:text-purple-400",
516
- children: U.loyaltyPoints
517
- })]
518
- })
519
- ]
520
- }), /* @__PURE__ */ E("div", {
521
- className: "grid grid-cols-1 md:grid-cols-2 gap-6",
522
- children: [/* @__PURE__ */ E("div", {
523
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
524
- children: [/* @__PURE__ */ E("h4", {
525
- className: "text-base font-semibold text-text-primary mb-4 flex items-center gap-2",
526
- children: [/* @__PURE__ */ T(l, { className: "h-4 w-4 text-text-secondary" }), "Order Statistics"]
527
- }), /* @__PURE__ */ E("div", {
528
- className: "space-y-3",
335
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("h4", {
336
+ className: "text-base font-semibold text-text-primary mb-3",
337
+ children: "Primary Address"
338
+ }), /* @__PURE__ */ T("div", {
339
+ className: "rounded-lg bg-bg-sunken/50 p-4",
529
340
  children: [
530
- /* @__PURE__ */ E("div", {
531
- className: "flex justify-between",
532
- children: [/* @__PURE__ */ T("span", {
533
- className: "text-sm text-text-secondary",
534
- children: "Average Order Value"
535
- }), /* @__PURE__ */ T("span", {
536
- className: "text-sm font-medium text-text-primary",
537
- children: i(U.avgOrderValue, { minimumFractionDigits: 0 })
538
- })]
341
+ /* @__PURE__ */ w("p", {
342
+ className: "text-sm font-medium text-text-primary",
343
+ children: j[0].street
539
344
  }),
540
- /* @__PURE__ */ E("div", {
541
- className: "flex justify-between",
542
- children: [/* @__PURE__ */ T("span", {
543
- className: "text-sm text-text-secondary",
544
- children: "Favorite Category"
545
- }), /* @__PURE__ */ T("span", {
546
- className: "text-sm font-medium text-text-primary",
547
- children: U.favoriteCategory
548
- })]
345
+ /* @__PURE__ */ w("p", {
346
+ className: "text-sm text-text-secondary",
347
+ children: j[0].area
549
348
  }),
550
- /* @__PURE__ */ E("div", {
551
- className: "flex justify-between",
552
- children: [/* @__PURE__ */ T("span", {
553
- className: "text-sm text-text-secondary",
554
- children: "Member Since"
555
- }), /* @__PURE__ */ T("span", {
556
- className: "text-sm font-medium text-text-primary",
557
- children: a(U.memberSince, {
558
- hour: void 0,
559
- minute: void 0,
560
- hour12: void 0
561
- })
562
- })]
349
+ /* @__PURE__ */ T("p", {
350
+ className: "text-sm text-text-secondary",
351
+ children: [
352
+ j[0].city,
353
+ ", ",
354
+ j[0].state,
355
+ " - ",
356
+ j[0].pincode
357
+ ]
358
+ }),
359
+ /* @__PURE__ */ T("button", {
360
+ type: "button",
361
+ onClick: () => M("/customer/addresses"),
362
+ className: "mt-2 flex items-center gap-1 text-xs font-medium text-text-secondary hover:text-text-primary transition-colors",
363
+ children: [
364
+ /* @__PURE__ */ w(g, { className: "h-3 w-3" }),
365
+ "Manage Addresses",
366
+ /* @__PURE__ */ w(f, { className: "h-3 w-3" })
367
+ ]
563
368
  })
564
369
  ]
565
- })]
566
- }), /* @__PURE__ */ E("div", {
567
- className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
568
- children: [/* @__PURE__ */ E("h4", {
569
- className: "text-base font-semibold text-text-primary mb-4 flex items-center gap-2",
570
- children: [/* @__PURE__ */ T(b, { className: "h-4 w-4 text-text-secondary" }), "Account Status"]
571
- }), /* @__PURE__ */ E("div", {
370
+ })] }),
371
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("h4", {
372
+ className: "text-base font-semibold text-text-primary mb-3 flex items-center gap-2",
373
+ children: [/* @__PURE__ */ w(s, { className: "h-4 w-4 text-text-secondary" }), "Emergency Contact"]
374
+ }), /* @__PURE__ */ T("div", {
375
+ className: "grid grid-cols-1 md:grid-cols-3 gap-4",
376
+ children: [
377
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("label", {
378
+ className: "block text-sm font-medium text-text-primary mb-1.5",
379
+ children: "Name"
380
+ }), /* @__PURE__ */ w("input", {
381
+ type: "text",
382
+ value: R ? U.emergencyContact.name : V.emergencyContact.name,
383
+ onChange: (e) => Q("name", e.target.value),
384
+ disabled: !R,
385
+ className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !R && "bg-bg-sunken cursor-not-allowed", R && "bg-bg-surface")
386
+ })] }),
387
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("label", {
388
+ className: "block text-sm font-medium text-text-primary mb-1.5",
389
+ children: "Phone"
390
+ }), /* @__PURE__ */ w("input", {
391
+ type: "tel",
392
+ value: R ? U.emergencyContact.phone : V.emergencyContact.phone,
393
+ onChange: (e) => Q("phone", e.target.value),
394
+ disabled: !R,
395
+ className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !R && "bg-bg-sunken cursor-not-allowed", R && "bg-bg-surface")
396
+ })] }),
397
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("label", {
398
+ className: "block text-sm font-medium text-text-primary mb-1.5",
399
+ children: "Relationship"
400
+ }), /* @__PURE__ */ w("input", {
401
+ type: "text",
402
+ value: R ? U.emergencyContact.relationship : V.emergencyContact.relationship,
403
+ onChange: (e) => Q("relationship", e.target.value),
404
+ disabled: !R,
405
+ className: t("w-full rounded-lg border border-border-subtle px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]", !R && "bg-bg-sunken cursor-not-allowed", R && "bg-bg-surface")
406
+ })] })
407
+ ]
408
+ })] }),
409
+ R && /* @__PURE__ */ T("div", {
410
+ className: "flex gap-3 pt-4 border-t border-border-subtle",
411
+ children: [/* @__PURE__ */ T("button", {
412
+ type: "button",
413
+ onClick: Y,
414
+ className: "flex items-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
415
+ children: [/* @__PURE__ */ w(_, { className: "h-4 w-4" }), "Save Changes"]
416
+ }), /* @__PURE__ */ w("button", {
417
+ type: "button",
418
+ onClick: J,
419
+ className: "flex items-center gap-2 rounded-lg border border-border-subtle px-4 py-2.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
420
+ children: "Cancel"
421
+ })]
422
+ })
423
+ ]
424
+ }),
425
+ I === "preferences" && /* @__PURE__ */ T("div", {
426
+ className: "space-y-8",
427
+ children: [
428
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("h3", {
429
+ className: "text-lg font-semibold text-text-primary mb-4 flex items-center gap-2",
430
+ children: [/* @__PURE__ */ w(ee, { className: "h-4 w-4 text-text-secondary" }), "Notification Preferences"]
431
+ }), /* @__PURE__ */ w("div", {
572
432
  className: "space-y-3",
573
433
  children: [
574
- /* @__PURE__ */ E("div", {
575
- className: "flex justify-between items-center",
576
- children: [/* @__PURE__ */ T("span", {
577
- className: "text-sm text-text-secondary",
578
- children: "Email Verification"
579
- }), /* @__PURE__ */ T("span", {
580
- className: t("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium", R.isEmailVerified ? "bg-green-500/20 text-green-600 dark:text-green-400" : "bg-status-error-bg/20 text-status-error-text"),
581
- children: R.isEmailVerified ? "Verified" : "Not Verified"
434
+ {
435
+ key: "orderUpdates",
436
+ label: "Order status updates"
437
+ },
438
+ {
439
+ key: "promotions",
440
+ label: "Promotional offers and discounts"
441
+ },
442
+ {
443
+ key: "newsletter",
444
+ label: "Newsletter and food recommendations"
445
+ },
446
+ {
447
+ key: "sms",
448
+ label: "SMS notifications"
449
+ }
450
+ ].map((e) => /* @__PURE__ */ T("label", {
451
+ className: "flex items-center gap-3 cursor-pointer",
452
+ children: [/* @__PURE__ */ w("input", {
453
+ type: "checkbox",
454
+ checked: U.notifications[e.key],
455
+ onChange: (t) => te(e.key, t.target.checked),
456
+ className: "h-4 w-4 rounded border-border-subtle text-text-primary focus:ring-[var(--color-focus-ring)]"
457
+ }), /* @__PURE__ */ w("span", {
458
+ className: "text-sm text-text-primary",
459
+ children: e.label
460
+ })]
461
+ }, e.key))
462
+ })] }),
463
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("h3", {
464
+ className: "text-lg font-semibold text-text-primary mb-4 flex items-center gap-2",
465
+ children: [/* @__PURE__ */ w(m, { className: "h-4 w-4 text-text-secondary" }), "Dietary Preferences"]
466
+ }), /* @__PURE__ */ w("div", {
467
+ className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-3",
468
+ children: k.map((e) => /* @__PURE__ */ T("label", {
469
+ className: "flex items-center gap-2 cursor-pointer",
470
+ children: [/* @__PURE__ */ w("input", {
471
+ type: "checkbox",
472
+ checked: U.dietary.includes(e),
473
+ onChange: (t) => $("dietary", e, t.target.checked),
474
+ className: "h-4 w-4 rounded border-border-subtle text-text-primary focus:ring-[var(--color-focus-ring)]"
475
+ }), /* @__PURE__ */ w("span", {
476
+ className: "text-sm text-text-primary capitalize",
477
+ children: e
478
+ })]
479
+ }, e))
480
+ })] }),
481
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("h3", {
482
+ className: "text-lg font-semibold text-text-primary mb-4 flex items-center gap-2",
483
+ children: [/* @__PURE__ */ w(s, { className: "h-4 w-4 text-status-error-text" }), "Food Allergies"]
484
+ }), /* @__PURE__ */ w("div", {
485
+ className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-3",
486
+ children: A.map((e) => /* @__PURE__ */ T("label", {
487
+ className: "flex items-center gap-2 cursor-pointer",
488
+ children: [/* @__PURE__ */ w("input", {
489
+ type: "checkbox",
490
+ checked: U.allergies.includes(e),
491
+ onChange: (t) => $("allergies", e, t.target.checked),
492
+ className: "h-4 w-4 rounded border-border-subtle text-status-error-text focus:ring-destructive"
493
+ }), /* @__PURE__ */ w("span", {
494
+ className: "text-sm text-text-primary capitalize",
495
+ children: e
496
+ })]
497
+ }, e))
498
+ })] }),
499
+ /* @__PURE__ */ w("div", {
500
+ className: "pt-4 border-t border-border-subtle",
501
+ children: /* @__PURE__ */ T("button", {
502
+ type: "button",
503
+ onClick: X,
504
+ className: "flex items-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity",
505
+ children: [/* @__PURE__ */ w(_, { className: "h-4 w-4" }), "Save Preferences"]
506
+ })
507
+ })
508
+ ]
509
+ }),
510
+ I === "stats" && /* @__PURE__ */ T("div", {
511
+ className: "space-y-8",
512
+ children: [/* @__PURE__ */ T("div", {
513
+ className: "grid grid-cols-1 md:grid-cols-3 gap-4",
514
+ children: [
515
+ /* @__PURE__ */ T("div", {
516
+ className: "rounded-lg bg-blue-500/10 p-5 border border-blue-500/20",
517
+ children: [/* @__PURE__ */ T("div", {
518
+ className: "flex items-center gap-2 mb-2",
519
+ children: [/* @__PURE__ */ w(b, { className: "h-4 w-4 text-blue-600 dark:text-blue-400" }), /* @__PURE__ */ w("h4", {
520
+ className: "text-sm font-medium text-blue-600 dark:text-blue-400",
521
+ children: "Total Orders"
582
522
  })]
583
- }),
584
- /* @__PURE__ */ E("div", {
585
- className: "flex justify-between items-center",
586
- children: [/* @__PURE__ */ T("span", {
587
- className: "text-sm text-text-secondary",
588
- children: "Phone Verification"
589
- }), /* @__PURE__ */ T("span", {
590
- className: t("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium", R.isPhoneVerified ? "bg-green-500/20 text-green-600 dark:text-green-400" : "bg-status-error-bg/20 text-status-error-text"),
591
- children: R.isPhoneVerified ? "Verified" : "Not Verified"
523
+ }), /* @__PURE__ */ w("p", {
524
+ className: "text-3xl font-bold text-blue-600 dark:text-blue-400",
525
+ children: G.totalOrders
526
+ })]
527
+ }),
528
+ /* @__PURE__ */ T("div", {
529
+ className: "rounded-lg bg-green-500/10 p-5 border border-green-500/20",
530
+ children: [/* @__PURE__ */ T("div", {
531
+ className: "flex items-center gap-2 mb-2",
532
+ children: [/* @__PURE__ */ w(h, { className: "h-4 w-4 text-green-600 dark:text-green-400" }), /* @__PURE__ */ w("h4", {
533
+ className: "text-sm font-medium text-green-600 dark:text-green-400",
534
+ children: "Total Spent"
592
535
  })]
593
- }),
594
- /* @__PURE__ */ E("div", {
595
- className: "flex justify-between",
596
- children: [/* @__PURE__ */ T("span", {
597
- className: "text-sm text-text-secondary",
598
- children: "Last Updated"
599
- }), /* @__PURE__ */ T("span", {
600
- className: "text-sm font-medium text-text-primary",
601
- children: a(R.updatedAt, {
602
- hour: void 0,
603
- minute: void 0,
604
- hour12: void 0
605
- })
536
+ }), /* @__PURE__ */ w("p", {
537
+ className: "text-3xl font-bold text-green-600 dark:text-green-400",
538
+ children: i(G.totalSpent, { minimumFractionDigits: 0 })
539
+ })]
540
+ }),
541
+ /* @__PURE__ */ T("div", {
542
+ className: "rounded-lg bg-purple-500/10 p-5 border border-purple-500/20",
543
+ children: [/* @__PURE__ */ T("div", {
544
+ className: "flex items-center gap-2 mb-2",
545
+ children: [/* @__PURE__ */ w(c, { className: "h-4 w-4 text-purple-600 dark:text-purple-400" }), /* @__PURE__ */ w("h4", {
546
+ className: "text-sm font-medium text-purple-600 dark:text-purple-400",
547
+ children: "Loyalty Points"
606
548
  })]
607
- })
608
- ]
549
+ }), /* @__PURE__ */ w("p", {
550
+ className: "text-3xl font-bold text-purple-600 dark:text-purple-400",
551
+ children: G.loyaltyPoints
552
+ })]
553
+ })
554
+ ]
555
+ }), /* @__PURE__ */ T("div", {
556
+ className: "grid grid-cols-1 md:grid-cols-2 gap-6",
557
+ children: [/* @__PURE__ */ T("div", {
558
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
559
+ children: [/* @__PURE__ */ T("h4", {
560
+ className: "text-base font-semibold text-text-primary mb-4 flex items-center gap-2",
561
+ children: [/* @__PURE__ */ w(l, { className: "h-4 w-4 text-text-secondary" }), "Order Statistics"]
562
+ }), /* @__PURE__ */ T("div", {
563
+ className: "space-y-3",
564
+ children: [
565
+ /* @__PURE__ */ T("div", {
566
+ className: "flex justify-between",
567
+ children: [/* @__PURE__ */ w("span", {
568
+ className: "text-sm text-text-secondary",
569
+ children: "Average Order Value"
570
+ }), /* @__PURE__ */ w("span", {
571
+ className: "text-sm font-medium text-text-primary",
572
+ children: i(G.avgOrderValue, { minimumFractionDigits: 0 })
573
+ })]
574
+ }),
575
+ /* @__PURE__ */ T("div", {
576
+ className: "flex justify-between",
577
+ children: [/* @__PURE__ */ w("span", {
578
+ className: "text-sm text-text-secondary",
579
+ children: "Favorite Category"
580
+ }), /* @__PURE__ */ w("span", {
581
+ className: "text-sm font-medium text-text-primary",
582
+ children: G.favoriteCategory
583
+ })]
584
+ }),
585
+ /* @__PURE__ */ T("div", {
586
+ className: "flex justify-between",
587
+ children: [/* @__PURE__ */ w("span", {
588
+ className: "text-sm text-text-secondary",
589
+ children: "Member Since"
590
+ }), /* @__PURE__ */ w("span", {
591
+ className: "text-sm font-medium text-text-primary",
592
+ children: a(G.memberSince, {
593
+ hour: void 0,
594
+ minute: void 0,
595
+ hour12: void 0
596
+ })
597
+ })]
598
+ })
599
+ ]
600
+ })]
601
+ }), /* @__PURE__ */ T("div", {
602
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
603
+ children: [/* @__PURE__ */ T("h4", {
604
+ className: "text-base font-semibold text-text-primary mb-4 flex items-center gap-2",
605
+ children: [/* @__PURE__ */ w(y, { className: "h-4 w-4 text-text-secondary" }), "Account Status"]
606
+ }), /* @__PURE__ */ T("div", {
607
+ className: "space-y-3",
608
+ children: [
609
+ /* @__PURE__ */ T("div", {
610
+ className: "flex justify-between items-center",
611
+ children: [/* @__PURE__ */ w("span", {
612
+ className: "text-sm text-text-secondary",
613
+ children: "Email Verification"
614
+ }), /* @__PURE__ */ w("span", {
615
+ className: t("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium", B.isEmailVerified ? "bg-green-500/20 text-green-600 dark:text-green-400" : "bg-status-error-bg/20 text-status-error-text"),
616
+ children: B.isEmailVerified ? "Verified" : "Not Verified"
617
+ })]
618
+ }),
619
+ /* @__PURE__ */ T("div", {
620
+ className: "flex justify-between items-center",
621
+ children: [/* @__PURE__ */ w("span", {
622
+ className: "text-sm text-text-secondary",
623
+ children: "Phone Verification"
624
+ }), /* @__PURE__ */ w("span", {
625
+ className: t("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium", B.isPhoneVerified ? "bg-green-500/20 text-green-600 dark:text-green-400" : "bg-status-error-bg/20 text-status-error-text"),
626
+ children: B.isPhoneVerified ? "Verified" : "Not Verified"
627
+ })]
628
+ }),
629
+ /* @__PURE__ */ T("div", {
630
+ className: "flex justify-between",
631
+ children: [/* @__PURE__ */ w("span", {
632
+ className: "text-sm text-text-secondary",
633
+ children: "Last Updated"
634
+ }), /* @__PURE__ */ w("span", {
635
+ className: "text-sm font-medium text-text-primary",
636
+ children: a(B.updatedAt, {
637
+ hour: void 0,
638
+ minute: void 0,
639
+ hour12: void 0
640
+ })
641
+ })]
642
+ })
643
+ ]
644
+ })]
609
645
  })]
610
646
  })]
611
- })]
612
- })
613
- ]
614
- })]
615
- })]
647
+ })
648
+ ]
649
+ })]
650
+ })
651
+ ]
616
652
  });
617
653
  }
618
654
  //#endregion
619
- export { A as CustomerProfilePage };
655
+ export { M as CustomerProfilePage };
620
656
 
621
657
  //# sourceMappingURL=CustomerProfilePage.js.map