@rovela-ai/sdk 0.25.0 → 0.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/admin/components/PaymentProviderPanels.d.ts +1 -2
  2. package/dist/admin/components/PaymentProviderPanels.d.ts.map +1 -1
  3. package/dist/admin/components/PaymentProviderPanels.js +142 -79
  4. package/dist/admin/components/PaymentProviderPanels.js.map +1 -1
  5. package/dist/admin/components/PaymentSettings.d.ts.map +1 -1
  6. package/dist/admin/components/PaymentSettings.js +7 -21
  7. package/dist/admin/components/PaymentSettings.js.map +1 -1
  8. package/dist/admin/components/emails/EmailSendingPanel.d.ts.map +1 -1
  9. package/dist/admin/components/emails/EmailSendingPanel.js +2 -2
  10. package/dist/admin/components/emails/EmailSendingPanel.js.map +1 -1
  11. package/dist/admin/components/index.d.ts +1 -1
  12. package/dist/admin/components/index.d.ts.map +1 -1
  13. package/dist/admin/components/index.js +1 -1
  14. package/dist/admin/components/index.js.map +1 -1
  15. package/dist/cart/store.d.ts +4 -1
  16. package/dist/cart/store.d.ts.map +1 -1
  17. package/dist/cart/store.js +189 -161
  18. package/dist/cart/store.js.map +1 -1
  19. package/dist/checkout/api/manual.d.ts.map +1 -1
  20. package/dist/checkout/api/manual.js +5 -1
  21. package/dist/checkout/api/manual.js.map +1 -1
  22. package/dist/checkout/api/payment-methods.d.ts +1 -0
  23. package/dist/checkout/api/payment-methods.d.ts.map +1 -1
  24. package/dist/checkout/api/payment-methods.js +22 -3
  25. package/dist/checkout/api/payment-methods.js.map +1 -1
  26. package/dist/checkout/components/CheckoutFlow.d.ts.map +1 -1
  27. package/dist/checkout/components/CheckoutFlow.js +29 -4
  28. package/dist/checkout/components/CheckoutFlow.js.map +1 -1
  29. package/dist/checkout/components/payment-logos.d.ts +21 -0
  30. package/dist/checkout/components/payment-logos.d.ts.map +1 -0
  31. package/dist/checkout/components/payment-logos.js +21 -0
  32. package/dist/checkout/components/payment-logos.js.map +1 -0
  33. package/dist/checkout/server/external-checkout.d.ts.map +1 -1
  34. package/dist/checkout/server/external-checkout.js +4 -1
  35. package/dist/checkout/server/external-checkout.js.map +1 -1
  36. package/dist/core/i18n/messages/en.d.ts.map +1 -1
  37. package/dist/core/i18n/messages/en.js +1 -0
  38. package/dist/core/i18n/messages/en.js.map +1 -1
  39. package/dist/core/i18n/messages/fr.d.ts.map +1 -1
  40. package/dist/core/i18n/messages/fr.js +1 -0
  41. package/dist/core/i18n/messages/fr.js.map +1 -1
  42. package/docs/changelog/epoch-12-payment-providers.md +48 -1
  43. package/package.json +1 -1
  44. package/templates/store-template/package.json +1 -1
@@ -1,3 +1,2 @@
1
- export declare function PaypalProviderPanel(): import("react/jsx-runtime").JSX.Element | null;
2
- export declare function Up2payProviderPanel(): import("react/jsx-runtime").JSX.Element | null;
1
+ export declare function PaymentProcessorsCard(): import("react/jsx-runtime").JSX.Element;
3
2
  //# sourceMappingURL=PaymentProviderPanels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentProviderPanels.d.ts","sourceRoot":"","sources":["../../../src/admin/components/PaymentProviderPanels.tsx"],"names":[],"mappings":"AA6BA,wBAAgB,mBAAmB,mDAyNlC;AAeD,wBAAgB,mBAAmB,mDAoPlC"}
1
+ {"version":3,"file":"PaymentProviderPanels.d.ts","sourceRoot":"","sources":["../../../src/admin/components/PaymentProviderPanels.tsx"],"names":[],"mappings":"AAmaA,wBAAgB,qBAAqB,4CA4JpC"}
@@ -3,17 +3,59 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  /**
4
4
  * @rovela/sdk/admin/components/PaymentProviderPanels
5
5
  *
6
- * The native payment-provider panels on the Payments page (SDK 0.25.0):
7
- * PayPal + Up2pay e-Transactions, peers of the Stripe card. Colissimo-panel
8
- * contract throughout: transactional Save & verify (NOT the AdminSaveBar),
9
- * adminToast on success, inline admin-alert on failure, write-only secrets
10
- * ("stored leave blank to keep"), Disconnect only while connected.
6
+ * The Payments-tab "Payment processors" surface (SDK 0.25.1). Same model as
7
+ * the manual payment-methods list: a store connects the ONE processor it
8
+ * uses, not every possible one. A list of CONNECTED processors (Stripe,
9
+ * PayPal, Up2pay e-Transactions as peers) + a "Connect a processor" picker
10
+ * modal. Each provider's config lives in an embeddable form (Colissimo-panel
11
+ * contract: Save & verify, adminToast on success, inline admin-alert on
12
+ * failure, write-only secrets, Disconnect while connected) opened inside an
13
+ * AdminModal. Stripe is status-only (platform-managed) — its row links to
14
+ * the Rovela dashboard, never a self-connect form.
15
+ *
16
+ * Server side is unchanged: the paypal/up2pay admin trios + the stripe-status
17
+ * GET are reused as-is. This file is a pure recomposition of the 0.25.0
18
+ * always-visible panels.
11
19
  */
12
20
  import { useState, useEffect, useCallback } from 'react';
21
+ import { CreditCard, Plus } from 'lucide-react';
13
22
  import { AdminSelect } from './AdminSelect';
23
+ import { AdminModal } from './AdminModal';
24
+ import { AdminEmptyState } from './AdminEmptyState';
14
25
  import { adminToast } from './AdminToaster';
15
26
  import { fetchAdminApi } from '../hooks/fetchAdminApi';
16
- export function PaypalProviderPanel() {
27
+ import { STRIPE_LOGO_DATA_URI, PAYPAL_LOGO_DATA_URI, CREDIT_AGRICOLE_LOGO_DATA_URI, } from '../../checkout/components/payment-logos';
28
+ const PROVIDERS = {
29
+ stripe: {
30
+ key: 'stripe',
31
+ name: 'Stripe',
32
+ hint: 'Card payments, managed through your Rovela dashboard.',
33
+ logo: STRIPE_LOGO_DATA_URI,
34
+ logoClass: 'h-5',
35
+ },
36
+ paypal: {
37
+ key: 'paypal',
38
+ name: 'PayPal',
39
+ hint: 'Let customers pay with their PayPal account.',
40
+ logo: PAYPAL_LOGO_DATA_URI,
41
+ logoClass: 'h-4',
42
+ },
43
+ up2pay: {
44
+ key: 'up2pay',
45
+ name: 'Up2pay e-Transactions',
46
+ hint: "Card payments via Crédit Agricole's hosted page.",
47
+ logo: CREDIT_AGRICOLE_LOGO_DATA_URI,
48
+ logoClass: 'h-7',
49
+ },
50
+ };
51
+ function ProviderLogo({ meta }) {
52
+ // eslint-disable-next-line @next/next/no-img-element
53
+ return _jsx("img", { src: meta.logo, alt: meta.name, className: `${meta.logoClass} w-auto shrink-0` });
54
+ }
55
+ // =============================================================================
56
+ // PayPal config form (embeddable — renders inside the connect/configure modal)
57
+ // =============================================================================
58
+ function PaypalConfigForm({ onDone }) {
17
59
  const [isLoading, setIsLoading] = useState(true);
18
60
  const [config, setConfig] = useState(null);
19
61
  const [clientId, setClientId] = useState('');
@@ -24,7 +66,7 @@ export function PaypalProviderPanel() {
24
66
  const [isDisconnecting, setIsDisconnecting] = useState(false);
25
67
  const [error, setError] = useState(null);
26
68
  const isConnected = !!config && config.enabled && !!config.clientId && config.hasSecret;
27
- const hydrateForm = useCallback((cfg) => {
69
+ const hydrate = useCallback((cfg) => {
28
70
  setClientId(cfg.clientId || '');
29
71
  setEnvironment(cfg.environment);
30
72
  setWebhookId(cfg.webhookId || '');
@@ -38,23 +80,19 @@ export function PaypalProviderPanel() {
38
80
  setIsLoading(false);
39
81
  if (res.ok) {
40
82
  setConfig(res.data.config);
41
- hydrateForm(res.data.config);
83
+ hydrate(res.data.config);
42
84
  }
43
85
  });
44
86
  return () => {
45
87
  cancelled = true;
46
88
  };
47
- }, [hydrateForm]);
89
+ }, [hydrate]);
48
90
  const handleSave = useCallback(async () => {
49
91
  setError(null);
50
- if (!clientId.trim()) {
51
- setError('Enter your PayPal Client ID.');
52
- return;
53
- }
54
- if (!config?.hasSecret && !clientSecret.trim()) {
55
- setError('Enter your PayPal client secret.');
56
- return;
57
- }
92
+ if (!clientId.trim())
93
+ return setError('Enter your PayPal Client ID.');
94
+ if (!config?.hasSecret && !clientSecret.trim())
95
+ return setError('Enter your PayPal client secret.');
58
96
  setIsSaving(true);
59
97
  const res = await fetchAdminApi('/api/admin/payments/paypal', {
60
98
  method: 'POST',
@@ -67,18 +105,11 @@ export function PaypalProviderPanel() {
67
105
  }),
68
106
  });
69
107
  setIsSaving(false);
70
- if (!res.ok) {
71
- setError(res.error);
72
- return;
73
- }
74
- setClientSecret('');
108
+ if (!res.ok)
109
+ return setError(res.error);
75
110
  adminToast.success('PayPal connected');
76
- const refreshed = await fetchAdminApi('/api/admin/payments/paypal');
77
- if (refreshed.ok) {
78
- setConfig(refreshed.data.config);
79
- hydrateForm(refreshed.data.config);
80
- }
81
- }, [clientId, clientSecret, environment, webhookId, config, hydrateForm]);
111
+ onDone();
112
+ }, [clientId, clientSecret, environment, webhookId, config, onDone]);
82
113
  const handleDisconnect = useCallback(async () => {
83
114
  setIsDisconnecting(true);
84
115
  setError(null);
@@ -86,23 +117,20 @@ export function PaypalProviderPanel() {
86
117
  method: 'DELETE',
87
118
  });
88
119
  setIsDisconnecting(false);
89
- if (!res.ok) {
90
- setError(res.error);
91
- return;
92
- }
120
+ if (!res.ok)
121
+ return setError(res.error);
93
122
  adminToast.success('PayPal disconnected');
94
- setConfig((prev) => (prev ? { ...prev, enabled: false, hasSecret: false, clientId: null } : prev));
95
- setClientId('');
96
- setClientSecret('');
97
- }, []);
98
- if (isLoading)
99
- return null;
100
- return (_jsxs("div", { className: "admin-card", children: [_jsx("div", { className: "admin-card-header", children: _jsxs("div", { className: "flex items-center justify-between w-full", children: [_jsx("h2", { className: "admin-card-title", children: "PayPal" }), isConnected && _jsx("span", { className: "admin-badge admin-badge-success", children: "Connected" })] }) }), _jsxs("div", { className: "admin-card-body", children: [_jsx("p", { className: "text-sm text-[hsl(var(--admin-foreground-muted))] mb-4", children: "Lets customers pay with their PayPal account at checkout, next to card payments. Create a REST app in the PayPal Developer Dashboard and paste its credentials here." }), error && _jsx("div", { className: "admin-alert admin-alert-error mb-4", children: error }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "paypal-client-id", children: "Client ID" }), _jsx("input", { id: "paypal-client-id", type: "text", value: clientId, onChange: (e) => setClientId(e.target.value), placeholder: "AXj9\u2026", autoComplete: "off", className: "admin-input", style: { width: '100%' } })] }), _jsxs("div", { children: [_jsxs("label", { className: "admin-label", htmlFor: "paypal-client-secret", children: ["Client secret", ' ', config?.hasSecret && (_jsx("span", { className: "text-[hsl(var(--admin-foreground-muted))]", children: "(stored \u2014 leave blank to keep)" }))] }), _jsx("input", { id: "paypal-client-secret", type: "password", value: clientSecret, onChange: (e) => setClientSecret(e.target.value), placeholder: config?.hasSecret ? '••••••••' : 'Client secret', autoComplete: "new-password", className: "admin-input", style: { width: '100%' } })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "paypal-environment", children: "Environment" }), _jsx(AdminSelect, { id: "paypal-environment", value: environment, onChange: (v) => setEnvironment(v === 'production' ? 'production' : 'sandbox'), options: [
101
- { value: 'sandbox', label: 'Sandbox (testing)' },
102
- { value: 'production', label: 'Live' },
103
- ], className: "w-full" }), _jsx("p", { className: "admin-helper-text mt-1", children: "Sandbox uses PayPal's test environment \u2014 no real money moves." })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "paypal-webhook-id", children: "Webhook ID" }), _jsx("input", { id: "paypal-webhook-id", type: "text", value: webhookId, onChange: (e) => setWebhookId(e.target.value), placeholder: "Optional", autoComplete: "off", className: "admin-input", style: { width: '100%' } }), _jsx("p", { className: "admin-helper-text mt-1", children: "From a webhook on the same PayPal app pointing at /api/checkout/paypal/webhook \u2014 recommended, it confirms payments even if the customer closes the tab mid-payment." })] })] }), _jsxs("div", { className: "flex items-center gap-2 pt-2", children: [_jsx("button", { type: "button", onClick: handleSave, disabled: isSaving, className: "admin-btn admin-btn-primary disabled:opacity-50", children: isSaving ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "admin-spinner admin-spinner-sm mr-2" }), "Verifying with PayPal\u2026"] })) : ('Save & verify') }), isConnected && (_jsx("button", { type: "button", onClick: handleDisconnect, disabled: isDisconnecting, className: "admin-btn admin-btn-ghost text-[hsl(var(--admin-error))] hover:bg-[hsl(var(--admin-error))]/10 disabled:opacity-50", children: isDisconnecting ? _jsx("span", { className: "admin-spinner admin-spinner-sm" }) : 'Disconnect' }))] }), _jsx("p", { className: "admin-helper-text", children: "Credentials are verified with PayPal before saving and stored server-side only. Once connected, PayPal appears automatically at checkout." })] })] })] }));
123
+ onDone();
124
+ }, [onDone]);
125
+ if (isLoading) {
126
+ return (_jsx("div", { className: "admin-modal-body flex justify-center py-6", children: _jsx("span", { className: "admin-spinner" }) }));
127
+ }
128
+ return (_jsxs("div", { className: "admin-modal-body space-y-4", children: [_jsx("p", { className: "text-sm text-[hsl(var(--admin-foreground-muted))]", children: "Create a REST app in the PayPal Developer Dashboard and paste its credentials here." }), error && _jsx("div", { className: "admin-alert admin-alert-error", children: error }), _jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "paypal-client-id", children: "Client ID" }), _jsx("input", { id: "paypal-client-id", type: "text", value: clientId, onChange: (e) => setClientId(e.target.value), placeholder: "AXj9\u2026", autoComplete: "off", className: "admin-input", style: { width: '100%' } })] }), _jsxs("div", { children: [_jsxs("label", { className: "admin-label", htmlFor: "paypal-client-secret", children: ["Client secret", ' ', config?.hasSecret && (_jsx("span", { className: "text-[hsl(var(--admin-foreground-muted))]", children: "(stored \u2014 leave blank to keep)" }))] }), _jsx("input", { id: "paypal-client-secret", type: "password", value: clientSecret, onChange: (e) => setClientSecret(e.target.value), placeholder: config?.hasSecret ? '••••••••' : 'Client secret', autoComplete: "new-password", className: "admin-input", style: { width: '100%' } })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "paypal-environment", children: "Environment" }), _jsx(AdminSelect, { id: "paypal-environment", value: environment, onChange: (v) => setEnvironment(v === 'production' ? 'production' : 'sandbox'), options: [{ value: 'sandbox', label: 'Sandbox (testing)' }, { value: 'production', label: 'Live' }], className: "w-full" }), _jsx("p", { className: "admin-helper-text mt-1", children: "Sandbox uses PayPal's test environment \u2014 no real money moves." })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "paypal-webhook-id", children: "Webhook ID" }), _jsx("input", { id: "paypal-webhook-id", type: "text", value: webhookId, onChange: (e) => setWebhookId(e.target.value), placeholder: "Optional", autoComplete: "off", className: "admin-input", style: { width: '100%' } }), _jsx("p", { className: "admin-helper-text mt-1", children: "From a webhook on the same PayPal app pointing at /api/checkout/paypal/webhook \u2014 recommended, it confirms payments even if the customer closes the tab mid-payment." })] })] }), _jsxs("div", { className: "flex items-center gap-2 pt-1", children: [_jsx("button", { type: "button", onClick: handleSave, disabled: isSaving, className: "admin-btn admin-btn-primary disabled:opacity-50", children: isSaving ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "admin-spinner admin-spinner-sm mr-2" }), "Verifying with PayPal\u2026"] })) : 'Save & verify' }), isConnected && (_jsx("button", { type: "button", onClick: handleDisconnect, disabled: isDisconnecting, className: "admin-btn admin-btn-ghost text-[hsl(var(--admin-error))] hover:bg-[hsl(var(--admin-error))]/10 disabled:opacity-50", children: isDisconnecting ? _jsx("span", { className: "admin-spinner admin-spinner-sm" }) : 'Disconnect' }))] }), _jsx("p", { className: "admin-helper-text", children: "Credentials are verified with PayPal before saving and stored server-side only. Once connected, PayPal appears automatically at checkout." })] }));
104
129
  }
105
- export function Up2payProviderPanel() {
130
+ // =============================================================================
131
+ // Up2pay config form (embeddable)
132
+ // =============================================================================
133
+ function Up2payConfigForm({ onDone }) {
106
134
  const [isLoading, setIsLoading] = useState(true);
107
135
  const [config, setConfig] = useState(null);
108
136
  const [site, setSite] = useState('');
@@ -114,11 +142,9 @@ export function Up2payProviderPanel() {
114
142
  const [isDisconnecting, setIsDisconnecting] = useState(false);
115
143
  const [error, setError] = useState(null);
116
144
  const isConnected = !!config && config.enabled && !!config.site && config.hasHmacKey;
117
- // The HMAC key is per-platform: switching environments invalidates the
118
- // stored key, so the form demands a fresh one (mirrors the server rule).
119
145
  const environmentChanged = !!config?.hasHmacKey && environment !== config.environment;
120
146
  const needsKey = !config?.hasHmacKey || environmentChanged;
121
- const hydrateForm = useCallback((cfg) => {
147
+ const hydrate = useCallback((cfg) => {
122
148
  setSite(cfg.site || '');
123
149
  setRang(cfg.rang || '');
124
150
  setIdentifiant(cfg.identifiant || '');
@@ -133,25 +159,21 @@ export function Up2payProviderPanel() {
133
159
  setIsLoading(false);
134
160
  if (res.ok) {
135
161
  setConfig(res.data.config);
136
- hydrateForm(res.data.config);
162
+ hydrate(res.data.config);
137
163
  }
138
164
  });
139
165
  return () => {
140
166
  cancelled = true;
141
167
  };
142
- }, [hydrateForm]);
168
+ }, [hydrate]);
143
169
  const handleSave = useCallback(async () => {
144
170
  setError(null);
145
- if (!site.trim() || !rang.trim() || !identifiant.trim()) {
146
- setError('Enter the site, rank and identifier from your Up2pay contract.');
147
- return;
148
- }
149
- if (needsKey && !hmacKey.trim()) {
150
- setError(environmentChanged
171
+ if (!site.trim() || !rang.trim() || !identifiant.trim())
172
+ return setError('Enter the site, rank and identifier from your Up2pay contract.');
173
+ if (needsKey && !hmacKey.trim())
174
+ return setError(environmentChanged
151
175
  ? `Switching to ${environment === 'production' ? 'production' : 'test'} needs that platform's own HMAC key.`
152
176
  : 'Enter your HMAC key (generated in the Back-office Vision).');
153
- return;
154
- }
155
177
  setIsSaving(true);
156
178
  const res = await fetchAdminApi('/api/admin/payments/up2pay', {
157
179
  method: 'POST',
@@ -165,18 +187,11 @@ export function Up2payProviderPanel() {
165
187
  }),
166
188
  });
167
189
  setIsSaving(false);
168
- if (!res.ok) {
169
- setError(res.error);
170
- return;
171
- }
172
- setHmacKey('');
190
+ if (!res.ok)
191
+ return setError(res.error);
173
192
  adminToast.success('Up2pay connected');
174
- const refreshed = await fetchAdminApi('/api/admin/payments/up2pay');
175
- if (refreshed.ok) {
176
- setConfig(refreshed.data.config);
177
- hydrateForm(refreshed.data.config);
178
- }
179
- }, [site, rang, identifiant, hmacKey, environment, needsKey, environmentChanged, hydrateForm]);
193
+ onDone();
194
+ }, [site, rang, identifiant, hmacKey, environment, needsKey, environmentChanged, onDone]);
180
195
  const handleDisconnect = useCallback(async () => {
181
196
  setIsDisconnecting(true);
182
197
  setError(null);
@@ -184,19 +199,67 @@ export function Up2payProviderPanel() {
184
199
  method: 'DELETE',
185
200
  });
186
201
  setIsDisconnecting(false);
187
- if (!res.ok) {
188
- setError(res.error);
189
- return;
190
- }
202
+ if (!res.ok)
203
+ return setError(res.error);
191
204
  adminToast.success('Up2pay disconnected');
192
- setConfig((prev) => (prev ? { ...prev, enabled: false, hasHmacKey: false } : prev));
193
- setHmacKey('');
205
+ onDone();
206
+ }, [onDone]);
207
+ if (isLoading) {
208
+ return (_jsx("div", { className: "admin-modal-body flex justify-center py-6", children: _jsx("span", { className: "admin-spinner" }) }));
209
+ }
210
+ return (_jsxs("div", { className: "admin-modal-body space-y-4", children: [_jsx("p", { className: "text-sm text-[hsl(var(--admin-foreground-muted))]", children: "Your site, rank and identifier come with the Cr\u00E9dit Agricole contract; the HMAC key is generated in the Back-office Vision." }), error && _jsx("div", { className: "admin-alert admin-alert-error", children: error }), _jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-3", children: [_jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "up2pay-site", children: "Site" }), _jsx("input", { id: "up2pay-site", type: "text", value: site, onChange: (e) => setSite(e.target.value), placeholder: "1999888", autoComplete: "off", className: "admin-input", style: { width: '100%' } })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "up2pay-rang", children: "Rank" }), _jsx("input", { id: "up2pay-rang", type: "text", value: rang, onChange: (e) => setRang(e.target.value), placeholder: "32", autoComplete: "off", className: "admin-input", style: { width: '100%' } })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "up2pay-identifiant", children: "Identifier" }), _jsx("input", { id: "up2pay-identifiant", type: "text", value: identifiant, onChange: (e) => setIdentifiant(e.target.value), placeholder: "107904482", autoComplete: "off", className: "admin-input", style: { width: '100%' } })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsxs("label", { className: "admin-label", htmlFor: "up2pay-hmac", children: ["HMAC key", ' ', config?.hasHmacKey && !environmentChanged && (_jsx("span", { className: "text-[hsl(var(--admin-foreground-muted))]", children: "(stored \u2014 leave blank to keep)" }))] }), _jsx("input", { id: "up2pay-hmac", type: "password", value: hmacKey, onChange: (e) => setHmacKey(e.target.value), placeholder: config?.hasHmacKey && !environmentChanged ? '••••••••' : 'Hexadecimal key', autoComplete: "new-password", className: "admin-input", style: { width: '100%' } }), environmentChanged && (_jsxs("p", { className: "admin-helper-text mt-1", children: ["The stored key belongs to the ", config?.environment, " platform \u2014 enter the ", environment, " key."] }))] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "up2pay-environment", children: "Environment" }), _jsx(AdminSelect, { id: "up2pay-environment", value: environment, onChange: (v) => setEnvironment(v === 'production' ? 'production' : 'test'), options: [{ value: 'test', label: 'Test (preprod platform)' }, { value: 'production', label: 'Production' }], className: "w-full" }), _jsx("p", { className: "admin-helper-text mt-1", children: "Test and production are separate platforms with separate HMAC keys." })] })] }), _jsxs("div", { className: "flex items-center gap-2 pt-1", children: [_jsx("button", { type: "button", onClick: handleSave, disabled: isSaving, className: "admin-btn admin-btn-primary disabled:opacity-50", children: isSaving ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "admin-spinner admin-spinner-sm mr-2" }), "Saving\u2026"] })) : 'Save' }), isConnected && (_jsx("button", { type: "button", onClick: handleDisconnect, disabled: isDisconnecting, className: "admin-btn admin-btn-ghost text-[hsl(var(--admin-error))] hover:bg-[hsl(var(--admin-error))]/10 disabled:opacity-50", children: isDisconnecting ? _jsx("span", { className: "admin-spinner admin-spinner-sm" }) : 'Disconnect' }))] }), _jsx("p", { className: "admin-helper-text", children: "Up2pay has no credential check API \u2014 run a test payment on the test platform to verify the key before switching to production. Credentials are stored server-side only." })] }));
211
+ }
212
+ export function PaymentProcessorsCard() {
213
+ const [state, setState] = useState({
214
+ stripe: null,
215
+ paypalConnected: false,
216
+ up2payConnected: false,
217
+ });
218
+ const [isLoading, setIsLoading] = useState(true);
219
+ const [pickerOpen, setPickerOpen] = useState(false);
220
+ const [configuring, setConfiguring] = useState(null);
221
+ const load = useCallback(async () => {
222
+ const [stripeRes, paypalRes, up2payRes] = await Promise.all([
223
+ fetchAdminApi('/api/admin/stripe-status'),
224
+ fetchAdminApi('/api/admin/payments/paypal'),
225
+ fetchAdminApi('/api/admin/payments/up2pay'),
226
+ ]);
227
+ setState({
228
+ stripe: stripeRes.ok ? stripeRes.data.status : null,
229
+ paypalConnected: paypalRes.ok && paypalRes.data.config.enabled && !!paypalRes.data.config.clientId && paypalRes.data.config.hasSecret,
230
+ up2payConnected: up2payRes.ok && up2payRes.data.config.enabled && !!up2payRes.data.config.site && up2payRes.data.config.hasHmacKey,
231
+ });
232
+ setIsLoading(false);
194
233
  }, []);
195
- if (isLoading)
196
- return null;
197
- return (_jsxs("div", { className: "admin-card", children: [_jsx("div", { className: "admin-card-header", children: _jsxs("div", { className: "flex items-center justify-between w-full", children: [_jsx("h2", { className: "admin-card-title", children: "Up2pay e-Transactions (Cr\u00E9dit Agricole)" }), isConnected && _jsx("span", { className: "admin-badge admin-badge-success", children: "Connected" })] }) }), _jsxs("div", { className: "admin-card-body", children: [_jsx("p", { className: "text-sm text-[hsl(var(--admin-foreground-muted))] mb-4", children: "Card payments through Cr\u00E9dit Agricole's Up2pay e-Transactions hosted payment page. Your site, rank and identifier come with the contract; the HMAC key is generated in the Back-office Vision." }), error && _jsx("div", { className: "admin-alert admin-alert-error mb-4", children: error }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-3", children: [_jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "up2pay-site", children: "Site" }), _jsx("input", { id: "up2pay-site", type: "text", value: site, onChange: (e) => setSite(e.target.value), placeholder: "1999888", autoComplete: "off", className: "admin-input", style: { width: '100%' } })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "up2pay-rang", children: "Rank" }), _jsx("input", { id: "up2pay-rang", type: "text", value: rang, onChange: (e) => setRang(e.target.value), placeholder: "32", autoComplete: "off", className: "admin-input", style: { width: '100%' } })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "up2pay-identifiant", children: "Identifier" }), _jsx("input", { id: "up2pay-identifiant", type: "text", value: identifiant, onChange: (e) => setIdentifiant(e.target.value), placeholder: "107904482", autoComplete: "off", className: "admin-input", style: { width: '100%' } })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsxs("label", { className: "admin-label", htmlFor: "up2pay-hmac", children: ["HMAC key", ' ', config?.hasHmacKey && !environmentChanged && (_jsx("span", { className: "text-[hsl(var(--admin-foreground-muted))]", children: "(stored \u2014 leave blank to keep)" }))] }), _jsx("input", { id: "up2pay-hmac", type: "password", value: hmacKey, onChange: (e) => setHmacKey(e.target.value), placeholder: config?.hasHmacKey && !environmentChanged ? '••••••••' : 'Hexadecimal key', autoComplete: "new-password", className: "admin-input", style: { width: '100%' } }), environmentChanged && (_jsxs("p", { className: "admin-helper-text mt-1", children: ["The stored key belongs to the ", config?.environment, " platform \u2014 enter the", ' ', environment, " key."] }))] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", htmlFor: "up2pay-environment", children: "Environment" }), _jsx(AdminSelect, { id: "up2pay-environment", value: environment, onChange: (v) => setEnvironment(v === 'production' ? 'production' : 'test'), options: [
198
- { value: 'test', label: 'Test (preprod platform)' },
199
- { value: 'production', label: 'Production' },
200
- ], className: "w-full" }), _jsx("p", { className: "admin-helper-text mt-1", children: "Test and production are separate platforms with separate HMAC keys." })] })] }), _jsxs("div", { className: "flex items-center gap-2 pt-2", children: [_jsx("button", { type: "button", onClick: handleSave, disabled: isSaving, className: "admin-btn admin-btn-primary disabled:opacity-50", children: isSaving ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "admin-spinner admin-spinner-sm mr-2" }), "Saving\u2026"] })) : ('Save') }), isConnected && (_jsx("button", { type: "button", onClick: handleDisconnect, disabled: isDisconnecting, className: "admin-btn admin-btn-ghost text-[hsl(var(--admin-error))] hover:bg-[hsl(var(--admin-error))]/10 disabled:opacity-50", children: isDisconnecting ? _jsx("span", { className: "admin-spinner admin-spinner-sm" }) : 'Disconnect' }))] }), _jsx("p", { className: "admin-helper-text", children: "Up2pay has no credential check API \u2014 run a test payment on the test platform to verify the key before switching to production. Credentials are stored server-side only; once connected, card payment via Cr\u00E9dit Agricole appears automatically at checkout." })] })] })] }));
234
+ // Pattern C — populate state from async-loaded data.
235
+ useEffect(() => {
236
+ // eslint-disable-next-line react-hooks/set-state-in-effect
237
+ void load();
238
+ }, [load]);
239
+ const onFormDone = useCallback(() => {
240
+ setConfiguring(null);
241
+ void load();
242
+ }, [load]);
243
+ const stripeConnected = !!state.stripe?.connected;
244
+ // Providers not yet connected — offered in the picker (Stripe is never
245
+ // self-connectable, so it's excluded from the configurable set).
246
+ const connectable = ['paypal', 'up2pay'].filter((k) => (k === 'paypal' ? !state.paypalConnected : !state.up2payConnected));
247
+ const connectedRows = [];
248
+ if (stripeConnected) {
249
+ connectedRows.push(_jsxs(ProcessorRow, { meta: PROVIDERS.stripe, children: [_jsx("span", { className: "admin-badge admin-badge-success shrink-0", children: "Connected" }), state.stripe?.dashboardUrl && (_jsx("a", { href: state.stripe.dashboardUrl, target: "_blank", rel: "noopener noreferrer", className: "admin-action-link", children: "Open dashboard" }))] }, "stripe"));
250
+ }
251
+ if (state.paypalConnected) {
252
+ connectedRows.push(_jsxs(ProcessorRow, { meta: PROVIDERS.paypal, children: [_jsx("span", { className: "admin-badge admin-badge-success shrink-0", children: "Connected" }), _jsx("button", { type: "button", className: "admin-action-link", onClick: () => setConfiguring('paypal'), children: "Configure" })] }, "paypal"));
253
+ }
254
+ if (state.up2payConnected) {
255
+ connectedRows.push(_jsxs(ProcessorRow, { meta: PROVIDERS.up2pay, children: [_jsx("span", { className: "admin-badge admin-badge-success shrink-0", children: "Connected" }), _jsx("button", { type: "button", className: "admin-action-link", onClick: () => setConfiguring('up2pay'), children: "Configure" })] }, "up2pay"));
256
+ }
257
+ return (_jsxs("div", { className: "admin-card", children: [_jsx("div", { className: "admin-card-header", children: _jsxs("div", { className: "flex items-center justify-between w-full", children: [_jsx("h2", { className: "admin-card-title", children: "Payment processors" }), connectable.length > 0 && (_jsxs("button", { type: "button", onClick: () => setPickerOpen(true), className: "admin-btn admin-btn-secondary admin-btn-sm", children: [_jsx(Plus, { className: "h-4 w-4 mr-1" }), "Connect a processor"] }))] }) }), _jsxs("div", { className: "admin-card-body", children: [isLoading ? (_jsx("div", { className: "flex justify-center py-6", children: _jsx("span", { className: "admin-spinner" }) })) : connectedRows.length === 0 ? (_jsx(AdminEmptyState, { icon: _jsx(CreditCard, { className: "h-5 w-5" }), title: "No payment processor connected", description: "Connect a processor so customers can pay at checkout.", action: _jsxs("button", { type: "button", onClick: () => setPickerOpen(true), className: "admin-btn admin-btn-primary admin-btn-sm", children: [_jsx(Plus, { className: "h-4 w-4 mr-1" }), "Connect a processor"] }) })) : (_jsx("div", { className: "space-y-2", children: connectedRows })), !stripeConnected && connectedRows.length > 0 && (_jsx("p", { className: "admin-helper-text mt-3", children: "Stripe card payments aren't set up \u2014 contact your Rovela administrator to enable them." }))] }), _jsx(AdminModal, { open: pickerOpen, onClose: () => setPickerOpen(false), title: "Connect a processor", description: "Pick the payment processor you use. You can connect more than one.", width: "md", showClose: true, children: _jsxs("div", { className: "admin-modal-body space-y-2", children: [connectable.map((k) => {
258
+ const meta = PROVIDERS[k];
259
+ return (_jsxs("button", { type: "button", onClick: () => { setPickerOpen(false); setConfiguring(k); }, className: "flex items-center gap-3 w-full text-left rounded-lg border border-[hsl(var(--admin-border))] p-3 hover:bg-[hsl(var(--admin-surface-hover))] transition-colors", children: [_jsx(ProviderLogo, { meta: meta }), _jsxs("span", { className: "flex-1 min-w-0", children: [_jsx("span", { className: "block text-sm font-medium text-[hsl(var(--admin-foreground))]", children: meta.name }), _jsx("span", { className: "block text-xs text-[hsl(var(--admin-foreground-muted))]", children: meta.hint })] })] }, k));
260
+ }), !stripeConnected && (_jsxs("div", { className: "flex items-center gap-3 w-full rounded-lg border border-dashed border-[hsl(var(--admin-border))] p-3", children: [_jsx(ProviderLogo, { meta: PROVIDERS.stripe }), _jsxs("span", { className: "flex-1 min-w-0", children: [_jsx("span", { className: "block text-sm font-medium text-[hsl(var(--admin-foreground))]", children: "Stripe" }), _jsx("span", { className: "block text-xs text-[hsl(var(--admin-foreground-muted))]", children: "Managed by Rovela \u2014 contact your administrator to enable card payments." })] })] }))] }) }), _jsx(AdminModal, { open: configuring === 'paypal', onClose: () => setConfiguring(null), title: "PayPal", width: "lg", showClose: true, children: configuring === 'paypal' && _jsx(PaypalConfigForm, { onDone: onFormDone }) }), _jsx(AdminModal, { open: configuring === 'up2pay', onClose: () => setConfiguring(null), title: "Up2pay e-Transactions", width: "lg", showClose: true, children: configuring === 'up2pay' && _jsx(Up2payConfigForm, { onDone: onFormDone }) })] }));
261
+ }
262
+ function ProcessorRow({ meta, children }) {
263
+ return (_jsxs("div", { className: "flex items-center gap-3 rounded-lg border border-[hsl(var(--admin-border))] p-3", children: [_jsx(ProviderLogo, { meta: meta }), _jsxs("span", { className: "flex-1 min-w-0", children: [_jsx("span", { className: "block text-sm font-medium text-[hsl(var(--admin-foreground))]", children: meta.name }), _jsx("span", { className: "block text-xs text-[hsl(var(--admin-foreground-muted))] truncate", children: meta.hint })] }), children] }));
201
264
  }
202
265
  //# sourceMappingURL=PaymentProviderPanels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentProviderPanels.js","sourceRoot":"","sources":["../../../src/admin/components/PaymentProviderPanels.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PaymentProviderPanels.js","sourceRoot":"","sources":["../../../src/admin/components/PaymentProviderPanels.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAkB,MAAM,OAAO,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,yCAAyC,CAAA;AAwChD,MAAM,SAAS,GAAsC;IACnD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,uDAAuD;QAC7D,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,8CAA8C;QACpD,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,kDAAkD;QACxD,IAAI,EAAE,6BAA6B;QACnC,SAAS,EAAE,KAAK;KACjB;CACF,CAAA;AAED,SAAS,YAAY,CAAC,EAAE,IAAI,EAA0B;IACpD,qDAAqD;IACrD,OAAO,cAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,kBAAkB,GAAI,CAAA;AAChG,CAAC;AAED,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAEhF,SAAS,gBAAgB,CAAC,EAAE,MAAM,EAA0B;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC,CAAA;IACpE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC5C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACpD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAA2B,SAAS,CAAC,CAAA;IACnF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEvD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAA;IAEvF,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,GAAsB,EAAE,EAAE;QACrD,WAAW,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;QAC/B,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC/B,YAAY,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,qDAAqD;IACrD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,aAAa,CAAgC,4BAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACtF,IAAI,SAAS;gBAAE,OAAM;YACrB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAAE,OAAO,QAAQ,CAAC,8BAA8B,CAAC,CAAA;QACrE,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;YAAE,OAAO,QAAQ,CAAC,kCAAkC,CAAC,CAAA;QACnG,WAAW,CAAC,IAAI,CAAC,CAAA;QACjB,MAAM,GAAG,GAAG,MAAM,aAAa,CAAuB,4BAA4B,EAAE;YAClF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;gBACzB,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,WAAW;gBACX,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;aAC5B,CAAC;SACH,CAAC,CAAA;QACF,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;QACtC,MAAM,EAAE,CAAA;IACV,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAEpE,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC9C,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACxB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,MAAM,GAAG,GAAG,MAAM,aAAa,CAAuB,4BAA4B,EAAE;YAClF,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QACF,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvC,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QACzC,MAAM,EAAE,CAAA;IACV,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,cAAK,SAAS,EAAC,2CAA2C,YACxD,eAAM,SAAS,EAAC,eAAe,GAAG,GAC9B,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,4BAA4B,aACzC,YAAG,SAAS,EAAC,mDAAmD,oGAE5D,EACH,KAAK,IAAI,cAAK,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAO,EACtE,eAAK,SAAS,EAAC,uCAAuC,aACpD,0BACE,gBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,kBAAkB,0BAAkB,EAC3E,gBAAO,EAAE,EAAC,kBAAkB,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,QAAQ,EACtD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAC,YAAO,EACjE,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,IACrE,EACN,0BACE,iBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,sBAAsB,8BAC7C,GAAG,EAChB,MAAM,EAAE,SAAS,IAAI,CACpB,eAAM,SAAS,EAAC,2CAA2C,oDAAsC,CAClG,IACK,EACR,gBAAO,EAAE,EAAC,sBAAsB,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,YAAY,EAClE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,EAC7D,YAAY,EAAC,cAAc,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,IAC9E,IACF,EACN,eAAK,SAAS,EAAC,uCAAuC,aACpD,0BACE,gBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,oBAAoB,4BAAoB,EAC/E,KAAC,WAAW,IAAC,EAAE,EAAC,oBAAoB,EAAC,KAAK,EAAE,WAAW,EACrD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,EAC9E,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EACnG,SAAS,EAAC,QAAQ,GAAG,EACvB,YAAG,SAAS,EAAC,wBAAwB,mFAAuE,IACxG,EACN,0BACE,gBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,mBAAmB,2BAAmB,EAC7E,gBAAO,EAAE,EAAC,mBAAmB,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,SAAS,EACxD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAC,UAAU,EACrE,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,EACzE,YAAG,SAAS,EAAC,wBAAwB,yLAGjC,IACA,IACF,EACN,eAAK,SAAS,EAAC,8BAA8B,aAC3C,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAC3D,SAAS,EAAC,iDAAiD,YAC1D,QAAQ,CAAC,CAAC,CAAC,CAAC,8BAAE,eAAM,SAAS,EAAC,qCAAqC,GAAG,mCAAyB,CAAC,CAAC,CAAC,CAAC,eAAe,GAC5G,EACR,WAAW,IAAI,CACd,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EACxE,SAAS,EAAC,oHAAoH,YAC7H,eAAe,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gCAAgC,GAAG,CAAC,CAAC,CAAC,YAAY,GAC9E,CACV,IACG,EACN,YAAG,SAAS,EAAC,mBAAmB,0JAG5B,IACA,CACP,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,kCAAkC;AAClC,gFAAgF;AAEhF,SAAS,gBAAgB,CAAC,EAAE,MAAM,EAA0B;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC,CAAA;IACpE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACpC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACpC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAwB,MAAM,CAAC,CAAA;IAC7E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEvD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAA;IACpF,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,IAAI,WAAW,KAAK,MAAM,CAAC,WAAW,CAAA;IACrF,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,kBAAkB,CAAA;IAE1D,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,GAAsB,EAAE,EAAE;QACrD,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QACvB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QACvB,cAAc,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;QACrC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACjC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,qDAAqD;IACrD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,aAAa,CAAgC,4BAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACtF,IAAI,SAAS;gBAAE,OAAM;YACrB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACrD,OAAO,QAAQ,CAAC,gEAAgE,CAAC,CAAA;QACnF,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC7B,OAAO,QAAQ,CACb,kBAAkB;gBAChB,CAAC,CAAC,gBAAgB,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,sCAAsC;gBAC5G,CAAC,CAAC,4DAA4D,CACjE,CAAA;QACH,WAAW,CAAC,IAAI,CAAC,CAAA;QACjB,MAAM,GAAG,GAAG,MAAM,aAAa,CAAuB,4BAA4B,EAAE;YAClF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;gBAC/B,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,WAAW;aACZ,CAAC;SACH,CAAC,CAAA;QACF,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;QACtC,MAAM,EAAE,CAAA;IACV,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAA;IAEzF,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC9C,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACxB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,MAAM,GAAG,GAAG,MAAM,aAAa,CAAuB,4BAA4B,EAAE;YAClF,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QACF,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvC,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QACzC,MAAM,EAAE,CAAA;IACV,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,cAAK,SAAS,EAAC,2CAA2C,YACxD,eAAM,SAAS,EAAC,eAAe,GAAG,GAC9B,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,4BAA4B,aACzC,YAAG,SAAS,EAAC,mDAAmD,iJAG5D,EACH,KAAK,IAAI,cAAK,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAO,EACtE,eAAK,SAAS,EAAC,uCAAuC,aACpD,0BACE,gBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,aAAa,qBAAa,EACjE,gBAAO,EAAE,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvF,WAAW,EAAC,SAAS,EAAC,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,IAC3F,EACN,0BACE,gBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,aAAa,qBAAa,EACjE,gBAAO,EAAE,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvF,WAAW,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,IACtF,EACN,0BACE,gBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,oBAAoB,2BAAmB,EAC9E,gBAAO,EAAE,EAAC,oBAAoB,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,WAAW,EAC3D,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAC,WAAW,EACxE,YAAY,EAAC,KAAK,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,IACrE,IACF,EACN,eAAK,SAAS,EAAC,uCAAuC,aACpD,0BACE,iBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,aAAa,yBACzC,GAAG,EACX,MAAM,EAAE,UAAU,IAAI,CAAC,kBAAkB,IAAI,CAC5C,eAAM,SAAS,EAAC,2CAA2C,oDAAsC,CAClG,IACK,EACR,gBAAO,EAAE,EAAC,aAAa,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,OAAO,EACpD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3C,WAAW,EAAE,MAAM,EAAE,UAAU,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EACvF,YAAY,EAAC,cAAc,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,EACjF,kBAAkB,IAAI,CACrB,aAAG,SAAS,EAAC,wBAAwB,+CACJ,MAAM,EAAE,WAAW,iCAAwB,WAAW,aACnF,CACL,IACG,EACN,0BACE,gBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,oBAAoB,4BAAoB,EAC/E,KAAC,WAAW,IAAC,EAAE,EAAC,oBAAoB,EAAC,KAAK,EAAE,WAAW,EACrD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAC3E,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAC5G,SAAS,EAAC,QAAQ,GAAG,EACvB,YAAG,SAAS,EAAC,wBAAwB,oFAAwE,IACzG,IACF,EACN,eAAK,SAAS,EAAC,8BAA8B,aAC3C,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAC3D,SAAS,EAAC,iDAAiD,YAC1D,QAAQ,CAAC,CAAC,CAAC,CAAC,8BAAE,eAAM,SAAS,EAAC,qCAAqC,GAAG,oBAAU,CAAC,CAAC,CAAC,CAAC,MAAM,GACpF,EACR,WAAW,IAAI,CACd,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EACxE,SAAS,EAAC,oHAAoH,YAC7H,eAAe,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gCAAgC,GAAG,CAAC,CAAC,CAAC,YAAY,GAC9E,CACV,IACG,EACN,YAAG,SAAS,EAAC,mBAAmB,6LAG5B,IACA,CACP,CAAA;AACH,CAAC;AAYD,MAAM,UAAU,qBAAqB;IACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB;QAClD,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;KACvB,CAAC,CAAA;IACF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAA6B,IAAI,CAAC,CAAA;IAEhF,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAClC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,aAAa,CAAgC,0BAA0B,CAAC;YACxE,aAAa,CAAgC,4BAA4B,CAAC;YAC1E,aAAa,CAAgC,4BAA4B,CAAC;SAC3E,CAAC,CAAA;QACF,QAAQ,CAAC;YACP,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YACnD,eAAe,EACb,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS;YACtH,eAAe,EACb,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;SACpH,CAAC,CAAA;QACF,YAAY,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,qDAAqD;IACrD,SAAS,CAAC,GAAG,EAAE;QACb,2DAA2D;QAC3D,KAAK,IAAI,EAAE,CAAA;IACb,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,KAAK,IAAI,EAAE,CAAA;IACb,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAA;IACjD,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,WAAW,GAAgC,CAAC,QAAQ,EAAE,QAAQ,CAAW,CAAC,MAAM,CACpF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAC1E,CAAA;IAED,MAAM,aAAa,GAAgB,EAAE,CAAA;IACrC,IAAI,eAAe,EAAE,CAAC;QACpB,aAAa,CAAC,IAAI,CAChB,MAAC,YAAY,IAAc,IAAI,EAAE,SAAS,CAAC,MAAM,aAC/C,eAAM,SAAS,EAAC,0CAA0C,0BAAiB,EAC1E,KAAK,CAAC,MAAM,EAAE,YAAY,IAAI,CAC7B,YAAG,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAC3E,SAAS,EAAC,mBAAmB,+BAAmB,CACnD,KALe,QAAQ,CAMX,CAChB,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,aAAa,CAAC,IAAI,CAChB,MAAC,YAAY,IAAc,IAAI,EAAE,SAAS,CAAC,MAAM,aAC/C,eAAM,SAAS,EAAC,0CAA0C,0BAAiB,EAC3E,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,0BAAoB,KAF/F,QAAQ,CAGX,CAChB,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,aAAa,CAAC,IAAI,CAChB,MAAC,YAAY,IAAc,IAAI,EAAE,SAAS,CAAC,MAAM,aAC/C,eAAM,SAAS,EAAC,0CAA0C,0BAAiB,EAC3E,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,0BAAoB,KAF/F,QAAQ,CAGX,CAChB,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,YAAY,aACzB,cAAK,SAAS,EAAC,mBAAmB,YAChC,eAAK,SAAS,EAAC,0CAA0C,aACvD,aAAI,SAAS,EAAC,kBAAkB,mCAAwB,EACvD,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CACzB,kBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EACtD,SAAS,EAAC,4CAA4C,aACtD,KAAC,IAAI,IAAC,SAAS,EAAC,cAAc,GAAG,2BAC1B,CACV,IACG,GACF,EACN,eAAK,SAAS,EAAC,iBAAiB,aAC7B,SAAS,CAAC,CAAC,CAAC,CACX,cAAK,SAAS,EAAC,0BAA0B,YAAC,eAAM,SAAS,EAAC,eAAe,GAAG,GAAM,CACnF,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/B,KAAC,eAAe,IACd,IAAI,EAAE,KAAC,UAAU,IAAC,SAAS,EAAC,SAAS,GAAG,EACxC,KAAK,EAAC,gCAAgC,EACtC,WAAW,EAAC,uDAAuD,EACnE,MAAM,EACJ,kBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,EAAC,0CAA0C,aAC5G,KAAC,IAAI,IAAC,SAAS,EAAC,cAAc,GAAG,2BAC1B,GAEX,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,WAAW,YAAE,aAAa,GAAO,CACjD,EAGA,CAAC,eAAe,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC/C,YAAG,SAAS,EAAC,wBAAwB,4GAEjC,CACL,IACG,EAGN,KAAC,UAAU,IAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,EAAC,qBAAqB,EAC5F,WAAW,EAAC,oEAAoE,EAAC,KAAK,EAAC,IAAI,EAAC,SAAS,kBACrG,eAAK,SAAS,EAAC,4BAA4B,aACxC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACrB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BACzB,OAAO,CACL,kBAAgB,IAAI,EAAC,QAAQ,EAC3B,OAAO,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAC1D,SAAS,EAAC,+JAA+J,aACzK,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,GAAI,EAC5B,gBAAM,SAAS,EAAC,gBAAgB,aAC9B,eAAM,SAAS,EAAC,+DAA+D,YAAE,IAAI,CAAC,IAAI,GAAQ,EAClG,eAAM,SAAS,EAAC,yDAAyD,YAAE,IAAI,CAAC,IAAI,GAAQ,IACvF,KAPI,CAAC,CAQL,CACV,CAAA;wBACH,CAAC,CAAC,EAED,CAAC,eAAe,IAAI,CACnB,eAAK,SAAS,EAAC,sGAAsG,aACnH,KAAC,YAAY,IAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAI,EACxC,gBAAM,SAAS,EAAC,gBAAgB,aAC9B,eAAM,SAAS,EAAC,+DAA+D,uBAAc,EAC7F,eAAM,SAAS,EAAC,yDAAyD,6FAElE,IACF,IACH,CACP,IACG,GACK,EAGb,KAAC,UAAU,IAAC,IAAI,EAAE,WAAW,KAAK,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAC7E,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,IAAI,EAAC,SAAS,kBAClC,WAAW,KAAK,QAAQ,IAAI,KAAC,gBAAgB,IAAC,MAAM,EAAE,UAAU,GAAI,GAC1D,EACb,KAAC,UAAU,IAAC,IAAI,EAAE,WAAW,KAAK,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAC7E,KAAK,EAAC,uBAAuB,EAAC,KAAK,EAAC,IAAI,EAAC,SAAS,kBACjD,WAAW,KAAK,QAAQ,IAAI,KAAC,gBAAgB,IAAC,MAAM,EAAE,UAAU,GAAI,GAC1D,IACT,CACP,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAA+C;IACnF,OAAO,CACL,eAAK,SAAS,EAAC,iFAAiF,aAC9F,KAAC,YAAY,IAAC,IAAI,EAAE,IAAI,GAAI,EAC5B,gBAAM,SAAS,EAAC,gBAAgB,aAC9B,eAAM,SAAS,EAAC,+DAA+D,YAAE,IAAI,CAAC,IAAI,GAAQ,EAClG,eAAM,SAAS,EAAC,kEAAkE,YAAE,IAAI,CAAC,IAAI,GAAQ,IAChG,EACN,QAAQ,IACL,CACP,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentSettings.d.ts","sourceRoot":"","sources":["../../../src/admin/components/PaymentSettings.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAuC,MAAM,UAAU,CAAA;AAqCzF;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CAiNlE"}
1
+ {"version":3,"file":"PaymentSettings.d.ts","sourceRoot":"","sources":["../../../src/admin/components/PaymentSettings.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAqB,MAAM,UAAU,CAAA;AAiCvE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CA+IlE"}
@@ -6,9 +6,9 @@ import { AdminPageHeader } from './AdminPageHeader';
6
6
  import { AdminSaveBar } from './AdminSaveBar';
7
7
  import { useDirtyState } from '../hooks/useDirtyState';
8
8
  import { PaymentMethodsManager } from './PaymentMethodsManager';
9
- import { PaypalProviderPanel, Up2payProviderPanel } from './PaymentProviderPanels';
9
+ import { PaymentProcessorsCard } from './PaymentProviderPanels';
10
10
  import { fetchAdminApi } from '../hooks/fetchAdminApi';
11
- import { ExternalLink, CheckCircle, AlertCircle, } from 'lucide-react';
11
+ import { AlertCircle } from 'lucide-react';
12
12
  // =============================================================================
13
13
  // Constants
14
14
  // =============================================================================
@@ -47,11 +47,8 @@ const CURRENCIES = [
47
47
  * which provides zone-based tax rates per country/state.
48
48
  */
49
49
  export function PaymentSettings({ className }) {
50
- // Settings state
51
- const [stripeStatus, setStripeStatus] = useState(null);
52
- // UI state
50
+ // UI state. Stripe/processor status is owned by PaymentProcessorsCard now.
53
51
  const [isLoadingSettings, setIsLoadingSettings] = useState(true);
54
- const [isLoadingStripe, setIsLoadingStripe] = useState(true);
55
52
  const [error, setError] = useState(null);
56
53
  // Form state
57
54
  const [currency, setCurrency] = useState('USD');
@@ -70,22 +67,12 @@ export function PaymentSettings({ className }) {
70
67
  }
71
68
  setCurrency(res.data.settings.storeCurrency || 'USD');
72
69
  }, []);
73
- const fetchStripeStatus = useCallback(async () => {
74
- const res = await fetchAdminApi('/api/admin/stripe-status');
75
- setIsLoadingStripe(false);
76
- // Don't set error — Stripe status is supplementary info. If the user
77
- // doesn't have billing.read permission, we silently omit the panel.
78
- if (res.ok) {
79
- setStripeStatus(res.data.status);
80
- }
81
- }, []);
82
- // Pattern C — populate state from async-loaded settings + Stripe status.
70
+ // Pattern C populate state from async-loaded settings.
83
71
  // Alternative is a data-fetching library (TanStack Query / SWR).
84
72
  useEffect(() => {
85
73
  // eslint-disable-next-line react-hooks/set-state-in-effect
86
74
  fetchSettings();
87
- fetchStripeStatus();
88
- }, [fetchSettings, fetchStripeStatus]);
75
+ }, [fetchSettings]);
89
76
  // =============================================================================
90
77
  // Save Handler
91
78
  // =============================================================================
@@ -107,11 +94,10 @@ export function PaymentSettings({ className }) {
107
94
  // =============================================================================
108
95
  // Render Helpers
109
96
  // =============================================================================
110
- const isLoading = isLoadingSettings || isLoadingStripe;
111
- if (isLoading) {
97
+ if (isLoadingSettings) {
112
98
  return (_jsx("div", { className: "flex items-center justify-center py-12", children: _jsx("span", { className: "admin-spinner admin-spinner-lg" }) }));
113
99
  }
114
- return (_jsxs("div", { className: `space-y-6 ${className || ''}`, children: [_jsx(AdminPageHeader, { title: "Payments", subtitle: "How your store gets paid: card payments through Stripe, PayPal and Up2pay, plus any manual methods you offer." }), error && (_jsxs("div", { className: "admin-alert admin-alert-error", children: [_jsx(AlertCircle, { className: "h-4 w-4" }), _jsx("span", { children: error })] })), _jsxs("div", { className: "admin-card", children: [_jsx("div", { className: "admin-card-header", children: _jsx("h2", { className: "admin-card-title", children: "Stripe connection" }) }), _jsx("div", { className: "admin-card-body", children: stripeStatus?.connected ? (_jsx("div", { className: "space-y-4", children: _jsxs("div", { className: "flex items-center gap-3 p-4 rounded-lg bg-[hsl(var(--admin-success))]/10 border border-[hsl(var(--admin-success))]/20", children: [_jsx(CheckCircle, { className: "h-5 w-5 text-[hsl(var(--admin-success))]" }), _jsxs("div", { className: "flex-1", children: [_jsx("p", { className: "font-medium text-[hsl(var(--admin-foreground))]", children: "Connected" }), _jsxs("p", { className: "text-sm text-[hsl(var(--admin-foreground-muted))]", children: ["Account ID: ", stripeStatus.accountId] })] }), stripeStatus.dashboardUrl && (_jsxs("a", { href: stripeStatus.dashboardUrl, target: "_blank", rel: "noopener noreferrer", className: "admin-btn admin-btn-secondary admin-btn-sm", children: [_jsx("span", { children: "Open Stripe Dashboard" }), _jsx(ExternalLink, { className: "h-4 w-4 ml-1" })] }))] }) })) : (_jsxs("div", { className: "flex items-center gap-3 p-4 rounded-lg bg-[hsl(var(--admin-warning))]/10 border border-[hsl(var(--admin-warning))]/20", children: [_jsx(AlertCircle, { className: "h-5 w-5 text-[hsl(var(--admin-warning))]" }), _jsxs("div", { children: [_jsx("p", { className: "font-medium text-[hsl(var(--admin-foreground))]", children: "Not Connected" }), _jsx("p", { className: "text-sm text-[hsl(var(--admin-foreground-muted))]", children: "Contact the platform administrator to set up payment processing." })] })] })) })] }), _jsx(PaypalProviderPanel, {}), _jsx(Up2payProviderPanel, {}), _jsx(PaymentMethodsManager, {}), _jsxs("div", { className: "admin-card", children: [_jsx("div", { className: "admin-card-header", children: _jsx("h2", { className: "admin-card-title", children: "Currency" }) }), _jsx("div", { className: "admin-card-body", children: _jsx("div", { className: "space-y-4", children: _jsxs("div", { children: [_jsx("label", { htmlFor: "currency", className: "admin-label", children: "Store Currency" }), _jsx(AdminSelect, { id: "currency", value: currency, onChange: setCurrency, options: CURRENCIES.map((c) => ({
100
+ return (_jsxs("div", { className: `space-y-6 ${className || ''}`, children: [_jsx(AdminPageHeader, { title: "Payments", subtitle: "How your store gets paid: connect a payment processor (Stripe, PayPal or Up2pay), plus any manual methods you offer." }), error && (_jsxs("div", { className: "admin-alert admin-alert-error", children: [_jsx(AlertCircle, { className: "h-4 w-4" }), _jsx("span", { children: error })] })), _jsx(PaymentProcessorsCard, {}), _jsx(PaymentMethodsManager, {}), _jsxs("div", { className: "admin-card", children: [_jsx("div", { className: "admin-card-header", children: _jsx("h2", { className: "admin-card-title", children: "Currency" }) }), _jsx("div", { className: "admin-card-body", children: _jsx("div", { className: "space-y-4", children: _jsxs("div", { children: [_jsx("label", { htmlFor: "currency", className: "admin-label", children: "Store Currency" }), _jsx(AdminSelect, { id: "currency", value: currency, onChange: setCurrency, options: CURRENCIES.map((c) => ({
115
101
  value: c.code,
116
102
  label: `${c.code} - ${c.name} (${c.symbol})`,
117
103
  })), className: "w-full max-w-xs" }), _jsx("p", { className: "mt-1 text-sm text-[hsl(var(--admin-foreground-muted))]", children: "Prices are numbers with a currency label: changing the currency re-labels them without converting. Existing orders keep the currency they were placed in." })] }) }) })] }), _jsx(AdminSaveBar, { isDirty: isDirty, changedFields: ['Currency'], onSave: handleSave, onDiscard: () => setCurrency(baselineValue?.currency ?? 'USD') })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentSettings.js","sourceRoot":"","sources":["../../../src/admin/components/PaymentSettings.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PaymentSettings.js","sourceRoot":"","sources":["../../../src/admin/components/PaymentSettings.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmailSendingPanel.d.ts","sourceRoot":"","sources":["../../../../src/admin/components/emails/EmailSendingPanel.tsx"],"names":[],"mappings":"AA6CA,wBAAgB,iBAAiB,4CAqRhC"}
1
+ {"version":3,"file":"EmailSendingPanel.d.ts","sourceRoot":"","sources":["../../../../src/admin/components/emails/EmailSendingPanel.tsx"],"names":[],"mappings":"AA6CA,wBAAgB,iBAAiB,4CA8RhC"}
@@ -117,9 +117,9 @@ export function EmailSendingPanel() {
117
117
  adminToast.error(res.error || 'Test send failed');
118
118
  }
119
119
  if (loadError) {
120
- return (_jsxs("div", { className: "admin-card admin-card-body", children: [_jsx("h2", { className: "admin-card-title", children: "Sending" }), _jsx("div", { className: "admin-alert-inline admin-alert-inline-error mt-3", children: loadError })] }));
120
+ return (_jsxs("div", { className: "admin-card", children: [_jsx("div", { className: "admin-card-header", children: _jsx("h2", { className: "admin-card-title", children: "Sending" }) }), _jsx("div", { className: "admin-card-body", children: _jsx("div", { className: "admin-alert-inline admin-alert-inline-error", children: loadError }) })] }));
121
121
  }
122
- return (_jsxs("div", { className: "admin-card admin-card-body", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsxs("div", { children: [_jsx("h2", { className: "admin-card-title", children: "Sending" }), _jsx("p", { className: "text-xs text-[hsl(var(--admin-foreground-muted))]", children: "Who delivers your store's emails (order confirmations, account emails\u2026). If your chosen sender ever fails, emails automatically fall back to the standard sender \u2014 a customer never misses a confirmation." })] }), data && (_jsxs("button", { type: "button", onClick: () => void handleTestSend(), disabled: isTesting, className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-2", children: [isTesting && _jsx("span", { className: "admin-spinner admin-spinner-sm", "aria-hidden": true }), "Send a test"] }))] }), !data ? (_jsx("div", { className: "mt-4 flex justify-center py-6", children: _jsx("span", { className: "admin-spinner", "aria-label": "Loading sending settings" }) })) : (_jsxs("div", { className: "mt-4 max-w-xl space-y-4", children: [formError && (_jsx("div", { className: "admin-alert admin-alert-error", children: _jsx("div", { className: "admin-alert-description", children: formError }) })), warning && (_jsx("div", { className: "admin-alert admin-alert-warning", children: _jsx("div", { className: "admin-alert-description", children: warning }) })), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Send with" }), _jsx(AdminSelect, { value: transport, onChange: (v) => setTransport(v), options: [
122
+ return (_jsxs("div", { className: "admin-card", children: [_jsx("div", { className: "admin-card-header", children: _jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsxs("div", { children: [_jsx("h2", { className: "admin-card-title", children: "Sending" }), _jsx("p", { className: "admin-helper-text", children: "Who delivers your store's emails (order confirmations, account emails\u2026). If your chosen sender ever fails, emails automatically fall back to the standard sender \u2014 a customer never misses a confirmation." })] }), data && (_jsxs("button", { type: "button", onClick: () => void handleTestSend(), disabled: isTesting, className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-2", children: [isTesting && _jsx("span", { className: "admin-spinner admin-spinner-sm", "aria-hidden": true }), "Send a test"] }))] }) }), !data ? (_jsx("div", { className: "admin-card-body flex justify-center py-6", children: _jsx("span", { className: "admin-spinner", "aria-label": "Loading sending settings" }) })) : (_jsxs("div", { className: "admin-card-body max-w-xl space-y-4", children: [formError && (_jsx("div", { className: "admin-alert admin-alert-error", children: _jsx("div", { className: "admin-alert-description", children: formError }) })), warning && (_jsx("div", { className: "admin-alert admin-alert-warning", children: _jsx("div", { className: "admin-alert-description", children: warning }) })), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Send with" }), _jsx(AdminSelect, { value: transport, onChange: (v) => setTransport(v), options: [
123
123
  { value: 'platform', label: 'Rovela (default)' },
124
124
  {
125
125
  value: 'brevo',