@burdenoff/microfe-adaptercloud 2026.624.1 → 2026.625.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.
- package/dist/adaptercloud/components/EmptyState.js +17 -21
- package/dist/adaptercloud/components/EmptyState.js.map +1 -1
- package/dist/adaptercloud/components/InvestmentCard.js +25 -23
- package/dist/adaptercloud/components/InvestmentCard.js.map +1 -1
- package/dist/adaptercloud/components/MetricsCard.js +18 -12
- package/dist/adaptercloud/components/MetricsCard.js.map +1 -1
- package/dist/adaptercloud/components/PageLayout.js +38 -19
- package/dist/adaptercloud/components/PageLayout.js.map +1 -1
- package/dist/adaptercloud/components/RatingDisplay.js +3 -3
- package/dist/adaptercloud/components/RatingDisplay.js.map +1 -1
- package/dist/adaptercloud/components/StatusBadge.js +36 -16
- package/dist/adaptercloud/components/StatusBadge.js.map +1 -1
- package/dist/adaptercloud/pages/HomePage.js +242 -231
- package/dist/adaptercloud/pages/HomePage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js +33 -33
- package/dist/adaptercloud/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminDashboard.js +32 -32
- package/dist/adaptercloud/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminFinancialPage.js +11 -11
- package/dist/adaptercloud/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminOrdersPage.js +11 -11
- package/dist/adaptercloud/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminProfilePage.js +3 -3
- package/dist/adaptercloud/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/AdminSettingsPage.js +1 -1
- package/dist/adaptercloud/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/CartManagementPage.js +28 -28
- package/dist/adaptercloud/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/admin/UserManagementPage.js +25 -25
- package/dist/adaptercloud/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js +19 -19
- package/dist/adaptercloud/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js +7 -7
- package/dist/adaptercloud/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js +40 -37
- package/dist/adaptercloud/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js +21 -21
- package/dist/adaptercloud/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js +24 -24
- package/dist/adaptercloud/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js +20 -20
- package/dist/adaptercloud/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js +36 -36
- package/dist/adaptercloud/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js +25 -25
- package/dist/adaptercloud/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/HelpSupportPage.js +43 -43
- package/dist/adaptercloud/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/NotificationCenterPage.js +32 -31
- package/dist/adaptercloud/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/adaptercloud/pages/common/SettingsPage.js +8 -8
- package/dist/adaptercloud/pages/common/SettingsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/BookingDetailsPage.js +22 -21
- package/dist/adaptercloud/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CartDetailPage.js +18 -17
- package/dist/adaptercloud/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js +12 -11
- package/dist/adaptercloud/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CheckoutPage.js +9 -9
- package/dist/adaptercloud/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CustomerDashboard.js +30 -30
- package/dist/adaptercloud/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/customer/CustomerProfilePage.js +19 -19
- package/dist/adaptercloud/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js +24 -23
- package/dist/adaptercloud/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/FavoritesPage.js +9 -8
- package/dist/adaptercloud/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/OrderHistoryPage.js +4 -3
- package/dist/adaptercloud/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/OrderTrackingPage.js +15 -14
- package/dist/adaptercloud/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js +10 -9
- package/dist/adaptercloud/pages/customer/PaymentMethodsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/ReviewsPage.js +18 -17
- package/dist/adaptercloud/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/adaptercloud/pages/customer/SavedAddressesPage.js +14 -13
- package/dist/adaptercloud/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js +32 -32
- package/dist/adaptercloud/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js +14 -13
- package/dist/adaptercloud/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js +27 -27
- package/dist/adaptercloud/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorDashboard.js +16 -16
- package/dist/adaptercloud/pages/investor/InvestorDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js +9 -8
- package/dist/adaptercloud/pages/investor/InvestorInvestmentsPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js +12 -12
- package/dist/adaptercloud/pages/investor/InvestorPortfolioPage.js.map +1 -1
- package/dist/adaptercloud/pages/investor/InvestorProfilePage.js +19 -19
- package/dist/adaptercloud/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/TaskDetailsPage.js +26 -25
- package/dist/adaptercloud/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerDashboard.js +43 -43
- package/dist/adaptercloud/pages/worker/WorkerDashboard.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js +37 -36
- package/dist/adaptercloud/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerProfilePage.js +34 -34
- package/dist/adaptercloud/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js +27 -25
- package/dist/adaptercloud/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +3 -3
|
@@ -135,9 +135,9 @@ var C = [
|
|
|
135
135
|
className: "space-y-4",
|
|
136
136
|
children: [
|
|
137
137
|
y && /* @__PURE__ */ S("div", {
|
|
138
|
-
className: "flex items-center gap-2 rounded-lg border border-
|
|
139
|
-
children: [/* @__PURE__ */ x(u, { className: "h-4 w-4 text-
|
|
140
|
-
className: "text-sm font-medium text-
|
|
138
|
+
className: "flex items-center gap-2 rounded-lg border border-status-success-border/30 bg-status-success-bg-subtle/10 p-3",
|
|
139
|
+
children: [/* @__PURE__ */ x(u, { className: "h-4 w-4 text-status-success-text" }), /* @__PURE__ */ x("span", {
|
|
140
|
+
className: "text-sm font-medium text-status-success-text",
|
|
141
141
|
children: "Profile saved successfully!"
|
|
142
142
|
})]
|
|
143
143
|
}),
|
|
@@ -145,17 +145,17 @@ var C = [
|
|
|
145
145
|
className: "grid grid-cols-2 sm:grid-cols-4 gap-3",
|
|
146
146
|
children: [
|
|
147
147
|
/* @__PURE__ */ S("div", {
|
|
148
|
-
className: "rounded-lg border border-border-
|
|
148
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop",
|
|
149
149
|
children: [/* @__PURE__ */ S("p", {
|
|
150
150
|
className: "text-2xl font-bold text-text-primary flex items-center justify-center gap-1",
|
|
151
|
-
children: [/* @__PURE__ */ x(v, { className: "h-5 w-5 fill-
|
|
151
|
+
children: [/* @__PURE__ */ x(v, { className: "h-5 w-5 fill-status-warning-text text-status-warning-text" }), R.rating]
|
|
152
152
|
}), /* @__PURE__ */ x("p", {
|
|
153
153
|
className: "text-xs text-text-secondary",
|
|
154
154
|
children: "Rating"
|
|
155
155
|
})]
|
|
156
156
|
}),
|
|
157
157
|
/* @__PURE__ */ S("div", {
|
|
158
|
-
className: "rounded-lg border border-border-
|
|
158
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop",
|
|
159
159
|
children: [/* @__PURE__ */ x("p", {
|
|
160
160
|
className: "text-2xl font-bold text-text-primary",
|
|
161
161
|
children: R.totalOrders.toLocaleString()
|
|
@@ -165,7 +165,7 @@ var C = [
|
|
|
165
165
|
})]
|
|
166
166
|
}),
|
|
167
167
|
/* @__PURE__ */ S("div", {
|
|
168
|
-
className: "rounded-lg border border-border-
|
|
168
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop",
|
|
169
169
|
children: [/* @__PURE__ */ S("p", {
|
|
170
170
|
className: "text-2xl font-bold text-text-primary",
|
|
171
171
|
children: [R.verificationPercentage, "%"]
|
|
@@ -175,7 +175,7 @@ var C = [
|
|
|
175
175
|
})]
|
|
176
176
|
}),
|
|
177
177
|
/* @__PURE__ */ S("div", {
|
|
178
|
-
className: "rounded-lg border border-border-
|
|
178
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop",
|
|
179
179
|
children: [/* @__PURE__ */ x("p", {
|
|
180
180
|
className: "text-sm font-bold text-text-primary",
|
|
181
181
|
children: new Date(R.memberSince).toLocaleDateString("en-IN", {
|
|
@@ -231,7 +231,7 @@ var C = [
|
|
|
231
231
|
}), /* @__PURE__ */ x("div", {
|
|
232
232
|
className: "flex-1 min-w-0",
|
|
233
233
|
children: /* @__PURE__ */ S("div", {
|
|
234
|
-
className: "rounded-lg border border-border-
|
|
234
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-5 sm:p-6 bg-gloss-card shadow-pop",
|
|
235
235
|
children: [
|
|
236
236
|
c === "personal" && /* @__PURE__ */ S("div", {
|
|
237
237
|
className: "space-y-5",
|
|
@@ -265,11 +265,11 @@ var C = [
|
|
|
265
265
|
/* @__PURE__ */ S("div", {
|
|
266
266
|
className: "flex items-center gap-2 mt-1",
|
|
267
267
|
children: [/* @__PURE__ */ S("span", {
|
|
268
|
-
className: "inline-flex items-center gap-1 rounded-full bg-blue-
|
|
268
|
+
className: "inline-flex items-center gap-1 rounded-full bg-accent-blue-subtle/10 px-2.5 py-0.5 text-xs font-medium text-accent-blue",
|
|
269
269
|
children: [/* @__PURE__ */ x(o, { className: "h-3 w-3" }), "Verified"]
|
|
270
270
|
}), /* @__PURE__ */ S("span", {
|
|
271
|
-
className: "flex items-center gap-0.5 text-xs text-
|
|
272
|
-
children: [/* @__PURE__ */ x(v, { className: "h-3 w-3 fill-
|
|
271
|
+
className: "flex items-center gap-0.5 text-xs text-status-warning-text",
|
|
272
|
+
children: [/* @__PURE__ */ x(v, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }), R.rating]
|
|
273
273
|
})]
|
|
274
274
|
})
|
|
275
275
|
] })]
|
|
@@ -536,7 +536,7 @@ var C = [
|
|
|
536
536
|
type: "button",
|
|
537
537
|
onClick: () => f && B(e),
|
|
538
538
|
disabled: !f,
|
|
539
|
-
className: t("px-3 py-1.5 rounded-full text-xs font-medium transition-colors", A.workingDays.includes(e) ? "bg-blue-
|
|
539
|
+
className: t("px-3 py-1.5 rounded-full text-xs font-medium transition-colors", A.workingDays.includes(e) ? "bg-accent-blue-subtle text-white" : "bg-bg-sunken text-text-secondary", !f && "cursor-not-allowed opacity-70"),
|
|
540
540
|
children: e.slice(0, 3)
|
|
541
541
|
}, e))
|
|
542
542
|
})] }),
|
|
@@ -618,9 +618,9 @@ var C = [
|
|
|
618
618
|
className: "space-y-5",
|
|
619
619
|
children: [
|
|
620
620
|
/* @__PURE__ */ S("div", {
|
|
621
|
-
className: "flex items-start gap-3 rounded-md bg-blue-
|
|
622
|
-
children: [/* @__PURE__ */ x(a, { className: "h-4 w-4 text-
|
|
623
|
-
className: "text-xs text-
|
|
621
|
+
className: "flex items-start gap-3 rounded-md bg-accent-blue-subtle/5 border border-accent-blue-subtle/20 p-3",
|
|
622
|
+
children: [/* @__PURE__ */ x(a, { className: "h-4 w-4 text-accent-blue shrink-0 mt-0.5" }), /* @__PURE__ */ x("p", {
|
|
623
|
+
className: "text-xs text-accent-blue",
|
|
624
624
|
children: "Bank details are used for payouts. Changes require verification and may take 2-3 business days to process."
|
|
625
625
|
})]
|
|
626
626
|
}),
|
|
@@ -773,13 +773,13 @@ var C = [
|
|
|
773
773
|
...e,
|
|
774
774
|
twoFactorEnabled: !e.twoFactorEnabled
|
|
775
775
|
})),
|
|
776
|
-
className: t("h-6 w-11 rounded-full transition-colors relative", P.twoFactorEnabled ? "bg-
|
|
776
|
+
className: t("h-6 w-11 rounded-full transition-colors relative", P.twoFactorEnabled ? "bg-status-success-bg-subtle" : "bg-muted-foreground/30"),
|
|
777
777
|
children: /* @__PURE__ */ x("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform", P.twoFactorEnabled ? "translate-x-5" : "translate-x-0.5") })
|
|
778
778
|
})]
|
|
779
779
|
}), P.twoFactorEnabled && /* @__PURE__ */ S("div", {
|
|
780
780
|
className: "mt-3 flex items-center gap-2",
|
|
781
|
-
children: [/* @__PURE__ */ x(u, { className: "h-4 w-4 text-
|
|
782
|
-
className: "text-xs text-
|
|
781
|
+
children: [/* @__PURE__ */ x(u, { className: "h-4 w-4 text-status-success-text" }), /* @__PURE__ */ x("span", {
|
|
782
|
+
className: "text-xs text-status-success-text font-medium",
|
|
783
783
|
children: "2FA is enabled"
|
|
784
784
|
})]
|
|
785
785
|
})]
|
|
@@ -800,7 +800,7 @@ var C = [
|
|
|
800
800
|
className: "text-xs text-text-secondary",
|
|
801
801
|
children: "Chrome on Linux | Bangalore, IN"
|
|
802
802
|
})] }), /* @__PURE__ */ x("span", {
|
|
803
|
-
className: "text-xs text-
|
|
803
|
+
className: "text-xs text-status-success-text font-medium",
|
|
804
804
|
children: "Active now"
|
|
805
805
|
})]
|
|
806
806
|
}), /* @__PURE__ */ S("div", {
|
|
@@ -867,7 +867,7 @@ var C = [
|
|
|
867
867
|
...t,
|
|
868
868
|
[e.key]: !t[e.key]
|
|
869
869
|
})),
|
|
870
|
-
className: t("h-6 w-11 rounded-full transition-colors relative", I[e.key] ? "bg-blue-
|
|
870
|
+
className: t("h-6 w-11 rounded-full transition-colors relative", I[e.key] ? "bg-accent-blue-subtle" : "bg-muted-foreground/30"),
|
|
871
871
|
children: /* @__PURE__ */ x("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform", I[e.key] ? "translate-x-5" : "translate-x-0.5") })
|
|
872
872
|
})]
|
|
873
873
|
}, e.key))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartOwnerProfilePage.js","names":[],"sources":["../../../../src/adaptercloud/pages/cart-owner/CartOwnerProfilePage.tsx"],"sourcesContent":["/**\n * Cart Owner Profile Page\n *\n * Tabbed sidebar (personal/business/operations/banking/security/notifications),\n * profile image upload placeholder, edit mode toggle, all form fields,\n * working days checkboxes, bank details with security note,\n * password/2FA sections, notification toggles.\n *\n * @module adaptercloud/pages/cart-owner\n */\n\nimport { useState } from 'react';\nimport {\n User,\n Mail,\n Phone,\n MapPin,\n Shield,\n CheckCircle2,\n XCircle,\n FileText,\n CreditCard,\n Calendar,\n Star,\n BadgeCheck,\n Upload,\n Edit2,\n Save,\n Lock,\n Bell,\n Building2,\n Clock,\n Camera,\n Key,\n AlertCircle,\n} from 'lucide-react';\nimport { PageLayout } from '../../components/PageLayout';\nimport { useAdapterCloud } from '../../context/AdapterCloudContext';\nimport { mockCartOwner } from '../../mocks/users';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Types\n// ============================================================================\n\ntype ProfileTab = 'personal' | 'business' | 'operations' | 'banking' | 'security' | 'notifications';\n\ninterface Tab {\n id: ProfileTab;\n label: string;\n icon: typeof User;\n}\n\n// ============================================================================\n// Constants\n// ============================================================================\n\nconst profileTabs: Tab[] = [\n { id: 'personal', label: 'Personal Info', icon: User },\n { id: 'business', label: 'Business Details', icon: Building2 },\n { id: 'operations', label: 'Operations', icon: Clock },\n { id: 'banking', label: 'Banking', icon: CreditCard },\n { id: 'security', label: 'Security', icon: Lock },\n { id: 'notifications', label: 'Notifications', icon: Bell },\n];\n\nconst DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const CartOwnerProfilePage = () => {\n const { navigateTo } = useAdapterCloud();\n const [activeTab, setActiveTab] = useState<ProfileTab>('personal');\n const [isEditing, setIsEditing] = useState(false);\n const [saved, setSaved] = useState(false);\n\n // Personal Info\n const [personal, setPersonal] = useState({\n firstName: mockCartOwner.firstName,\n lastName: mockCartOwner.lastName,\n email: mockCartOwner.email,\n phone: mockCartOwner.phone,\n dateOfBirth: '1990-05-15',\n gender: 'Male',\n address: 'Koramangala 5th Block, Bangalore - 560034',\n bio: 'Passionate about South Indian cuisine. Running Dosa Express since 2020.',\n });\n\n // Business Details\n const [business, setBusiness] = useState({\n businessName: 'Dosa Express',\n category: 'Food & Beverage',\n description: 'Authentic South Indian street food with a modern twist.',\n gstNumber: '29ABCDE1234F1Z5',\n panNumber: 'ABCDE1234F',\n fssaiLicense: '12345678',\n businessAddress: 'Koramangala 5th Block, Bangalore - 560034',\n businessPhone: '+91-9876543210',\n businessEmail: 'ravi@dosaexpress.in',\n });\n\n // Operations\n const [operations, setOperations] = useState({\n workingDays: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n openTime: '09:00',\n closeTime: '21:00',\n preparationTime: 15,\n deliveryRadius: 5,\n maxOrdersPerDay: 100,\n });\n\n // Banking\n const [banking, setBanking] = useState({\n bankName: 'State Bank of India',\n accountHolder: 'Ravi Kumar',\n accountNumber: '1234567890123456',\n ifscCode: 'SBIN0001234',\n upiId: 'ravikumar@sbi',\n payoutSchedule: 'weekly',\n });\n\n // Security\n const [security, setSecurity] = useState({\n twoFactorEnabled: true,\n lastPasswordChange: '2024-01-01',\n });\n\n // Notifications\n const [notificationPrefs, setNotificationPrefs] = useState({\n orderAlerts: true,\n paymentAlerts: true,\n reviewAlerts: true,\n promotionalEmails: false,\n smsAlerts: true,\n weeklyReport: true,\n });\n\n // Profile stats\n const ownerStats = {\n rating: 4.5,\n totalOrders: 1247,\n memberSince: '2023-03-01',\n verificationPercentage: 86,\n };\n\n const handleSave = () => {\n setSaved(true);\n setIsEditing(false);\n setTimeout(() => setSaved(false), 3000);\n };\n\n const toggleWorkingDay = (day: string) => {\n setOperations((p) => ({\n ...p,\n workingDays: p.workingDays.includes(day)\n ? p.workingDays.filter((d) => d !== day)\n : [...p.workingDays, day],\n }));\n };\n\n // ---- Tab Renderers ----\n\n const renderPersonalTab = () => (\n <div className=\"space-y-5\">\n {/* Profile Image */}\n <div className=\"flex items-center gap-5\">\n <div className=\"relative\">\n <div className=\"flex h-20 w-20 items-center justify-center rounded-full bg-bg-sunken text-2xl font-bold text-text-primary\">\n {personal.firstName[0]}\n {personal.lastName[0]}\n </div>\n {isEditing && (\n <button\n type=\"button\"\n onClick={() => alert('Image upload coming soon!')}\n className=\"absolute -bottom-1 -right-1 flex h-7 w-7 items-center justify-center rounded-full bg-accent text-text-primary border-2 border-card hover:bg-accent/80\"\n >\n <Camera className=\"h-3.5 w-3.5\" />\n </button>\n )}\n </div>\n <div>\n <p className=\"text-lg font-semibold text-text-primary\">\n {personal.firstName} {personal.lastName}\n </p>\n <p className=\"text-sm text-text-secondary\">Cart Owner</p>\n <div className=\"flex items-center gap-2 mt-1\">\n <span className=\"inline-flex items-center gap-1 rounded-full bg-blue-500/10 px-2.5 py-0.5 text-xs font-medium text-blue-600 dark:text-blue-400\">\n <BadgeCheck className=\"h-3 w-3\" />\n Verified\n </span>\n <span className=\"flex items-center gap-0.5 text-xs text-yellow-600 dark:text-yellow-400\">\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n {ownerStats.rating}\n </span>\n </div>\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">First Name</label>\n <input\n type=\"text\"\n value={personal.firstName}\n onChange={(e) => setPersonal((p) => ({ ...p, firstName: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Last Name</label>\n <input\n type=\"text\"\n value={personal.lastName}\n onChange={(e) => setPersonal((p) => ({ ...p, lastName: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Email</label>\n <input\n type=\"email\"\n value={personal.email}\n onChange={(e) => setPersonal((p) => ({ ...p, email: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Phone</label>\n <input\n type=\"tel\"\n value={personal.phone}\n onChange={(e) => setPersonal((p) => ({ ...p, phone: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Date of Birth</label>\n <input\n type=\"date\"\n value={personal.dateOfBirth}\n onChange={(e) => setPersonal((p) => ({ ...p, dateOfBirth: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Gender</label>\n <select\n value={personal.gender}\n onChange={(e) => setPersonal((p) => ({ ...p, gender: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n >\n <option value=\"Male\">Male</option>\n <option value=\"Female\">Female</option>\n <option value=\"Other\">Other</option>\n </select>\n </div>\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Address</label>\n <input\n type=\"text\"\n value={personal.address}\n onChange={(e) => setPersonal((p) => ({ ...p, address: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Bio</label>\n <textarea\n value={personal.bio}\n onChange={(e) => setPersonal((p) => ({ ...p, bio: e.target.value }))}\n disabled={!isEditing}\n rows={3}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary resize-none',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n );\n\n const renderBusinessTab = () => (\n <div className=\"space-y-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Business Name</label>\n <input\n type=\"text\"\n value={business.businessName}\n onChange={(e) => setBusiness((p) => ({ ...p, businessName: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Category</label>\n <select\n value={business.category}\n onChange={(e) => setBusiness((p) => ({ ...p, category: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n >\n {[\n 'Food & Beverage',\n 'Personal Care & Beauty',\n 'Repair & Maintenance',\n 'Home Services',\n 'Retail & Merchandise',\n ].map((c) => (\n <option key={c} value={c}>\n {c}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Description</label>\n <textarea\n value={business.description}\n onChange={(e) => setBusiness((p) => ({ ...p, description: e.target.value }))}\n disabled={!isEditing}\n rows={3}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary resize-none',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-3 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">GST Number</label>\n <input\n type=\"text\"\n value={business.gstNumber}\n onChange={(e) => setBusiness((p) => ({ ...p, gstNumber: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">PAN Number</label>\n <input\n type=\"text\"\n value={business.panNumber}\n onChange={(e) => setBusiness((p) => ({ ...p, panNumber: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">FSSAI License</label>\n <input\n type=\"text\"\n value={business.fssaiLicense}\n onChange={(e) => setBusiness((p) => ({ ...p, fssaiLicense: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Business Phone</label>\n <input\n type=\"tel\"\n value={business.businessPhone}\n onChange={(e) => setBusiness((p) => ({ ...p, businessPhone: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Business Email</label>\n <input\n type=\"email\"\n value={business.businessEmail}\n onChange={(e) => setBusiness((p) => ({ ...p, businessEmail: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n </div>\n );\n\n const renderOperationsTab = () => (\n <div className=\"space-y-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-2\">Working Days</label>\n <div className=\"flex flex-wrap gap-2\">\n {DAYS.map((day) => (\n <button\n key={day}\n type=\"button\"\n onClick={() => isEditing && toggleWorkingDay(day)}\n disabled={!isEditing}\n className={cn(\n 'px-3 py-1.5 rounded-full text-xs font-medium transition-colors',\n operations.workingDays.includes(day)\n ? 'bg-blue-500 text-white'\n : 'bg-bg-sunken text-text-secondary',\n !isEditing && 'cursor-not-allowed opacity-70'\n )}\n >\n {day.slice(0, 3)}\n </button>\n ))}\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Opening Time</label>\n <input\n type=\"time\"\n value={operations.openTime}\n onChange={(e) => setOperations((p) => ({ ...p, openTime: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Closing Time</label>\n <input\n type=\"time\"\n value={operations.closeTime}\n onChange={(e) => setOperations((p) => ({ ...p, closeTime: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-3 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Prep Time (min)</label>\n <input\n type=\"number\"\n value={operations.preparationTime}\n onChange={(e) =>\n setOperations((p) => ({ ...p, preparationTime: parseInt(e.target.value) || 0 }))\n }\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n Delivery Radius (km)\n </label>\n <input\n type=\"number\"\n value={operations.deliveryRadius}\n onChange={(e) =>\n setOperations((p) => ({ ...p, deliveryRadius: parseInt(e.target.value) || 0 }))\n }\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Max Orders/Day</label>\n <input\n type=\"number\"\n value={operations.maxOrdersPerDay}\n onChange={(e) =>\n setOperations((p) => ({ ...p, maxOrdersPerDay: parseInt(e.target.value) || 0 }))\n }\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n </div>\n );\n\n const renderBankingTab = () => (\n <div className=\"space-y-5\">\n <div className=\"flex items-start gap-3 rounded-md bg-blue-500/5 border border-blue-500/20 p-3\">\n <AlertCircle className=\"h-4 w-4 text-blue-600 dark:text-blue-400 shrink-0 mt-0.5\" />\n <p className=\"text-xs text-blue-600 dark:text-blue-400\">\n Bank details are used for payouts. Changes require verification and may take 2-3 business\n days to process.\n </p>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Bank Name</label>\n <input\n type=\"text\"\n value={banking.bankName}\n onChange={(e) => setBanking((p) => ({ ...p, bankName: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Account Holder</label>\n <input\n type=\"text\"\n value={banking.accountHolder}\n onChange={(e) => setBanking((p) => ({ ...p, accountHolder: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Account Number</label>\n <input\n type=\"text\"\n value={isEditing ? banking.accountNumber : `****${banking.accountNumber.slice(-4)}`}\n onChange={(e) => setBanking((p) => ({ ...p, accountNumber: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">IFSC Code</label>\n <input\n type=\"text\"\n value={banking.ifscCode}\n onChange={(e) => setBanking((p) => ({ ...p, ifscCode: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">UPI ID</label>\n <input\n type=\"text\"\n value={banking.upiId}\n onChange={(e) => setBanking((p) => ({ ...p, upiId: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Payout Schedule</label>\n <select\n value={banking.payoutSchedule}\n onChange={(e) => setBanking((p) => ({ ...p, payoutSchedule: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n >\n <option value=\"daily\">Daily</option>\n <option value=\"weekly\">Weekly</option>\n <option value=\"biweekly\">Bi-Weekly</option>\n <option value=\"monthly\">Monthly</option>\n </select>\n </div>\n </div>\n </div>\n );\n\n const renderSecurityTab = () => (\n <div className=\"space-y-6\">\n {/* Password Section */}\n <div className=\"rounded-lg border border-border-subtle p-5\">\n <h3 className=\"text-sm font-semibold text-text-primary flex items-center gap-2 mb-3\">\n <Key className=\"h-4 w-4 text-text-secondary\" />\n Password\n </h3>\n <p className=\"text-xs text-text-secondary mb-3\">\n Last changed:{' '}\n {new Date(security.lastPasswordChange).toLocaleDateString('en-IN', {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n })}\n </p>\n <button\n type=\"button\"\n onClick={() => alert('Password change coming soon!')}\n className=\"rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n Change Password\n </button>\n </div>\n\n {/* 2FA Section */}\n <div className=\"rounded-lg border border-border-subtle p-5\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h3 className=\"text-sm font-semibold text-text-primary flex items-center gap-2\">\n <Shield className=\"h-4 w-4 text-text-secondary\" />\n Two-Factor Authentication\n </h3>\n <p className=\"text-xs text-text-secondary mt-1\">\n Add an extra layer of security to your account\n </p>\n </div>\n <button\n type=\"button\"\n onClick={() => setSecurity((p) => ({ ...p, twoFactorEnabled: !p.twoFactorEnabled }))}\n className={cn(\n 'h-6 w-11 rounded-full transition-colors relative',\n security.twoFactorEnabled ? 'bg-green-500' : 'bg-muted-foreground/30'\n )}\n >\n <div\n className={cn(\n 'absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform',\n security.twoFactorEnabled ? 'translate-x-5' : 'translate-x-0.5'\n )}\n />\n </button>\n </div>\n {security.twoFactorEnabled && (\n <div className=\"mt-3 flex items-center gap-2\">\n <CheckCircle2 className=\"h-4 w-4 text-green-600 dark:text-green-400\" />\n <span className=\"text-xs text-green-600 dark:text-green-400 font-medium\">\n 2FA is enabled\n </span>\n </div>\n )}\n </div>\n\n {/* Active Sessions */}\n <div className=\"rounded-lg border border-border-subtle p-5\">\n <h3 className=\"text-sm font-semibold text-text-primary mb-3\">Active Sessions</h3>\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between text-sm\">\n <div>\n <p className=\"font-medium text-text-primary\">Current Device</p>\n <p className=\"text-xs text-text-secondary\">Chrome on Linux | Bangalore, IN</p>\n </div>\n <span className=\"text-xs text-green-600 dark:text-green-400 font-medium\">\n Active now\n </span>\n </div>\n <div className=\"flex items-center justify-between text-sm\">\n <div>\n <p className=\"font-medium text-text-primary\">Mobile App</p>\n <p className=\"text-xs text-text-secondary\">Android | Bangalore, IN</p>\n </div>\n <span className=\"text-xs text-text-secondary\">2 hours ago</span>\n </div>\n </div>\n </div>\n </div>\n );\n\n const renderNotificationsTab = () => {\n const toggleItems: {\n key: keyof typeof notificationPrefs;\n label: string;\n description: string;\n }[] = [\n {\n key: 'orderAlerts',\n label: 'Order Alerts',\n description: 'New orders, updates, and cancellations',\n },\n {\n key: 'paymentAlerts',\n label: 'Payment Alerts',\n description: 'Payouts, refunds, and transaction updates',\n },\n {\n key: 'reviewAlerts',\n label: 'Review Notifications',\n description: 'New customer reviews and ratings',\n },\n { key: 'smsAlerts', label: 'SMS Alerts', description: 'Receive important alerts via SMS' },\n {\n key: 'weeklyReport',\n label: 'Weekly Report',\n description: 'Weekly business performance summary',\n },\n {\n key: 'promotionalEmails',\n label: 'Promotional Emails',\n description: 'Tips, news, and promotional content',\n },\n ];\n\n return (\n <div className=\"space-y-1 divide-y divide-border\">\n {toggleItems.map((item) => (\n <div key={item.key} className=\"flex items-center justify-between py-3\">\n <div>\n <p className=\"text-sm font-medium text-text-primary\">{item.label}</p>\n <p className=\"text-xs text-text-secondary mt-0.5\">{item.description}</p>\n </div>\n <button\n type=\"button\"\n onClick={() => setNotificationPrefs((p) => ({ ...p, [item.key]: !p[item.key] }))}\n className={cn(\n 'h-6 w-11 rounded-full transition-colors relative',\n notificationPrefs[item.key] ? 'bg-blue-500' : 'bg-muted-foreground/30'\n )}\n >\n <div\n className={cn(\n 'absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform',\n notificationPrefs[item.key] ? 'translate-x-5' : 'translate-x-0.5'\n )}\n />\n </button>\n </div>\n ))}\n </div>\n );\n };\n\n return (\n <PageLayout\n title=\"Profile\"\n description=\"Your business profile and settings\"\n actions={\n <div className=\"flex items-center gap-2\">\n {isEditing ? (\n <>\n <button\n type=\"button\"\n onClick={() => setIsEditing(false)}\n className=\"rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n Cancel\n </button>\n <button\n type=\"button\"\n onClick={handleSave}\n className=\"inline-flex items-center gap-2 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors\"\n >\n <Save className=\"h-4 w-4\" />\n Save\n </button>\n </>\n ) : (\n <button\n type=\"button\"\n onClick={() => setIsEditing(true)}\n className=\"inline-flex items-center gap-2 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors\"\n >\n <Edit2 className=\"h-4 w-4\" />\n Edit Profile\n </button>\n )}\n </div>\n }\n >\n <div className=\"space-y-4\">\n {/* Saved Message */}\n {saved && (\n <div className=\"flex items-center gap-2 rounded-lg border border-green-500/30 bg-green-500/10 p-3\">\n <CheckCircle2 className=\"h-4 w-4 text-green-600 dark:text-green-400\" />\n <span className=\"text-sm font-medium text-green-600 dark:text-green-400\">\n Profile saved successfully!\n </span>\n </div>\n )}\n\n {/* Quick Stats */}\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-3\">\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm text-center\">\n <p className=\"text-2xl font-bold text-text-primary flex items-center justify-center gap-1\">\n <Star className=\"h-5 w-5 fill-yellow-400 text-yellow-400\" />\n {ownerStats.rating}\n </p>\n <p className=\"text-xs text-text-secondary\">Rating</p>\n </div>\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm text-center\">\n <p className=\"text-2xl font-bold text-text-primary\">\n {ownerStats.totalOrders.toLocaleString()}\n </p>\n <p className=\"text-xs text-text-secondary\">Total Orders</p>\n </div>\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm text-center\">\n <p className=\"text-2xl font-bold text-text-primary\">\n {ownerStats.verificationPercentage}%\n </p>\n <p className=\"text-xs text-text-secondary\">Verified</p>\n </div>\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm text-center\">\n <p className=\"text-sm font-bold text-text-primary\">\n {new Date(ownerStats.memberSince).toLocaleDateString('en-IN', {\n month: 'short',\n year: 'numeric',\n })}\n </p>\n <p className=\"text-xs text-text-secondary\">Member Since</p>\n </div>\n </div>\n\n <div className=\"flex flex-col lg:flex-row gap-6\">\n {/* Sidebar */}\n <div className=\"lg:w-56 shrink-0\">\n {/* Mobile */}\n <div className=\"lg:hidden rounded-lg border border-border-subtle bg-bg-surface p-3 shadow-sm\">\n <div className=\"grid grid-cols-3 gap-2\">\n {profileTabs.map((tab) => {\n const Icon = tab.icon;\n return (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n 'flex flex-col items-center gap-1 rounded-md px-2 py-2 text-xs font-medium transition-colors',\n activeTab === tab.id\n ? 'bg-accent text-text-primary'\n : 'text-text-secondary hover:bg-bg-sunken'\n )}\n >\n <Icon className=\"h-4 w-4\" />\n {tab.label.split(' ')[0]}\n </button>\n );\n })}\n </div>\n </div>\n {/* Desktop */}\n <div className=\"hidden lg:block rounded-lg border border-border-subtle bg-bg-surface shadow-sm sticky top-24\">\n <div className=\"p-4 border-b border-border-subtle\">\n <h2 className=\"font-semibold text-text-primary text-sm\">Profile Settings</h2>\n </div>\n <nav className=\"p-2\">\n {profileTabs.map((tab) => {\n const Icon = tab.icon;\n return (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n 'w-full text-left px-3 py-2 rounded-md mb-1 flex items-center gap-3 text-sm transition-colors',\n activeTab === tab.id\n ? 'bg-accent text-text-primary font-medium'\n : 'text-text-secondary hover:bg-bg-sunken hover:text-text-primary'\n )}\n >\n <Icon className=\"h-4 w-4\" />\n {tab.label}\n </button>\n );\n })}\n </nav>\n </div>\n </div>\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-5 sm:p-6 shadow-sm\">\n {activeTab === 'personal' && renderPersonalTab()}\n {activeTab === 'business' && renderBusinessTab()}\n {activeTab === 'operations' && renderOperationsTab()}\n {activeTab === 'banking' && renderBankingTab()}\n {activeTab === 'security' && renderSecurityTab()}\n {activeTab === 'notifications' && renderNotificationsTab()}\n </div>\n </div>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CartOwnerProfilePage.js","names":[],"sources":["../../../../src/adaptercloud/pages/cart-owner/CartOwnerProfilePage.tsx"],"sourcesContent":["/**\n * Cart Owner Profile Page\n *\n * Tabbed sidebar (personal/business/operations/banking/security/notifications),\n * profile image upload placeholder, edit mode toggle, all form fields,\n * working days checkboxes, bank details with security note,\n * password/2FA sections, notification toggles.\n *\n * @module adaptercloud/pages/cart-owner\n */\n\nimport { useState } from'react';\nimport {\n User,\n Mail,\n Phone,\n MapPin,\n Shield,\n CheckCircle2,\n XCircle,\n FileText,\n CreditCard,\n Calendar,\n Star,\n BadgeCheck,\n Upload,\n Edit2,\n Save,\n Lock,\n Bell,\n Building2,\n Clock,\n Camera,\n Key,\n AlertCircle,\n} from'lucide-react';\nimport { PageLayout } from'../../components/PageLayout';\nimport { useAdapterCloud } from'../../context/AdapterCloudContext';\nimport { mockCartOwner } from'../../mocks/users';\nimport { cn } from'../../utils/cn';\n\n// ============================================================================\n// Types\n// ============================================================================\n\ntype ProfileTab = 'personal' | 'business' | 'operations' | 'banking' | 'security' | 'notifications';\n\ninterface Tab {\n id: ProfileTab;\n label: string;\n icon: typeof User;\n}\n\n// ============================================================================\n// Constants\n// ============================================================================\n\nconst profileTabs: Tab[] = [\n { id: 'personal', label: 'Personal Info', icon: User },\n { id: 'business', label: 'Business Details', icon: Building2 },\n { id: 'operations', label: 'Operations', icon: Clock },\n { id: 'banking', label: 'Banking', icon: CreditCard },\n { id: 'security', label: 'Security', icon: Lock },\n { id: 'notifications', label: 'Notifications', icon: Bell },\n];\n\nconst DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const CartOwnerProfilePage = () => {\n const { navigateTo } = useAdapterCloud();\n const [activeTab, setActiveTab] = useState<ProfileTab>('personal');\n const [isEditing, setIsEditing] = useState(false);\n const [saved, setSaved] = useState(false);\n\n // Personal Info\n const [personal, setPersonal] = useState({\n firstName: mockCartOwner.firstName,\n lastName: mockCartOwner.lastName,\n email: mockCartOwner.email,\n phone: mockCartOwner.phone,\n dateOfBirth: '1990-05-15',\n gender: 'Male',\n address: 'Koramangala 5th Block, Bangalore - 560034',\n bio: 'Passionate about South Indian cuisine. Running Dosa Express since 2020.',\n });\n\n // Business Details\n const [business, setBusiness] = useState({\n businessName: 'Dosa Express',\n category: 'Food & Beverage',\n description: 'Authentic South Indian street food with a modern twist.',\n gstNumber: '29ABCDE1234F1Z5',\n panNumber: 'ABCDE1234F',\n fssaiLicense: '12345678',\n businessAddress: 'Koramangala 5th Block, Bangalore - 560034',\n businessPhone: '+91-9876543210',\n businessEmail: 'ravi@dosaexpress.in',\n });\n\n // Operations\n const [operations, setOperations] = useState({\n workingDays: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n openTime: '09:00',\n closeTime: '21:00',\n preparationTime: 15,\n deliveryRadius: 5,\n maxOrdersPerDay: 100,\n });\n\n // Banking\n const [banking, setBanking] = useState({\n bankName: 'State Bank of India',\n accountHolder: 'Ravi Kumar',\n accountNumber: '1234567890123456',\n ifscCode: 'SBIN0001234',\n upiId: 'ravikumar@sbi',\n payoutSchedule: 'weekly',\n });\n\n // Security\n const [security, setSecurity] = useState({\n twoFactorEnabled: true,\n lastPasswordChange: '2024-01-01',\n });\n\n // Notifications\n const [notificationPrefs, setNotificationPrefs] = useState({\n orderAlerts: true,\n paymentAlerts: true,\n reviewAlerts: true,\n promotionalEmails: false,\n smsAlerts: true,\n weeklyReport: true,\n });\n\n // Profile stats\n const ownerStats = {\n rating: 4.5,\n totalOrders: 1247,\n memberSince: '2023-03-01',\n verificationPercentage: 86,\n };\n\n const handleSave = () => {\n setSaved(true);\n setIsEditing(false);\n setTimeout(() => setSaved(false), 3000);\n };\n\n const toggleWorkingDay = (day: string) => {\n setOperations((p) => ({\n ...p,\n workingDays: p.workingDays.includes(day)\n ? p.workingDays.filter((d) => d !== day)\n : [...p.workingDays, day],\n }));\n };\n\n // ---- Tab Renderers ----\n\n const renderPersonalTab = () => (\n <div className=\"space-y-5\">\n {/* Profile Image */}\n <div className=\"flex items-center gap-5\">\n <div className=\"relative\">\n <div className=\"flex h-20 w-20 items-center justify-center rounded-full bg-bg-sunken text-2xl font-bold text-text-primary\">\n {personal.firstName[0]}\n {personal.lastName[0]}\n </div>\n {isEditing && (\n <button\n type=\"button\"\n onClick={() => alert('Image upload coming soon!')}\n className=\"absolute -bottom-1 -right-1 flex h-7 w-7 items-center justify-center rounded-full bg-accent text-text-primary border-2 border-card hover:bg-accent/80\"\n >\n <Camera className=\"h-3.5 w-3.5\" />\n </button>\n )}\n </div>\n <div>\n <p className=\"text-lg font-semibold text-text-primary\">\n {personal.firstName} {personal.lastName}\n </p>\n <p className=\"text-sm text-text-secondary\">Cart Owner</p>\n <div className=\"flex items-center gap-2 mt-1\">\n <span className=\"inline-flex items-center gap-1 rounded-full bg-accent-blue-subtle/10 px-2.5 py-0.5 text-xs font-medium text-accent-blue\">\n <BadgeCheck className=\"h-3 w-3\" />\n Verified\n </span>\n <span className=\"flex items-center gap-0.5 text-xs text-status-warning-text\">\n <Star className=\"h-3 w-3 fill-status-warning-text text-status-warning-text\" />\n {ownerStats.rating}\n </span>\n </div>\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">First Name</label>\n <input\n type=\"text\"\n value={personal.firstName}\n onChange={(e) => setPersonal((p) => ({ ...p, firstName: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Last Name</label>\n <input\n type=\"text\"\n value={personal.lastName}\n onChange={(e) => setPersonal((p) => ({ ...p, lastName: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Email</label>\n <input\n type=\"email\"\n value={personal.email}\n onChange={(e) => setPersonal((p) => ({ ...p, email: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Phone</label>\n <input\n type=\"tel\"\n value={personal.phone}\n onChange={(e) => setPersonal((p) => ({ ...p, phone: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Date of Birth</label>\n <input\n type=\"date\"\n value={personal.dateOfBirth}\n onChange={(e) => setPersonal((p) => ({ ...p, dateOfBirth: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Gender</label>\n <select\n value={personal.gender}\n onChange={(e) => setPersonal((p) => ({ ...p, gender: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n >\n <option value=\"Male\">Male</option>\n <option value=\"Female\">Female</option>\n <option value=\"Other\">Other</option>\n </select>\n </div>\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Address</label>\n <input\n type=\"text\"\n value={personal.address}\n onChange={(e) => setPersonal((p) => ({ ...p, address: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Bio</label>\n <textarea\n value={personal.bio}\n onChange={(e) => setPersonal((p) => ({ ...p, bio: e.target.value }))}\n disabled={!isEditing}\n rows={3}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary resize-none',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n );\n\n const renderBusinessTab = () => (\n <div className=\"space-y-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Business Name</label>\n <input\n type=\"text\"\n value={business.businessName}\n onChange={(e) => setBusiness((p) => ({ ...p, businessName: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Category</label>\n <select\n value={business.category}\n onChange={(e) => setBusiness((p) => ({ ...p, category: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n >\n {[\n 'Food & Beverage',\n 'Personal Care & Beauty',\n 'Repair & Maintenance',\n 'Home Services',\n 'Retail & Merchandise',\n ].map((c) => (\n <option key={c} value={c}>\n {c}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Description</label>\n <textarea\n value={business.description}\n onChange={(e) => setBusiness((p) => ({ ...p, description: e.target.value }))}\n disabled={!isEditing}\n rows={3}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary resize-none',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-3 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">GST Number</label>\n <input\n type=\"text\"\n value={business.gstNumber}\n onChange={(e) => setBusiness((p) => ({ ...p, gstNumber: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">PAN Number</label>\n <input\n type=\"text\"\n value={business.panNumber}\n onChange={(e) => setBusiness((p) => ({ ...p, panNumber: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">FSSAI License</label>\n <input\n type=\"text\"\n value={business.fssaiLicense}\n onChange={(e) => setBusiness((p) => ({ ...p, fssaiLicense: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Business Phone</label>\n <input\n type=\"tel\"\n value={business.businessPhone}\n onChange={(e) => setBusiness((p) => ({ ...p, businessPhone: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Business Email</label>\n <input\n type=\"email\"\n value={business.businessEmail}\n onChange={(e) => setBusiness((p) => ({ ...p, businessEmail: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n </div>\n );\n\n const renderOperationsTab = () => (\n <div className=\"space-y-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-2\">Working Days</label>\n <div className=\"flex flex-wrap gap-2\">\n {DAYS.map((day) => (\n <button\n key={day}\n type=\"button\"\n onClick={() => isEditing && toggleWorkingDay(day)}\n disabled={!isEditing}\n className={cn(\n 'px-3 py-1.5 rounded-full text-xs font-medium transition-colors',\n operations.workingDays.includes(day)\n ? 'bg-accent-blue-subtle text-white'\n : 'bg-bg-sunken text-text-secondary',\n !isEditing && 'cursor-not-allowed opacity-70'\n )}\n >\n {day.slice(0, 3)}\n </button>\n ))}\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Opening Time</label>\n <input\n type=\"time\"\n value={operations.openTime}\n onChange={(e) => setOperations((p) => ({ ...p, openTime: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Closing Time</label>\n <input\n type=\"time\"\n value={operations.closeTime}\n onChange={(e) => setOperations((p) => ({ ...p, closeTime: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-3 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Prep Time (min)</label>\n <input\n type=\"number\"\n value={operations.preparationTime}\n onChange={(e) =>\n setOperations((p) => ({ ...p, preparationTime: parseInt(e.target.value) || 0 }))\n }\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n Delivery Radius (km)\n </label>\n <input\n type=\"number\"\n value={operations.deliveryRadius}\n onChange={(e) =>\n setOperations((p) => ({ ...p, deliveryRadius: parseInt(e.target.value) || 0 }))\n }\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Max Orders/Day</label>\n <input\n type=\"number\"\n value={operations.maxOrdersPerDay}\n onChange={(e) =>\n setOperations((p) => ({ ...p, maxOrdersPerDay: parseInt(e.target.value) || 0 }))\n }\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n </div>\n );\n\n const renderBankingTab = () => (\n <div className=\"space-y-5\">\n <div className=\"flex items-start gap-3 rounded-md bg-accent-blue-subtle/5 border border-accent-blue-subtle/20 p-3\">\n <AlertCircle className=\"h-4 w-4 text-accent-blue shrink-0 mt-0.5\" />\n <p className=\"text-xs text-accent-blue\">\n Bank details are used for payouts. Changes require verification and may take 2-3 business\n days to process.\n </p>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Bank Name</label>\n <input\n type=\"text\"\n value={banking.bankName}\n onChange={(e) => setBanking((p) => ({ ...p, bankName: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Account Holder</label>\n <input\n type=\"text\"\n value={banking.accountHolder}\n onChange={(e) => setBanking((p) => ({ ...p, accountHolder: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Account Number</label>\n <input\n type=\"text\"\n value={isEditing ? banking.accountNumber : `****${banking.accountNumber.slice(-4)}`}\n onChange={(e) => setBanking((p) => ({ ...p, accountNumber: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">IFSC Code</label>\n <input\n type=\"text\"\n value={banking.ifscCode}\n onChange={(e) => setBanking((p) => ({ ...p, ifscCode: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-5\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">UPI ID</label>\n <input\n type=\"text\"\n value={banking.upiId}\n onChange={(e) => setBanking((p) => ({ ...p, upiId: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">Payout Schedule</label>\n <select\n value={banking.payoutSchedule}\n onChange={(e) => setBanking((p) => ({ ...p, payoutSchedule: e.target.value }))}\n disabled={!isEditing}\n className={cn(\n 'w-full rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary',\n !isEditing && 'bg-bg-sunken/50 cursor-not-allowed'\n )}\n >\n <option value=\"daily\">Daily</option>\n <option value=\"weekly\">Weekly</option>\n <option value=\"biweekly\">Bi-Weekly</option>\n <option value=\"monthly\">Monthly</option>\n </select>\n </div>\n </div>\n </div>\n );\n\n const renderSecurityTab = () => (\n <div className=\"space-y-6\">\n {/* Password Section */}\n <div className=\"rounded-lg border border-border-subtle p-5\">\n <h3 className=\"text-sm font-semibold text-text-primary flex items-center gap-2 mb-3\">\n <Key className=\"h-4 w-4 text-text-secondary\" />\n Password\n </h3>\n <p className=\"text-xs text-text-secondary mb-3\">\n Last changed:{' '}\n {new Date(security.lastPasswordChange).toLocaleDateString('en-IN', {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n })}\n </p>\n <button\n type=\"button\"\n onClick={() => alert('Password change coming soon!')}\n className=\"rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n Change Password\n </button>\n </div>\n\n {/* 2FA Section */}\n <div className=\"rounded-lg border border-border-subtle p-5\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h3 className=\"text-sm font-semibold text-text-primary flex items-center gap-2\">\n <Shield className=\"h-4 w-4 text-text-secondary\" />\n Two-Factor Authentication\n </h3>\n <p className=\"text-xs text-text-secondary mt-1\">\n Add an extra layer of security to your account\n </p>\n </div>\n <button\n type=\"button\"\n onClick={() => setSecurity((p) => ({ ...p, twoFactorEnabled: !p.twoFactorEnabled }))}\n className={cn(\n 'h-6 w-11 rounded-full transition-colors relative',\n security.twoFactorEnabled ? 'bg-status-success-bg-subtle' : 'bg-muted-foreground/30'\n )}\n >\n <div\n className={cn(\n 'absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform',\n security.twoFactorEnabled ? 'translate-x-5' : 'translate-x-0.5'\n )}\n />\n </button>\n </div>\n {security.twoFactorEnabled && (\n <div className=\"mt-3 flex items-center gap-2\">\n <CheckCircle2 className=\"h-4 w-4 text-status-success-text\" />\n <span className=\"text-xs text-status-success-text font-medium\">\n 2FA is enabled\n </span>\n </div>\n )}\n </div>\n\n {/* Active Sessions */}\n <div className=\"rounded-lg border border-border-subtle p-5\">\n <h3 className=\"text-sm font-semibold text-text-primary mb-3\">Active Sessions</h3>\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between text-sm\">\n <div>\n <p className=\"font-medium text-text-primary\">Current Device</p>\n <p className=\"text-xs text-text-secondary\">Chrome on Linux | Bangalore, IN</p>\n </div>\n <span className=\"text-xs text-status-success-text font-medium\">\n Active now\n </span>\n </div>\n <div className=\"flex items-center justify-between text-sm\">\n <div>\n <p className=\"font-medium text-text-primary\">Mobile App</p>\n <p className=\"text-xs text-text-secondary\">Android | Bangalore, IN</p>\n </div>\n <span className=\"text-xs text-text-secondary\">2 hours ago</span>\n </div>\n </div>\n </div>\n </div>\n );\n\n const renderNotificationsTab = () => {\n const toggleItems: {\n key: keyof typeof notificationPrefs;\n label: string;\n description: string;\n }[] = [\n {\n key: 'orderAlerts',\n label: 'Order Alerts',\n description: 'New orders, updates, and cancellations',\n },\n {\n key: 'paymentAlerts',\n label: 'Payment Alerts',\n description: 'Payouts, refunds, and transaction updates',\n },\n {\n key: 'reviewAlerts',\n label: 'Review Notifications',\n description: 'New customer reviews and ratings',\n },\n { key: 'smsAlerts', label: 'SMS Alerts', description: 'Receive important alerts via SMS' },\n {\n key: 'weeklyReport',\n label: 'Weekly Report',\n description: 'Weekly business performance summary',\n },\n {\n key: 'promotionalEmails',\n label: 'Promotional Emails',\n description: 'Tips, news, and promotional content',\n },\n ];\n\n return (\n <div className=\"space-y-1 divide-y divide-border\">\n {toggleItems.map((item) => (\n <div key={item.key} className=\"flex items-center justify-between py-3\">\n <div>\n <p className=\"text-sm font-medium text-text-primary\">{item.label}</p>\n <p className=\"text-xs text-text-secondary mt-0.5\">{item.description}</p>\n </div>\n <button\n type=\"button\"\n onClick={() => setNotificationPrefs((p) => ({ ...p, [item.key]: !p[item.key] }))}\n className={cn(\n 'h-6 w-11 rounded-full transition-colors relative',\n notificationPrefs[item.key] ? 'bg-accent-blue-subtle' : 'bg-muted-foreground/30'\n )}\n >\n <div\n className={cn(\n 'absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform',\n notificationPrefs[item.key] ? 'translate-x-5' : 'translate-x-0.5'\n )}\n />\n </button>\n </div>\n ))}\n </div>\n );\n };\n\n return (\n <PageLayout\n title=\"Profile\"\n description=\"Your business profile and settings\"\n actions={\n <div className=\"flex items-center gap-2\">\n {isEditing ? (\n <>\n <button\n type=\"button\"\n onClick={() => setIsEditing(false)}\n className=\"rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors\"\n >\n Cancel\n </button>\n <button\n type=\"button\"\n onClick={handleSave}\n className=\"inline-flex items-center gap-2 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors\"\n >\n <Save className=\"h-4 w-4\" />\n Save\n </button>\n </>\n ) : (\n <button\n type=\"button\"\n onClick={() => setIsEditing(true)}\n className=\"inline-flex items-center gap-2 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors\"\n >\n <Edit2 className=\"h-4 w-4\" />\n Edit Profile\n </button>\n )}\n </div>\n }\n >\n <div className=\"space-y-4\">\n {/* Saved Message */}\n {saved && (\n <div className=\"flex items-center gap-2 rounded-lg border border-status-success-border/30 bg-status-success-bg-subtle/10 p-3\">\n <CheckCircle2 className=\"h-4 w-4 text-status-success-text\" />\n <span className=\"text-sm font-medium text-status-success-text\">\n Profile saved successfully!\n </span>\n </div>\n )}\n\n {/* Quick Stats */}\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-3\">\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop\">\n <p className=\"text-2xl font-bold text-text-primary flex items-center justify-center gap-1\">\n <Star className=\"h-5 w-5 fill-status-warning-text text-status-warning-text\" />\n {ownerStats.rating}\n </p>\n <p className=\"text-xs text-text-secondary\">Rating</p>\n </div>\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop\">\n <p className=\"text-2xl font-bold text-text-primary\">\n {ownerStats.totalOrders.toLocaleString()}\n </p>\n <p className=\"text-xs text-text-secondary\">Total Orders</p>\n </div>\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop\">\n <p className=\"text-2xl font-bold text-text-primary\">\n {ownerStats.verificationPercentage}%\n </p>\n <p className=\"text-xs text-text-secondary\">Verified</p>\n </div>\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-4 text-center bg-gloss-card shadow-pop\">\n <p className=\"text-sm font-bold text-text-primary\">\n {new Date(ownerStats.memberSince).toLocaleDateString('en-IN', {\n month: 'short',\n year: 'numeric',\n })}\n </p>\n <p className=\"text-xs text-text-secondary\">Member Since</p>\n </div>\n </div>\n\n <div className=\"flex flex-col lg:flex-row gap-6\">\n {/* Sidebar */}\n <div className=\"lg:w-56 shrink-0\">\n {/* Mobile */}\n <div className=\"lg:hidden rounded-lg border border-border-subtle bg-bg-surface p-3 shadow-sm\">\n <div className=\"grid grid-cols-3 gap-2\">\n {profileTabs.map((tab) => {\n const Icon = tab.icon;\n return (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n 'flex flex-col items-center gap-1 rounded-md px-2 py-2 text-xs font-medium transition-colors',\n activeTab === tab.id\n ? 'bg-accent text-text-primary'\n : 'text-text-secondary hover:bg-bg-sunken'\n )}\n >\n <Icon className=\"h-4 w-4\" />\n {tab.label.split(' ')[0]}\n </button>\n );\n })}\n </div>\n </div>\n {/* Desktop */}\n <div className=\"hidden lg:block rounded-lg border border-border-subtle bg-bg-surface shadow-sm sticky top-24\">\n <div className=\"p-4 border-b border-border-subtle\">\n <h2 className=\"font-semibold text-text-primary text-sm\">Profile Settings</h2>\n </div>\n <nav className=\"p-2\">\n {profileTabs.map((tab) => {\n const Icon = tab.icon;\n return (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => setActiveTab(tab.id)}\n className={cn(\n 'w-full text-left px-3 py-2 rounded-md mb-1 flex items-center gap-3 text-sm transition-colors',\n activeTab === tab.id\n ? 'bg-accent text-text-primary font-medium'\n : 'text-text-secondary hover:bg-bg-sunken hover:text-text-primary'\n )}\n >\n <Icon className=\"h-4 w-4\" />\n {tab.label}\n </button>\n );\n })}\n </nav>\n </div>\n </div>\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"rounded-lg border border-border-seam bg-bg-surface p-5 sm:p-6 bg-gloss-card shadow-pop\">\n {activeTab === 'personal' && renderPersonalTab()}\n {activeTab === 'business' && renderBusinessTab()}\n {activeTab === 'operations' && renderOperationsTab()}\n {activeTab === 'banking' && renderBankingTab()}\n {activeTab === 'security' && renderSecurityTab()}\n {activeTab === 'notifications' && renderNotificationsTab()}\n </div>\n </div>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|
|
@@ -217,24 +217,24 @@ var y = [
|
|
|
217
217
|
className: "space-y-6 max-w-4xl",
|
|
218
218
|
children: [
|
|
219
219
|
F && /* @__PURE__ */ v("div", {
|
|
220
|
-
className: "flex items-center gap-2 rounded-lg border border-
|
|
221
|
-
children: [/* @__PURE__ */ _(o, { className: "h-5 w-5 text-
|
|
222
|
-
className: "text-sm font-medium text-
|
|
220
|
+
className: "flex items-center gap-2 rounded-lg border border-status-success-border/30 bg-status-success-bg-subtle/10 p-4",
|
|
221
|
+
children: [/* @__PURE__ */ _(o, { className: "h-5 w-5 text-status-success-text shrink-0" }), /* @__PURE__ */ _("span", {
|
|
222
|
+
className: "text-sm font-medium text-status-success-text",
|
|
223
223
|
children: "Configuration saved successfully!"
|
|
224
224
|
})]
|
|
225
225
|
}),
|
|
226
226
|
L.length > 0 && /* @__PURE__ */ _("div", {
|
|
227
|
-
className: "rounded-lg border border-
|
|
227
|
+
className: "rounded-lg border border-status-error-border/30 bg-status-error-bg-subtle/10 p-4 space-y-1",
|
|
228
228
|
children: L.map((e, t) => /* @__PURE__ */ v("div", {
|
|
229
229
|
className: "flex items-start gap-2",
|
|
230
|
-
children: [/* @__PURE__ */ _(i, { className: "h-4 w-4 text-
|
|
231
|
-
className: "text-sm text-
|
|
230
|
+
children: [/* @__PURE__ */ _(i, { className: "h-4 w-4 text-status-error-text shrink-0 mt-0.5" }), /* @__PURE__ */ _("span", {
|
|
231
|
+
className: "text-sm text-status-error-text",
|
|
232
232
|
children: e
|
|
233
233
|
})]
|
|
234
234
|
}, t))
|
|
235
235
|
}),
|
|
236
236
|
/* @__PURE__ */ _("section", {
|
|
237
|
-
className: "rounded-lg border border-border-
|
|
237
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-6 bg-gloss-card shadow-pop",
|
|
238
238
|
children: /* @__PURE__ */ v("div", {
|
|
239
239
|
className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",
|
|
240
240
|
children: [/* @__PURE__ */ v("div", {
|
|
@@ -249,19 +249,19 @@ var y = [
|
|
|
249
249
|
}), /* @__PURE__ */ v("div", {
|
|
250
250
|
className: "flex items-center gap-3",
|
|
251
251
|
children: [/* @__PURE__ */ _("span", {
|
|
252
|
-
className: t("inline-flex items-center rounded-full px-3 py-1 text-xs font-medium", T ? "bg-
|
|
252
|
+
className: t("inline-flex items-center rounded-full px-3 py-1 text-xs font-medium", T ? "bg-status-success-bg-subtle/20 text-status-success-text" : "bg-status-error-bg-subtle/20 text-status-error-text"),
|
|
253
253
|
children: T ? "Open" : "Closed"
|
|
254
254
|
}), /* @__PURE__ */ _("button", {
|
|
255
255
|
type: "button",
|
|
256
256
|
onClick: () => E(!T),
|
|
257
|
-
className: t("rounded-md px-4 py-2 text-sm font-medium transition-colors", T ? "bg-
|
|
257
|
+
className: t("rounded-md px-4 py-2 text-sm font-medium transition-colors", T ? "bg-status-error-bg-subtle/10 text-status-error-text hover:bg-status-error-bg-subtle/20" : "bg-status-success-bg-subtle/10 text-status-success-text hover:bg-status-success-bg-subtle/20"),
|
|
258
258
|
children: T ? "Close Service" : "Open Service"
|
|
259
259
|
})]
|
|
260
260
|
})]
|
|
261
261
|
})
|
|
262
262
|
}),
|
|
263
263
|
/* @__PURE__ */ v("section", {
|
|
264
|
-
className: "rounded-lg border border-border-
|
|
264
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-6 bg-gloss-card shadow-pop",
|
|
265
265
|
children: [/* @__PURE__ */ v("h2", {
|
|
266
266
|
className: "text-lg font-semibold text-text-primary flex items-center gap-2 mb-4",
|
|
267
267
|
children: [/* @__PURE__ */ _(l, { className: "h-5 w-5 text-text-secondary" }), "Offering Type"]
|
|
@@ -291,7 +291,7 @@ var y = [
|
|
|
291
291
|
})]
|
|
292
292
|
}),
|
|
293
293
|
/* @__PURE__ */ v("section", {
|
|
294
|
-
className: "rounded-lg border border-border-
|
|
294
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-6 bg-gloss-card shadow-pop",
|
|
295
295
|
children: [/* @__PURE__ */ v("h2", {
|
|
296
296
|
className: "text-lg font-semibold text-text-primary flex items-center gap-2 mb-4",
|
|
297
297
|
children: [/* @__PURE__ */ _(s, { className: "h-5 w-5 text-text-secondary" }), "Operating Hours"]
|
|
@@ -310,7 +310,7 @@ var y = [
|
|
|
310
310
|
/* @__PURE__ */ _("button", {
|
|
311
311
|
type: "button",
|
|
312
312
|
onClick: () => z(e, "isOpen", !n.isOpen),
|
|
313
|
-
className: t("h-5 w-5 rounded border transition-colors shrink-0", n.isOpen ? "bg-blue-
|
|
313
|
+
className: t("h-5 w-5 rounded border transition-colors shrink-0", n.isOpen ? "bg-accent-blue-subtle border-accent-blue-subtle" : "border-border-subtle bg-bg-surface"),
|
|
314
314
|
children: n.isOpen && /* @__PURE__ */ _(o, { className: "h-5 w-5 text-white" })
|
|
315
315
|
}),
|
|
316
316
|
/* @__PURE__ */ _("span", {
|
|
@@ -345,7 +345,7 @@ var y = [
|
|
|
345
345
|
})]
|
|
346
346
|
}),
|
|
347
347
|
/* @__PURE__ */ v("section", {
|
|
348
|
-
className: "rounded-lg border border-border-
|
|
348
|
+
className: "rounded-lg border border-border-seam bg-bg-surface p-6 bg-gloss-card shadow-pop",
|
|
349
349
|
children: [/* @__PURE__ */ v("h2", {
|
|
350
350
|
className: "text-lg font-semibold text-text-primary flex items-center gap-2 mb-6",
|
|
351
351
|
children: [/* @__PURE__ */ _(h, { className: "h-5 w-5 text-text-secondary" }), "Service Types"]
|
|
@@ -358,14 +358,14 @@ var y = [
|
|
|
358
358
|
className: "flex items-center justify-between mb-4",
|
|
359
359
|
children: [/* @__PURE__ */ v("div", {
|
|
360
360
|
className: "flex items-center gap-2",
|
|
361
|
-
children: [/* @__PURE__ */ _(p, { className: "h-5 w-5 text-
|
|
361
|
+
children: [/* @__PURE__ */ _(p, { className: "h-5 w-5 text-accent-blue" }), /* @__PURE__ */ _("span", {
|
|
362
362
|
className: "font-medium text-text-primary",
|
|
363
363
|
children: "Pickup Service"
|
|
364
364
|
})]
|
|
365
365
|
}), /* @__PURE__ */ _("button", {
|
|
366
366
|
type: "button",
|
|
367
367
|
onClick: () => B("pickup", "enabled", !j.pickup.enabled),
|
|
368
|
-
className: t("h-6 w-11 rounded-full transition-colors relative", j.pickup.enabled ? "bg-blue-
|
|
368
|
+
className: t("h-6 w-11 rounded-full transition-colors relative", j.pickup.enabled ? "bg-accent-blue-subtle" : "bg-muted-foreground/30"),
|
|
369
369
|
children: /* @__PURE__ */ _("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform", j.pickup.enabled ? "translate-x-5" : "translate-x-0.5") })
|
|
370
370
|
})]
|
|
371
371
|
}), j.pickup.enabled && /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("label", {
|
|
@@ -384,14 +384,14 @@ var y = [
|
|
|
384
384
|
className: "flex items-center justify-between mb-4",
|
|
385
385
|
children: [/* @__PURE__ */ v("div", {
|
|
386
386
|
className: "flex items-center gap-2",
|
|
387
|
-
children: [/* @__PURE__ */ _(h, { className: "h-5 w-5 text-
|
|
387
|
+
children: [/* @__PURE__ */ _(h, { className: "h-5 w-5 text-status-success-text" }), /* @__PURE__ */ _("span", {
|
|
388
388
|
className: "font-medium text-text-primary",
|
|
389
389
|
children: "Delivery Service"
|
|
390
390
|
})]
|
|
391
391
|
}), /* @__PURE__ */ _("button", {
|
|
392
392
|
type: "button",
|
|
393
393
|
onClick: () => B("delivery", "enabled", !j.delivery.enabled),
|
|
394
|
-
className: t("h-6 w-11 rounded-full transition-colors relative", j.delivery.enabled ? "bg-blue-
|
|
394
|
+
className: t("h-6 w-11 rounded-full transition-colors relative", j.delivery.enabled ? "bg-accent-blue-subtle" : "bg-muted-foreground/30"),
|
|
395
395
|
children: /* @__PURE__ */ _("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform", j.delivery.enabled ? "translate-x-5" : "translate-x-0.5") })
|
|
396
396
|
})]
|
|
397
397
|
}), j.delivery.enabled && /* @__PURE__ */ v("div", {
|
|
@@ -433,14 +433,14 @@ var y = [
|
|
|
433
433
|
className: "flex items-center justify-between mb-4",
|
|
434
434
|
children: [/* @__PURE__ */ v("div", {
|
|
435
435
|
className: "flex items-center gap-2",
|
|
436
|
-
children: [/* @__PURE__ */ _(a, { className: "h-5 w-5 text-
|
|
436
|
+
children: [/* @__PURE__ */ _(a, { className: "h-5 w-5 text-accent-orange" }), /* @__PURE__ */ _("span", {
|
|
437
437
|
className: "font-medium text-text-primary",
|
|
438
438
|
children: "Scheduled Stop Service"
|
|
439
439
|
})]
|
|
440
440
|
}), /* @__PURE__ */ _("button", {
|
|
441
441
|
type: "button",
|
|
442
442
|
onClick: () => B("scheduledStop", "enabled", !j.scheduledStop.enabled),
|
|
443
|
-
className: t("h-6 w-11 rounded-full transition-colors relative", j.scheduledStop.enabled ? "bg-blue-
|
|
443
|
+
className: t("h-6 w-11 rounded-full transition-colors relative", j.scheduledStop.enabled ? "bg-accent-blue-subtle" : "bg-muted-foreground/30"),
|
|
444
444
|
children: /* @__PURE__ */ _("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform", j.scheduledStop.enabled ? "translate-x-5" : "translate-x-0.5") })
|
|
445
445
|
})]
|
|
446
446
|
}), j.scheduledStop.enabled && /* @__PURE__ */ v("div", {
|
|
@@ -469,7 +469,7 @@ var y = [
|
|
|
469
469
|
}), /* @__PURE__ */ v("button", {
|
|
470
470
|
type: "button",
|
|
471
471
|
onClick: () => U(e.id),
|
|
472
|
-
className: "inline-flex items-center gap-1 rounded-md bg-
|
|
472
|
+
className: "inline-flex items-center gap-1 rounded-md bg-status-error-bg-subtle/10 px-2 py-1 text-xs text-status-error-text hover:bg-status-error-bg-subtle/20 transition-colors",
|
|
473
473
|
children: [/* @__PURE__ */ _(m, { className: "h-3.5 w-3.5" }), "Remove"]
|
|
474
474
|
})]
|
|
475
475
|
}),
|
|
@@ -523,7 +523,7 @@ var y = [
|
|
|
523
523
|
children: b.map((n) => /* @__PURE__ */ _("button", {
|
|
524
524
|
type: "button",
|
|
525
525
|
onClick: () => G(e.id, n),
|
|
526
|
-
className: t("px-3 py-1 rounded-full text-xs font-medium transition-colors", e.daysOfWeek.includes(n) ? "bg-blue-
|
|
526
|
+
className: t("px-3 py-1 rounded-full text-xs font-medium transition-colors", e.daysOfWeek.includes(n) ? "bg-accent-blue-subtle text-white" : "bg-bg-sunken text-text-secondary hover:bg-muted-foreground/20"),
|
|
527
527
|
children: x[n]
|
|
528
528
|
}, n))
|
|
529
529
|
})] })
|
|
@@ -531,7 +531,7 @@ var y = [
|
|
|
531
531
|
}, e.id)),
|
|
532
532
|
j.scheduledStop.stops.length === 0 && /* @__PURE__ */ _("div", {
|
|
533
533
|
className: "text-center py-6 text-sm text-text-secondary",
|
|
534
|
-
children: "No scheduled stops configured. Click
|
|
534
|
+
children: "No scheduled stops configured. Click\"Add Stop\" to create one."
|
|
535
535
|
})
|
|
536
536
|
]
|
|
537
537
|
})]
|
|
@@ -542,14 +542,14 @@ var y = [
|
|
|
542
542
|
className: "flex items-center justify-between mb-4",
|
|
543
543
|
children: [/* @__PURE__ */ v("div", {
|
|
544
544
|
className: "flex items-center gap-2",
|
|
545
|
-
children: [/* @__PURE__ */ _(c, { className: "h-5 w-5 text-
|
|
545
|
+
children: [/* @__PURE__ */ _(c, { className: "h-5 w-5 text-accent-purple" }), /* @__PURE__ */ _("span", {
|
|
546
546
|
className: "font-medium text-text-primary",
|
|
547
547
|
children: "Direct Service"
|
|
548
548
|
})]
|
|
549
549
|
}), /* @__PURE__ */ _("button", {
|
|
550
550
|
type: "button",
|
|
551
551
|
onClick: () => B("directService", "enabled", !j.directService.enabled),
|
|
552
|
-
className: t("h-6 w-11 rounded-full transition-colors relative", j.directService.enabled ? "bg-blue-
|
|
552
|
+
className: t("h-6 w-11 rounded-full transition-colors relative", j.directService.enabled ? "bg-accent-blue-subtle" : "bg-muted-foreground/30"),
|
|
553
553
|
children: /* @__PURE__ */ _("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform", j.directService.enabled ? "translate-x-5" : "translate-x-0.5") })
|
|
554
554
|
})]
|
|
555
555
|
}), j.directService.enabled && /* @__PURE__ */ v("div", {
|