@burdenoff/microfe-atheletebridge 2026.626.1 → 2026.628.1

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 (162) hide show
  1. package/dist/atheletebridge/AthleteBridgeRoot.js +49 -129
  2. package/dist/atheletebridge/AthleteBridgeRoot.js.map +1 -1
  3. package/dist/atheletebridge/AthleteBridgeRoutes.js +65 -184
  4. package/dist/atheletebridge/AthleteBridgeRoutes.js.map +1 -1
  5. package/dist/atheletebridge/components/CursorPager.js +34 -0
  6. package/dist/atheletebridge/components/CursorPager.js.map +1 -0
  7. package/dist/atheletebridge/components/FilterSelect.js +22 -0
  8. package/dist/atheletebridge/components/FilterSelect.js.map +1 -0
  9. package/dist/atheletebridge/components/FixtureCard.js +76 -0
  10. package/dist/atheletebridge/components/FixtureCard.js.map +1 -0
  11. package/dist/atheletebridge/components/LoadingState.js +36 -0
  12. package/dist/atheletebridge/components/LoadingState.js.map +1 -0
  13. package/dist/atheletebridge/components/ProgramCard.js +69 -0
  14. package/dist/atheletebridge/components/ProgramCard.js.map +1 -0
  15. package/dist/atheletebridge/components/SessionCard.js +76 -0
  16. package/dist/atheletebridge/components/SessionCard.js.map +1 -0
  17. package/dist/atheletebridge/components/StatusBadge.js +44 -35
  18. package/dist/atheletebridge/components/StatusBadge.js.map +1 -1
  19. package/dist/atheletebridge/components/TeamCard.js +81 -0
  20. package/dist/atheletebridge/components/TeamCard.js.map +1 -0
  21. package/dist/atheletebridge/components/domain.js +47 -0
  22. package/dist/atheletebridge/components/domain.js.map +1 -0
  23. package/dist/atheletebridge/components/form.js +29 -0
  24. package/dist/atheletebridge/components/form.js.map +1 -0
  25. package/dist/atheletebridge/context/AthleteBridgeContext.js +6 -6
  26. package/dist/atheletebridge/context/AthleteBridgeContext.js.map +1 -1
  27. package/dist/atheletebridge/hooks/useAthleteBridgeApi.js +342 -165
  28. package/dist/atheletebridge/hooks/useAthleteBridgeApi.js.map +1 -1
  29. package/dist/atheletebridge/index.js +1 -1
  30. package/dist/atheletebridge/pages/DashboardPage.js +169 -0
  31. package/dist/atheletebridge/pages/DashboardPage.js.map +1 -0
  32. package/dist/atheletebridge/pages/StandingsPage.js +166 -0
  33. package/dist/atheletebridge/pages/StandingsPage.js.map +1 -0
  34. package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.js +201 -0
  35. package/dist/atheletebridge/pages/fixtures/FixtureDetailPage.js.map +1 -0
  36. package/dist/atheletebridge/pages/fixtures/FixtureFormPage.js +205 -0
  37. package/dist/atheletebridge/pages/fixtures/FixtureFormPage.js.map +1 -0
  38. package/dist/atheletebridge/pages/fixtures/FixturesListPage.js +92 -0
  39. package/dist/atheletebridge/pages/fixtures/FixturesListPage.js.map +1 -0
  40. package/dist/atheletebridge/pages/programs/ProgramDetailPage.js +374 -0
  41. package/dist/atheletebridge/pages/programs/ProgramDetailPage.js.map +1 -0
  42. package/dist/atheletebridge/pages/programs/ProgramFormPage.js +207 -0
  43. package/dist/atheletebridge/pages/programs/ProgramFormPage.js.map +1 -0
  44. package/dist/atheletebridge/pages/programs/ProgramsListPage.js +113 -0
  45. package/dist/atheletebridge/pages/programs/ProgramsListPage.js.map +1 -0
  46. package/dist/atheletebridge/pages/sessions/SessionDetailPage.js +224 -0
  47. package/dist/atheletebridge/pages/sessions/SessionDetailPage.js.map +1 -0
  48. package/dist/atheletebridge/pages/sessions/SessionFormPage.js +206 -0
  49. package/dist/atheletebridge/pages/sessions/SessionFormPage.js.map +1 -0
  50. package/dist/atheletebridge/pages/sessions/SessionsListPage.js +92 -0
  51. package/dist/atheletebridge/pages/sessions/SessionsListPage.js.map +1 -0
  52. package/dist/atheletebridge/pages/teams/TeamDetailPage.js +350 -0
  53. package/dist/atheletebridge/pages/teams/TeamDetailPage.js.map +1 -0
  54. package/dist/atheletebridge/pages/teams/TeamFormPage.js +222 -0
  55. package/dist/atheletebridge/pages/teams/TeamFormPage.js.map +1 -0
  56. package/dist/atheletebridge/pages/teams/TeamsListPage.js +101 -0
  57. package/dist/atheletebridge/pages/teams/TeamsListPage.js.map +1 -0
  58. package/dist/atheletebridge/store/atheletebridgeStore.js +2 -13
  59. package/dist/atheletebridge/store/atheletebridgeStore.js.map +1 -1
  60. package/dist/atheletebridge/utils/datetime.js +10 -0
  61. package/dist/atheletebridge/utils/datetime.js.map +1 -0
  62. package/dist/atheletebridge/utils/formatters.js +1 -4
  63. package/dist/atheletebridge/utils/formatters.js.map +1 -1
  64. package/package.json +1 -1
  65. package/dist/atheletebridge/components/InvestmentCard.js +0 -96
  66. package/dist/atheletebridge/components/InvestmentCard.js.map +0 -1
  67. package/dist/atheletebridge/components/RatingDisplay.js +0 -35
  68. package/dist/atheletebridge/components/RatingDisplay.js.map +0 -1
  69. package/dist/atheletebridge/mocks/data.js +0 -1517
  70. package/dist/atheletebridge/mocks/data.js.map +0 -1
  71. package/dist/atheletebridge/mocks/users.js +0 -34
  72. package/dist/atheletebridge/mocks/users.js.map +0 -1
  73. package/dist/atheletebridge/pages/HomePage.js +0 -936
  74. package/dist/atheletebridge/pages/HomePage.js.map +0 -1
  75. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js +0 -653
  76. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js.map +0 -1
  77. package/dist/atheletebridge/pages/admin/AdminDashboard.js +0 -671
  78. package/dist/atheletebridge/pages/admin/AdminDashboard.js.map +0 -1
  79. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js +0 -429
  80. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js.map +0 -1
  81. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js +0 -667
  82. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js.map +0 -1
  83. package/dist/atheletebridge/pages/admin/AdminProfilePage.js +0 -261
  84. package/dist/atheletebridge/pages/admin/AdminProfilePage.js.map +0 -1
  85. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js +0 -653
  86. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js.map +0 -1
  87. package/dist/atheletebridge/pages/admin/CartManagementPage.js +0 -876
  88. package/dist/atheletebridge/pages/admin/CartManagementPage.js.map +0 -1
  89. package/dist/atheletebridge/pages/admin/UserManagementPage.js +0 -900
  90. package/dist/atheletebridge/pages/admin/UserManagementPage.js.map +0 -1
  91. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js +0 -839
  92. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js.map +0 -1
  93. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js +0 -704
  94. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js.map +0 -1
  95. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js +0 -792
  96. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js.map +0 -1
  97. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js +0 -891
  98. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js.map +0 -1
  99. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js +0 -633
  100. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js.map +0 -1
  101. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js +0 -913
  102. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js.map +0 -1
  103. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js +0 -881
  104. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js.map +0 -1
  105. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js +0 -841
  106. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js.map +0 -1
  107. package/dist/atheletebridge/pages/common/HelpSupportPage.js +0 -1319
  108. package/dist/atheletebridge/pages/common/HelpSupportPage.js.map +0 -1
  109. package/dist/atheletebridge/pages/common/NotificationCenterPage.js +0 -674
  110. package/dist/atheletebridge/pages/common/NotificationCenterPage.js.map +0 -1
  111. package/dist/atheletebridge/pages/common/SettingsPage.js +0 -972
  112. package/dist/atheletebridge/pages/common/SettingsPage.js.map +0 -1
  113. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js +0 -602
  114. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js.map +0 -1
  115. package/dist/atheletebridge/pages/customer/CartDetailPage.js +0 -656
  116. package/dist/atheletebridge/pages/customer/CartDetailPage.js.map +0 -1
  117. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js +0 -558
  118. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js.map +0 -1
  119. package/dist/atheletebridge/pages/customer/CheckoutPage.js +0 -536
  120. package/dist/atheletebridge/pages/customer/CheckoutPage.js.map +0 -1
  121. package/dist/atheletebridge/pages/customer/CustomerDashboard.js +0 -539
  122. package/dist/atheletebridge/pages/customer/CustomerDashboard.js.map +0 -1
  123. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js +0 -657
  124. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js.map +0 -1
  125. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js +0 -635
  126. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js.map +0 -1
  127. package/dist/atheletebridge/pages/customer/FavoritesPage.js +0 -486
  128. package/dist/atheletebridge/pages/customer/FavoritesPage.js.map +0 -1
  129. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js +0 -447
  130. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js.map +0 -1
  131. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js +0 -393
  132. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js.map +0 -1
  133. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js +0 -494
  134. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js.map +0 -1
  135. package/dist/atheletebridge/pages/customer/ReviewsPage.js +0 -615
  136. package/dist/atheletebridge/pages/customer/ReviewsPage.js.map +0 -1
  137. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js +0 -451
  138. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js.map +0 -1
  139. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js +0 -881
  140. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js.map +0 -1
  141. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js +0 -945
  142. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js.map +0 -1
  143. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js +0 -686
  144. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js.map +0 -1
  145. package/dist/atheletebridge/pages/investor/InvestorDashboard.js +0 -453
  146. package/dist/atheletebridge/pages/investor/InvestorDashboard.js.map +0 -1
  147. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js +0 -405
  148. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js.map +0 -1
  149. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js +0 -577
  150. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js.map +0 -1
  151. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js +0 -1069
  152. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js.map +0 -1
  153. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js +0 -530
  154. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js.map +0 -1
  155. package/dist/atheletebridge/pages/worker/WorkerDashboard.js +0 -669
  156. package/dist/atheletebridge/pages/worker/WorkerDashboard.js.map +0 -1
  157. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js +0 -681
  158. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js.map +0 -1
  159. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js +0 -691
  160. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js.map +0 -1
  161. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js +0 -588
  162. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js.map +0 -1
@@ -1,657 +0,0 @@
1
- import { useAthleteBridge as e } from "../../context/AthleteBridgeContext.js";
2
- import { cn as t } from "../../utils/cn.js";
3
- import { PageLayout as n } from "../../components/PageLayout.js";
4
- import { useOrders as r } from "../../hooks/useAthleteBridgeApi.js";
5
- import { formatCurrency as i, formatDate as a } from "../../utils/formatters.js";
6
- import { useState as o } from "react";
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";
10
- //#region src/atheletebridge/pages/customer/CustomerProfilePage.tsx
11
- var k = [
12
- "vegetarian",
13
- "vegan",
14
- "jain",
15
- "keto",
16
- "gluten-free",
17
- "low-carb"
18
- ], A = [
19
- "nuts",
20
- "dairy",
21
- "eggs",
22
- "soy",
23
- "shellfish",
24
- "gluten"
25
- ], j = [{
26
- id: "addr-1",
27
- label: "Home",
28
- street: "123, MG Road",
29
- area: "Near Central Mall",
30
- city: "Bangalore",
31
- state: "Karnataka",
32
- pincode: "560001",
33
- isDefault: !0
34
- }, {
35
- id: "addr-2",
36
- label: "Office",
37
- street: "456 Tech Park Road",
38
- area: "Whitefield",
39
- city: "Bangalore",
40
- state: "Karnataka",
41
- pincode: "560066",
42
- isDefault: !1
43
- }];
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 || "",
49
- phone: "+91 98765 43210",
50
- profilePicture: N?.avatar,
51
- isEmailVerified: !0,
52
- isPhoneVerified: !0,
53
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
54
- updatedAt: (/* @__PURE__ */ new Date()).toISOString()
55
- }, [V, H] = o({
56
- firstName: B.firstName,
57
- lastName: B.lastName,
58
- email: B.email,
59
- phone: B.phone,
60
- emergencyContact: {
61
- name: "Priya Sharma",
62
- phone: "+91 98765 43211",
63
- relationship: "Spouse"
64
- },
65
- dietary: ["vegetarian"],
66
- allergies: ["nuts", "dairy"],
67
- notifications: {
68
- orderUpdates: !0,
69
- promotions: !0,
70
- newsletter: !1,
71
- sms: !0
72
- }
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,
78
- favoriteCategory: "South Indian",
79
- memberSince: B.createdAt
80
- }, K = F, q = () => {
81
- W({ ...V }), z(!0);
82
- }, J = () => {
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) => ({
90
- ...n,
91
- [e]: t
92
- }));
93
- }, Q = (e, t) => {
94
- W((n) => ({
95
- ...n,
96
- emergencyContact: {
97
- ...n.emergencyContact,
98
- [e]: t
99
- }
100
- }));
101
- }, te = (e, t) => {
102
- W((n) => ({
103
- ...n,
104
- notifications: {
105
- ...n.notifications,
106
- [e]: t
107
- }
108
- }));
109
- }, $ = (e, t, n) => {
110
- W((r) => {
111
- let i = r[e], a = n ? [...i, t] : i.filter((e) => e !== t);
112
- return {
113
- ...r,
114
- [e]: a
115
- };
116
- });
117
- }, ne = [
118
- {
119
- key: "profile",
120
- label: "Profile Info",
121
- icon: S
122
- },
123
- {
124
- key: "preferences",
125
- label: "Preferences",
126
- icon: v
127
- },
128
- {
129
- key: "stats",
130
- label: "My Stats",
131
- icon: l
132
- }
133
- ];
134
- return K ? /* @__PURE__ */ w(n, {
135
- title: "My Profile",
136
- children: /* @__PURE__ */ T("div", {
137
- className: "flex flex-col items-center justify-center py-16 text-center",
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", {
139
- className: "text-sm text-text-secondary",
140
- children: "Loading profile..."
141
- })]
142
- })
143
- }) : /* @__PURE__ */ T(n, {
144
- title: "My Profile",
145
- description: "Manage your personal information and preferences",
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",
153
- children: [
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" })
165
- })
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
- })]
171
- }),
172
- /* @__PURE__ */ T("div", {
173
- className: "flex-1 text-center sm:text-left",
174
- children: [
175
- /* @__PURE__ */ T("h2", {
176
- className: "text-xl font-semibold text-text-primary",
177
- children: [
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
- }),
191
- /* @__PURE__ */ T("div", {
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
- })]
200
- })
201
- ]
202
- }),
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",
264
- children: [
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"]
282
- })]
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"]
288
- })]
289
- }),
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
- ]
334
- }),
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",
340
- children: [
341
- /* @__PURE__ */ w("p", {
342
- className: "text-sm font-medium text-text-primary",
343
- children: j[0].street
344
- }),
345
- /* @__PURE__ */ w("p", {
346
- className: "text-sm text-text-secondary",
347
- children: j[0].area
348
- }),
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
- ]
368
- })
369
- ]
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", {
432
- className: "space-y-3",
433
- children: [
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"
522
- })]
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"
535
- })]
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"
548
- })]
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
- })]
645
- })]
646
- })]
647
- })
648
- ]
649
- })]
650
- })
651
- ]
652
- });
653
- }
654
- //#endregion
655
- export { M as CustomerProfilePage };
656
-
657
- //# sourceMappingURL=CustomerProfilePage.js.map