@rovela-ai/sdk 0.14.0 → 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 +178 -53
  104. package/dist/emails/theme.js.map +1 -1
  105. package/package.json +7 -1
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Resolution order (highest wins), cached briefly per process:
9
9
  * 1. store_settings.email_theme (admin "Emails → Theme" panel)
10
- * 2. brand-derived defaults (blueprint primary color + body font)
10
+ * 2. brand-derived defaults (blueprint colors + heading/body fonts)
11
11
  * 3. the shipped defaults (DEFAULT_EMAIL_STYLES)
12
12
  *
13
13
  * Branch-per-store means one store per process, so applying the theme via
@@ -18,12 +18,51 @@
18
18
  * an email is never blocked or broken by theming.
19
19
  */
20
20
  import { findSettings } from '../core/db';
21
- import { getBlueprint } from '../core/config';
22
21
  import { setEmailStyles } from './templates/base';
22
+ import { GOOGLE_FONT_NAMES } from './google-fonts';
23
+ function loadNodeBuiltin(id) {
24
+ try {
25
+ const proc = process;
26
+ if (typeof proc.getBuiltinModule === 'function') {
27
+ return proc.getBuiltinModule(id) ?? null;
28
+ }
29
+ // Bundled CJS server runtimes: an indirect require stays invisible to
30
+ // static analysis; pure ESM throws and we fail open.
31
+ return (0, eval)('require')(id);
32
+ }
33
+ catch {
34
+ return null;
35
+ }
36
+ }
37
+ let blueprintThemeCache = null;
38
+ /** Read the blueprint's theme slice from disk. Server-only; null anywhere else. */
39
+ function readBlueprintTheme() {
40
+ if (blueprintThemeCache)
41
+ return blueprintThemeCache.value;
42
+ let value = null;
43
+ try {
44
+ if (typeof window === 'undefined' && typeof process !== 'undefined' && typeof process.cwd === 'function') {
45
+ const fs = loadNodeBuiltin('node:fs');
46
+ const path = loadNodeBuiltin('node:path');
47
+ if (fs && path) {
48
+ // Same resolution as core/config.ts getBlueprintPath() — keep in sync.
49
+ const blueprintPath = process.env.ROVELA_BLUEPRINT_PATH || path.join(process.cwd(), '.rovela/blueprint.json');
50
+ if (fs.existsSync(blueprintPath)) {
51
+ const parsed = JSON.parse(fs.readFileSync(blueprintPath, 'utf-8'));
52
+ value = parsed?.theme ?? null;
53
+ }
54
+ }
55
+ }
56
+ }
57
+ catch {
58
+ // No blueprint / unreadable — shipped defaults apply.
59
+ }
60
+ blueprintThemeCache = { value };
61
+ return value;
62
+ }
23
63
  /**
24
- * Curated email-safe fonts. Each loads as a Google Font (honored by Apple
25
- * Mail and some clients) with a resilient system fallback stack everywhere
26
- * else — the same progressive strategy the templates always used.
64
+ * Suggested fonts, shown first in the picker. The full catalog
65
+ * (GOOGLE_FONT_NAMES, ~1900 fonts) is valid everywhere a font is accepted.
27
66
  */
28
67
  export const EMAIL_FONTS = [
29
68
  { name: 'Plus Jakarta Sans', stack: "'Plus Jakarta Sans', system-ui, sans-serif" },
@@ -35,43 +74,93 @@ export const EMAIL_FONTS = [
35
74
  { name: 'Playfair Display', stack: "'Playfair Display', Georgia, serif" },
36
75
  { name: 'Georgia', stack: 'Georgia, serif' },
37
76
  ];
77
+ /**
78
+ * Well-known serif + mono Google families, so real email clients that don't
79
+ * load webfonts degrade into the right typographic family instead of a
80
+ * generic sans. Anything not listed falls back to the system sans stack —
81
+ * a safe default for the long tail.
82
+ */
83
+ const SERIF_FONTS = new Set([
84
+ 'Lora', 'Playfair Display', 'Merriweather', 'PT Serif', 'Libre Baskerville',
85
+ 'Crimson Text', 'Crimson Pro', 'EB Garamond', 'Cormorant', 'Cormorant Garamond',
86
+ 'Source Serif 4', 'Source Serif Pro', 'Noto Serif', 'Roboto Serif', 'IBM Plex Serif',
87
+ 'Bitter', 'Domine', 'Spectral', 'Zilla Slab', 'Roboto Slab', 'Arvo', 'Vollkorn',
88
+ 'Cardo', 'Neuton', 'Alegreya', 'Frank Ruhl Libre', 'Fraunces', 'Newsreader',
89
+ 'Literata', 'Petrona', 'Bodoni Moda', 'DM Serif Display', 'DM Serif Text',
90
+ 'Abril Fatface', 'Georgia', 'Old Standard TT', 'Prata', 'Marcellus', 'Cinzel',
91
+ 'Gelasio', 'Tinos', 'STIX Two Text', 'Besley', 'Brygada 1918', 'Piazzolla',
92
+ ]);
93
+ const MONO_FONTS = new Set([
94
+ 'Roboto Mono', 'JetBrains Mono', 'IBM Plex Mono', 'Source Code Pro', 'Fira Code',
95
+ 'Fira Mono', 'Space Mono', 'Inconsolata', 'Ubuntu Mono', 'Courier Prime',
96
+ 'DM Mono', 'Overpass Mono', 'PT Mono', 'Noto Sans Mono', 'Red Hat Mono',
97
+ ]);
98
+ const FONT_SET = new Set(GOOGLE_FONT_NAMES);
99
+ export function isEmailFont(name) {
100
+ return typeof name === 'string' && FONT_SET.has(name);
101
+ }
102
+ /** CSS font-family stack for a catalog font, with the right fallback family. */
103
+ export function fontStack(name) {
104
+ const quoted = name.includes(' ') || name.includes("'") ? `'${name.replace(/'/g, '')}'` : name;
105
+ if (SERIF_FONTS.has(name))
106
+ return `${quoted}, Georgia, 'Times New Roman', serif`;
107
+ if (MONO_FONTS.has(name))
108
+ return `${quoted}, 'Courier New', monospace`;
109
+ return `${quoted}, system-ui, -apple-system, 'Segoe UI', sans-serif`;
110
+ }
38
111
  const BUTTON_RADIUS_PX = {
39
112
  sm: '6px',
40
113
  md: '12px',
41
114
  full: '9999px',
42
115
  };
116
+ const CARD_RADIUS_PX = {
117
+ sm: '8px',
118
+ md: '16px',
119
+ lg: '24px',
120
+ };
121
+ const LOGO_WIDTH_PX = {
122
+ sm: '120px',
123
+ md: '180px',
124
+ lg: '260px',
125
+ };
43
126
  const HEX_RE = /^#[0-9a-fA-F]{6}$/;
44
- export function isValidEmailTheme(raw) {
45
- if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
46
- return false;
47
- const t = raw;
48
- if (t.primaryColor !== undefined && !(typeof t.primaryColor === 'string' && HEX_RE.test(t.primaryColor)))
49
- return false;
50
- if (t.backgroundColor !== undefined && !(typeof t.backgroundColor === 'string' && HEX_RE.test(t.backgroundColor)))
51
- return false;
52
- if (t.fontName !== undefined && !EMAIL_FONTS.some((f) => f.name === t.fontName))
53
- return false;
54
- if (t.buttonRadius !== undefined && !['sm', 'md', 'full'].includes(t.buttonRadius))
55
- return false;
56
- if (t.footerNote !== undefined && typeof t.footerNote !== 'string')
57
- return false;
58
- return true;
59
- }
60
- /** Sanitize an incoming theme (admin writes) — keeps only valid fields. */
127
+ /** Sanitize an incoming theme (admin writes + reads) — keeps only valid fields. */
61
128
  export function sanitizeEmailTheme(raw) {
62
129
  if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
63
130
  return {};
64
131
  const t = raw;
65
132
  const out = {};
66
- if (typeof t.primaryColor === 'string' && HEX_RE.test(t.primaryColor))
67
- out.primaryColor = t.primaryColor;
68
- if (typeof t.backgroundColor === 'string' && HEX_RE.test(t.backgroundColor))
69
- out.backgroundColor = t.backgroundColor;
70
- if (typeof t.fontName === 'string' && EMAIL_FONTS.some((f) => f.name === t.fontName))
133
+ const hex = (v) => typeof v === 'string' && HEX_RE.test(v) ? v : undefined;
134
+ const color = hex(t.primaryColor);
135
+ if (color)
136
+ out.primaryColor = color;
137
+ const bg = hex(t.backgroundColor);
138
+ if (bg)
139
+ out.backgroundColor = bg;
140
+ const card = hex(t.cardColor);
141
+ if (card)
142
+ out.cardColor = card;
143
+ const text = hex(t.textColor);
144
+ if (text)
145
+ out.textColor = text;
146
+ if (isEmailFont(t.headingFont))
147
+ out.headingFont = t.headingFont;
148
+ if (isEmailFont(t.bodyFont))
149
+ out.bodyFont = t.bodyFont;
150
+ if (isEmailFont(t.fontName))
71
151
  out.fontName = t.fontName;
72
152
  if (typeof t.buttonRadius === 'string' && ['sm', 'md', 'full'].includes(t.buttonRadius)) {
73
153
  out.buttonRadius = t.buttonRadius;
74
154
  }
155
+ if (typeof t.cardRadius === 'string' && ['sm', 'md', 'lg'].includes(t.cardRadius)) {
156
+ out.cardRadius = t.cardRadius;
157
+ }
158
+ if (typeof t.logoSize === 'string' && ['sm', 'md', 'lg'].includes(t.logoSize)) {
159
+ out.logoSize = t.logoSize;
160
+ }
161
+ if (typeof t.logoAlign === 'string' && ['left', 'center'].includes(t.logoAlign)) {
162
+ out.logoAlign = t.logoAlign;
163
+ }
75
164
  if (typeof t.footerNote === 'string')
76
165
  out.footerNote = t.footerNote.slice(0, 300);
77
166
  return out;
@@ -80,32 +169,55 @@ export function sanitizeEmailTheme(raw) {
80
169
  // Brand derivation (the zero-config default)
81
170
  // =============================================================================
82
171
  /**
83
- * Derive the theme from the store's brand: blueprint primary color + body
84
- * font (when that font is in the email-safe list). This is what makes every
85
- * store's emails brand-matched with no merchant action.
172
+ * Derive the theme from the store's brand: blueprint primary color +
173
+ * heading/body fonts (when they exist in the Google catalog). This is what
174
+ * makes every store's emails brand-matched with no merchant action.
86
175
  */
87
176
  export function deriveBrandEmailTheme() {
88
177
  const derived = {};
89
- try {
90
- const blueprint = getBlueprint();
91
- const primary = blueprint?.theme?.colors?.primary?.['500'];
92
- if (typeof primary === 'string' && HEX_RE.test(primary)) {
93
- derived.primaryColor = primary;
94
- }
95
- // Blueprint fonts use next/font underscore form ('Work_Sans').
96
- const bodyFontRaw = blueprint?.theme
97
- ?.typography?.body?.name;
98
- if (typeof bodyFontRaw === 'string') {
99
- const bodyFont = bodyFontRaw.replace(/_/g, ' ');
100
- if (EMAIL_FONTS.some((f) => f.name === bodyFont))
101
- derived.fontName = bodyFont;
102
- }
103
- }
104
- catch {
105
- // No blueprint (imported stores, early boot) — shipped defaults apply.
178
+ const theme = readBlueprintTheme();
179
+ if (!theme)
180
+ return derived;
181
+ const primary = theme.colors?.primary?.['500'];
182
+ if (typeof primary === 'string' && HEX_RE.test(primary)) {
183
+ derived.primaryColor = primary;
106
184
  }
185
+ // Blueprint fonts use next/font underscore form ('Work_Sans').
186
+ const font = (raw) => {
187
+ if (typeof raw !== 'string')
188
+ return undefined;
189
+ const name = raw.replace(/_/g, ' ');
190
+ return isEmailFont(name) ? name : undefined;
191
+ };
192
+ const headingFont = font(theme.typography?.heading?.name);
193
+ if (headingFont)
194
+ derived.headingFont = headingFont;
195
+ const bodyFont = font(theme.typography?.body?.name);
196
+ if (bodyFont)
197
+ derived.bodyFont = bodyFont;
107
198
  return derived;
108
199
  }
200
+ /**
201
+ * Brand color swatches for the admin theme panel — one click puts the store
202
+ * on-brand. Unique, ordered by prominence.
203
+ */
204
+ export function deriveBrandPalette() {
205
+ const theme = readBlueprintTheme();
206
+ if (!theme?.colors)
207
+ return [];
208
+ const out = [];
209
+ const push = (v) => {
210
+ if (typeof v === 'string' && HEX_RE.test(v) && !out.includes(v))
211
+ out.push(v);
212
+ };
213
+ for (const scale of [theme.colors.primary, theme.colors.secondary, theme.colors.accent]) {
214
+ push(scale?.['500']);
215
+ push(scale?.['700']);
216
+ }
217
+ push(theme.colors.neutral?.['900']);
218
+ push(theme.colors.neutral?.['50']);
219
+ return out.slice(0, 8);
220
+ }
109
221
  // =============================================================================
110
222
  // Resolution + application (the send/preview chokepoint)
111
223
  // =============================================================================
@@ -115,15 +227,28 @@ function themeToStyles(theme) {
115
227
  styles.primaryColor = theme.primaryColor;
116
228
  if (theme.backgroundColor)
117
229
  styles.backgroundColor = theme.backgroundColor;
118
- if (theme.fontName) {
119
- const font = EMAIL_FONTS.find((f) => f.name === theme.fontName);
120
- if (font) {
121
- styles.fontName = font.name;
122
- styles.fontFamily = font.stack;
123
- }
230
+ if (theme.cardColor)
231
+ styles.cardBackground = theme.cardColor;
232
+ if (theme.textColor)
233
+ styles.textPrimary = theme.textColor;
234
+ const bodyFont = theme.bodyFont ?? theme.fontName;
235
+ if (bodyFont && isEmailFont(bodyFont)) {
236
+ styles.fontName = bodyFont;
237
+ styles.fontFamily = fontStack(bodyFont);
238
+ }
239
+ const headingFont = theme.headingFont ?? bodyFont;
240
+ if (headingFont && isEmailFont(headingFont)) {
241
+ styles.headingFontName = headingFont;
242
+ styles.headingFontFamily = fontStack(headingFont);
124
243
  }
125
244
  if (theme.buttonRadius)
126
245
  styles.buttonRadius = BUTTON_RADIUS_PX[theme.buttonRadius];
246
+ if (theme.cardRadius)
247
+ styles.cardRadius = CARD_RADIUS_PX[theme.cardRadius];
248
+ if (theme.logoSize)
249
+ styles.logoWidth = LOGO_WIDTH_PX[theme.logoSize];
250
+ if (theme.logoAlign)
251
+ styles.logoAlign = theme.logoAlign;
127
252
  if (theme.footerNote !== undefined)
128
253
  styles.footerNote = theme.footerNote;
129
254
  return styles;
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/emails/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/emails/theme.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rovela-ai/sdk",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "Rovela SDK - Pre-built e-commerce components for AI-powered store generation",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -296,7 +296,13 @@
296
296
  "dependencies": {
297
297
  "@aws-sdk/client-s3": "3.978.0",
298
298
  "@aws-sdk/s3-request-presigner": "3.978.0",
299
+ "@dnd-kit/core": "^6.3.1",
300
+ "@dnd-kit/sortable": "^10.0.0",
301
+ "@dnd-kit/utilities": "^3.2.2",
299
302
  "@neondatabase/serverless": "1.0.2",
303
+ "@tiptap/extension-link": "^3.23.6",
304
+ "@tiptap/react": "^3.23.6",
305
+ "@tiptap/starter-kit": "^3.23.6",
300
306
  "bcryptjs": "3.0.3",
301
307
  "clsx": "2.1.1",
302
308
  "drizzle-orm": "0.44.7",