@burdenoff/microfe-kadaikodi 2026.625.1 → 2026.626.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/kadaikodi/pages/HomePage.js +19 -14
  2. package/dist/kadaikodi/pages/HomePage.js.map +1 -1
  3. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +118 -83
  4. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
  5. package/dist/kadaikodi/pages/admin/AdminDashboard.js +75 -46
  6. package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
  7. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +144 -128
  8. package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
  9. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +255 -237
  10. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
  11. package/dist/kadaikodi/pages/admin/AdminProfilePage.js +129 -128
  12. package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
  13. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +178 -150
  14. package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
  15. package/dist/kadaikodi/pages/admin/CartManagementPage.js +182 -159
  16. package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
  17. package/dist/kadaikodi/pages/admin/UserManagementPage.js +325 -303
  18. package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
  19. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +500 -469
  20. package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  21. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +534 -503
  22. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  23. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +73 -48
  24. package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  25. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +103 -96
  26. package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  27. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +130 -129
  28. package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
  29. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +673 -670
  30. package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  31. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +517 -514
  32. package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
  33. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +140 -125
  34. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
  35. package/dist/kadaikodi/pages/common/HelpSupportPage.js +302 -311
  36. package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
  37. package/dist/kadaikodi/pages/common/NotificationCenterPage.js +102 -91
  38. package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
  39. package/dist/kadaikodi/pages/common/SettingsPage.js +766 -734
  40. package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
  41. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +366 -356
  42. package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
  43. package/dist/kadaikodi/pages/customer/CartDetailPage.js +243 -213
  44. package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
  45. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +200 -195
  46. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
  47. package/dist/kadaikodi/pages/customer/CheckoutPage.js +95 -89
  48. package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
  49. package/dist/kadaikodi/pages/customer/CustomerDashboard.js +430 -387
  50. package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
  51. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +488 -478
  52. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
  53. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +523 -512
  54. package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
  55. package/dist/kadaikodi/pages/customer/FavoritesPage.js +83 -75
  56. package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
  57. package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +116 -108
  58. package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
  59. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +67 -61
  60. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
  61. package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js +90 -73
  62. package/dist/kadaikodi/pages/customer/PaymentMethodsPage.js.map +1 -1
  63. package/dist/kadaikodi/pages/customer/ReviewsPage.js +80 -72
  64. package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
  65. package/dist/kadaikodi/pages/customer/SavedAddressesPage.js +70 -53
  66. package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
  67. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +289 -255
  68. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
  69. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +92 -84
  70. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  71. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js +63 -55
  72. package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
  73. package/dist/kadaikodi/pages/investor/InvestorDashboard.js +339 -311
  74. package/dist/kadaikodi/pages/investor/InvestorDashboard.js.map +1 -1
  75. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js +40 -32
  76. package/dist/kadaikodi/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  77. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js +174 -150
  78. package/dist/kadaikodi/pages/investor/InvestorPortfolioPage.js.map +1 -1
  79. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +385 -381
  80. package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
  81. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +302 -273
  82. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
  83. package/dist/kadaikodi/pages/worker/WorkerDashboard.js +87 -59
  84. package/dist/kadaikodi/pages/worker/WorkerDashboard.js.map +1 -1
  85. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js +82 -75
  86. package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
  87. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +81 -77
  88. package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
  89. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +78 -71
  90. package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
  91. package/package.json +2 -2
@@ -5,8 +5,9 @@ import { useCallback as r, useMemo as i, useState as a } from "react";
5
5
  import { useI18n as o } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
6
  import { AlertTriangle as s, Bell as c, Building2 as l, Camera as u, CheckCircle2 as d, CreditCard as f, Eye as p, Globe as m, Laptop as h, Loader2 as g, Lock as _, LogOut as v, MapPin as y, Monitor as b, Moon as x, Receipt as S, RotateCcw as C, Save as w, Settings as T, Shield as E, Smartphone as D, Sun as O, Trash2 as k, User as A } from "lucide-react";
7
7
  import { Fragment as j, jsx as M, jsxs as N } from "react/jsx-runtime";
8
+ import { EmphasisPanel as P, NextSteps as F, PagePurpose as I } from "@burdenoff/fe-libs/ui";
8
9
  //#region src/kadaikodi/pages/common/SettingsPage.tsx
9
- var P = {
10
+ var L = {
10
11
  profile: {
11
12
  firstName: "Priya",
12
13
  lastName: "Customer",
@@ -86,7 +87,7 @@ var P = {
86
87
  companyName: "",
87
88
  billingAddress: "123 Tech Park, Koramangala, Bangalore 560034"
88
89
  }
89
- }, F = [
90
+ }, R = [
90
91
  {
91
92
  id: "profile",
92
93
  label: "Profile",
@@ -113,7 +114,7 @@ var P = {
113
114
  icon: f
114
115
  }
115
116
  ];
116
- function I({ checked: e, onChange: n, label: r }) {
117
+ function z({ checked: e, onChange: n, label: r }) {
117
118
  return /* @__PURE__ */ M("button", {
118
119
  type: "button",
119
120
  role: "switch",
@@ -124,26 +125,26 @@ function I({ checked: e, onChange: n, label: r }) {
124
125
  children: /* @__PURE__ */ M("span", { className: t("inline-block h-4 w-4 transform rounded-full bg-white transition-transform", e ? "translate-x-6" : "translate-x-1") })
125
126
  });
126
127
  }
127
- function L() {
128
- let { currentUser: T } = e(), { t: E } = o(), [A, L] = a("profile"), [R, z] = a(() => {
129
- let e = { ...P };
128
+ function B() {
129
+ let { currentUser: T } = e(), { t: E } = o(), [A, B] = a("profile"), [V, H] = a(() => {
130
+ let e = { ...L };
130
131
  return T?.firstName && (e.profile.firstName = T.firstName), T?.lastName && (e.profile.lastName = T.lastName), T?.email && (e.profile.email = T.email), e;
131
- }), [B, V] = a(!1), [H, U] = a(!1), [W, G] = a(""), K = r((e, t) => {
132
+ }), [U, W] = a(!1), [G, K] = a(!1), [q, J] = a(""), Y = r((e, t) => {
132
133
  let n = E(e);
133
134
  return n === e ? t : n;
134
- }, [E]), q = i(() => F.map((e) => ({
135
+ }, [E]), X = i(() => R.map((e) => ({
135
136
  ...e,
136
- label: e.id === "profile" ? K("kadaikodi.settings.tabs.profile", "Profile") : e.id === "preferences" ? K("kadaikodi.settings.tabs.preferences", "Preferences") : e.id === "security" ? K("kadaikodi.settings.tabs.security", "Security") : e.id === "privacy" ? K("kadaikodi.settings.tabs.privacy", "Privacy") : K("kadaikodi.settings.tabs.billing", "Billing")
137
- })), [K]), J = r((e, t, n) => {
138
- z((r) => ({
137
+ label: e.id === "profile" ? Y("kadaikodi.settings.tabs.profile", "Profile") : e.id === "preferences" ? Y("kadaikodi.settings.tabs.preferences", "Preferences") : e.id === "security" ? Y("kadaikodi.settings.tabs.security", "Security") : e.id === "privacy" ? Y("kadaikodi.settings.tabs.privacy", "Privacy") : Y("kadaikodi.settings.tabs.billing", "Billing")
138
+ })), [Y]), Z = r((e, t, n) => {
139
+ H((r) => ({
139
140
  ...r,
140
141
  [e]: {
141
142
  ...r[e],
142
143
  [t]: n
143
144
  }
144
- })), V(!0), G("");
145
- }, []), Y = r((e, t, n, r) => {
146
- z((i) => ({
145
+ })), W(!0), J("");
146
+ }, []), Q = r((e, t, n, r) => {
147
+ H((i) => ({
147
148
  ...i,
148
149
  [e]: {
149
150
  ...i[e],
@@ -152,813 +153,844 @@ function L() {
152
153
  [n]: r
153
154
  }
154
155
  }
155
- })), V(!0), G("");
156
- }, []), X = r(() => {
157
- z(P), V(!1), G("");
158
- }, []), Z = r(async () => {
159
- if (!R.profile.firstName.trim() || !R.profile.lastName.trim()) {
160
- G(K("kadaikodi.settings.validation.nameRequired", "First name and last name are required.")), L("profile");
156
+ })), W(!0), J("");
157
+ }, []), $ = r(() => {
158
+ H(L), W(!1), J("");
159
+ }, []), ee = r(async () => {
160
+ if (!V.profile.firstName.trim() || !V.profile.lastName.trim()) {
161
+ J(Y("kadaikodi.settings.validation.nameRequired", "First name and last name are required.")), B("profile");
161
162
  return;
162
163
  }
163
- if (!R.profile.email.trim() || !R.profile.email.includes("@")) {
164
- G(K("kadaikodi.settings.validation.emailRequired", "A valid email address is required.")), L("profile");
164
+ if (!V.profile.email.trim() || !V.profile.email.includes("@")) {
165
+ J(Y("kadaikodi.settings.validation.emailRequired", "A valid email address is required.")), B("profile");
165
166
  return;
166
167
  }
167
- U(!0), G(""), await new Promise((e) => setTimeout(e, 1200)), U(!1), V(!1), G(K("kadaikodi.settings.saveSuccess", "Settings saved successfully!")), setTimeout(() => G(""), 3e3);
168
- }, [R, K]), Q = r((e) => {
169
- z((t) => ({
168
+ K(!0), J(""), await new Promise((e) => setTimeout(e, 1200)), K(!1), W(!1), J(Y("kadaikodi.settings.saveSuccess", "Settings saved successfully!")), setTimeout(() => J(""), 3e3);
169
+ }, [V, Y]), te = r((e) => {
170
+ H((t) => ({
170
171
  ...t,
171
172
  security: {
172
173
  ...t.security,
173
174
  trustedDevices: t.security.trustedDevices.filter((t) => t.id !== e)
174
175
  }
175
- })), V(!0);
176
- }, []), $ = r(() => {
177
- z((e) => ({
176
+ })), W(!0);
177
+ }, []), ne = r(() => {
178
+ H((e) => ({
178
179
  ...e,
179
180
  security: {
180
181
  ...e.security,
181
182
  trustedDevices: e.security.trustedDevices.filter((e) => e.isCurrent)
182
183
  }
183
- })), V(!0);
184
- }, []), ee = r(() => {
185
- window.confirm(K("kadaikodi.settings.deleteConfirm", "Are you sure you want to delete your account? This action cannot be undone.")) && alert(K("kadaikodi.settings.deleteSubmitted", "Account deletion request submitted. You will receive a confirmation email."));
186
- }, [K]);
184
+ })), W(!0);
185
+ }, []), re = r(() => {
186
+ window.confirm(Y("kadaikodi.settings.deleteConfirm", "Are you sure you want to delete your account? This action cannot be undone.")) && alert(Y("kadaikodi.settings.deleteSubmitted", "Account deletion request submitted. You will receive a confirmation email."));
187
+ }, [Y]);
187
188
  return /* @__PURE__ */ N(n, {
188
- title: K("kadaikodi.settings.title", "Settings"),
189
- description: K("kadaikodi.settings.description", "Manage your preferences and account settings"),
189
+ title: Y("kadaikodi.settings.title", "Settings"),
190
+ description: Y("kadaikodi.settings.description", "Manage your preferences and account settings"),
190
191
  actions: /* @__PURE__ */ N("div", {
191
192
  className: "flex items-center gap-2",
192
- children: [B && /* @__PURE__ */ N("button", {
193
+ children: [U && /* @__PURE__ */ N("button", {
193
194
  type: "button",
194
- onClick: X,
195
+ onClick: $,
195
196
  className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
196
- children: [/* @__PURE__ */ M(C, { className: "h-4 w-4" }), K("kadaikodi.settings.reset", "Reset")]
197
+ children: [/* @__PURE__ */ M(C, { className: "h-4 w-4" }), Y("kadaikodi.settings.reset", "Reset")]
197
198
  }), /* @__PURE__ */ M("button", {
198
199
  type: "button",
199
- disabled: !B || H,
200
- onClick: Z,
201
- className: t("flex items-center gap-1.5 rounded-lg px-4 py-2 text-sm font-medium transition-colors", B && !H ? "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
202
- children: H ? /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M(g, { className: "h-4 w-4 animate-spin" }), K("kadaikodi.settings.saving", "Saving...")] }) : /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M(w, { className: "h-4 w-4" }), K("kadaikodi.settings.save", "Save Settings")] })
200
+ disabled: !U || G,
201
+ onClick: ee,
202
+ className: t("flex items-center gap-1.5 rounded-lg px-4 py-2 text-sm font-medium transition-colors", U && !G ? "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
203
+ children: G ? /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M(g, { className: "h-4 w-4 animate-spin" }), Y("kadaikodi.settings.saving", "Saving...")] }) : /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M(w, { className: "h-4 w-4" }), Y("kadaikodi.settings.save", "Save Settings")] })
203
204
  })]
204
205
  }),
205
- children: [W && /* @__PURE__ */ N("div", {
206
- className: t("mb-6 flex items-center gap-2 rounded-lg border p-3 text-sm", W.includes("successfully") ? "border-status-success-text/30 bg-status-success-bg-subtle text-status-success-text" : "border-status-error-text/30 bg-status-error-bg-subtle text-status-error-text"),
207
- children: [W.includes("successfully") ? /* @__PURE__ */ M(d, { className: "h-4 w-4 shrink-0" }) : /* @__PURE__ */ M(s, { className: "h-4 w-4 shrink-0" }), W]
208
- }), /* @__PURE__ */ N("div", {
209
- className: "flex flex-col gap-6 lg:flex-row",
210
- children: [/* @__PURE__ */ N("div", {
211
- className: "shrink-0 lg:w-56",
212
- children: [/* @__PURE__ */ M("div", {
213
- className: "grid grid-cols-5 gap-1 lg:hidden",
214
- children: q.map((e) => {
215
- let n = e.icon;
216
- return /* @__PURE__ */ N("button", {
217
- type: "button",
218
- onClick: () => L(e.id),
219
- className: t("flex flex-col items-center gap-1 rounded-lg py-2.5 text-center transition-colors", A === e.id ? "bg-action-primary-bg/10 text-text-primary" : "text-text-secondary hover:text-text-primary hover:bg-accent"),
220
- children: [/* @__PURE__ */ M(n, { className: "h-4 w-4" }), /* @__PURE__ */ M("span", {
221
- className: "text-xs font-medium",
222
- children: e.label
223
- })]
224
- }, e.id);
225
- })
226
- }), /* @__PURE__ */ N("div", {
227
- className: "hidden lg:block rounded-lg border border-border-subtle bg-bg-surface",
206
+ children: [
207
+ q && /* @__PURE__ */ N("div", {
208
+ className: t("mb-6 flex items-center gap-2 rounded-lg border p-3 text-sm", q.includes("successfully") ? "border-status-success-text/30 bg-status-success-bg-subtle text-status-success-text" : "border-status-error-text/30 bg-status-error-bg-subtle text-status-error-text"),
209
+ children: [q.includes("successfully") ? /* @__PURE__ */ M(d, { className: "h-4 w-4 shrink-0" }) : /* @__PURE__ */ M(s, { className: "h-4 w-4 shrink-0" }), q]
210
+ }),
211
+ /* @__PURE__ */ M(I, {
212
+ className: "mb-6",
213
+ children: Y("kadaikodi.settings.purpose", "Your personal control center on Kadaikodi. Use this page to manage your profile, app preferences (language, theme, notifications), security and login, privacy choices, and billing — everything about your own account in one place. Pick a section on the left, make your changes, and Save.")
214
+ }),
215
+ /* @__PURE__ */ M(F, {
216
+ storageKey: "kadaikodi-settings",
217
+ className: "mb-6",
218
+ steps: [
219
+ {
220
+ id: "security",
221
+ label: Y("kadaikodi.settings.next.security", "Secure your account"),
222
+ description: Y("kadaikodi.settings.next.securityDesc", "Update your password and review active devices."),
223
+ onClick: () => B("security")
224
+ },
225
+ {
226
+ id: "preferences",
227
+ label: Y("kadaikodi.settings.next.preferences", "Set your preferences"),
228
+ description: Y("kadaikodi.settings.next.preferencesDesc", "Choose language, theme and notification settings."),
229
+ onClick: () => B("preferences")
230
+ },
231
+ {
232
+ id: "billing",
233
+ label: Y("kadaikodi.settings.next.billing", "Review billing"),
234
+ description: Y("kadaikodi.settings.next.billingDesc", "Check your plan and payment method."),
235
+ onClick: () => B("billing")
236
+ }
237
+ ]
238
+ }),
239
+ /* @__PURE__ */ N("div", {
240
+ className: "flex flex-col gap-6 lg:flex-row",
241
+ children: [/* @__PURE__ */ N("div", {
242
+ className: "shrink-0 lg:w-56",
228
243
  children: [/* @__PURE__ */ M("div", {
229
- className: "p-3 border-b border-border-subtle",
230
- children: /* @__PURE__ */ M("p", {
231
- className: "text-sm font-semibold text-text-primary",
232
- children: K("kadaikodi.settings.title", "Settings")
233
- })
234
- }), /* @__PURE__ */ M("nav", {
235
- className: "p-2",
236
- children: q.map((e) => {
244
+ className: "grid grid-cols-5 gap-1 lg:hidden",
245
+ children: X.map((e) => {
237
246
  let n = e.icon;
238
247
  return /* @__PURE__ */ N("button", {
239
248
  type: "button",
240
- onClick: () => L(e.id),
241
- className: t("flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-sm font-medium transition-colors mb-0.5", A === e.id ? "bg-action-primary-bg/10 text-text-primary" : "text-text-secondary hover:text-text-primary hover:bg-accent"),
242
- children: [/* @__PURE__ */ M(n, { className: "h-4 w-4" }), e.label]
249
+ onClick: () => B(e.id),
250
+ className: t("flex flex-col items-center gap-1 rounded-lg py-2.5 text-center transition-colors", A === e.id ? "bg-action-primary-bg/10 text-text-primary" : "text-text-secondary hover:text-text-primary hover:bg-accent"),
251
+ children: [/* @__PURE__ */ M(n, { className: "h-4 w-4" }), /* @__PURE__ */ M("span", {
252
+ className: "text-xs font-medium",
253
+ children: e.label
254
+ })]
243
255
  }, e.id);
244
256
  })
257
+ }), /* @__PURE__ */ N("div", {
258
+ className: "hidden lg:block rounded-lg border border-border-subtle bg-bg-surface",
259
+ children: [/* @__PURE__ */ M("div", {
260
+ className: "p-3 border-b border-border-subtle",
261
+ children: /* @__PURE__ */ M("p", {
262
+ className: "text-sm font-semibold text-text-primary",
263
+ children: Y("kadaikodi.settings.title", "Settings")
264
+ })
265
+ }), /* @__PURE__ */ M("nav", {
266
+ className: "p-2",
267
+ children: X.map((e) => {
268
+ let n = e.icon;
269
+ return /* @__PURE__ */ N("button", {
270
+ type: "button",
271
+ onClick: () => B(e.id),
272
+ className: t("flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-sm font-medium transition-colors mb-0.5", A === e.id ? "bg-action-primary-bg/10 text-text-primary" : "text-text-secondary hover:text-text-primary hover:bg-accent"),
273
+ children: [/* @__PURE__ */ M(n, { className: "h-4 w-4" }), e.label]
274
+ }, e.id);
275
+ })
276
+ })]
245
277
  })]
246
- })]
247
- }), /* @__PURE__ */ M("div", {
248
- className: "flex-1 rounded-lg border border-border-subtle bg-bg-surface p-6",
249
- children: {
250
- profile: () => /* @__PURE__ */ N("div", {
251
- className: "space-y-6",
252
- children: [
253
- /* @__PURE__ */ M("h3", {
254
- className: "text-base font-semibold text-text-primary",
255
- children: "Personal Information"
256
- }),
257
- /* @__PURE__ */ N("div", {
258
- className: "flex items-center gap-4",
259
- children: [/* @__PURE__ */ N("div", {
260
- className: "relative",
261
- children: [/* @__PURE__ */ M("img", {
262
- src: R.profile.profilePicture,
263
- alt: "Profile",
264
- className: "h-20 w-20 rounded-full object-cover border border-border-subtle"
265
- }), /* @__PURE__ */ M("button", {
266
- type: "button",
267
- onClick: () => alert("Photo upload coming soon"),
268
- className: "absolute -bottom-1 -right-1 flex h-7 w-7 items-center justify-center rounded-full bg-action-primary-bg text-action-primary-text shadow-sm hover:bg-action-primary-bg/90",
269
- children: /* @__PURE__ */ M(u, { className: "h-3.5 w-3.5" })
270
- })]
271
- }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
272
- className: "text-sm font-medium text-text-primary",
273
- children: "Profile Picture"
274
- }), /* @__PURE__ */ M("p", {
275
- className: "text-xs text-text-secondary",
276
- children: "Upload a new photo (JPG, PNG, max 2MB)"
277
- })] })]
278
- }),
279
- /* @__PURE__ */ N("div", {
280
- className: "grid grid-cols-1 gap-4 sm:grid-cols-2",
281
- children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
282
- className: "block text-sm font-medium text-text-primary mb-1.5",
283
- children: "First Name *"
284
- }), /* @__PURE__ */ M("input", {
285
- type: "text",
286
- value: R.profile.firstName,
287
- onChange: (e) => J("profile", "firstName", e.target.value),
288
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
289
- })] }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
290
- className: "block text-sm font-medium text-text-primary mb-1.5",
291
- children: "Last Name *"
292
- }), /* @__PURE__ */ M("input", {
293
- type: "text",
294
- value: R.profile.lastName,
295
- onChange: (e) => J("profile", "lastName", e.target.value),
296
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
297
- })] })]
298
- }),
299
- /* @__PURE__ */ N("div", {
300
- className: "grid grid-cols-1 gap-4 sm:grid-cols-2",
301
- children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
302
- className: "block text-sm font-medium text-text-primary mb-1.5",
303
- children: "Email Address *"
304
- }), /* @__PURE__ */ M("input", {
305
- type: "email",
306
- value: R.profile.email,
307
- onChange: (e) => J("profile", "email", e.target.value),
308
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
309
- })] }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
310
- className: "block text-sm font-medium text-text-primary mb-1.5",
311
- children: "Phone Number"
312
- }), /* @__PURE__ */ M("input", {
313
- type: "tel",
314
- value: R.profile.phone,
315
- onChange: (e) => J("profile", "phone", e.target.value),
316
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
317
- })] })]
318
- }),
319
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
320
- className: "block text-sm font-medium text-text-primary mb-1.5",
321
- children: "Bio"
322
- }), /* @__PURE__ */ M("textarea", {
323
- rows: 3,
324
- value: R.profile.bio,
325
- onChange: (e) => J("profile", "bio", e.target.value),
326
- placeholder: "Tell us about yourself...",
327
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)] resize-none"
328
- })] }),
329
- /* @__PURE__ */ N("div", {
330
- className: "grid grid-cols-1 gap-4 sm:grid-cols-2",
331
- children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
332
- className: "block text-sm font-medium text-text-primary mb-1.5",
333
- children: "Date of Birth"
334
- }), /* @__PURE__ */ M("input", {
335
- type: "date",
336
- value: R.profile.dateOfBirth,
337
- onChange: (e) => J("profile", "dateOfBirth", e.target.value),
338
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
339
- })] }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
278
+ }), /* @__PURE__ */ M(P, {
279
+ className: "flex-1 p-6",
280
+ children: {
281
+ profile: () => /* @__PURE__ */ N("div", {
282
+ className: "space-y-6",
283
+ children: [
284
+ /* @__PURE__ */ M("h3", {
285
+ className: "text-base font-semibold text-text-primary",
286
+ children: "Personal Information"
287
+ }),
288
+ /* @__PURE__ */ N("div", {
289
+ className: "flex items-center gap-4",
290
+ children: [/* @__PURE__ */ N("div", {
291
+ className: "relative",
292
+ children: [/* @__PURE__ */ M("img", {
293
+ src: V.profile.profilePicture,
294
+ alt: "Profile",
295
+ className: "h-20 w-20 rounded-full object-cover border border-border-subtle"
296
+ }), /* @__PURE__ */ M("button", {
297
+ type: "button",
298
+ onClick: () => alert("Photo upload coming soon"),
299
+ className: "absolute -bottom-1 -right-1 flex h-7 w-7 items-center justify-center rounded-full bg-action-primary-bg text-action-primary-text shadow-sm hover:bg-action-primary-bg/90",
300
+ children: /* @__PURE__ */ M(u, { className: "h-3.5 w-3.5" })
301
+ })]
302
+ }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
303
+ className: "text-sm font-medium text-text-primary",
304
+ children: "Profile Picture"
305
+ }), /* @__PURE__ */ M("p", {
306
+ className: "text-xs text-text-secondary",
307
+ children: "Upload a new photo (JPG, PNG, max 2MB)"
308
+ })] })]
309
+ }),
310
+ /* @__PURE__ */ N("div", {
311
+ className: "grid grid-cols-1 gap-4 sm:grid-cols-2",
312
+ children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
313
+ className: "block text-sm font-medium text-text-primary mb-1.5",
314
+ children: "First Name *"
315
+ }), /* @__PURE__ */ M("input", {
316
+ type: "text",
317
+ value: V.profile.firstName,
318
+ onChange: (e) => Z("profile", "firstName", e.target.value),
319
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
320
+ })] }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
321
+ className: "block text-sm font-medium text-text-primary mb-1.5",
322
+ children: "Last Name *"
323
+ }), /* @__PURE__ */ M("input", {
324
+ type: "text",
325
+ value: V.profile.lastName,
326
+ onChange: (e) => Z("profile", "lastName", e.target.value),
327
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
328
+ })] })]
329
+ }),
330
+ /* @__PURE__ */ N("div", {
331
+ className: "grid grid-cols-1 gap-4 sm:grid-cols-2",
332
+ children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
333
+ className: "block text-sm font-medium text-text-primary mb-1.5",
334
+ children: "Email Address *"
335
+ }), /* @__PURE__ */ M("input", {
336
+ type: "email",
337
+ value: V.profile.email,
338
+ onChange: (e) => Z("profile", "email", e.target.value),
339
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
340
+ })] }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
341
+ className: "block text-sm font-medium text-text-primary mb-1.5",
342
+ children: "Phone Number"
343
+ }), /* @__PURE__ */ M("input", {
344
+ type: "tel",
345
+ value: V.profile.phone,
346
+ onChange: (e) => Z("profile", "phone", e.target.value),
347
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
348
+ })] })]
349
+ }),
350
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
340
351
  className: "block text-sm font-medium text-text-primary mb-1.5",
341
- children: "Gender"
342
- }), /* @__PURE__ */ N("select", {
343
- value: R.profile.gender,
344
- onChange: (e) => J("profile", "gender", e.target.value),
345
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
346
- children: [
347
- /* @__PURE__ */ M("option", {
348
- value: "",
349
- children: "Select gender"
350
- }),
351
- /* @__PURE__ */ M("option", {
352
- value: "male",
353
- children: "Male"
354
- }),
355
- /* @__PURE__ */ M("option", {
356
- value: "female",
357
- children: "Female"
358
- }),
359
- /* @__PURE__ */ M("option", {
360
- value: "other",
361
- children: "Other"
362
- }),
363
- /* @__PURE__ */ M("option", {
364
- value: "prefer-not-to-say",
365
- children: "Prefer not to say"
366
- })
367
- ]
368
- })] })]
369
- })
370
- ]
371
- }),
372
- preferences: () => /* @__PURE__ */ N("div", {
373
- className: "space-y-6",
374
- children: [
375
- /* @__PURE__ */ M("h3", {
376
- className: "text-base font-semibold text-text-primary",
377
- children: "App Preferences"
378
- }),
379
- /* @__PURE__ */ N("div", {
380
- className: "grid grid-cols-1 gap-4 sm:grid-cols-3",
381
- children: [
382
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
352
+ children: "Bio"
353
+ }), /* @__PURE__ */ M("textarea", {
354
+ rows: 3,
355
+ value: V.profile.bio,
356
+ onChange: (e) => Z("profile", "bio", e.target.value),
357
+ placeholder: "Tell us about yourself...",
358
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)] resize-none"
359
+ })] }),
360
+ /* @__PURE__ */ N("div", {
361
+ className: "grid grid-cols-1 gap-4 sm:grid-cols-2",
362
+ children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
383
363
  className: "block text-sm font-medium text-text-primary mb-1.5",
384
- children: /* @__PURE__ */ N("span", {
385
- className: "flex items-center gap-1.5",
386
- children: [/* @__PURE__ */ M(m, { className: "h-4 w-4 text-text-secondary" }), " Language"]
387
- })
364
+ children: "Date of Birth"
365
+ }), /* @__PURE__ */ M("input", {
366
+ type: "date",
367
+ value: V.profile.dateOfBirth,
368
+ onChange: (e) => Z("profile", "dateOfBirth", e.target.value),
369
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
370
+ })] }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
371
+ className: "block text-sm font-medium text-text-primary mb-1.5",
372
+ children: "Gender"
388
373
  }), /* @__PURE__ */ N("select", {
389
- value: R.preferences.language,
390
- onChange: (e) => J("preferences", "language", e.target.value),
374
+ value: V.profile.gender,
375
+ onChange: (e) => Z("profile", "gender", e.target.value),
391
376
  className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
392
377
  children: [
393
378
  /* @__PURE__ */ M("option", {
394
- value: "en",
395
- children: "English"
396
- }),
397
- /* @__PURE__ */ M("option", {
398
- value: "hi",
399
- children: "Hindi"
379
+ value: "",
380
+ children: "Select gender"
400
381
  }),
401
382
  /* @__PURE__ */ M("option", {
402
- value: "ta",
403
- children: "Tamil"
383
+ value: "male",
384
+ children: "Male"
404
385
  }),
405
386
  /* @__PURE__ */ M("option", {
406
- value: "kn",
407
- children: "Kannada"
387
+ value: "female",
388
+ children: "Female"
408
389
  }),
409
390
  /* @__PURE__ */ M("option", {
410
- value: "te",
411
- children: "Telugu"
391
+ value: "other",
392
+ children: "Other"
412
393
  }),
413
394
  /* @__PURE__ */ M("option", {
414
- value: "ml",
415
- children: "Malayalam"
395
+ value: "prefer-not-to-say",
396
+ children: "Prefer not to say"
416
397
  })
417
398
  ]
418
- })] }),
419
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
420
- className: "block text-sm font-medium text-text-primary mb-1.5",
421
- children: "Timezone"
422
- }), /* @__PURE__ */ N("select", {
423
- value: R.preferences.timezone,
424
- onChange: (e) => J("preferences", "timezone", e.target.value),
425
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
399
+ })] })]
400
+ })
401
+ ]
402
+ }),
403
+ preferences: () => /* @__PURE__ */ N("div", {
404
+ className: "space-y-6",
405
+ children: [
406
+ /* @__PURE__ */ M("h3", {
407
+ className: "text-base font-semibold text-text-primary",
408
+ children: "App Preferences"
409
+ }),
410
+ /* @__PURE__ */ N("div", {
411
+ className: "grid grid-cols-1 gap-4 sm:grid-cols-3",
412
+ children: [
413
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
414
+ className: "block text-sm font-medium text-text-primary mb-1.5",
415
+ children: /* @__PURE__ */ N("span", {
416
+ className: "flex items-center gap-1.5",
417
+ children: [/* @__PURE__ */ M(m, { className: "h-4 w-4 text-text-secondary" }), " Language"]
418
+ })
419
+ }), /* @__PURE__ */ N("select", {
420
+ value: V.preferences.language,
421
+ onChange: (e) => Z("preferences", "language", e.target.value),
422
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
423
+ children: [
424
+ /* @__PURE__ */ M("option", {
425
+ value: "en",
426
+ children: "English"
427
+ }),
428
+ /* @__PURE__ */ M("option", {
429
+ value: "hi",
430
+ children: "Hindi"
431
+ }),
432
+ /* @__PURE__ */ M("option", {
433
+ value: "ta",
434
+ children: "Tamil"
435
+ }),
436
+ /* @__PURE__ */ M("option", {
437
+ value: "kn",
438
+ children: "Kannada"
439
+ }),
440
+ /* @__PURE__ */ M("option", {
441
+ value: "te",
442
+ children: "Telugu"
443
+ }),
444
+ /* @__PURE__ */ M("option", {
445
+ value: "ml",
446
+ children: "Malayalam"
447
+ })
448
+ ]
449
+ })] }),
450
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
451
+ className: "block text-sm font-medium text-text-primary mb-1.5",
452
+ children: "Timezone"
453
+ }), /* @__PURE__ */ N("select", {
454
+ value: V.preferences.timezone,
455
+ onChange: (e) => Z("preferences", "timezone", e.target.value),
456
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
457
+ children: [
458
+ /* @__PURE__ */ M("option", {
459
+ value: "Asia/Kolkata",
460
+ children: "India (IST)"
461
+ }),
462
+ /* @__PURE__ */ M("option", {
463
+ value: "Asia/Dubai",
464
+ children: "Dubai (GST)"
465
+ }),
466
+ /* @__PURE__ */ M("option", {
467
+ value: "Europe/London",
468
+ children: "London (GMT)"
469
+ }),
470
+ /* @__PURE__ */ M("option", {
471
+ value: "America/New_York",
472
+ children: "New York (EST)"
473
+ })
474
+ ]
475
+ })] }),
476
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
477
+ className: "block text-sm font-medium text-text-primary mb-1.5",
478
+ children: "Currency"
479
+ }), /* @__PURE__ */ N("select", {
480
+ value: V.preferences.currency,
481
+ onChange: (e) => Z("preferences", "currency", e.target.value),
482
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
483
+ children: [
484
+ /* @__PURE__ */ M("option", {
485
+ value: "INR",
486
+ children: "Indian Rupee (₹)"
487
+ }),
488
+ /* @__PURE__ */ M("option", {
489
+ value: "USD",
490
+ children: "US Dollar ($)"
491
+ }),
492
+ /* @__PURE__ */ M("option", {
493
+ value: "EUR",
494
+ children: "Euro (€)"
495
+ }),
496
+ /* @__PURE__ */ M("option", {
497
+ value: "GBP",
498
+ children: "British Pound (£)"
499
+ })
500
+ ]
501
+ })] })
502
+ ]
503
+ }),
504
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
505
+ className: "block text-sm font-medium text-text-primary mb-3",
506
+ children: "Theme"
507
+ }), /* @__PURE__ */ M("div", {
508
+ className: "flex gap-3 flex-wrap",
509
+ children: [
510
+ {
511
+ value: "light",
512
+ label: "Light",
513
+ Icon: O
514
+ },
515
+ {
516
+ value: "dark",
517
+ label: "Dark",
518
+ Icon: x
519
+ },
520
+ {
521
+ value: "system",
522
+ label: "System",
523
+ Icon: b
524
+ }
525
+ ].map(({ value: e, label: n, Icon: r }) => /* @__PURE__ */ N("label", {
526
+ className: t("flex items-center gap-2 rounded-lg border px-4 py-2.5 text-sm font-medium cursor-pointer transition-colors", V.preferences.theme === e ? "border-primary bg-action-primary-bg/10 text-text-primary" : "border-border-subtle text-text-secondary hover:border-accent-foreground/20 hover:text-text-primary"),
426
527
  children: [
427
- /* @__PURE__ */ M("option", {
428
- value: "Asia/Kolkata",
429
- children: "India (IST)"
528
+ /* @__PURE__ */ M("input", {
529
+ type: "radio",
530
+ name: "theme",
531
+ value: e,
532
+ checked: V.preferences.theme === e,
533
+ onChange: (e) => Z("preferences", "theme", e.target.value),
534
+ className: "sr-only"
430
535
  }),
431
- /* @__PURE__ */ M("option", {
432
- value: "Asia/Dubai",
433
- children: "Dubai (GST)"
434
- }),
435
- /* @__PURE__ */ M("option", {
436
- value: "Europe/London",
437
- children: "London (GMT)"
438
- }),
439
- /* @__PURE__ */ M("option", {
440
- value: "America/New_York",
441
- children: "New York (EST)"
442
- })
536
+ /* @__PURE__ */ M(r, { className: "h-4 w-4" }),
537
+ n
443
538
  ]
444
- })] }),
445
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
446
- className: "block text-sm font-medium text-text-primary mb-1.5",
447
- children: "Currency"
539
+ }, e))
540
+ })] }),
541
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ N("div", {
542
+ className: "flex items-center gap-2 mb-4",
543
+ children: [/* @__PURE__ */ M(c, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("h4", {
544
+ className: "text-sm font-semibold text-text-primary",
545
+ children: "Notification Preferences"
546
+ })]
547
+ }), /* @__PURE__ */ M("div", {
548
+ className: "space-y-3",
549
+ children: [
550
+ {
551
+ key: "email",
552
+ label: "Email notifications"
553
+ },
554
+ {
555
+ key: "sms",
556
+ label: "SMS notifications"
557
+ },
558
+ {
559
+ key: "push",
560
+ label: "Push notifications"
561
+ },
562
+ {
563
+ key: "orderUpdates",
564
+ label: "Order status updates"
565
+ },
566
+ {
567
+ key: "promotions",
568
+ label: "Promotional offers"
569
+ },
570
+ {
571
+ key: "newsletters",
572
+ label: "Newsletters and updates"
573
+ },
574
+ {
575
+ key: "security",
576
+ label: "Security alerts"
577
+ }
578
+ ].map((e) => /* @__PURE__ */ N("div", {
579
+ className: "flex items-center justify-between rounded-lg border border-border-subtle p-3",
580
+ children: [/* @__PURE__ */ M("span", {
581
+ className: "text-sm text-text-primary",
582
+ children: e.label
583
+ }), /* @__PURE__ */ M(z, {
584
+ checked: V.preferences.notifications[e.key],
585
+ onChange: (t) => Q("preferences", "notifications", e.key, t),
586
+ label: e.label
587
+ })]
588
+ }, e.key))
589
+ })] })
590
+ ]
591
+ }),
592
+ security: () => /* @__PURE__ */ N("div", {
593
+ className: "space-y-6",
594
+ children: [
595
+ /* @__PURE__ */ M("h3", {
596
+ className: "text-base font-semibold text-text-primary",
597
+ children: "Security Settings"
598
+ }),
599
+ /* @__PURE__ */ N("div", {
600
+ className: "flex items-start gap-3 rounded-lg border border-status-warning-text/30 bg-status-warning-bg-subtle p-4",
601
+ children: [/* @__PURE__ */ M(s, { className: "h-5 w-5 text-status-warning-text shrink-0 mt-0.5" }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
602
+ className: "text-sm font-medium text-text-primary",
603
+ children: "Account Security"
604
+ }), /* @__PURE__ */ M("p", {
605
+ className: "text-xs text-text-secondary",
606
+ children: "Keep your account secure by enabling two-factor authentication and monitoring login activity."
607
+ })] })]
608
+ }),
609
+ /* @__PURE__ */ N("div", {
610
+ className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
611
+ children: [/* @__PURE__ */ N("div", {
612
+ className: "flex-1",
613
+ children: [/* @__PURE__ */ N("div", {
614
+ className: "flex items-center gap-2",
615
+ children: [/* @__PURE__ */ M(_, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("p", {
616
+ className: "text-sm font-medium text-text-primary",
617
+ children: "Two-Factor Authentication"
618
+ })]
619
+ }), /* @__PURE__ */ M("p", {
620
+ className: "text-xs text-text-secondary mt-0.5 ml-6",
621
+ children: "Add an extra layer of security to your account"
622
+ })]
623
+ }), /* @__PURE__ */ M(z, {
624
+ checked: V.security.twoFactorEnabled,
625
+ onChange: (e) => Z("security", "twoFactorEnabled", e),
626
+ label: "Two-factor authentication"
627
+ })]
628
+ }),
629
+ /* @__PURE__ */ N("div", {
630
+ className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
631
+ children: [/* @__PURE__ */ N("div", {
632
+ className: "flex-1",
633
+ children: [/* @__PURE__ */ M("p", {
634
+ className: "text-sm font-medium text-text-primary",
635
+ children: "Login Alerts"
636
+ }), /* @__PURE__ */ M("p", {
637
+ className: "text-xs text-text-secondary mt-0.5",
638
+ children: "Get notified when someone logs into your account"
639
+ })]
640
+ }), /* @__PURE__ */ M(z, {
641
+ checked: V.security.loginAlerts,
642
+ onChange: (e) => Z("security", "loginAlerts", e),
643
+ label: "Login alerts"
644
+ })]
645
+ }),
646
+ /* @__PURE__ */ N("div", {
647
+ className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
648
+ children: [/* @__PURE__ */ N("div", {
649
+ className: "flex-1",
650
+ children: [/* @__PURE__ */ M("p", {
651
+ className: "text-sm font-medium text-text-primary",
652
+ children: "Session Timeout"
653
+ }), /* @__PURE__ */ M("p", {
654
+ className: "text-xs text-text-secondary mt-0.5",
655
+ children: "Auto-logout after inactivity"
656
+ })]
448
657
  }), /* @__PURE__ */ N("select", {
449
- value: R.preferences.currency,
450
- onChange: (e) => J("preferences", "currency", e.target.value),
451
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
658
+ value: V.security.sessionTimeout,
659
+ onChange: (e) => Z("security", "sessionTimeout", e.target.value),
660
+ className: "rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)] w-36",
452
661
  children: [
453
662
  /* @__PURE__ */ M("option", {
454
- value: "INR",
455
- children: "Indian Rupee (₹)"
663
+ value: "15",
664
+ children: "15 minutes"
665
+ }),
666
+ /* @__PURE__ */ M("option", {
667
+ value: "30",
668
+ children: "30 minutes"
456
669
  }),
457
670
  /* @__PURE__ */ M("option", {
458
- value: "USD",
459
- children: "US Dollar ($)"
671
+ value: "60",
672
+ children: "1 hour"
460
673
  }),
461
674
  /* @__PURE__ */ M("option", {
462
- value: "EUR",
463
- children: "Euro (€)"
675
+ value: "120",
676
+ children: "2 hours"
464
677
  }),
465
678
  /* @__PURE__ */ M("option", {
466
- value: "GBP",
467
- children: "British Pound (£)"
679
+ value: "0",
680
+ children: "Never"
468
681
  })
469
682
  ]
470
- })] })
471
- ]
472
- }),
473
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
474
- className: "block text-sm font-medium text-text-primary mb-3",
475
- children: "Theme"
476
- }), /* @__PURE__ */ M("div", {
477
- className: "flex gap-3 flex-wrap",
478
- children: [
479
- {
480
- value: "light",
481
- label: "Light",
482
- Icon: O
483
- },
484
- {
485
- value: "dark",
486
- label: "Dark",
487
- Icon: x
488
- },
489
- {
490
- value: "system",
491
- label: "System",
492
- Icon: b
493
- }
494
- ].map(({ value: e, label: n, Icon: r }) => /* @__PURE__ */ N("label", {
495
- className: t("flex items-center gap-2 rounded-lg border px-4 py-2.5 text-sm font-medium cursor-pointer transition-colors", R.preferences.theme === e ? "border-primary bg-action-primary-bg/10 text-text-primary" : "border-border-subtle text-text-secondary hover:border-accent-foreground/20 hover:text-text-primary"),
496
- children: [
497
- /* @__PURE__ */ M("input", {
498
- type: "radio",
499
- name: "theme",
500
- value: e,
501
- checked: R.preferences.theme === e,
502
- onChange: (e) => J("preferences", "theme", e.target.value),
503
- className: "sr-only"
504
- }),
505
- /* @__PURE__ */ M(r, { className: "h-4 w-4" }),
506
- n
507
- ]
508
- }, e))
509
- })] }),
510
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ N("div", {
511
- className: "flex items-center gap-2 mb-4",
512
- children: [/* @__PURE__ */ M(c, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("h4", {
513
- className: "text-sm font-semibold text-text-primary",
514
- children: "Notification Preferences"
515
- })]
516
- }), /* @__PURE__ */ M("div", {
517
- className: "space-y-3",
518
- children: [
519
- {
520
- key: "email",
521
- label: "Email notifications"
522
- },
523
- {
524
- key: "sms",
525
- label: "SMS notifications"
526
- },
527
- {
528
- key: "push",
529
- label: "Push notifications"
530
- },
531
- {
532
- key: "orderUpdates",
533
- label: "Order status updates"
534
- },
535
- {
536
- key: "promotions",
537
- label: "Promotional offers"
538
- },
539
- {
540
- key: "newsletters",
541
- label: "Newsletters and updates"
542
- },
543
- {
544
- key: "security",
545
- label: "Security alerts"
546
- }
547
- ].map((e) => /* @__PURE__ */ N("div", {
548
- className: "flex items-center justify-between rounded-lg border border-border-subtle p-3",
549
- children: [/* @__PURE__ */ M("span", {
550
- className: "text-sm text-text-primary",
551
- children: e.label
552
- }), /* @__PURE__ */ M(I, {
553
- checked: R.preferences.notifications[e.key],
554
- onChange: (t) => Y("preferences", "notifications", e.key, t),
555
- label: e.label
556
683
  })]
557
- }, e.key))
558
- })] })
559
- ]
560
- }),
561
- security: () => /* @__PURE__ */ N("div", {
562
- className: "space-y-6",
563
- children: [
564
- /* @__PURE__ */ M("h3", {
565
- className: "text-base font-semibold text-text-primary",
566
- children: "Security Settings"
567
- }),
568
- /* @__PURE__ */ N("div", {
569
- className: "flex items-start gap-3 rounded-lg border border-status-warning-text/30 bg-status-warning-bg-subtle p-4",
570
- children: [/* @__PURE__ */ M(s, { className: "h-5 w-5 text-status-warning-text shrink-0 mt-0.5" }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
571
- className: "text-sm font-medium text-text-primary",
572
- children: "Account Security"
573
- }), /* @__PURE__ */ M("p", {
574
- className: "text-xs text-text-secondary",
575
- children: "Keep your account secure by enabling two-factor authentication and monitoring login activity."
576
- })] })]
577
- }),
578
- /* @__PURE__ */ N("div", {
579
- className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
580
- children: [/* @__PURE__ */ N("div", {
581
- className: "flex-1",
582
- children: [/* @__PURE__ */ N("div", {
583
- className: "flex items-center gap-2",
584
- children: [/* @__PURE__ */ M(_, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ M("p", {
585
- className: "text-sm font-medium text-text-primary",
586
- children: "Two-Factor Authentication"
684
+ }),
685
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("h4", {
686
+ className: "text-sm font-semibold text-text-primary mb-3",
687
+ children: "Trusted Devices"
688
+ }), /* @__PURE__ */ M("div", {
689
+ className: "space-y-3",
690
+ children: V.security.trustedDevices.map((e) => /* @__PURE__ */ N("div", {
691
+ className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
692
+ children: [/* @__PURE__ */ N("div", {
693
+ className: "flex items-center gap-3",
694
+ children: [e.os.toLowerCase().includes("mac") || e.os.toLowerCase().includes("windows") ? /* @__PURE__ */ M(h, { className: "h-5 w-5 text-text-secondary shrink-0" }) : /* @__PURE__ */ M(D, { className: "h-5 w-5 text-text-secondary shrink-0" }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ N("div", {
695
+ className: "flex items-center gap-2",
696
+ children: [/* @__PURE__ */ M("p", {
697
+ className: "text-sm font-medium text-text-primary",
698
+ children: e.name
699
+ }), e.isCurrent && /* @__PURE__ */ M("span", {
700
+ className: "inline-flex items-center rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs font-medium text-status-success-text",
701
+ children: "Current"
702
+ })]
703
+ }), /* @__PURE__ */ N("p", {
704
+ className: "text-xs text-text-secondary",
705
+ children: [
706
+ e.browser,
707
+ " · ",
708
+ e.os
709
+ ]
710
+ })] })]
711
+ }), !e.isCurrent && /* @__PURE__ */ M("button", {
712
+ type: "button",
713
+ onClick: () => te(e.id),
714
+ className: "rounded-lg border border-border-subtle px-3 py-1.5 text-xs font-medium text-status-error-text hover:bg-status-error-bg/10 transition-colors",
715
+ children: "Remove"
587
716
  })]
588
- }), /* @__PURE__ */ M("p", {
589
- className: "text-xs text-text-secondary mt-0.5 ml-6",
590
- children: "Add an extra layer of security to your account"
591
- })]
592
- }), /* @__PURE__ */ M(I, {
593
- checked: R.security.twoFactorEnabled,
594
- onChange: (e) => J("security", "twoFactorEnabled", e),
595
- label: "Two-factor authentication"
596
- })]
597
- }),
598
- /* @__PURE__ */ N("div", {
599
- className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
600
- children: [/* @__PURE__ */ N("div", {
601
- className: "flex-1",
602
- children: [/* @__PURE__ */ M("p", {
603
- className: "text-sm font-medium text-text-primary",
604
- children: "Login Alerts"
605
- }), /* @__PURE__ */ M("p", {
606
- className: "text-xs text-text-secondary mt-0.5",
607
- children: "Get notified when someone logs into your account"
608
- })]
609
- }), /* @__PURE__ */ M(I, {
610
- checked: R.security.loginAlerts,
611
- onChange: (e) => J("security", "loginAlerts", e),
612
- label: "Login alerts"
613
- })]
614
- }),
615
- /* @__PURE__ */ N("div", {
616
- className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
617
- children: [/* @__PURE__ */ N("div", {
618
- className: "flex-1",
619
- children: [/* @__PURE__ */ M("p", {
620
- className: "text-sm font-medium text-text-primary",
621
- children: "Session Timeout"
622
- }), /* @__PURE__ */ M("p", {
623
- className: "text-xs text-text-secondary mt-0.5",
624
- children: "Auto-logout after inactivity"
717
+ }, e.id))
718
+ })] }),
719
+ /* @__PURE__ */ N("div", {
720
+ className: "flex flex-wrap gap-3",
721
+ children: [/* @__PURE__ */ N("button", {
722
+ type: "button",
723
+ onClick: () => alert("Password change functionality coming soon"),
724
+ className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
725
+ children: [/* @__PURE__ */ M(_, { className: "h-4 w-4" }), "Change Password"]
726
+ }), /* @__PURE__ */ N("button", {
727
+ type: "button",
728
+ onClick: ne,
729
+ className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
730
+ children: [/* @__PURE__ */ M(v, { className: "h-4 w-4" }), "Logout All Devices"]
625
731
  })]
732
+ })
733
+ ]
734
+ }),
735
+ privacy: () => /* @__PURE__ */ N("div", {
736
+ className: "space-y-6",
737
+ children: [
738
+ /* @__PURE__ */ M("h3", {
739
+ className: "text-base font-semibold text-text-primary",
740
+ children: "Privacy Controls"
741
+ }),
742
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
743
+ className: "block text-sm font-medium text-text-primary mb-1.5",
744
+ children: /* @__PURE__ */ N("span", {
745
+ className: "flex items-center gap-1.5",
746
+ children: [/* @__PURE__ */ M(p, { className: "h-4 w-4 text-text-secondary" }), " Profile Visibility"]
747
+ })
626
748
  }), /* @__PURE__ */ N("select", {
627
- value: R.security.sessionTimeout,
628
- onChange: (e) => J("security", "sessionTimeout", e.target.value),
629
- className: "rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)] w-36",
749
+ value: V.privacy.profileVisibility,
750
+ onChange: (e) => Z("privacy", "profileVisibility", e.target.value),
751
+ className: "w-full max-w-sm rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
630
752
  children: [
631
753
  /* @__PURE__ */ M("option", {
632
- value: "15",
633
- children: "15 minutes"
634
- }),
635
- /* @__PURE__ */ M("option", {
636
- value: "30",
637
- children: "30 minutes"
754
+ value: "public",
755
+ children: "Public - Anyone can see your profile"
638
756
  }),
639
757
  /* @__PURE__ */ M("option", {
640
- value: "60",
641
- children: "1 hour"
758
+ value: "private",
759
+ children: "Private - Only you can see your profile"
642
760
  }),
643
761
  /* @__PURE__ */ M("option", {
644
- value: "120",
645
- children: "2 hours"
646
- }),
647
- /* @__PURE__ */ M("option", {
648
- value: "0",
649
- children: "Never"
762
+ value: "friends",
763
+ children: "Friends - Only friends can see your profile"
650
764
  })
651
765
  ]
652
- })]
653
- }),
654
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("h4", {
655
- className: "text-sm font-semibold text-text-primary mb-3",
656
- children: "Trusted Devices"
657
- }), /* @__PURE__ */ M("div", {
658
- className: "space-y-3",
659
- children: R.security.trustedDevices.map((e) => /* @__PURE__ */ N("div", {
766
+ })] }),
767
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("h4", {
768
+ className: "text-sm font-semibold text-text-primary mb-3",
769
+ children: "Data Sharing"
770
+ }), /* @__PURE__ */ M("div", {
771
+ className: "space-y-3",
772
+ children: [
773
+ {
774
+ key: "analytics",
775
+ label: "Share usage analytics to improve the app"
776
+ },
777
+ {
778
+ key: "marketing",
779
+ label: "Share data for personalized marketing"
780
+ },
781
+ {
782
+ key: "thirdParty",
783
+ label: "Share data with third-party partners"
784
+ }
785
+ ].map((e) => /* @__PURE__ */ N("div", {
786
+ className: "flex items-center justify-between rounded-lg border border-border-subtle p-3",
787
+ children: [/* @__PURE__ */ M("span", {
788
+ className: "text-sm text-text-primary",
789
+ children: e.label
790
+ }), /* @__PURE__ */ M(z, {
791
+ checked: V.privacy.dataSharing[e.key],
792
+ onChange: (t) => Q("privacy", "dataSharing", e.key, t),
793
+ label: e.label
794
+ })]
795
+ }, e.key))
796
+ })] }),
797
+ /* @__PURE__ */ N("div", {
798
+ className: "space-y-3",
799
+ children: [/* @__PURE__ */ N("div", {
800
+ className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
801
+ children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
802
+ className: "text-sm font-medium text-text-primary",
803
+ children: "Location Tracking"
804
+ }), /* @__PURE__ */ M("p", {
805
+ className: "text-xs text-text-secondary",
806
+ children: "Allow app to track your location for better service"
807
+ })] }), /* @__PURE__ */ M(z, {
808
+ checked: V.privacy.locationTracking,
809
+ onChange: (e) => Z("privacy", "locationTracking", e),
810
+ label: "Location tracking"
811
+ })]
812
+ }), /* @__PURE__ */ N("div", {
813
+ className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
814
+ children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
815
+ className: "text-sm font-medium text-text-primary",
816
+ children: "Activity History"
817
+ }), /* @__PURE__ */ M("p", {
818
+ className: "text-xs text-text-secondary",
819
+ children: "Keep track of your orders and activities"
820
+ })] }), /* @__PURE__ */ M(z, {
821
+ checked: V.privacy.activityHistory,
822
+ onChange: (e) => Z("privacy", "activityHistory", e),
823
+ label: "Activity history"
824
+ })]
825
+ })]
826
+ }),
827
+ /* @__PURE__ */ M("div", {
828
+ className: "rounded-lg border border-status-error-text/30 bg-status-error-bg-subtle p-4",
829
+ children: /* @__PURE__ */ N("div", {
830
+ className: "flex items-start gap-3",
831
+ children: [/* @__PURE__ */ M(k, { className: "h-5 w-5 text-status-error-text shrink-0 mt-0.5" }), /* @__PURE__ */ N("div", { children: [
832
+ /* @__PURE__ */ M("p", {
833
+ className: "text-sm font-medium text-text-primary",
834
+ children: "Delete Account"
835
+ }),
836
+ /* @__PURE__ */ M("p", {
837
+ className: "text-xs text-text-secondary mt-0.5",
838
+ children: "Permanently delete your account and all associated data. This action cannot be undone."
839
+ }),
840
+ /* @__PURE__ */ M("button", {
841
+ type: "button",
842
+ onClick: re,
843
+ className: "mt-3 rounded-lg border border-status-error-text/30 px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/10 transition-colors",
844
+ children: "Delete Account"
845
+ })
846
+ ] })]
847
+ })
848
+ })
849
+ ]
850
+ }),
851
+ billing: () => /* @__PURE__ */ N("div", {
852
+ className: "space-y-6",
853
+ children: [
854
+ /* @__PURE__ */ M("h3", {
855
+ className: "text-base font-semibold text-text-primary",
856
+ children: "Billing & Payments"
857
+ }),
858
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("h4", {
859
+ className: "text-sm font-semibold text-text-primary mb-3",
860
+ children: /* @__PURE__ */ N("span", {
861
+ className: "flex items-center gap-1.5",
862
+ children: [/* @__PURE__ */ M(f, { className: "h-4 w-4 text-text-secondary" }), " Default Payment Method"]
863
+ })
864
+ }), V.billing.paymentMethod ? /* @__PURE__ */ N("div", {
660
865
  className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
661
866
  children: [/* @__PURE__ */ N("div", {
662
867
  className: "flex items-center gap-3",
663
- children: [e.os.toLowerCase().includes("mac") || e.os.toLowerCase().includes("windows") ? /* @__PURE__ */ M(h, { className: "h-5 w-5 text-text-secondary shrink-0" }) : /* @__PURE__ */ M(D, { className: "h-5 w-5 text-text-secondary shrink-0" }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ N("div", {
664
- className: "flex items-center gap-2",
665
- children: [/* @__PURE__ */ M("p", {
666
- className: "text-sm font-medium text-text-primary",
667
- children: e.name
668
- }), e.isCurrent && /* @__PURE__ */ M("span", {
669
- className: "inline-flex items-center rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs font-medium text-status-success-text",
670
- children: "Current"
671
- })]
672
- }), /* @__PURE__ */ N("p", {
673
- className: "text-xs text-text-secondary",
868
+ children: [/* @__PURE__ */ M(f, { className: "h-6 w-6 text-text-secondary" }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ N("p", {
869
+ className: "text-sm font-medium text-text-primary",
674
870
  children: [
675
- e.browser,
676
- " · ",
677
- e.os
871
+ V.billing.paymentMethod.provider,
872
+ " ending in",
873
+ " ",
874
+ V.billing.paymentMethod.last4
678
875
  ]
876
+ }), /* @__PURE__ */ M("p", {
877
+ className: "text-xs text-text-secondary capitalize",
878
+ children: V.billing.paymentMethod.type
679
879
  })] })]
680
- }), !e.isCurrent && /* @__PURE__ */ M("button", {
880
+ }), /* @__PURE__ */ M("button", {
681
881
  type: "button",
682
- onClick: () => Q(e.id),
683
- className: "rounded-lg border border-border-subtle px-3 py-1.5 text-xs font-medium text-status-error-text hover:bg-status-error-bg/10 transition-colors",
684
- children: "Remove"
882
+ onClick: () => alert("Change payment method coming soon"),
883
+ className: "rounded-lg border border-border-subtle px-3 py-1.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
884
+ children: "Change"
685
885
  })]
686
- }, e.id))
687
- })] }),
688
- /* @__PURE__ */ N("div", {
689
- className: "flex flex-wrap gap-3",
690
- children: [/* @__PURE__ */ N("button", {
691
- type: "button",
692
- onClick: () => alert("Password change functionality coming soon"),
693
- className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
694
- children: [/* @__PURE__ */ M(_, { className: "h-4 w-4" }), "Change Password"]
695
- }), /* @__PURE__ */ N("button", {
696
- type: "button",
697
- onClick: $,
698
- className: "flex items-center gap-1.5 rounded-lg border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
699
- children: [/* @__PURE__ */ M(v, { className: "h-4 w-4" }), "Logout All Devices"]
700
- })]
701
- })
702
- ]
703
- }),
704
- privacy: () => /* @__PURE__ */ N("div", {
705
- className: "space-y-6",
706
- children: [
707
- /* @__PURE__ */ M("h3", {
708
- className: "text-base font-semibold text-text-primary",
709
- children: "Privacy Controls"
710
- }),
711
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
712
- className: "block text-sm font-medium text-text-primary mb-1.5",
713
- children: /* @__PURE__ */ N("span", {
714
- className: "flex items-center gap-1.5",
715
- children: [/* @__PURE__ */ M(p, { className: "h-4 w-4 text-text-secondary" }), " Profile Visibility"]
716
- })
717
- }), /* @__PURE__ */ N("select", {
718
- value: R.privacy.profileVisibility,
719
- onChange: (e) => J("privacy", "profileVisibility", e.target.value),
720
- className: "w-full max-w-sm rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
721
- children: [
722
- /* @__PURE__ */ M("option", {
723
- value: "public",
724
- children: "Public - Anyone can see your profile"
725
- }),
726
- /* @__PURE__ */ M("option", {
727
- value: "private",
728
- children: "Private - Only you can see your profile"
729
- }),
730
- /* @__PURE__ */ M("option", {
731
- value: "friends",
732
- children: "Friends - Only friends can see your profile"
733
- })
734
- ]
735
- })] }),
736
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("h4", {
737
- className: "text-sm font-semibold text-text-primary mb-3",
738
- children: "Data Sharing"
739
- }), /* @__PURE__ */ M("div", {
740
- className: "space-y-3",
741
- children: [
742
- {
743
- key: "analytics",
744
- label: "Share usage analytics to improve the app"
745
- },
746
- {
747
- key: "marketing",
748
- label: "Share data for personalized marketing"
749
- },
750
- {
751
- key: "thirdParty",
752
- label: "Share data with third-party partners"
753
- }
754
- ].map((e) => /* @__PURE__ */ N("div", {
755
- className: "flex items-center justify-between rounded-lg border border-border-subtle p-3",
756
- children: [/* @__PURE__ */ M("span", {
757
- className: "text-sm text-text-primary",
758
- children: e.label
759
- }), /* @__PURE__ */ M(I, {
760
- checked: R.privacy.dataSharing[e.key],
761
- onChange: (t) => Y("privacy", "dataSharing", e.key, t),
762
- label: e.label
763
- })]
764
- }, e.key))
765
- })] }),
766
- /* @__PURE__ */ N("div", {
767
- className: "space-y-3",
768
- children: [/* @__PURE__ */ N("div", {
769
- className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
770
- children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
771
- className: "text-sm font-medium text-text-primary",
772
- children: "Location Tracking"
773
- }), /* @__PURE__ */ M("p", {
774
- className: "text-xs text-text-secondary",
775
- children: "Allow app to track your location for better service"
776
- })] }), /* @__PURE__ */ M(I, {
777
- checked: R.privacy.locationTracking,
778
- onChange: (e) => J("privacy", "locationTracking", e),
779
- label: "Location tracking"
780
- })]
781
- }), /* @__PURE__ */ N("div", {
782
- className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
783
- children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
784
- className: "text-sm font-medium text-text-primary",
785
- children: "Activity History"
786
- }), /* @__PURE__ */ M("p", {
787
- className: "text-xs text-text-secondary",
788
- children: "Keep track of your orders and activities"
789
- })] }), /* @__PURE__ */ M(I, {
790
- checked: R.privacy.activityHistory,
791
- onChange: (e) => J("privacy", "activityHistory", e),
792
- label: "Activity history"
886
+ }) : /* @__PURE__ */ N("div", {
887
+ className: "rounded-lg border border-border-subtle p-4 text-center",
888
+ children: [/* @__PURE__ */ M("p", {
889
+ className: "text-sm text-text-secondary",
890
+ children: "No default payment method set"
891
+ }), /* @__PURE__ */ M("button", {
892
+ type: "button",
893
+ onClick: () => alert("Add payment method coming soon"),
894
+ className: "mt-2 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
895
+ children: "Add Payment Method"
793
896
  })]
794
- })]
795
- }),
796
- /* @__PURE__ */ M("div", {
797
- className: "rounded-lg border border-status-error-text/30 bg-status-error-bg-subtle p-4",
798
- children: /* @__PURE__ */ N("div", {
799
- className: "flex items-start gap-3",
800
- children: [/* @__PURE__ */ M(k, { className: "h-5 w-5 text-status-error-text shrink-0 mt-0.5" }), /* @__PURE__ */ N("div", { children: [
801
- /* @__PURE__ */ M("p", {
897
+ })] }),
898
+ /* @__PURE__ */ N("div", { children: [
899
+ /* @__PURE__ */ M("h4", {
900
+ className: "text-sm font-semibold text-text-primary mb-3",
901
+ children: "Auto Recharge"
902
+ }),
903
+ /* @__PURE__ */ N("div", {
904
+ className: "flex items-center justify-between rounded-lg border border-border-subtle p-4 mb-3",
905
+ children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
802
906
  className: "text-sm font-medium text-text-primary",
803
- children: "Delete Account"
804
- }),
805
- /* @__PURE__ */ M("p", {
806
- className: "text-xs text-text-secondary mt-0.5",
807
- children: "Permanently delete your account and all associated data. This action cannot be undone."
808
- }),
809
- /* @__PURE__ */ M("button", {
810
- type: "button",
811
- onClick: ee,
812
- className: "mt-3 rounded-lg border border-status-error-text/30 px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/10 transition-colors",
813
- children: "Delete Account"
814
- })
815
- ] })]
816
- })
817
- })
818
- ]
819
- }),
820
- billing: () => /* @__PURE__ */ N("div", {
821
- className: "space-y-6",
822
- children: [
823
- /* @__PURE__ */ M("h3", {
824
- className: "text-base font-semibold text-text-primary",
825
- children: "Billing & Payments"
826
- }),
827
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("h4", {
828
- className: "text-sm font-semibold text-text-primary mb-3",
829
- children: /* @__PURE__ */ N("span", {
830
- className: "flex items-center gap-1.5",
831
- children: [/* @__PURE__ */ M(f, { className: "h-4 w-4 text-text-secondary" }), " Default Payment Method"]
832
- })
833
- }), R.billing.paymentMethod ? /* @__PURE__ */ N("div", {
834
- className: "flex items-center justify-between rounded-lg border border-border-subtle p-4",
835
- children: [/* @__PURE__ */ N("div", {
836
- className: "flex items-center gap-3",
837
- children: [/* @__PURE__ */ M(f, { className: "h-6 w-6 text-text-secondary" }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ N("p", {
838
- className: "text-sm font-medium text-text-primary",
839
- children: [
840
- R.billing.paymentMethod.provider,
841
- " ending in",
842
- " ",
843
- R.billing.paymentMethod.last4
844
- ]
845
- }), /* @__PURE__ */ M("p", {
846
- className: "text-xs text-text-secondary capitalize",
847
- children: R.billing.paymentMethod.type
848
- })] })]
849
- }), /* @__PURE__ */ M("button", {
850
- type: "button",
851
- onClick: () => alert("Change payment method coming soon"),
852
- className: "rounded-lg border border-border-subtle px-3 py-1.5 text-sm font-medium text-text-primary hover:bg-accent transition-colors",
853
- children: "Change"
854
- })]
855
- }) : /* @__PURE__ */ N("div", {
856
- className: "rounded-lg border border-border-subtle p-4 text-center",
857
- children: [/* @__PURE__ */ M("p", {
858
- className: "text-sm text-text-secondary",
859
- children: "No default payment method set"
860
- }), /* @__PURE__ */ M("button", {
861
- type: "button",
862
- onClick: () => alert("Add payment method coming soon"),
863
- className: "mt-2 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
864
- children: "Add Payment Method"
865
- })]
866
- })] }),
867
- /* @__PURE__ */ N("div", { children: [
868
- /* @__PURE__ */ M("h4", {
869
- className: "text-sm font-semibold text-text-primary mb-3",
870
- children: "Auto Recharge"
871
- }),
872
- /* @__PURE__ */ N("div", {
873
- className: "flex items-center justify-between rounded-lg border border-border-subtle p-4 mb-3",
874
- children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
875
- className: "text-sm font-medium text-text-primary",
876
- children: "Enable Auto Recharge"
877
- }), /* @__PURE__ */ M("p", {
878
- className: "text-xs text-text-secondary",
879
- children: "Automatically add money when wallet balance is low"
880
- })] }), /* @__PURE__ */ M(I, {
881
- checked: R.billing.autoRecharge,
882
- onChange: (e) => J("billing", "autoRecharge", e),
883
- label: "Auto recharge"
884
- })]
885
- }),
886
- R.billing.autoRecharge && /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
887
- className: "block text-sm font-medium text-text-primary mb-1.5",
888
- children: "Auto Recharge Amount (₹)"
889
- }), /* @__PURE__ */ M("input", {
890
- type: "number",
891
- value: R.billing.autoRechargeAmount,
892
- onChange: (e) => J("billing", "autoRechargeAmount", e.target.value),
893
- placeholder: "1000",
894
- className: "w-full max-w-xs rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
895
- })] })
896
- ] }),
897
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
898
- className: "block text-sm font-medium text-text-primary mb-1.5",
899
- children: /* @__PURE__ */ N("span", {
900
- className: "flex items-center gap-1.5",
901
- children: [/* @__PURE__ */ M(S, { className: "h-4 w-4 text-text-secondary" }), " Invoice Email"]
902
- })
903
- }), /* @__PURE__ */ M("input", {
904
- type: "email",
905
- value: R.billing.invoiceEmail,
906
- onChange: (e) => J("billing", "invoiceEmail", e.target.value),
907
- placeholder: "billing@example.com",
908
- className: "w-full max-w-sm rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
909
- })] }),
910
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("h4", {
911
- className: "text-sm font-semibold text-text-primary mb-3",
912
- children: /* @__PURE__ */ N("span", {
913
- className: "flex items-center gap-1.5",
914
- children: [/* @__PURE__ */ M(l, { className: "h-4 w-4 text-text-secondary" }), " Tax Information"]
915
- })
916
- }), /* @__PURE__ */ N("div", {
917
- className: "space-y-4",
918
- children: [
919
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
920
- className: "block text-sm font-medium text-text-primary mb-1.5",
921
- children: "GST Number"
922
- }), /* @__PURE__ */ M("input", {
923
- type: "text",
924
- value: R.billing.gstNumber,
925
- onChange: (e) => J("billing", "gstNumber", e.target.value),
926
- placeholder: "29ABCDE1234F1Z5",
927
- className: "w-full max-w-sm rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
928
- })] }),
929
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
907
+ children: "Enable Auto Recharge"
908
+ }), /* @__PURE__ */ M("p", {
909
+ className: "text-xs text-text-secondary",
910
+ children: "Automatically add money when wallet balance is low"
911
+ })] }), /* @__PURE__ */ M(z, {
912
+ checked: V.billing.autoRecharge,
913
+ onChange: (e) => Z("billing", "autoRecharge", e),
914
+ label: "Auto recharge"
915
+ })]
916
+ }),
917
+ V.billing.autoRecharge && /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
930
918
  className: "block text-sm font-medium text-text-primary mb-1.5",
931
- children: "Company Name"
919
+ children: "Auto Recharge Amount (₹)"
932
920
  }), /* @__PURE__ */ M("input", {
933
- type: "text",
934
- value: R.billing.companyName,
935
- onChange: (e) => J("billing", "companyName", e.target.value),
936
- placeholder: "Your Company Name",
937
- className: "w-full max-w-sm rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
938
- })] }),
939
- /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
940
- className: "block text-sm font-medium text-text-primary mb-1.5",
941
- children: /* @__PURE__ */ N("span", {
942
- className: "flex items-center gap-1.5",
943
- children: [/* @__PURE__ */ M(y, { className: "h-4 w-4 text-text-secondary" }), " Billing Address"]
944
- })
945
- }), /* @__PURE__ */ M("textarea", {
946
- rows: 3,
947
- value: R.billing.billingAddress,
948
- onChange: (e) => J("billing", "billingAddress", e.target.value),
949
- placeholder: "Enter your complete billing address",
950
- className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)] resize-none"
921
+ type: "number",
922
+ value: V.billing.autoRechargeAmount,
923
+ onChange: (e) => Z("billing", "autoRechargeAmount", e.target.value),
924
+ placeholder: "1000",
925
+ className: "w-full max-w-xs rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
951
926
  })] })
952
- ]
953
- })] })
954
- ]
955
- })
956
- }[A]()
957
- })]
958
- })]
927
+ ] }),
928
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
929
+ className: "block text-sm font-medium text-text-primary mb-1.5",
930
+ children: /* @__PURE__ */ N("span", {
931
+ className: "flex items-center gap-1.5",
932
+ children: [/* @__PURE__ */ M(S, { className: "h-4 w-4 text-text-secondary" }), " Invoice Email"]
933
+ })
934
+ }), /* @__PURE__ */ M("input", {
935
+ type: "email",
936
+ value: V.billing.invoiceEmail,
937
+ onChange: (e) => Z("billing", "invoiceEmail", e.target.value),
938
+ placeholder: "billing@example.com",
939
+ className: "w-full max-w-sm rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
940
+ })] }),
941
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("h4", {
942
+ className: "text-sm font-semibold text-text-primary mb-3",
943
+ children: /* @__PURE__ */ N("span", {
944
+ className: "flex items-center gap-1.5",
945
+ children: [/* @__PURE__ */ M(l, { className: "h-4 w-4 text-text-secondary" }), " Tax Information"]
946
+ })
947
+ }), /* @__PURE__ */ N("div", {
948
+ className: "space-y-4",
949
+ children: [
950
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
951
+ className: "block text-sm font-medium text-text-primary mb-1.5",
952
+ children: "GST Number"
953
+ }), /* @__PURE__ */ M("input", {
954
+ type: "text",
955
+ value: V.billing.gstNumber,
956
+ onChange: (e) => Z("billing", "gstNumber", e.target.value),
957
+ placeholder: "29ABCDE1234F1Z5",
958
+ className: "w-full max-w-sm rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
959
+ })] }),
960
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
961
+ className: "block text-sm font-medium text-text-primary mb-1.5",
962
+ children: "Company Name"
963
+ }), /* @__PURE__ */ M("input", {
964
+ type: "text",
965
+ value: V.billing.companyName,
966
+ onChange: (e) => Z("billing", "companyName", e.target.value),
967
+ placeholder: "Your Company Name",
968
+ className: "w-full max-w-sm rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
969
+ })] }),
970
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("label", {
971
+ className: "block text-sm font-medium text-text-primary mb-1.5",
972
+ children: /* @__PURE__ */ N("span", {
973
+ className: "flex items-center gap-1.5",
974
+ children: [/* @__PURE__ */ M(y, { className: "h-4 w-4 text-text-secondary" }), " Billing Address"]
975
+ })
976
+ }), /* @__PURE__ */ M("textarea", {
977
+ rows: 3,
978
+ value: V.billing.billingAddress,
979
+ onChange: (e) => Z("billing", "billingAddress", e.target.value),
980
+ placeholder: "Enter your complete billing address",
981
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface py-2 px-3 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)] resize-none"
982
+ })] })
983
+ ]
984
+ })] })
985
+ ]
986
+ })
987
+ }[A]()
988
+ })]
989
+ })
990
+ ]
959
991
  });
960
992
  }
961
993
  //#endregion
962
- export { L as SettingsPage };
994
+ export { B as SettingsPage };
963
995
 
964
996
  //# sourceMappingURL=SettingsPage.js.map