@rovela-ai/sdk 0.13.1 → 0.14.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 (59) hide show
  1. package/dist/admin/api/emails.d.ts +17 -0
  2. package/dist/admin/api/emails.d.ts.map +1 -0
  3. package/dist/admin/api/emails.js +214 -0
  4. package/dist/admin/api/emails.js.map +1 -0
  5. package/dist/admin/components/AdminNav.d.ts.map +1 -1
  6. package/dist/admin/components/AdminNav.js +1 -0
  7. package/dist/admin/components/AdminNav.js.map +1 -1
  8. package/dist/admin/components/EmailsManager.d.ts +5 -0
  9. package/dist/admin/components/EmailsManager.d.ts.map +1 -0
  10. package/dist/admin/components/EmailsManager.js +306 -0
  11. package/dist/admin/components/EmailsManager.js.map +1 -0
  12. package/dist/admin/components/index.d.ts +2 -0
  13. package/dist/admin/components/index.d.ts.map +1 -1
  14. package/dist/admin/components/index.js +1 -0
  15. package/dist/admin/components/index.js.map +1 -1
  16. package/dist/admin/index.d.ts +1 -1
  17. package/dist/admin/index.d.ts.map +1 -1
  18. package/dist/admin/index.js +1 -1
  19. package/dist/admin/index.js.map +1 -1
  20. package/dist/core/db/queries.d.ts +26 -3
  21. package/dist/core/db/queries.d.ts.map +1 -1
  22. package/dist/core/db/queries.js +124 -0
  23. package/dist/core/db/queries.js.map +1 -1
  24. package/dist/core/db/schema.d.ts +173 -1
  25. package/dist/core/db/schema.d.ts.map +1 -1
  26. package/dist/core/db/schema.js +22 -0
  27. package/dist/core/db/schema.js.map +1 -1
  28. package/dist/emails/config.d.ts.map +1 -1
  29. package/dist/emails/config.js +5 -0
  30. package/dist/emails/config.js.map +1 -1
  31. package/dist/emails/index.d.ts +6 -0
  32. package/dist/emails/index.d.ts.map +1 -1
  33. package/dist/emails/index.js +4 -0
  34. package/dist/emails/index.js.map +1 -1
  35. package/dist/emails/overrides.d.ts +40 -0
  36. package/dist/emails/overrides.d.ts.map +1 -0
  37. package/dist/emails/overrides.js +70 -0
  38. package/dist/emails/overrides.js.map +1 -0
  39. package/dist/emails/registry.d.ts +40 -0
  40. package/dist/emails/registry.d.ts.map +1 -0
  41. package/dist/emails/registry.js +270 -0
  42. package/dist/emails/registry.js.map +1 -0
  43. package/dist/emails/send/auth.d.ts.map +1 -1
  44. package/dist/emails/send/auth.js +38 -3
  45. package/dist/emails/send/auth.js.map +1 -1
  46. package/dist/emails/send/orders.d.ts.map +1 -1
  47. package/dist/emails/send/orders.js +86 -6
  48. package/dist/emails/send/orders.js.map +1 -1
  49. package/dist/emails/templates/base.d.ts +30 -12
  50. package/dist/emails/templates/base.d.ts.map +1 -1
  51. package/dist/emails/templates/base.js +51 -8
  52. package/dist/emails/templates/base.js.map +1 -1
  53. package/dist/emails/theme.d.ts +65 -0
  54. package/dist/emails/theme.d.ts.map +1 -0
  55. package/dist/emails/theme.js +209 -0
  56. package/dist/emails/theme.js.map +1 -0
  57. package/dist/emails/types.d.ts +2 -0
  58. package/dist/emails/types.d.ts.map +1 -1
  59. package/package.json +5 -1
@@ -0,0 +1,306 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * @rovela/sdk/admin/components/EmailsManager
5
+ *
6
+ * The Emails module admin surface (Phase D), mounted at /admin/emails.
7
+ *
8
+ * Three views in one component:
9
+ * - LIST: every transactional email the store sends, grouped by category,
10
+ * with its trigger sentence and Customized / Off state.
11
+ * - EMAIL: per-email editor (subject + intro + outro, per enabled language
12
+ * on multilingual stores, on/off where safe) with a live HTML preview
13
+ * (desktop/mobile width, language toggle) and a Send-test button.
14
+ * - THEME: the shared brand theme — one edit restyles every email at once.
15
+ * Defaults derive from the store's brand; Reset returns to that.
16
+ *
17
+ * Previews render server-side through the REAL templates with sample data
18
+ * (POST /api/admin/emails/preview) so what the merchant sees is what ships.
19
+ */
20
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
21
+ import { Mail, Palette, ChevronRight, ChevronLeft, Send, Monitor, Smartphone, RotateCcw, Check, } from 'lucide-react';
22
+ const EMPTY_DRAFT = { subject: '', intro: '', outro: '' };
23
+ const DEFAULT_ROW = '_default';
24
+ const CATEGORY_LABELS = {
25
+ orders: 'Orders',
26
+ account: 'Account',
27
+ };
28
+ const RADIUS_OPTIONS = [
29
+ { value: 'sm', label: 'Subtle (6px)' },
30
+ { value: 'md', label: 'Rounded (12px)' },
31
+ { value: 'full', label: 'Pill' },
32
+ ];
33
+ export function EmailsManager({ className = '' }) {
34
+ const [data, setData] = useState(null);
35
+ const [isLoading, setIsLoading] = useState(true);
36
+ const [loadError, setLoadError] = useState(null);
37
+ const [view, setView] = useState('list'); // string = email key
38
+ const [activeLocale, setActiveLocale] = useState(DEFAULT_ROW);
39
+ const [drafts, setDrafts] = useState({});
40
+ const [enabledDraft, setEnabledDraft] = useState(true);
41
+ const [themeDraft, setThemeDraft] = useState({});
42
+ const [isSaving, setIsSaving] = useState(false);
43
+ const [saveFlash, setSaveFlash] = useState(null);
44
+ const [actionError, setActionError] = useState(null);
45
+ const [isSendingTest, setIsSendingTest] = useState(false);
46
+ const [previewHtml, setPreviewHtml] = useState('');
47
+ const [previewSubject, setPreviewSubject] = useState('');
48
+ const [previewWidth, setPreviewWidth] = useState('desktop');
49
+ const [previewLocale, setPreviewLocale] = useState(null);
50
+ const [isPreviewLoading, setIsPreviewLoading] = useState(false);
51
+ const previewAbort = useRef(null);
52
+ // ── Load module state ──────────────────────────────────────────────────────
53
+ const load = useCallback(async () => {
54
+ setIsLoading(true);
55
+ setLoadError(null);
56
+ try {
57
+ const res = await fetch('/api/admin/emails');
58
+ if (!res.ok)
59
+ throw new Error('Failed to load');
60
+ const json = (await res.json());
61
+ setData(json);
62
+ setThemeDraft(json.theme.stored);
63
+ }
64
+ catch {
65
+ setLoadError('Could not load the emails module. Refresh to retry.');
66
+ }
67
+ finally {
68
+ setIsLoading(false);
69
+ }
70
+ }, []);
71
+ // Pattern C — populate state from async-loaded data.
72
+ useEffect(() => {
73
+ load();
74
+ }, [load]);
75
+ const activeEntry = useMemo(() => (data && view !== 'list' && view !== 'theme' ? data.registry.find((e) => e.key === view) ?? null : null), [data, view]);
76
+ const isMultilingual = (data?.enabledLocales.length ?? 0) > 1;
77
+ /** Locale row keys the editor exposes: '_default' + each non-default enabled locale. */
78
+ const localeRows = useMemo(() => {
79
+ if (!data)
80
+ return [DEFAULT_ROW];
81
+ return [DEFAULT_ROW, ...data.enabledLocales.filter((l) => l !== data.defaultLocale)];
82
+ }, [data]);
83
+ const localeRowLabel = useCallback((row) => {
84
+ if (!data)
85
+ return row;
86
+ if (row === DEFAULT_ROW) {
87
+ return isMultilingual ? `${data.defaultLocale.toUpperCase()} (default)` : 'Content';
88
+ }
89
+ return row.toUpperCase();
90
+ }, [data, isMultilingual]);
91
+ // ── Open an email: hydrate drafts from saved rows ──────────────────────────
92
+ const openEmail = useCallback((key) => {
93
+ if (!data)
94
+ return;
95
+ const rows = data.overrides.filter((o) => o.emailKey === key);
96
+ const next = {};
97
+ for (const rowKey of [DEFAULT_ROW, ...data.enabledLocales]) {
98
+ const row = rows.find((r) => r.locale === rowKey);
99
+ next[rowKey] = {
100
+ subject: row?.subject ?? '',
101
+ intro: row?.intro ?? '',
102
+ outro: row?.outro ?? '',
103
+ };
104
+ }
105
+ setDrafts(next);
106
+ setEnabledDraft(rows.find((r) => r.locale === DEFAULT_ROW)?.enabled ?? true);
107
+ setActiveLocale(DEFAULT_ROW);
108
+ setPreviewLocale(null);
109
+ setActionError(null);
110
+ setSaveFlash(null);
111
+ setView(key);
112
+ }, [data]);
113
+ // ── Preview (debounced; draft-aware) ───────────────────────────────────────
114
+ const refreshPreview = useCallback(async (opts) => {
115
+ previewAbort.current?.abort();
116
+ const controller = new AbortController();
117
+ previewAbort.current = controller;
118
+ setIsPreviewLoading(true);
119
+ try {
120
+ const res = await fetch('/api/admin/emails/preview', {
121
+ method: 'POST',
122
+ headers: { 'Content-Type': 'application/json' },
123
+ body: JSON.stringify({
124
+ key: opts.key,
125
+ locale: opts.locale ?? null,
126
+ draft: opts.draft ?? null,
127
+ draftTheme: opts.draftTheme ?? null,
128
+ }),
129
+ signal: controller.signal,
130
+ });
131
+ if (!res.ok)
132
+ return;
133
+ const json = (await res.json());
134
+ setPreviewSubject(json.subject);
135
+ setPreviewHtml(json.html);
136
+ }
137
+ catch {
138
+ // aborted or transient — keep the previous preview
139
+ }
140
+ finally {
141
+ if (previewAbort.current === controller)
142
+ setIsPreviewLoading(false);
143
+ }
144
+ }, []);
145
+ // Email view: refresh on draft/locale changes (debounced).
146
+ useEffect(() => {
147
+ if (!activeEntry)
148
+ return;
149
+ const draft = drafts[previewLocale ?? activeLocale] ?? drafts[DEFAULT_ROW] ?? EMPTY_DRAFT;
150
+ const handle = window.setTimeout(() => {
151
+ refreshPreview({
152
+ key: activeEntry.key,
153
+ draft,
154
+ locale: previewLocale,
155
+ });
156
+ }, 500);
157
+ return () => window.clearTimeout(handle);
158
+ }, [activeEntry, drafts, activeLocale, previewLocale, refreshPreview]);
159
+ // Theme view: refresh against a representative email (order confirmation).
160
+ useEffect(() => {
161
+ if (view !== 'theme' || !data)
162
+ return;
163
+ const handle = window.setTimeout(() => {
164
+ refreshPreview({ key: 'order-confirmation', draftTheme: themeDraft });
165
+ }, 400);
166
+ return () => window.clearTimeout(handle);
167
+ }, [view, themeDraft, data, refreshPreview]);
168
+ // ── Saves ──────────────────────────────────────────────────────────────────
169
+ async function saveOverride() {
170
+ if (!activeEntry)
171
+ return;
172
+ setIsSaving(true);
173
+ setActionError(null);
174
+ try {
175
+ const draft = drafts[activeLocale] ?? EMPTY_DRAFT;
176
+ const res = await fetch('/api/admin/emails', {
177
+ method: 'PUT',
178
+ headers: { 'Content-Type': 'application/json' },
179
+ body: JSON.stringify({
180
+ action: 'override',
181
+ emailKey: activeEntry.key,
182
+ locale: activeLocale,
183
+ subject: draft.subject,
184
+ intro: draft.intro,
185
+ outro: draft.outro,
186
+ enabled: enabledDraft,
187
+ }),
188
+ });
189
+ if (!res.ok)
190
+ throw new Error();
191
+ setSaveFlash('Saved');
192
+ window.setTimeout(() => setSaveFlash(null), 2000);
193
+ // Refresh the module state so list badges stay accurate.
194
+ const fresh = await fetch('/api/admin/emails').then((r) => (r.ok ? r.json() : null));
195
+ if (fresh)
196
+ setData(fresh);
197
+ }
198
+ catch {
199
+ setActionError('Could not save. Please try again.');
200
+ }
201
+ finally {
202
+ setIsSaving(false);
203
+ }
204
+ }
205
+ async function saveTheme(next) {
206
+ setIsSaving(true);
207
+ setActionError(null);
208
+ try {
209
+ const res = await fetch('/api/admin/emails', {
210
+ method: 'PUT',
211
+ headers: { 'Content-Type': 'application/json' },
212
+ body: JSON.stringify({ action: 'theme', theme: next }),
213
+ });
214
+ if (!res.ok)
215
+ throw new Error();
216
+ setSaveFlash('Saved');
217
+ window.setTimeout(() => setSaveFlash(null), 2000);
218
+ const fresh = await fetch('/api/admin/emails').then((r) => (r.ok ? r.json() : null));
219
+ if (fresh) {
220
+ setData(fresh);
221
+ setThemeDraft(fresh.theme.stored);
222
+ }
223
+ }
224
+ catch {
225
+ setActionError('Could not save the theme. Please try again.');
226
+ }
227
+ finally {
228
+ setIsSaving(false);
229
+ }
230
+ }
231
+ async function sendTest() {
232
+ if (!activeEntry)
233
+ return;
234
+ setIsSendingTest(true);
235
+ setActionError(null);
236
+ try {
237
+ const res = await fetch('/api/admin/emails/test', {
238
+ method: 'POST',
239
+ headers: { 'Content-Type': 'application/json' },
240
+ body: JSON.stringify({ key: activeEntry.key, locale: previewLocale }),
241
+ });
242
+ const json = await res.json().catch(() => null);
243
+ if (!res.ok)
244
+ throw new Error(json?.error);
245
+ setSaveFlash(`Test sent to ${json?.to ?? 'your address'}`);
246
+ window.setTimeout(() => setSaveFlash(null), 3500);
247
+ }
248
+ catch {
249
+ setActionError('Could not send the test email.');
250
+ }
251
+ finally {
252
+ setIsSendingTest(false);
253
+ }
254
+ }
255
+ // ── Derived list state ─────────────────────────────────────────────────────
256
+ const customizedKeys = useMemo(() => {
257
+ const set = new Set();
258
+ for (const o of data?.overrides ?? []) {
259
+ if (o.subject || o.intro || o.outro)
260
+ set.add(o.emailKey);
261
+ }
262
+ return set;
263
+ }, [data]);
264
+ const disabledKeys = useMemo(() => {
265
+ const set = new Set();
266
+ for (const o of data?.overrides ?? []) {
267
+ if (o.locale === DEFAULT_ROW && o.enabled === false)
268
+ set.add(o.emailKey);
269
+ }
270
+ return set;
271
+ }, [data]);
272
+ // ── Render ─────────────────────────────────────────────────────────────────
273
+ if (isLoading) {
274
+ return (_jsx("div", { className: `admin-card ${className}`, children: _jsx("div", { className: "admin-card-body", children: _jsx("div", { className: "space-y-3 py-4", children: Array.from({ length: 5 }).map((_, i) => (_jsx("div", { className: "h-14 animate-pulse rounded-lg bg-[hsl(var(--admin-muted))]" }, i))) }) }) }));
275
+ }
276
+ if (loadError || !data) {
277
+ return (_jsx("div", { className: `admin-card ${className}`, children: _jsx("div", { className: "admin-card-body", children: _jsx("div", { className: "admin-alert-inline admin-alert-inline-error", children: loadError ?? 'Failed to load.' }) }) }));
278
+ }
279
+ const themeEffective = { ...data.theme.derived, ...themeDraft };
280
+ const previewPane = (_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "mb-2 flex items-center justify-between gap-2", children: [_jsxs("p", { className: "text-xs font-semibold uppercase tracking-wide text-[hsl(var(--admin-foreground-muted))]", children: ["Preview", isPreviewLoading && _jsx("span", { className: "ml-2 normal-case font-normal", children: "updating\u2026" })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [isMultilingual && view !== 'theme' && (_jsx("select", { className: "admin-input h-8 w-auto py-0 text-xs", value: previewLocale ?? data.defaultLocale, onChange: (e) => setPreviewLocale(e.target.value === data.defaultLocale ? null : e.target.value), "aria-label": "Preview language", children: data.enabledLocales.map((l) => (_jsx("option", { value: l, children: l.toUpperCase() }, l))) })), _jsx("button", { type: "button", onClick: () => setPreviewWidth('desktop'), className: `inline-flex h-8 w-8 items-center justify-center rounded-md border border-[hsl(var(--admin-border))] ${previewWidth === 'desktop' ? 'bg-[hsl(var(--admin-muted))]' : ''}`, "aria-label": "Desktop width", children: _jsx(Monitor, { className: "h-4 w-4" }) }), _jsx("button", { type: "button", onClick: () => setPreviewWidth('mobile'), className: `inline-flex h-8 w-8 items-center justify-center rounded-md border border-[hsl(var(--admin-border))] ${previewWidth === 'mobile' ? 'bg-[hsl(var(--admin-muted))]' : ''}`, "aria-label": "Mobile width", children: _jsx(Smartphone, { className: "h-4 w-4" }) })] })] }), previewSubject && (_jsxs("p", { className: "mb-2 truncate rounded-md border border-[hsl(var(--admin-border))] bg-[hsl(var(--admin-muted))] px-3 py-2 text-sm", children: [_jsx("span", { className: "font-semibold", children: "Subject:" }), " ", previewSubject] })), _jsx("div", { className: "overflow-hidden rounded-lg border border-[hsl(var(--admin-border))] bg-[hsl(var(--admin-muted))]", children: _jsx("div", { className: "mx-auto transition-all", style: { maxWidth: previewWidth === 'mobile' ? 390 : 720 }, children: _jsx("iframe", { title: "Email preview", srcDoc: previewHtml || '<p style="font-family:sans-serif;color:#888;padding:24px;text-align:center">Loading preview…</p>', sandbox: "", className: "h-[620px] w-full border-0 bg-transparent" }) }) })] }));
281
+ // ── THEME VIEW ─────────────────────────────────────────────────────────────
282
+ if (view === 'theme') {
283
+ return (_jsxs("div", { className: `admin-card ${className}`, children: [_jsx("div", { className: "admin-card-header", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "button", onClick: () => setView('list'), className: "admin-action-link inline-flex items-center gap-1 text-sm", children: [_jsx(ChevronLeft, { className: "h-4 w-4" }), " Emails"] }), _jsx("span", { className: "text-[hsl(var(--admin-foreground-muted))]", children: "/" }), _jsxs("h2", { className: "inline-flex items-center gap-2 text-base font-semibold", children: [_jsx(Palette, { className: "h-4 w-4 text-[hsl(var(--admin-primary))]" }), " Email theme"] })] }) }), _jsxs("div", { className: "admin-card-body", children: [_jsx("p", { className: "mb-5 max-w-2xl text-sm text-[hsl(var(--admin-foreground-muted))]", children: "One shared theme styles every email your store sends. It starts from your brand (logo, primary color, font) \u2014 adjust anything below and every email updates at once." }), actionError && (_jsx("div", { className: "admin-alert-inline admin-alert-inline-error mb-4", children: actionError })), _jsxs("div", { className: "flex flex-col gap-8 lg:flex-row", children: [_jsxs("div", { className: "w-full max-w-sm space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Accent color" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("input", { type: "color", value: themeEffective.primaryColor ?? '#0CAF7D', onChange: (e) => setThemeDraft((p) => ({ ...p, primaryColor: e.target.value })), className: "h-10 w-12 cursor-pointer rounded-md border border-[hsl(var(--admin-border))] bg-transparent p-1", "aria-label": "Accent color" }), _jsx("input", { className: "admin-input w-full", value: themeEffective.primaryColor ?? '', onChange: (e) => setThemeDraft((p) => ({ ...p, primaryColor: e.target.value })), placeholder: data.theme.derived.primaryColor ?? '#0CAF7D', maxLength: 7 })] }), _jsxs("p", { className: "mt-1 text-xs text-[hsl(var(--admin-foreground-subtle))]", children: ["Buttons, links and highlights.", data.theme.derived.primaryColor ? ` Your brand color is ${data.theme.derived.primaryColor}.` : ''] })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Font" }), _jsx("select", { className: "admin-input w-full", value: themeEffective.fontName ?? 'Plus Jakarta Sans', onChange: (e) => setThemeDraft((p) => ({ ...p, fontName: e.target.value })), children: data.theme.fonts.map((f) => (_jsx("option", { value: f, children: f }, f))) })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Button shape" }), _jsx("select", { className: "admin-input w-full", value: themeEffective.buttonRadius ?? 'md', onChange: (e) => setThemeDraft((p) => ({ ...p, buttonRadius: e.target.value })), children: RADIUS_OPTIONS.map((o) => (_jsx("option", { value: o.value, children: o.label }, o.value))) })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Background color" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("input", { type: "color", value: themeEffective.backgroundColor ?? '#F7F7F7', onChange: (e) => setThemeDraft((p) => ({ ...p, backgroundColor: e.target.value })), className: "h-10 w-12 cursor-pointer rounded-md border border-[hsl(var(--admin-border))] bg-transparent p-1", "aria-label": "Background color" }), _jsx("input", { className: "admin-input w-full", value: themeEffective.backgroundColor ?? '', onChange: (e) => setThemeDraft((p) => ({ ...p, backgroundColor: e.target.value })), placeholder: "#F7F7F7", maxLength: 7 })] })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Footer note (optional)" }), _jsx("textarea", { className: "admin-input w-full", rows: 3, value: themeEffective.footerNote ?? '', onChange: (e) => setThemeDraft((p) => ({ ...p, footerNote: e.target.value })), placeholder: "A legal line or tagline shown at the bottom of every email", maxLength: 300 })] }), _jsxs("div", { className: "flex items-center gap-2 pt-2", children: [_jsx("button", { type: "button", onClick: () => saveTheme(themeDraft), disabled: isSaving, className: "admin-btn admin-btn-primary admin-btn-sm disabled:opacity-50", children: isSaving ? 'Saving…' : 'Save theme' }), _jsxs("button", { type: "button", onClick: () => {
284
+ setThemeDraft({});
285
+ saveTheme({});
286
+ }, disabled: isSaving, className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1 disabled:opacity-50", children: [_jsx(RotateCcw, { className: "h-3.5 w-3.5" }), " Reset to brand"] }), saveFlash && (_jsxs("span", { className: "inline-flex items-center gap-1 text-sm text-[hsl(var(--admin-success,142_71%_45%))]", children: [_jsx(Check, { className: "h-4 w-4" }), " ", saveFlash] }))] })] }), previewPane] })] })] }));
287
+ }
288
+ // ── EMAIL DETAIL VIEW ──────────────────────────────────────────────────────
289
+ if (activeEntry) {
290
+ const draft = drafts[activeLocale] ?? EMPTY_DRAFT;
291
+ const setDraftField = (field, value) => setDrafts((prev) => ({ ...prev, [activeLocale]: { ...(prev[activeLocale] ?? EMPTY_DRAFT), [field]: value } }));
292
+ return (_jsxs("div", { className: `admin-card ${className}`, children: [_jsx("div", { className: "admin-card-header", children: _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("button", { type: "button", onClick: () => {
293
+ setView('list');
294
+ load();
295
+ }, className: "admin-action-link inline-flex items-center gap-1 text-sm", children: [_jsx(ChevronLeft, { className: "h-4 w-4" }), " Emails"] }), _jsx("span", { className: "text-[hsl(var(--admin-foreground-muted))]", children: "/" }), _jsx("h2", { className: "text-base font-semibold", children: activeEntry.name }), disabledKeys.has(activeEntry.key) && _jsx("span", { className: "admin-badge admin-badge-neutral", children: "Off" })] }) }), _jsxs("div", { className: "admin-card-body", children: [_jsx("p", { className: "mb-5 max-w-2xl text-sm text-[hsl(var(--admin-foreground-muted))]", children: activeEntry.trigger }), actionError && (_jsx("div", { className: "admin-alert-inline admin-alert-inline-error mb-4", children: actionError })), _jsxs("div", { className: "flex flex-col gap-8 lg:flex-row", children: [_jsxs("div", { className: "w-full max-w-sm space-y-4", children: [activeEntry.canDisable && (_jsxs("label", { className: "flex cursor-pointer items-center gap-2 text-sm", children: [_jsx("input", { type: "checkbox", className: "admin-checkbox", checked: enabledDraft, onChange: (e) => setEnabledDraft(e.target.checked) }), "Send this email"] })), isMultilingual && (_jsx("div", { className: "flex gap-1 rounded-lg border border-[hsl(var(--admin-border))] p-1", children: localeRows.map((row) => (_jsx("button", { type: "button", onClick: () => setActiveLocale(row), className: `flex-1 rounded-md px-2 py-1.5 text-xs font-semibold ${activeLocale === row
296
+ ? 'bg-[hsl(var(--admin-muted))]'
297
+ : 'text-[hsl(var(--admin-foreground-muted))]'}`, children: localeRowLabel(row) }, row))) })), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Subject" }), _jsx("input", { className: "admin-input w-full", value: draft.subject, onChange: (e) => setDraftField('subject', e.target.value), placeholder: "Leave empty to use the standard subject", maxLength: 200 }), _jsx("div", { className: "mt-1.5 flex flex-wrap gap-1", children: activeEntry.variables.map((v) => (_jsxs("button", { type: "button", onClick: () => setDraftField('subject', `${draft.subject}{{${v}}}`), className: "rounded-full border border-[hsl(var(--admin-border))] px-2 py-0.5 text-xs text-[hsl(var(--admin-foreground-muted))] hover:border-[hsl(var(--admin-primary))] hover:text-[hsl(var(--admin-primary))]", children: ['{{', v, '}}'] }, v))) })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Intro note (optional)" }), _jsx("textarea", { className: "admin-input w-full", rows: 3, value: draft.intro, onChange: (e) => setDraftField('intro', e.target.value), placeholder: "A short personal note shown at the top of the email", maxLength: 2000 })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Footer note (optional)" }), _jsx("textarea", { className: "admin-input w-full", rows: 3, value: draft.outro, onChange: (e) => setDraftField('outro', e.target.value), placeholder: "A short note shown at the bottom, before the footer", maxLength: 2000 })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2 pt-2", children: [_jsx("button", { type: "button", onClick: saveOverride, disabled: isSaving, className: "admin-btn admin-btn-primary admin-btn-sm disabled:opacity-50", children: isSaving ? 'Saving…' : 'Save' }), _jsxs("button", { type: "button", onClick: sendTest, disabled: isSendingTest, className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1 disabled:opacity-50", children: [_jsx(Send, { className: "h-3.5 w-3.5" }), " ", isSendingTest ? 'Sending…' : 'Send test'] }), saveFlash && (_jsxs("span", { className: "inline-flex items-center gap-1 text-sm text-[hsl(var(--admin-success,142_71%_45%))]", children: [_jsx(Check, { className: "h-4 w-4" }), " ", saveFlash] }))] })] }), previewPane] })] })] }));
298
+ }
299
+ // ── LIST VIEW ──────────────────────────────────────────────────────────────
300
+ const grouped = ['orders', 'account'].map((cat) => ({
301
+ cat,
302
+ entries: data.registry.filter((e) => e.category === cat),
303
+ }));
304
+ return (_jsxs("div", { className: `admin-card ${className}`, children: [_jsx("div", { className: "admin-card-header", children: _jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("h2", { className: "inline-flex items-center gap-2 text-base font-semibold", children: [_jsx(Mail, { className: "h-4 w-4 text-[hsl(var(--admin-primary))]" }), " Emails"] }), _jsxs("button", { type: "button", onClick: () => setView('theme'), className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1.5", children: [_jsx(Palette, { className: "h-3.5 w-3.5" }), " Email theme"] })] }) }), _jsxs("div", { className: "admin-card-body", children: [_jsx("p", { className: "mb-5 max-w-2xl text-sm text-[hsl(var(--admin-foreground-muted))]", children: "Every email your store sends automatically. They all share one theme based on your brand \u2014 open any email to preview it, adjust its wording, or send yourself a test." }), _jsx("div", { className: "space-y-6", children: grouped.map(({ cat, entries }) => (_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-[hsl(var(--admin-foreground-muted))]", children: CATEGORY_LABELS[cat] }), _jsx("div", { className: "divide-y divide-[hsl(var(--admin-border))] rounded-lg border border-[hsl(var(--admin-border))]", children: entries.map((entry) => (_jsxs("button", { type: "button", onClick: () => openEmail(entry.key), className: "flex w-full items-center gap-3 px-4 py-3 text-left hover:bg-[hsl(var(--admin-muted))]", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "text-sm font-semibold", children: entry.name }), _jsx("p", { className: "truncate text-xs text-[hsl(var(--admin-foreground-muted))]", children: entry.trigger })] }), customizedKeys.has(entry.key) && (_jsx("span", { className: "admin-badge admin-badge-neutral shrink-0", children: "Customized" })), disabledKeys.has(entry.key) && (_jsx("span", { className: "admin-badge admin-badge-neutral shrink-0", children: "Off" })), _jsx(ChevronRight, { className: "h-4 w-4 shrink-0 text-[hsl(var(--admin-foreground-subtle))]" })] }, entry.key))) })] }, cat))) })] })] }));
305
+ }
306
+ //# sourceMappingURL=EmailsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailsManager.js","sourceRoot":"","sources":["../../../src/admin/components/EmailsManager.tsx"],"names":[],"mappings":"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"}
@@ -80,6 +80,8 @@ export type { AdminAccountPageProps } from './AdminAccountPage';
80
80
  export { PermissionsMatrix } from './PermissionsMatrix';
81
81
  export type { PermissionsMatrixProps } from './PermissionsMatrix';
82
82
  export { FilesManager } from './FilesManager';
83
+ export { EmailsManager } from './EmailsManager';
84
+ export type { EmailsManagerProps } from './EmailsManager';
83
85
  export type { FilesManagerProps } from './FilesManager';
84
86
  export { MediaLibraryPicker } from './MediaLibraryPicker';
85
87
  export type { MediaLibraryPickerProps } from './MediaLibraryPicker';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,YAAY,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAM3E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAM7D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAMzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAMnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAMvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAMnE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAM7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,YAAY,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,YAAY,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AAMzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAM3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,YAAY,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AAMzE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAMjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -93,5 +93,6 @@ export { PermissionsMatrix } from './PermissionsMatrix';
93
93
  // Files (store media library, Phase A)
94
94
  // =============================================================================
95
95
  export { FilesManager } from './FilesManager';
96
+ export { EmailsManager } from './EmailsManager';
96
97
  export { MediaLibraryPicker } from './MediaLibraryPicker';
97
98
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/components/index.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,6 @@ export { getProducts, createProduct, getProduct, updateProduct, deleteProduct, a
61
61
  export { useAdminAuth, useAdminSession, useAdminStats, useAdminProducts, useAdminProductMetrics, useAdminOrders, useAdminCategories, useAdminCustomers, useAdminCustomerGroups, useAdminPaymentMethods, useAdminDiscounts, useAdminLocations, useBulkSelection, runChunkedBulk, BULK_CHUNK_SIZE, useAdminUsers, useAdminPermissions, useAdminMe, useLinkedCustomerStatus, useSetupGuide, } from './hooks';
62
62
  export type { AdminSessionPayload, AdminSessionStatus, UseAdminSessionReturn, SetupTaskId as SetupGuideTaskId, SetupTier as SetupGuideTier, SetupTask as SetupGuideTaskItem, SetupGuideData, ManualMarkKey as SetupGuideManualMarkKey, } from './hooks';
63
63
  export type { CategoryTreeItem } from './hooks/useAdminCategories';
64
- export { AdminGuard, AdminLoginForm, AdminLayout, AdminNav, ExampleContentBanner, StatsCards, RecentOrders, LowStockAlert, RevenueChart, OrderStatusChart, PrimaryMetricsRow, SecondaryMetricsRow, PeriodSelector, SetupGuide, ProductTable, ProductForm, InventoryEditor, CategorySelect, CategoryForm, SEOPreview, TagInput, VariantManager, OrderTable, OrderDetails, RefundDialog, StoreSettings, LogoUpload, PaymentSettings, PaymentMethodsManager, DiscountsManager, LocationsManager, AdminDateTimePicker, FilesManager, MediaLibraryPicker, ShippingSettings, TaxSettings, CustomerTable, CustomerDetails, CustomerGroupsManager, UsersTable, AdminForgotPasswordForm, AdminResetPasswordForm, InviteUserDialog, AdminAcceptInviteForm, AdminAccountPage, PermissionsMatrix, DeleteConfirmDialog, BulkActionBar, } from './components';
64
+ export { AdminGuard, AdminLoginForm, AdminLayout, AdminNav, ExampleContentBanner, StatsCards, RecentOrders, LowStockAlert, RevenueChart, OrderStatusChart, PrimaryMetricsRow, SecondaryMetricsRow, PeriodSelector, SetupGuide, ProductTable, ProductForm, InventoryEditor, CategorySelect, CategoryForm, SEOPreview, TagInput, VariantManager, OrderTable, OrderDetails, RefundDialog, StoreSettings, LogoUpload, PaymentSettings, PaymentMethodsManager, DiscountsManager, LocationsManager, AdminDateTimePicker, FilesManager, EmailsManager, MediaLibraryPicker, ShippingSettings, TaxSettings, CustomerTable, CustomerDetails, CustomerGroupsManager, UsersTable, AdminForgotPasswordForm, AdminResetPasswordForm, InviteUserDialog, AdminAcceptInviteForm, AdminAccountPage, PermissionsMatrix, DeleteConfirmDialog, BulkActionBar, } from './components';
65
65
  export type { RevenueChartProps, OrderStatusChartProps, PrimaryMetricsRowProps, SecondaryMetricsRowProps, PeriodSelectorProps, CategorySelectProps, CategoryFormProps, SEOPreviewProps, TagInputProps, VariantManagerProps, VariantOption, VariantData, DeleteConfirmDialogProps, LogoUploadProps, PermissionsMatrixProps, } from './components';
66
66
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
@@ -126,7 +126,7 @@ OrderTable, OrderDetails, RefundDialog,
126
126
  // Settings
127
127
  StoreSettings, LogoUpload, PaymentSettings, PaymentMethodsManager, DiscountsManager, LocationsManager, AdminDateTimePicker,
128
128
  // Files (store media library)
129
- FilesManager, MediaLibraryPicker,
129
+ FilesManager, EmailsManager, MediaLibraryPicker,
130
130
  // Shipping
131
131
  ShippingSettings,
132
132
  // Tax
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAyIH,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,OAAO,EACL,sBAAsB,EACtB,eAAe,GAChB,MAAM,UAAU,CAAA;AAEjB,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,WAAW;AACX,2BAA2B;AAC3B,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,8BAA8B,EAC9B,8BAA8B;AAC9B,4BAA4B;AAC5B,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe;AACf,sCAAsC;AACtC,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B;AAC1B,yBAAyB;AACzB,iBAAiB,EACjB,gBAAgB;AAChB,oDAAoD;AACpD,YAAY,EACZ,sBAAsB,GACvB,MAAM,UAAU,CAAA;AAEjB,gFAAgF;AAChF,mDAAmD;AACnD,0EAA0E;AAC1E,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,EACX,aAAa;AACb,oCAAoC;AACpC,UAAU;AACV,gCAAgC;AAChC,gBAAgB;AAChB,WAAW;AACX,WAAW,EACX,cAAc;AACd,gBAAgB;AAChB,eAAe;AACf,oBAAoB;AACpB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB;AACrB,yBAAyB;AACzB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB;AAClB,qDAAqD;AACrD,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB;AACrB,YAAY;AACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,OAAO,CAAA;AAEd,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe;AACf,UAAU;AACV,aAAa,EACb,mBAAmB;AACnB,UAAU;AACV,UAAU;AACV,OAAO;AACP,uBAAuB;AACvB,wCAAwC;AACxC,aAAa,GACd,MAAM,SAAS,CAAA;AAehB,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,OAAO;AACL,OAAO;AACP,UAAU,EACV,cAAc;AACd,SAAS;AACT,WAAW,EACX,QAAQ,EACR,oBAAoB;AACpB,YAAY;AACZ,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,UAAU;AACV,WAAW;AACX,YAAY,EACZ,WAAW,EACX,eAAe;AACf,aAAa;AACb,cAAc,EACd,YAAY;AACZ,gCAAgC;AAChC,UAAU,EACV,QAAQ,EACR,cAAc;AACd,SAAS;AACT,UAAU,EACV,YAAY,EACZ,YAAY;AACZ,WAAW;AACX,aAAa,EACb,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB;AACnB,8BAA8B;AAC9B,YAAY,EACZ,aAAa,EACb,kBAAkB;AAClB,WAAW;AACX,gBAAgB;AAChB,MAAM;AACN,WAAW;AACX,YAAY;AACZ,aAAa,EACb,eAAe,EACf,qBAAqB;AACrB,4BAA4B;AAC5B,UAAU;AACV,uBAAuB;AACvB,uBAAuB,EACvB,sBAAsB;AACtB,4BAA4B;AAC5B,gBAAgB,EAChB,qBAAqB;AACrB,yBAAyB;AACzB,gBAAgB;AAChB,8CAA8C;AAC9C,iBAAiB;AACjB,UAAU;AACV,mBAAmB,EACnB,aAAa,GACd,MAAM,cAAc,CAAA"}
@@ -1483,11 +1483,11 @@ export declare function createPaymentMethod(data: PaymentMethodInput): Promise<{
1483
1483
  createdAt: Date;
1484
1484
  updatedAt: Date;
1485
1485
  sortOrder: number;
1486
+ visibleToGroups: string[];
1486
1487
  kind: string;
1487
1488
  instructions: string | null;
1488
1489
  enabled: boolean;
1489
1490
  config: Record<string, unknown>;
1490
- visibleToGroups: string[];
1491
1491
  }>;
1492
1492
  export declare function updatePaymentMethod(id: string, data: Partial<PaymentMethodInput>): Promise<{
1493
1493
  id: string;
@@ -1662,12 +1662,12 @@ export declare function createDiscount(data: DiscountInput): Promise<{
1662
1662
  id: string;
1663
1663
  createdAt: Date;
1664
1664
  updatedAt: Date;
1665
- type: string;
1666
1665
  sortOrder: number;
1666
+ code: string | null;
1667
1667
  enabled: boolean;
1668
1668
  method: string;
1669
- code: string | null;
1670
1669
  title: string;
1670
+ type: string;
1671
1671
  value: string;
1672
1672
  appliesTo: string;
1673
1673
  targetIds: string[];
@@ -1947,6 +1947,8 @@ export interface StoreSettingsData {
1947
1947
  defaultLocale: string | null;
1948
1948
  /** Locales the storefront serves. NULL/empty = [defaultLocale]. */
1949
1949
  enabledLocales: string[] | null;
1950
+ /** Email theme (Phase D). NULL = derive from the store's brand. */
1951
+ emailTheme: Record<string, unknown> | null;
1950
1952
  taxIncludedInPrices: boolean | null;
1951
1953
  shippingEnabled: boolean | null;
1952
1954
  freeShippingThreshold: number | null;
@@ -1981,6 +1983,27 @@ export interface StoreSettingsData {
1981
1983
  export declare function ensureStoreSettingsSchema(): Promise<void>;
1982
1984
  /** Best-effort variant — never throws (the subsequent read surfaces real errors). */
1983
1985
  export declare function ensureStoreSettingsSchemaSafe(): Promise<void>;
1986
+ export interface StoreEmailOverride {
1987
+ emailKey: string;
1988
+ /** '_default' = the store-default-language row. */
1989
+ locale: string;
1990
+ subject: string | null;
1991
+ intro: string | null;
1992
+ outro: string | null;
1993
+ enabled: boolean;
1994
+ }
1995
+ export declare function ensureStoreEmailsSchema(): Promise<void>;
1996
+ /** All override rows (admin list/detail). */
1997
+ export declare function listEmailOverrides(): Promise<StoreEmailOverride[]>;
1998
+ /**
1999
+ * Upsert one (email_key, locale) override row. NULL/empty fields clear the
2000
+ * customization; a row where everything is default-ish is still kept (the
2001
+ * enabled flag lives here too).
2002
+ */
2003
+ export declare function upsertEmailOverride(override: StoreEmailOverride): Promise<void>;
2004
+ export declare function getEmailOverridesCached(emailKey: string): Promise<StoreEmailOverride[]>;
2005
+ /** Invalidate the send-path cache after an admin save. */
2006
+ export declare function invalidateEmailOverrideCache(): void;
1984
2007
  /**
1985
2008
  * Find store settings.
1986
2009
  * Returns null if no settings exist (first time access).