@savvycal/mjml-editor 0.0.2 → 0.0.3

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.
@@ -1,7 +1,7 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import * as e from "@radix-ui/react-popover";
4
- import { cn as n } from "../../lib/utils.js";
4
+ import { cn as d } from "../../lib/utils.js";
5
5
  function m({
6
6
  ...o
7
7
  }) {
@@ -24,8 +24,8 @@ function l({
24
24
  "data-slot": "popover-content",
25
25
  align: r,
26
26
  sideOffset: a,
27
- className: n(
28
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
27
+ className: d(
28
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border border-border p-4 shadow-md outline-hidden",
29
29
  o
30
30
  ),
31
31
  ...i
@@ -1,7 +1,7 @@
1
1
  import { jsxs as u, jsx as r } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import * as o from "@radix-ui/react-scroll-area";
4
- import { cn as s } from "../../lib/utils.js";
4
+ import { cn as i } from "../../lib/utils.js";
5
5
  function h({
6
6
  className: a,
7
7
  viewportClassName: l,
@@ -14,29 +14,29 @@ function h({
14
14
  o.Root,
15
15
  {
16
16
  "data-slot": "scroll-area",
17
- className: s("relative", a),
17
+ className: i("relative", a),
18
18
  ...n,
19
19
  children: [
20
20
  /* @__PURE__ */ r(
21
21
  o.Viewport,
22
22
  {
23
23
  "data-slot": "scroll-area-viewport",
24
- className: s(
25
- "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
24
+ className: i(
25
+ "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 focus-visible:outline-ring/50",
26
26
  l
27
27
  ),
28
28
  style: t,
29
29
  children: c
30
30
  }
31
31
  ),
32
- (e === "vertical" || e === "both") && /* @__PURE__ */ r(i, { orientation: "vertical" }),
33
- (e === "horizontal" || e === "both") && /* @__PURE__ */ r(i, { orientation: "horizontal" }),
32
+ (e === "vertical" || e === "both") && /* @__PURE__ */ r(s, { orientation: "vertical" }),
33
+ (e === "horizontal" || e === "both") && /* @__PURE__ */ r(s, { orientation: "horizontal" }),
34
34
  /* @__PURE__ */ r(o.Corner, {})
35
35
  ]
36
36
  }
37
37
  );
38
38
  }
39
- function i({
39
+ function s({
40
40
  className: a,
41
41
  orientation: l = "vertical",
42
42
  ...t
@@ -46,7 +46,7 @@ function i({
46
46
  {
47
47
  "data-slot": "scroll-area-scrollbar",
48
48
  orientation: l,
49
- className: s(
49
+ className: i(
50
50
  "flex touch-none p-px transition-colors select-none",
51
51
  l === "vertical" && "h-full w-2.5 border-l border-l-transparent",
52
52
  l === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
@@ -65,5 +65,5 @@ function i({
65
65
  }
66
66
  export {
67
67
  h as ScrollArea,
68
- i as ScrollBar
68
+ s as ScrollBar
69
69
  };
@@ -48,7 +48,7 @@ function y({
48
48
  {
49
49
  "data-slot": "select-content",
50
50
  className: o(
51
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
51
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border shadow-md",
52
52
  r === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
53
53
  t
54
54
  ),
@@ -0,0 +1,365 @@
1
+ /**
2
+ * Component styles for @savvycal/mjml-editor
3
+ *
4
+ * Import this file in your app's CSS AFTER the preset and tailwindcss:
5
+ *
6
+ * @import "@savvycal/mjml-editor/preset.css";
7
+ * @import "tailwindcss";
8
+ * @import "tw-animate-css";
9
+ * @import "@savvycal/mjml-editor/components.css";
10
+ */
11
+
12
+ /* Base CSS variable defaults at :root level */
13
+ :root {
14
+ --radius: 0.5rem;
15
+
16
+ /* Core backgrounds */
17
+ --background: var(--color-white);
18
+ --background-subtle: var(--color-zinc-50);
19
+ --canvas: oklch(0.975 0.005 250);
20
+ --surface: var(--color-white);
21
+
22
+ /* Foregrounds */
23
+ --foreground: var(--color-zinc-950);
24
+ --foreground-muted: var(--color-zinc-600);
25
+ --foreground-subtle: var(--color-zinc-500);
26
+
27
+ /* Card/Popover */
28
+ --card: var(--color-white);
29
+ --card-foreground: var(--color-zinc-950);
30
+ --popover: var(--color-white);
31
+ --popover-foreground: var(--color-zinc-950);
32
+
33
+ /* Primary */
34
+ --primary: var(--color-zinc-900);
35
+ --primary-foreground: var(--color-zinc-50);
36
+
37
+ /* Secondary */
38
+ --secondary: var(--color-zinc-100);
39
+ --secondary-foreground: var(--color-zinc-900);
40
+
41
+ /* Muted */
42
+ --muted: var(--color-zinc-100);
43
+ --muted-foreground: var(--color-zinc-600);
44
+
45
+ /* Accent */
46
+ --accent: oklch(0.97 0.005 250);
47
+ --accent-foreground: var(--color-zinc-950);
48
+
49
+ /* Borders */
50
+ --border: var(--color-zinc-200);
51
+ --border-subtle: var(--color-zinc-200);
52
+ --border-strong: var(--color-zinc-300);
53
+
54
+ /* Focus/Selection */
55
+ --ring: oklch(0.55 0.15 250);
56
+ --selection: oklch(0.92 0.03 250);
57
+ --selection-foreground: oklch(0.35 0.12 250);
58
+ --input: var(--color-zinc-300);
59
+
60
+ /* Destructive */
61
+ --destructive: oklch(0.55 0.22 25);
62
+
63
+ /* Inspector */
64
+ --inspector: var(--color-zinc-50);
65
+ --inspector-header: var(--color-white);
66
+
67
+ /* Toolbar */
68
+ --toolbar: var(--color-white);
69
+ --toolbar-border: var(--color-zinc-200);
70
+
71
+ /* Block states */
72
+ --block-hover: oklch(0.97 0.02 250);
73
+ --block-selected: oklch(0.40 0.15 250);
74
+ --block-selected-bg: oklch(0.96 0.02 250);
75
+
76
+ /* Chart colors */
77
+ --chart-1: oklch(0.646 0.222 41.116);
78
+ --chart-2: oklch(0.6 0.118 184.704);
79
+ --chart-3: oklch(0.398 0.07 227.392);
80
+ --chart-4: oklch(0.828 0.189 84.429);
81
+ --chart-5: oklch(0.769 0.188 70.08);
82
+
83
+ /* Sidebar */
84
+ --sidebar: var(--color-zinc-50);
85
+ --sidebar-foreground: var(--color-zinc-950);
86
+ --sidebar-primary: var(--color-zinc-900);
87
+ --sidebar-primary-foreground: var(--color-zinc-50);
88
+ --sidebar-accent: var(--color-zinc-100);
89
+ --sidebar-accent-foreground: var(--color-zinc-900);
90
+ --sidebar-border: var(--color-zinc-200);
91
+ --sidebar-ring: oklch(0.55 0.15 250);
92
+ }
93
+
94
+ /* Dark mode at root level (for Radix UI portals that render outside .mjml-editor) */
95
+ :root.dark, .dark {
96
+ --background: var(--color-zinc-950);
97
+ --background-subtle: var(--color-zinc-900);
98
+ --canvas: oklch(0.10 0.005 250);
99
+ --surface: var(--color-zinc-800);
100
+ --foreground: var(--color-zinc-50);
101
+ --foreground-muted: var(--color-zinc-400);
102
+ --foreground-subtle: var(--color-zinc-500);
103
+ --card: var(--color-zinc-900);
104
+ --card-foreground: var(--color-zinc-50);
105
+ --popover: var(--color-zinc-900);
106
+ --popover-foreground: var(--color-zinc-50);
107
+ --primary: var(--color-zinc-50);
108
+ --primary-foreground: var(--color-zinc-950);
109
+ --secondary: var(--color-zinc-800);
110
+ --secondary-foreground: var(--color-zinc-200);
111
+ --muted: var(--color-zinc-800);
112
+ --muted-foreground: var(--color-zinc-400);
113
+ --accent: var(--color-zinc-800);
114
+ --accent-foreground: var(--color-zinc-50);
115
+ --border: var(--color-zinc-700);
116
+ --border-subtle: var(--color-zinc-800);
117
+ --border-strong: var(--color-zinc-600);
118
+ --ring: oklch(0.60 0.15 250);
119
+ --selection: oklch(0.25 0.06 250);
120
+ --selection-foreground: oklch(0.75 0.12 250);
121
+ --input: var(--color-zinc-800);
122
+ --destructive: oklch(0.60 0.22 25);
123
+ --inspector: var(--color-zinc-950);
124
+ --inspector-header: var(--color-zinc-900);
125
+ --toolbar: var(--color-zinc-950);
126
+ --toolbar-border: var(--color-zinc-800);
127
+ --block-hover: oklch(0.20 0.03 250);
128
+ --block-selected: oklch(0.50 0.15 250);
129
+ --block-selected-bg: oklch(0.22 0.04 250);
130
+ --chart-1: oklch(0.70 0.20 41);
131
+ --chart-2: oklch(0.65 0.12 185);
132
+ --chart-3: oklch(0.50 0.08 227);
133
+ --chart-4: oklch(0.80 0.17 84);
134
+ --chart-5: oklch(0.75 0.17 70);
135
+ --sidebar: var(--color-zinc-950);
136
+ --sidebar-foreground: var(--color-zinc-50);
137
+ --sidebar-primary: var(--color-zinc-50);
138
+ --sidebar-primary-foreground: var(--color-zinc-950);
139
+ --sidebar-accent: var(--color-zinc-800);
140
+ --sidebar-accent-foreground: var(--color-zinc-200);
141
+ --sidebar-border: var(--color-zinc-800);
142
+ --sidebar-ring: oklch(0.60 0.15 250);
143
+ }
144
+
145
+ /* Scoped CSS variable defaults - applied to .mjml-editor container */
146
+ .mjml-editor {
147
+ --radius: 0.5rem;
148
+
149
+ /* Core backgrounds */
150
+ --background: var(--color-white);
151
+ --background-subtle: var(--color-zinc-50);
152
+ --canvas: oklch(0.975 0.005 250);
153
+ --surface: var(--color-white);
154
+
155
+ /* Foregrounds */
156
+ --foreground: var(--color-zinc-950);
157
+ --foreground-muted: var(--color-zinc-600);
158
+ --foreground-subtle: var(--color-zinc-500);
159
+
160
+ /* Card/Popover */
161
+ --card: var(--color-white);
162
+ --card-foreground: var(--color-zinc-950);
163
+ --popover: var(--color-white);
164
+ --popover-foreground: var(--color-zinc-950);
165
+
166
+ /* Primary */
167
+ --primary: var(--color-zinc-900);
168
+ --primary-foreground: var(--color-zinc-50);
169
+
170
+ /* Secondary */
171
+ --secondary: var(--color-zinc-100);
172
+ --secondary-foreground: var(--color-zinc-900);
173
+
174
+ /* Muted */
175
+ --muted: var(--color-zinc-100);
176
+ --muted-foreground: var(--color-zinc-600);
177
+
178
+ /* Accent */
179
+ --accent: oklch(0.97 0.005 250);
180
+ --accent-foreground: var(--color-zinc-950);
181
+
182
+ /* Borders */
183
+ --border: var(--color-zinc-200);
184
+ --border-subtle: var(--color-zinc-200);
185
+ --border-strong: var(--color-zinc-300);
186
+
187
+ /* Focus/Selection */
188
+ --ring: oklch(0.55 0.15 250);
189
+ --selection: oklch(0.92 0.03 250);
190
+ --selection-foreground: oklch(0.35 0.12 250);
191
+ --input: var(--color-zinc-300);
192
+
193
+ /* Destructive */
194
+ --destructive: oklch(0.55 0.22 25);
195
+
196
+ /* Inspector */
197
+ --inspector: var(--color-zinc-50);
198
+ --inspector-header: var(--color-white);
199
+
200
+ /* Toolbar */
201
+ --toolbar: var(--color-white);
202
+ --toolbar-border: var(--color-zinc-200);
203
+
204
+ /* Block states */
205
+ --block-hover: oklch(0.97 0.02 250);
206
+ --block-selected: oklch(0.40 0.15 250);
207
+ --block-selected-bg: oklch(0.96 0.02 250);
208
+
209
+ /* Chart colors */
210
+ --chart-1: oklch(0.646 0.222 41.116);
211
+ --chart-2: oklch(0.6 0.118 184.704);
212
+ --chart-3: oklch(0.398 0.07 227.392);
213
+ --chart-4: oklch(0.828 0.189 84.429);
214
+ --chart-5: oklch(0.769 0.188 70.08);
215
+
216
+ /* Sidebar */
217
+ --sidebar: var(--color-zinc-50);
218
+ --sidebar-foreground: var(--color-zinc-950);
219
+ --sidebar-primary: var(--color-zinc-900);
220
+ --sidebar-primary-foreground: var(--color-zinc-50);
221
+ --sidebar-accent: var(--color-zinc-100);
222
+ --sidebar-accent-foreground: var(--color-zinc-900);
223
+ --sidebar-border: var(--color-zinc-200);
224
+ --sidebar-ring: oklch(0.55 0.15 250);
225
+ }
226
+
227
+ /* Dark mode - when .mjml-editor has .dark class or is inside .dark */
228
+ .mjml-editor.dark,
229
+ .dark .mjml-editor {
230
+ /* Core backgrounds */
231
+ --background: var(--color-zinc-950);
232
+ --background-subtle: var(--color-zinc-900);
233
+ --canvas: oklch(0.10 0.005 250);
234
+ --surface: var(--color-zinc-800);
235
+
236
+ /* Foregrounds */
237
+ --foreground: var(--color-zinc-50);
238
+ --foreground-muted: var(--color-zinc-400);
239
+ --foreground-subtle: var(--color-zinc-500);
240
+
241
+ /* Card/Popover */
242
+ --card: var(--color-zinc-900);
243
+ --card-foreground: var(--color-zinc-50);
244
+ --popover: var(--color-zinc-900);
245
+ --popover-foreground: var(--color-zinc-50);
246
+
247
+ /* Primary - inverted */
248
+ --primary: var(--color-zinc-50);
249
+ --primary-foreground: var(--color-zinc-950);
250
+
251
+ /* Secondary */
252
+ --secondary: var(--color-zinc-800);
253
+ --secondary-foreground: var(--color-zinc-200);
254
+
255
+ /* Muted */
256
+ --muted: var(--color-zinc-800);
257
+ --muted-foreground: var(--color-zinc-400);
258
+
259
+ /* Accent */
260
+ --accent: var(--color-zinc-800);
261
+ --accent-foreground: var(--color-zinc-50);
262
+
263
+ /* Borders */
264
+ --border: var(--color-zinc-700);
265
+ --border-subtle: var(--color-zinc-800);
266
+ --border-strong: var(--color-zinc-600);
267
+
268
+ /* Focus/Selection */
269
+ --ring: oklch(0.60 0.15 250);
270
+ --selection: oklch(0.25 0.06 250);
271
+ --selection-foreground: oklch(0.75 0.12 250);
272
+ --input: var(--color-zinc-800);
273
+
274
+ /* Destructive */
275
+ --destructive: oklch(0.60 0.22 25);
276
+
277
+ /* Inspector */
278
+ --inspector: var(--color-zinc-950);
279
+ --inspector-header: var(--color-zinc-900);
280
+
281
+ /* Toolbar */
282
+ --toolbar: var(--color-zinc-950);
283
+ --toolbar-border: var(--color-zinc-800);
284
+
285
+ /* Block states */
286
+ --block-hover: oklch(0.20 0.03 250);
287
+ --block-selected: oklch(0.50 0.15 250);
288
+ --block-selected-bg: oklch(0.22 0.04 250);
289
+
290
+ /* Chart colors - adjusted for dark bg */
291
+ --chart-1: oklch(0.70 0.20 41);
292
+ --chart-2: oklch(0.65 0.12 185);
293
+ --chart-3: oklch(0.50 0.08 227);
294
+ --chart-4: oklch(0.80 0.17 84);
295
+ --chart-5: oklch(0.75 0.17 70);
296
+
297
+ /* Sidebar */
298
+ --sidebar: var(--color-zinc-950);
299
+ --sidebar-foreground: var(--color-zinc-50);
300
+ --sidebar-primary: var(--color-zinc-50);
301
+ --sidebar-primary-foreground: var(--color-zinc-950);
302
+ --sidebar-accent: var(--color-zinc-800);
303
+ --sidebar-accent-foreground: var(--color-zinc-200);
304
+ --sidebar-border: var(--color-zinc-800);
305
+ --sidebar-ring: oklch(0.60 0.15 250);
306
+ }
307
+
308
+ /* Force light mode within .light scope (e.g., email canvas preview) */
309
+ .mjml-editor.dark .light,
310
+ .dark .mjml-editor .light {
311
+ --background: var(--color-white);
312
+ --background-subtle: var(--color-zinc-50);
313
+ --canvas: oklch(0.975 0.005 250);
314
+ --surface: var(--color-white);
315
+ --foreground: var(--color-zinc-950);
316
+ --foreground-muted: var(--color-zinc-600);
317
+ --foreground-subtle: var(--color-zinc-500);
318
+ --card: var(--color-white);
319
+ --card-foreground: var(--color-zinc-950);
320
+ --popover: var(--color-white);
321
+ --popover-foreground: var(--color-zinc-950);
322
+ --primary: var(--color-zinc-900);
323
+ --primary-foreground: var(--color-zinc-50);
324
+ --secondary: var(--color-zinc-100);
325
+ --secondary-foreground: var(--color-zinc-900);
326
+ --muted: var(--color-zinc-100);
327
+ --muted-foreground: var(--color-zinc-600);
328
+ --accent: oklch(0.97 0.005 250);
329
+ --accent-foreground: var(--color-zinc-950);
330
+ --border: var(--color-zinc-200);
331
+ --border-subtle: var(--color-zinc-200);
332
+ --border-strong: var(--color-zinc-300);
333
+ --ring: oklch(0.55 0.15 250);
334
+ --selection: oklch(0.92 0.03 250);
335
+ --selection-foreground: oklch(0.35 0.12 250);
336
+ --input: var(--color-zinc-300);
337
+ --destructive: oklch(0.55 0.22 25);
338
+ --block-hover: oklch(0.97 0.02 250);
339
+ --block-selected: oklch(0.40 0.15 250);
340
+ --block-selected-bg: oklch(0.96 0.02 250);
341
+ }
342
+
343
+ /* Tiptap Editor Styles */
344
+ .ProseMirror {
345
+ outline: none;
346
+ }
347
+
348
+ .ProseMirror p {
349
+ margin: 0;
350
+ }
351
+
352
+ .ProseMirror a {
353
+ color: inherit;
354
+ text-decoration: underline;
355
+ cursor: text;
356
+ }
357
+
358
+ /* Liquid syntax highlighting */
359
+ .liquid-highlight {
360
+ background-color: oklch(0.93 0.04 250);
361
+ border-radius: 3px;
362
+ padding: 1px 2px;
363
+ margin: 0 -2px;
364
+ pointer-events: none;
365
+ }
@@ -11,8 +11,19 @@ interface ThemeProviderProps {
11
11
  children: ReactNode;
12
12
  defaultTheme?: Theme;
13
13
  storageKey?: string;
14
+ /**
15
+ * Whether to apply the theme class to document.documentElement.
16
+ * This is needed for Radix UI portals (popovers, menus, etc.) which
17
+ * render outside the .mjml-editor container.
18
+ *
19
+ * Set to false if the host app manages document-level theme classes
20
+ * and you want to prevent conflicts.
21
+ *
22
+ * @default true
23
+ */
24
+ applyToDocument?: boolean;
14
25
  }
15
- export declare function ThemeProvider({ children, defaultTheme, storageKey, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function ThemeProvider({ children, defaultTheme, storageKey, applyToDocument, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
16
27
  export declare function useTheme(): ThemeContextValue;
17
28
  export {};
18
29
  //# sourceMappingURL=ThemeContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../src/context/ThemeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AACzC,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtC,UAAU,iBAAiB;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAsBD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAY,EACZ,UAAwB,GACzB,EAAE,kBAAkB,2CA6CpB;AAGD,wBAAgB,QAAQ,sBAMvB"}
1
+ {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../src/context/ThemeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AACzC,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtC,UAAU,iBAAiB;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAsBD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAY,EACZ,UAAwB,EACxB,eAAsB,GACvB,EAAE,kBAAkB,2CAgDpB;AAGD,wBAAgB,QAAQ,sBAMvB"}
@@ -1,53 +1,55 @@
1
1
  import { jsx as y } from "react/jsx-runtime";
2
- import { useState as i, useEffect as d, useCallback as h, useMemo as k, createContext as S, useContext as p } from "react";
3
- const a = S(null), u = "mjml-editor-theme";
4
- function E() {
2
+ import { useState as d, useEffect as h, useCallback as a, useMemo as S, createContext as E, useContext as x } from "react";
3
+ const u = E(null), l = "mjml-editor-theme";
4
+ function p() {
5
5
  return typeof window > "u" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
6
6
  }
7
- function x() {
7
+ function C() {
8
8
  if (typeof window > "u") return "system";
9
- const e = localStorage.getItem(u);
9
+ const e = localStorage.getItem(l);
10
10
  return e === "light" || e === "dark" || e === "system" ? e : "system";
11
11
  }
12
- function M({
12
+ function P({
13
13
  children: e,
14
- defaultTheme: l,
15
- storageKey: s = u
14
+ defaultTheme: f,
15
+ storageKey: s = l,
16
+ applyToDocument: m = !0
16
17
  }) {
17
- const [r, f] = i(
18
- () => l ?? x()
19
- ), [g, T] = i(E);
20
- d(() => {
21
- const t = window.matchMedia("(prefers-color-scheme: dark)"), c = (v) => {
22
- T(v.matches ? "dark" : "light");
18
+ const [n, g] = d(
19
+ () => f ?? C()
20
+ ), [T, w] = d(p);
21
+ h(() => {
22
+ const t = window.matchMedia("(prefers-color-scheme: dark)"), c = (k) => {
23
+ w(k.matches ? "dark" : "light");
23
24
  };
24
25
  return t.addEventListener("change", c), () => t.removeEventListener("change", c);
25
26
  }, []);
26
- const o = r === "system" ? g : r;
27
- d(() => {
27
+ const r = n === "system" ? T : n;
28
+ h(() => {
29
+ if (!m) return;
28
30
  const t = document.documentElement;
29
- t.classList.remove("light", "dark"), t.classList.add(o);
30
- }, [o]);
31
- const n = h(
31
+ t.classList.remove("light", "dark"), t.classList.add(r);
32
+ }, [r, m]);
33
+ const o = a(
32
34
  (t) => {
33
- f(t), localStorage.setItem(s, t);
35
+ g(t), localStorage.setItem(s, t);
34
36
  },
35
37
  [s]
36
- ), m = h(() => {
37
- n(o === "light" ? "dark" : "light");
38
- }, [o, n]), w = k(
39
- () => ({ theme: r, resolvedTheme: o, setTheme: n, toggleTheme: m }),
40
- [r, o, n, m]
38
+ ), i = a(() => {
39
+ o(r === "light" ? "dark" : "light");
40
+ }, [r, o]), v = S(
41
+ () => ({ theme: n, resolvedTheme: r, setTheme: o, toggleTheme: i }),
42
+ [n, r, o, i]
41
43
  );
42
- return /* @__PURE__ */ y(a.Provider, { value: w, children: e });
44
+ return /* @__PURE__ */ y(u.Provider, { value: v, children: e });
43
45
  }
44
- function P() {
45
- const e = p(a);
46
+ function b() {
47
+ const e = x(u);
46
48
  if (!e)
47
49
  throw new Error("useTheme must be used within a ThemeProvider");
48
50
  return e;
49
51
  }
50
52
  export {
51
- M as ThemeProvider,
52
- P as useTheme
53
+ P as ThemeProvider,
54
+ b as useTheme
53
55
  };
@@ -10,14 +10,14 @@ export interface RenderResult {
10
10
  /**
11
11
  * Render MJML JSON to HTML
12
12
  */
13
- export declare function renderMjml(document: MjmlNode): RenderResult;
13
+ export declare function renderMjml(document: MjmlNode): Promise<RenderResult>;
14
14
  /**
15
15
  * Render MJML string to HTML
16
16
  */
17
- export declare function renderMjmlString(mjmlString: string): RenderResult;
17
+ export declare function renderMjmlString(mjmlString: string): Promise<RenderResult>;
18
18
  /**
19
19
  * Render MJML JSON to HTML with block IDs preserved as CSS classes
20
20
  * This allows clicking elements in the preview to identify the source block
21
21
  */
22
- export declare function renderMjmlInteractive(document: MjmlNode): RenderResult;
22
+ export declare function renderMjmlInteractive(document: MjmlNode): Promise<RenderResult>;
23
23
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/mjml/renderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9D;AAkFD;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAkB3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAiBjE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAqBtE"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/lib/mjml/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9D;AA6FD;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAmB1E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,CAkBvB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,YAAY,CAAC,CAsBvB"}