@rovela-ai/sdk 0.14.1 → 0.15.0

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 (105) hide show
  1. package/dist/admin/api/emails.d.ts +2 -1
  2. package/dist/admin/api/emails.d.ts.map +1 -1
  3. package/dist/admin/api/emails.js +203 -34
  4. package/dist/admin/api/emails.js.map +1 -1
  5. package/dist/admin/components/AdminNav.d.ts.map +1 -1
  6. package/dist/admin/components/AdminNav.js +2 -1
  7. package/dist/admin/components/AdminNav.js.map +1 -1
  8. package/dist/admin/components/EmailsManager.d.ts.map +1 -1
  9. package/dist/admin/components/EmailsManager.js +168 -51
  10. package/dist/admin/components/EmailsManager.js.map +1 -1
  11. package/dist/admin/components/emails/BlocksEditor.d.ts +17 -0
  12. package/dist/admin/components/emails/BlocksEditor.d.ts.map +1 -0
  13. package/dist/admin/components/emails/BlocksEditor.js +110 -0
  14. package/dist/admin/components/emails/BlocksEditor.js.map +1 -0
  15. package/dist/admin/components/emails/EmailPreviewPane.d.ts +18 -0
  16. package/dist/admin/components/emails/EmailPreviewPane.d.ts.map +1 -0
  17. package/dist/admin/components/emails/EmailPreviewPane.js +52 -0
  18. package/dist/admin/components/emails/EmailPreviewPane.js.map +1 -0
  19. package/dist/admin/components/emails/EmailThemePanel.d.ts +27 -0
  20. package/dist/admin/components/emails/EmailThemePanel.d.ts.map +1 -0
  21. package/dist/admin/components/emails/EmailThemePanel.js +25 -0
  22. package/dist/admin/components/emails/EmailThemePanel.js.map +1 -0
  23. package/dist/admin/components/emails/FontPicker.d.ts +11 -0
  24. package/dist/admin/components/emails/FontPicker.d.ts.map +1 -0
  25. package/dist/admin/components/emails/FontPicker.js +55 -0
  26. package/dist/admin/components/emails/FontPicker.js.map +1 -0
  27. package/dist/admin/components/emails/TextBlockEditor.d.ts +7 -0
  28. package/dist/admin/components/emails/TextBlockEditor.d.ts.map +1 -0
  29. package/dist/admin/components/emails/TextBlockEditor.js +70 -0
  30. package/dist/admin/components/emails/TextBlockEditor.js.map +1 -0
  31. package/dist/core/db/queries.d.ts +38 -29
  32. package/dist/core/db/queries.d.ts.map +1 -1
  33. package/dist/core/db/queries.js +20 -0
  34. package/dist/core/db/queries.js.map +1 -1
  35. package/dist/core/db/schema.d.ts +35 -1
  36. package/dist/core/db/schema.d.ts.map +1 -1
  37. package/dist/core/db/schema.js +4 -0
  38. package/dist/core/db/schema.js.map +1 -1
  39. package/dist/emails/blocks.d.ts +95 -0
  40. package/dist/emails/blocks.d.ts.map +1 -0
  41. package/dist/emails/blocks.js +239 -0
  42. package/dist/emails/blocks.js.map +1 -0
  43. package/dist/emails/google-fonts.d.ts +13 -0
  44. package/dist/emails/google-fonts.d.ts.map +1 -0
  45. package/dist/emails/google-fonts.js +1943 -0
  46. package/dist/emails/google-fonts.js.map +1 -0
  47. package/dist/emails/overrides.d.ts +6 -0
  48. package/dist/emails/overrides.d.ts.map +1 -1
  49. package/dist/emails/overrides.js +10 -2
  50. package/dist/emails/overrides.js.map +1 -1
  51. package/dist/emails/registry.d.ts +49 -5
  52. package/dist/emails/registry.d.ts.map +1 -1
  53. package/dist/emails/registry.js +584 -122
  54. package/dist/emails/registry.js.map +1 -1
  55. package/dist/emails/send/auth.d.ts.map +1 -1
  56. package/dist/emails/send/auth.js +40 -25
  57. package/dist/emails/send/auth.js.map +1 -1
  58. package/dist/emails/send/orders.d.ts.map +1 -1
  59. package/dist/emails/send/orders.js +85 -55
  60. package/dist/emails/send/orders.js.map +1 -1
  61. package/dist/emails/templates/base.d.ts +7 -0
  62. package/dist/emails/templates/base.d.ts.map +1 -1
  63. package/dist/emails/templates/base.js +34 -12
  64. package/dist/emails/templates/base.js.map +1 -1
  65. package/dist/emails/templates/email-verification.d.ts +4 -0
  66. package/dist/emails/templates/email-verification.d.ts.map +1 -1
  67. package/dist/emails/templates/email-verification.js +10 -2
  68. package/dist/emails/templates/email-verification.js.map +1 -1
  69. package/dist/emails/templates/order-cancelled.d.ts +4 -0
  70. package/dist/emails/templates/order-cancelled.d.ts.map +1 -1
  71. package/dist/emails/templates/order-cancelled.js +18 -10
  72. package/dist/emails/templates/order-cancelled.js.map +1 -1
  73. package/dist/emails/templates/order-confirmation.d.ts +18 -0
  74. package/dist/emails/templates/order-confirmation.d.ts.map +1 -1
  75. package/dist/emails/templates/order-confirmation.js +43 -21
  76. package/dist/emails/templates/order-confirmation.js.map +1 -1
  77. package/dist/emails/templates/order-delivered.d.ts +6 -0
  78. package/dist/emails/templates/order-delivered.d.ts.map +1 -1
  79. package/dist/emails/templates/order-delivered.js +22 -16
  80. package/dist/emails/templates/order-delivered.js.map +1 -1
  81. package/dist/emails/templates/order-ready-for-pickup.d.ts +10 -0
  82. package/dist/emails/templates/order-ready-for-pickup.d.ts.map +1 -1
  83. package/dist/emails/templates/order-ready-for-pickup.js +38 -22
  84. package/dist/emails/templates/order-ready-for-pickup.js.map +1 -1
  85. package/dist/emails/templates/order-shipped.d.ts +6 -0
  86. package/dist/emails/templates/order-shipped.d.ts.map +1 -1
  87. package/dist/emails/templates/order-shipped.js +17 -9
  88. package/dist/emails/templates/order-shipped.js.map +1 -1
  89. package/dist/emails/templates/password-reset.d.ts +4 -0
  90. package/dist/emails/templates/password-reset.d.ts.map +1 -1
  91. package/dist/emails/templates/password-reset.js +10 -2
  92. package/dist/emails/templates/password-reset.js.map +1 -1
  93. package/dist/emails/templates/refund-processed.d.ts +6 -0
  94. package/dist/emails/templates/refund-processed.d.ts.map +1 -1
  95. package/dist/emails/templates/refund-processed.js +17 -7
  96. package/dist/emails/templates/refund-processed.js.map +1 -1
  97. package/dist/emails/templates/welcome.d.ts +2 -0
  98. package/dist/emails/templates/welcome.d.ts.map +1 -1
  99. package/dist/emails/templates/welcome.js +8 -4
  100. package/dist/emails/templates/welcome.js.map +1 -1
  101. package/dist/emails/theme.d.ts +35 -12
  102. package/dist/emails/theme.d.ts.map +1 -1
  103. package/dist/emails/theme.js +131 -42
  104. package/dist/emails/theme.js.map +1 -1
  105. package/package.json +7 -1
@@ -1,35 +1,43 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  /**
4
4
  * @rovela/sdk/admin/components/EmailsManager
5
5
  *
6
6
  * The Emails module admin surface (Phase D), mounted at /admin/emails.
7
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.
8
+ * Views:
9
+ * - LIST: every transactional email (grouped Orders / Account) + the
10
+ * merchant's own emails ("Your emails"), with Customized / Off state and
11
+ * a Create email action.
12
+ * - EMAIL: per-email editor subject with {{variable}} chips, and EITHER
13
+ * the standard layout (with intro/outro notes) OR a full block editor
14
+ * ("Customize layout"): drag-to-reorder headings, text, buttons, images
15
+ * and this email's dynamic data blocks. Per enabled language on
16
+ * multilingual stores. Send test; custom emails can also be sent to a
17
+ * customer and deleted.
18
+ * - THEME: the shared brand theme (colors incl. brand swatches, heading +
19
+ * body fonts across the full Google catalog, corner shapes, logo,
20
+ * footer). One edit restyles every email at once.
16
21
  *
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.
22
+ * Previews render server-side through the REAL pipeline with sample data
23
+ * (POST /api/admin/emails/preview) so what the merchant sees is what ships,
24
+ * displayed in an inbox-style crossfading preview pane.
19
25
  */
20
26
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
21
- import { Mail, Palette, ChevronRight, ChevronLeft, Send, Monitor, Smartphone, RotateCcw, Check, } from 'lucide-react';
27
+ import { Mail, Palette, ChevronRight, ChevronLeft, Send, Check, Plus, Trash2, LayoutTemplate, RotateCcw, PenLine, } from 'lucide-react';
28
+ import { EmailPreviewPane } from './emails/EmailPreviewPane';
29
+ import { EmailThemePanel } from './emails/EmailThemePanel';
30
+ import { BlocksEditor } from './emails/BlocksEditor';
22
31
  const EMPTY_DRAFT = { subject: '', intro: '', outro: '' };
23
32
  const DEFAULT_ROW = '_default';
33
+ const CUSTOM_PREFIX = 'custom_';
24
34
  const CATEGORY_LABELS = {
25
35
  orders: 'Orders',
26
36
  account: 'Account',
27
37
  };
28
- const RADIUS_OPTIONS = [
29
- { value: 'sm', label: 'Subtle (6px)' },
30
- { value: 'md', label: 'Rounded (12px)' },
31
- { value: 'full', label: 'Pill' },
32
- ];
38
+ function cloneBlocks(blocks) {
39
+ return JSON.parse(JSON.stringify(blocks));
40
+ }
33
41
  export function EmailsManager({ className = '' }) {
34
42
  const [data, setData] = useState(null);
35
43
  const [isLoading, setIsLoading] = useState(true);
@@ -37,12 +45,21 @@ export function EmailsManager({ className = '' }) {
37
45
  const [view, setView] = useState('list'); // string = email key
38
46
  const [activeLocale, setActiveLocale] = useState(DEFAULT_ROW);
39
47
  const [drafts, setDrafts] = useState({});
48
+ const [blockDrafts, setBlockDrafts] = useState({});
40
49
  const [enabledDraft, setEnabledDraft] = useState(true);
50
+ const [nameDraft, setNameDraft] = useState('');
41
51
  const [themeDraft, setThemeDraft] = useState({});
42
52
  const [isSaving, setIsSaving] = useState(false);
43
53
  const [saveFlash, setSaveFlash] = useState(null);
44
54
  const [actionError, setActionError] = useState(null);
45
55
  const [isSendingTest, setIsSendingTest] = useState(false);
56
+ const [createOpen, setCreateOpen] = useState(false);
57
+ const [createName, setCreateName] = useState('');
58
+ const [isCreating, setIsCreating] = useState(false);
59
+ const [sendToOpen, setSendToOpen] = useState(false);
60
+ const [sendToEmail, setSendToEmail] = useState('');
61
+ const [sendToName, setSendToName] = useState('');
62
+ const [confirmDelete, setConfirmDelete] = useState(false);
46
63
  const [previewHtml, setPreviewHtml] = useState('');
47
64
  const [previewSubject, setPreviewSubject] = useState('');
48
65
  const [previewWidth, setPreviewWidth] = useState('desktop');
@@ -60,9 +77,11 @@ export function EmailsManager({ className = '' }) {
60
77
  const json = (await res.json());
61
78
  setData(json);
62
79
  setThemeDraft(json.theme.stored);
80
+ return json;
63
81
  }
64
82
  catch {
65
83
  setLoadError('Could not load the emails module. Refresh to retry.');
84
+ return null;
66
85
  }
67
86
  finally {
68
87
  setIsLoading(false);
@@ -72,7 +91,10 @@ export function EmailsManager({ className = '' }) {
72
91
  useEffect(() => {
73
92
  load();
74
93
  }, [load]);
75
- const activeEntry = useMemo(() => (data && view !== 'list' && view !== 'theme' ? data.registry.find((e) => e.key === view) ?? null : null), [data, view]);
94
+ const isCustomKey = view.startsWith(CUSTOM_PREFIX);
95
+ const activeEntry = useMemo(() => (data && view !== 'list' && view !== 'theme' && !isCustomKey ? (data.registry.find((e) => e.key === view) ?? null) : null), [data, view, isCustomKey]);
96
+ const activeCustom = useMemo(() => (data && isCustomKey ? (data.customs.find((c) => c.key === view) ?? null) : null), [data, view, isCustomKey]);
97
+ const activeKey = activeEntry?.key ?? activeCustom?.key ?? null;
76
98
  const isMultilingual = (data?.enabledLocales.length ?? 0) > 1;
77
99
  /** Locale row keys the editor exposes: '_default' + each non-default enabled locale. */
78
100
  const localeRows = useMemo(() => {
@@ -89,25 +111,34 @@ export function EmailsManager({ className = '' }) {
89
111
  return row.toUpperCase();
90
112
  }, [data, isMultilingual]);
91
113
  // ── Open an email: hydrate drafts from saved rows ──────────────────────────
92
- const openEmail = useCallback((key) => {
93
- if (!data)
114
+ const openEmail = useCallback((key, fresh) => {
115
+ const state = fresh ?? data;
116
+ if (!state)
94
117
  return;
95
- const rows = data.overrides.filter((o) => o.emailKey === key);
96
- const next = {};
97
- for (const rowKey of [DEFAULT_ROW, ...data.enabledLocales]) {
118
+ const rows = state.overrides.filter((o) => o.emailKey === key);
119
+ const nextDrafts = {};
120
+ const nextBlocks = {};
121
+ for (const rowKey of [DEFAULT_ROW, ...state.enabledLocales]) {
98
122
  const row = rows.find((r) => r.locale === rowKey);
99
- next[rowKey] = {
123
+ nextDrafts[rowKey] = {
100
124
  subject: row?.subject ?? '',
101
125
  intro: row?.intro ?? '',
102
126
  outro: row?.outro ?? '',
103
127
  };
128
+ nextBlocks[rowKey] = Array.isArray(row?.bodyBlocks) && row.bodyBlocks.length > 0 ? row.bodyBlocks : null;
104
129
  }
105
- setDrafts(next);
130
+ setDrafts(nextDrafts);
131
+ setBlockDrafts(nextBlocks);
106
132
  setEnabledDraft(rows.find((r) => r.locale === DEFAULT_ROW)?.enabled ?? true);
133
+ setNameDraft(rows.find((r) => r.locale === DEFAULT_ROW)?.name ?? '');
107
134
  setActiveLocale(DEFAULT_ROW);
108
135
  setPreviewLocale(null);
109
136
  setActionError(null);
110
137
  setSaveFlash(null);
138
+ setSendToOpen(false);
139
+ setConfirmDelete(false);
140
+ setPreviewHtml('');
141
+ setPreviewSubject('');
111
142
  setView(key);
112
143
  }, [data]);
113
144
  // ── Preview (debounced; draft-aware) ───────────────────────────────────────
@@ -124,6 +155,7 @@ export function EmailsManager({ className = '' }) {
124
155
  key: opts.key,
125
156
  locale: opts.locale ?? null,
126
157
  draft: opts.draft ?? null,
158
+ blocks: opts.blocks,
127
159
  draftTheme: opts.draftTheme ?? null,
128
160
  }),
129
161
  signal: controller.signal,
@@ -142,20 +174,23 @@ export function EmailsManager({ className = '' }) {
142
174
  setIsPreviewLoading(false);
143
175
  }
144
176
  }, []);
145
- // Email view: refresh on draft/locale changes (debounced).
177
+ // Email view: refresh on draft/block/locale changes (debounced).
146
178
  useEffect(() => {
147
- if (!activeEntry)
179
+ if (!activeKey)
148
180
  return;
149
- const draft = drafts[previewLocale ?? activeLocale] ?? drafts[DEFAULT_ROW] ?? EMPTY_DRAFT;
181
+ const row = previewLocale ?? activeLocale;
182
+ const draft = drafts[row] ?? drafts[DEFAULT_ROW] ?? EMPTY_DRAFT;
183
+ const blocks = blockDrafts[row] ?? blockDrafts[DEFAULT_ROW] ?? null;
150
184
  const handle = window.setTimeout(() => {
151
185
  refreshPreview({
152
- key: activeEntry.key,
186
+ key: activeKey,
153
187
  draft,
188
+ blocks,
154
189
  locale: previewLocale,
155
190
  });
156
- }, 500);
191
+ }, 450);
157
192
  return () => window.clearTimeout(handle);
158
- }, [activeEntry, drafts, activeLocale, previewLocale, refreshPreview]);
193
+ }, [activeKey, drafts, blockDrafts, activeLocale, previewLocale, refreshPreview]);
159
194
  // Theme view: refresh against a representative email (order confirmation).
160
195
  useEffect(() => {
161
196
  if (view !== 'theme' || !data)
@@ -167,23 +202,26 @@ export function EmailsManager({ className = '' }) {
167
202
  }, [view, themeDraft, data, refreshPreview]);
168
203
  // ── Saves ──────────────────────────────────────────────────────────────────
169
204
  async function saveOverride() {
170
- if (!activeEntry)
205
+ if (!activeKey)
171
206
  return;
172
207
  setIsSaving(true);
173
208
  setActionError(null);
174
209
  try {
175
210
  const draft = drafts[activeLocale] ?? EMPTY_DRAFT;
211
+ const blocks = blockDrafts[activeLocale] ?? null;
176
212
  const res = await fetch('/api/admin/emails', {
177
213
  method: 'PUT',
178
214
  headers: { 'Content-Type': 'application/json' },
179
215
  body: JSON.stringify({
180
216
  action: 'override',
181
- emailKey: activeEntry.key,
217
+ emailKey: activeKey,
182
218
  locale: activeLocale,
183
219
  subject: draft.subject,
184
220
  intro: draft.intro,
185
221
  outro: draft.outro,
222
+ blocks,
186
223
  enabled: enabledDraft,
224
+ ...(isCustomKey ? { name: nameDraft } : {}),
187
225
  }),
188
226
  });
189
227
  if (!res.ok)
@@ -228,8 +266,8 @@ export function EmailsManager({ className = '' }) {
228
266
  setIsSaving(false);
229
267
  }
230
268
  }
231
- async function sendTest() {
232
- if (!activeEntry)
269
+ async function sendTest(sendTo) {
270
+ if (!activeKey)
233
271
  return;
234
272
  setIsSendingTest(true);
235
273
  setActionError(null);
@@ -237,27 +275,86 @@ export function EmailsManager({ className = '' }) {
237
275
  const res = await fetch('/api/admin/emails/test', {
238
276
  method: 'POST',
239
277
  headers: { 'Content-Type': 'application/json' },
240
- body: JSON.stringify({ key: activeEntry.key, locale: previewLocale }),
278
+ body: JSON.stringify({ key: activeKey, locale: previewLocale, sendTo: sendTo ?? null }),
241
279
  });
242
280
  const json = await res.json().catch(() => null);
243
281
  if (!res.ok)
244
282
  throw new Error(json?.error);
245
- setSaveFlash(`Test sent to ${json?.to ?? 'your address'}`);
283
+ setSaveFlash(`Sent to ${json?.to ?? 'your address'}`);
246
284
  window.setTimeout(() => setSaveFlash(null), 3500);
285
+ if (sendTo) {
286
+ setSendToOpen(false);
287
+ setSendToEmail('');
288
+ setSendToName('');
289
+ }
247
290
  }
248
- catch {
249
- setActionError('Could not send the test email.');
291
+ catch (err) {
292
+ setActionError(err instanceof Error && err.message ? err.message : 'Could not send the email.');
250
293
  }
251
294
  finally {
252
295
  setIsSendingTest(false);
253
296
  }
254
297
  }
298
+ async function createCustomEmail() {
299
+ const name = createName.trim();
300
+ if (!name)
301
+ return;
302
+ setIsCreating(true);
303
+ setActionError(null);
304
+ try {
305
+ const res = await fetch('/api/admin/emails', {
306
+ method: 'PUT',
307
+ headers: { 'Content-Type': 'application/json' },
308
+ body: JSON.stringify({ action: 'create-custom', name }),
309
+ });
310
+ const json = await res.json().catch(() => null);
311
+ if (!res.ok || !json?.key)
312
+ throw new Error();
313
+ setCreateOpen(false);
314
+ setCreateName('');
315
+ const fresh = await load();
316
+ if (fresh)
317
+ openEmail(json.key, fresh);
318
+ }
319
+ catch {
320
+ setActionError('Could not create the email. Please try again.');
321
+ }
322
+ finally {
323
+ setIsCreating(false);
324
+ }
325
+ }
326
+ async function deleteCustomEmail() {
327
+ if (!activeKey || !isCustomKey)
328
+ return;
329
+ setIsSaving(true);
330
+ setActionError(null);
331
+ try {
332
+ const res = await fetch('/api/admin/emails', {
333
+ method: 'PUT',
334
+ headers: { 'Content-Type': 'application/json' },
335
+ body: JSON.stringify({ action: 'delete-custom', emailKey: activeKey }),
336
+ });
337
+ if (!res.ok)
338
+ throw new Error();
339
+ setView('list');
340
+ await load();
341
+ }
342
+ catch {
343
+ setActionError('Could not delete the email. Please try again.');
344
+ setIsSaving(false);
345
+ }
346
+ finally {
347
+ setIsSaving(false);
348
+ setConfirmDelete(false);
349
+ }
350
+ }
255
351
  // ── Derived list state ─────────────────────────────────────────────────────
256
352
  const customizedKeys = useMemo(() => {
257
353
  const set = new Set();
258
354
  for (const o of data?.overrides ?? []) {
259
- if (o.subject || o.intro || o.outro)
355
+ if (o.subject || o.intro || o.outro || (Array.isArray(o.bodyBlocks) && o.bodyBlocks.length > 0)) {
260
356
  set.add(o.emailKey);
357
+ }
261
358
  }
262
359
  return set;
263
360
  }, [data]);
@@ -270,37 +367,57 @@ export function EmailsManager({ className = '' }) {
270
367
  return set;
271
368
  }, [data]);
272
369
  // ── Render ─────────────────────────────────────────────────────────────────
273
- if (isLoading) {
370
+ if (isLoading && !data) {
274
371
  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
372
  }
276
373
  if (loadError || !data) {
277
374
  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
375
  }
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" }) }) })] }));
376
+ const fromName = data.sender.storeName ?? 'Your store';
377
+ const previewPane = (_jsx(EmailPreviewPane, { subject: previewSubject, html: previewHtml, isLoading: isPreviewLoading, width: previewWidth, onWidthChange: setPreviewWidth, fromName: fromName, fromEmail: data.sender.fromEmail, localeOptions: view !== 'theme' && isMultilingual ? data.enabledLocales : undefined, locale: previewLocale ?? data.defaultLocale, onLocaleChange: (l) => setPreviewLocale(l === data.defaultLocale ? null : l) }));
281
378
  // ── THEME VIEW ─────────────────────────────────────────────────────────────
282
379
  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] })] })] }));
380
+ 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, colors, fonts) \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: [_jsx(EmailThemePanel, { draft: themeDraft, derived: data.theme.derived, palette: data.theme.palette, suggestedFonts: data.theme.suggestedFonts, onChange: (patch) => setThemeDraft((p) => ({ ...p, ...patch })), onSave: () => saveTheme(themeDraft), onReset: () => {
381
+ setThemeDraft({});
382
+ saveTheme({});
383
+ }, isSaving: isSaving, saveFlash: saveFlash }), previewPane] })] })] }));
287
384
  }
288
385
  // ── EMAIL DETAIL VIEW ──────────────────────────────────────────────────────
289
- if (activeEntry) {
386
+ if (activeKey) {
290
387
  const draft = drafts[activeLocale] ?? EMPTY_DRAFT;
291
388
  const setDraftField = (field, value) => setDrafts((prev) => ({ ...prev, [activeLocale]: { ...(prev[activeLocale] ?? EMPTY_DRAFT), [field]: value } }));
389
+ const rowBlocks = blockDrafts[activeLocale] ?? null;
390
+ const defaultRowBlocks = blockDrafts[DEFAULT_ROW] ?? null;
391
+ const hasRowBlocks = rowBlocks !== null;
392
+ const variables = activeEntry?.variables ?? data.customVariables;
393
+ const slots = activeEntry?.slots ?? [];
394
+ const displayName = activeEntry?.name ?? activeCustom?.name ?? 'Email';
395
+ const seedBlocks = () => {
396
+ const seed = rowBlocks ?? defaultRowBlocks ?? activeEntry?.defaultBlocks ?? [];
397
+ setBlockDrafts((prev) => ({ ...prev, [activeLocale]: cloneBlocks(seed) }));
398
+ };
292
399
  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
400
  setView('list');
294
401
  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
402
+ }, 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: displayName }), isCustomKey && _jsx("span", { className: "admin-badge admin-badge-neutral", children: "Your email" }), activeKey && disabledKeys.has(activeKey) && _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 ?? 'Your own email — send it to a customer whenever you like.' }), 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 space-y-4 lg:max-w-md", children: [isCustomKey && (_jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Name" }), _jsx("input", { className: "admin-input w-full", value: nameDraft, onChange: (e) => setNameDraft(e.target.value), maxLength: 80 })] })), 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
403
  ? '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] })] })] }));
404
+ : '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: isCustomKey ? 'The subject your customer sees' : 'Leave empty to use the standard subject', maxLength: 200 }), _jsx("div", { className: "mt-1.5 flex flex-wrap gap-1", children: 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))) })] }), isCustomKey || hasRowBlocks ? (_jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("label", { className: "admin-label !mb-0", children: "Content" }), !isCustomKey && (_jsxs("button", { type: "button", onClick: () => {
405
+ if (window.confirm('Go back to the standard layout? Your custom layout for this language will be removed when you save.')) {
406
+ setBlockDrafts((prev) => ({ ...prev, [activeLocale]: null }));
407
+ }
408
+ }, className: "admin-action-link inline-flex items-center gap-1 text-xs", children: [_jsx(RotateCcw, { className: "h-3 w-3" }), " Reset to standard layout"] }))] }), _jsx(BlocksEditor, { blocks: rowBlocks ?? defaultRowBlocks ?? [], onChange: (next) => setBlockDrafts((prev) => ({ ...prev, [activeLocale]: next })), slots: slots, variables: variables })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "rounded-lg border border-[hsl(var(--admin-border))] bg-[hsl(var(--admin-muted))]/40 px-3 py-3", children: [_jsxs("p", { className: "mb-2 inline-flex items-center gap-1.5 text-sm", children: [_jsx(LayoutTemplate, { className: "h-4 w-4 text-[hsl(var(--admin-foreground-muted))]" }), "Using the standard layout."] }), _jsxs("button", { type: "button", onClick: seedBlocks, className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1.5", children: [_jsx(PenLine, { className: "h-3.5 w-3.5" }), " Customize layout"] }), defaultRowBlocks !== null && activeLocale !== DEFAULT_ROW && (_jsxs("p", { className: "mt-2 text-xs text-[hsl(var(--admin-foreground-muted))]", children: ["This language currently uses your default-language layout \u2014 customizing creates a", ' ', activeLocale.toUpperCase(), " version."] }))] }), _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'] }), isCustomKey && (_jsxs("button", { type: "button", onClick: () => setSendToOpen((o) => !o), className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1", children: [_jsx(Mail, { className: "h-3.5 w-3.5" }), " Send to a customer"] })), 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] }))] }), isCustomKey && sendToOpen && (_jsxs("div", { className: "space-y-2 rounded-lg border border-[hsl(var(--admin-border))] p-3", children: [_jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-[hsl(var(--admin-foreground-muted))]", children: "Send to a customer" }), _jsx("p", { className: "text-xs text-[hsl(var(--admin-foreground-muted))]", children: "Sends the SAVED version of this email \u2014 save your changes first." }), _jsx("input", { className: "admin-input w-full", type: "email", value: sendToEmail, onChange: (e) => setSendToEmail(e.target.value), placeholder: "customer@example.com" }), _jsx("input", { className: "admin-input w-full", value: sendToName, onChange: (e) => setSendToName(e.target.value), placeholder: "Customer's first name (for {{customerName}})" }), _jsx("button", { type: "button", disabled: isSendingTest || !sendToEmail.trim(), onClick: () => sendTest({ email: sendToEmail.trim(), name: sendToName }), className: "admin-btn admin-btn-primary admin-btn-sm disabled:opacity-50", children: isSendingTest ? 'Sending…' : 'Send now' })] })), isCustomKey && (_jsx("div", { className: "border-t border-[hsl(var(--admin-border))] pt-3", children: confirmDelete ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm", children: "Delete this email for good?" }), _jsx("button", { type: "button", onClick: deleteCustomEmail, disabled: isSaving, className: "admin-btn admin-btn-sm bg-red-600 text-white hover:bg-red-700 disabled:opacity-50", children: "Delete" }), _jsx("button", { type: "button", onClick: () => setConfirmDelete(false), className: "admin-btn admin-btn-secondary admin-btn-sm", children: "Cancel" })] })) : (_jsxs("button", { type: "button", onClick: () => setConfirmDelete(true), className: "inline-flex items-center gap-1 text-sm text-red-600 hover:underline", children: [_jsx(Trash2, { className: "h-3.5 w-3.5" }), " Delete this email"] })) }))] }), previewPane] })] })] }));
298
409
  }
299
410
  // ── LIST VIEW ──────────────────────────────────────────────────────────────
300
411
  const grouped = ['orders', 'account'].map((cat) => ({
301
412
  cat,
302
413
  entries: data.registry.filter((e) => e.category === cat),
303
414
  }));
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))) })] })] }));
415
+ const listRow = (key, name, trigger) => (_jsxs("button", { type: "button", onClick: () => openEmail(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: name }), _jsx("p", { className: "truncate text-xs text-[hsl(var(--admin-foreground-muted))]", children: trigger })] }), customizedKeys.has(key) && _jsx("span", { className: "admin-badge admin-badge-neutral shrink-0", children: "Customized" }), disabledKeys.has(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))]" })] }, key));
416
+ return (_jsxs("div", { className: `admin-card ${className}`, children: [_jsx("div", { className: "admin-card-header", children: _jsxs("div", { className: "flex flex-wrap 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("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "button", onClick: () => setCreateOpen((o) => !o), className: "admin-btn admin-btn-primary admin-btn-sm inline-flex items-center gap-1.5", children: [_jsx(Plus, { className: "h-3.5 w-3.5" }), " Create email"] }), _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, plus your own. They all share one theme based on your brand \u2014 open any email to preview it, edit its layout and wording, or send yourself a test." }), actionError && _jsx("div", { className: "admin-alert-inline admin-alert-inline-error mb-4", children: actionError }), createOpen && (_jsxs("div", { className: "mb-5 flex flex-wrap items-center gap-2 rounded-lg border border-[hsl(var(--admin-border))] p-3", children: [_jsx("input", { autoFocus: true, className: "admin-input w-64", value: createName, onChange: (e) => setCreateName(e.target.value), onKeyDown: (e) => {
417
+ if (e.key === 'Enter')
418
+ createCustomEmail();
419
+ if (e.key === 'Escape')
420
+ setCreateOpen(false);
421
+ }, placeholder: "Name your email (e.g. Back in stock)", maxLength: 80 }), _jsx("button", { type: "button", onClick: createCustomEmail, disabled: isCreating || !createName.trim(), className: "admin-btn admin-btn-primary admin-btn-sm disabled:opacity-50", children: isCreating ? 'Creating…' : 'Create' }), _jsx("button", { type: "button", onClick: () => setCreateOpen(false), className: "admin-btn admin-btn-secondary admin-btn-sm", children: "Cancel" })] })), _jsxs("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) => listRow(entry.key, entry.name, entry.trigger)) })] }, cat))), data.customs.length > 0 && (_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-[hsl(var(--admin-foreground-muted))]", children: "Your emails" }), _jsx("div", { className: "divide-y divide-[hsl(var(--admin-border))] rounded-lg border border-[hsl(var(--admin-border))]", children: data.customs.map((c) => listRow(c.key, c.name, 'Built by you — send it to a customer whenever you like.')) })] }))] })] })] }));
305
422
  }
306
423
  //# sourceMappingURL=EmailsManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmailsManager.js","sourceRoot":"","sources":["../../../src/admin/components/EmailsManager.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmailsManager.js","sourceRoot":"","sources":["../../../src/admin/components/EmailsManager.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { EmailBlock } from '../../../emails/blocks';
2
+ export interface SlotMeta {
3
+ key: string;
4
+ label: string;
5
+ description: string;
6
+ }
7
+ export interface BlocksEditorProps {
8
+ blocks: EmailBlock[];
9
+ onChange: (blocks: EmailBlock[]) => void;
10
+ /** This email's dynamic data blocks (empty for custom emails). */
11
+ slots: SlotMeta[];
12
+ /** {{variable}} chips shown as hints inside text-bearing editors. */
13
+ variables: string[];
14
+ disabled?: boolean;
15
+ }
16
+ export declare function BlocksEditor({ blocks, onChange, slots, variables, disabled }: BlocksEditorProps): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=BlocksEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlocksEditor.d.ts","sourceRoot":"","sources":["../../../../src/admin/components/emails/BlocksEditor.tsx"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAIxD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;IACxC,kEAAkE;IAClE,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,qEAAqE;IACrE,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAyQD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA+G/F"}