@reeboot/strapi-payment-plugin 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +378 -119
  2. package/dist/_chunks/Analytics-C2GKvPDX.js +355 -0
  3. package/dist/_chunks/Analytics-Chydh3dg.mjs +355 -0
  4. package/dist/_chunks/App-BCbEuN6h.mjs +68 -0
  5. package/dist/_chunks/App-E2k2mo5p.js +70 -0
  6. package/dist/_chunks/Customers-B8BlQ1BO.mjs +273 -0
  7. package/dist/_chunks/Customers-D0O5ET5C.js +273 -0
  8. package/dist/_chunks/Dashboard-CuqclLak.js +180 -0
  9. package/dist/_chunks/Dashboard-D8-ifJqB.mjs +180 -0
  10. package/dist/_chunks/Orders-5WGSzPGo.js +308 -0
  11. package/dist/_chunks/Orders-ClJJaQrX.mjs +308 -0
  12. package/dist/_chunks/Payments-CIMyOC3n.js +489 -0
  13. package/dist/_chunks/Payments-CRnRBf48.mjs +489 -0
  14. package/dist/_chunks/Settings-BXMLePI_.js +357 -0
  15. package/dist/_chunks/Settings-TeAvV4RH.mjs +357 -0
  16. package/dist/_chunks/en-BJocyOVu.mjs +240 -0
  17. package/dist/_chunks/en-BkVAf_R4.js +240 -0
  18. package/dist/_chunks/index-BTk7a2T5.js +66 -0
  19. package/dist/_chunks/index-Bz8V_5zH.mjs +67 -0
  20. package/dist/admin/index.js +2 -63
  21. package/dist/admin/index.mjs +2 -63
  22. package/dist/admin/src/components/AnalyticsChart.d.ts +19 -0
  23. package/dist/admin/src/components/CustomerList.d.ts +21 -0
  24. package/dist/admin/src/components/OrderList.d.ts +27 -0
  25. package/dist/admin/src/components/PaymentCard.d.ts +39 -0
  26. package/dist/admin/src/components/PaymentList.d.ts +19 -0
  27. package/dist/admin/src/components/RefundModal.d.ts +15 -0
  28. package/dist/admin/src/pages/Analytics.d.ts +2 -0
  29. package/dist/admin/src/pages/Customers.d.ts +2 -0
  30. package/dist/admin/src/pages/Dashboard.d.ts +2 -0
  31. package/dist/admin/src/pages/HomePage.d.ts +1 -1
  32. package/dist/admin/src/pages/Orders.d.ts +2 -0
  33. package/dist/admin/src/pages/Payments.d.ts +2 -0
  34. package/dist/admin/src/pages/Settings.d.ts +2 -0
  35. package/dist/admin/src/pluginId.d.ts +1 -1
  36. package/dist/server/index.js +1746 -984
  37. package/dist/server/index.mjs +1748 -986
  38. package/dist/server/src/bootstrap.d.ts +5 -11
  39. package/dist/server/src/config/index.d.ts +0 -10
  40. package/dist/server/src/content-types/customer/index.d.ts +69 -0
  41. package/dist/server/src/content-types/index.d.ts +123 -39
  42. package/dist/server/src/content-types/{product.d.ts → order/index.d.ts} +26 -19
  43. package/dist/server/src/content-types/{subscription.d.ts → payment/index.d.ts} +30 -21
  44. package/dist/server/src/controllers/controller.d.ts +5 -12
  45. package/dist/server/src/controllers/index.d.ts +29 -34
  46. package/dist/server/src/controllers/stripe.d.ts +104 -0
  47. package/dist/server/src/index.d.ts +179 -139
  48. package/dist/server/src/middlewares/index.d.ts +19 -1
  49. package/dist/server/src/policies/index.d.ts +3 -1
  50. package/dist/server/src/routes/{admin-routes.d.ts → admin/index.d.ts} +4 -4
  51. package/dist/server/src/routes/content-api/index.d.ts +21 -0
  52. package/dist/server/src/routes/index.d.ts +11 -16
  53. package/dist/server/src/services/index.d.ts +2 -38
  54. package/dist/server/src/services/{stripeDriver.d.ts → stripe.d.ts} +52 -59
  55. package/dist/server/src/types/index.d.ts +179 -0
  56. package/package.json +20 -25
  57. package/dist/_chunks/App-DD7GyuRr.mjs +0 -1424
  58. package/dist/_chunks/App-KZVBFRwo.js +0 -1424
  59. package/dist/_chunks/en-B4KWt_jN.js +0 -4
  60. package/dist/_chunks/en-Byx4XI2L.mjs +0 -4
  61. package/dist/admin/src/components/Header.d.ts +0 -2
  62. package/dist/admin/src/components/NavigationMenu.d.ts +0 -2
  63. package/dist/admin/src/components/Sidebar.d.ts +0 -2
  64. package/dist/admin/src/components/TransactionDetailsModal.d.ts +0 -18
  65. package/dist/admin/src/components/TransactionList.d.ts +0 -18
  66. package/dist/admin/src/pages/ConfigurationPage.d.ts +0 -2
  67. package/dist/admin/src/pages/DashboardPage.d.ts +0 -2
  68. package/dist/admin/src/pages/ProductsPage.d.ts +0 -2
  69. package/dist/admin/src/pages/SubscriptionsPage.d.ts +0 -2
  70. package/dist/admin/src/pages/TransactionsPage.d.ts +0 -2
  71. package/dist/server/src/controllers/product.d.ts +0 -18
  72. package/dist/server/src/controllers/subscription.d.ts +0 -16
  73. package/dist/server/src/controllers/webhook.d.ts +0 -10
  74. package/dist/server/src/routes/content-api.d.ts +0 -12
  75. package/dist/server/src/routes/product.d.ts +0 -2
  76. package/dist/server/src/routes/refund-routes.d.ts +0 -13
  77. package/dist/server/src/routes/subscription.d.ts +0 -5
  78. package/dist/server/src/routes/webhook.d.ts +0 -15
  79. package/dist/server/src/services/paypalDriver.d.ts +0 -47
  80. package/dist/server/src/services/product.d.ts +0 -7
  81. package/dist/server/src/services/service.d.ts +0 -26
  82. package/dist/server/src/services/subscription.d.ts +0 -9
  83. package/dist/server/src/services/sync.d.ts +0 -13
  84. package/jest.config.js +0 -13
@@ -0,0 +1,357 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const React = require("react");
5
+ const designSystem = require("@strapi/design-system");
6
+ const reactIntl = require("react-intl");
7
+ const admin = require("@strapi/strapi/admin");
8
+ const index = require("./index-BTk7a2T5.js");
9
+ const Settings = () => {
10
+ const { formatMessage } = reactIntl.useIntl();
11
+ const { get, put } = admin.useFetchClient();
12
+ const [settings, setSettings] = React.useState(null);
13
+ const [loading, setLoading] = React.useState(true);
14
+ const [saving, setSaving] = React.useState(false);
15
+ const [error, setError] = React.useState(null);
16
+ const [success, setSuccess] = React.useState(null);
17
+ const [hasChanges, setHasChanges] = React.useState(false);
18
+ React.useEffect(() => {
19
+ fetchSettings();
20
+ }, []);
21
+ const fetchSettings = async () => {
22
+ try {
23
+ setLoading(true);
24
+ const { data } = await get(`/${index.PLUGIN_ID}/admin/config`);
25
+ if (data.success && data.data) {
26
+ const backendConfig = data.data;
27
+ const initialSettings = {
28
+ stripe: {
29
+ publishableKey: backendConfig.stripe?.publishableKey || "",
30
+ secretKey: backendConfig.stripe?.secretKey || "",
31
+ webhookSecret: backendConfig.stripe?.webhookSecret || "",
32
+ apiVersion: backendConfig.stripe?.apiVersion || "2023-10-16",
33
+ enabled: backendConfig.stripe?.enabled ?? true
34
+ },
35
+ payments: {
36
+ defaultCurrency: backendConfig.payment?.defaultCurrency || "usd",
37
+ supportedCurrencies: backendConfig.payment?.supportedCurrencies || ["usd"],
38
+ enableRefunds: backendConfig.payment?.enableRefunds ?? true,
39
+ enablePartialRefunds: backendConfig.payment?.enablePartialRefunds ?? true,
40
+ refundWindow: backendConfig.payment?.refundWindow || 30,
41
+ captureMethod: backendConfig.payment?.captureMethod || "automatic",
42
+ confirmationMethod: backendConfig.payment?.confirmationMethod || "automatic"
43
+ },
44
+ webhooks: {
45
+ enabled: true,
46
+ endpoints: {
47
+ paymentSucceeded: "",
48
+ paymentFailed: "",
49
+ refundCreated: "",
50
+ invoiceCreated: ""
51
+ },
52
+ retries: 3,
53
+ timeout: 30
54
+ },
55
+ ui: {
56
+ showPaymentStatus: true,
57
+ showCustomerInfo: true,
58
+ enableNotifications: true,
59
+ theme: "auto",
60
+ compactView: false
61
+ },
62
+ security: {
63
+ enableIpFiltering: false,
64
+ allowedIps: [],
65
+ requireAuthentication: true,
66
+ enableAuditLog: true,
67
+ sessionTimeout: 60
68
+ }
69
+ };
70
+ setSettings(initialSettings);
71
+ }
72
+ setLoading(false);
73
+ } catch (err) {
74
+ setError("Failed to fetch settings");
75
+ setLoading(false);
76
+ }
77
+ };
78
+ const handleSettingChange = (section, key, value) => {
79
+ if (!settings) return;
80
+ setSettings((prev) => ({
81
+ ...prev,
82
+ [section]: {
83
+ ...prev[section],
84
+ [key]: value
85
+ }
86
+ }));
87
+ setHasChanges(true);
88
+ setSuccess(null);
89
+ };
90
+ const saveSettings = async () => {
91
+ try {
92
+ setSaving(true);
93
+ setError(null);
94
+ if (!settings) return;
95
+ const payload = {
96
+ stripe: settings.stripe,
97
+ payment: settings.payments,
98
+ logging: {
99
+ enableWebhookLogging: true
100
+ }
101
+ };
102
+ await put(`/${index.PLUGIN_ID}/admin/config`, payload);
103
+ setHasChanges(false);
104
+ setSuccess("Settings saved successfully");
105
+ setTimeout(() => setSuccess(null), 3e3);
106
+ } catch (err) {
107
+ setError("Failed to save settings");
108
+ } finally {
109
+ setSaving(false);
110
+ }
111
+ };
112
+ const resetSettings = () => {
113
+ if (confirm("Are you sure you want to reset all settings to default? This action cannot be undone.")) {
114
+ fetchSettings();
115
+ setHasChanges(false);
116
+ }
117
+ };
118
+ const testConnection = async () => {
119
+ try {
120
+ setSaving(true);
121
+ const { data } = await get(`/${index.PLUGIN_ID}/admin/config`);
122
+ if (data.success) {
123
+ alert("Connection to backend successful!");
124
+ } else {
125
+ throw new Error("Failed to connect");
126
+ }
127
+ } catch (err) {
128
+ alert("Connection test failed. Please check your API keys and server logs.");
129
+ } finally {
130
+ setSaving(false);
131
+ }
132
+ };
133
+ if (loading) {
134
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 4, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", alignItems: "center", style: { minHeight: "400px" }, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "beta", children: formatMessage({ id: "payment-plugin.settings.loading", defaultMessage: "Loading settings..." }) }) }) });
135
+ }
136
+ if (!settings) {
137
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 4, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Alert, { severity: "danger", children: formatMessage({ id: "payment-plugin.settings.error", defaultMessage: "Failed to load settings" }) }) });
138
+ }
139
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { paddingLeft: 10, paddingRight: 10, paddingTop: 4, paddingBottom: 10, children: [
140
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginBottom: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", alignItems: "center", children: [
141
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
142
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", tag: "h1", children: formatMessage({ id: "payment-plugin.settings.title", defaultMessage: "Payment Settings" }) }),
143
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "epsilon", textColor: "neutral600", children: formatMessage({
144
+ id: "payment-plugin.settings.subtitle",
145
+ defaultMessage: "Configure your payment plugin settings"
146
+ }) })
147
+ ] }),
148
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
149
+ hasChanges && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Alert, { variant: "warning", style: { marginRight: "1rem" }, children: formatMessage({ id: "payment-plugin.settings.unsaved", defaultMessage: "You have unsaved changes" }) }),
150
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "secondary", onClick: resetSettings, children: formatMessage({ id: "payment-plugin.settings.reset", defaultMessage: "Reset" }) }),
151
+ /* @__PURE__ */ jsxRuntime.jsx(
152
+ designSystem.Button,
153
+ {
154
+ variant: "secondary",
155
+ onClick: testConnection,
156
+ disabled: saving,
157
+ children: formatMessage({ id: "payment-plugin.settings.testConnection", defaultMessage: "Test Connection" })
158
+ }
159
+ ),
160
+ /* @__PURE__ */ jsxRuntime.jsx(
161
+ designSystem.Button,
162
+ {
163
+ onClick: saveSettings,
164
+ disabled: !hasChanges || saving,
165
+ loading: saving,
166
+ children: formatMessage({ id: "payment-plugin.settings.save", defaultMessage: "Save Settings" })
167
+ }
168
+ )
169
+ ] })
170
+ ] }) }),
171
+ error && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginBottom: 4, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Alert, { variant: "danger", onClose: () => setError(null), children: error }) }),
172
+ success && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginBottom: 4, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Alert, { variant: "success", onClose: () => setSuccess(null), children: success }) }),
173
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 6, children: [
174
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Card, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 4, children: [
175
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "beta", tag: "h2", marginBottom: 4, children: formatMessage({ id: "payment-plugin.settings.stripe", defaultMessage: "Stripe Configuration" }) }),
176
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 4, children: [
177
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(
178
+ designSystem.TextInput,
179
+ {
180
+ label: formatMessage({ id: "payment-plugin.settings.publishableKey", defaultMessage: "Publishable Key" }),
181
+ placeholder: "pk_test_...",
182
+ value: settings.stripe.publishableKey,
183
+ onChange: (e) => handleSettingChange("stripe", "publishableKey", e.target.value)
184
+ }
185
+ ) }),
186
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(
187
+ designSystem.TextInput,
188
+ {
189
+ label: formatMessage({ id: "payment-plugin.settings.secretKey", defaultMessage: "Secret Key" }),
190
+ placeholder: "sk_test_...",
191
+ value: settings.stripe.secretKey,
192
+ onChange: (e) => handleSettingChange("stripe", "secretKey", e.target.value),
193
+ type: "password"
194
+ }
195
+ ) }),
196
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(
197
+ designSystem.TextInput,
198
+ {
199
+ label: formatMessage({ id: "payment-plugin.settings.webhookSecret", defaultMessage: "Webhook Secret" }),
200
+ placeholder: "whsec_...",
201
+ value: settings.stripe.webhookSecret,
202
+ onChange: (e) => handleSettingChange("stripe", "webhookSecret", e.target.value),
203
+ type: "password"
204
+ }
205
+ ) }),
206
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsxs(
207
+ designSystem.SingleSelect,
208
+ {
209
+ label: formatMessage({ id: "payment-plugin.settings.apiVersion", defaultMessage: "API Version" }),
210
+ value: settings.stripe.apiVersion,
211
+ onChange: (value) => handleSettingChange("stripe", "apiVersion", value),
212
+ children: [
213
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "2024-06-20", children: "2024-06-20 (Latest)" }),
214
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "2023-10-16", children: "2023-10-16" }),
215
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "2023-08-15", children: "2023-08-15" })
216
+ ]
217
+ }
218
+ ) }),
219
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
220
+ /* @__PURE__ */ jsxRuntime.jsx(
221
+ designSystem.Switch,
222
+ {
223
+ label: formatMessage({ id: "payment-plugin.settings.enabled", defaultMessage: "Enable Stripe Payments" }),
224
+ selected: settings.stripe.enabled,
225
+ onChange: () => handleSettingChange("stripe", "enabled", !settings.stripe.enabled)
226
+ }
227
+ ),
228
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({ id: "payment-plugin.settings.enabled", defaultMessage: "Enable Stripe Payments" }) })
229
+ ] }) })
230
+ ] })
231
+ ] }) }) }),
232
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Card, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 4, children: [
233
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "beta", tag: "h2", marginBottom: 4, children: formatMessage({ id: "payment-plugin.settings.payments", defaultMessage: "Payment Settings" }) }),
234
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 4, children: [
235
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(
236
+ designSystem.SingleSelect,
237
+ {
238
+ label: formatMessage({ id: "payment-plugin.settings.defaultCurrency", defaultMessage: "Default Currency" }),
239
+ value: settings.payments.defaultCurrency,
240
+ onChange: (value) => handleSettingChange("payments", "defaultCurrency", value),
241
+ children: [
242
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "usd", children: "USD" }),
243
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "eur", children: "EUR" }),
244
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "gbp", children: "GBP" }),
245
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "cad", children: "CAD" }),
246
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "aud", children: "AUD" })
247
+ ]
248
+ }
249
+ ) }),
250
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(
251
+ designSystem.SingleSelect,
252
+ {
253
+ label: formatMessage({ id: "payment-plugin.settings.captureMethod", defaultMessage: "Capture Method" }),
254
+ value: settings.payments.captureMethod,
255
+ onChange: (value) => handleSettingChange("payments", "captureMethod", value),
256
+ children: [
257
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "automatic", children: "Automatic" }),
258
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "manual", children: "Manual" })
259
+ ]
260
+ }
261
+ ) }),
262
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, children: /* @__PURE__ */ jsxRuntime.jsx(
263
+ designSystem.TextInput,
264
+ {
265
+ label: formatMessage({ id: "payment-plugin.settings.refundWindow", defaultMessage: "Refund Window (Days)" }),
266
+ type: "number",
267
+ value: settings.payments.refundWindow.toString(),
268
+ onChange: (e) => handleSettingChange("payments", "refundWindow", parseInt(e.target.value) || 0)
269
+ }
270
+ ) })
271
+ ] })
272
+ ] }) }) }),
273
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Card, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 4, children: [
274
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "beta", tag: "h2", marginBottom: 4, children: formatMessage({ id: "payment-plugin.settings.security", defaultMessage: "Security Settings" }) }),
275
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 4, children: [
276
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
277
+ /* @__PURE__ */ jsxRuntime.jsx(
278
+ designSystem.Switch,
279
+ {
280
+ label: formatMessage({ id: "payment-plugin.settings.requireAuth", defaultMessage: "Require Authentication" }),
281
+ selected: settings.security.requireAuthentication,
282
+ onChange: () => handleSettingChange("security", "requireAuthentication", !settings.security.requireAuthentication)
283
+ }
284
+ ),
285
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({ id: "payment-plugin.settings.requireAuth", defaultMessage: "Require Authentication" }) })
286
+ ] }) }),
287
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
288
+ /* @__PURE__ */ jsxRuntime.jsx(
289
+ designSystem.Switch,
290
+ {
291
+ label: formatMessage({ id: "payment-plugin.settings.auditLog", defaultMessage: "Enable Audit Log" }),
292
+ selected: settings.security.enableAuditLog,
293
+ onChange: () => handleSettingChange("security", "enableAuditLog", !settings.security.enableAuditLog)
294
+ }
295
+ ),
296
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({ id: "payment-plugin.settings.auditLog", defaultMessage: "Enable Audit Log" }) })
297
+ ] }) }),
298
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, children: /* @__PURE__ */ jsxRuntime.jsx(
299
+ designSystem.TextInput,
300
+ {
301
+ label: formatMessage({ id: "payment-plugin.settings.sessionTimeout", defaultMessage: "Session Timeout (Minutes)" }),
302
+ type: "number",
303
+ value: settings.security.sessionTimeout.toString(),
304
+ onChange: (e) => handleSettingChange("security", "sessionTimeout", parseInt(e.target.value) || 60)
305
+ }
306
+ ) })
307
+ ] })
308
+ ] }) }) }),
309
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Card, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { padding: 4, children: [
310
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "beta", tag: "h2", marginBottom: 4, children: formatMessage({ id: "payment-plugin.settings.ui", defaultMessage: "User Interface Settings" }) }),
311
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 4, children: [
312
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
313
+ /* @__PURE__ */ jsxRuntime.jsx(
314
+ designSystem.Switch,
315
+ {
316
+ checked: settings.ui.showPaymentStatus,
317
+ onChange: (checked) => handleSettingChange("ui", "showPaymentStatus", checked)
318
+ }
319
+ ),
320
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({ id: "payment-plugin.settings.showStatus", defaultMessage: "Show Payment Status" }) })
321
+ ] }) }),
322
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
323
+ /* @__PURE__ */ jsxRuntime.jsx(
324
+ designSystem.Switch,
325
+ {
326
+ checked: settings.ui.showCustomerInfo,
327
+ onChange: (checked) => handleSettingChange("ui", "showCustomerInfo", checked)
328
+ }
329
+ ),
330
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({ id: "payment-plugin.settings.showCustomerInfo", defaultMessage: "Show Customer Info" }) })
331
+ ] }) }),
332
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
333
+ /* @__PURE__ */ jsxRuntime.jsx(
334
+ designSystem.Switch,
335
+ {
336
+ checked: settings.ui.enableNotifications,
337
+ onChange: (checked) => handleSettingChange("ui", "enableNotifications", checked)
338
+ }
339
+ ),
340
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({ id: "payment-plugin.settings.notifications", defaultMessage: "Enable Notifications" }) })
341
+ ] }) }),
342
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
343
+ /* @__PURE__ */ jsxRuntime.jsx(
344
+ designSystem.Switch,
345
+ {
346
+ checked: settings.ui.compactView,
347
+ onChange: (checked) => handleSettingChange("ui", "compactView", checked)
348
+ }
349
+ ),
350
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({ id: "payment-plugin.settings.compactView", defaultMessage: "Compact View" }) })
351
+ ] }) })
352
+ ] })
353
+ ] }) }) })
354
+ ] })
355
+ ] });
356
+ };
357
+ exports.Settings = Settings;