@rovela-ai/sdk 0.14.1 → 0.15.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 (115) 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 +215 -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 +192 -60
  10. package/dist/admin/components/EmailsManager.js.map +1 -1
  11. package/dist/admin/components/UsersTable.d.ts.map +1 -1
  12. package/dist/admin/components/UsersTable.js +15 -9
  13. package/dist/admin/components/UsersTable.js.map +1 -1
  14. package/dist/admin/components/emails/BlocksEditor.d.ts +19 -0
  15. package/dist/admin/components/emails/BlocksEditor.d.ts.map +1 -0
  16. package/dist/admin/components/emails/BlocksEditor.js +117 -0
  17. package/dist/admin/components/emails/BlocksEditor.js.map +1 -0
  18. package/dist/admin/components/emails/CustomerPicker.d.ts +9 -0
  19. package/dist/admin/components/emails/CustomerPicker.d.ts.map +1 -0
  20. package/dist/admin/components/emails/CustomerPicker.js +59 -0
  21. package/dist/admin/components/emails/CustomerPicker.js.map +1 -0
  22. package/dist/admin/components/emails/EmailPreviewPane.d.ts +14 -0
  23. package/dist/admin/components/emails/EmailPreviewPane.d.ts.map +1 -0
  24. package/dist/admin/components/emails/EmailPreviewPane.js +63 -0
  25. package/dist/admin/components/emails/EmailPreviewPane.js.map +1 -0
  26. package/dist/admin/components/emails/EmailThemePanel.d.ts +27 -0
  27. package/dist/admin/components/emails/EmailThemePanel.d.ts.map +1 -0
  28. package/dist/admin/components/emails/EmailThemePanel.js +25 -0
  29. package/dist/admin/components/emails/EmailThemePanel.js.map +1 -0
  30. package/dist/admin/components/emails/FontPicker.d.ts +11 -0
  31. package/dist/admin/components/emails/FontPicker.d.ts.map +1 -0
  32. package/dist/admin/components/emails/FontPicker.js +55 -0
  33. package/dist/admin/components/emails/FontPicker.js.map +1 -0
  34. package/dist/admin/components/emails/TextBlockEditor.d.ts +7 -0
  35. package/dist/admin/components/emails/TextBlockEditor.d.ts.map +1 -0
  36. package/dist/admin/components/emails/TextBlockEditor.js +87 -0
  37. package/dist/admin/components/emails/TextBlockEditor.js.map +1 -0
  38. package/dist/core/db/queries.d.ts +38 -29
  39. package/dist/core/db/queries.d.ts.map +1 -1
  40. package/dist/core/db/queries.js +20 -0
  41. package/dist/core/db/queries.js.map +1 -1
  42. package/dist/core/db/schema.d.ts +35 -1
  43. package/dist/core/db/schema.d.ts.map +1 -1
  44. package/dist/core/db/schema.js +4 -0
  45. package/dist/core/db/schema.js.map +1 -1
  46. package/dist/emails/blocks.d.ts +104 -0
  47. package/dist/emails/blocks.d.ts.map +1 -0
  48. package/dist/emails/blocks.js +270 -0
  49. package/dist/emails/blocks.js.map +1 -0
  50. package/dist/emails/google-fonts.d.ts +13 -0
  51. package/dist/emails/google-fonts.d.ts.map +1 -0
  52. package/dist/emails/google-fonts.js +1943 -0
  53. package/dist/emails/google-fonts.js.map +1 -0
  54. package/dist/emails/i18n.d.ts.map +1 -1
  55. package/dist/emails/i18n.js +15 -0
  56. package/dist/emails/i18n.js.map +1 -1
  57. package/dist/emails/overrides.d.ts +6 -0
  58. package/dist/emails/overrides.d.ts.map +1 -1
  59. package/dist/emails/overrides.js +10 -2
  60. package/dist/emails/overrides.js.map +1 -1
  61. package/dist/emails/registry.d.ts +49 -5
  62. package/dist/emails/registry.d.ts.map +1 -1
  63. package/dist/emails/registry.js +584 -122
  64. package/dist/emails/registry.js.map +1 -1
  65. package/dist/emails/send/auth.d.ts.map +1 -1
  66. package/dist/emails/send/auth.js +40 -25
  67. package/dist/emails/send/auth.js.map +1 -1
  68. package/dist/emails/send/orders.d.ts.map +1 -1
  69. package/dist/emails/send/orders.js +85 -55
  70. package/dist/emails/send/orders.js.map +1 -1
  71. package/dist/emails/templates/base.d.ts +7 -0
  72. package/dist/emails/templates/base.d.ts.map +1 -1
  73. package/dist/emails/templates/base.js +34 -12
  74. package/dist/emails/templates/base.js.map +1 -1
  75. package/dist/emails/templates/email-verification.d.ts +4 -0
  76. package/dist/emails/templates/email-verification.d.ts.map +1 -1
  77. package/dist/emails/templates/email-verification.js +10 -2
  78. package/dist/emails/templates/email-verification.js.map +1 -1
  79. package/dist/emails/templates/order-cancelled.d.ts +4 -0
  80. package/dist/emails/templates/order-cancelled.d.ts.map +1 -1
  81. package/dist/emails/templates/order-cancelled.js +18 -10
  82. package/dist/emails/templates/order-cancelled.js.map +1 -1
  83. package/dist/emails/templates/order-confirmation.d.ts +18 -0
  84. package/dist/emails/templates/order-confirmation.d.ts.map +1 -1
  85. package/dist/emails/templates/order-confirmation.js +43 -21
  86. package/dist/emails/templates/order-confirmation.js.map +1 -1
  87. package/dist/emails/templates/order-delivered.d.ts +6 -0
  88. package/dist/emails/templates/order-delivered.d.ts.map +1 -1
  89. package/dist/emails/templates/order-delivered.js +22 -16
  90. package/dist/emails/templates/order-delivered.js.map +1 -1
  91. package/dist/emails/templates/order-ready-for-pickup.d.ts +10 -0
  92. package/dist/emails/templates/order-ready-for-pickup.d.ts.map +1 -1
  93. package/dist/emails/templates/order-ready-for-pickup.js +38 -22
  94. package/dist/emails/templates/order-ready-for-pickup.js.map +1 -1
  95. package/dist/emails/templates/order-shipped.d.ts +6 -0
  96. package/dist/emails/templates/order-shipped.d.ts.map +1 -1
  97. package/dist/emails/templates/order-shipped.js +17 -9
  98. package/dist/emails/templates/order-shipped.js.map +1 -1
  99. package/dist/emails/templates/password-reset.d.ts +4 -0
  100. package/dist/emails/templates/password-reset.d.ts.map +1 -1
  101. package/dist/emails/templates/password-reset.js +10 -2
  102. package/dist/emails/templates/password-reset.js.map +1 -1
  103. package/dist/emails/templates/refund-processed.d.ts +6 -0
  104. package/dist/emails/templates/refund-processed.d.ts.map +1 -1
  105. package/dist/emails/templates/refund-processed.js +17 -7
  106. package/dist/emails/templates/refund-processed.js.map +1 -1
  107. package/dist/emails/templates/welcome.d.ts +2 -0
  108. package/dist/emails/templates/welcome.d.ts.map +1 -1
  109. package/dist/emails/templates/welcome.js +8 -4
  110. package/dist/emails/templates/welcome.js.map +1 -1
  111. package/dist/emails/theme.d.ts +35 -12
  112. package/dist/emails/theme.d.ts.map +1 -1
  113. package/dist/emails/theme.js +131 -42
  114. package/dist/emails/theme.js.map +1 -1
  115. package/package.json +7 -1
@@ -158,6 +158,13 @@ export function UsersTable({ pageSize = 20, className = '' }) {
158
158
  const [changeRoleTarget, setChangeRoleTarget] = useState(null);
159
159
  const [isChangingRole, setIsChangingRole] = useState(false);
160
160
  const [changeRoleError, setChangeRoleError] = useState(null);
161
+ /** Transient feedback for one-click ops (reactivate, resend invite) —
162
+ * shown as an inline banner, never a native browser alert. */
163
+ const [opFlash, setOpFlash] = useState(null);
164
+ const showOpFlash = useCallback((message, tone) => {
165
+ setOpFlash({ message, tone });
166
+ window.setTimeout(() => setOpFlash(null), 4000);
167
+ }, []);
161
168
  // Debounce search input (300ms)
162
169
  useEffect(() => {
163
170
  const timer = setTimeout(() => {
@@ -227,12 +234,9 @@ export function UsersTable({ pageSize = 20, className = '' }) {
227
234
  const handleReactivate = useCallback(async (user) => {
228
235
  const result = await reactivate(user.id);
229
236
  if (!result.success) {
230
- // Show error via alert the inline error row at the top of the table
231
- // isn't ideal for ad-hoc operations. Simple alert matches existing
232
- // admin component patterns.
233
- window.alert(result.error || 'Failed to reactivate user.');
237
+ showOpFlash(result.error || 'Failed to reactivate user.', 'error');
234
238
  }
235
- }, [reactivate]);
239
+ }, [reactivate, showOpFlash]);
236
240
  // =======================================================================
237
241
  // Hard-delete flow
238
242
  // =======================================================================
@@ -266,12 +270,12 @@ export function UsersTable({ pageSize = 20, className = '' }) {
266
270
  const handleResendInvite = useCallback(async (user) => {
267
271
  const result = await resendInvite(user.id);
268
272
  if (!result.success) {
269
- window.alert(result.error || 'Failed to resend invite.');
273
+ showOpFlash(result.error || 'Failed to resend invite.', 'error');
270
274
  }
271
275
  else {
272
- window.alert(`Invite resent to ${user.email}.`);
276
+ showOpFlash(`Invite resent to ${user.email}.`, 'success');
273
277
  }
274
- }, [resendInvite]);
278
+ }, [resendInvite, showOpFlash]);
275
279
  // =======================================================================
276
280
  // Phase 3 — Cancel invite (confirm dialog)
277
281
  // =======================================================================
@@ -367,7 +371,9 @@ export function UsersTable({ pageSize = 20, className = '' }) {
367
371
  return map;
368
372
  }, [users, currentAdmin, canManageUser, canManageRole, isOwner]);
369
373
  const totalPages = Math.ceil(total / pageSize);
370
- return (_jsxs("div", { className: `space-y-4 ${className}`, children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-4", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-3 flex-1", children: [_jsxs("div", { className: "admin-input-with-icon flex-1 max-w-sm", children: [_jsx(Search, { className: "admin-input-with-icon-left h-4 w-4" }), _jsx("input", { type: "text", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search by email or name...", className: "admin-input w-full" })] }), _jsxs("select", { value: statusFilter, onChange: (e) => setStatusFilter(e.target.value), className: "admin-input", children: [_jsx("option", { value: "all", children: "All statuses" }), _jsx("option", { value: "active", children: "Active" }), _jsx("option", { value: "invited", children: "Invited" }), _jsx("option", { value: "deactivated", children: "Deactivated" })] }), _jsxs("select", { value: roleFilter, onChange: (e) => setRoleFilter(e.target.value), className: "admin-input", children: [_jsx("option", { value: "all", children: "All roles" }), _jsx("option", { value: "owner", children: "Owner" }), _jsx("option", { value: "administrator", children: "Administrator" }), _jsx("option", { value: "manager", children: "Manager" }), _jsx("option", { value: "user", children: "User" })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm admin-text-muted", children: [_jsx(UsersIcon, { className: "h-4 w-4" }), _jsxs("span", { children: [total, " user", total !== 1 ? 's' : ''] })] }), canInvite && (_jsxs("button", { type: "button", onClick: () => setIsInviteOpen(true), className: "admin-btn admin-btn-primary inline-flex items-center gap-2", children: [_jsx(UserPlus, { className: "h-4 w-4" }), "Invite user"] }))] })] }), error && (_jsx("div", { className: "admin-alert-inline admin-alert-inline-error", children: error })), _jsx(PermissionsMatrix, { className: "mb-4" }), _jsx("div", { className: "admin-card", children: _jsxs("table", { className: "admin-table w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "admin-table-header", children: [_jsx("th", { className: "px-4 py-3 text-left", children: "User" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Email" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Role" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Status" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Last login" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Created" }), _jsx("th", { className: "px-4 py-3 text-center", children: "Actions" })] }) }), _jsx("tbody", { children: isLoading && users.length === 0 ? (
374
+ return (_jsxs("div", { className: `space-y-4 ${className}`, children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-4", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-3 flex-1", children: [_jsxs("div", { className: "admin-input-with-icon flex-1 max-w-sm", children: [_jsx(Search, { className: "admin-input-with-icon-left h-4 w-4" }), _jsx("input", { type: "text", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search by email or name...", className: "admin-input w-full" })] }), _jsxs("select", { value: statusFilter, onChange: (e) => setStatusFilter(e.target.value), className: "admin-input", children: [_jsx("option", { value: "all", children: "All statuses" }), _jsx("option", { value: "active", children: "Active" }), _jsx("option", { value: "invited", children: "Invited" }), _jsx("option", { value: "deactivated", children: "Deactivated" })] }), _jsxs("select", { value: roleFilter, onChange: (e) => setRoleFilter(e.target.value), className: "admin-input", children: [_jsx("option", { value: "all", children: "All roles" }), _jsx("option", { value: "owner", children: "Owner" }), _jsx("option", { value: "administrator", children: "Administrator" }), _jsx("option", { value: "manager", children: "Manager" }), _jsx("option", { value: "user", children: "User" })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm admin-text-muted", children: [_jsx(UsersIcon, { className: "h-4 w-4" }), _jsxs("span", { children: [total, " user", total !== 1 ? 's' : ''] })] }), canInvite && (_jsxs("button", { type: "button", onClick: () => setIsInviteOpen(true), className: "admin-btn admin-btn-primary inline-flex items-center gap-2", children: [_jsx(UserPlus, { className: "h-4 w-4" }), "Invite user"] }))] })] }), error && (_jsx("div", { className: "admin-alert-inline admin-alert-inline-error", children: error })), opFlash && (_jsx("div", { className: opFlash.tone === 'error'
375
+ ? 'admin-alert-inline admin-alert-inline-error'
376
+ : 'admin-alert-inline', children: opFlash.message })), _jsx(PermissionsMatrix, { className: "mb-4" }), _jsx("div", { className: "admin-card", children: _jsxs("table", { className: "admin-table w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "admin-table-header", children: [_jsx("th", { className: "px-4 py-3 text-left", children: "User" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Email" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Role" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Status" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Last login" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Created" }), _jsx("th", { className: "px-4 py-3 text-center", children: "Actions" })] }) }), _jsx("tbody", { children: isLoading && users.length === 0 ? (
371
377
  // Loading skeleton
372
378
  Array.from({ length: 5 }).map((_, i) => (_jsx("tr", { className: "admin-table-row", children: _jsx("td", { className: "px-4 py-3", colSpan: 7, children: _jsx("div", { className: "admin-skeleton admin-skeleton-md w-full rounded" }) }) }, `skeleton-${i}`)))) : users.length === 0 ? (_jsx("tr", { children: _jsxs("td", { className: "px-4 py-12 text-center text-sm admin-text-muted", colSpan: 7, children: [_jsx(UserCheck, { className: "h-8 w-8 mx-auto mb-2 opacity-40" }), "No users match your filters."] }) })) : (users.map((user) => {
373
379
  const perms = rowPermissions.get(user.id) ?? {
@@ -1 +1 @@
1
- {"version":3,"file":"UsersTable.js","sourceRoot":"","sources":["../../../src/admin/components/UsersTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UsersTable.js","sourceRoot":"","sources":["../../../src/admin/components/UsersTable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
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
+ /** Language being edited — new-block scaffolds localize into it. */
15
+ locale?: string;
16
+ disabled?: boolean;
17
+ }
18
+ export declare function BlocksEditor({ blocks, onChange, slots, variables, locale, disabled }: BlocksEditorProps): import("react/jsx-runtime").JSX.Element;
19
+ //# 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,EAAkB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAA;AASxE,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,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AA8QD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAiHvG"}
@@ -0,0 +1,117 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ /**
4
+ * @rovela/sdk/admin/components/emails/BlocksEditor
5
+ *
6
+ * The email body editor (Phase D2): a Klaviyo-style vertical block stack.
7
+ * Drag to reorder (dnd-kit), add static blocks (heading, text, button,
8
+ * image, badge, divider, spacer, note) or this email's dynamic data blocks
9
+ * (order items, totals, tracking…), edit each inline. Rich text loads
10
+ * TipTap lazily — the bundle only ships when this editor mounts.
11
+ *
12
+ * Emits plain EmailBlock JSON — the server sanitizes on save/preview and
13
+ * renders through the same base.ts helpers as the shipped templates.
14
+ */
15
+ import { Suspense, lazy, useMemo, useState } from 'react';
16
+ import { DndContext, closestCenter, PointerSensor, KeyboardSensor, useSensor, useSensors, } from '@dnd-kit/core';
17
+ import { SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy, useSortable, arrayMove, } from '@dnd-kit/sortable';
18
+ import { CSS } from '@dnd-kit/utilities';
19
+ import { GripVertical, Trash2, Plus, Type, Heading1, MousePointerClick, Image as ImageIcon, BadgeCheck, Minus, MoveVertical, StickyNote, Database, } from 'lucide-react';
20
+ import { localizeBlocks } from '../../../emails/blocks';
21
+ // SIZING NOTE: admin-theme.css defines `.admin-input { width:100%; height:2.5rem }`
22
+ // AFTER Tailwind's utilities in the cascade, so `w-16` / `h-8`-style classes
23
+ // on admin-input elements silently lose. Size overrides here MUST be inline
24
+ // styles.
25
+ const TextBlockEditor = lazy(() => import('./TextBlockEditor'));
26
+ let newBlockSeq = 0;
27
+ function newId() {
28
+ newBlockSeq += 1;
29
+ return `m${Date.now().toString(36)}${newBlockSeq}`;
30
+ }
31
+ const STATIC_BLOCKS = [
32
+ { type: 'heading', label: 'Heading', icon: _jsx(Heading1, { className: "h-4 w-4" }), make: () => ({ id: newId(), type: 'heading', text: 'A clear headline' }) },
33
+ { type: 'text', label: 'Text', icon: _jsx(Type, { className: "h-4 w-4" }), make: () => ({ id: newId(), type: 'text', html: '<p>Write something…</p>', align: 'center' }) },
34
+ { type: 'button', label: 'Button', icon: _jsx(MousePointerClick, { className: "h-4 w-4" }), make: () => ({ id: newId(), type: 'button', label: 'Visit the store', url: '{{shopUrl}}', style: 'filled' }) },
35
+ { type: 'image', label: 'Image', icon: _jsx(ImageIcon, { className: "h-4 w-4" }), make: () => ({ id: newId(), type: 'image', url: '', alt: '' }) },
36
+ { type: 'badge', label: 'Badge', icon: _jsx(BadgeCheck, { className: "h-4 w-4" }), make: () => ({ id: newId(), type: 'badge', text: 'Good news' }) },
37
+ { type: 'divider', label: 'Divider', icon: _jsx(Minus, { className: "h-4 w-4" }), make: () => ({ id: newId(), type: 'divider' }) },
38
+ { type: 'spacer', label: 'Spacer', icon: _jsx(MoveVertical, { className: "h-4 w-4" }), make: () => ({ id: newId(), type: 'spacer', size: 'md' }) },
39
+ { type: 'note', label: 'Note box', icon: _jsx(StickyNote, { className: "h-4 w-4" }), make: () => ({ id: newId(), type: 'note', html: '<p>A short highlighted note.</p>' }) },
40
+ ];
41
+ const BLOCK_LABELS = {
42
+ heading: 'Heading',
43
+ text: 'Text',
44
+ button: 'Button',
45
+ image: 'Image',
46
+ badge: 'Badge',
47
+ divider: 'Divider',
48
+ spacer: 'Spacer',
49
+ note: 'Note box',
50
+ dynamic: 'Data block',
51
+ };
52
+ // =============================================================================
53
+ // Per-block inline editors
54
+ // =============================================================================
55
+ function BlockBody({ block, slots, disabled, onPatch, }) {
56
+ switch (block.type) {
57
+ case 'heading':
58
+ return (_jsx("input", { className: "admin-input w-full font-semibold", value: block.text, disabled: disabled, onChange: (e) => onPatch({ text: e.target.value }) }));
59
+ case 'text':
60
+ case 'note': {
61
+ const isText = block.type === 'text';
62
+ return (_jsxs("div", { className: "space-y-1.5", children: [_jsx(Suspense, { fallback: _jsx("div", { className: "h-[104px] animate-pulse rounded-md bg-[hsl(var(--admin-muted))]" }), children: _jsx(TextBlockEditor, { value: block.html, disabled: disabled, onChange: (html) => onPatch({ html }) }) }), isText && (_jsxs("select", { className: "admin-input text-xs", style: { width: '9rem' }, value: block.align ?? 'center', disabled: disabled, onChange: (e) => onPatch({ align: e.target.value }), "aria-label": "Text alignment", children: [_jsx("option", { value: "center", children: "Centered" }), _jsx("option", { value: "left", children: "Left aligned" })] }))] }));
63
+ }
64
+ case 'button':
65
+ return (_jsxs("div", { className: "space-y-1.5", children: [_jsx("input", { className: "admin-input w-full", value: block.label, disabled: disabled, placeholder: "Button text", onChange: (e) => onPatch({ label: e.target.value }) }), _jsxs("div", { className: "flex gap-1.5", children: [_jsx("input", { className: "admin-input w-full", value: block.url, disabled: disabled, placeholder: "https://\u2026 or {{shopUrl}}", onChange: (e) => onPatch({ url: e.target.value }) }), _jsxs("select", { className: "admin-input shrink-0 text-xs", style: { width: '6.5rem' }, value: block.style ?? 'filled', disabled: disabled, onChange: (e) => onPatch({ style: e.target.value }), "aria-label": "Button style", children: [_jsx("option", { value: "filled", children: "Filled" }), _jsx("option", { value: "outline", children: "Outline" })] })] })] }));
66
+ case 'image':
67
+ return (_jsxs("div", { className: "space-y-1.5", children: [_jsx("input", { className: "admin-input w-full", value: block.url, disabled: disabled, placeholder: "Image address (copy one from your Files page)", onChange: (e) => onPatch({ url: e.target.value }) }), _jsxs("div", { className: "flex gap-1.5", children: [_jsx("input", { className: "admin-input w-full", value: block.alt ?? '', disabled: disabled, placeholder: "Describe the image (alt text)", onChange: (e) => onPatch({ alt: e.target.value }) }), _jsx("input", { className: "admin-input shrink-0", style: { width: '6rem' }, type: "number", min: 40, max: 600, value: block.width ?? '', disabled: disabled, placeholder: "Width", onChange: (e) => onPatch({ width: e.target.value ? Number(e.target.value) : undefined }), "aria-label": "Image width in pixels" })] }), block.url && (
68
+ // eslint-disable-next-line @next/next/no-img-element
69
+ _jsx("img", { src: block.url, alt: "", className: "max-h-28 rounded-md border border-[hsl(var(--admin-border))]" }))] }));
70
+ case 'badge':
71
+ return (_jsxs("div", { className: "flex gap-1.5", children: [_jsx("input", { className: "admin-input w-full", value: block.text, disabled: disabled, onChange: (e) => onPatch({ text: e.target.value }) }), _jsx("input", { className: "admin-input shrink-0 text-center", style: { width: '4rem' }, value: block.emoji ?? '', disabled: disabled, placeholder: "\u2713", maxLength: 4, onChange: (e) => onPatch({ emoji: e.target.value || undefined }), "aria-label": "Badge emoji" })] }));
72
+ case 'spacer':
73
+ return (_jsxs("select", { className: "admin-input text-xs", style: { width: '8rem' }, value: block.size ?? 'md', disabled: disabled, onChange: (e) => onPatch({ size: e.target.value }), "aria-label": "Spacer size", children: [_jsx("option", { value: "sm", children: "Small" }), _jsx("option", { value: "md", children: "Medium" }), _jsx("option", { value: "lg", children: "Large" })] }));
74
+ case 'divider':
75
+ return _jsx("div", { className: "border-t border-dashed border-[hsl(var(--admin-border))]" });
76
+ case 'dynamic': {
77
+ const meta = slots.find((s) => s.key === block.slot);
78
+ return (_jsx("p", { className: "text-xs text-[hsl(var(--admin-foreground-muted))]", children: meta?.description ?? 'Filled automatically from real data at send time.' }));
79
+ }
80
+ }
81
+ }
82
+ // =============================================================================
83
+ // Sortable row
84
+ // =============================================================================
85
+ function SortableBlockRow({ block, slots, disabled, onPatch, onRemove, }) {
86
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: block.id });
87
+ const slotMeta = block.type === 'dynamic' ? slots.find((s) => s.key === block.slot) : null;
88
+ const label = block.type === 'dynamic' ? (slotMeta?.label ?? 'Data block') : BLOCK_LABELS[block.type];
89
+ return (_jsxs("div", { ref: setNodeRef, style: { transform: CSS.Transform.toString(transform), transition }, className: `rounded-lg border border-[hsl(var(--admin-border))] bg-[hsl(var(--admin-card))] ${isDragging ? 'z-10 opacity-80 shadow-lg' : ''}`, children: [_jsxs("div", { className: "flex items-center gap-1.5 border-b border-[hsl(var(--admin-border))]/60 px-2 py-1.5", children: [_jsx("button", { type: "button", ...attributes, ...listeners, disabled: disabled, className: "cursor-grab touch-none text-[hsl(var(--admin-foreground-subtle))] hover:text-[hsl(var(--admin-foreground))]", "aria-label": `Reorder ${label}`, children: _jsx(GripVertical, { className: "h-4 w-4" }) }), _jsxs("span", { className: "inline-flex items-center gap-1 text-xs font-semibold text-[hsl(var(--admin-foreground-muted))]", children: [block.type === 'dynamic' && _jsx(Database, { className: "h-3 w-3" }), label] }), block.type === 'dynamic' && (_jsx("span", { className: "admin-badge admin-badge-neutral !py-0 text-[10px]", children: "auto-filled" })), _jsx("button", { type: "button", onClick: onRemove, disabled: disabled, className: "ml-auto text-[hsl(var(--admin-foreground-subtle))] hover:text-red-500", "aria-label": `Remove ${label}`, children: _jsx(Trash2, { className: "h-3.5 w-3.5" }) })] }), _jsx("div", { className: "px-2.5 py-2", children: _jsx(BlockBody, { block: block, slots: slots, disabled: disabled, onPatch: onPatch }) })] }));
90
+ }
91
+ // =============================================================================
92
+ // Editor
93
+ // =============================================================================
94
+ export function BlocksEditor({ blocks, onChange, slots, variables, locale, disabled }) {
95
+ const [addOpen, setAddOpen] = useState(false);
96
+ const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 4 } }), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }));
97
+ const ids = useMemo(() => blocks.map((b) => b.id), [blocks]);
98
+ const handleDragEnd = (event) => {
99
+ const { active, over } = event;
100
+ if (!over || active.id === over.id)
101
+ return;
102
+ const from = blocks.findIndex((b) => b.id === active.id);
103
+ const to = blocks.findIndex((b) => b.id === over.id);
104
+ if (from === -1 || to === -1)
105
+ return;
106
+ onChange(arrayMove(blocks, from, to));
107
+ };
108
+ const patchBlock = (id, patch) => onChange(blocks.map((b) => (b.id === id ? { ...b, ...patch } : b)));
109
+ const addBlock = (block) => {
110
+ // Scaffold copy in the language being edited.
111
+ const [localized] = localizeBlocks([block], locale);
112
+ onChange([...blocks, localized]);
113
+ setAddOpen(false);
114
+ };
115
+ return (_jsxs("div", { className: "space-y-2", children: [_jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { items: ids, strategy: verticalListSortingStrategy, children: _jsx("div", { className: "space-y-2", children: blocks.map((block) => (_jsx(SortableBlockRow, { block: block, slots: slots, disabled: disabled, onPatch: (patch) => patchBlock(block.id, patch), onRemove: () => onChange(blocks.filter((b) => b.id !== block.id)) }, block.id))) }) }) }), blocks.length === 0 && (_jsx("p", { className: "rounded-lg border border-dashed border-[hsl(var(--admin-border))] px-3 py-4 text-center text-sm text-[hsl(var(--admin-foreground-muted))]", children: "No blocks yet \u2014 add your first one below." })), _jsxs("div", { children: [_jsxs("button", { type: "button", onClick: () => setAddOpen((o) => !o), disabled: disabled, className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1.5", children: [_jsx(Plus, { className: "h-3.5 w-3.5" }), " Add block"] }), addOpen && (_jsxs("div", { className: "mt-2 rounded-lg border border-[hsl(var(--admin-border))] bg-[hsl(var(--admin-card))] p-2", children: [_jsx("p", { className: "mb-1 px-1 text-[10px] font-semibold uppercase tracking-wide text-[hsl(var(--admin-foreground-subtle))]", children: "Content" }), _jsx("div", { className: "grid grid-cols-2 gap-1", children: STATIC_BLOCKS.map((s) => (_jsxs("button", { type: "button", onClick: () => addBlock(s.make()), className: "flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm hover:bg-[hsl(var(--admin-muted))]", children: [_jsx("span", { className: "text-[hsl(var(--admin-foreground-muted))]", children: s.icon }), s.label] }, s.type))) }), slots.length > 0 && (_jsxs(_Fragment, { children: [_jsx("p", { className: "mb-1 mt-2 px-1 text-[10px] font-semibold uppercase tracking-wide text-[hsl(var(--admin-foreground-subtle))]", children: "Data from this email" }), _jsx("div", { className: "grid grid-cols-1 gap-1", children: slots.map((s) => (_jsxs("button", { type: "button", onClick: () => addBlock({ id: newId(), type: 'dynamic', slot: s.key }), className: "flex items-start gap-2 rounded-md px-2 py-1.5 text-left hover:bg-[hsl(var(--admin-muted))]", children: [_jsx(Database, { className: "mt-0.5 h-3.5 w-3.5 shrink-0 text-[hsl(var(--admin-foreground-muted))]" }), _jsxs("span", { children: [_jsx("span", { className: "block text-sm", children: s.label }), _jsx("span", { className: "block text-xs text-[hsl(var(--admin-foreground-muted))]", children: s.description })] })] }, s.key))) })] }))] }))] }), variables.length > 0 && (_jsxs("p", { className: "text-xs text-[hsl(var(--admin-foreground-subtle))]", children: ["Available anywhere in your text: ", variables.map((v) => `{{${v}}}`).join(' · ')] }))] }));
116
+ }
117
+ //# sourceMappingURL=BlocksEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlocksEditor.js","sourceRoot":"","sources":["../../../../src/admin/components/emails/BlocksEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface CustomerPickerProps {
2
+ onPick: (customer: {
3
+ email: string;
4
+ name: string;
5
+ }) => void;
6
+ disabled?: boolean;
7
+ }
8
+ export declare function CustomerPicker({ onPick, disabled }: CustomerPickerProps): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=CustomerPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomerPicker.d.ts","sourceRoot":"","sources":["../../../../src/admin/components/emails/CustomerPicker.tsx"],"names":[],"mappings":"AAqBA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CA0FvE"}
@@ -0,0 +1,59 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * @rovela/sdk/admin/components/emails/CustomerPicker
5
+ *
6
+ * Debounced search over the store's customers (GET /api/admin/customers —
7
+ * name/email matching, customers.read) for the custom-email "Send to a
8
+ * customer" flow. Picking a customer fills email + first name; a manual
9
+ * email entry stays available below for anyone not in the customer list.
10
+ */
11
+ import { useEffect, useRef, useState } from 'react';
12
+ import { Search, UserRound } from 'lucide-react';
13
+ export function CustomerPicker({ onPick, disabled }) {
14
+ const [query, setQuery] = useState('');
15
+ const [hits, setHits] = useState([]);
16
+ const [isSearching, setIsSearching] = useState(false);
17
+ const [open, setOpen] = useState(false);
18
+ const abortRef = useRef(null);
19
+ // Pattern C — populate state from async-loaded data (debounced search).
20
+ useEffect(() => {
21
+ const q = query.trim();
22
+ if (q.length < 2) {
23
+ setHits([]);
24
+ return;
25
+ }
26
+ const handle = window.setTimeout(async () => {
27
+ abortRef.current?.abort();
28
+ const controller = new AbortController();
29
+ abortRef.current = controller;
30
+ setIsSearching(true);
31
+ try {
32
+ const res = await fetch(`/api/admin/customers?search=${encodeURIComponent(q)}&limit=6`, {
33
+ signal: controller.signal,
34
+ });
35
+ if (!res.ok)
36
+ return;
37
+ const json = (await res.json());
38
+ setHits((json.data ?? json.customers ?? []).slice(0, 6));
39
+ setOpen(true);
40
+ }
41
+ catch {
42
+ // aborted or transient — keep prior results
43
+ }
44
+ finally {
45
+ if (abortRef.current === controller)
46
+ setIsSearching(false);
47
+ }
48
+ }, 300);
49
+ return () => window.clearTimeout(handle);
50
+ }, [query]);
51
+ const displayName = (c) => [c.firstName, c.lastName].filter(Boolean).join(' ').trim();
52
+ return (_jsxs("div", { className: "relative", children: [_jsxs("div", { className: "relative", children: [_jsx(Search, { className: "pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-[hsl(var(--admin-foreground-subtle))]" }), _jsx("input", { className: "admin-input w-full", style: { paddingLeft: '2rem' }, value: query, disabled: disabled, onChange: (e) => setQuery(e.target.value), onFocus: () => hits.length > 0 && setOpen(true), onBlur: () => window.setTimeout(() => setOpen(false), 150), placeholder: "Search your customers by name or email\u2026" })] }), isSearching && (_jsx("p", { className: "mt-1 text-xs text-[hsl(var(--admin-foreground-subtle))]", children: "Searching\u2026" })), open && hits.length > 0 && (_jsx("div", { className: "absolute left-0 right-0 top-full z-20 mt-1 overflow-hidden rounded-lg border border-[hsl(var(--admin-border))] bg-[hsl(var(--admin-card))] py-1 shadow-lg", children: hits.map((c) => (_jsxs("button", { type: "button", onMouseDown: (e) => e.preventDefault(), onClick: () => {
53
+ onPick({ email: c.email, name: c.firstName ?? '' });
54
+ setQuery('');
55
+ setHits([]);
56
+ setOpen(false);
57
+ }, className: "flex w-full items-center gap-2 px-3 py-1.5 text-left hover:bg-[hsl(var(--admin-muted))]", children: [_jsx(UserRound, { className: "h-3.5 w-3.5 shrink-0 text-[hsl(var(--admin-foreground-muted))]" }), _jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block truncate text-sm", children: displayName(c) || c.email }), displayName(c) && (_jsx("span", { className: "block truncate text-xs text-[hsl(var(--admin-foreground-muted))]", children: c.email }))] })] }, c.id))) })), open && !isSearching && query.trim().length >= 2 && hits.length === 0 && (_jsx("p", { className: "mt-1 text-xs text-[hsl(var(--admin-foreground-muted))]", children: "No customer matches \u2014 you can enter an email below." }))] }));
58
+ }
59
+ //# sourceMappingURL=CustomerPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomerPicker.js","sourceRoot":"","sources":["../../../../src/admin/components/emails/CustomerPicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface EmailPreviewPaneProps {
2
+ subject: string;
3
+ html: string;
4
+ isLoading: boolean;
5
+ width: 'desktop' | 'mobile';
6
+ onWidthChange: (w: 'desktop' | 'mobile') => void;
7
+ /** From-line identity (inbox chrome). */
8
+ fromName: string;
9
+ fromEmail?: string | null;
10
+ /** To-line — the sample recipient. */
11
+ toLine?: string;
12
+ }
13
+ export declare function EmailPreviewPane({ subject, html, isLoading, width, onWidthChange, fromName, fromEmail, toLine, }: EmailPreviewPaneProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=EmailPreviewPane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailPreviewPane.d.ts","sourceRoot":"","sources":["../../../../src/admin/components/emails/EmailPreviewPane.tsx"],"names":[],"mappings":"AAqBA,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC3B,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAA;IAChD,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,IAAI,EACJ,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,SAAS,EACT,MAAyC,GAC1C,EAAE,qBAAqB,2CA2HvB"}
@@ -0,0 +1,63 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * @rovela/sdk/admin/components/emails/EmailPreviewPane
5
+ *
6
+ * The email preview surface:
7
+ * - inbox-style header (avatar, From/To, live subject) so what the merchant
8
+ * sees reads like the customer's inbox, not a raw HTML dump;
9
+ * - a DOUBLE-BUFFERED iframe pair with an opacity crossfade — updates morph
10
+ * instead of flashing white (srcDoc swaps reload the frame, so the new
11
+ * render loads invisibly in the inactive buffer and fades in on load);
12
+ * - desktop = full pane width (the email's own background owns the canvas
13
+ * edge-to-edge, no banding), mobile = a centered 390px device frame.
14
+ *
15
+ * The preview has NO language control of its own — the editor's single
16
+ * Language selector drives both the content being edited and this render.
17
+ */
18
+ import { useEffect, useRef, useState } from 'react';
19
+ import { Monitor, Smartphone } from 'lucide-react';
20
+ export function EmailPreviewPane({ subject, html, isLoading, width, onWidthChange, fromName, fromEmail, toLine = 'Alex Martin <alex@example.com>', }) {
21
+ // Double buffer: new html renders into the INACTIVE iframe; its onLoad
22
+ // flips the crossfade. Rapid updates just overwrite the inactive buffer —
23
+ // the latest-html guard keeps stale loads from flipping early.
24
+ const [buffers, setBuffers] = useState({ a: '', b: '' });
25
+ const [active, setActive] = useState('a');
26
+ const latestHtml = useRef('');
27
+ const activeRef = useRef('a');
28
+ activeRef.current = active;
29
+ // Pattern A — reset internal state on prop change.
30
+ useEffect(() => {
31
+ if (!html || html === latestHtml.current)
32
+ return;
33
+ latestHtml.current = html;
34
+ if (!buffers.a && !buffers.b) {
35
+ // First render: straight into the active buffer, no fade.
36
+ setBuffers((prev) => ({ ...prev, [activeRef.current]: html }));
37
+ return;
38
+ }
39
+ const inactive = activeRef.current === 'a' ? 'b' : 'a';
40
+ setBuffers((prev) => ({ ...prev, [inactive]: html }));
41
+ // eslint-disable-next-line react-hooks/exhaustive-deps
42
+ }, [html]);
43
+ const onFrameLoad = (which) => {
44
+ if (which === activeRef.current)
45
+ return;
46
+ if (buffers[which] !== latestHtml.current)
47
+ return; // stale load
48
+ setActive(which);
49
+ };
50
+ const frame = (which) => (_jsx("iframe", { title: `Email preview ${which}`, srcDoc: buffers[which] || '<p></p>', sandbox: "", onLoad: () => onFrameLoad(which), className: "absolute inset-0 h-full w-full border-0 transition-opacity duration-200", style: { opacity: active === which && buffers[which] ? 1 : 0, pointerEvents: active === which ? 'auto' : 'none' } }, which));
51
+ const initial = (fromName || 'S').trim().charAt(0).toUpperCase();
52
+ // Resend-style senders are already "Name <email>" — extract the bare
53
+ // address so the From line never doubles the display name.
54
+ const bareFromEmail = fromEmail ? (/<([^>]+)>/.exec(fromEmail)?.[1] ?? fromEmail) : null;
55
+ const empty = !buffers.a && !buffers.b;
56
+ return (
57
+ // Sticky on desktop: the editing column grows long (block lists, theme
58
+ // groups) — the canvas is the whole point of live editing, so it stays
59
+ // pinned while the controls scroll. Normal flow on the stacked mobile
60
+ // layout, where sticky would trap the preview above the controls.
61
+ _jsxs("div", { className: "min-w-0 flex-1 lg:sticky lg:top-4 lg:self-start", 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", isLoading && _jsx("span", { className: "ml-2 font-normal normal-case text-[hsl(var(--admin-foreground-subtle))]", children: "updating\u2026" })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("button", { type: "button", onClick: () => onWidthChange('desktop'), className: `inline-flex h-8 w-8 items-center justify-center rounded-md border border-[hsl(var(--admin-border))] ${width === 'desktop' ? 'bg-[hsl(var(--admin-muted))]' : ''}`, "aria-label": "Desktop width", children: _jsx(Monitor, { className: "h-4 w-4" }) }), _jsx("button", { type: "button", onClick: () => onWidthChange('mobile'), className: `inline-flex h-8 w-8 items-center justify-center rounded-md border border-[hsl(var(--admin-border))] ${width === 'mobile' ? 'bg-[hsl(var(--admin-muted))]' : ''}`, "aria-label": "Mobile width", children: _jsx(Smartphone, { className: "h-4 w-4" }) })] })] }), _jsxs("div", { className: "overflow-hidden rounded-xl border border-[hsl(var(--admin-border))]", children: [_jsxs("div", { className: "flex items-start gap-3 border-b border-[hsl(var(--admin-border))] bg-[hsl(var(--admin-card))] px-4 py-3", children: [_jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-[hsl(var(--admin-primary))] text-sm font-bold text-white", children: initial }), _jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "truncate text-sm font-semibold", children: subject || '—' }), _jsxs("p", { className: "truncate text-xs text-[hsl(var(--admin-foreground-muted))]", children: [fromName, bareFromEmail ? ` <${bareFromEmail}>` : '', _jsx("span", { className: "mx-1.5 text-[hsl(var(--admin-foreground-subtle))]", children: "to" }), toLine] })] })] }), width === 'desktop' ? (_jsxs("div", { className: "relative h-[620px]", children: [frame('a'), frame('b'), empty && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center text-sm text-[hsl(var(--admin-foreground-muted))]", children: "Loading preview\u2026" }))] })) : (_jsx("div", { className: "flex justify-center bg-[hsl(var(--admin-muted))] py-6", style: { backgroundImage: 'radial-gradient(hsl(var(--admin-border)) 1px, transparent 1px)', backgroundSize: '16px 16px' }, children: _jsxs("div", { className: "relative h-[620px] w-[390px] overflow-hidden rounded-[20px] border-4 border-[hsl(var(--admin-foreground))]/80 shadow-xl", children: [frame('a'), frame('b'), empty && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-[hsl(var(--admin-card))] text-sm text-[hsl(var(--admin-foreground-muted))]", children: "Loading preview\u2026" }))] }) }))] })] }));
62
+ }
63
+ //# sourceMappingURL=EmailPreviewPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailPreviewPane.js","sourceRoot":"","sources":["../../../../src/admin/components/emails/EmailPreviewPane.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface ThemeDraft {
2
+ primaryColor?: string;
3
+ backgroundColor?: string;
4
+ cardColor?: string;
5
+ textColor?: string;
6
+ headingFont?: string;
7
+ bodyFont?: string;
8
+ fontName?: string;
9
+ buttonRadius?: 'sm' | 'md' | 'full';
10
+ cardRadius?: 'sm' | 'md' | 'lg';
11
+ logoSize?: 'sm' | 'md' | 'lg';
12
+ logoAlign?: 'left' | 'center';
13
+ footerNote?: string;
14
+ }
15
+ export interface EmailThemePanelProps {
16
+ draft: ThemeDraft;
17
+ derived: ThemeDraft;
18
+ palette: string[];
19
+ suggestedFonts: string[];
20
+ onChange: (patch: Partial<ThemeDraft>) => void;
21
+ onSave: () => void;
22
+ onReset: () => void;
23
+ isSaving: boolean;
24
+ saveFlash: string | null;
25
+ }
26
+ export declare function EmailThemePanel({ draft, derived, palette, suggestedFonts, onChange, onSave, onReset, isSaving, saveFlash, }: EmailThemePanelProps): import("react/jsx-runtime").JSX.Element;
27
+ //# sourceMappingURL=EmailThemePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailThemePanel.d.ts","sourceRoot":"","sources":["../../../../src/admin/components/emails/EmailThemePanel.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;IACnC,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAC9C,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAgDD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,2CAsKtB"}