@burdenoff/microfe-kadaikodi 2026.704.2 → 2026.704.4
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/kadaikodi/KadaikodiRoutes.js +30 -26
- package/dist/kadaikodi/KadaikodiRoutes.js.map +1 -1
- package/dist/kadaikodi/hooks/useKadaikodiApi.js +76 -6
- package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +45 -107
- package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminDashboard.js +30 -32
- package/dist/kadaikodi/pages/admin/AdminDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js +137 -120
- package/dist/kadaikodi/pages/admin/AdminFinancialPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +2 -2
- package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js +332 -276
- package/dist/kadaikodi/pages/admin/AdminSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/CartManagementPage.js +278 -283
- package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/admin/UserManagementPage.js +310 -366
- package/dist/kadaikodi/pages/admin/UserManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js +105 -111
- package/dist/kadaikodi/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +290 -257
- package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js +84 -70
- package/dist/kadaikodi/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js +270 -228
- package/dist/kadaikodi/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js +194 -173
- package/dist/kadaikodi/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js +202 -139
- package/dist/kadaikodi/pages/cart-owner/InventoryManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js +232 -0
- package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js.map +1 -0
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js +84 -79
- package/dist/kadaikodi/pages/cart-owner/OrderManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/HelpSupportPage.js +310 -317
- package/dist/kadaikodi/pages/common/HelpSupportPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/NotificationCenterPage.js.map +1 -1
- package/dist/kadaikodi/pages/common/SettingsPage.js +502 -586
- package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js +243 -143
- package/dist/kadaikodi/pages/customer/BookingDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDetailPage.js +4 -4
- package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +2 -2
- package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CheckoutPage.js +4 -4
- package/dist/kadaikodi/pages/customer/CheckoutPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js +6 -6
- package/dist/kadaikodi/pages/customer/CustomerDashboard.js.map +1 -1
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +189 -199
- package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js +6 -4
- package/dist/kadaikodi/pages/customer/DirectServiceBookingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/FavoritesPage.js +6 -6
- package/dist/kadaikodi/pages/customer/FavoritesPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js +4 -4
- package/dist/kadaikodi/pages/customer/OrderHistoryPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +409 -304
- package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/ReviewsPage.js +209 -162
- package/dist/kadaikodi/pages/customer/ReviewsPage.js.map +1 -1
- package/dist/kadaikodi/pages/customer/SavedAddressesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorAnalyticsPage.js.map +1 -1
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js +441 -514
- package/dist/kadaikodi/pages/investor/InvestorProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +207 -186
- package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerOrdersPage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js +340 -272
- package/dist/kadaikodi/pages/worker/WorkerProfilePage.js.map +1 -1
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js +122 -75
- package/dist/kadaikodi/pages/worker/WorkerSchedulePage.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,62 +2,111 @@ import { useKadaikodi as e } from "../../context/KadaikodiContext.js";
|
|
|
2
2
|
import { cn as t } from "../../utils/cn.js";
|
|
3
3
|
import { PageLayout as n } from "../../components/PageLayout.js";
|
|
4
4
|
import { useState as r } from "react";
|
|
5
|
-
import {
|
|
6
|
-
import { jsx as
|
|
7
|
-
import { EmphasisPanel as
|
|
5
|
+
import { AlertCircle as i, ArrowLeft as a, Bell as o, CheckCircle2 as s, Database as c, Globe as l, HardDrive as u, Lock as d, Mail as f, Plug as p, Save as m, Server as h, Shield as g, Smartphone as _ } from "lucide-react";
|
|
6
|
+
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
7
|
+
import { EmphasisPanel as b, NextSteps as x, PagePurpose as S } from "@burdenoff/fe-libs/ui";
|
|
8
8
|
//#region src/kadaikodi/pages/admin/AdminSettingsPage.tsx
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
var C = "kadaikodi-admin-system-settings", w = {
|
|
10
|
+
general: {
|
|
11
|
+
siteName: "Kadaikodi",
|
|
12
|
+
siteUrl: "https://kadaikodi.com",
|
|
13
|
+
timezone: "Asia/Kolkata",
|
|
14
|
+
language: "en",
|
|
15
|
+
currency: "INR",
|
|
16
|
+
dateFormat: "DD/MM/YYYY",
|
|
17
|
+
maintenanceMode: !1
|
|
18
|
+
},
|
|
19
|
+
security: {
|
|
20
|
+
passwordPolicy: {
|
|
21
|
+
minLength: 8,
|
|
22
|
+
requireUppercase: !0,
|
|
23
|
+
requireNumbers: !0,
|
|
24
|
+
requireSymbols: !1
|
|
19
25
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
sessionTimeout: 60,
|
|
27
|
+
twoFactorAuth: !1,
|
|
28
|
+
maxLoginAttempts: 5
|
|
29
|
+
},
|
|
30
|
+
notifications: {
|
|
31
|
+
emailNotifications: !0,
|
|
32
|
+
smsNotifications: !0,
|
|
33
|
+
adminAlerts: !0,
|
|
34
|
+
systemAlerts: !0
|
|
35
|
+
},
|
|
36
|
+
database: {
|
|
37
|
+
backupFrequency: "daily",
|
|
38
|
+
retentionPeriod: 30,
|
|
39
|
+
autoBackup: !0,
|
|
40
|
+
lastBackup: ""
|
|
41
|
+
},
|
|
42
|
+
integrations: {
|
|
43
|
+
emailService: "sendgrid",
|
|
44
|
+
smsService: "twilio",
|
|
45
|
+
paymentGateway: "razorpay",
|
|
46
|
+
analyticsService: "google"
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
function T() {
|
|
50
|
+
if (typeof window > "u") return w;
|
|
51
|
+
try {
|
|
52
|
+
let e = window.localStorage.getItem(C);
|
|
53
|
+
if (!e) return w;
|
|
54
|
+
let t = JSON.parse(e);
|
|
55
|
+
return {
|
|
56
|
+
general: {
|
|
57
|
+
...w.general,
|
|
58
|
+
...t.general
|
|
26
59
|
},
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
60
|
+
security: {
|
|
61
|
+
...w.security,
|
|
62
|
+
...t.security,
|
|
63
|
+
passwordPolicy: {
|
|
64
|
+
...w.security.passwordPolicy,
|
|
65
|
+
...t.security?.passwordPolicy
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
notifications: {
|
|
69
|
+
...w.notifications,
|
|
70
|
+
...t.notifications
|
|
71
|
+
},
|
|
72
|
+
database: {
|
|
73
|
+
...w.database,
|
|
74
|
+
...t.database
|
|
75
|
+
},
|
|
76
|
+
integrations: {
|
|
77
|
+
...w.integrations,
|
|
78
|
+
...t.integrations
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
} catch {
|
|
82
|
+
return w;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function E() {
|
|
86
|
+
let { navigateTo: w } = e(), [E, D] = r(!1), [O, k] = r("general"), [A, j] = r(null), [M, N] = r(() => T()), P = () => {
|
|
87
|
+
D(!0);
|
|
88
|
+
try {
|
|
89
|
+
window.localStorage.setItem(C, JSON.stringify(M)), j({
|
|
90
|
+
text: "Settings saved on this device. Platform-wide rollout of these controls is coming soon.",
|
|
91
|
+
type: "success"
|
|
92
|
+
});
|
|
93
|
+
} catch {
|
|
94
|
+
j({
|
|
95
|
+
text: "Could not save settings in this browser.",
|
|
96
|
+
type: "error"
|
|
97
|
+
});
|
|
48
98
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
D((r) => ({
|
|
99
|
+
D(!1), setTimeout(() => j(null), 4e3);
|
|
100
|
+
}, F = (e, t, n) => {
|
|
101
|
+
N((r) => ({
|
|
53
102
|
...r,
|
|
54
103
|
[e]: {
|
|
55
104
|
...r[e],
|
|
56
105
|
[t]: n
|
|
57
106
|
}
|
|
58
107
|
}));
|
|
59
|
-
},
|
|
60
|
-
|
|
108
|
+
}, I = (e, t, n, r) => {
|
|
109
|
+
N((i) => ({
|
|
61
110
|
...i,
|
|
62
111
|
[e]: {
|
|
63
112
|
...i[e],
|
|
@@ -67,61 +116,68 @@ function x() {
|
|
|
67
116
|
}
|
|
68
117
|
}
|
|
69
118
|
}));
|
|
70
|
-
},
|
|
119
|
+
}, L = [
|
|
71
120
|
{
|
|
72
121
|
id: "general",
|
|
73
122
|
label: "General",
|
|
74
|
-
icon:
|
|
123
|
+
icon: h
|
|
75
124
|
},
|
|
76
125
|
{
|
|
77
126
|
id: "security",
|
|
78
127
|
label: "Security",
|
|
79
|
-
icon:
|
|
128
|
+
icon: g
|
|
80
129
|
},
|
|
81
130
|
{
|
|
82
131
|
id: "notifications",
|
|
83
132
|
label: "Notifications",
|
|
84
|
-
icon:
|
|
133
|
+
icon: o
|
|
85
134
|
},
|
|
86
135
|
{
|
|
87
136
|
id: "database",
|
|
88
137
|
label: "Database",
|
|
89
|
-
icon:
|
|
138
|
+
icon: c
|
|
90
139
|
},
|
|
91
140
|
{
|
|
92
141
|
id: "integrations",
|
|
93
142
|
label: "Integrations",
|
|
94
|
-
icon:
|
|
143
|
+
icon: p
|
|
95
144
|
}
|
|
96
|
-
],
|
|
97
|
-
return /* @__PURE__ */
|
|
145
|
+
], R = "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)]", z = "block text-sm font-medium text-text-secondary mb-2";
|
|
146
|
+
return /* @__PURE__ */ y(n, {
|
|
98
147
|
title: "System Settings",
|
|
99
148
|
description: "Configure platform-wide settings and policies",
|
|
100
|
-
actions: /* @__PURE__ */
|
|
149
|
+
actions: /* @__PURE__ */ y("div", {
|
|
101
150
|
className: "flex items-center gap-2",
|
|
102
|
-
children: [/* @__PURE__ */
|
|
151
|
+
children: [/* @__PURE__ */ y("button", {
|
|
103
152
|
type: "button",
|
|
104
|
-
onClick: () =>
|
|
153
|
+
onClick: () => w("/admin"),
|
|
105
154
|
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",
|
|
106
|
-
children: [/* @__PURE__ */
|
|
107
|
-
}), /* @__PURE__ */
|
|
155
|
+
children: [/* @__PURE__ */ v(a, { className: "h-4 w-4" }), " Back"]
|
|
156
|
+
}), /* @__PURE__ */ y("button", {
|
|
108
157
|
type: "button",
|
|
109
|
-
onClick:
|
|
110
|
-
disabled:
|
|
158
|
+
onClick: P,
|
|
159
|
+
disabled: E,
|
|
111
160
|
className: "flex items-center gap-1.5 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 disabled:opacity-50",
|
|
112
161
|
children: [
|
|
113
|
-
/* @__PURE__ */
|
|
162
|
+
/* @__PURE__ */ v(m, { className: "h-4 w-4" }),
|
|
114
163
|
" ",
|
|
115
|
-
|
|
164
|
+
E ? "Saving..." : "Save Settings"
|
|
116
165
|
]
|
|
117
166
|
})]
|
|
118
167
|
}),
|
|
119
168
|
children: [
|
|
120
|
-
/* @__PURE__ */
|
|
169
|
+
/* @__PURE__ */ v(S, {
|
|
121
170
|
className: "mb-6",
|
|
122
|
-
children: "The control panel for how the whole Kadaikodi platform behaves. Use these settings to set platform-wide policies — branding and locale, security and login rules, the notifications the system sends, database/backups, and third-party integrations.
|
|
171
|
+
children: "The control panel for how the whole Kadaikodi platform behaves. Use these settings to set platform-wide policies — branding and locale, security and login rules, the notifications the system sends, database/backups, and third-party integrations. Your changes are saved to this device for now; platform-wide application of these controls is coming soon."
|
|
172
|
+
}),
|
|
173
|
+
A && /* @__PURE__ */ y("div", {
|
|
174
|
+
className: t("mb-6 flex items-center gap-2 rounded-lg border p-3", A.type === "success" ? "border-status-success-text/30 bg-status-success-bg-subtle" : "border-status-error-text/30 bg-status-error-bg-subtle"),
|
|
175
|
+
children: [A.type === "success" ? /* @__PURE__ */ v(s, { className: "h-4 w-4 text-status-success-text" }) : /* @__PURE__ */ v(i, { className: "h-4 w-4 text-status-error-text" }), /* @__PURE__ */ v("span", {
|
|
176
|
+
className: t("text-sm font-medium", A.type === "success" ? "text-status-success-text" : "text-status-error-text"),
|
|
177
|
+
children: A.text
|
|
178
|
+
})]
|
|
123
179
|
}),
|
|
124
|
-
/* @__PURE__ */
|
|
180
|
+
/* @__PURE__ */ v(x, {
|
|
125
181
|
storageKey: "kadaikodi-admin-settings",
|
|
126
182
|
className: "mb-6",
|
|
127
183
|
steps: [
|
|
@@ -129,62 +185,62 @@ function x() {
|
|
|
129
185
|
id: "security",
|
|
130
186
|
label: "Review security policies",
|
|
131
187
|
description: "Check login, password and session rules.",
|
|
132
|
-
onClick: () =>
|
|
188
|
+
onClick: () => k("security")
|
|
133
189
|
},
|
|
134
190
|
{
|
|
135
191
|
id: "notifications",
|
|
136
192
|
label: "Tune platform notifications",
|
|
137
193
|
description: "Decide which alerts the system sends out.",
|
|
138
|
-
onClick: () =>
|
|
194
|
+
onClick: () => k("notifications")
|
|
139
195
|
},
|
|
140
196
|
{
|
|
141
197
|
id: "integrations",
|
|
142
198
|
label: "Connect integrations",
|
|
143
199
|
description: "Wire up payment, SMS and analytics providers.",
|
|
144
|
-
onClick: () =>
|
|
200
|
+
onClick: () => k("integrations")
|
|
145
201
|
}
|
|
146
202
|
]
|
|
147
203
|
}),
|
|
148
|
-
/* @__PURE__ */
|
|
204
|
+
/* @__PURE__ */ y("div", {
|
|
149
205
|
className: "flex flex-col lg:flex-row gap-6",
|
|
150
206
|
children: [
|
|
151
|
-
/* @__PURE__ */
|
|
207
|
+
/* @__PURE__ */ v("div", {
|
|
152
208
|
className: "lg:hidden",
|
|
153
|
-
children: /* @__PURE__ */
|
|
209
|
+
children: /* @__PURE__ */ v("div", {
|
|
154
210
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-3 mb-4",
|
|
155
|
-
children: /* @__PURE__ */
|
|
211
|
+
children: /* @__PURE__ */ v("div", {
|
|
156
212
|
className: "grid grid-cols-2 sm:grid-cols-3 gap-2",
|
|
157
|
-
children:
|
|
213
|
+
children: L.map((e) => {
|
|
158
214
|
let n = e.icon;
|
|
159
|
-
return /* @__PURE__ */
|
|
215
|
+
return /* @__PURE__ */ y("button", {
|
|
160
216
|
type: "button",
|
|
161
|
-
onClick: () =>
|
|
162
|
-
className: t("flex items-center justify-center gap-2 rounded-lg px-3 py-2 text-sm font-medium transition-colors",
|
|
163
|
-
children: [/* @__PURE__ */
|
|
217
|
+
onClick: () => k(e.id),
|
|
218
|
+
className: t("flex items-center justify-center gap-2 rounded-lg px-3 py-2 text-sm font-medium transition-colors", O === e.id ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken text-text-primary hover:bg-bg-sunken/80"),
|
|
219
|
+
children: [/* @__PURE__ */ v(n, { className: "h-4 w-4" }), /* @__PURE__ */ v("span", { children: e.label })]
|
|
164
220
|
}, e.id);
|
|
165
221
|
})
|
|
166
222
|
})
|
|
167
223
|
})
|
|
168
224
|
}),
|
|
169
|
-
/* @__PURE__ */
|
|
225
|
+
/* @__PURE__ */ v("div", {
|
|
170
226
|
className: "hidden lg:block lg:w-64 lg:shrink-0",
|
|
171
|
-
children: /* @__PURE__ */
|
|
227
|
+
children: /* @__PURE__ */ y("div", {
|
|
172
228
|
className: "rounded-lg border border-border-subtle bg-bg-surface sticky top-24",
|
|
173
|
-
children: [/* @__PURE__ */
|
|
229
|
+
children: [/* @__PURE__ */ v("div", {
|
|
174
230
|
className: "p-4 border-b border-border-subtle",
|
|
175
|
-
children: /* @__PURE__ */
|
|
231
|
+
children: /* @__PURE__ */ v("h2", {
|
|
176
232
|
className: "font-semibold text-text-primary",
|
|
177
233
|
children: "Settings"
|
|
178
234
|
})
|
|
179
|
-
}), /* @__PURE__ */
|
|
235
|
+
}), /* @__PURE__ */ v("nav", {
|
|
180
236
|
className: "p-2",
|
|
181
|
-
children:
|
|
237
|
+
children: L.map((e) => {
|
|
182
238
|
let n = e.icon;
|
|
183
|
-
return /* @__PURE__ */
|
|
239
|
+
return /* @__PURE__ */ y("button", {
|
|
184
240
|
type: "button",
|
|
185
|
-
onClick: () =>
|
|
186
|
-
className: t("w-full text-left px-3 py-2 rounded-lg mb-1 flex items-center gap-3 transition-colors",
|
|
187
|
-
children: [/* @__PURE__ */
|
|
241
|
+
onClick: () => k(e.id),
|
|
242
|
+
className: t("w-full text-left px-3 py-2 rounded-lg mb-1 flex items-center gap-3 transition-colors", O === e.id ? "bg-action-primary-bg/10 text-primary font-medium" : "text-text-primary hover:bg-bg-sunken"),
|
|
243
|
+
children: [/* @__PURE__ */ v(n, { className: "h-4 w-4" }), /* @__PURE__ */ v("span", {
|
|
188
244
|
className: "text-sm",
|
|
189
245
|
children: e.label
|
|
190
246
|
})]
|
|
@@ -193,123 +249,123 @@ function x() {
|
|
|
193
249
|
})]
|
|
194
250
|
})
|
|
195
251
|
}),
|
|
196
|
-
/* @__PURE__ */
|
|
252
|
+
/* @__PURE__ */ v("div", {
|
|
197
253
|
className: "flex-1 min-w-0",
|
|
198
|
-
children: /* @__PURE__ */
|
|
199
|
-
|
|
254
|
+
children: /* @__PURE__ */ y(b, { children: [
|
|
255
|
+
O === "general" && /* @__PURE__ */ y("div", {
|
|
200
256
|
className: "space-y-6",
|
|
201
257
|
children: [
|
|
202
|
-
/* @__PURE__ */
|
|
258
|
+
/* @__PURE__ */ y("div", {
|
|
203
259
|
className: "flex items-center gap-2 mb-2",
|
|
204
|
-
children: [/* @__PURE__ */
|
|
260
|
+
children: [/* @__PURE__ */ v(l, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ v("h3", {
|
|
205
261
|
className: "text-lg font-semibold text-text-primary",
|
|
206
262
|
children: "General Settings"
|
|
207
263
|
})]
|
|
208
264
|
}),
|
|
209
|
-
/* @__PURE__ */
|
|
265
|
+
/* @__PURE__ */ y("div", {
|
|
210
266
|
className: "grid grid-cols-1 md:grid-cols-2 gap-6",
|
|
211
267
|
children: [
|
|
212
|
-
/* @__PURE__ */
|
|
213
|
-
className:
|
|
268
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
269
|
+
className: z,
|
|
214
270
|
children: "Site Name"
|
|
215
|
-
}), /* @__PURE__ */
|
|
271
|
+
}), /* @__PURE__ */ v("input", {
|
|
216
272
|
type: "text",
|
|
217
|
-
value:
|
|
218
|
-
onChange: (e) =>
|
|
219
|
-
className:
|
|
273
|
+
value: M.general.siteName,
|
|
274
|
+
onChange: (e) => F("general", "siteName", e.target.value),
|
|
275
|
+
className: R
|
|
220
276
|
})] }),
|
|
221
|
-
/* @__PURE__ */
|
|
222
|
-
className:
|
|
277
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
278
|
+
className: z,
|
|
223
279
|
children: "Site URL"
|
|
224
|
-
}), /* @__PURE__ */
|
|
280
|
+
}), /* @__PURE__ */ v("input", {
|
|
225
281
|
type: "text",
|
|
226
|
-
value:
|
|
227
|
-
onChange: (e) =>
|
|
228
|
-
className:
|
|
282
|
+
value: M.general.siteUrl,
|
|
283
|
+
onChange: (e) => F("general", "siteUrl", e.target.value),
|
|
284
|
+
className: R
|
|
229
285
|
})] }),
|
|
230
|
-
/* @__PURE__ */
|
|
231
|
-
className:
|
|
286
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
287
|
+
className: z,
|
|
232
288
|
children: "Timezone"
|
|
233
|
-
}), /* @__PURE__ */
|
|
234
|
-
value:
|
|
235
|
-
onChange: (e) =>
|
|
236
|
-
className:
|
|
289
|
+
}), /* @__PURE__ */ y("select", {
|
|
290
|
+
value: M.general.timezone,
|
|
291
|
+
onChange: (e) => F("general", "timezone", e.target.value),
|
|
292
|
+
className: R,
|
|
237
293
|
children: [
|
|
238
|
-
/* @__PURE__ */
|
|
294
|
+
/* @__PURE__ */ v("option", {
|
|
239
295
|
value: "Asia/Kolkata",
|
|
240
296
|
children: "Asia/Kolkata (IST)"
|
|
241
297
|
}),
|
|
242
|
-
/* @__PURE__ */
|
|
298
|
+
/* @__PURE__ */ v("option", {
|
|
243
299
|
value: "UTC",
|
|
244
300
|
children: "UTC"
|
|
245
301
|
}),
|
|
246
|
-
/* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ v("option", {
|
|
247
303
|
value: "America/New_York",
|
|
248
304
|
children: "America/New_York (EST)"
|
|
249
305
|
})
|
|
250
306
|
]
|
|
251
307
|
})] }),
|
|
252
|
-
/* @__PURE__ */
|
|
253
|
-
className:
|
|
308
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
309
|
+
className: z,
|
|
254
310
|
children: "Currency"
|
|
255
|
-
}), /* @__PURE__ */
|
|
256
|
-
value:
|
|
257
|
-
onChange: (e) =>
|
|
258
|
-
className:
|
|
311
|
+
}), /* @__PURE__ */ y("select", {
|
|
312
|
+
value: M.general.currency,
|
|
313
|
+
onChange: (e) => F("general", "currency", e.target.value),
|
|
314
|
+
className: R,
|
|
259
315
|
children: [
|
|
260
|
-
/* @__PURE__ */
|
|
316
|
+
/* @__PURE__ */ v("option", {
|
|
261
317
|
value: "INR",
|
|
262
318
|
children: "Indian Rupee (INR)"
|
|
263
319
|
}),
|
|
264
|
-
/* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ v("option", {
|
|
265
321
|
value: "USD",
|
|
266
322
|
children: "US Dollar (USD)"
|
|
267
323
|
}),
|
|
268
|
-
/* @__PURE__ */
|
|
324
|
+
/* @__PURE__ */ v("option", {
|
|
269
325
|
value: "EUR",
|
|
270
326
|
children: "Euro (EUR)"
|
|
271
327
|
})
|
|
272
328
|
]
|
|
273
329
|
})] }),
|
|
274
|
-
/* @__PURE__ */
|
|
275
|
-
className:
|
|
330
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
331
|
+
className: z,
|
|
276
332
|
children: "Language"
|
|
277
|
-
}), /* @__PURE__ */
|
|
278
|
-
value:
|
|
279
|
-
onChange: (e) =>
|
|
280
|
-
className:
|
|
333
|
+
}), /* @__PURE__ */ y("select", {
|
|
334
|
+
value: M.general.language,
|
|
335
|
+
onChange: (e) => F("general", "language", e.target.value),
|
|
336
|
+
className: R,
|
|
281
337
|
children: [
|
|
282
|
-
/* @__PURE__ */
|
|
338
|
+
/* @__PURE__ */ v("option", {
|
|
283
339
|
value: "en",
|
|
284
340
|
children: "English"
|
|
285
341
|
}),
|
|
286
|
-
/* @__PURE__ */
|
|
342
|
+
/* @__PURE__ */ v("option", {
|
|
287
343
|
value: "hi",
|
|
288
344
|
children: "Hindi"
|
|
289
345
|
}),
|
|
290
|
-
/* @__PURE__ */
|
|
346
|
+
/* @__PURE__ */ v("option", {
|
|
291
347
|
value: "ta",
|
|
292
348
|
children: "Tamil"
|
|
293
349
|
})
|
|
294
350
|
]
|
|
295
351
|
})] }),
|
|
296
|
-
/* @__PURE__ */
|
|
297
|
-
className:
|
|
352
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
353
|
+
className: z,
|
|
298
354
|
children: "Date Format"
|
|
299
|
-
}), /* @__PURE__ */
|
|
300
|
-
value:
|
|
301
|
-
onChange: (e) =>
|
|
302
|
-
className:
|
|
355
|
+
}), /* @__PURE__ */ y("select", {
|
|
356
|
+
value: M.general.dateFormat,
|
|
357
|
+
onChange: (e) => F("general", "dateFormat", e.target.value),
|
|
358
|
+
className: R,
|
|
303
359
|
children: [
|
|
304
|
-
/* @__PURE__ */
|
|
360
|
+
/* @__PURE__ */ v("option", {
|
|
305
361
|
value: "DD/MM/YYYY",
|
|
306
362
|
children: "DD/MM/YYYY"
|
|
307
363
|
}),
|
|
308
|
-
/* @__PURE__ */
|
|
364
|
+
/* @__PURE__ */ v("option", {
|
|
309
365
|
value: "MM/DD/YYYY",
|
|
310
366
|
children: "MM/DD/YYYY"
|
|
311
367
|
}),
|
|
312
|
-
/* @__PURE__ */
|
|
368
|
+
/* @__PURE__ */ v("option", {
|
|
313
369
|
value: "YYYY-MM-DD",
|
|
314
370
|
children: "YYYY-MM-DD"
|
|
315
371
|
})
|
|
@@ -317,106 +373,106 @@ function x() {
|
|
|
317
373
|
})] })
|
|
318
374
|
]
|
|
319
375
|
}),
|
|
320
|
-
/* @__PURE__ */
|
|
376
|
+
/* @__PURE__ */ y("label", {
|
|
321
377
|
className: "flex items-center gap-2 mt-4",
|
|
322
|
-
children: [/* @__PURE__ */
|
|
378
|
+
children: [/* @__PURE__ */ v("input", {
|
|
323
379
|
type: "checkbox",
|
|
324
|
-
checked:
|
|
325
|
-
onChange: (e) =>
|
|
380
|
+
checked: M.general.maintenanceMode,
|
|
381
|
+
onChange: (e) => F("general", "maintenanceMode", e.target.checked),
|
|
326
382
|
className: "rounded border-border-subtle text-primary focus:ring-primary"
|
|
327
|
-
}), /* @__PURE__ */
|
|
383
|
+
}), /* @__PURE__ */ v("span", {
|
|
328
384
|
className: "text-sm text-text-primary",
|
|
329
385
|
children: "Enable Maintenance Mode"
|
|
330
386
|
})]
|
|
331
387
|
})
|
|
332
388
|
]
|
|
333
389
|
}),
|
|
334
|
-
|
|
390
|
+
O === "security" && /* @__PURE__ */ y("div", {
|
|
335
391
|
className: "space-y-6",
|
|
336
392
|
children: [
|
|
337
|
-
/* @__PURE__ */
|
|
393
|
+
/* @__PURE__ */ y("div", {
|
|
338
394
|
className: "flex items-center gap-2 mb-2",
|
|
339
|
-
children: [/* @__PURE__ */
|
|
395
|
+
children: [/* @__PURE__ */ v(d, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ v("h3", {
|
|
340
396
|
className: "text-lg font-semibold text-text-primary",
|
|
341
397
|
children: "Security Settings"
|
|
342
398
|
})]
|
|
343
399
|
}),
|
|
344
|
-
/* @__PURE__ */
|
|
345
|
-
/* @__PURE__ */
|
|
400
|
+
/* @__PURE__ */ y("div", { children: [
|
|
401
|
+
/* @__PURE__ */ v("h4", {
|
|
346
402
|
className: "font-medium text-text-primary mb-4",
|
|
347
403
|
children: "Password Policy"
|
|
348
404
|
}),
|
|
349
|
-
/* @__PURE__ */
|
|
405
|
+
/* @__PURE__ */ y("div", {
|
|
350
406
|
className: "grid grid-cols-1 md:grid-cols-2 gap-6",
|
|
351
|
-
children: [/* @__PURE__ */
|
|
352
|
-
className:
|
|
407
|
+
children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
408
|
+
className: z,
|
|
353
409
|
children: "Minimum Length"
|
|
354
|
-
}), /* @__PURE__ */
|
|
410
|
+
}), /* @__PURE__ */ v("input", {
|
|
355
411
|
type: "number",
|
|
356
|
-
value:
|
|
357
|
-
onChange: (e) =>
|
|
412
|
+
value: M.security.passwordPolicy.minLength,
|
|
413
|
+
onChange: (e) => I("security", "passwordPolicy", "minLength", parseInt(e.target.value)),
|
|
358
414
|
min: 6,
|
|
359
415
|
max: 50,
|
|
360
|
-
className:
|
|
361
|
-
})] }), /* @__PURE__ */
|
|
362
|
-
className:
|
|
416
|
+
className: R
|
|
417
|
+
})] }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
418
|
+
className: z,
|
|
363
419
|
children: "Session Timeout (minutes)"
|
|
364
|
-
}), /* @__PURE__ */
|
|
420
|
+
}), /* @__PURE__ */ v("input", {
|
|
365
421
|
type: "number",
|
|
366
|
-
value:
|
|
367
|
-
onChange: (e) =>
|
|
422
|
+
value: M.security.sessionTimeout,
|
|
423
|
+
onChange: (e) => F("security", "sessionTimeout", parseInt(e.target.value)),
|
|
368
424
|
min: 15,
|
|
369
425
|
max: 480,
|
|
370
|
-
className:
|
|
426
|
+
className: R
|
|
371
427
|
})] })]
|
|
372
428
|
}),
|
|
373
|
-
/* @__PURE__ */
|
|
429
|
+
/* @__PURE__ */ y("div", {
|
|
374
430
|
className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mt-4",
|
|
375
431
|
children: [
|
|
376
|
-
/* @__PURE__ */
|
|
432
|
+
/* @__PURE__ */ y("label", {
|
|
377
433
|
className: "flex items-center gap-2",
|
|
378
|
-
children: [/* @__PURE__ */
|
|
434
|
+
children: [/* @__PURE__ */ v("input", {
|
|
379
435
|
type: "checkbox",
|
|
380
|
-
checked:
|
|
381
|
-
onChange: (e) =>
|
|
436
|
+
checked: M.security.passwordPolicy.requireUppercase,
|
|
437
|
+
onChange: (e) => I("security", "passwordPolicy", "requireUppercase", e.target.checked),
|
|
382
438
|
className: "rounded border-border-subtle text-primary focus:ring-primary"
|
|
383
|
-
}), /* @__PURE__ */
|
|
439
|
+
}), /* @__PURE__ */ v("span", {
|
|
384
440
|
className: "text-sm text-text-primary",
|
|
385
441
|
children: "Require Uppercase"
|
|
386
442
|
})]
|
|
387
443
|
}),
|
|
388
|
-
/* @__PURE__ */
|
|
444
|
+
/* @__PURE__ */ y("label", {
|
|
389
445
|
className: "flex items-center gap-2",
|
|
390
|
-
children: [/* @__PURE__ */
|
|
446
|
+
children: [/* @__PURE__ */ v("input", {
|
|
391
447
|
type: "checkbox",
|
|
392
|
-
checked:
|
|
393
|
-
onChange: (e) =>
|
|
448
|
+
checked: M.security.passwordPolicy.requireNumbers,
|
|
449
|
+
onChange: (e) => I("security", "passwordPolicy", "requireNumbers", e.target.checked),
|
|
394
450
|
className: "rounded border-border-subtle text-primary focus:ring-primary"
|
|
395
|
-
}), /* @__PURE__ */
|
|
451
|
+
}), /* @__PURE__ */ v("span", {
|
|
396
452
|
className: "text-sm text-text-primary",
|
|
397
453
|
children: "Require Numbers"
|
|
398
454
|
})]
|
|
399
455
|
}),
|
|
400
|
-
/* @__PURE__ */
|
|
456
|
+
/* @__PURE__ */ y("label", {
|
|
401
457
|
className: "flex items-center gap-2",
|
|
402
|
-
children: [/* @__PURE__ */
|
|
458
|
+
children: [/* @__PURE__ */ v("input", {
|
|
403
459
|
type: "checkbox",
|
|
404
|
-
checked:
|
|
405
|
-
onChange: (e) =>
|
|
460
|
+
checked: M.security.passwordPolicy.requireSymbols,
|
|
461
|
+
onChange: (e) => I("security", "passwordPolicy", "requireSymbols", e.target.checked),
|
|
406
462
|
className: "rounded border-border-subtle text-primary focus:ring-primary"
|
|
407
|
-
}), /* @__PURE__ */
|
|
463
|
+
}), /* @__PURE__ */ v("span", {
|
|
408
464
|
className: "text-sm text-text-primary",
|
|
409
465
|
children: "Require Symbols"
|
|
410
466
|
})]
|
|
411
467
|
}),
|
|
412
|
-
/* @__PURE__ */
|
|
468
|
+
/* @__PURE__ */ y("label", {
|
|
413
469
|
className: "flex items-center gap-2",
|
|
414
|
-
children: [/* @__PURE__ */
|
|
470
|
+
children: [/* @__PURE__ */ v("input", {
|
|
415
471
|
type: "checkbox",
|
|
416
|
-
checked:
|
|
417
|
-
onChange: (e) =>
|
|
472
|
+
checked: M.security.twoFactorAuth,
|
|
473
|
+
onChange: (e) => F("security", "twoFactorAuth", e.target.checked),
|
|
418
474
|
className: "rounded border-border-subtle text-primary focus:ring-primary"
|
|
419
|
-
}), /* @__PURE__ */
|
|
475
|
+
}), /* @__PURE__ */ v("span", {
|
|
420
476
|
className: "text-sm text-text-primary",
|
|
421
477
|
children: "Two-Factor Auth"
|
|
422
478
|
})]
|
|
@@ -424,63 +480,63 @@ function x() {
|
|
|
424
480
|
]
|
|
425
481
|
})
|
|
426
482
|
] }),
|
|
427
|
-
/* @__PURE__ */
|
|
428
|
-
className:
|
|
483
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
484
|
+
className: z,
|
|
429
485
|
children: "Max Login Attempts"
|
|
430
|
-
}), /* @__PURE__ */
|
|
486
|
+
}), /* @__PURE__ */ v("input", {
|
|
431
487
|
type: "number",
|
|
432
|
-
value:
|
|
433
|
-
onChange: (e) =>
|
|
488
|
+
value: M.security.maxLoginAttempts,
|
|
489
|
+
onChange: (e) => F("security", "maxLoginAttempts", parseInt(e.target.value)),
|
|
434
490
|
min: 1,
|
|
435
491
|
max: 20,
|
|
436
|
-
className: t(
|
|
492
|
+
className: t(R, "max-w-xs")
|
|
437
493
|
})] })
|
|
438
494
|
]
|
|
439
495
|
}),
|
|
440
|
-
|
|
496
|
+
O === "notifications" && /* @__PURE__ */ y("div", {
|
|
441
497
|
className: "space-y-6",
|
|
442
|
-
children: [/* @__PURE__ */
|
|
498
|
+
children: [/* @__PURE__ */ y("div", {
|
|
443
499
|
className: "flex items-center gap-2 mb-2",
|
|
444
|
-
children: [/* @__PURE__ */
|
|
500
|
+
children: [/* @__PURE__ */ v(o, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ v("h3", {
|
|
445
501
|
className: "text-lg font-semibold text-text-primary",
|
|
446
502
|
children: "Notification Settings"
|
|
447
503
|
})]
|
|
448
|
-
}), /* @__PURE__ */
|
|
504
|
+
}), /* @__PURE__ */ v("div", {
|
|
449
505
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
|
|
450
506
|
children: [
|
|
451
507
|
{
|
|
452
508
|
key: "emailNotifications",
|
|
453
509
|
label: "Email Notifications",
|
|
454
|
-
icon:
|
|
510
|
+
icon: f
|
|
455
511
|
},
|
|
456
512
|
{
|
|
457
513
|
key: "smsNotifications",
|
|
458
514
|
label: "SMS Notifications",
|
|
459
|
-
icon:
|
|
515
|
+
icon: _
|
|
460
516
|
},
|
|
461
517
|
{
|
|
462
518
|
key: "adminAlerts",
|
|
463
519
|
label: "Admin Alerts",
|
|
464
|
-
icon:
|
|
520
|
+
icon: g
|
|
465
521
|
},
|
|
466
522
|
{
|
|
467
523
|
key: "systemAlerts",
|
|
468
524
|
label: "System Alerts",
|
|
469
|
-
icon:
|
|
525
|
+
icon: o
|
|
470
526
|
}
|
|
471
527
|
].map((e) => {
|
|
472
528
|
let t = e.icon;
|
|
473
|
-
return /* @__PURE__ */
|
|
529
|
+
return /* @__PURE__ */ y("label", {
|
|
474
530
|
className: "flex items-center gap-3 rounded-lg border border-border-subtle p-4 cursor-pointer hover:bg-accent/50 transition-colors",
|
|
475
531
|
children: [
|
|
476
|
-
/* @__PURE__ */
|
|
532
|
+
/* @__PURE__ */ v("input", {
|
|
477
533
|
type: "checkbox",
|
|
478
|
-
checked:
|
|
479
|
-
onChange: (t) =>
|
|
534
|
+
checked: M.notifications[e.key],
|
|
535
|
+
onChange: (t) => F("notifications", e.key, t.target.checked),
|
|
480
536
|
className: "rounded border-border-subtle text-primary focus:ring-primary"
|
|
481
537
|
}),
|
|
482
|
-
/* @__PURE__ */
|
|
483
|
-
/* @__PURE__ */
|
|
538
|
+
/* @__PURE__ */ v(t, { className: "h-5 w-5 text-text-secondary" }),
|
|
539
|
+
/* @__PURE__ */ v("span", {
|
|
484
540
|
className: "text-sm font-medium text-text-primary",
|
|
485
541
|
children: e.label
|
|
486
542
|
})
|
|
@@ -489,173 +545,173 @@ function x() {
|
|
|
489
545
|
})
|
|
490
546
|
})]
|
|
491
547
|
}),
|
|
492
|
-
|
|
548
|
+
O === "database" && /* @__PURE__ */ y("div", {
|
|
493
549
|
className: "space-y-6",
|
|
494
550
|
children: [
|
|
495
|
-
/* @__PURE__ */
|
|
551
|
+
/* @__PURE__ */ y("div", {
|
|
496
552
|
className: "flex items-center gap-2 mb-2",
|
|
497
|
-
children: [/* @__PURE__ */
|
|
553
|
+
children: [/* @__PURE__ */ v(u, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ v("h3", {
|
|
498
554
|
className: "text-lg font-semibold text-text-primary",
|
|
499
555
|
children: "Database Settings"
|
|
500
556
|
})]
|
|
501
557
|
}),
|
|
502
|
-
/* @__PURE__ */
|
|
558
|
+
/* @__PURE__ */ y("div", {
|
|
503
559
|
className: "grid grid-cols-1 md:grid-cols-2 gap-6",
|
|
504
|
-
children: [/* @__PURE__ */
|
|
505
|
-
className:
|
|
560
|
+
children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
561
|
+
className: z,
|
|
506
562
|
children: "Backup Frequency"
|
|
507
|
-
}), /* @__PURE__ */
|
|
508
|
-
value:
|
|
509
|
-
onChange: (e) =>
|
|
510
|
-
className:
|
|
563
|
+
}), /* @__PURE__ */ y("select", {
|
|
564
|
+
value: M.database.backupFrequency,
|
|
565
|
+
onChange: (e) => F("database", "backupFrequency", e.target.value),
|
|
566
|
+
className: R,
|
|
511
567
|
children: [
|
|
512
|
-
/* @__PURE__ */
|
|
568
|
+
/* @__PURE__ */ v("option", {
|
|
513
569
|
value: "hourly",
|
|
514
570
|
children: "Hourly"
|
|
515
571
|
}),
|
|
516
|
-
/* @__PURE__ */
|
|
572
|
+
/* @__PURE__ */ v("option", {
|
|
517
573
|
value: "daily",
|
|
518
574
|
children: "Daily"
|
|
519
575
|
}),
|
|
520
|
-
/* @__PURE__ */
|
|
576
|
+
/* @__PURE__ */ v("option", {
|
|
521
577
|
value: "weekly",
|
|
522
578
|
children: "Weekly"
|
|
523
579
|
}),
|
|
524
|
-
/* @__PURE__ */
|
|
580
|
+
/* @__PURE__ */ v("option", {
|
|
525
581
|
value: "monthly",
|
|
526
582
|
children: "Monthly"
|
|
527
583
|
})
|
|
528
584
|
]
|
|
529
|
-
})] }), /* @__PURE__ */
|
|
530
|
-
className:
|
|
585
|
+
})] }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
586
|
+
className: z,
|
|
531
587
|
children: "Retention Period (days)"
|
|
532
|
-
}), /* @__PURE__ */
|
|
588
|
+
}), /* @__PURE__ */ v("input", {
|
|
533
589
|
type: "number",
|
|
534
|
-
value:
|
|
535
|
-
onChange: (e) =>
|
|
590
|
+
value: M.database.retentionPeriod,
|
|
591
|
+
onChange: (e) => F("database", "retentionPeriod", parseInt(e.target.value)),
|
|
536
592
|
min: 7,
|
|
537
593
|
max: 365,
|
|
538
|
-
className:
|
|
594
|
+
className: R
|
|
539
595
|
})] })]
|
|
540
596
|
}),
|
|
541
|
-
/* @__PURE__ */
|
|
597
|
+
/* @__PURE__ */ y("label", {
|
|
542
598
|
className: "flex items-center gap-2",
|
|
543
|
-
children: [/* @__PURE__ */
|
|
599
|
+
children: [/* @__PURE__ */ v("input", {
|
|
544
600
|
type: "checkbox",
|
|
545
|
-
checked:
|
|
546
|
-
onChange: (e) =>
|
|
601
|
+
checked: M.database.autoBackup,
|
|
602
|
+
onChange: (e) => F("database", "autoBackup", e.target.checked),
|
|
547
603
|
className: "rounded border-border-subtle text-primary focus:ring-primary"
|
|
548
|
-
}), /* @__PURE__ */
|
|
604
|
+
}), /* @__PURE__ */ v("span", {
|
|
549
605
|
className: "text-sm text-text-primary",
|
|
550
606
|
children: "Enable Auto Backup"
|
|
551
607
|
})]
|
|
552
608
|
}),
|
|
553
|
-
/* @__PURE__ */
|
|
609
|
+
/* @__PURE__ */ y("div", {
|
|
554
610
|
className: "rounded-lg bg-bg-sunken p-4",
|
|
555
|
-
children: [/* @__PURE__ */
|
|
611
|
+
children: [/* @__PURE__ */ v("p", {
|
|
556
612
|
className: "text-sm text-text-secondary",
|
|
557
613
|
children: "Last Backup"
|
|
558
|
-
}), /* @__PURE__ */
|
|
614
|
+
}), /* @__PURE__ */ v("p", {
|
|
559
615
|
className: "text-sm font-medium text-text-primary",
|
|
560
|
-
children:
|
|
616
|
+
children: M.database.lastBackup ? new Date(M.database.lastBackup).toLocaleString("en-IN") : "No backups recorded yet"
|
|
561
617
|
})]
|
|
562
618
|
})
|
|
563
619
|
]
|
|
564
620
|
}),
|
|
565
|
-
|
|
621
|
+
O === "integrations" && /* @__PURE__ */ y("div", {
|
|
566
622
|
className: "space-y-6",
|
|
567
|
-
children: [/* @__PURE__ */
|
|
623
|
+
children: [/* @__PURE__ */ y("div", {
|
|
568
624
|
className: "flex items-center gap-2 mb-2",
|
|
569
|
-
children: [/* @__PURE__ */
|
|
625
|
+
children: [/* @__PURE__ */ v(p, { className: "h-5 w-5 text-text-secondary" }), /* @__PURE__ */ v("h3", {
|
|
570
626
|
className: "text-lg font-semibold text-text-primary",
|
|
571
627
|
children: "Integrations"
|
|
572
628
|
})]
|
|
573
|
-
}), /* @__PURE__ */
|
|
629
|
+
}), /* @__PURE__ */ y("div", {
|
|
574
630
|
className: "grid grid-cols-1 md:grid-cols-2 gap-6",
|
|
575
631
|
children: [
|
|
576
|
-
/* @__PURE__ */
|
|
577
|
-
className:
|
|
632
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
633
|
+
className: z,
|
|
578
634
|
children: "Email Service"
|
|
579
|
-
}), /* @__PURE__ */
|
|
580
|
-
value:
|
|
581
|
-
onChange: (e) =>
|
|
582
|
-
className:
|
|
635
|
+
}), /* @__PURE__ */ y("select", {
|
|
636
|
+
value: M.integrations.emailService,
|
|
637
|
+
onChange: (e) => F("integrations", "emailService", e.target.value),
|
|
638
|
+
className: R,
|
|
583
639
|
children: [
|
|
584
|
-
/* @__PURE__ */
|
|
640
|
+
/* @__PURE__ */ v("option", {
|
|
585
641
|
value: "sendgrid",
|
|
586
642
|
children: "SendGrid"
|
|
587
643
|
}),
|
|
588
|
-
/* @__PURE__ */
|
|
644
|
+
/* @__PURE__ */ v("option", {
|
|
589
645
|
value: "ses",
|
|
590
646
|
children: "AWS SES"
|
|
591
647
|
}),
|
|
592
|
-
/* @__PURE__ */
|
|
648
|
+
/* @__PURE__ */ v("option", {
|
|
593
649
|
value: "mailgun",
|
|
594
650
|
children: "Mailgun"
|
|
595
651
|
})
|
|
596
652
|
]
|
|
597
653
|
})] }),
|
|
598
|
-
/* @__PURE__ */
|
|
599
|
-
className:
|
|
654
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
655
|
+
className: z,
|
|
600
656
|
children: "SMS Service"
|
|
601
|
-
}), /* @__PURE__ */
|
|
602
|
-
value:
|
|
603
|
-
onChange: (e) =>
|
|
604
|
-
className:
|
|
657
|
+
}), /* @__PURE__ */ y("select", {
|
|
658
|
+
value: M.integrations.smsService,
|
|
659
|
+
onChange: (e) => F("integrations", "smsService", e.target.value),
|
|
660
|
+
className: R,
|
|
605
661
|
children: [
|
|
606
|
-
/* @__PURE__ */
|
|
662
|
+
/* @__PURE__ */ v("option", {
|
|
607
663
|
value: "twilio",
|
|
608
664
|
children: "Twilio"
|
|
609
665
|
}),
|
|
610
|
-
/* @__PURE__ */
|
|
666
|
+
/* @__PURE__ */ v("option", {
|
|
611
667
|
value: "msg91",
|
|
612
668
|
children: "MSG91"
|
|
613
669
|
}),
|
|
614
|
-
/* @__PURE__ */
|
|
670
|
+
/* @__PURE__ */ v("option", {
|
|
615
671
|
value: "sns",
|
|
616
672
|
children: "AWS SNS"
|
|
617
673
|
})
|
|
618
674
|
]
|
|
619
675
|
})] }),
|
|
620
|
-
/* @__PURE__ */
|
|
621
|
-
className:
|
|
676
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
677
|
+
className: z,
|
|
622
678
|
children: "Payment Gateway"
|
|
623
|
-
}), /* @__PURE__ */
|
|
624
|
-
value:
|
|
625
|
-
onChange: (e) =>
|
|
626
|
-
className:
|
|
679
|
+
}), /* @__PURE__ */ y("select", {
|
|
680
|
+
value: M.integrations.paymentGateway,
|
|
681
|
+
onChange: (e) => F("integrations", "paymentGateway", e.target.value),
|
|
682
|
+
className: R,
|
|
627
683
|
children: [
|
|
628
|
-
/* @__PURE__ */
|
|
684
|
+
/* @__PURE__ */ v("option", {
|
|
629
685
|
value: "razorpay",
|
|
630
686
|
children: "Razorpay"
|
|
631
687
|
}),
|
|
632
|
-
/* @__PURE__ */
|
|
688
|
+
/* @__PURE__ */ v("option", {
|
|
633
689
|
value: "stripe",
|
|
634
690
|
children: "Stripe"
|
|
635
691
|
}),
|
|
636
|
-
/* @__PURE__ */
|
|
692
|
+
/* @__PURE__ */ v("option", {
|
|
637
693
|
value: "paytm",
|
|
638
694
|
children: "Paytm"
|
|
639
695
|
})
|
|
640
696
|
]
|
|
641
697
|
})] }),
|
|
642
|
-
/* @__PURE__ */
|
|
643
|
-
className:
|
|
698
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
|
|
699
|
+
className: z,
|
|
644
700
|
children: "Analytics Service"
|
|
645
|
-
}), /* @__PURE__ */
|
|
646
|
-
value:
|
|
647
|
-
onChange: (e) =>
|
|
648
|
-
className:
|
|
701
|
+
}), /* @__PURE__ */ y("select", {
|
|
702
|
+
value: M.integrations.analyticsService,
|
|
703
|
+
onChange: (e) => F("integrations", "analyticsService", e.target.value),
|
|
704
|
+
className: R,
|
|
649
705
|
children: [
|
|
650
|
-
/* @__PURE__ */
|
|
706
|
+
/* @__PURE__ */ v("option", {
|
|
651
707
|
value: "google",
|
|
652
708
|
children: "Google Analytics"
|
|
653
709
|
}),
|
|
654
|
-
/* @__PURE__ */
|
|
710
|
+
/* @__PURE__ */ v("option", {
|
|
655
711
|
value: "mixpanel",
|
|
656
712
|
children: "Mixpanel"
|
|
657
713
|
}),
|
|
658
|
-
/* @__PURE__ */
|
|
714
|
+
/* @__PURE__ */ v("option", {
|
|
659
715
|
value: "amplitude",
|
|
660
716
|
children: "Amplitude"
|
|
661
717
|
})
|
|
@@ -672,6 +728,6 @@ function x() {
|
|
|
672
728
|
});
|
|
673
729
|
}
|
|
674
730
|
//#endregion
|
|
675
|
-
export {
|
|
731
|
+
export { E as AdminSettingsPage };
|
|
676
732
|
|
|
677
733
|
//# sourceMappingURL=AdminSettingsPage.js.map
|